iobroker.javascript 9.0.10 → 9.0.12

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 (132) hide show
  1. package/README.md +7 -10
  2. package/admin/assets/OpenAiDialog-Db5nBWtV.js +36 -0
  3. package/admin/assets/{Save--0ldNXLf.js → Save-DXaUpIPM.js} +1 -1
  4. package/admin/assets/{ScriptEditor-MKyboaPj.js → ScriptEditor-CuzI8bbK.js} +1 -1
  5. package/admin/assets/{ScriptEditorVanillaMonaco-CkDzb80s.js → ScriptEditorVanillaMonaco-LjlfPO8c.js} +1 -1
  6. package/admin/assets/{createSvgIcon-C_ElRFrf.js → createSvgIcon-DlIk-fDn.js} +3 -3
  7. package/admin/assets/hostInit-OBG53iVO.js +2 -0
  8. package/admin/assets/index-BCK6q-N6.css +1 -0
  9. package/admin/assets/{index-Dr_ZFwru.css → index-BTsjunTt.css} +1 -1
  10. package/admin/assets/{index-CMttI-gM.js → index-BWM5lJbO.js} +4 -4
  11. package/admin/assets/index-Cjl4b70e.js +5 -0
  12. package/admin/assets/{index-DmpUKunr.js → index-CpvUlHhu.js} +5 -5
  13. package/admin/assets/index-CtB5rga_.js +16 -0
  14. package/admin/assets/{index-BompUVvy.js → index-DoG44L1P.js} +1 -1
  15. package/admin/assets/index-DzAZ7TKU.js +1 -0
  16. package/admin/assets/index-XLsd8FZV.js +942 -0
  17. package/admin/assets/index-ee1BGSYh.js +1294 -0
  18. package/admin/assets/{inheritsLoose-CLw44UEv.js → inheritsLoose-DNrhibGS.js} +1 -1
  19. package/admin/assets/{iobroker_javascript__loadShare__react__loadShare__-B-pIv4x_.js → iobroker_javascript__loadShare__react__loadShare__-i8pXne9X.js} +1 -1
  20. package/admin/assets/iobroker_javascript__mf_v__runtimeInit__mf_v__-DZdFIfoQ.js +5 -0
  21. package/admin/assets/preload-helper-BDBacUwf.js +1 -0
  22. package/admin/assets/useTheme-DakN8Abq.js +1 -0
  23. package/admin/custom/assets/{Components-za_0yG9W.js → Components-DJLwk8Py.js} +1 -1
  24. package/admin/custom/assets/{ConfigCustomJavascriptSet__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__-BHJt30My.js → ConfigCustomJavascriptSet__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__-DaN0pfsw.js} +1 -1
  25. package/admin/custom/assets/{ConfigCustomJavascriptSet__loadShare___mf_0_mui_mf_1_material__loadShare__-WrqdT1Hz.js → ConfigCustomJavascriptSet__loadShare___mf_0_mui_mf_1_material__loadShare__-BqzgglHd.js} +1 -1
  26. package/admin/custom/assets/{ConfigCustomJavascriptSet__loadShare__react__loadShare__-B_YWmFeG.js → ConfigCustomJavascriptSet__loadShare__react__loadShare__-BNbscXK6.js} +1 -1
  27. package/admin/custom/assets/{ConfigCustomJavascriptSet__loadShare__react_mf_2_dom__loadShare__-DYzjQQsF.js → ConfigCustomJavascriptSet__loadShare__react_mf_2_dom__loadShare__-N2_tx_mJ.js} +1 -1
  28. package/admin/custom/assets/ConfigCustomJavascriptSet__mf_v__runtimeInit__mf_v__-jdUmHa_i.js +5 -0
  29. package/admin/custom/assets/DefaultPropsProvider-B6-0SEtV.js +7 -0
  30. package/admin/custom/assets/DefaultPropsProvider-BbFDEnmq.js +1 -0
  31. package/admin/custom/assets/{FilledInput-BGGUNS4j.js → FilledInput-CX9v1cwN.js} +2 -2
  32. package/admin/custom/assets/{Tabs-DjdFNknI.js → Tabs-bjxmjZcg.js} +6 -6
  33. package/admin/custom/assets/{ThemeProvider-Uan4kCQd.js → ThemeProvider-CeD4z8mE.js} +2 -2
  34. package/admin/custom/assets/_commonjsHelpers-CE1G-McA.js +1 -0
  35. package/admin/custom/assets/{createSvgIcon-BxCMHFh5.js → createSvgIcon-DAmSzHRD.js} +1 -1
  36. package/admin/custom/assets/{createTheme-Ajie0adn.js → createTheme-LEFpI6rM.js} +2 -2
  37. package/admin/custom/assets/defaultTheme-2suHr_rQ.js +1 -0
  38. package/admin/custom/assets/{hostInit-CrAs5YZS.js → hostInit-BJ6gSofk.js} +2 -2
  39. package/admin/custom/assets/{index-7YkEnLQM.js → index-1hRrucfm.js} +1 -1
  40. package/admin/custom/assets/{index-yiPj_-Rb.js → index-BM9YMTul.js} +1 -1
  41. package/admin/custom/assets/{index-Co3YA5NW.js → index-BgpTxVrG.js} +1 -1
  42. package/admin/custom/assets/index-CJimub3l.js +1399 -0
  43. package/admin/custom/assets/index-CPZpQ2Mb.js +916 -0
  44. package/admin/custom/assets/{index-UhQfKbTz.js → index-CrVgzaLe.js} +1 -1
  45. package/admin/custom/assets/{index-ClFSKKDu.js → index-CznMGPgM.js} +2 -2
  46. package/admin/custom/assets/{index-bxilEzdP.js → index-D-RbixT9.js} +5 -5
  47. package/admin/custom/assets/{index-DXg_kRe6.js → index-DMiiPxNM.js} +1 -1
  48. package/admin/custom/assets/{index-B2rBO0oC.js → index-DcK0RDrH.js} +1 -1
  49. package/admin/custom/assets/{index-DOnIDI_a.js → index-Dx7rDE4p.js} +1 -1
  50. package/admin/custom/assets/index-EogeheIH.js +31 -0
  51. package/admin/custom/assets/{jsx-runtime-lE4rOet2.js → jsx-runtime-CJ3ByJW3.js} +1 -1
  52. package/admin/custom/assets/leaflet-src-Dnh7srds.js +4 -0
  53. package/admin/custom/assets/preload-helper-BDBacUwf.js +1 -0
  54. package/admin/custom/assets/{useEnhancedEffect-DSK35Rma.js → useEnhancedEffect-COBJo-Ex.js} +2 -2
  55. package/admin/custom/assets/useTheme-52mADBCy.js +1 -0
  56. package/admin/custom/assets/{useTheme-DWmRkwMP.js → useTheme-Y8PztM11.js} +1 -1
  57. package/admin/custom/assets/virtualExposes-BMbgFEvP.js +2 -0
  58. package/admin/custom/customComponents.js +2 -2
  59. package/admin/i18n/de.json +1 -1
  60. package/admin/mf-manifest.json +1 -1
  61. package/admin/remoteEntry.js +2 -2
  62. package/admin/tab.html +10 -13
  63. package/build/lib/crypto.js +32 -0
  64. package/build/lib/crypto.js.map +1 -0
  65. package/{build-backend → build}/lib/javascript.d.ts +1507 -147
  66. package/{build-backend → build}/lib/protectFs.js +111 -104
  67. package/build/lib/protectFs.js.map +1 -0
  68. package/{build-backend → build}/lib/utils.js.map +1 -1
  69. package/{build-backend → build}/main.js +20 -12
  70. package/build/main.js.map +1 -0
  71. package/{build-backend → build}/types.d.ts +1 -0
  72. package/docs/en/javascript.md +1 -1
  73. package/io-package.json +26 -26
  74. package/package.json +22 -21
  75. package/admin/assets/OpenAiDialog-B4P-N63e.js +0 -36
  76. package/admin/assets/hostInit-fzxL8JAx.js +0 -2
  77. package/admin/assets/index-Bjydl5_6.js +0 -16
  78. package/admin/assets/index-DJdd5j6E.js +0 -930
  79. package/admin/assets/index-DUBaHZ92.css +0 -1
  80. package/admin/assets/index-DaagTm0N.js +0 -27
  81. package/admin/assets/index-DeFm7TiX.js +0 -5
  82. package/admin/assets/index-vw185EVR.js +0 -1294
  83. package/admin/assets/iobroker_javascript__mf_v__runtimeInit__mf_v__-CmuPLb0X.js +0 -5
  84. package/admin/assets/preload-helper-Dp1pzeXC.js +0 -1
  85. package/admin/assets/useTheme-CpAj0H76.js +0 -1
  86. package/admin/custom/assets/ConfigCustomJavascriptSet__mf_v__runtimeInit__mf_v__-Cib3-eWa.js +0 -5
  87. package/admin/custom/assets/DefaultPropsProvider-B41fRCEO.js +0 -1
  88. package/admin/custom/assets/DefaultPropsProvider-CfXkmG16.js +0 -7
  89. package/admin/custom/assets/_commonjsHelpers-D6-XlEtG.js +0 -1
  90. package/admin/custom/assets/defaultTheme-C_aSR-NR.js +0 -1
  91. package/admin/custom/assets/index-BkKMt4bp.js +0 -31
  92. package/admin/custom/assets/index-Bw5ZKbIF.js +0 -1399
  93. package/admin/custom/assets/index-K4NodPhU.js +0 -904
  94. package/admin/custom/assets/leaflet-src-A2ZHl6nF.js +0 -4
  95. package/admin/custom/assets/preload-helper-Dp1pzeXC.js +0 -1
  96. package/admin/custom/assets/useTheme-CpiJlUE9.js +0 -1
  97. package/admin/custom/assets/virtualExposes-4pgHXHfp.js +0 -2
  98. package/build-backend/lib/protectFs.js.map +0 -1
  99. package/build-backend/main.js.map +0 -1
  100. /package/{build-backend → build}/lib/consts.js +0 -0
  101. /package/{build-backend → build}/lib/consts.js.map +0 -0
  102. /package/{build-backend → build}/lib/convert.js +0 -0
  103. /package/{build-backend → build}/lib/convert.js.map +0 -0
  104. /package/{build-backend → build}/lib/debug.js +0 -0
  105. /package/{build-backend → build}/lib/debug.js.map +0 -0
  106. /package/{build-backend → build}/lib/debugger.js +0 -0
  107. /package/{build-backend → build}/lib/debugger.js.map +0 -0
  108. /package/{build-backend → build}/lib/eventObj.js +0 -0
  109. /package/{build-backend → build}/lib/eventObj.js.map +0 -0
  110. /package/{build-backend → build}/lib/inspect.js +0 -0
  111. /package/{build-backend → build}/lib/inspect.js.map +0 -0
  112. /package/{build-backend → build}/lib/mirror.js +0 -0
  113. /package/{build-backend → build}/lib/mirror.js.map +0 -0
  114. /package/{build-backend → build}/lib/nodeModulesManagement.js +0 -0
  115. /package/{build-backend → build}/lib/nodeModulesManagement.js.map +0 -0
  116. /package/{build-backend → build}/lib/patternCompareFunctions.js +0 -0
  117. /package/{build-backend → build}/lib/patternCompareFunctions.js.map +0 -0
  118. /package/{build-backend → build}/lib/request.js +0 -0
  119. /package/{build-backend → build}/lib/request.js.map +0 -0
  120. /package/{build-backend → build}/lib/sandbox.js +0 -0
  121. /package/{build-backend → build}/lib/sandbox.js.map +0 -0
  122. /package/{build-backend → build}/lib/scheduler.js +0 -0
  123. /package/{build-backend → build}/lib/scheduler.js.map +0 -0
  124. /package/{build-backend → build}/lib/tools.js +0 -0
  125. /package/{build-backend → build}/lib/tools.js.map +0 -0
  126. /package/{build-backend → build}/lib/typescriptSettings.js +0 -0
  127. /package/{build-backend → build}/lib/typescriptSettings.js.map +0 -0
  128. /package/{build-backend → build}/lib/typescriptTools.js +0 -0
  129. /package/{build-backend → build}/lib/typescriptTools.js.map +0 -0
  130. /package/{build-backend → build}/lib/utils.js +0 -0
  131. /package/{build-backend → build}/lib/words.js +0 -0
  132. /package/{build-backend → build}/lib/words.js.map +0 -0
@@ -1 +1 @@
1
- import{g as le}from"./_commonjsHelpers-Cpj98o6Y.js";var V={},k={},A={};Object.defineProperty(A,"__esModule",{value:!0});A.StateType=A.Types=void 0;var x;(function(i){i.unknown="unknown",i.airCondition="airCondition",i.blind="blind",i.blindButtons="blindButtons",i.button="button",i.buttonSensor="buttonSensor",i.camera="camera",i.chart="chart",i.cie="cie",i.ct="ct",i.dimmer="dimmer",i.door="door",i.fireAlarm="fireAlarm",i.floodAlarm="floodAlarm",i.gate="gate",i.hue="hue",i.humidity="humidity",i.illuminance="illuminance",i.image="image",i.info="info",i.instance="instance",i.light="light",i.location="location",i.locationOne="locationOne",i.lock="lock",i.media="media",i.motion="motion",i.rgb="rgb",i.rgbSingle="rgbSingle",i.rgbwSingle="rgbwSingle",i.slider="slider",i.socket="socket",i.temperature="temperature",i.thermostat="thermostat",i.vacuumCleaner="vacuumCleaner",i.volume="volume",i.volumeGroup="volumeGroup",i.warning="warning",i.weatherCurrent="weatherCurrent",i.weatherForecast="weatherForecast",i.window="window",i.windowTilt="windowTilt"})(x||(A.Types=x={}));var Y;(function(i){i.Number="number",i.String="string",i.Boolean="boolean"})(Y||(A.StateType=Y={}));var w={};Object.defineProperty(w,"__esModule",{value:!0});w.checkEnum=K;w.roleOrEnum=B;w.roleOrEnumLight=ie;w.roleOrEnumBlind=ne;w.roleOrEnumGate=oe;w.roleOrEnumWindow=ue;w.roleOrEnumDoor=se;w.getEnums=de;w.getAllStatesInChannel=fe;w.getAllStatesInDevice=ce;w.getObjectsBelowId=re;w.getFunctionEnums=me;w.getParentId=pe;function K(i,r){let l=!1;return i&&i.forEach(a=>{const o=a.lastIndexOf(".");o!==-1&&(a=a.substring(o+1));for(const u in r)if(Object.prototype.hasOwnProperty.call(r,u)&&r[u].find(n=>n.test(a)))return l=!0,!1}),l}function B(i,r,l,a){return i.common.role&&(l!=null&&l.includes(i.common.role))?!0:K(r,a)}const j={en:[/lights?/i,/lamps?/i,/ceilings?/i],de:[/licht(er)?/i,/lampen?/i,/beleuchtung(en)?/i],ru:[/свет/i,/ламп[аы]/i,/торшеры?/,/подсветк[аи]/i,/лампочк[аи]/i,/светильники?/i]},J=["switch.light","dimmer","value.dimmer","level.dimmer","sensor.light","state.light"];function ie(i,r){return B(i,r,J,j)}const M={en:[/blinds?/i,/windows?/i,/shutters?/i],de:[/rollladen?/i,/fenstern?/i,/beschattung(en)?/i,/jalousien?/i],ru:[/ставни/i,/рольставни/i,/окна|окно/,/жалюзи/i]},X=["blind","level.blind","value.blind","action.stop","button.stop","button.stop.blind","button.open.blind","button.close.blind","level.tilt","value.tilt","button.tilt.open","button.tilt.close","button.tilt.stop"];function ne(i,r){return B(i,r,X,M)}const z={en:[/gates?/i],de:[/^toren$/i,/^tor$/i],ru:[/ворота/i]},Q=["gate","value.gate","switch.gate","action.stop","button.stop"];function oe(i,r){return B(i,r,Q,z)}const Z=["window","state.window","sensor.window","value.window"];function ue(i,r){return B(i,r,Z,M)}const ee={en:[/doors?/i,/gates?/i,/wickets?/i,/entry|entries/i],de:[/^türe?/i,/^tuere?/i,/^tore?$/i,/einfahrt(en)?/i,/pforten?/i],ru:[/двери|дверь/i,/ворота/i,/калитка|калитки/,/въезды?/i,/входы?/i]},te=["door","state.door","sensor.door"];function se(i,r){return B(i,r,te,ee)}function de(){return{door:{roles:te,words:ee},window:{roles:Z,words:M},blind:{roles:X,words:M},gate:{roles:Q,words:z},light:{roles:J,words:j}}}function fe(i,r){const l=[],a=new RegExp(`^${r.replace(/([$^.)([\]{}])/g,"\\$1")}\\.[^.]+$`);return i.forEach(o=>a.test(o)&&l.push(o)),l}function ce(i,r){const l=[],a=new RegExp(`^${r.replace(/([$^.)([\]{}])/g,"\\$1")}\\.[^.]+\\.[^.]+$`);return i.forEach(o=>a.test(o)&&l.push(o)),l}function re(i,r){const l=[];r+=".";let a=0,o=i.length-1,u=-1;for(;a<=o;){const n=Math.floor((a+o)/2);i[n]<r?a=n+1:(u=n,o=n-1)}if(u===-1||u>=i.length)return l;for(let n=u;n<i.length;n++){const d=i[n];if(d===r||d.startsWith(r))l.push(d);else break}return l}function me(i,r){var l,a,o;const u=[],n=/^enum\.functions\./,d=re(r,"enum");for(const p of d)Object.prototype.hasOwnProperty.call(i,p)&&n.test(p)&&((l=i[p])===null||l===void 0?void 0:l.type)==="enum"&&(!((o=(a=i[p].common)===null||a===void 0?void 0:a.members)===null||o===void 0)&&o.length)&&u.push(p);return u}function pe(i){const r=i.lastIndexOf(".");return r!==-1?i.substring(0,r):i}var W={};Object.defineProperty(W,"__esModule",{value:!0});W.patterns=void 0;const e=A,f=w,c=/^[^.]+\.setting\./,t={working:{role:/^indicator\.working$/,indicator:!0,notSingle:!0,name:"WORKING",required:!1,defaultRole:"indicator.working",defaultType:e.StateType.Boolean},unreach:{role:/^indicator(\.maintenance)?\.unreach$/,indicator:!0,type:e.StateType.Boolean,notSingle:!0,name:"UNREACH",required:!1,defaultRole:"indicator.maintenance.unreach"},lowbat:{role:/^indicator(\.maintenance)?\.(lowbat|battery)$/,indicator:!0,type:e.StateType.Boolean,notSingle:!0,name:"LOWBAT",required:!1,defaultRole:"indicator.maintenance.lowbat"},maintain:{role:/^indicator\.maintenance$/,indicator:!0,type:e.StateType.Boolean,notSingle:!0,name:"MAINTAIN",required:!1,defaultRole:"indicator.maintenance"},error:{role:/^indicator\.error$/,indicator:!0,notSingle:!0,name:"ERROR",required:!1,defaultRole:"indicator.error",defaultType:e.StateType.String},direction:{role:/^indicator\.direction$/,indicator:!0,type:e.StateType.Boolean,notSingle:!0,name:"DIRECTION",required:!1,defaultRole:"indicator.direction"},direction_enum:{role:/^(indicator|value)\.direction$/,type:e.StateType.Number,notSingle:!0,name:"DIRECTION",required:!1,defaultStates:{0:"None",1:"Up/Open",2:"Down/Close",3:"Unknown"},defaultRole:"value.direction"},reachable:{role:/^indicator\.reachable$/,indicator:!0,type:e.StateType.Boolean,notSingle:!0,name:"CONNECTED",required:!1,defaultRole:"indicator.reachable",inverted:!0},battery:{role:/^value\.battery$/,indicator:!1,type:e.StateType.Number,write:!1,name:"BATTERY",required:!1,defaultRole:"value.battery",defaultUnit:"%"}},g={power:{role:/^value\.power$/,indicator:!1,type:e.StateType.Number,write:!1,name:"ELECTRIC_POWER",required:!1,defaultRole:"value.power",defaultUnit:"W"},current:{role:/^value\.current$/,indicator:!1,type:e.StateType.Number,write:!1,name:"CURRENT",required:!1,defaultRole:"value.current",defaultUnit:"mA"},voltage:{role:/^value\.voltage$/,indicator:!1,type:e.StateType.Number,write:!1,name:"VOLTAGE",required:!1,defaultRole:"value.voltage",defaultUnit:"V"},consumption:{role:/^value\.power\.consumption$/,indicator:!1,type:e.StateType.Number,write:!1,name:"CONSUMPTION",required:!1,defaultRole:"value.power.consumption",defaultUnit:"Wh"},frequency:{role:/^value\.frequency$/,indicator:!1,type:e.StateType.Number,write:!1,name:"FREQUENCY",required:!1,defaultRole:"value.frequency",defaultUnit:"Hz"}};W.patterns={chart:{states:[{objectType:"chart",name:"CHART"}],type:e.Types.chart},mediaPlayer:{states:[{role:/^media\.state(\..*)?$/,indicator:!1,type:[e.StateType.Boolean,e.StateType.Number],name:"STATE",required:!0,defaultRole:"media.state"},{role:/^(button|action)\.play(\..*)?$/,indicator:!1,write:!0,type:e.StateType.Boolean,name:"PLAY",required:!1,noSubscribe:!0,defaultRole:"button.play"},{role:/^(button|action)\.pause(\..*)?$/,indicator:!1,write:!0,type:e.StateType.Boolean,name:"PAUSE",required:!1,noSubscribe:!0,defaultRole:"button.pause"},{role:/^(button|action)\.stop(\..*)?$/,indicator:!1,write:!0,type:e.StateType.Boolean,name:"STOP",required:!1,noSubscribe:!0,defaultRole:"button.stop"},{role:/^(button|action)\.next(\..*)?$/,indicator:!1,write:!0,type:e.StateType.Boolean,name:"NEXT",required:!1,noSubscribe:!0,defaultRole:"button.next"},{role:/^(button|action)\.prev(\..*)?$/,indicator:!1,write:!0,type:e.StateType.Boolean,name:"PREV",required:!1,noSubscribe:!0,defaultRole:"button.prev"},{role:/^media\.mode\.shuffle(\..*)?$/,indicator:!1,write:!0,type:e.StateType.Boolean,name:"SHUFFLE",required:!1,noSubscribe:!0,defaultRole:"media.mode.shuffle"},{role:/^media\.mode\.repeat(\..*)?$/,indicator:!1,write:!0,type:e.StateType.Number,name:"REPEAT",required:!1,noSubscribe:!0,defaultRole:"media.mode.repeat"},{role:/^media\.artist(\..*)?$/,indicator:!1,write:!1,type:e.StateType.String,name:"ARTIST",required:!1,defaultRole:"media.artist"},{role:/^media\.album(\..*)?$/,indicator:!1,write:!1,type:e.StateType.String,name:"ALBUM",required:!1,defaultRole:"media.album"},{role:/^media\.title(\..*)?$/,indicator:!1,write:!1,type:e.StateType.String,name:"TITLE",required:!1,defaultRole:"media.title"},{role:/^media\.cover(\.big)?$/,indicator:!1,write:!1,type:e.StateType.String,name:"COVER",required:!1,notSingle:!0,defaultRole:"media.cover"},{role:/^media\.cover(\..*)$/,indicator:!1,write:!1,type:e.StateType.String,name:"COVER",required:!1,notSingle:!0},{role:/^media\.duration(\..*)?$/,indicator:!1,write:!1,type:e.StateType.Number,name:"DURATION",required:!1,noSubscribe:!0,defaultRole:"media.duration",defaultUnit:"sec"},{role:/^media\.elapsed(\..*)?$/,indicator:!1,type:e.StateType.Number,name:"ELAPSED",required:!1,noSubscribe:!0,defaultRole:"media.elapsed",defaultUnit:"sec"},{role:/^media\.seek(\..*)?$/,indicator:!1,write:!0,type:e.StateType.Number,name:"SEEK",required:!1,noSubscribe:!0,defaultRole:"media.seek"},{role:/^media\.track(\..*)?$/,indicator:!1,type:e.StateType.String,name:"TRACK",required:!1,noSubscribe:!0,defaultRole:"media.track"},{role:/^media\.episode(\..*)?$/,indicator:!1,type:e.StateType.String,name:"EPISODE",required:!1,noSubscribe:!0,defaultRole:"media.episode"},{role:/^media\.season(\..*)?$/,indicator:!1,type:e.StateType.String,name:"SEASON",required:!1,noSubscribe:!0,defaultRole:"media.season"},{role:/^level(\.volume)?$/,indicator:!1,type:e.StateType.Number,min:e.StateType.Number,max:e.StateType.Number,write:!0,name:"VOLUME",required:!1,notSingle:!0,noSubscribe:!0,defaultRole:"level.volume",defaultUnit:"%"},{role:/^value(\.volume)?$/,indicator:!1,type:e.StateType.Number,min:e.StateType.Number,max:e.StateType.Number,write:!1,name:"VOLUME_ACTUAL",required:!1,notSingle:!0,noSubscribe:!0,defaultRole:"value.volume",defaultUnit:"%"},{role:/^media(\.mute)?$/,indicator:!1,type:e.StateType.Boolean,write:!0,name:"MUTE",required:!1,notSingle:!0,noSubscribe:!0,defaultRole:"media.mute"},{stateName:/\.(paused|playerState)$/,indicator:!1,name:"IGNORE",required:!1,multiple:!0,noSubscribe:!0},t.reachable,t.lowbat,t.maintain,t.error,t.battery],type:e.Types.media},weatherForecast:{states:[{role:/^weather\.icon(\.forecast\.0)?$/,indicator:!1,type:e.StateType.String,name:"ICON",required:!0,defaultRole:"weather.icon.forecast.0"},{role:/^value\.temperature\.min\.forecast\.0$/,indicator:!1,type:e.StateType.Number,name:"TEMP_MIN",required:!0,defaultRole:"value.temperature.min.forecast.0"},{role:/^value\.temperature\.max\.forecast\.0$/,indicator:!1,type:e.StateType.Number,name:"TEMP_MAX",required:!0,defaultRole:"value.temperature.max.forecast.0"},{role:/^value\.precipitation(\.forecast\.0)?$/,indicator:!1,type:e.StateType.Number,name:"PRECIPITATION_CHANCE",unit:"%",required:!1,defaultRole:"value.precipitation.forecast.0"},{role:/^value\.precipitation(\.forecast\.0)?$/,indicator:!1,type:e.StateType.Number,name:"PRECIPITATION",unit:"mm",required:!1,defaultRole:"value.precipitation.forecast.0"},{role:/^date(\.forecast\.0)?$/,indicator:!1,type:e.StateType.String,name:"DATE",required:!1,defaultRole:"date.forecast.0"},{role:/^dayofweek(\.forecast\.0)?$/,indicator:!1,type:e.StateType.String,name:"DOW",required:!1,defaultRole:"dayofweek.forecast.0"},{role:/^weather\.state(\.forecast\.0)?$/,indicator:!1,type:e.StateType.String,name:"STATE",required:!1,defaultRole:"weather.state.forecast.0"},{role:/^value\.temperature(\.forecast\.0)?$/,indicator:!1,type:e.StateType.Number,name:"TEMP",required:!1,defaultRole:"value.temperature.forecast.0"},{role:/^value\.pressure(\.forecast\.0)?$/,indicator:!1,type:e.StateType.Number,name:"PRESSURE",required:!1,defaultRole:"value.pressure.forecast.0"},{role:/^value\.humidity(\.forecast\.0)?$/,indicator:!1,type:e.StateType.Number,name:"HUMIDITY",required:!1,defaultRole:"value.humidity.forecast.0"},{role:/^(?:date|time)\.sunrise(?:\.forecast\.0)?$/,indicator:!1,type:e.StateType.String,name:"TIME_SUNRISE",required:!1,defaultRole:"date.sunrise"},{role:/^(?:date|time)\.sunset(?:\.forecast\.0)?$/,indicator:!1,type:e.StateType.String,name:"TIME_SUNSET",required:!1,defaultRole:"date.sunset"},{role:/^value\.temperature\.windchill(\.forecast\.0)?$/,indicator:!1,type:e.StateType.Number,name:"WIND_CHILL",required:!1,defaultRole:"value.temperature.windchill.forecast.0"},{role:/^value\.temperature\.feelslike(\.forecast\.0)?$/,indicator:!1,type:e.StateType.Number,name:"FEELS_LIKE",required:!1,defaultRole:"value.temperature.feelslike.forecast.0"},{role:/^value\.speed\.wind(\.forecast\.0)?$/,indicator:!1,type:e.StateType.Number,name:"WIND_SPEED",required:!1,defaultRole:"value.speed.wind.forecast.0"},{role:/^value\.direction\.wind(\.forecast\.0)?$/,indicator:!1,type:e.StateType.Number,name:"WIND_DIRECTION",required:!1,defaultRole:"value.direction.wind.forecast.0"},{role:/^weather\.direction\.wind(\.forecast\.0)?$/,indicator:!1,type:e.StateType.String,name:"WIND_DIRECTION_STR",required:!1,defaultRole:"weather.direction.wind.forecast.0"},{role:/^weather\.icon\.wind(\.forecast\.0)?$/,indicator:!1,type:e.StateType.String,name:"WIND_ICON",required:!1,defaultRole:"weather.icon.wind.forecast.0"},{role:/^weather\.chart\.url$/,indicator:!1,type:e.StateType.String,name:"HISTORY_CHART",required:!1,noSubscribe:!0,defaultRole:"weather.chart.url"},{role:/^weather\.chart\.url\.forecast$/,indicator:!1,type:e.StateType.String,name:"FORECAST_CHART",required:!1,noSubscribe:!0,defaultRole:"weather.chart.url.forecast"},{role:/^location$/,indicator:!1,type:e.StateType.String,name:"LOCATION",required:!1,defaultRole:"location"},{role:/^weather\.icon\.forecast.(\d+)$/,indicator:!1,type:e.StateType.String,name:"ICON%d",required:!1,searchInParent:!0,multiple:!0,noSubscribe:!0,notSingle:!0},{role:/^value\.temperature\.min\.forecast\.(\d+)$/,indicator:!1,type:e.StateType.Number,name:"TEMP_MIN%d",required:!1,searchInParent:!0,multiple:!0,noSubscribe:!0},{role:/^value\.temperature\.max\.forecast\.(\d+)$/,indicator:!1,type:e.StateType.Number,name:"TEMP_MAX%d",required:!1,searchInParent:!0,multiple:!0,noSubscribe:!0},{role:/^date\.forecast\.(\d+)$/,indicator:!1,type:e.StateType.String,name:"DATE%d",required:!1,searchInParent:!0,multiple:!0,noSubscribe:!0},{role:/^dayofweek\.forecast\.(\d+)$/,indicator:!1,type:e.StateType.String,name:"DOW%d",required:!1,searchInParent:!0,multiple:!0,noSubscribe:!0},{role:/^weather\.state\.forecast\.(\d+)$/,indicator:!1,type:e.StateType.String,name:"STATE%d",required:!1,searchInParent:!0,multiple:!0,noSubscribe:!0},{role:/^value\.temperature\.forecast\.(\d+)$/,indicator:!1,type:e.StateType.Number,name:"TEMP%d",required:!1,searchInParent:!0,multiple:!0,noSubscribe:!0},{role:/^value\.humidity\.forecast\.(\d+)$/,indicator:!1,type:e.StateType.Number,name:"HUMIDITY%d",required:!1,searchInParent:!0,multiple:!0,noSubscribe:!0},{role:/^value\.humidity\.max\.forecast\.(\d+)$/,indicator:!1,type:e.StateType.Number,name:"HUMIDITY_MAX%d",required:!1,searchInParent:!0,multiple:!0,noSubscribe:!0},{role:/^value\.precipitation\.forecast\.(\d+)$/,indicator:!1,type:e.StateType.Number,unit:"%",name:"PRECIPITATION_CHANCE%d",required:!1,searchInParent:!0,multiple:!0,noSubscribe:!0},{role:/^value\.precipitation\.forecast\.(\d+)$/,indicator:!1,type:e.StateType.Number,unit:"mm",name:"PRECIPITATION%d",required:!1,searchInParent:!0,multiple:!0,noSubscribe:!0},{role:/^value\.speed\.wind\.forecast\.(\d+)$/,indicator:!1,type:e.StateType.Number,name:"WIND_SPEED%d",required:!1,searchInParent:!0,multiple:!0,noSubscribe:!0},{role:/^value\.direction\.wind\.forecast\.(\d+)$/,indicator:!1,type:e.StateType.Number,name:"WIND_DIRECTION%d",required:!1,searchInParent:!0,multiple:!0,noSubscribe:!0},{role:/^weather\.direction\.wind\.forecast\.(\d+)$/,indicator:!1,type:e.StateType.String,name:"WIND_DIRECTION_STR%d",required:!1,searchInParent:!0,multiple:!0,noSubscribe:!0},{role:/^weather\.icon\.wind\.forecast\.(\d+)$/,indicator:!1,type:e.StateType.String,name:"WIND_ICON%d",required:!1,searchInParent:!0,multiple:!0,noSubscribe:!0}],type:e.Types.weatherForecast},rgb:{states:[{role:/^level\.color\.red$/,indicator:!1,type:e.StateType.Number,write:!0,name:"RED",required:!0,defaultRole:"level.color.red"},{role:/^level\.color\.green$/,indicator:!1,type:e.StateType.Number,write:!0,name:"GREEN",required:!0,defaultRole:"level.color.green"},{role:/^level\.color\.blue$/,indicator:!1,type:e.StateType.Number,write:!0,name:"BLUE",required:!0,defaultRole:"level.color.blue"},{role:/^level\.color\.white$/,indicator:!1,type:e.StateType.Number,write:!0,name:"WHITE",required:!1,defaultRole:"level.color.white"},{role:/^level\.dimmer$/,indicator:!1,type:e.StateType.Number,write:!0,name:"DIMMER",required:!1,defaultRole:"level.dimmer",defaultUnit:"%"},{role:/^level\.brightness$/,indicator:!1,type:e.StateType.Number,write:!0,name:"BRIGHTNESS",required:!1},{role:/^level\.color\.temperature$/,indicator:!1,type:e.StateType.Number,write:!0,name:"TEMPERATURE",required:!1,defaultRole:"level.color.temperature",defaultUnit:"°K"},{role:/^switch(\.light)?$|^state$/,indicator:!1,type:e.StateType.Boolean,write:!0,name:"ON",required:!1,defaultRole:"switch.light"},{role:/^(state|switch|sensor)\.light|switch$/,indicator:!1,type:e.StateType.Boolean,write:!1,name:"ON_ACTUAL",required:!1,defaultRole:"sensor.light",ignoreRole:c},{role:/^time\.(span|interval)$/,indicator:!1,type:e.StateType.Number,write:!0,name:"TRANSITION_TIME",required:!1,defaultRole:"time.span",defaultUnit:"ms"},...Object.values(g),t.working,t.unreach,t.lowbat,t.maintain,t.error,t.battery],type:e.Types.rgb},rgbwSingle:{states:[{role:/^level\.color\.rgbw$/,indicator:!1,type:e.StateType.String,write:!0,name:"RGBW",required:!0,defaultRole:"level.color.rgbw"},{role:/^level\.dimmer$/,indicator:!1,type:e.StateType.Number,write:!0,name:"DIMMER",required:!1,defaultRole:"level.dimmer",defaultUnit:"%"},{role:/^level\.brightness$/,indicator:!1,type:e.StateType.Number,write:!0,name:"BRIGHTNESS",required:!1,defaultUnit:"%"},{role:/^level\.color\.temperature$/,indicator:!1,type:e.StateType.Number,write:!0,name:"TEMPERATURE",required:!1,defaultRole:"level.color.temperature",defaultUnit:"°K"},{role:/^switch(\.light)?$/,indicator:!1,type:e.StateType.Boolean,write:!0,name:"ON",required:!1,defaultRole:"switch.light"},{role:/^(state|switch|sensor)\.light|switch$/,indicator:!1,type:e.StateType.Boolean,write:!1,name:"ON_ACTUAL",required:!1,defaultRole:"sensor.light",ignoreRole:c},{role:/^time\.(span|interval)$/,indicator:!1,type:e.StateType.Number,write:!0,name:"TRANSITION_TIME",required:!1,defaultRole:"time.span",defaultUnit:"ms"},...Object.values(g),t.working,t.unreach,t.lowbat,t.maintain,t.error,t.battery],type:e.Types.rgbwSingle},rgbSingle:{states:[{role:/^level\.color\.rgb$/,indicator:!1,type:e.StateType.String,write:!0,name:"RGB",required:!0,defaultRole:"level.color.rgb"},{role:/^level\.dimmer$/,indicator:!1,type:e.StateType.Number,write:!0,name:"DIMMER",required:!1,defaultRole:"level.dimmer",defaultUnit:"%"},{role:/^level\.brightness$/,indicator:!1,type:e.StateType.Number,write:!0,name:"BRIGHTNESS",required:!1,defaultUnit:"%"},{role:/^level\.color\.temperature$/,indicator:!1,type:e.StateType.Number,write:!0,name:"TEMPERATURE",required:!1,defaultRole:"level.color.temperature",defaultUnit:"°K"},{role:/^switch(\.light)?$/,indicator:!1,type:e.StateType.Boolean,write:!0,name:"ON",required:!1,defaultRole:"switch.light"},{role:/^(state|switch|sensor)\.light|switch$/,indicator:!1,type:e.StateType.Boolean,write:!1,name:"ON_ACTUAL",required:!1,defaultRole:"sensor.light",ignoreRole:c},{role:/^time\.(span|interval)$/,indicator:!1,type:e.StateType.Number,write:!0,name:"TRANSITION_TIME",required:!1,defaultRole:"time.span",defaultUnit:"ms"},...Object.values(g),t.working,t.unreach,t.lowbat,t.maintain,t.error,t.battery],type:e.Types.rgbSingle},cie:{states:[{role:/^level\.color\.cie$/,indicator:!1,type:e.StateType.String,write:!0,name:"CIE",required:!0,defaultRole:"level.color.cie"},{role:/^level\.dimmer$/,indicator:!1,type:e.StateType.Number,write:!0,name:"DIMMER",required:!1,defaultRole:"level.dimmer",defaultUnit:"%"},{role:/^level\.brightness$/,indicator:!1,type:e.StateType.Number,write:!0,name:"BRIGHTNESS",required:!1,defaultUnit:"%"},{role:/^level\.color\.temperature$/,indicator:!1,type:e.StateType.Number,write:!0,name:"TEMPERATURE",required:!1,defaultRole:"level.color.temperature",defaultUnit:"°K"},{role:/^switch(\.light)?$/,indicator:!1,type:e.StateType.Boolean,write:!0,name:"ON",required:!1,defaultRole:"switch.light"},{role:/^(state|switch|sensor)\.light|switch$/,indicator:!1,type:e.StateType.Boolean,write:!1,name:"ON_ACTUAL",required:!1,defaultRole:"sensor.light",ignoreRole:c},{role:/^time\.(span|interval)$/,indicator:!1,type:e.StateType.Number,write:!0,name:"TRANSITION_TIME",required:!1,defaultRole:"time.span",defaultUnit:"ms"},...Object.values(g),t.working,t.unreach,t.lowbat,t.maintain,t.error,t.battery],type:e.Types.cie},hue:{states:[{role:/^level\.color\.hue$/,indicator:!1,type:e.StateType.Number,write:!0,name:"HUE",required:!0,defaultRole:"level.color.hue",defaultUnit:"°"},{role:/^level\.dimmer$/,indicator:!1,type:e.StateType.Number,write:!0,name:"DIMMER",required:!1,searchInParent:!0,defaultRole:"level.dimmer",defaultUnit:"%"},{role:/^level\.brightness$/,indicator:!1,type:e.StateType.Number,write:!0,name:"BRIGHTNESS",required:!1},{role:/^level\.color\.saturation$/,indicator:!1,type:e.StateType.Number,write:!0,name:"SATURATION",required:!1,defaultRole:"level.color.saturation",defaultUnit:"%"},{role:/^level\.color\.temperature$/,indicator:!1,type:e.StateType.Number,write:!0,name:"TEMPERATURE",required:!1,defaultRole:"level.color.temperature",defaultUnit:"°K"},{role:/^switch(\.light)?$/,indicator:!1,type:e.StateType.Boolean,write:!0,name:"ON",required:!1,defaultRole:"switch.light"},{role:/^(state|switch|sensor)\.light|switch$/,indicator:!1,type:e.StateType.Boolean,write:!1,name:"ON_ACTUAL",required:!1,defaultRole:"sensor.light",ignoreRole:c},{role:/^time\.(span|interval)$/,indicator:!1,type:e.StateType.Number,write:!0,name:"TRANSITION_TIME",required:!1,defaultRole:"time.span",defaultUnit:"ms"},...Object.values(g),t.working,t.unreach,t.lowbat,t.maintain,t.error,t.battery],type:e.Types.hue},ct:{states:[{role:/^level\.color\.temperature$/,indicator:!1,type:e.StateType.Number,write:!0,name:"TEMPERATURE",required:!0,defaultRole:"level.color.temperature",defaultUnit:"°K"},{role:/^level\.dimmer$/,indicator:!1,type:e.StateType.Number,write:!0,name:"DIMMER",required:!1,defaultRole:"level.dimmer",defaultUnit:"%"},{role:/^level\.brightness$/,indicator:!1,type:e.StateType.Number,write:!0,name:"BRIGHTNESS",required:!1},{role:/^switch(\.light)?$/,indicator:!1,type:e.StateType.Boolean,write:!0,name:"ON",required:!1,defaultRole:"switch.light"},{role:/^(state|switch|sensor)\.light|switch$/,indicator:!1,type:e.StateType.Boolean,write:!1,name:"ON_ACTUAL",required:!1,defaultRole:"sensor.light",ignoreRole:c},{role:/^time\.(span|interval)$/,indicator:!1,type:e.StateType.Number,write:!0,name:"TRANSITION_TIME",required:!1,defaultRole:"time.span",defaultUnit:"ms"},...Object.values(g),t.working,t.unreach,t.lowbat,t.maintain,t.error,t.battery],type:e.Types.ct},warning:{states:[{role:/^value\.warning$/,indicator:!1,name:"LEVEL",required:!0,defaultRole:"value.warning"},{role:/^weather\.title\.short$/,indicator:!1,type:e.StateType.String,name:"TITLE",required:!1,defaultRole:"weather.title.short"},{role:/^weather\.title$/,indicator:!1,type:e.StateType.String,name:"INFO",required:!1,defaultRole:"weather.title"},{role:/^date\.start$/,indicator:!1,type:e.StateType.String,name:"START",required:!1,defaultRole:"date.start"},{role:/^date\.end$/,indicator:!1,type:e.StateType.String,name:"END",required:!1,defaultRole:"date.end"},{role:/^date$/,indicator:!1,type:e.StateType.String,name:"START",required:!1},{role:/^weather\.chart\.url/,indicator:!1,type:e.StateType.String,name:"ICON",required:!1,defaultRole:"weather.chart.url"},{role:/^weather\.state$/,indicator:!1,type:e.StateType.String,name:"DESC",required:!1,noSubscribe:!0,defaultRole:"weather.state"}],type:e.Types.warning},airCondition:{states:[{role:/temperature(\..*)?$/,indicator:!1,write:!0,type:e.StateType.Number,name:"SET",required:!0,defaultRole:"level.temperature",defaultUnit:"°C",ignoreRole:c},{role:/(level\.mode\.)?airconditioner$/,indicator:!1,write:!0,type:e.StateType.Number,searchInParent:!0,name:"MODE",required:!0,defaultRole:"level.mode.airconditioner",defaultStates:{0:"AUTO",3:"COOL",4:"DRY",5:"ECO",6:"FAN_ONLY",7:"HEAT",8:"OFF"},ignoreRole:c},{role:/(speed|mode)\.fan$/,indicator:!1,write:!0,type:e.StateType.Number,name:"SPEED",required:!1,defaultRole:"level.mode.fan",defaultStates:{0:"AUTO",1:"HIGH",2:"LOW",3:"MEDIUM",4:"QUIET",5:"TURBO"},ignoreRole:c},{role:/^switch(\.power)?$/,indicator:!1,write:!0,type:[e.StateType.Boolean,e.StateType.Number],searchInParent:!0,name:"POWER",required:!1,defaultRole:"switch.power"},{role:/temperature(\..*)?$/,indicator:!1,write:!1,type:e.StateType.Number,searchInParent:!0,name:"ACTUAL",required:!1,defaultRole:"value.temperature",defaultUnit:"°C",ignoreRole:c},{role:/humidity(\..*)?$/,indicator:!1,write:!1,type:e.StateType.Number,searchInParent:!0,name:"HUMIDITY",required:!1,defaultRole:"value.humidity",defaultUnit:"%",ignoreRole:c},{role:/^switch\.boost(\..*)?$/,indicator:!1,write:!0,type:[e.StateType.Boolean,e.StateType.Number],searchInParent:!0,name:"BOOST",required:!1,defaultRole:"switch.boost"},{role:/swing$/,indicator:!1,write:!0,type:e.StateType.Number,searchInParent:!0,name:"SWING",required:!1,defaultRole:"level.mode.swing",defaultStates:{0:"AUTO",1:"HORIZONTAL",2:"STATIONARY",3:"VERTICAL"},ignoreRole:c},{role:/swing$/,indicator:!1,write:!0,type:e.StateType.Boolean,searchInParent:!0,name:"SWING",required:!1,defaultRole:"switch.mode.swing",ignoreRole:c},...Object.values(g),t.unreach,t.maintain,t.error],type:e.Types.airCondition},thermostat:{states:[{role:/temperature(\..*)?$/,indicator:!1,write:!0,type:e.StateType.Number,name:"SET",required:!0,defaultRole:"level.temperature",defaultUnit:"°C",ignoreRole:c},{role:/temperature(\..*)?$/,indicator:!1,write:!1,type:e.StateType.Number,searchInParent:!0,name:"ACTUAL",required:!1,defaultRole:"value.temperature",defaultUnit:"°C",ignoreRole:c},{role:/humidity(\..*)?$/,indicator:!1,write:!1,type:e.StateType.Number,searchInParent:!0,name:"HUMIDITY",required:!1,defaultRole:"value.humidity",defaultUnit:"%",ignoreRole:c},{role:/^switch(\.mode)?\.boost(\..*)?$/,indicator:!1,write:!0,type:[e.StateType.Boolean,e.StateType.Number],searchInParent:!0,name:"BOOST",required:!1,defaultRole:"switch.mode.boost"},{role:/^switch(\.power)?$/,indicator:!1,write:!0,type:[e.StateType.Boolean,e.StateType.Number],searchInParent:!0,name:"POWER",required:!1,defaultRole:"switch.power"},{role:/^switch(\.mode)?\.party$/,indicator:!1,write:!0,type:[e.StateType.Boolean,e.StateType.Number],searchInParent:!0,name:"PARTY",required:!1,defaultRole:"switch.mode.party"},{role:/^level(\.mode)?\.thermostat$/,indicator:!1,write:!0,type:e.StateType.Number,searchInParent:!0,name:"MODE",required:!1,defaultRole:"level.mode.thermostat",defaultStates:{0:"AUTO",1:"MANUAL"}},t.working,t.unreach,t.lowbat,t.maintain,t.error,t.battery],type:e.Types.thermostat},vacuumCleaner:{states:[{role:/^switch\.power$/,indicator:!1,write:!0,type:[e.StateType.Boolean,e.StateType.Number],searchInParent:!0,name:"POWER",required:!0,defaultRole:"switch.power"},{role:/mode\.cleanup$/,indicator:!1,write:!0,type:e.StateType.Number,searchInParent:!0,name:"MODE",required:!0,defaultRole:"level.mode.cleanup",defaultStates:{0:"AUTO",1:"NORMAL",2:"QUIET",3:"ECO",4:"EXPRESS"},ignoreRole:c},{role:/vacuum\.map\.base64$/,indicator:!1,write:!1,type:e.StateType.String,searchInParent:!0,name:"MAP_BASE64",required:!1,defaultRole:"vacuum.map.base64",ignoreRole:c},{role:/vacuum\.map\.url$/,indicator:!1,write:!1,type:e.StateType.String,searchInParent:!0,name:"MAP_URL",required:!1,ignoreRole:c},{role:/mode\.work$/,indicator:!1,write:!0,type:e.StateType.Number,searchInParent:!0,name:"WORK_MODE",required:!1,defaultRole:"level.mode.work",defaultStates:{0:"AUTO",1:"FAST",2:"MEDIUM",3:"SLOW",4:"TURBO"},ignoreRole:c},{role:/^value\.water$/,indicator:!1,write:!1,type:e.StateType.Number,searchInParent:!0,unit:"%",name:"WATER",required:!1,defaultRole:"value.water",defaultUnit:"%"},{role:/^value\.waste$/,indicator:!1,write:!1,type:e.StateType.Number,searchInParent:!0,unit:"%",name:"WASTE",required:!1,defaultRole:"value.waste",defaultUnit:"%"},{role:/^value\.battery$/,indicator:!1,write:!1,type:e.StateType.Number,searchInParent:!0,unit:"%",name:"BATTERY",required:!1,defaultRole:"value.battery",defaultUnit:"%"},{role:/^value\.state$/,indicator:!1,write:!1,type:[e.StateType.Number,e.StateType.String],searchInParent:!0,name:"STATE",required:!1,defaultRole:"value.state"},{role:/^switch\.pause$/,indicator:!1,write:!0,type:e.StateType.Boolean,searchInParent:!0,name:"PAUSE",required:!1,defaultRole:"switch.pause"},{role:/^indicator(\.maintenance)?\.waste$|^indicator(\.alarm)?\.waste/,indicator:!0,type:e.StateType.Boolean,searchInParent:!0,name:"WASTE_ALARM",required:!1,defaultRole:"indicator.maintenance.waste"},{role:/^indicator(\.maintenance)?\.water$|^indicator(\.alarm)?\.water/,indicator:!0,type:e.StateType.Boolean,searchInParent:!0,name:"WATER_ALARM",required:!1,defaultRole:"indicator.maintenance.water"},{role:/^value(\.usage)?\.filter/,indicator:!0,type:e.StateType.Number,searchInParent:!0,name:"FILTER",required:!1,defaultRole:"value.usage.filter",defaultUnit:"%"},{role:/^value(\.usage)?\.brush/,indicator:!0,type:e.StateType.Number,searchInParent:!0,name:"BRUSH",required:!1,defaultRole:"value.usage.brush",defaultUnit:"%"},{role:/^value(\.usage)?\.sensors/,indicator:!0,type:e.StateType.Number,searchInParent:!0,name:"SENSORS",required:!1,defaultRole:"value.usage.sensors",defaultUnit:"%"},{role:/^value(\.usage)?\.brush\.side/,indicator:!0,type:e.StateType.Number,searchInParent:!0,name:"SIDE_BRUSH",required:!1,defaultRole:"value.usage.brush.side",defaultUnit:"%"},t.unreach,t.lowbat,t.maintain,t.error,t.battery],type:e.Types.vacuumCleaner},blinds:{states:[{role:/^level(\.blind)?$/,indicator:!1,type:e.StateType.Number,write:!0,enums:f.roleOrEnumBlind,name:"SET",required:!0,defaultRole:"level.blind",defaultUnit:"%"},{role:/^value(\.blind)?$/,indicator:!1,type:e.StateType.Number,enums:f.roleOrEnumBlind,name:"ACTUAL",required:!1,defaultRole:"value.blind",defaultUnit:"%"},{role:/^(button|action)\.stop(\.blind)?$/,indicator:!1,type:e.StateType.Boolean,write:!0,enums:f.roleOrEnumBlind,name:"STOP",required:!1,noSubscribe:!0,defaultRole:"button.stop.blind"},{role:/^(button|action)\.open(\.blind)?$/,indicator:!1,type:e.StateType.Boolean,write:!0,enums:f.roleOrEnumBlind,name:"OPEN",required:!1,noSubscribe:!0,defaultRole:"button.open.blind"},{role:/^(button|action)\.close(\.blind)?$/,indicator:!1,type:e.StateType.Boolean,write:!0,enums:f.roleOrEnumBlind,name:"CLOSE",required:!1,noSubscribe:!0,defaultRole:"button.close.blind"},{role:/^level(\.open)?\.tilt$/,indicator:!1,type:e.StateType.Number,write:!0,enums:f.roleOrEnumBlind,name:"TILT_SET",required:!1,defaultRole:"level.tilt"},{role:/^value(\.open)?\.tilt$/,indicator:!1,type:e.StateType.Number,enums:f.roleOrEnumBlind,name:"TILT_ACTUAL",required:!1,defaultRole:"value.tilt"},{role:/^(button|action)\.stop\.tilt$/,indicator:!1,type:e.StateType.Boolean,write:!0,enums:f.roleOrEnumBlind,name:"TILT_STOP",required:!1,noSubscribe:!0,defaultRole:"button.stop.tilt"},{role:/^(button|action)\.open\.tilt$/,indicator:!1,type:e.StateType.Boolean,write:!0,enums:f.roleOrEnumBlind,name:"TILT_OPEN",required:!1,noSubscribe:!0,defaultRole:"button.open.tilt"},{role:/^(button|action)\.close\.tilt$/,indicator:!1,type:e.StateType.Boolean,write:!0,enums:f.roleOrEnumBlind,name:"TILT_CLOSE",required:!1,noSubscribe:!0,defaultRole:"button.close.tilt"},t.direction,t.direction_enum,t.working,t.unreach,t.lowbat,t.maintain,t.error,t.battery],type:e.Types.blind},blindButtons:{states:[{role:/^(button|action)\.stop(\.blind)?$/,indicator:!1,type:e.StateType.Boolean,write:!0,enums:f.roleOrEnumBlind,name:"STOP",required:!0,noSubscribe:!0,defaultRole:"button.stop.blind"},{role:/^(button|action)\.open(\.blind)?$/,indicator:!1,type:e.StateType.Boolean,write:!0,enums:f.roleOrEnumBlind,name:"OPEN",required:!0,noSubscribe:!0,defaultRole:"button.open.blind"},{role:/^(button|action)\.close(\.blind)?$/,indicator:!1,type:e.StateType.Boolean,write:!0,enums:f.roleOrEnumBlind,name:"CLOSE",required:!0,noSubscribe:!0,defaultRole:"button.close.blind"},{role:/^level\.tilt$/,indicator:!1,type:e.StateType.Number,write:!0,enums:f.roleOrEnumBlind,name:"TILT_SET",required:!1,defaultRole:"level.tilt"},{role:/^value\.tilt$/,indicator:!1,type:e.StateType.Number,enums:f.roleOrEnumBlind,name:"TILT_ACTUAL",required:!1,defaultRole:"value.tilt"},{role:/^(button|action)\.stop\.tilt$/,indicator:!1,type:e.StateType.Boolean,write:!0,enums:f.roleOrEnumBlind,name:"TILT_STOP",required:!1,noSubscribe:!0,defaultRole:"button.stop.tilt"},{role:/^(button|action)\.open\.tilt$/,indicator:!1,type:e.StateType.Boolean,write:!0,enums:f.roleOrEnumBlind,name:"TILT_OPEN",required:!1,noSubscribe:!0,defaultRole:"button.open.tilt"},{role:/^(button|action)\.close\.tilt$/,indicator:!1,type:e.StateType.Boolean,write:!0,enums:f.roleOrEnumBlind,name:"TILT_CLOSE",required:!1,noSubscribe:!0,defaultRole:"button.close.tilt"},t.direction,t.direction_enum,t.working,t.unreach,t.lowbat,t.maintain,t.error,t.battery],type:e.Types.blindButtons},gate:{states:[{role:/^switch(\.gate)?$/,indicator:!1,type:e.StateType.Boolean,write:!0,enums:f.roleOrEnumGate,name:"SET",required:!0,defaultRole:"switch.gate"},{role:/^value(\.(position|gate))?$/,indicator:!1,type:e.StateType.Number,enums:f.roleOrEnumGate,name:"ACTUAL",required:!1,defaultRole:"value.blind",defaultUnit:"%",ignoreRole:c},{role:/^(button|action)\.stop$/,indicator:!1,type:e.StateType.Boolean,write:!0,enums:f.roleOrEnumGate,name:"STOP",required:!1,noSubscribe:!0,defaultRole:"button.stop"},t.direction,t.direction_enum,t.working,t.unreach,t.maintain,t.error],type:e.Types.gate},weatherCurrent:{states:[{role:/^value(\.temperature)?$/,indicator:!1,type:e.StateType.Number,name:"ACTUAL",required:!0,defaultRole:"value.temperature",defaultUnit:"°C"},{role:/^weather\.icon$/,indicator:!1,name:"ICON",required:!0,defaultRole:"weather.icon"},{role:/^value\.precipitation\.chance$/,indicator:!1,type:e.StateType.Number,name:"PRECIPITATION_CHANCE",defaultRole:"value.precipitation.chance",defaultUnit:"%"},{role:/^value\.precipitation\.type$/,indicator:!1,type:e.StateType.Number,name:"PRECIPITATION_TYPE",defaultRole:"value.precipitation.type",defaultStates:{0:"NO",1:"RAIN",2:"SNOW",3:"HAIL"}},{role:/^value\.pressure$/,indicator:!1,type:e.StateType.Number,name:"PRESSURE",defaultRole:"value.pressure",defaultUnit:"mbar"},{role:/^value\.pressure\.tendency$/,indicator:!1,type:e.StateType.String,name:"PRESSURE_TENDENCY",defaultRole:"value.pressure.tendency"},{role:/^value\.temperature\.windchill$/,indicator:!1,type:e.StateType.Number,name:"REAL_FEEL_TEMPERATURE",defaultRole:"value.temperature.windchill",defaultUnit:"°C"},{role:/^value\.humidity$/,indicator:!1,type:e.StateType.Number,name:"HUMIDITY",defaultRole:"value.humidity",defaultUnit:"%"},{role:/^value\.uv$/,indicator:!1,type:e.StateType.Number,name:"UV",defaultRole:"value.uv"},{role:/^weather\.state$/,indicator:!1,type:e.StateType.String,name:"WEATHER",defaultRole:"weather.state"},{role:/^value\.direction\.wind$/,indicator:!1,type:e.StateType.String,name:"WIND_DIRECTION",defaultRole:"value.direction.wind",defaultUnit:"°"},{role:/^value\.speed\.wind\.gust$/,indicator:!1,type:e.StateType.Number,name:"WIND_GUST",defaultRole:"value.speed.wind.gust",defaultUnit:"km/h"},{role:/^value\.speed\.wind$/,indicator:!1,type:e.StateType.Number,name:"WIND_SPEED",defaultRole:"value.speed.wind$",defaultUnit:"km/h"},t.lowbat,t.unreach,t.maintain,t.error,t.battery],type:e.Types.weatherCurrent},camera:{states:[{role:/^link\.camera(\.\w+)?$/,indicator:!1,type:e.StateType.String,name:"URL",required:!0,defaultRole:"link.camera"},{role:/^switch(\.camera)?\.autofocus$/,indicator:!1,type:e.StateType.Boolean,write:!0,name:"AUTOFOCUS",required:!1,defaultRole:"switch.camera.autofocus"},{role:/^switch(\.camera)?\.autowhitebalance$/,indicator:!1,type:e.StateType.Boolean,write:!0,name:"AUTOWHITEBALANCE",required:!1,defaultRole:"switch.camera.autowhitebalance"},{role:/^switch(\.camera)?\.brightness$/,indicator:!1,type:e.StateType.Boolean,write:!0,name:"BRIGHTNESS",required:!1,defaultRole:"switch.camera.brightness"},{role:/^switch(\.camera)?\.nightmode$/,indicator:!1,type:e.StateType.Boolean,write:!0,name:"NIGHTMODE",required:!1,defaultRole:"switch.camera.nightmode"},{role:/^level(\.camera)?\.position$|^level(\.camera)?(\.ptz)$/,indicator:!1,type:e.StateType.Number,write:!0,name:"PTZ",required:!1,defaultRole:"level.camera.position"},t.unreach,t.lowbat,t.maintain,t.error,t.battery],type:e.Types.camera,enumRequired:!1},lock:{states:[{role:/^switch\.lock$/,indicator:!1,type:e.StateType.Boolean,write:!0,name:"SET",required:!0,defaultRole:"switch.lock"},{role:/^state$/,indicator:!1,type:e.StateType.Boolean,write:!1,name:"ACTUAL",required:!1,defaultRole:"state"},{indicator:!1,type:e.StateType.Boolean,write:!0,read:!1,name:"OPEN",required:!1,noSubscribe:!0,defaultRole:"button",ignoreRole:c},{role:/^(state|sensor)(\.door)?$/,indicator:!1,type:e.StateType.Boolean,write:!1,name:"DOOR_STATE",required:!1,defaultRole:"sensor.door",ignoreRole:c},t.direction,t.direction_enum,t.working,t.unreach,t.lowbat,t.maintain,t.error,t.battery],type:e.Types.lock},motion:{states:[{role:/^(state\.)?motion$|^sensor\.motion$/,indicator:!1,type:e.StateType.Boolean,name:"ACTUAL",required:!0,defaultRole:"sensor.motion",ignoreRole:c},{role:/brightness$/,indicator:!1,type:e.StateType.Number,name:"SECOND",required:!1,defaultRole:"value.brightness",defaultUnit:"lux",ignoreRole:c},t.unreach,t.lowbat,t.maintain,t.error,t.battery],type:e.Types.motion},window:{states:[{role:/^(state|sensor)(\.window)?/,indicator:!1,type:e.StateType.Boolean,enums:f.roleOrEnumWindow,name:"ACTUAL",required:!0,defaultRole:"sensor.window",ignoreRole:c},t.unreach,t.lowbat,t.maintain,t.error,t.battery],type:e.Types.window},windowTilt:{states:[{role:/^state$|^value(\.window)?$/,indicator:!1,type:e.StateType.Number,enums:f.roleOrEnumWindow,name:"ACTUAL",required:!0,defaultRole:"value.window"},t.unreach,t.lowbat,t.maintain,t.error,t.battery],type:e.Types.windowTilt},fireAlarm:{states:[{role:/^(state|sensor|indicator)(\.alarm)?\.fire$/,indicator:!1,type:e.StateType.Boolean,name:"ACTUAL",required:!0,defaultRole:"sensor.alarm.fire",defaultChannelRole:"sensor.alarm.fire"},t.unreach,t.lowbat,t.maintain,t.error,t.battery],type:e.Types.fireAlarm,enumRequired:!1},floodAlarm:{states:[{role:/^(state|sensor|indicator)(\.alarm)?\.flood$/,indicator:!1,type:e.StateType.Boolean,name:"ACTUAL",required:!0,defaultRole:"sensor.alarm.flood",defaultChannelRole:"sensor.alarm.flood"},t.unreach,t.lowbat,t.maintain,t.error,t.battery],type:e.Types.floodAlarm},door:{states:[{role:/^(state|sensor)(\.door)?/,indicator:!1,type:e.StateType.Boolean,write:!1,enums:f.roleOrEnumDoor,name:"ACTUAL",required:!0,defaultRole:"sensor.door"},t.unreach,t.lowbat,t.maintain,t.error,t.battery],type:e.Types.door},dimmer:{states:[{role:/^level(\.dimmer)?$|^level\.brightness$/,indicator:!1,type:e.StateType.Number,write:!0,enums:f.roleOrEnumLight,name:"SET",required:!0,defaultRole:"level.dimmer",ignoreRole:/^level\.dimspeed$/,defaultUnit:"%"},{role:/^value(\.dimmer)?$/,indicator:!1,type:e.StateType.Number,write:!1,enums:f.roleOrEnumLight,name:"ACTUAL",required:!1,defaultRole:"value.dimmer",defaultUnit:"%"},{role:/^switch(\.light)?$|^state$/,indicator:!1,type:e.StateType.Boolean,write:!0,enums:f.roleOrEnumLight,name:"ON_SET",required:!1,defaultRole:"switch.light"},{role:/^(state|switch|sensor)\.light|switch$/,indicator:!1,type:e.StateType.Boolean,write:!1,enums:f.roleOrEnumLight,name:"ON_ACTUAL",required:!1,defaultRole:"sensor.light",ignoreRole:c},{role:/^time\.(span|interval)$/,indicator:!1,type:e.StateType.Number,write:!0,enums:f.roleOrEnumLight,name:"TRANSITION_TIME",required:!1,defaultRole:"time.span",defaultUnit:"ms"},...Object.values(g),t.working,t.unreach,t.lowbat,t.maintain,t.error,t.battery],type:e.Types.dimmer},light:{states:[{role:/^switch(\.light)?$|^state$/,enums:f.roleOrEnumLight,indicator:!1,type:e.StateType.Boolean,write:!0,name:"SET",required:!0,defaultRole:"switch.light"},{role:/^(state|switch|sensor)\.light|switch$/,indicator:!1,type:e.StateType.Boolean,write:!1,enums:f.roleOrEnumLight,name:"ON_ACTUAL",required:!1,defaultRole:"sensor.light",ignoreRole:c},...Object.values(g),t.working,t.unreach,t.lowbat,t.maintain,t.error,t.battery],type:e.Types.light},volume:{states:[{role:/^level\.volume$/,indicator:!1,type:e.StateType.Number,min:e.StateType.Number,max:e.StateType.Number,write:!0,name:"SET",required:!0,defaultRole:"level.volume",defaultUnit:"%"},{role:/^value\.volume$/,indicator:!1,type:e.StateType.Number,min:e.StateType.Number,max:e.StateType.Number,write:!1,name:"ACTUAL",required:!1,defaultRole:"value.volume",defaultUnit:"%"},{role:/^media\.mute$/,indicator:!1,type:e.StateType.Boolean,write:!0,name:"MUTE",required:!1,defaultRole:"media.mute"},t.working,t.unreach,t.lowbat,t.maintain,t.error,t.battery],type:e.Types.volume},locationOne:{states:[{role:/^value\.gps$/,indicator:!1,type:e.StateType.String,write:!1,name:"GPS",required:!0,defaultRole:"value.gps"},{role:/^value\.gps\.elevation$/,indicator:!1,type:e.StateType.Number,write:!1,name:"ELEVATION",required:!1,defaultRole:"value.gps.elevation"},{role:/^value(\.gps)?\.radius$/,indicator:!1,type:e.StateType.Number,write:!1,name:"RADIUS",required:!1,defaultRole:"value.gps.radius"},{role:/^value(\.gps)?\.accuracy$/,indicator:!1,type:e.StateType.Number,write:!1,name:"ACCURACY",required:!1,defaultRole:"value.gps.accuracy"},t.unreach,t.lowbat,t.maintain,t.error,t.battery],type:e.Types.locationOne},location:{states:[{role:/^value(\.gps)?\.longitude$/,indicator:!1,type:e.StateType.Number,write:!1,name:"LONGITUDE",required:!0,defaultRole:"value.gps.longitude",defaultUnit:"°"},{role:/^value(\.gps)?\.latitude$/,indicator:!1,type:e.StateType.Number,write:!1,name:"LATITUDE",required:!0,defaultRole:"value.gps.latitude",defaultUnit:"°"},{role:/^value(\.gps)?\.elevation$/,indicator:!1,type:e.StateType.Number,write:!1,name:"ELEVATION",required:!1,defaultRole:"value.gps.elevation"},{role:/^value(\.gps)?\.radius$/,indicator:!1,type:e.StateType.Number,write:!1,name:"RADIUS",required:!1,defaultRole:"value.gps.radius"},{role:/^value(\.gps)?\.accuracy$/,indicator:!1,type:e.StateType.Number,write:!1,name:"ACCURACY",required:!1,defaultRole:"value.gps.accuracy"},t.unreach,t.lowbat,t.maintain,t.error,t.battery],type:e.Types.location},volumeGroup:{states:[{role:/^level\.volume\.group?$/,indicator:!1,type:e.StateType.Number,min:e.StateType.Number,max:e.StateType.Number,write:!0,name:"SET",required:!0,defaultRole:"level.volume.group",defaultUnit:"%"},{role:/^value\.volume\.group$/,indicator:!1,type:e.StateType.Number,min:e.StateType.Number,max:e.StateType.Number,write:!1,name:"ACTUAL",required:!1,defaultRole:"value.volume.group",defaultUnit:"%"},{role:/^media\.mute\.group$/,indicator:!1,type:e.StateType.Boolean,write:!0,name:"MUTE",required:!1,defaultRole:"media.mute.group"},t.working,t.unreach,t.lowbat,t.maintain,t.error,t.battery],type:e.Types.volumeGroup},levelSlider:{states:[{role:/^level(\..*)?$/,indicator:!1,type:e.StateType.Number,min:e.StateType.Number,max:e.StateType.Number,write:!0,name:"SET",required:!0,defaultRole:"level",defaultUnit:"%",ignoreRole:c},{role:/^value(\..*)?$/,indicator:!1,type:e.StateType.Number,min:e.StateType.Number,max:e.StateType.Number,write:!1,name:"ACTUAL",required:!1,defaultRole:"value",defaultUnit:"%",ignoreRole:c},t.working,t.unreach,t.lowbat,t.maintain,t.error,t.battery],type:e.Types.slider},socket:{states:[{role:/^switch(\.active)?$|^state$/,indicator:!1,type:e.StateType.Boolean,write:!0,name:"SET",required:!0,defaultRole:"switch"},{role:/^state(\.active)?$/,indicator:!1,type:e.StateType.Boolean,write:!1,name:"ACTUAL",required:!1,defaultRole:"sensor.switch"},...Object.values(g),t.working,t.unreach,t.lowbat,t.maintain,t.error],type:e.Types.socket},button:{states:[{role:/^(button|action)(\.[.\w]+)?$/,indicator:!1,type:e.StateType.Boolean,read:!1,write:!0,name:"SET",required:!0,noSubscribe:!0,defaultRole:"button"},t.unreach,t.lowbat,t.maintain,t.error,t.battery],type:e.Types.button},buttonSensor:{states:[{role:/^button(\.[.\w]+)?$/,indicator:!1,type:e.StateType.Boolean,read:!0,write:!1,name:"PRESS",required:!0,defaultRole:"button.press"},{role:/^button\.long/,indicator:!1,type:e.StateType.Boolean,read:!0,write:!1,name:"PRESS_LONG",required:!1,defaultRole:"button.long"},t.unreach,t.lowbat,t.maintain,t.error,t.battery],type:e.Types.buttonSensor},temperature:{states:[{role:/\.temperature$/,indicator:!1,write:!1,type:e.StateType.Number,name:"ACTUAL",required:!0,defaultRole:"value.temperature",defaultUnit:"°C"},{role:/\.humidity$/,indicator:!1,write:!1,type:e.StateType.Number,name:"SECOND",required:!1,defaultRole:"value.humidity",defaultUnit:"%"},t.unreach,t.lowbat,t.maintain,t.error,t.battery],type:e.Types.temperature},humidity:{states:[{role:/\.humidity$/,indicator:!1,write:!1,type:e.StateType.Number,name:"ACTUAL",required:!0,defaultRole:"value.humidity",defaultUnit:"%"},t.unreach,t.lowbat,t.maintain,t.error,t.battery],type:e.Types.humidity},illuminance:{states:[{role:/\.brightness$/,indicator:!1,write:!1,type:e.StateType.Number,name:"ACTUAL",required:!0,defaultRole:"value.brightness",defaultUnit:"lux"},t.unreach,t.lowbat,t.maintain,t.error,t.battery],type:e.Types.illuminance},image:{states:[{role:/\.icon$|^icon$|^icon\.|\.icon\.|\.chart\.url\.|\.chart\.url$|^url.icon$/,indicator:!1,write:!1,type:e.StateType.String,name:"URL",defaultRole:"icon",required:!0,ignoreRole:c},t.unreach,t.lowbat,t.maintain,t.error,t.battery],type:e.Types.image},info:{states:[{indicator:!1,name:"ACTUAL",required:!0,multiple:!0,noDeviceDetection:!0,ignoreRole:/\.inhibit$/,defaultRole:"state"},t.working,t.unreach,t.lowbat,t.maintain,t.error,t.battery],type:e.Types.info}};Object.defineProperty(k,"__esModule",{value:!0});k.ChannelDetector=void 0;const C=A,O=w,q=W;let ae=class E{constructor(){this.enums=null,this.cache={}}_applyPattern(r,l,a,o,u){var n,d;if(!((n=r[l])===null||n===void 0)&&n.common){let p=null;if(a.role&&(p=a.role.test(r[l].common.role||""),p&&a.channelRole)){const T=(0,O.getParentId)(l),R=((d=r[T])===null||d===void 0?void 0:d.common.role)||"";R&&(r[T].type==="channel"||r[T].type==="device")?p=a.channelRole.test(R):p=!1}if(p===!1)return!1;if(a.type){if(typeof a.type=="string"){if(a.type!==r[l].common.type)return!1}else if(Array.isArray(a.type)){let T=!1;for(let R=0;R<a.type.length;R++)if(a.type[R]===r[l].common.type){T=!0;break}if(!T)return!1}}if(a.objectType&&r[l].type!==a.objectType||a.stateName&&!a.stateName.test(l)||a.unit&&a.unit!==r[l].common.unit)return!1;if(a.ignoreRole){const T=r[l].common.role||"";if(T&&a.ignoreRole.test(T))return!1}if(a.indicator===!1&&(r[l].common.role||"").match(/^indicator(\.[.\w]+)?$/))return!1;if(a.state){const T=l.split(".").pop()||"";if(T&&!a.state.test(T))return!1}const h=a.defaultRole&&r[l].common.role===a.defaultRole,S=a.defaultUnit?r[l].common.unit===a.defaultUnit:!1;if(a.min===C.StateType.Number&&typeof r[l].common.min!==C.StateType.Number&&(!S||r[l].common.unit!=="%")||a.max===C.StateType.Number&&typeof r[l].common.max!==C.StateType.Number&&(!S||r[l].common.unit!=="%"))return!1;if(!h){if(a.write!==void 0&&a.write!==!!r[l].common.write||a.read!==void 0&&a.read!==(r[l].common.read===void 0?!0:r[l].common.read))return!1;if(a.enums&&typeof a.enums=="function"){const T=this._getEnumsForId(r,l,u);if(!o&&!a.enums(r[l],T||[]))return!1}}return!0}return!1}_getEnumsForId(r,l,a){var o;this.enums||(this.enums=(0,O.getFunctionEnums)(r,a));const u=[];if(this.enums.forEach(n=>{r[n].common.members.includes(l)&&u.push(n)}),!u.length&&((o=r[l])===null||o===void 0?void 0:o.type)==="state"){const n=(0,O.getParentId)(l);r[n]&&(r[n].type==="channel"||r[n].type==="device")&&this.enums.forEach(d=>{r[d].common.members.includes(n)&&u.push(d)})}return u.length?u:null}static copyState(r,l){const a=l||JSON.parse(JSON.stringify(r));return a.original=r.original||r,"enums"in r&&r.enums&&(a.enums=r.enums),"role"in r&&r.role&&(a.role=r.role),"channelRole"in r&&r.channelRole&&(a.channelRole=r.channelRole),a}_testOneState(r){var l,a,o,u,n,d;const p=r.objects,h=r.pattern,S=r.state,T=r.channelStates,R=r.usedIds,N=r.usedInCurrentDevice,$=r.ignoreIndicators,U=r.ignoreEnums,P=r.sortedKeys;let m=r.result,_=!1;for(const b of T)if(!(S.name==="COVER"&&(m!=null&&m.states.find(y=>y.id&&y.name==="COVER")))){if(S.indicator&&$){const s=b.split(".").pop()||"";if(s&&$.includes(s))continue}if((S.indicator||!N.includes(b)&&(S.notSingle||!R.includes(b)))&&this._applyPattern(p,b,S,U,P)){if(m||(m=JSON.parse(JSON.stringify(q.patterns[h])),r.result=m,m==null||m.states.forEach((y,s)=>E.copyState(q.patterns[h].states[s],y))),m.states.find(({id:y})=>y===b))_=!0;else for(const y of m.states)if(y.name===S.name){if(y.id){let s;r.favorId&&(b===r.favorId?s=!0:y.id===r.favorId&&(s=!1));const v=(o=(a=(l=p[y.id])===null||l===void 0?void 0:l.common)===null||a===void 0?void 0:a.role)!==null&&o!==void 0?o:"",I=(d=(n=(u=p[b])===null||u===void 0?void 0:u.common)===null||n===void 0?void 0:n.role)!==null&&d!==void 0?d:"",L=y.defaultRole;if(L&&s===void 0&&(I===L?s=!0:v===L&&(s=!1)),s===void 0){const D=I.split("."),G=D.length,H=v.split("."),F=H.length;I===""||D[0]==="state"&&H[0]!=="state"?s=!1:D[0]!=="state"&&H[0]==="state"||G>F?s=!0:G<F?s=!1:s=D[0]!=="state"}if(!s)break}y.id=b,_=!0;break}if(_&&(S.indicator||N.push(b),S.multiple&&T.length>1)){for(const y of T)if(y!==b&&(S.indicator||!N.includes(y)&&(S.notSingle||!R.includes(y)))&&this._applyPattern(p,y,S,U,P))if(S.indicator||N.push(y),Array.isArray(S)){const s=E.copyState(S[0]);s.id=y,m.states.push(s)}else{const s=E.copyState(S);s.id=y,m.states.push(s)}}}}return _}static findParentChannelOrDevice(r,l){if(!r[l])return;const a=l.split("."),o=l;if(r[l].type==="state"&&(a.pop(),l=a.join(".")),a.length<=2)return l;const u=r[l];if((u==null?void 0:u.type)==="device")return l;a.pop();const n=a.join("."),d=r[n];if(!d)return u?l:o;if(d.type==="device"||a.length<=2)return n;if((u==null?void 0:u.type)==="channel")return l;a.pop();const p=a.join("."),h=r[p];return!h||h.type!=="device"&&h.type!=="channel"?n:p}static getChannelOrDeviceStates(r,l,a,o=!1){var u;const n=(u=r[l])===null||u===void 0?void 0:u.type;switch(n){case void 0:return[...(0,O.getObjectsBelowId)(a,l)];case"state":case"channel":case"device":case"folder":if(o&&n!=="device"){const d=E.findParentChannelOrDevice(r,l);return d?[...(0,O.getObjectsBelowId)(a,d)]:[l]}return n!=="state"?[...(0,O.getObjectsBelowId)(a,l)]:[l];default:return[l]}}static patternIsAllowed(r,l,a){if(!r)return!1;if(Array.isArray(r.type)){for(let o=0;o<r.type.length;o++)if(l&&!l.includes(r.type[o])||a&&a.includes(r.type[o]))return!1;return!0}return l&&!l.includes(r.type)?!1:!a||!a.includes(r.type)}static allRequiredStatesFound(r){if(!r.result)return!1;const l=r.result.states;for(let a=0;a<l.length;a++)if(l[a].required&&!l[a].id)return!1;return!0}static cleanState(r,l){var a,o;const u=((o=(a=l[r.id])===null||a===void 0?void 0:a.common)===null||o===void 0?void 0:o.role)||"";if(r.name.includes("%d")&&r.role&&r.id&&u){const n=r.role.exec(u);n&&(r.name=r.name.replace("%d",n[1]))}r.role&&delete r.role,r.enums&&delete r.enums,r.original&&delete r.original}sortTypes(r,l){return l.forEach(([a,o])=>{const u=r.indexOf(a),n=r.indexOf(o);if(u===-1||n===-1)return;const d=r.splice(u,1);r.splice(n,0,...d)}),r}_detectNext(r){var l,a,o,u;const{objects:n,id:d,_usedIdsOptional:p=[],ignoreIndicators:h,prioritizedTypes:S,detectParent:T,allowedTypes:R,excludedTypes:N,_keysOptional:$}=r;let{_patternList:U}=r;r._usedIdsOptional=p;const P=E.getChannelOrDeviceStates(n,d,$||[],T);if(!(!((l=n[d])===null||l===void 0)&&l.common)&&!P.length)return null;if(r._checkedPatterns=(a=r._checkedPatterns)!==null&&a!==void 0?a:[],!U){const b=Object.keys(q.patterns).filter(y=>E.patternIsAllowed(q.patterns[y],R,N));U=S?this.sortTypes(b,S):b,r._patternList=U}const m={objects:n,channelStates:P,usedIds:p,ignoreIndicators:h||[],pattern:C.Types.unknown,usedInCurrentDevice:[],state:{},ignoreEnums:!!r.ignoreEnums,sortedKeys:$,favorId:r.detectParent?void 0:d},_=(o=n[d])===null||o===void 0?void 0:o.type;for(const b of U){if(r._checkedPatterns.includes(b))continue;r._checkedPatterns.push(b),delete m.result,m.pattern=b,m.usedInCurrentDevice=[];for(const s of q.patterns[b].states){let v=!1;if(m.state=s,this._testOneState(m)&&(v=!0),s.required&&!v){delete m.result;break}}if(!E.allRequiredStatesFound(m))continue;m.usedInCurrentDevice.forEach(s=>p.push(s));let y;if(_!=="device"){const s=(u=E.findParentChannelOrDevice(n,d))!==null&&u!==void 0?u:d;if(n[s]&&(n[s].type==="channel"||n[s].type==="device")){y=(0,O.getObjectsBelowId)($,s);for(const v of y)m.result.states.forEach((I,L)=>{!I.id&&(I.indicator||I.searchInParent)&&!I.noDeviceDetection&&this._applyPattern(n,v,I.original,!!r.ignoreEnums,m.sortedKeys)&&m.result&&(m.result.states[L].id=v)})}}if(m.result.states.forEach(s=>E.cleanState(s,m.objects)),r.limitTypesToOneOf){for(const s of r.limitTypesToOneOf)if(s.includes(b))for(const v of s)v===b||r._checkedPatterns.includes(v)||r._checkedPatterns.push(v)}return m.result}return null}detect(r){var l;const{objects:a,id:o,ignoreCache:u,detectAllPossibleDevices:n}=r;let{_keysOptional:d,_usedIdsOptional:p}=r;if(!u&&this.cache[o]){const{allowedTypes:T=[],excludedTypes:R=[]}=r;if(!T.length&&!R.length)return this.cache[o];const N=this.cache[o].filter(({type:$})=>T.includes($)&&!R.includes($));if(N.length)return N}d?r._keysOptionalSorted||d.sort():(d=Object.keys(a),d.sort(),r._keysOptional=d),p&&!r.detectParent&&(p=[],r._usedIdsOptional=p),r.ignoreEnums===void 0&&((l=r.allowedTypes)===null||l===void 0?void 0:l.length)===1&&(r.ignoreEnums=!0),n&&(r.excludedTypes||(r.excludedTypes=[]),r.excludedTypes.includes(C.Types.info)||r.excludedTypes.push(C.Types.info)),r._checkedPatterns=[];const h=[];let S;for(;S=this._detectNext(r);)h.push(S),r.detectAllPossibleDevices&&(r._usedIdsOptional=[]);return this.cache[o]=h.length?h:null,this.cache[o]}static getPatterns(){const r={};return Object.keys(q.patterns).forEach(l=>{const a=JSON.parse(JSON.stringify(q.patterns[l]));a.states.forEach((o,u)=>{const n=q.patterns[l].states[u];n.role&&(a.states[u].role=n.role.toString()),n.enums&&(a.states[u].enums=!0)}),r[l]=a}),r}};k.ChannelDetector=ae;ae.getEnums=O.getEnums;(function(i){Object.defineProperty(i,"__esModule",{value:!0}),i.StateType=i.Types=void 0;const r=k;i.default=r.ChannelDetector;var l=A;Object.defineProperty(i,"Types",{enumerable:!0,get:function(){return l.Types}}),Object.defineProperty(i,"StateType",{enumerable:!0,get:function(){return l.StateType}})})(V);const Se=le(V);export{Se as C,V as t};
1
+ import{g as le}from"./_commonjsHelpers-Cpj98o6Y.js";var V={},W={},B={};Object.defineProperty(B,"__esModule",{value:!0});B.StateType=B.Types=void 0;var x;(function(i){i.unknown="unknown",i.airCondition="airCondition",i.blind="blind",i.blindButtons="blindButtons",i.button="button",i.buttonSensor="buttonSensor",i.camera="camera",i.chart="chart",i.cie="cie",i.ct="ct",i.dimmer="dimmer",i.door="door",i.fireAlarm="fireAlarm",i.floodAlarm="floodAlarm",i.gate="gate",i.hue="hue",i.humidity="humidity",i.illuminance="illuminance",i.image="image",i.info="info",i.instance="instance",i.light="light",i.location="location",i.locationOne="locationOne",i.lock="lock",i.media="media",i.motion="motion",i.rgb="rgb",i.rgbSingle="rgbSingle",i.rgbwSingle="rgbwSingle",i.slider="slider",i.socket="socket",i.temperature="temperature",i.thermostat="thermostat",i.vacuumCleaner="vacuumCleaner",i.volume="volume",i.volumeGroup="volumeGroup",i.warning="warning",i.weatherCurrent="weatherCurrent",i.weatherForecast="weatherForecast",i.window="window",i.windowTilt="windowTilt"})(x||(B.Types=x={}));var Y;(function(i){i.Number="number",i.String="string",i.Boolean="boolean"})(Y||(B.StateType=Y={}));var R={};Object.defineProperty(R,"__esModule",{value:!0});R.checkEnum=K;R.roleOrEnum=L;R.roleOrEnumLight=ie;R.roleOrEnumBlind=ne;R.roleOrEnumGate=oe;R.roleOrEnumWindow=ue;R.roleOrEnumDoor=se;R.getEnums=de;R.getAllStatesInChannel=fe;R.getAllStatesInDevice=ce;R.getObjectsBelowId=re;R.getFunctionEnums=me;R.getParentId=pe;function K(i,r){let a=!1;return i&&i.forEach(l=>{const o=l.lastIndexOf(".");o!==-1&&(l=l.substring(o+1));for(const u in r)if(Object.prototype.hasOwnProperty.call(r,u)&&r[u].find(n=>n.test(l)))return a=!0,!1}),a}function L(i,r,a,l){return i.common.role&&(a!=null&&a.includes(i.common.role))?!0:K(r,l)}const j={en:[/lights?/i,/lamps?/i,/ceilings?/i],de:[/licht(er)?/i,/lampen?/i,/beleuchtung(en)?/i],ru:[/свет/i,/ламп[аы]/i,/торшеры?/,/подсветк[аи]/i,/лампочк[аи]/i,/светильники?/i]},J=["switch.light","dimmer","value.dimmer","level.dimmer","sensor.light","state.light"];function ie(i,r){return L(i,r,J,j)}const k={en:[/blinds?/i,/windows?/i,/shutters?/i],de:[/rollladen?/i,/fenstern?/i,/beschattung(en)?/i,/jalousien?/i],ru:[/ставни/i,/рольставни/i,/окна|окно/,/жалюзи/i]},X=["blind","level.blind","value.blind","action.stop","button.stop","button.stop.blind","button.open.blind","button.close.blind","level.tilt","value.tilt","button.tilt.open","button.tilt.close","button.tilt.stop"];function ne(i,r){return L(i,r,X,k)}const z={en:[/gates?/i],de:[/^toren$/i,/^tor$/i],ru:[/ворота/i]},Q=["gate","value.gate","switch.gate","action.stop","button.stop"];function oe(i,r){return L(i,r,Q,z)}const Z=["window","state.window","sensor.window","value.window"];function ue(i,r){return L(i,r,Z,k)}const ee={en:[/doors?/i,/gates?/i,/wickets?/i,/entry|entries/i],de:[/^türe?/i,/^tuere?/i,/^tore?$/i,/einfahrt(en)?/i,/pforten?/i],ru:[/двери|дверь/i,/ворота/i,/калитка|калитки/,/въезды?/i,/входы?/i]},te=["door","state.door","sensor.door"];function se(i,r){return L(i,r,te,ee)}function de(){return{door:{roles:te,words:ee},window:{roles:Z,words:k},blind:{roles:X,words:k},gate:{roles:Q,words:z},light:{roles:J,words:j}}}function fe(i,r){const a=[],l=new RegExp(`^${r.replace(/([$^.)([\]{}])/g,"\\$1")}\\.[^.]+$`);return i.forEach(o=>l.test(o)&&a.push(o)),a}function ce(i,r){const a=[],l=new RegExp(`^${r.replace(/([$^.)([\]{}])/g,"\\$1")}\\.[^.]+\\.[^.]+$`);return i.forEach(o=>l.test(o)&&a.push(o)),a}function re(i,r){const a=[];r+=".";let l=0,o=i.length-1,u=-1;for(;l<=o;){const n=Math.floor((l+o)/2);i[n]<r?l=n+1:(u=n,o=n-1)}if(u===-1||u>=i.length)return a;for(let n=u;n<i.length;n++){const s=i[n];if(s===r||s.startsWith(r))a.push(s);else break}return a}function me(i,r){var a,l,o;const u=[],n=/^enum\.functions\./,s=re(r,"enum");for(const d of s)Object.prototype.hasOwnProperty.call(i,d)&&n.test(d)&&((a=i[d])===null||a===void 0?void 0:a.type)==="enum"&&(!((o=(l=i[d].common)===null||l===void 0?void 0:l.members)===null||o===void 0)&&o.length)&&u.push(d);return u}function pe(i){const r=i.lastIndexOf(".");return r!==-1?i.substring(0,r):i}var H={};Object.defineProperty(H,"__esModule",{value:!0});H.patterns=void 0;const e=B,m=R,p=/^[^.]+\.setting\./,t={working:{role:/^indicator\.working$/,indicator:!0,notSingle:!0,name:"WORKING",required:!1,defaultRole:"indicator.working",defaultType:e.StateType.Boolean},unreach:{role:/^indicator(\.maintenance)?\.unreach$/,indicator:!0,type:e.StateType.Boolean,notSingle:!0,name:"UNREACH",required:!1,defaultRole:"indicator.maintenance.unreach"},lowbat:{role:/^indicator(\.maintenance)?\.(lowbat|battery)$/,indicator:!0,type:e.StateType.Boolean,notSingle:!0,name:"LOWBAT",required:!1,defaultRole:"indicator.maintenance.lowbat"},maintain:{role:/^indicator\.maintenance$/,indicator:!0,type:e.StateType.Boolean,notSingle:!0,name:"MAINTAIN",required:!1,defaultRole:"indicator.maintenance"},error:{role:/^indicator\.error$/,indicator:!0,notSingle:!0,name:"ERROR",required:!1,defaultRole:"indicator.error",defaultType:e.StateType.String},direction:{role:/^indicator\.direction$/,indicator:!0,type:e.StateType.Boolean,notSingle:!0,name:"DIRECTION",required:!1,defaultRole:"indicator.direction"},direction_enum:{role:/^(indicator|value)\.direction$/,type:e.StateType.Number,notSingle:!0,name:"DIRECTION",required:!1,defaultStates:{0:"None",1:"Up/Open",2:"Down/Close",3:"Unknown"},defaultRole:"value.direction"},reachable:{role:/^indicator\.reachable$/,indicator:!0,type:e.StateType.Boolean,notSingle:!0,name:"CONNECTED",required:!1,defaultRole:"indicator.reachable",inverted:!0},battery:{role:/^value\.battery$/,indicator:!1,type:e.StateType.Number,write:!1,name:"BATTERY",required:!1,defaultRole:"value.battery",defaultUnit:"%"}},O={power:{role:/^value\.power$/,indicator:!1,type:e.StateType.Number,write:!1,name:"ELECTRIC_POWER",required:!1,defaultRole:"value.power",defaultUnit:"W"},current:{role:/^value\.current$/,indicator:!1,type:e.StateType.Number,write:!1,name:"CURRENT",required:!1,defaultRole:"value.current",defaultUnit:"mA"},voltage:{role:/^value\.voltage$/,indicator:!1,type:e.StateType.Number,write:!1,name:"VOLTAGE",required:!1,defaultRole:"value.voltage",defaultUnit:"V"},consumption:{role:/^value\.power\.consumption$/,indicator:!1,type:e.StateType.Number,write:!1,name:"CONSUMPTION",required:!1,defaultRole:"value.power.consumption",defaultUnit:"Wh"},frequency:{role:/^value\.frequency$/,indicator:!1,type:e.StateType.Number,write:!1,name:"FREQUENCY",required:!1,defaultRole:"value.frequency",defaultUnit:"Hz"}};H.patterns={chart:{states:[{objectType:"chart",name:"CHART"}],type:e.Types.chart},mediaPlayer:{states:[{role:/^media\.state(\..*)?$/,indicator:!1,type:[e.StateType.Boolean,e.StateType.Number],name:"STATE",required:!0,defaultRole:"media.state"},{role:/^(button|action)\.play(\..*)?$/,indicator:!1,write:!0,type:e.StateType.Boolean,name:"PLAY",required:!1,noSubscribe:!0,defaultRole:"button.play"},{role:/^(button|action)\.pause(\..*)?$/,indicator:!1,write:!0,type:e.StateType.Boolean,name:"PAUSE",required:!1,noSubscribe:!0,defaultRole:"button.pause"},{role:/^(button|action)\.stop(\..*)?$/,indicator:!1,write:!0,type:e.StateType.Boolean,name:"STOP",required:!1,noSubscribe:!0,defaultRole:"button.stop"},{role:/^(button|action)\.next(\..*)?$/,indicator:!1,write:!0,type:e.StateType.Boolean,name:"NEXT",required:!1,noSubscribe:!0,defaultRole:"button.next"},{role:/^(button|action)\.prev(\..*)?$/,indicator:!1,write:!0,type:e.StateType.Boolean,name:"PREV",required:!1,noSubscribe:!0,defaultRole:"button.prev"},{role:/^media\.mode\.shuffle(\..*)?$/,indicator:!1,write:!0,type:e.StateType.Boolean,name:"SHUFFLE",required:!1,noSubscribe:!0,defaultRole:"media.mode.shuffle"},{role:/^media\.mode\.repeat(\..*)?$/,indicator:!1,write:!0,type:e.StateType.Number,name:"REPEAT",required:!1,noSubscribe:!0,defaultRole:"media.mode.repeat"},{role:/^media\.artist(\..*)?$/,indicator:!1,write:!1,type:e.StateType.String,name:"ARTIST",required:!1,defaultRole:"media.artist"},{role:/^media\.album(\..*)?$/,indicator:!1,write:!1,type:e.StateType.String,name:"ALBUM",required:!1,defaultRole:"media.album"},{role:/^media\.title(\..*)?$/,indicator:!1,write:!1,type:e.StateType.String,name:"TITLE",required:!1,defaultRole:"media.title"},{role:/^media\.cover(\.big)?$/,indicator:!1,write:!1,type:e.StateType.String,name:"COVER",required:!1,notSingle:!0,defaultRole:"media.cover"},{role:/^media\.cover(\..*)$/,indicator:!1,write:!1,type:e.StateType.String,name:"COVER",required:!1,notSingle:!0},{role:/^media\.duration(\..*)?$/,indicator:!1,write:!1,type:e.StateType.Number,name:"DURATION",required:!1,noSubscribe:!0,defaultRole:"media.duration",defaultUnit:"sec"},{role:/^media\.elapsed(\..*)?$/,indicator:!1,type:e.StateType.Number,name:"ELAPSED",required:!1,noSubscribe:!0,defaultRole:"media.elapsed",defaultUnit:"sec"},{role:/^media\.seek(\..*)?$/,indicator:!1,write:!0,type:e.StateType.Number,name:"SEEK",required:!1,noSubscribe:!0,defaultRole:"media.seek"},{role:/^media\.track(\..*)?$/,indicator:!1,type:e.StateType.String,name:"TRACK",required:!1,noSubscribe:!0,defaultRole:"media.track"},{role:/^media\.episode(\..*)?$/,indicator:!1,type:e.StateType.String,name:"EPISODE",required:!1,noSubscribe:!0,defaultRole:"media.episode"},{role:/^media\.season(\..*)?$/,indicator:!1,type:e.StateType.String,name:"SEASON",required:!1,noSubscribe:!0,defaultRole:"media.season"},{role:/^level(\.volume)?$/,indicator:!1,type:e.StateType.Number,min:e.StateType.Number,max:e.StateType.Number,write:!0,name:"VOLUME",required:!1,notSingle:!0,noSubscribe:!0,defaultRole:"level.volume",defaultUnit:"%"},{role:/^value(\.volume)?$/,indicator:!1,type:e.StateType.Number,min:e.StateType.Number,max:e.StateType.Number,write:!1,name:"VOLUME_ACTUAL",required:!1,notSingle:!0,noSubscribe:!0,defaultRole:"value.volume",defaultUnit:"%"},{role:/^media(\.mute)?$/,indicator:!1,type:e.StateType.Boolean,write:!0,name:"MUTE",required:!1,notSingle:!0,noSubscribe:!0,defaultRole:"media.mute"},{stateName:/\.(paused|playerState)$/,indicator:!1,name:"IGNORE",required:!1,multiple:!0,noSubscribe:!0},t.reachable,t.lowbat,t.maintain,t.error,t.battery],type:e.Types.media},weatherForecast:{states:[{role:/^weather\.icon(\.forecast\.0)?$/,indicator:!1,type:e.StateType.String,name:"ICON",required:!0,defaultRole:"weather.icon.forecast.0"},{role:/^value\.temperature\.min\.forecast\.0$/,indicator:!1,type:e.StateType.Number,name:"TEMP_MIN",required:!0,defaultRole:"value.temperature.min.forecast.0"},{role:/^value\.temperature\.max\.forecast\.0$/,indicator:!1,type:e.StateType.Number,name:"TEMP_MAX",required:!0,defaultRole:"value.temperature.max.forecast.0"},{role:/^value\.precipitation(\.forecast\.0)?$/,indicator:!1,type:e.StateType.Number,name:"PRECIPITATION_CHANCE",unit:"%",required:!1,defaultRole:"value.precipitation.forecast.0"},{role:/^value\.precipitation(\.forecast\.0)?$/,indicator:!1,type:e.StateType.Number,name:"PRECIPITATION",unit:"mm",required:!1,defaultRole:"value.precipitation.forecast.0"},{role:/^date(\.forecast\.0)?$/,indicator:!1,type:e.StateType.String,name:"DATE",required:!1,defaultRole:"date.forecast.0"},{role:/^dayofweek(\.forecast\.0)?$/,indicator:!1,type:e.StateType.String,name:"DOW",required:!1,defaultRole:"dayofweek.forecast.0"},{role:/^weather\.state(\.forecast\.0)?$/,indicator:!1,type:e.StateType.String,name:"STATE",required:!1,defaultRole:"weather.state.forecast.0"},{role:/^value\.temperature(\.forecast\.0)?$/,indicator:!1,type:e.StateType.Number,name:"TEMP",required:!1,defaultRole:"value.temperature.forecast.0"},{role:/^value\.pressure(\.forecast\.0)?$/,indicator:!1,type:e.StateType.Number,name:"PRESSURE",required:!1,defaultRole:"value.pressure.forecast.0"},{role:/^value\.humidity(\.forecast\.0)?$/,indicator:!1,type:e.StateType.Number,name:"HUMIDITY",required:!1,defaultRole:"value.humidity.forecast.0"},{role:/^(?:date|time)\.sunrise(?:\.forecast\.0)?$/,indicator:!1,type:e.StateType.String,name:"TIME_SUNRISE",required:!1,defaultRole:"date.sunrise"},{role:/^(?:date|time)\.sunset(?:\.forecast\.0)?$/,indicator:!1,type:e.StateType.String,name:"TIME_SUNSET",required:!1,defaultRole:"date.sunset"},{role:/^value\.temperature\.windchill(\.forecast\.0)?$/,indicator:!1,type:e.StateType.Number,name:"WIND_CHILL",required:!1,defaultRole:"value.temperature.windchill.forecast.0"},{role:/^value\.temperature\.feelslike(\.forecast\.0)?$/,indicator:!1,type:e.StateType.Number,name:"FEELS_LIKE",required:!1,defaultRole:"value.temperature.feelslike.forecast.0"},{role:/^value\.speed\.wind(\.forecast\.0)?$/,indicator:!1,type:e.StateType.Number,name:"WIND_SPEED",required:!1,defaultRole:"value.speed.wind.forecast.0"},{role:/^value\.direction\.wind(\.forecast\.0)?$/,indicator:!1,type:e.StateType.Number,name:"WIND_DIRECTION",required:!1,defaultRole:"value.direction.wind.forecast.0"},{role:/^weather\.direction\.wind(\.forecast\.0)?$/,indicator:!1,type:e.StateType.String,name:"WIND_DIRECTION_STR",required:!1,defaultRole:"weather.direction.wind.forecast.0"},{role:/^weather\.icon\.wind(\.forecast\.0)?$/,indicator:!1,type:e.StateType.String,name:"WIND_ICON",required:!1,defaultRole:"weather.icon.wind.forecast.0"},{role:/^weather\.chart\.url$/,indicator:!1,type:e.StateType.String,name:"HISTORY_CHART",required:!1,noSubscribe:!0,defaultRole:"weather.chart.url"},{role:/^weather\.chart\.url\.forecast$/,indicator:!1,type:e.StateType.String,name:"FORECAST_CHART",required:!1,noSubscribe:!0,defaultRole:"weather.chart.url.forecast"},{role:/^location$/,indicator:!1,type:e.StateType.String,name:"LOCATION",required:!1,defaultRole:"location"},{role:/^weather\.icon\.forecast.(\d+)$/,indicator:!1,type:e.StateType.String,name:"ICON%d",required:!1,searchInParent:!0,multiple:!0,noSubscribe:!0,notSingle:!0},{role:/^value\.temperature\.min\.forecast\.(\d+)$/,indicator:!1,type:e.StateType.Number,name:"TEMP_MIN%d",required:!1,searchInParent:!0,multiple:!0,noSubscribe:!0},{role:/^value\.temperature\.max\.forecast\.(\d+)$/,indicator:!1,type:e.StateType.Number,name:"TEMP_MAX%d",required:!1,searchInParent:!0,multiple:!0,noSubscribe:!0},{role:/^date\.forecast\.(\d+)$/,indicator:!1,type:e.StateType.String,name:"DATE%d",required:!1,searchInParent:!0,multiple:!0,noSubscribe:!0},{role:/^dayofweek\.forecast\.(\d+)$/,indicator:!1,type:e.StateType.String,name:"DOW%d",required:!1,searchInParent:!0,multiple:!0,noSubscribe:!0},{role:/^weather\.state\.forecast\.(\d+)$/,indicator:!1,type:e.StateType.String,name:"STATE%d",required:!1,searchInParent:!0,multiple:!0,noSubscribe:!0},{role:/^value\.temperature\.forecast\.(\d+)$/,indicator:!1,type:e.StateType.Number,name:"TEMP%d",required:!1,searchInParent:!0,multiple:!0,noSubscribe:!0},{role:/^value\.humidity\.forecast\.(\d+)$/,indicator:!1,type:e.StateType.Number,name:"HUMIDITY%d",required:!1,searchInParent:!0,multiple:!0,noSubscribe:!0},{role:/^value\.humidity\.max\.forecast\.(\d+)$/,indicator:!1,type:e.StateType.Number,name:"HUMIDITY_MAX%d",required:!1,searchInParent:!0,multiple:!0,noSubscribe:!0},{role:/^value\.precipitation\.forecast\.(\d+)$/,indicator:!1,type:e.StateType.Number,unit:"%",name:"PRECIPITATION_CHANCE%d",required:!1,searchInParent:!0,multiple:!0,noSubscribe:!0},{role:/^value\.precipitation\.forecast\.(\d+)$/,indicator:!1,type:e.StateType.Number,unit:"mm",name:"PRECIPITATION%d",required:!1,searchInParent:!0,multiple:!0,noSubscribe:!0},{role:/^value\.speed\.wind\.forecast\.(\d+)$/,indicator:!1,type:e.StateType.Number,name:"WIND_SPEED%d",required:!1,searchInParent:!0,multiple:!0,noSubscribe:!0},{role:/^value\.direction\.wind\.forecast\.(\d+)$/,indicator:!1,type:e.StateType.Number,name:"WIND_DIRECTION%d",required:!1,searchInParent:!0,multiple:!0,noSubscribe:!0},{role:/^weather\.direction\.wind\.forecast\.(\d+)$/,indicator:!1,type:e.StateType.String,name:"WIND_DIRECTION_STR%d",required:!1,searchInParent:!0,multiple:!0,noSubscribe:!0},{role:/^weather\.icon\.wind\.forecast\.(\d+)$/,indicator:!1,type:e.StateType.String,name:"WIND_ICON%d",required:!1,searchInParent:!0,multiple:!0,noSubscribe:!0}],type:e.Types.weatherForecast},rgb:{states:[{role:/^level\.color\.red$/,indicator:!1,type:e.StateType.Number,write:!0,name:"RED",required:!0,defaultRole:"level.color.red"},{role:/^level\.color\.green$/,indicator:!1,type:e.StateType.Number,write:!0,name:"GREEN",required:!0,defaultRole:"level.color.green"},{role:/^level\.color\.blue$/,indicator:!1,type:e.StateType.Number,write:!0,name:"BLUE",required:!0,defaultRole:"level.color.blue"},{role:/^level\.color\.white$/,indicator:!1,type:e.StateType.Number,write:!0,name:"WHITE",required:!1,defaultRole:"level.color.white"},{role:/^level\.dimmer$/,indicator:!1,type:e.StateType.Number,write:!0,name:"DIMMER",required:!1,defaultRole:"level.dimmer",defaultUnit:"%"},{role:/^level\.brightness$/,indicator:!1,type:e.StateType.Number,write:!0,name:"BRIGHTNESS",required:!1},{role:/^level\.color\.temperature$/,indicator:!1,type:e.StateType.Number,write:!0,name:"TEMPERATURE",required:!1,defaultRole:"level.color.temperature",defaultUnit:"°K"},{role:/^switch(\.light)?$|^state$/,indicator:!1,type:e.StateType.Boolean,write:!0,name:"ON",required:!1,defaultRole:"switch.light"},{role:/^(state|switch|sensor)\.light|switch$/,indicator:!1,type:e.StateType.Boolean,write:!1,name:"ON_ACTUAL",required:!1,defaultRole:"sensor.light",ignoreRole:p},{role:/^time\.(span|interval)$/,indicator:!1,type:e.StateType.Number,write:!0,name:"TRANSITION_TIME",required:!1,defaultRole:"time.span",defaultUnit:"ms"},...Object.values(O),t.working,t.unreach,t.lowbat,t.maintain,t.error,t.battery],type:e.Types.rgb},rgbwSingle:{states:[{role:/^level\.color\.rgbw$/,indicator:!1,type:e.StateType.String,write:!0,name:"RGBW",required:!0,defaultRole:"level.color.rgbw"},{role:/^level\.dimmer$/,indicator:!1,type:e.StateType.Number,write:!0,name:"DIMMER",required:!1,defaultRole:"level.dimmer",defaultUnit:"%"},{role:/^level\.brightness$/,indicator:!1,type:e.StateType.Number,write:!0,name:"BRIGHTNESS",required:!1,defaultUnit:"%"},{role:/^level\.color\.temperature$/,indicator:!1,type:e.StateType.Number,write:!0,name:"TEMPERATURE",required:!1,defaultRole:"level.color.temperature",defaultUnit:"°K"},{role:/^switch(\.light)?$/,indicator:!1,type:e.StateType.Boolean,write:!0,name:"ON",required:!1,defaultRole:"switch.light"},{role:/^(state|switch|sensor)\.light|switch$/,indicator:!1,type:e.StateType.Boolean,write:!1,name:"ON_ACTUAL",required:!1,defaultRole:"sensor.light",ignoreRole:p},{role:/^time\.(span|interval)$/,indicator:!1,type:e.StateType.Number,write:!0,name:"TRANSITION_TIME",required:!1,defaultRole:"time.span",defaultUnit:"ms"},...Object.values(O),t.working,t.unreach,t.lowbat,t.maintain,t.error,t.battery],type:e.Types.rgbwSingle},rgbSingle:{states:[{role:/^level\.color\.rgb$/,indicator:!1,type:e.StateType.String,write:!0,name:"RGB",required:!0,defaultRole:"level.color.rgb"},{role:/^level\.dimmer$/,indicator:!1,type:e.StateType.Number,write:!0,name:"DIMMER",required:!1,defaultRole:"level.dimmer",defaultUnit:"%"},{role:/^level\.brightness$/,indicator:!1,type:e.StateType.Number,write:!0,name:"BRIGHTNESS",required:!1,defaultUnit:"%"},{role:/^level\.color\.temperature$/,indicator:!1,type:e.StateType.Number,write:!0,name:"TEMPERATURE",required:!1,defaultRole:"level.color.temperature",defaultUnit:"°K"},{role:/^switch(\.light)?$/,indicator:!1,type:e.StateType.Boolean,write:!0,name:"ON",required:!1,defaultRole:"switch.light"},{role:/^(state|switch|sensor)\.light|switch$/,indicator:!1,type:e.StateType.Boolean,write:!1,name:"ON_ACTUAL",required:!1,defaultRole:"sensor.light",ignoreRole:p},{role:/^time\.(span|interval)$/,indicator:!1,type:e.StateType.Number,write:!0,name:"TRANSITION_TIME",required:!1,defaultRole:"time.span",defaultUnit:"ms"},...Object.values(O),t.working,t.unreach,t.lowbat,t.maintain,t.error,t.battery],type:e.Types.rgbSingle},cie:{states:[{role:/^level\.color\.cie$/,indicator:!1,type:e.StateType.String,write:!0,name:"CIE",required:!0,defaultRole:"level.color.cie"},{role:/^level\.dimmer$/,indicator:!1,type:e.StateType.Number,write:!0,name:"DIMMER",required:!1,defaultRole:"level.dimmer",defaultUnit:"%"},{role:/^level\.brightness$/,indicator:!1,type:e.StateType.Number,write:!0,name:"BRIGHTNESS",required:!1,defaultUnit:"%"},{role:/^level\.color\.temperature$/,indicator:!1,type:e.StateType.Number,write:!0,name:"TEMPERATURE",required:!1,defaultRole:"level.color.temperature",defaultUnit:"°K"},{role:/^switch(\.light)?$/,indicator:!1,type:e.StateType.Boolean,write:!0,name:"ON",required:!1,defaultRole:"switch.light"},{role:/^(state|switch|sensor)\.light|switch$/,indicator:!1,type:e.StateType.Boolean,write:!1,name:"ON_ACTUAL",required:!1,defaultRole:"sensor.light",ignoreRole:p},{role:/^time\.(span|interval)$/,indicator:!1,type:e.StateType.Number,write:!0,name:"TRANSITION_TIME",required:!1,defaultRole:"time.span",defaultUnit:"ms"},...Object.values(O),t.working,t.unreach,t.lowbat,t.maintain,t.error,t.battery],type:e.Types.cie},hue:{states:[{role:/^level\.color\.hue$/,indicator:!1,type:e.StateType.Number,write:!0,name:"HUE",required:!0,defaultRole:"level.color.hue",defaultUnit:"°"},{role:/^level\.dimmer$/,indicator:!1,type:e.StateType.Number,write:!0,name:"DIMMER",required:!1,searchInParent:!0,defaultRole:"level.dimmer",defaultUnit:"%"},{role:/^level\.brightness$/,indicator:!1,type:e.StateType.Number,write:!0,name:"BRIGHTNESS",required:!1},{role:/^level\.color\.saturation$/,indicator:!1,type:e.StateType.Number,write:!0,name:"SATURATION",required:!1,defaultRole:"level.color.saturation",defaultUnit:"%"},{role:/^level\.color\.temperature$/,indicator:!1,type:e.StateType.Number,write:!0,name:"TEMPERATURE",required:!1,defaultRole:"level.color.temperature",defaultUnit:"°K"},{role:/^switch(\.light)?$/,indicator:!1,type:e.StateType.Boolean,write:!0,name:"ON",required:!1,defaultRole:"switch.light"},{role:/^(state|switch|sensor)\.light|switch$/,indicator:!1,type:e.StateType.Boolean,write:!1,name:"ON_ACTUAL",required:!1,defaultRole:"sensor.light",ignoreRole:p},{role:/^time\.(span|interval)$/,indicator:!1,type:e.StateType.Number,write:!0,name:"TRANSITION_TIME",required:!1,defaultRole:"time.span",defaultUnit:"ms"},...Object.values(O),t.working,t.unreach,t.lowbat,t.maintain,t.error,t.battery],type:e.Types.hue},ct:{states:[{role:/^level\.color\.temperature$/,indicator:!1,type:e.StateType.Number,write:!0,name:"TEMPERATURE",required:!0,defaultRole:"level.color.temperature",defaultUnit:"°K"},{role:/^level\.dimmer$/,indicator:!1,type:e.StateType.Number,write:!0,name:"DIMMER",required:!1,defaultRole:"level.dimmer",defaultUnit:"%"},{role:/^level\.brightness$/,indicator:!1,type:e.StateType.Number,write:!0,name:"BRIGHTNESS",required:!1},{role:/^switch(\.light)?$/,indicator:!1,type:e.StateType.Boolean,write:!0,name:"ON",required:!1,defaultRole:"switch.light"},{role:/^(state|switch|sensor)\.light|switch$/,indicator:!1,type:e.StateType.Boolean,write:!1,name:"ON_ACTUAL",required:!1,defaultRole:"sensor.light",ignoreRole:p},{role:/^time\.(span|interval)$/,indicator:!1,type:e.StateType.Number,write:!0,name:"TRANSITION_TIME",required:!1,defaultRole:"time.span",defaultUnit:"ms"},...Object.values(O),t.working,t.unreach,t.lowbat,t.maintain,t.error,t.battery],type:e.Types.ct},warning:{states:[{role:/^value\.warning$/,indicator:!1,name:"LEVEL",required:!0,defaultRole:"value.warning"},{role:/^weather\.title\.short$/,indicator:!1,type:e.StateType.String,name:"TITLE",required:!1,defaultRole:"weather.title.short"},{role:/^weather\.title$/,indicator:!1,type:e.StateType.String,name:"INFO",required:!1,defaultRole:"weather.title"},{role:/^date\.start$/,indicator:!1,type:e.StateType.String,name:"START",required:!1,defaultRole:"date.start"},{role:/^date\.end$/,indicator:!1,type:e.StateType.String,name:"END",required:!1,defaultRole:"date.end"},{role:/^date$/,indicator:!1,type:e.StateType.String,name:"START",required:!1},{role:/^weather\.chart\.url/,indicator:!1,type:e.StateType.String,name:"ICON",required:!1,defaultRole:"weather.chart.url"},{role:/^weather\.state$/,indicator:!1,type:e.StateType.String,name:"DESC",required:!1,noSubscribe:!0,defaultRole:"weather.state"}],type:e.Types.warning},airCondition:{states:[{role:/temperature(\..*)?$/,indicator:!1,write:!0,type:e.StateType.Number,name:"SET",required:!0,defaultRole:"level.temperature",defaultUnit:"°C",ignoreRole:p},{role:/(level\.mode\.)?airconditioner$/,indicator:!1,write:!0,type:e.StateType.Number,searchInParent:!0,name:"MODE",required:!0,defaultRole:"level.mode.airconditioner",defaultStates:{0:"AUTO",3:"COOL",4:"DRY",5:"ECO",6:"FAN_ONLY",7:"HEAT",8:"OFF"},ignoreRole:p},{role:/(speed|mode)\.fan$/,indicator:!1,write:!0,type:e.StateType.Number,name:"SPEED",required:!1,defaultRole:"level.mode.fan",defaultStates:{0:"AUTO",1:"HIGH",2:"LOW",3:"MEDIUM",4:"QUIET",5:"TURBO"},ignoreRole:p},{role:/^switch(\.power)?$/,indicator:!1,write:!0,type:[e.StateType.Boolean,e.StateType.Number],searchInParent:!0,name:"POWER",required:!1,defaultRole:"switch.power"},{role:/temperature(\..*)?$/,indicator:!1,write:!1,type:e.StateType.Number,searchInParent:!0,name:"ACTUAL",required:!1,defaultRole:"value.temperature",defaultUnit:"°C",ignoreRole:p},{role:/humidity(\..*)?$/,indicator:!1,write:!1,type:e.StateType.Number,searchInParent:!0,name:"HUMIDITY",required:!1,defaultRole:"value.humidity",defaultUnit:"%",ignoreRole:p},{role:/^switch\.boost(\..*)?$/,indicator:!1,write:!0,type:[e.StateType.Boolean,e.StateType.Number],searchInParent:!0,name:"BOOST",required:!1,defaultRole:"switch.boost"},{role:/swing$/,indicator:!1,write:!0,type:e.StateType.Number,searchInParent:!0,name:"SWING",required:!1,defaultRole:"level.mode.swing",defaultStates:{0:"AUTO",1:"HORIZONTAL",2:"STATIONARY",3:"VERTICAL"},ignoreRole:p},{role:/swing$/,indicator:!1,write:!0,type:e.StateType.Boolean,searchInParent:!0,name:"SWING",required:!1,defaultRole:"switch.mode.swing",ignoreRole:p},...Object.values(O),t.unreach,t.maintain,t.error],type:e.Types.airCondition},thermostat:{states:[{role:/temperature(\..*)?$/,indicator:!1,write:!0,type:e.StateType.Number,name:"SET",required:!0,defaultRole:"level.temperature",defaultUnit:"°C",ignoreRole:p},{role:/temperature(\..*)?$/,indicator:!1,write:!1,type:e.StateType.Number,searchInParent:!0,name:"ACTUAL",required:!1,defaultRole:"value.temperature",defaultUnit:"°C",ignoreRole:p},{role:/humidity(\..*)?$/,indicator:!1,write:!1,type:e.StateType.Number,searchInParent:!0,name:"HUMIDITY",required:!1,defaultRole:"value.humidity",defaultUnit:"%",ignoreRole:p},{role:/^switch(\.mode)?\.boost(\..*)?$/,indicator:!1,write:!0,type:[e.StateType.Boolean,e.StateType.Number],searchInParent:!0,name:"BOOST",required:!1,defaultRole:"switch.mode.boost"},{role:/^switch(\.power)?$/,indicator:!1,write:!0,type:[e.StateType.Boolean,e.StateType.Number],searchInParent:!0,name:"POWER",required:!1,defaultRole:"switch.power"},{role:/^switch(\.mode)?\.party$/,indicator:!1,write:!0,type:[e.StateType.Boolean,e.StateType.Number],searchInParent:!0,name:"PARTY",required:!1,defaultRole:"switch.mode.party"},{role:/^level(\.mode)?\.thermostat$/,indicator:!1,write:!0,type:e.StateType.Number,searchInParent:!0,name:"MODE",required:!1,defaultRole:"level.mode.thermostat",defaultStates:{0:"AUTO",1:"MANUAL"}},t.working,t.unreach,t.lowbat,t.maintain,t.error,t.battery],type:e.Types.thermostat},vacuumCleaner:{states:[{role:/^switch\.power$/,indicator:!1,write:!0,type:[e.StateType.Boolean,e.StateType.Number],searchInParent:!0,name:"POWER",required:!0,defaultRole:"switch.power"},{role:/mode\.cleanup$/,indicator:!1,write:!0,type:e.StateType.Number,searchInParent:!0,name:"MODE",required:!0,defaultRole:"level.mode.cleanup",defaultStates:{0:"AUTO",1:"NORMAL",2:"QUIET",3:"ECO",4:"EXPRESS"},ignoreRole:p},{role:/vacuum\.map\.base64$/,indicator:!1,write:!1,type:e.StateType.String,searchInParent:!0,name:"MAP_BASE64",required:!1,defaultRole:"vacuum.map.base64",ignoreRole:p},{role:/vacuum\.map\.url$/,indicator:!1,write:!1,type:e.StateType.String,searchInParent:!0,name:"MAP_URL",required:!1,ignoreRole:p},{role:/mode\.work$/,indicator:!1,write:!0,type:e.StateType.Number,searchInParent:!0,name:"WORK_MODE",required:!1,defaultRole:"level.mode.work",defaultStates:{0:"AUTO",1:"FAST",2:"MEDIUM",3:"SLOW",4:"TURBO"},ignoreRole:p},{role:/^value\.water$/,indicator:!1,write:!1,type:e.StateType.Number,searchInParent:!0,unit:"%",name:"WATER",required:!1,defaultRole:"value.water",defaultUnit:"%"},{role:/^value\.waste$/,indicator:!1,write:!1,type:e.StateType.Number,searchInParent:!0,unit:"%",name:"WASTE",required:!1,defaultRole:"value.waste",defaultUnit:"%"},{role:/^value\.battery$/,indicator:!1,write:!1,type:e.StateType.Number,searchInParent:!0,unit:"%",name:"BATTERY",required:!1,defaultRole:"value.battery",defaultUnit:"%"},{role:/^value\.state$/,indicator:!1,write:!1,type:[e.StateType.Number,e.StateType.String],searchInParent:!0,name:"STATE",required:!1,defaultRole:"value.state"},{role:/^switch\.pause$/,indicator:!1,write:!0,type:e.StateType.Boolean,searchInParent:!0,name:"PAUSE",required:!1,defaultRole:"switch.pause"},{role:/^indicator(\.maintenance)?\.waste$|^indicator(\.alarm)?\.waste/,indicator:!0,type:e.StateType.Boolean,searchInParent:!0,name:"WASTE_ALARM",required:!1,defaultRole:"indicator.maintenance.waste"},{role:/^indicator(\.maintenance)?\.water$|^indicator(\.alarm)?\.water/,indicator:!0,type:e.StateType.Boolean,searchInParent:!0,name:"WATER_ALARM",required:!1,defaultRole:"indicator.maintenance.water"},{role:/^value(\.usage)?\.filter/,indicator:!0,type:e.StateType.Number,searchInParent:!0,name:"FILTER",required:!1,defaultRole:"value.usage.filter",defaultUnit:"%"},{role:/^value(\.usage)?\.brush/,indicator:!0,type:e.StateType.Number,searchInParent:!0,name:"BRUSH",required:!1,defaultRole:"value.usage.brush",defaultUnit:"%"},{role:/^value(\.usage)?\.sensors/,indicator:!0,type:e.StateType.Number,searchInParent:!0,name:"SENSORS",required:!1,defaultRole:"value.usage.sensors",defaultUnit:"%"},{role:/^value(\.usage)?\.brush\.side/,indicator:!0,type:e.StateType.Number,searchInParent:!0,name:"SIDE_BRUSH",required:!1,defaultRole:"value.usage.brush.side",defaultUnit:"%"},t.unreach,t.lowbat,t.maintain,t.error,t.battery],type:e.Types.vacuumCleaner},blinds:{states:[{role:/^level(\.blind)?$/,indicator:!1,type:e.StateType.Number,write:!0,enums:m.roleOrEnumBlind,name:"SET",required:!0,defaultRole:"level.blind",defaultUnit:"%"},{role:/^value(\.blind)?$/,indicator:!1,type:e.StateType.Number,enums:m.roleOrEnumBlind,name:"ACTUAL",required:!1,defaultRole:"value.blind",defaultUnit:"%"},{role:/^(button|action)\.stop(\.blind)?$/,indicator:!1,type:e.StateType.Boolean,write:!0,enums:m.roleOrEnumBlind,name:"STOP",required:!1,noSubscribe:!0,defaultRole:"button.stop.blind"},{role:/^(button|action)\.open(\.blind)?$/,indicator:!1,type:e.StateType.Boolean,write:!0,enums:m.roleOrEnumBlind,name:"OPEN",required:!1,noSubscribe:!0,defaultRole:"button.open.blind"},{role:/^(button|action)\.close(\.blind)?$/,indicator:!1,type:e.StateType.Boolean,write:!0,enums:m.roleOrEnumBlind,name:"CLOSE",required:!1,noSubscribe:!0,defaultRole:"button.close.blind"},{role:/^level(\.open)?\.tilt$/,indicator:!1,type:e.StateType.Number,write:!0,enums:m.roleOrEnumBlind,name:"TILT_SET",required:!1,defaultRole:"level.tilt"},{role:/^value(\.open)?\.tilt$/,indicator:!1,type:e.StateType.Number,enums:m.roleOrEnumBlind,name:"TILT_ACTUAL",required:!1,defaultRole:"value.tilt"},{role:/^(button|action)\.stop\.tilt$/,indicator:!1,type:e.StateType.Boolean,write:!0,enums:m.roleOrEnumBlind,name:"TILT_STOP",required:!1,noSubscribe:!0,defaultRole:"button.stop.tilt"},{role:/^(button|action)\.open\.tilt$/,indicator:!1,type:e.StateType.Boolean,write:!0,enums:m.roleOrEnumBlind,name:"TILT_OPEN",required:!1,noSubscribe:!0,defaultRole:"button.open.tilt"},{role:/^(button|action)\.close\.tilt$/,indicator:!1,type:e.StateType.Boolean,write:!0,enums:m.roleOrEnumBlind,name:"TILT_CLOSE",required:!1,noSubscribe:!0,defaultRole:"button.close.tilt"},t.direction,t.direction_enum,t.working,t.unreach,t.lowbat,t.maintain,t.error,t.battery],type:e.Types.blind},blindButtons:{states:[{role:/^(button|action)\.stop(\.blind)?$/,indicator:!1,type:e.StateType.Boolean,write:!0,enums:m.roleOrEnumBlind,name:"STOP",required:!0,noSubscribe:!0,defaultRole:"button.stop.blind"},{role:/^(button|action)\.open(\.blind)?$/,indicator:!1,type:e.StateType.Boolean,write:!0,enums:m.roleOrEnumBlind,name:"OPEN",required:!0,noSubscribe:!0,defaultRole:"button.open.blind"},{role:/^(button|action)\.close(\.blind)?$/,indicator:!1,type:e.StateType.Boolean,write:!0,enums:m.roleOrEnumBlind,name:"CLOSE",required:!0,noSubscribe:!0,defaultRole:"button.close.blind"},{role:/^level\.tilt$/,indicator:!1,type:e.StateType.Number,write:!0,enums:m.roleOrEnumBlind,name:"TILT_SET",required:!1,defaultRole:"level.tilt"},{role:/^value\.tilt$/,indicator:!1,type:e.StateType.Number,enums:m.roleOrEnumBlind,name:"TILT_ACTUAL",required:!1,defaultRole:"value.tilt"},{role:/^(button|action)\.stop\.tilt$/,indicator:!1,type:e.StateType.Boolean,write:!0,enums:m.roleOrEnumBlind,name:"TILT_STOP",required:!1,noSubscribe:!0,defaultRole:"button.stop.tilt"},{role:/^(button|action)\.open\.tilt$/,indicator:!1,type:e.StateType.Boolean,write:!0,enums:m.roleOrEnumBlind,name:"TILT_OPEN",required:!1,noSubscribe:!0,defaultRole:"button.open.tilt"},{role:/^(button|action)\.close\.tilt$/,indicator:!1,type:e.StateType.Boolean,write:!0,enums:m.roleOrEnumBlind,name:"TILT_CLOSE",required:!1,noSubscribe:!0,defaultRole:"button.close.tilt"},t.direction,t.direction_enum,t.working,t.unreach,t.lowbat,t.maintain,t.error,t.battery],type:e.Types.blindButtons},gate:{states:[{role:/^switch(\.gate)?$/,indicator:!1,type:e.StateType.Boolean,write:!0,enums:m.roleOrEnumGate,name:"SET",required:!0,defaultRole:"switch.gate"},{role:/^value(\.(position|gate))?$/,indicator:!1,type:e.StateType.Number,enums:m.roleOrEnumGate,name:"ACTUAL",required:!1,defaultRole:"value.blind",defaultUnit:"%",ignoreRole:p},{role:/^(button|action)\.stop$/,indicator:!1,type:e.StateType.Boolean,write:!0,enums:m.roleOrEnumGate,name:"STOP",required:!1,noSubscribe:!0,defaultRole:"button.stop"},t.direction,t.direction_enum,t.working,t.unreach,t.maintain,t.error],type:e.Types.gate},weatherCurrent:{states:[{role:/^value(\.temperature)?$/,indicator:!1,type:e.StateType.Number,name:"ACTUAL",required:!0,defaultRole:"value.temperature",defaultUnit:"°C"},{role:/^weather\.icon$/,indicator:!1,name:"ICON",required:!0,defaultRole:"weather.icon"},{role:/^value\.precipitation\.chance$/,indicator:!1,type:e.StateType.Number,name:"PRECIPITATION_CHANCE",defaultRole:"value.precipitation.chance",defaultUnit:"%"},{role:/^value\.precipitation\.type$/,indicator:!1,type:e.StateType.Number,name:"PRECIPITATION_TYPE",defaultRole:"value.precipitation.type",defaultStates:{0:"NO",1:"RAIN",2:"SNOW",3:"HAIL"}},{role:/^value\.pressure$/,indicator:!1,type:e.StateType.Number,name:"PRESSURE",defaultRole:"value.pressure",defaultUnit:"mbar"},{role:/^value\.pressure\.tendency$/,indicator:!1,type:e.StateType.String,name:"PRESSURE_TENDENCY",defaultRole:"value.pressure.tendency"},{role:/^value\.temperature\.windchill$/,indicator:!1,type:e.StateType.Number,name:"REAL_FEEL_TEMPERATURE",defaultRole:"value.temperature.windchill",defaultUnit:"°C"},{role:/^value\.humidity$/,indicator:!1,type:e.StateType.Number,name:"HUMIDITY",defaultRole:"value.humidity",defaultUnit:"%"},{role:/^value\.uv$/,indicator:!1,type:e.StateType.Number,name:"UV",defaultRole:"value.uv"},{role:/^weather\.state$/,indicator:!1,type:e.StateType.String,name:"WEATHER",defaultRole:"weather.state"},{role:/^value\.direction\.wind$/,indicator:!1,type:e.StateType.String,name:"WIND_DIRECTION",defaultRole:"value.direction.wind",defaultUnit:"°"},{role:/^value\.speed\.wind\.gust$/,indicator:!1,type:e.StateType.Number,name:"WIND_GUST",defaultRole:"value.speed.wind.gust",defaultUnit:"km/h"},{role:/^value\.speed\.wind$/,indicator:!1,type:e.StateType.Number,name:"WIND_SPEED",defaultRole:"value.speed.wind$",defaultUnit:"km/h"},t.lowbat,t.unreach,t.maintain,t.error,t.battery],type:e.Types.weatherCurrent},camera:{states:[{role:/^link\.camera(\.\w+)?$/,indicator:!1,type:e.StateType.String,name:"URL",required:!0,defaultRole:"link.camera"},{role:/^switch(\.camera)?\.autofocus$/,indicator:!1,type:e.StateType.Boolean,write:!0,name:"AUTOFOCUS",required:!1,defaultRole:"switch.camera.autofocus"},{role:/^switch(\.camera)?\.autowhitebalance$/,indicator:!1,type:e.StateType.Boolean,write:!0,name:"AUTOWHITEBALANCE",required:!1,defaultRole:"switch.camera.autowhitebalance"},{role:/^switch(\.camera)?\.brightness$/,indicator:!1,type:e.StateType.Boolean,write:!0,name:"BRIGHTNESS",required:!1,defaultRole:"switch.camera.brightness"},{role:/^switch(\.camera)?\.nightmode$/,indicator:!1,type:e.StateType.Boolean,write:!0,name:"NIGHTMODE",required:!1,defaultRole:"switch.camera.nightmode"},{role:/^level(\.camera)?\.position$|^level(\.camera)?(\.ptz)$/,indicator:!1,type:e.StateType.Number,write:!0,name:"PTZ",required:!1,defaultRole:"level.camera.position"},t.unreach,t.lowbat,t.maintain,t.error,t.battery],type:e.Types.camera,enumRequired:!1},lock:{states:[{role:/^switch\.lock$/,indicator:!1,type:e.StateType.Boolean,write:!0,name:"SET",required:!0,defaultRole:"switch.lock"},{role:/^state$/,indicator:!1,type:e.StateType.Boolean,write:!1,name:"ACTUAL",required:!1,defaultRole:"state"},{indicator:!1,type:e.StateType.Boolean,write:!0,read:!1,name:"OPEN",required:!1,noSubscribe:!0,defaultRole:"button",ignoreRole:p},{role:/^(state|sensor)(\.door)?$/,indicator:!1,type:e.StateType.Boolean,write:!1,name:"DOOR_STATE",required:!1,defaultRole:"sensor.door",ignoreRole:p},t.direction,t.direction_enum,t.working,t.unreach,t.lowbat,t.maintain,t.error,t.battery],type:e.Types.lock},motion:{states:[{role:/^(state\.)?motion$|^sensor\.motion$/,indicator:!1,type:e.StateType.Boolean,name:"ACTUAL",required:!0,defaultRole:"sensor.motion",ignoreRole:p},{role:/brightness$/,indicator:!1,type:e.StateType.Number,name:"SECOND",required:!1,defaultRole:"value.brightness",defaultUnit:"lux",ignoreRole:p},t.unreach,t.lowbat,t.maintain,t.error,t.battery],type:e.Types.motion},window:{states:[{role:/^(state|sensor)(\.window)?/,indicator:!1,type:e.StateType.Boolean,enums:m.roleOrEnumWindow,write:!1,name:"ACTUAL",required:!0,defaultRole:"sensor.window",ignoreRole:p},t.unreach,t.lowbat,t.maintain,t.error,t.battery],type:e.Types.window},windowTilt:{states:[{role:/^state$|^value(\.window)?$/,indicator:!1,type:e.StateType.Number,write:!1,enums:m.roleOrEnumWindow,name:"ACTUAL",required:!0,defaultRole:"value.window"},t.unreach,t.lowbat,t.maintain,t.error,t.battery],type:e.Types.windowTilt},fireAlarm:{states:[{role:/^(state|sensor|indicator)(\.alarm)?\.fire$/,indicator:!1,type:e.StateType.Boolean,name:"ACTUAL",required:!0,defaultRole:"sensor.alarm.fire",defaultChannelRole:"sensor.alarm.fire"},t.unreach,t.lowbat,t.maintain,t.error,t.battery],type:e.Types.fireAlarm,enumRequired:!1},floodAlarm:{states:[{role:/^(state|sensor|indicator)(\.alarm)?\.flood$/,indicator:!1,type:e.StateType.Boolean,name:"ACTUAL",required:!0,defaultRole:"sensor.alarm.flood",defaultChannelRole:"sensor.alarm.flood"},t.unreach,t.lowbat,t.maintain,t.error,t.battery],type:e.Types.floodAlarm},door:{states:[{role:/^(state|sensor)(\.door)?/,indicator:!1,type:e.StateType.Boolean,write:!1,enums:m.roleOrEnumDoor,name:"ACTUAL",required:!0,defaultRole:"sensor.door"},t.unreach,t.lowbat,t.maintain,t.error,t.battery],type:e.Types.door},dimmer:{states:[{role:/^level(\.dimmer)?$|^level\.brightness$/,indicator:!1,type:e.StateType.Number,write:!0,enums:m.roleOrEnumLight,name:"SET",required:!0,defaultRole:"level.dimmer",ignoreRole:/^level\.dimspeed$/,defaultUnit:"%"},{role:/^value(\.dimmer)?$/,indicator:!1,type:e.StateType.Number,write:!1,enums:m.roleOrEnumLight,name:"ACTUAL",required:!1,defaultRole:"value.dimmer",defaultUnit:"%"},{role:/^switch(\.light)?$|^state$/,indicator:!1,type:e.StateType.Boolean,write:!0,enums:m.roleOrEnumLight,name:"ON_SET",required:!1,defaultRole:"switch.light"},{role:/^(state|switch|sensor)\.light|switch$/,indicator:!1,type:e.StateType.Boolean,write:!1,enums:m.roleOrEnumLight,name:"ON_ACTUAL",required:!1,defaultRole:"sensor.light",ignoreRole:p},{role:/^time\.(span|interval)$/,indicator:!1,type:e.StateType.Number,write:!0,enums:m.roleOrEnumLight,name:"TRANSITION_TIME",required:!1,defaultRole:"time.span",defaultUnit:"ms"},...Object.values(O),t.working,t.unreach,t.lowbat,t.maintain,t.error,t.battery],type:e.Types.dimmer},light:{states:[{role:/^switch(\.light)?$|^state$/,enums:m.roleOrEnumLight,indicator:!1,type:e.StateType.Boolean,write:!0,name:"SET",required:!0,defaultRole:"switch.light"},{role:/^(state|switch|sensor)\.light|switch$/,indicator:!1,type:e.StateType.Boolean,write:!1,enums:m.roleOrEnumLight,name:"ON_ACTUAL",required:!1,defaultRole:"sensor.light",ignoreRole:p},...Object.values(O),t.working,t.unreach,t.lowbat,t.maintain,t.error,t.battery],type:e.Types.light},volume:{states:[{role:/^level\.volume$/,indicator:!1,type:e.StateType.Number,min:e.StateType.Number,max:e.StateType.Number,write:!0,name:"SET",required:!0,defaultRole:"level.volume",defaultUnit:"%"},{role:/^value\.volume$/,indicator:!1,type:e.StateType.Number,min:e.StateType.Number,max:e.StateType.Number,write:!1,name:"ACTUAL",required:!1,defaultRole:"value.volume",defaultUnit:"%"},{role:/^media\.mute$/,indicator:!1,type:e.StateType.Boolean,write:!0,name:"MUTE",required:!1,defaultRole:"media.mute"},t.working,t.unreach,t.lowbat,t.maintain,t.error,t.battery],type:e.Types.volume},locationOne:{states:[{role:/^value\.gps$/,indicator:!1,type:e.StateType.String,write:!1,name:"GPS",required:!0,defaultRole:"value.gps"},{role:/^value\.gps\.elevation$/,indicator:!1,type:e.StateType.Number,write:!1,name:"ELEVATION",required:!1,defaultRole:"value.gps.elevation"},{role:/^value(\.gps)?\.radius$/,indicator:!1,type:e.StateType.Number,write:!1,name:"RADIUS",required:!1,defaultRole:"value.gps.radius"},{role:/^value(\.gps)?\.accuracy$/,indicator:!1,type:e.StateType.Number,write:!1,name:"ACCURACY",required:!1,defaultRole:"value.gps.accuracy"},t.unreach,t.lowbat,t.maintain,t.error,t.battery],type:e.Types.locationOne},location:{states:[{role:/^value(\.gps)?\.longitude$/,indicator:!1,type:e.StateType.Number,write:!1,name:"LONGITUDE",required:!0,defaultRole:"value.gps.longitude",defaultUnit:"°"},{role:/^value(\.gps)?\.latitude$/,indicator:!1,type:e.StateType.Number,write:!1,name:"LATITUDE",required:!0,defaultRole:"value.gps.latitude",defaultUnit:"°"},{role:/^value(\.gps)?\.elevation$/,indicator:!1,type:e.StateType.Number,write:!1,name:"ELEVATION",required:!1,defaultRole:"value.gps.elevation"},{role:/^value(\.gps)?\.radius$/,indicator:!1,type:e.StateType.Number,write:!1,name:"RADIUS",required:!1,defaultRole:"value.gps.radius"},{role:/^value(\.gps)?\.accuracy$/,indicator:!1,type:e.StateType.Number,write:!1,name:"ACCURACY",required:!1,defaultRole:"value.gps.accuracy"},t.unreach,t.lowbat,t.maintain,t.error,t.battery],type:e.Types.location},volumeGroup:{states:[{role:/^level\.volume\.group?$/,indicator:!1,type:e.StateType.Number,min:e.StateType.Number,max:e.StateType.Number,write:!0,name:"SET",required:!0,defaultRole:"level.volume.group",defaultUnit:"%"},{role:/^value\.volume\.group$/,indicator:!1,type:e.StateType.Number,min:e.StateType.Number,max:e.StateType.Number,write:!1,name:"ACTUAL",required:!1,defaultRole:"value.volume.group",defaultUnit:"%"},{role:/^media\.mute\.group$/,indicator:!1,type:e.StateType.Boolean,write:!0,name:"MUTE",required:!1,defaultRole:"media.mute.group"},t.working,t.unreach,t.lowbat,t.maintain,t.error,t.battery],type:e.Types.volumeGroup},levelSlider:{states:[{role:/^level(\..*)?$/,indicator:!1,type:e.StateType.Number,min:e.StateType.Number,max:e.StateType.Number,write:!0,name:"SET",required:!0,defaultRole:"level",defaultUnit:"%",ignoreRole:p},{role:/^value(\..*)?$/,indicator:!1,type:e.StateType.Number,min:e.StateType.Number,max:e.StateType.Number,write:!1,name:"ACTUAL",required:!1,defaultRole:"value",defaultUnit:"%",ignoreRole:p},t.working,t.unreach,t.lowbat,t.maintain,t.error,t.battery],type:e.Types.slider},socket:{states:[{role:/^switch(\.active)?$|^state$/,indicator:!1,type:e.StateType.Boolean,write:!0,name:"SET",required:!0,defaultRole:"switch"},{role:/^state(\.active)?$/,indicator:!1,type:e.StateType.Boolean,write:!1,name:"ACTUAL",required:!1,defaultRole:"sensor.switch"},...Object.values(O),t.working,t.unreach,t.lowbat,t.maintain,t.error],type:e.Types.socket},button:{states:[{role:/^(button|action)(\.[.\w]+)?$/,indicator:!1,type:e.StateType.Boolean,read:!1,write:!0,name:"SET",required:!0,noSubscribe:!0,defaultRole:"button"},t.unreach,t.lowbat,t.maintain,t.error,t.battery],type:e.Types.button},buttonSensor:{states:[{role:/^button(\.[.\w]+)?$/,indicator:!1,type:e.StateType.Boolean,read:!0,write:!1,name:"PRESS",required:!0,defaultRole:"button.press"},{role:/^button\.long/,indicator:!1,type:e.StateType.Boolean,read:!0,write:!1,name:"PRESS_LONG",required:!1,defaultRole:"button.long"},t.unreach,t.lowbat,t.maintain,t.error,t.battery],type:e.Types.buttonSensor},temperature:{states:[{role:/\.temperature$/,indicator:!1,write:!1,type:e.StateType.Number,name:"ACTUAL",required:!0,defaultRole:"value.temperature",defaultUnit:"°C"},{role:/\.humidity$/,indicator:!1,write:!1,type:e.StateType.Number,name:"SECOND",required:!1,defaultRole:"value.humidity",defaultUnit:"%"},t.unreach,t.lowbat,t.maintain,t.error,t.battery],type:e.Types.temperature},humidity:{states:[{role:/\.humidity$/,indicator:!1,write:!1,type:e.StateType.Number,name:"ACTUAL",required:!0,defaultRole:"value.humidity",defaultUnit:"%"},t.unreach,t.lowbat,t.maintain,t.error,t.battery],type:e.Types.humidity},illuminance:{states:[{role:/\.brightness$/,indicator:!1,write:!1,type:e.StateType.Number,name:"ACTUAL",required:!0,defaultRole:"value.brightness",defaultUnit:"lux"},t.unreach,t.lowbat,t.maintain,t.error,t.battery],type:e.Types.illuminance},image:{states:[{role:/\.icon$|^icon$|^icon\.|\.icon\.|\.chart\.url\.|\.chart\.url$|^url.icon$/,indicator:!1,write:!1,type:e.StateType.String,name:"URL",defaultRole:"icon",required:!0,ignoreRole:p},t.unreach,t.lowbat,t.maintain,t.error,t.battery],type:e.Types.image},info:{states:[{indicator:!1,name:"ACTUAL",required:!0,multiple:!0,noDeviceDetection:!0,ignoreRole:/\.inhibit$/,defaultRole:"state"},t.working,t.unreach,t.lowbat,t.maintain,t.error,t.battery],type:e.Types.info}};Object.defineProperty(W,"__esModule",{value:!0});W.ChannelDetector=void 0;const A=B,U=R,_=H;let ae=class N{constructor(){this.enums=null,this.cache={}}_applyPattern(r,a,l,o,u){var n,s;if(!((n=r[a])===null||n===void 0)&&n.common){let d=null;if(l.role&&(d=l.role.test(r[a].common.role||""),d&&l.channelRole)){const S=(0,U.getParentId)(a),w=((s=r[S])===null||s===void 0?void 0:s.common.role)||"";w&&(r[S].type==="channel"||r[S].type==="device")?d=l.channelRole.test(w):d=!1}if(d===!1)return!1;if(l.type){if(typeof l.type=="string"){if(l.type!==r[a].common.type)return!1}else if(Array.isArray(l.type)){let S=!1;for(let w=0;w<l.type.length;w++)if(l.type[w]===r[a].common.type){S=!0;break}if(!S)return!1}}if(l.objectType&&r[a].type!==l.objectType||l.stateName&&!l.stateName.test(a)||l.unit&&l.unit!==r[a].common.unit)return!1;if(l.ignoreRole){const S=r[a].common.role||"";if(S&&l.ignoreRole.test(S))return!1}if(l.indicator===!1&&(r[a].common.role||"").match(/^indicator(\.[.\w]+)?$/))return!1;if(l.state){const S=a.split(".").pop()||"";if(S&&!l.state.test(S))return!1}const v=l.defaultRole&&r[a].common.role===l.defaultRole,T=l.defaultUnit?r[a].common.unit===l.defaultUnit:!1;if(l.min===A.StateType.Number&&typeof r[a].common.min!==A.StateType.Number&&(!T||r[a].common.unit!=="%")||l.max===A.StateType.Number&&typeof r[a].common.max!==A.StateType.Number&&(!T||r[a].common.unit!=="%"))return!1;if(!v){if(l.write!==void 0&&l.write!==!!r[a].common.write||l.read!==void 0&&l.read!==(r[a].common.read===void 0?!0:r[a].common.read))return!1;if(typeof l.enums=="function"){const S=this._getEnumsForId(r,a,u);if(!o&&!l.enums(r[a],S||[]))return!1}}return!0}return!1}_getEnumsForId(r,a,l){var o;this.enums||(this.enums=(0,U.getFunctionEnums)(r,l));const u=[];if(this.enums.forEach(n=>{r[n].common.members.includes(a)&&u.push(n)}),!u.length&&((o=r[a])===null||o===void 0?void 0:o.type)==="state"){const n=(0,U.getParentId)(a);r[n]&&(r[n].type==="channel"||r[n].type==="device")&&this.enums.forEach(s=>{r[s].common.members.includes(n)&&u.push(s)})}return u.length?u:null}static copyState(r,a){const l=a||JSON.parse(JSON.stringify(r));return l.original=r.original||r,"enums"in r&&r.enums&&(l.enums=r.enums),"role"in r&&r.role&&(l.role=r.role),"channelRole"in r&&r.channelRole&&(l.channelRole=r.channelRole),l}_testOneState(r){var a,l,o,u,n,s;const d=r.objects,v=r.pattern,T=r.state,S=r.channelStates,w=r.usedIds,g=r.usedInCurrentDevice,I=r.ignoreIndicators,C=r.ignoreEnums,D=r.sortedKeys;let c=r.result,$=!1;for(const y of S)if(!(T.name==="COVER"&&(c!=null&&c.states.find(b=>b.id&&b.name==="COVER")))){if(T.indicator&&I){const f=y.split(".").pop()||"";if(f&&I.includes(f))continue}if(!T.indicator){if(g.includes(y))continue;if(!T.notSingle){if(!r.detectAllPossibleDevices){if(w.includes(y))continue}}}if(this._applyPattern(d,y,T,C,D)){if(c||(c=JSON.parse(JSON.stringify(_.patterns[v])),r.result=c,c==null||c.states.forEach((b,f)=>N.copyState(_.patterns[v].states[f],b))),c.states.find(({id:b})=>b===y))$=!0;else for(const b of c.states)if(b.name===T.name){if(b.id){let f;r.favorId&&(y===r.favorId?f=!0:b.id===r.favorId&&(f=!1));const P=(o=(l=(a=d[b.id])===null||a===void 0?void 0:a.common)===null||l===void 0?void 0:l.role)!==null&&o!==void 0?o:"",h=(s=(n=(u=d[y])===null||u===void 0?void 0:u.common)===null||n===void 0?void 0:n.role)!==null&&s!==void 0?s:"",E=b.defaultRole;if(E&&f===void 0&&(h===E?f=!0:P===E&&(f=!1)),f===void 0){const q=h.split("."),M=q.length,G=P.split("."),F=G.length;h===""||q[0]==="state"&&G[0]!=="state"?f=!1:q[0]!=="state"&&G[0]==="state"||M>F?f=!0:M<F?f=!1:f=q[0]!=="state"}if(!f)break}b.id=y,$=!0;break}if($&&(T.indicator||g.push(y),T.multiple&&S.length>1)){for(const b of S)if(b!==y&&(T.indicator||!g.includes(b)&&(T.notSingle||!w.includes(b)))&&this._applyPattern(d,b,T,C,D))if(T.indicator||g.push(b),Array.isArray(T)){const f=N.copyState(T[0]);f.id=b,c.states.push(f)}else{const f=N.copyState(T);f.id=b,c.states.push(f)}}}}return $}static findParentChannelOrDevice(r,a,l){if(!r[a])return;const o=a.split("."),u=a;if(r[a].type==="state"&&(o.pop(),a=o.join(".")),o.length<=2)return a;const n=r[a];if((n==null?void 0:n.type)==="device"||l&&(n==null?void 0:n.type)==="channel")return a;if(l)return;o.pop();const s=o.join("."),d=r[s];if(!d)return n?a:u;if(d.type==="device"||o.length<=2)return s;if((n==null?void 0:n.type)==="channel")return a;o.pop();const v=o.join("."),T=r[v];return!T||T.type!=="device"&&T.type!=="channel"?s:v}static getChannelOrDeviceStates(r,a,l,o=!1,u=!1){var n;const s=(n=r[a])===null||n===void 0?void 0:n.type;switch(s){case void 0:return[...(0,U.getObjectsBelowId)(l,a)];case"state":case"channel":case"device":case"folder":if(o&&s!=="device"){const d=N.findParentChannelOrDevice(r,a);return d&&d!==a?[...(0,U.getObjectsBelowId)(l,d)]:[a]}if(s!=="state")return[...(0,U.getObjectsBelowId)(l,a)];if(u){const d=N.findParentChannelOrDevice(r,a,!0);return d&&d!==a?[...(0,U.getObjectsBelowId)(l,d)]:[a]}return[a];default:return[a]}}static patternIsAllowed(r,a,l){if(!r)return!1;if(Array.isArray(r.type)){for(let o=0;o<r.type.length;o++)if(a&&!a.includes(r.type[o])||l&&l.includes(r.type[o]))return!1;return!0}return a&&!a.includes(r.type)?!1:!l||!l.includes(r.type)}static allRequiredStatesFound(r){if(!r.result)return!1;const a=r.result.states;for(let l=0;l<a.length;l++)if(a[l].required&&!a[l].id)return!1;return!0}static cleanState(r,a){var l,o;const u=((o=(l=a[r.id])===null||l===void 0?void 0:l.common)===null||o===void 0?void 0:o.role)||"";if(r.name.includes("%d")&&r.role&&r.id&&u){const n=r.role.exec(u);n&&(r.name=r.name.replace("%d",n[1]))}r.role&&delete r.role,r.enums&&delete r.enums,r.original&&delete r.original}sortTypes(r,a){return a.forEach(([l,o])=>{const u=r.indexOf(l),n=r.indexOf(o);if(u===-1||n===-1)return;const s=r.splice(u,1);r.splice(n,0,...s)}),r}_detectNext(r){var a,l,o,u;const{objects:n,id:s,_usedIdsOptional:d=[],ignoreIndicators:v,prioritizedTypes:T,detectParent:S,detectOnlyChannel:w,allowedTypes:g,excludedTypes:I,_keysOptional:C,detectAllPossibleDevices:D}=r;let{_patternList:c}=r;r._usedIdsOptional=d;const $=N.getChannelOrDeviceStates(n,s,C||[],S,w);if(!(!((a=n[s])===null||a===void 0)&&a.common)&&!$.length)return null;if((l=r._checkedPatterns)!==null&&l!==void 0||(r._checkedPatterns=[]),!c){const f=Object.keys(_.patterns).filter(P=>N.patternIsAllowed(_.patterns[P],g,I));c=T?this.sortTypes(f,T):f,r._patternList=c}const y={objects:n,channelStates:$,usedIds:d,ignoreIndicators:v||[],pattern:"unknown",usedInCurrentDevice:[],state:{},ignoreEnums:!!r.ignoreEnums,sortedKeys:C,favorId:r.detectParent?void 0:s,detectAllPossibleDevices:D},b=(o=n[s])===null||o===void 0?void 0:o.type;for(const f of c){if(r._checkedPatterns.includes(f))continue;r._checkedPatterns.push(f),delete y.result,y.pattern=f,y.usedInCurrentDevice=[];for(const h of _.patterns[f].states){let E=!1;if(y.state=h,this._testOneState(y)&&(E=!0),h.required&&!E){delete y.result;break}}if(!N.allRequiredStatesFound(y))continue;y.usedInCurrentDevice.forEach(h=>d.push(h));let P;if(b!=="device"){const h=(u=N.findParentChannelOrDevice(n,s))!==null&&u!==void 0?u:s;if(n[h]&&(n[h].type==="channel"||n[h].type==="device")){P=(0,U.getObjectsBelowId)(C,h);for(const E of P)y.result.states.forEach((q,M)=>{!q.id&&(q.indicator||q.searchInParent)&&!q.noDeviceDetection&&this._applyPattern(n,E,q.original,!!r.ignoreEnums,y.sortedKeys)&&y.result&&(y.result.states[M].id=E)})}}if(y.result.states.forEach(h=>N.cleanState(h,y.objects)),r.limitTypesToOneOf){for(const h of r.limitTypesToOneOf)if(h.includes(f))for(const E of h)E===f||r._checkedPatterns.includes(E)||r._checkedPatterns.push(E)}return y.result}return null}detect(r){var a;const{objects:l,id:o,ignoreCache:u,detectAllPossibleDevices:n}=r;let{_keysOptional:s,_usedIdsOptional:d}=r;if(!u&&this.cache[o]){const{allowedTypes:S=[],excludedTypes:w=[]}=r;if(!S.length&&!w.length)return this.cache[o];const g=this.cache[o].filter(({type:I})=>S.includes(I)&&!w.includes(I));if(g.length)return g}s?r._keysOptionalSorted||s.sort():(s=Object.keys(l),s.sort(),r._keysOptional=s),d&&!r.detectParent&&(d=[],r._usedIdsOptional=d),r.ignoreEnums===void 0&&((a=r.allowedTypes)===null||a===void 0?void 0:a.length)===1&&(r.ignoreEnums=!0),n&&(r.excludedTypes||(r.excludedTypes=[]),r.excludedTypes.includes(A.Types.info)||r.excludedTypes.push(A.Types.info)),r._checkedPatterns=[];const v=[];let T;for(;T=this._detectNext(r);)v.push(T),r.detectAllPossibleDevices&&(r._usedIdsOptional=[]);return v.sort((S,w)=>{if(S.type===A.Types.info&&w.type!==A.Types.info)return 1;if(w.type===A.Types.info&&S.type!==A.Types.info)return-1;const g=S.states.find(c=>c.id===o&&c.required)?1:0,I=w.states.find(c=>c.id===o&&c.required)?1:0;if(g!==I)return I-g;if(!g){const c=S.states.find(y=>y.id===o)?1:0,$=w.states.find(y=>y.id===o)?1:0;if(c!==$)return $-c}const C=S.states.filter(c=>c.id).length;return w.states.filter(c=>c.id).length-C}),this.cache[o]=v.length?v:null,this.cache[o]}static getPatterns(){const r={};return Object.keys(_.patterns).forEach(a=>{const l=JSON.parse(JSON.stringify(_.patterns[a]));l.states.forEach((o,u)=>{const n=_.patterns[a].states[u];n.role&&(l.states[u].role=n.role.toString()),n.enums&&(l.states[u].enums=!0)}),r[a]=l}),r}};W.ChannelDetector=ae;ae.getEnums=U.getEnums;(function(i){Object.defineProperty(i,"__esModule",{value:!0}),i.StateType=i.Types=void 0;const r=W;i.default=r.ChannelDetector;var a=B;Object.defineProperty(i,"Types",{enumerable:!0,get:function(){return a.Types}}),Object.defineProperty(i,"StateType",{enumerable:!0,get:function(){return a.StateType}})})(V);const Se=le(V);export{Se as C,V as t};
@@ -0,0 +1 @@
1
+ import{j as t}from"./createSvgIcon-DlIk-fDn.js";import{i as u}from"./iobroker_javascript__loadShare__react__loadShare__-i8pXne9X.js";import{u as pe,a as xe,i as x,M as X,C as te,G as be,b as Ce,c as he,I as we,S as J,d as ve,e as le,j as je,D as Ie,f as Oe}from"./index-ee1BGSYh.js";import{i as N,C as Se}from"./index-Cjl4b70e.js";import"./_commonjsHelpers-Cpj98o6Y.js";import"./iobroker_javascript__mf_v__runtimeInit__mf_v__-DZdFIfoQ.js";import"./inheritsLoose-DNrhibGS.js";import"./preload-helper-BDBacUwf.js";function Ae(n){const s=pe().getMonitor(),[i,r]=xe(s,n);return u.useEffect(()=>s.subscribeToOffsetChange(r)),u.useEffect(()=>s.subscribeToStateChange(r)),i}let V;function ye(){return V||(V=new Image,V.src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=="),V}const De="_wrapperRules_nnott_1",ke="_rootWrapper_nnott_9",Ne="_addClass_nnott_14",ne={wrapperRules:De,rootWrapper:ke,addClass:Ne},$e="_switchesItem_10ls3_1",Be="_switchesItemActive_10ls3_28",Ee="_iconTheme_10ls3_36",se={switchesItem:$e,switchesItemActive:Be,iconTheme:Ee},ue=({name:n,id:e,active:s,icon:i,adapter:r,socket:o,onDoubleClick:c,title:l,onTouchMove:d,style:I})=>t.jsxs("div",{onDoubleClick:c,onTouchMove:d,title:l?x.I18n.t(l):void 0,className:x.Utils.clsx(se.switchesItem,s&&se.switchesItemActive,`block-${e}`),children:[t.jsx(X,{iconName:i,className:se.iconTheme,adapter:r,socket:o,style:I}),t.jsx("span",{children:n?x.I18n.t(n):""})]},e),Me="_cardStyle_8rq8v_1",qe="_cardStyleActive_8rq8v_17",He="_controlMenu_8rq8v_22",Te="_closeBtn_8rq8v_31",We="_isDelete_8rq8v_73",Pe="_drag_mobile_8rq8v_90",G={cardStyle:Me,cardStyleActive:qe,controlMenu:He,closeBtn:Te,isDelete:We,drag_mobile:Pe};function K(n,e,s){let i;switch(n){case"actions":if(s==="else")return i={...e,actions:{...e[n],else:[...e[n].else]}},i;if(s==="then")return i={...e,actions:{...e[n],then:[...e[n].then]}},i;throw console.error(`Unknown additionalParameter: ${s}`),new Error(`Unknown additionalParameter: ${s}`);case"triggers":return i={...e,triggers:[...e.triggers]},i;case"conditions":return i={...e,conditions:[...e.conditions]},i;default:throw new Error(`Unknown name: ${n}`)}}function z(n,e,s,i){var r;switch(n){case"actions":return e.actions[s]=e.actions[s].filter(o=>o._id!==i),e;case"conditions":return e.conditions[s]=(r=e.conditions[s])==null?void 0:r.filter(o=>o._id!==i),e;case"triggers":default:return e.triggers=e.triggers.filter(o=>o._id!==i),e}}function Fe(n,e,s){const{_id:i,acceptedBy:r}=n;let o;if(!r||!e[r])return console.warn(`Cannot find ${r}`),e;switch(r){case"actions":if(o=e.actions[s].find(c=>c._id===i),!o)console.warn(`Cannot find ${i}`);else{const c=e.actions[s].indexOf(o);e.actions[s][c]=n}return e;case"conditions":if(o=e.conditions[s].find(c=>c._id===i),!o)console.warn(`Cannot find ${i}`);else{const c=e.conditions[s].indexOf(o);e.conditions[s][c]=n}return e;default:if(o=e.triggers.find(c=>c._id===i),!o)console.warn(`Cannot find ${i}`);else{const c=e.triggers.indexOf(o);e.triggers[c]=n}return e}}const me=u.memo(n=>{var B;const{setUserRules:e,userRules:s,_id:i,id:r,blockValue:o,active:c,acceptedBy:l,isTourOpen:d,setTourStep:I,tourStep:S}=n,[O,_]=u.useState(null),{blocks:a,socket:k,onUpdate:H,setOnUpdate:w,onDebugMessage:f,enableSimulation:b}=u.useContext(te),p=u.useCallback(m=>a==null?void 0:a.find(C=>C.getStaticData().id===m),[a]),h=u.useCallback(m=>{const C=Fe(m,s,o);C&&e(C)},[s]),v=m=>{m.currentTarget!==O&&_(m.currentTarget)},M=()=>_(null),W=u.useMemo(()=>{const m=p(r)||be;return t.jsx(m,{...n,notFound:!p(r),isTourOpen:d,setTourStep:I,tourStep:S,onUpdate:H,setOnUpdate:w,enableSimulation:b,onDebugMessage:f,onChange:h,className:void 0,socket:k})},[s,H,f,b]),[$,q]=u.useState(!1);return t.jsxs("div",{onMouseMove:v,onMouseEnter:v,onMouseLeave:M,onMouseDown:m=>{if(m.ctrlKey){let C;const j=K(l,s,o);l==="conditions"?(C=j.conditions[o].find(g=>g._id===i),C&&j.conditions[o].splice(j.conditions[o].indexOf(C),0,{...C,_id:Date.now()})):l==="actions"?(C=j.actions[o].find(g=>g._id===i),C&&j.actions[o].splice(j.actions[o].indexOf(C),0,{...C,_id:Date.now()})):(C=j.triggers.find(g=>g._id===i),C&&j.triggers.splice(j[l].indexOf(C),0,{...C,_id:Date.now()})),e(j)}},id:"height",style:c?{width:(((B=document.getElementById("width"))==null?void 0:B.clientWidth)||0)-70}:void 0,className:`${G.cardStyle} ${c?G.cardStyleActive:null} ${$?G.isDelete:null}`,children:[t.jsx("div",{className:G.drag_mobile}),W,e&&t.jsx("div",{className:G.controlMenu,style:O?{opacity:1}:{opacity:0},children:t.jsx("div",{onClick:()=>{let m=K(l,s,o);m=z(l,m,o,i),q(!0),setTimeout(()=>{l==="triggers"&&w(!0),e(m)},300)},className:G.closeBtn})})]})}),Ue={position:"fixed",pointerEvents:"none",zIndex:100,left:0,top:0,width:"100%",height:"100%"},Je=(n,e,s)=>{if(!n||!e)return{display:"none"};let{x:i,y:r}=e;const o=`translate(${i}px, ${r}px)`;return{transform:o,WebkitTransform:o}},Le=n=>{const{itemType:e,isDragging:s,item:i,initialOffset:r,currentOffset:o,targetIds:c}=Ae(d=>({item:d.getItem(),itemType:d.getItemType(),initialOffset:d.getInitialSourceClientOffset(),currentOffset:d.getSourceClientOffset(),isDragging:d.isDragging(),targetIds:d.getTargetIds()})),l=()=>{switch(e){case"box":return c.length?t.jsx(me,{active:!0,...i,allBlocks:n.allBlocks}):t.jsx(ue,{active:!0,...i,socket:n.socket});default:return null}};return s?t.jsx("div",{style:Ue,children:t.jsx("div",{style:Je(r,o),children:l()})}):null},ze="_border_wrpm3_1",Ge="_emptyBlockStyle_wrpm3_6",Ke="_emptyBlock_wrpm3_6",Qe="_selectOnChange_wrpm3_22",Xe="_selectOnChangeHelp_wrpm3_28",Ye="_selectOnChangeHelpIcon_wrpm3_34",Ze="_emptyBlockNone_wrpm3_49",Ve="_mainBlockItemRules_wrpm3_55",Re="_nameBlockItems_wrpm3_63",et="_contentBlockItem_wrpm3_73",tt="_wrapperMargin_wrpm3_81",nt="_contentHeightOn_wrpm3_87",st="_contentHeightOff_wrpm3_99",ot="_cardAdd_wrpm3_105",it="_blockCardAdd_wrpm3_125",ct="_addClassOverflow_wrpm3_136",at="_addClassHeight_wrpm3_140",D={border:ze,emptyBlockStyle:Ge,emptyBlock:Ke,selectOnChange:Qe,selectOnChangeHelp:Xe,selectOnChangeHelpIcon:Ye,emptyBlockNone:Ze,mainBlockItemRules:Ve,nameBlockItems:Re,contentBlockItem:et,wrapperMargin:tt,contentHeightOn:nt,contentHeightOff:st,cardAdd:ot,blockCardAdd:it,addClassOverflow:ct,addClassHeight:at};function re(n,e){const[s,i]=u.useState(window.localStorage.getItem(e)?JSON.parse(window.localStorage.getItem(e)||""):n);return[s,o=>{window.localStorage.setItem(e,JSON.stringify(o)),i(o)},!!window.localStorage.getItem(e)]}function rt(n,e){let s=0,i=null,r;return function(...o){const c=Date.now();r=o,c-s>=e?(s=c,n.apply(this,o)):i||(i=setTimeout(()=>{s=Date.now(),i=null,n.apply(this,r)},e-(c-s)))}}function ee(n){if(Array.isArray(n))return n.map(e=>ee(e));if(typeof n=="function")return n.bind(null);if(n&&typeof n=="object"){const e={};return Object.keys(n).forEach(s=>{e[s]=ee(n[s])}),e}return n}const oe=rt((n,e)=>n(e),0);function R(n,e){const s=e.find(i=>i._id===n);return{card:s,index:s?e.indexOf(s):-1}}function ie(n,e,s,i,r,o,c,l,d){const{card:I,index:S}=R(n,s);if(!(S<e&&l<d)&&!(S>e&&l>d)&&I&&S!==e){const O=ee(s);O.splice(S,1),O.splice(e,0,I);const _=ee(r);switch(o){case"actions":_.actions[c]=O,oe(i,_);return;case"conditions":_.conditions[c]=O,oe(i,_);return;default:_.triggers=O,oe(i,_);return}}}const lt="_drag_7xfhc_1",dt="_root_7xfhc_11",de={drag:lt,root:dt},_e=({typeBlock:n,allProperties:e,id:s,isActive:i,setUserRules:r,userRules:o,children:c,_id:l,blockValue:d})=>{const{setOnUpdate:I}=u.useContext(te),[{opacity:S},O,_]=Ce({type:"box",item:()=>({...e,id:s,isActive:i,_id:l}),end:(w,f)=>{const{acceptedBy:b}=w,p=f.getDropResult();let h;if(!p)return typeof l=="number"&&!f.getTargetIds().length&&(h=K(b,o,d),h=z(b,h,d,l),r(h)),null;if(p.blockValue!==d){const v=typeof l=="number"?l:Date.now();h=K(b,o,p.blockValue);const M={id:w.id,acceptedBy:w.acceptedBy};switch(b){case"actions":return d&&(h=z("actions",h,d,v)),h=z("actions",h,p.blockValue,v),h.actions[p.blockValue].push({...M,_id:v}),r(h);case"conditions":return typeof d=="number"&&(h=z("conditions",h,d,v)),h=z("conditions",h,p.blockValue,v),h.conditions[p.blockValue].push({...M,_id:v}),r(h);default:return I(!0),h=z("triggers",h,p.blockValue,v),h.triggers.push({...M,_id:v}),r(h)}}},collect:w=>({opacity:w.isDragging()?.4:1,isDragging:w.isDragging()})}),a=u.useRef(null),[,k]=he({accept:"box",canDrop:()=>!1,hover({_id:w,acceptedBy:f},b){var W;if(!a.current||n!==f)return;const p=(W=a.current)==null?void 0:W.getBoundingClientRect(),h=(p.bottom-p.top)/2,v=b.getClientOffset(),M=((v==null?void 0:v.y)||0)-p.top;if(l&&w!==l)switch(f){case"actions":if(d==="then"||d==="else"){const{index:$}=R(l,o.actions[d]);$!==w&&ie(w,$,o[f][d],r,o,f,d,M,h)}return;case"conditions":if(typeof d=="number"){const{index:$}=R(l,o[f][d]);$!==w&&ie(w,$,o[f][d],r,o,f,d,M,h)}return;default:{const{index:$}=R(l,o[f]);$!==w&&ie(w,$,o[f],r,o,f,void 0,M,h);return}}}});u.useEffect(()=>{_(ye(),{captureDraggingState:!0})},[]),O(k(a));const H=window.innerWidth<600;return t.jsxs("div",{ref:H&&l?null:a,className:de.root,style:{opacity:S},children:[t.jsx("div",{className:l?de.drag:null,ref:l&&H?a:null}),c]})},ft=({onClose:n,open:e})=>t.jsxs(N.Dialog,{open:e,onClose:n,"aria-labelledby":"alert-dialog-title","aria-describedby":"alert-dialog-description",children:[t.jsx(N.DialogContent,{children:t.jsxs("div",{style:{fontSize:"1rem",fontFamily:'"Roboto", "Helvetica", "Arial", sans-serif',fontWeight:400,lineHeight:1.5,letterSpacing:"0.00938em"},children:[t.jsx("h3",{children:x.I18n.t("On condition change")}),t.jsx("div",{children:x.I18n.t("help_on_change")}),t.jsx("h3",{children:x.I18n.t("Just check")}),t.jsx("div",{children:x.I18n.t("help_just_check")})]})}),t.jsx(N.DialogActions,{children:t.jsx(N.Button,{onClick:n,color:"primary",autoFocus:!0,startIcon:t.jsx(Se,{}),children:x.I18n.t("OK")})})]}),gt=({onClose:n,open:e})=>t.jsxs(N.Dialog,{open:e,onClose:n,"aria-labelledby":"alert-dialog-title","aria-describedby":"alert-dialog-description",children:[t.jsx(N.DialogContent,{children:t.jsxs(N.DialogContentText,{id:"alert-dialog-description",children:[t.jsx("h3",{children:x.I18n.t("On condition change")}),t.jsx("div",{children:x.I18n.t("help_on_change")}),t.jsx("h3",{children:x.I18n.t("Just check")}),t.jsx("div",{children:x.I18n.t("help_just_check")})]})}),t.jsx(N.DialogActions,{children:t.jsx(N.Button,{onClick:n,color:"primary",autoFocus:!0,children:x.I18n.t("OK")})})]}),fe=({size:n,blockValue:e,boolean:s,typeBlock:i,userRules:r,setUserRules:o,animation:c,setTourStep:l,tourStep:d,isTourOpen:I,theme:S,themeType:O,themeName:_})=>{var T;const[a,k]=u.useState(!1),[H,w]=u.useState(!1),[f,b]=u.useState(!1),[p,h]=u.useState("");s===void 0&&(s=!0);const v=he({accept:"box",drop:()=>({blockValue:e}),hover:({acceptedBy:A,_id:L},Y)=>{k(A===i),b(!!L),h(Y.getHandlerId()||"")},canDrop:({acceptedBy:A})=>(w(A===i),A===i),collect:A=>{var L;return{isOver:A.isOver(),canDrop:((L=A.getItem())==null?void 0:L.acceptedBy)===i,offset:A.getClientOffset(),targetId:A.getHandlerId()}}}),M=v[0],{canDrop:W,isOver:$,offset:q,targetId:B}=M,m=v[1];u.useEffect(()=>{h("")},[q]);const C=W&&$;let j="";C?j=a?"#00fb003d":"#fb00002e":W?j=H?"#00fb003d":"#fb00002e":q&&(j=B===p?"#fb00002e":"");let g;return i==="actions"?g=r.actions[e]:i==="conditions"?g=r.conditions[e]:g=r.triggers,t.jsx("div",{ref:m,style:{backgroundColor:j},className:`${x.Utils.clsx(D.contentBlockItem,n&&D.addClassHeight)} ${s?c?D.contentHeightOn:null:D.contentHeightOff}`,children:t.jsxs("div",{className:D.wrapperMargin,children:[g.map(A=>t.jsx(_e,{typeBlock:i,...A,blockValue:e,allProperties:A,userRules:r,setUserRules:o,children:t.jsx(me,{...A,isTourOpen:I,setTourStep:l,tourStep:d,settings:A,blockValue:e,userRules:r,setUserRules:o,theme:S,themeType:O,themeName:_})},A._id)),t.jsx("div",{style:C&&a&&!f?{height:((T=document.getElementById("height"))==null?void 0:T.clientHeight)||200}:void 0,className:`${D.emptyBlockStyle} ${C&&a&&!f?D.emptyBlock:D.emptyBlockNone}`})]})})},ce=({size:n,typeBlock:e,name:s,nameAdditionally:i,additionally:r,border:o,userRules:c,setUserRules:l,iconName:d,adapter:I,socket:S,setTourStep:O,tourStep:_,isTourOpen:a,theme:k,themeType:H,themeName:w})=>{const[f,b,p]=re(e==="actions"?!1:[],`additionallyClickItems_${e}`),[h,v]=u.useState(!1),[M,W]=u.useState(!1);u.useEffect(()=>{if(e==="conditions"&&(f==null?void 0:f.length)!==c.conditions.length-1){const B=[];c.conditions.forEach((m,C)=>{C>0&&B.push({_id:Date.now(),open:!0})}),b([...f,...B])}e==="actions"&&!p&&c.actions.else.length&&b(!0)},[]);const[$,q]=u.useState(!1);return t.jsxs("div",{className:`${x.Utils.clsx(D.mainBlockItemRules,n&&D.addClassOverflow)} ${o&&!n?D.border:null}`,children:[t.jsxs("span",{id:"width",className:D.nameBlockItems,children:[t.jsx(X,{iconName:d,className:D.iconThemCard,adapter:I,socket:S}),s]}),e==="conditions"?t.jsxs("div",{style:{width:"100%"},children:[t.jsxs(N.Select,{variant:"standard",className:D.selectOnChange,value:c.justCheck||!1,onChange:B=>{const m=K("conditions",c);m.justCheck=B.target.value==="true",l(m)},children:[t.jsx(N.MenuItem,{value:"false",children:x.I18n.t("on condition change")}),t.jsx(N.MenuItem,{value:"true",children:x.I18n.t("just check")})]}),t.jsx(N.IconButton,{size:"small",title:x.I18n.t("Explanation"),className:D.selectOnChangeHelp,onClick:()=>v(!0),children:t.jsx(we,{className:D.selectOnChangeHelpIcon})})]}):null,t.jsx(fe,{setTourStep:O,tourStep:_,isTourOpen:a,blockValue:e==="actions"?"then":e==="conditions"?0:e,typeBlock:e,setUserRules:l,userRules:c,theme:k,themeName:w,themeType:H,size:n}),r&&[...Array(e==="actions"?1:c.conditions.length-1)].map((B,m)=>{const C=(j=m)=>e==="actions"?!!f:!!f.find((g,T)=>T===j&&g.open);return t.jsxs(u.Fragment,{children:[t.jsxs("div",{onClick:()=>{if(e==="actions")return b(!f),null;let j=JSON.parse(JSON.stringify(f));if(c.conditions[m+1].length)return j[m].open=!j[m].open,b(j),null;j=j.filter((g,T)=>T!==m),b(j),q(m),setTimeout(()=>{q(!1),l({...c,conditions:[...c.conditions.filter((g,T)=>T!==m+1)]})},250)},className:D.blockCardAdd,children:[C()?"-":"+",t.jsx("div",{className:D.cardAdd,children:i})]},m),t.jsx(fe,{blockValue:e==="actions"?"else":e==="conditions"?m+1:e,typeBlock:e,setUserRules:l,userRules:c,boolean:C(),animation:$===m,size:n,theme:k,themeName:w,themeType:H})]},`${m}_block_${e}`)}),r&&e==="conditions"&&t.jsxs("div",{onClick:()=>{b([...f,{_id:Date.now(),open:!0}]),l({...c,conditions:[...c.conditions,[]]}),q(c.conditions.length-1),setTimeout(()=>q(!1),1e3)},className:D.blockCardAdd,children:["+",t.jsx("div",{className:D.cardAdd,children:i})]}),t.jsx(ft,{open:h,onClose:()=>v(!1)}),t.jsx(gt,{open:M,onClose:()=>W(!1)})]})},ht="_menuRules_1qqcb_1",ut="_switchesRenderWrapper_1qqcb_13",mt="_menuOff_1qqcb_22",_t="_menuTitle_1qqcb_28",pt="_marginAuto_1qqcb_42",xt="_inputWidth_1qqcb_47",bt="_menuWrapper_1qqcb_52",Ct="_hamburgerWrapper_1qqcb_57",wt="_hamburgerOff_1qqcb_74",vt="_nothingFound_1qqcb_82",jt="_resetSearch_1qqcb_89",It="_controlPanel_1qqcb_101",Ot="_controlPanelAppBar_1qqcb_112",St="_addClassMenu_1qqcb_126",At="_addClassBackground_1qqcb_132",yt="_addClassPosition_1qqcb_136",E={menuRules:ht,switchesRenderWrapper:ut,menuOff:mt,menuTitle:_t,marginAuto:pt,inputWidth:xt,menuWrapper:bt,hamburgerWrapper:Ct,hamburgerOff:wt,nothingFound:vt,resetSearch:jt,controlPanel:It,controlPanelAppBar:Ot,addClassMenu:St,addClassBackground:At,addClassPosition:yt},Dt=n=>{const{allProperties:e,allProperties:{acceptedBy:s,id:i},setUserRules:r,userRules:o,setTourStep:c,tourStep:l,isTourOpen:d,onTouchMove:I,isActive:S}=n;return t.jsx(_e,{allProperties:e,id:e.id,isActive:S,setUserRules:r,userRules:o,children:t.jsx(ue,{onDoubleClick:()=>{d&&l===J.addScheduleByDoubleClick&&i==="TriggerScheduleBlock"&&c(J.openTagsMenu),d&&l===J.addActionPrintText&&i==="ActionPrintText"&&c(J.showJavascript);const O=Date.now();let _;switch(s){case"actions":_="then";break;case"conditions":_=o[s].length-1;break}const a=K(s,o,_),k={id:i,_id:O,acceptedBy:s};_!==void 0?s==="actions"?a.actions[_].push({...k}):s==="conditions"&&a.conditions[_].push({...k}):a.triggers.push({...k}),r(a)},...n,...e,onTouchMove:I})})},kt="_hamburgerMenu_hqnsm_8",Nt="_animate_hqnsm_21",ge={hamburgerMenu:kt,animate:Nt};function $t({bool:n}){return t.jsx("div",{className:`${ge.hamburgerMenu} ${n?ge.animate:""}`})}const Bt=({addClass:n,setAllBlocks:e,allBlocks:s,userRules:i,onChangeBlocks:r,setTourStep:o,tourStep:c,isTourOpen:l})=>{const{blocks:d,socket:I}=u.useContext(te),[S,O]=re(!1,"hamburgerOnOff"),[_,a]=re({text:"",type:"triggers",index:0},"filterControlPanel"),k=(f=_.text,b=_.type)=>{if(!d)return;let p=[...d];p=p.filter(h=>{if(!f)return!0;const{name:v}=h.getStaticData();return v&&x.I18n.t(v).toLowerCase().includes(f.toLowerCase())}),p=p.filter(h=>b===h.getStaticData().acceptedBy),e(p)},H=(f,b)=>{l&&b===0&&c===J.selectTriggers&&o(J.addScheduleByDoubleClick),l&&b===2&&c===J.selectActions&&o(J.addActionPrintText),a({..._,index:b,type:["triggers","conditions","actions"][b]}),k(_.text,["triggers","conditions","actions"][b])},w=f=>({id:`scrollable-force-tab-${f}`,"aria-controls":`scrollable-force-tabpanel-${f}`});return u.useEffect(()=>{k()},[d]),t.jsx(N.ClickAwayListener,{mouseEvent:!1,touchEvent:"onTouchStart",onClickAway:()=>O(!0),children:t.jsxs("div",{className:x.Utils.clsx(E.menuWrapper,n[1035]&&E.addClassMenu),children:[t.jsx("div",{className:`${E.hamburgerWrapper} ${S?E.hamburgerOff:null}`,onClick:()=>O(!S),children:t.jsx($t,{bool:!S})}),t.jsxs("div",{className:`${x.Utils.clsx(E.menuRules,n[1035]&&E.addClassBackground,n[835]&&E.addClassPosition)} ${S?E.menuOff:null}`,children:[t.jsx("div",{className:E.controlPanel,children:t.jsx(N.AppBar,{className:E.controlPanelAppBar,position:"static",children:t.jsxs(N.Tabs,{value:_.index,onChange:H,children:[t.jsx(N.Tab,{className:"blocks-triggers",title:x.I18n.t("Triggers"),icon:t.jsx(X,{iconName:"FlashOn"}),...w(0)}),t.jsx(N.Tab,{title:x.I18n.t("Conditions"),className:"blocks-conditions",icon:t.jsx(X,{iconName:"Help"}),...w(1)}),t.jsx(N.Tab,{title:x.I18n.t("Actions"),className:"blocks-actions",icon:t.jsx(X,{iconName:"PlayForWork"}),...w(2)})]})})}),t.jsx("div",{className:E.switchesRenderWrapper,children:t.jsxs("span",{children:[s.map(f=>{const{name:b,id:p,icon:h,adapter:v}=f.getStaticData();return t.jsx(u.Fragment,{children:t.jsx(Dt,{adapter:v,allProperties:f.getStaticData(),icon:h,id:p,isActive:!1,isTourOpen:l,name:b,onTouchMove:()=>O(!0),setTourStep:o,setUserRules:r,socket:I,tourStep:c,userRules:i})},p)}),!s.length&&t.jsxs("div",{className:E.nothingFound,children:[x.I18n.t("Nothing found"),"...",t.jsx("div",{className:E.resetSearch,onClick:()=>{a({..._,text:""}),k("")},children:x.I18n.t("reset search")})]})]})}),t.jsx("div",{className:x.Utils.clsx(E.menuTitle,E.marginAuto)}),t.jsx(ve,{className:E.inputWidth,fullWidth:!0,customValue:!0,value:_.text,size:"small",autoComplete:"off",label:x.I18n.t("search"),variant:"outlined",onChange:f=>{a({..._,text:f}),k(f)}})]})]})})};let ae=[];const Ut=({code:n,onChange:e,themeName:s,themeType:i,theme:r,setTourStep:o,tourStep:c,isTourOpen:l,command:d,scriptId:I,changed:S,running:O})=>{var j;const{blocks:_,socket:a,setOnUpdate:k,setOnDebugMessage:H,setEnableSimulation:w}=u.useContext(te),[f,b]=u.useState([]),[p,h]=u.useState(le(n)),[v,M]=u.useState(""),[W,$]=u.useState(!1);u.useEffect(()=>{let g,T;const A=(F,y)=>{F===`${g}.alive`&&T!==(y==null?void 0:y.val)&&(T=!!(y!=null&&y.val),T&&g&&(a==null||a.sendTo(g.replace(/^system\.adapter\./,""),"rulesOn",I)))},L=(F,y)=>{var U,Q;a&&g!==((U=y==null?void 0:y.common)==null?void 0:U.engine)&&(g&&(a.unsubscribeState(`${g}.alive`,A),T&&a.sendTo(g.replace(/^system\.adapter\./,""),"rulesOn",I)),g=(Q=y==null?void 0:y.common)==null?void 0:Q.engine,g&&g&&a.subscribeState(`${g}.alive`,A))},Y=(F,y)=>{if(y)try{const U=JSON.parse(y.val),Q=Date.now();if(U.ruleId===I&&Q-U.ts<1e3){const P=[...ae,{blockId:U.blockId,data:U.data,ts:U.ts}];P.length>200&&P.splice(0,200-P.length);for(let Z=P.length-1;Z>=0;Z--)if(P[Z].ts<Q-5e3){P.splice(0,Z);break}console.log(`Debug1: ${JSON.stringify(ae)}`),console.log(`Debug2: ${JSON.stringify(P)}`),ae=P,H(P)}}catch{console.error(`Cannot parse: ${y.val}`)}};return a==null||a.getObject(I).then(F=>{var y;g=(y=F==null?void 0:F.common)==null?void 0:y.engine,a.subscribeObject(I,L),g&&(a.subscribeState(`${g}.alive`,A),a.subscribeState(`${g.replace(/^system\.adapter\./,"")}.debug.rules`,Y))}),function(){a==null||a.unsubscribeState(I,A),g&&(a==null||a.unsubscribeObject(`${g}.alive`,L),T&&(a==null||a.sendTo(g.replace(/^system\.adapter\./,""),"rulesOff",I)),a==null||a.unsubscribeState(`${g.replace(/^system\.adapter\./,"")}.debug.rules`,Y))}},[]),u.useEffect(()=>{w(!S&&O)},[S,O,w]),u.useEffect(()=>{d&&(M(d),W||$(!0))},[d]),u.useEffect(()=>{const g=le(n);JSON.stringify(g)!==JSON.stringify(p)&&(h(g),k(!0))},[n]),u.useEffect(()=>{document.getElementsByTagName("HTML")[0].className=s||"blue"},[s]);const q=u.useCallback(g=>{h(g),_&&e(je(g,_))},[_,e]),B=u.useRef(null),[m,C]=u.useState({835:!1,1035:!1});return u.useEffect(()=>{B.current&&(B.current.clientWidth<=1035&&C({835:!1,1035:!0}),B.current.clientWidth<=835&&C({1035:!0,835:!0}),B.current.clientWidth>1035&&C({835:!1,1035:!1}))},[((j=B.current)==null?void 0:j.clientWidth)||0]),!_||!a?null:t.jsxs("div",{className:ne.wrapperRules,ref:B,children:[t.jsx(Le,{allBlocks:f,socket:a}),W?v==="export"?t.jsx(Ie,{scriptId:I,themeType:i,onClose:()=>$(!1),text:JSON.stringify(p,null,2)}):t.jsx(Oe,{themeType:i,onClose:g=>{$(!1),g&&q(JSON.parse(g))}}):null,t.jsxs("div",{className:x.Utils.clsx(ne.rootWrapper,m[835]&&ne.addClass),children:[t.jsx(Bt,{setAllBlocks:b,allBlocks:f,userRules:p,onChangeBlocks:q,setTourStep:o,tourStep:c,addClass:m,isTourOpen:l}),t.jsx(ce,{socket:a,setUserRules:q,userRules:p,isTourOpen:l,setTourStep:o,tourStep:c,name:`${x.I18n.t("when")}...`,typeBlock:"triggers",iconName:"FlashOn",size:m[835],themeType:i,themeName:s,theme:r}),t.jsx(ce,{socket:a,setUserRules:q,isTourOpen:l,setTourStep:o,tourStep:c,userRules:p,name:`...${x.I18n.t("and")}...`,typeBlock:"conditions",iconName:"Help",nameAdditionally:x.I18n.t("or"),additionally:!0,border:!0,size:m[835],themeType:i,themeName:s,theme:r}),t.jsx(ce,{socket:a,setUserRules:q,isTourOpen:l,setTourStep:o,tourStep:c,userRules:p,name:`...${x.I18n.t("then")}`,typeBlock:"actions",iconName:"PlayForWork",nameAdditionally:x.I18n.t("else"),additionally:!0,size:m[835],themeType:i,themeName:s,theme:r})]})]},"rulesEditor")};export{Ut as default};