From dd519e153e82976e8ebd5dc8146fde1f45c96438 Mon Sep 17 00:00:00 2001 From: GermanBluefox Date: Tue, 7 Jan 2025 19:02:39 +0000 Subject: [PATCH] Nothing changed, but try to rebuild --- README.md | 2 +- .../{index-B3QyvjYD.js => index-BM_eVAc7.js} | 2 +- .../{index-CEGXPVnF.js => index-C-7EcNoE.js} | 4 ++-- admin/chart/index.html | 9 ++------- admin/tab.html | 2 +- build-backend/lib/ChartModel.js | 7 +++++-- build-backend/lib/ChartModel.js.map | 2 +- src/lib/ChartModel.ts | 17 +++++++++-------- .../{index-CEGXPVnF.js => index-C-7EcNoE.js} | 4 ++-- www/index.html | 9 ++------- 10 files changed, 26 insertions(+), 32 deletions(-) rename admin/assets/{index-B3QyvjYD.js => index-BM_eVAc7.js} (98%) rename admin/chart/assets/{index-CEGXPVnF.js => index-C-7EcNoE.js} (98%) rename www/assets/{index-CEGXPVnF.js => index-C-7EcNoE.js} (98%) diff --git a/README.md b/README.md index 5993cd49..419b2e8d 100644 --- a/README.md +++ b/README.md @@ -115,7 +115,7 @@ You can debug view charts locally with: --> ## Changelog -### 2.0.0 (2025-01-05) +### **WORK IN PROGRESS** - (@GermanBluefox) Project was completely rewritten with TypeScript - (@GermanBluefox) Better mobile layouts added diff --git a/admin/assets/index-B3QyvjYD.js b/admin/assets/index-BM_eVAc7.js similarity index 98% rename from admin/assets/index-B3QyvjYD.js rename to admin/assets/index-BM_eVAc7.js index f84c98e2..e98a4557 100644 --- a/admin/assets/index-B3QyvjYD.js +++ b/admin/assets/index-BM_eVAc7.js @@ -819,5 +819,5 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho * @copyright Oleg Isonen (Slobodskoi) / Isonen 2014-present * @website https://github.com/cssinjs/jss * @license MIT - */eG();var rG=Date.now(),Fk="fnValues"+rG,Bk="fnStyle"+ ++rG,wQt=function(){return{onCreateRule:function(r,n,o){if(typeof n!="function")return null;var a=xA(r,{},o);return a[Bk]=n,a},onProcessStyle:function(r,n){if(Fk in n||Bk in n)return r;var o={};for(var a in r){var i=r[a];typeof i=="function"&&(delete r[a],o[a]=i)}return n[Fk]=o,r},onUpdate:function(r,n,o,a){var i=n,s=i[Bk];s&&(i.style=s(r)||{});var l=i[Fk];if(l)for(var d in l)i.prop(d,l[d](r),a)}}},As="@global",rT="@global ",xQt=function(){function t(r,n,o){this.type="global",this.at=As,this.isProcessed=!1,this.key=r,this.options=o,this.rules=new C_(De({},o,{parent:this}));for(var a in n)this.rules.add(a,n[a]);this.rules.process()}var e=t.prototype;return e.getRule=function(n){return this.rules.get(n)},e.addRule=function(n,o,a){var i=this.rules.add(n,o,a);return i&&this.options.jss.plugins.onProcessRule(i),i},e.replaceRule=function(n,o,a){var i=this.rules.replace(n,o,a);return i&&this.options.jss.plugins.onProcessRule(i),i},e.indexOf=function(n){return this.rules.indexOf(n)},e.toString=function(n){return this.rules.toString(n)},t}(),SQt=function(){function t(r,n,o){this.type="global",this.at=As,this.isProcessed=!1,this.key=r,this.options=o;var a=r.substr(rT.length);this.rule=o.jss.createRule(a,n,De({},o,{parent:this}))}var e=t.prototype;return e.toString=function(n){return this.rule?this.rule.toString(n):""},t}(),CQt=/\s*,\s*/g;function nG(t,e){for(var r=t.split(CQt),n="",o=0;o-1){var a=lG[e];if(!Array.isArray(a))return It.js+Fs(a)in r?It.css+a:!1;if(!o)return!1;for(var i=0;in?1:-1:r.length-n.length};return{onProcessStyle:function(r,n){if(n.type!=="style")return r;for(var o={},a=Object.keys(r).sort(t),i=0;i"u"?null:her(),fer()]}}function dG(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},e=t.baseClasses,r=t.newClasses;if(t.Component,!r)return e;var n=De({},e);return Object.keys(r).forEach(function(o){r[o]&&(n[o]="".concat(e[o]," ").concat(r[o]))}),n}var Yd={set:function(e,r,n,o){var a=e.get(r);a||(a=new Map,e.set(r,a)),a.set(n,o)},get:function(e,r,n){var o=e.get(r);return o?o.get(n):void 0},delete:function(e,r,n){var o=e.get(r);o.delete(n)}},ger=m.createContext(null);function uG(){var t=m.useContext(ger);return t}var ver=eG(mer()),yer=PZt(),_er=new Map,ber={disableGeneration:!1,generateClassName:yer,jss:ver,sheetsCache:null,sheetsManager:_er,sheetsRegistry:null},wer=m.createContext(ber),a9=-1e9;function xer(){return a9+=1,a9}var Ser={};function Cer(t){var e=typeof t=="function";return{create:function(n,o){var a;try{a=e?t(n):t}catch(l){throw l}if(!o||!n.overrides||!n.overrides[o])return a;var i=n.overrides[o],s=De({},a);return Object.keys(i).forEach(function(l){s[l]=ku(s[l],i[l])}),s},options:{}}}function $er(t,e,r){var n=t.state,o=t.stylesOptions;if(o.disableGeneration)return e||{};n.cacheClasses||(n.cacheClasses={value:null,lastProp:null,lastJSS:{}});var a=!1;return n.classes!==n.cacheClasses.lastJSS&&(n.cacheClasses.lastJSS=n.classes,a=!0),e!==n.cacheClasses.lastProp&&(n.cacheClasses.lastProp=e,a=!0),a&&(n.cacheClasses.value=dG({baseClasses:n.cacheClasses.lastJSS,newClasses:e,Component:r})),n.cacheClasses.value}function ker(t,e){var r=t.state,n=t.theme,o=t.stylesOptions,a=t.stylesCreator,i=t.name;if(!o.disableGeneration){var s=Yd.get(o.sheetsManager,a,n);s||(s={refs:0,staticSheet:null,dynamicStyles:null},Yd.set(o.sheetsManager,a,n,s));var l=De({},a.options,o,{theme:n,flip:typeof o.flip=="boolean"?o.flip:n.direction==="rtl"});l.generateId=l.serverGenerateClassName||l.generateClassName;var d=o.sheetsRegistry;if(s.refs===0){var h;o.sheetsCache&&(h=Yd.get(o.sheetsCache,a,n));var u=a.create(n,i);h||(h=o.jss.createStyleSheet(u,De({link:!1},l)),h.attach(),o.sheetsCache&&Yd.set(o.sheetsCache,a,n,h)),d&&d.add(h),s.staticSheet=h,s.dynamicStyles=tG(u)}if(s.dynamicStyles){var f=o.jss.createStyleSheet(s.dynamicStyles,De({link:!0},l));f.update(e),f.attach(),r.dynamicSheet=f,r.classes=dG({baseClasses:s.staticSheet.classes,newClasses:f.classes}),d&&d.add(f)}else r.classes=s.staticSheet.classes;s.refs+=1}}function Eer(t,e){var r=t.state;r.dynamicSheet&&r.dynamicSheet.update(e)}function Ter(t){var e=t.state,r=t.theme,n=t.stylesOptions,o=t.stylesCreator;if(!n.disableGeneration){var a=Yd.get(n.sheetsManager,o,r);a.refs-=1;var i=n.sheetsRegistry;a.refs===0&&(Yd.delete(n.sheetsManager,o,r),n.jss.removeStyleSheet(a.staticSheet),i&&i.remove(a.staticSheet)),e.dynamicSheet&&(n.jss.removeStyleSheet(e.dynamicSheet),i&&i.remove(e.dynamicSheet))}}function Oer(t,e){var r=m.useRef([]),n,o=m.useMemo(function(){return{}},e);r.current!==o&&(r.current=o,n=t()),m.useEffect(function(){return function(){n&&n()}},[o])}function Der(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},r=e.name,n=e.classNamePrefix,o=e.Component,a=e.defaultTheme,i=a===void 0?Ser:a,s=ji(e,["name","classNamePrefix","Component","defaultTheme"]),l=Cer(t),d=r||n||"makeStyles";l.options={index:xer(),name:r,meta:d,classNamePrefix:d};var h=function(){var f=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},g=uG()||i,y=De({},m.useContext(wer),s),b=m.useRef(),x=m.useRef();Oer(function(){var T={name:r,state:{},stylesCreator:l,stylesOptions:y,theme:g};return ker(T,f),x.current=!1,b.current=T,function(){Ter(T)}},[g,l]),m.useEffect(function(){x.current&&Eer(b.current,f),x.current=!0});var S=$er(b.current,f.classes,o);return S};return h}function pG(t){var e,r,n="";if(typeof t=="string"||typeof t=="number")n+=t;else if(typeof t=="object")if(Array.isArray(t))for(e=0;e1&&arguments[1]!==void 0?arguments[1]:{};return function(n){var o=r.defaultTheme,a=r.withTheme,i=a===void 0?!1:a,s=r.name,l=ji(r,["defaultTheme","withTheme","name"]),d=s,h=Der(e,De({defaultTheme:o,Component:n,name:s||n.displayName,classNamePrefix:d},l)),u=m.forwardRef(function(g,y){g.classes;var b=g.innerRef,x=ji(g,["classes","innerRef"]),S=h(De({},n.defaultProps,g)),T,E=x;return(typeof s=="string"||i)&&(T=uG()||o,s&&(E=NZt({theme:T,name:s,props:x})),i&&!E.theme&&(E.theme=T)),m.createElement(n,De({ref:b||y,classes:S},E))});return bE(u,n),u}},Mer=DZt();function Per(t,e){return Ier(t,De({defaultTheme:Mer},e))}var Ner=function(e){return{root:{flex:"1 1 auto",WebkitOverflowScrolling:"touch",overflowY:"auto",padding:"8px 24px","&:first-child":{paddingTop:20}},dividers:{padding:"16px 24px",borderTop:"1px solid ".concat(e.palette.divider),borderBottom:"1px solid ".concat(e.palette.divider)}}},Rer=A.forwardRef(function(e,r){var n=e.classes,o=e.className,a=e.dividers,i=a===void 0?!1:a,s=ji(e,["classes","className","dividers"]);return A.createElement("div",De({className:Aer(n.root,o,i&&n.dividers),ref:r},s))});const jer=Per(Ner,{name:"MuiDialogContent"})(Rer),Ua={timeSpan:200,aggregate:250,autoRefresh:150,bigButton:200},Nn={mainDiv:{gap:2},fieldsContainer:{"& > div":{display:"flex",pr:"20px",width:200}},popOver:{padding:16},refreshSelect:{display:"inline-block","& > div:before":{borderWidth:0},"& > div:hover:before":{borderBottom:0}},refreshSelectButtonTitle:{display:"inline-flex",paddingTop:6},settingsButton:{color:"currentColor",fontSize:16,textTransform:"inherit",flexGrow:1},grow1:{flexGrow:2},aggregateIcon:{marginTop:4},divider:t=>({borderLeftColor:t.palette.mode==="dark"?"#CCC":"#444",borderLeftStyle:"dotted",borderLeftWidth:"1px",width:"1px",height:"80%"})},Ler=t=>w.jsx(Re,{component:"div",sx:t.sx,title:t.tooltip,children:w.jsx(Bn,{variant:"standard",onChange:e=>t.updateValue(parseInt(e.target.value,10)),value:t.value.toString()||"",renderValue:t.renderValue,displayEmpty:!0,children:t.options?Object.keys(t.options).map(e=>w.jsx(Jt,{value:e,children:t.noTranslate?t.options[e]:P.t(t.options[e])},e)):null})}),i9={10:"10 minutes",30:"30 minutes",60:"1 hour",120:"2 hours",180:"3 hours",360:"6 hours",720:"12 hours",1440:"1 day",2880:"2 days",4320:"3 days",10080:"7 days",20160:"14 days","1m":"1 month","2m":"2 months","3m":"3 months","6m":"6 months","1y":"1 year","2y":"2 years"},s9={now:"now","1minute":"end of minute","5minutes":"end of 5 minutes","10minutes":"end of 10 minutes","30minutes":"end of 30 minutes","1hour":"end of hour","2hours":"end of 2 hours","3hours":"end of 3 hours","4hours":"end of 4 hours","6hours":"end of 6 hours","8hours":"end of 8 hours","12hours":"end of 12 hours",today:"end of day",weekEurope:"end of sunday",weekUsa:"end of saturday",week2Europe:"end of previous sunday",week2Usa:"end of previous saturday",month:"this month",year:"this year"},l9={"":"none",5:"5 seconds",10:"10 seconds",15:"15 seconds",20:"20 seconds",30:"30 seconds",60:"1 minute",120:"2 minutes",300:"5 minutes",600:"10 minutes",900:"15 minutes",1200:"20 minutes",1800:"30 minutes",3600:"1 hour",7200:"2 hours",10800:"3 hours",21600:"6 hours",43200:"12 hours",86400:"1 day"},Xk={auto:"Auto (Line or Steps)",line:"Line",bar:"Bar",polar:"Polar",scatterplot:"Scatter plot",steps:"Steps",stepsStart:"Steps on start",spline:"Spline"},Jk={minmax:"minmax",average:"average",min:"min",max:"max",total:"total",onchange:"raw",percentile:"percentile",integral:"integral",count:"count",none:"none",current:"current"};class zer extends m.Component{constructor(r){super(r);X(this,"windowWidth");X(this,"toolbarRef");X(this,"handleResize",()=>{this.toolbarRef.current&&this.toolbarRef.current.clientWidth!==this.state.clientWidth&&this.setState({clientWidth:this.toolbarRef.current.clientWidth})});this.windowWidth=this.props.windowWidth,this.state={timeSpanOpened:!1,aggregateOpened:!1,clientWidth:0,showMore:!1},this.toolbarRef=m.createRef()}componentDidMount(){window.addEventListener("resize",this.handleResize)}componentWillUnmount(){window.removeEventListener("resize",this.handleResize)}componentDidUpdate(){this.toolbarRef.current&&this.toolbarRef.current.clientWidth!==this.state.clientWidth&&(this.windowWidth=this.props.windowWidth,this.setState({clientWidth:this.toolbarRef.current.clientWidth}))}renderShowMore(){return this.state.showMore?w.jsxs(or,{maxWidth:"xs",fullWidth:!0,open:!0,onClose:()=>this.setState({showMore:!1}),children:[w.jsxs(jer,{children:[this.renderTimeSpanElements(),this.renderAggregateElements(),this.renderAutoRefresh()]}),w.jsx(pr,{children:w.jsx(tt,{variant:"contained",onClick:()=>this.setState({showMore:!1}),startIcon:w.jsx(Ar,{}),children:P.t("Close")})})]}):null}renderTimeSpanElements(){return[w.jsx(Dt,{fullWidth:!0,value:this.props.presetData.timeType,updateValue:r=>{const n=JSON.parse(JSON.stringify(this.props.presetData));n.timeType=r,this.props.onChange(n),window.localStorage.setItem("App.echarts.__timeType",r.toString())},label:"Type",options:{relative:"relative",static:"static"}},"time-type"),this.props.presetData.timeType==="static"?w.jsx(ty,{fullWidth:!0,date:this.props.presetData.start.toString(),time:this.props.presetData.start_time,updateValue:(r,n)=>{const o=JSON.parse(JSON.stringify(this.props.presetData));o.start=r,o.start_time=n,this.props.onChange(o),window.localStorage.setItem("App.echarts.__start",r),window.localStorage.setItem("App.echarts.__start_time",n)},label:"Start"},"static-start"):null,this.props.presetData.timeType==="static"?w.jsx(ty,{fullWidth:!0,date:this.props.presetData.end.toString(),time:this.props.presetData.end_time,updateValue:(r,n)=>{const o=JSON.parse(JSON.stringify(this.props.presetData));o.end=r,o.end_time=n,this.props.onChange(o),window.localStorage.setItem("App.echarts.__end",r),window.localStorage.setItem("App.echarts.__end_time",n)},label:"End"},"static-end"):null,this.props.presetData.timeType!=="static"?w.jsx(Dt,{fullWidth:!0,value:this.props.presetData.relativeEnd,updateValue:r=>{const n=JSON.parse(JSON.stringify(this.props.presetData));n.relativeEnd=r,this.props.onChange(n),window.localStorage.setItem("App.echarts.__relativeEnd",r)},label:"End",options:s9},"non-static-end"):null,this.props.presetData.timeType!=="static"?w.jsx(Dt,{fullWidth:!0,value:this.props.presetData.range.toString(),updateValue:r=>{const n=JSON.parse(JSON.stringify(this.props.presetData));n.range=r,this.props.onChange(n),window.localStorage.setItem("App.echarts.__range",r)},label:"Range",options:i9},"non-static-range"):null]}renderTimeSpan(){return w.jsxs(w.Fragment,{children:[w.jsxs(tt,{color:"grey",title:P.t("Time span"),size:"small",style:Nn.settingsButton,id:"timeSpanOpenButton",onClick:()=>this.setState({timeSpanOpened:!this.state.timeSpanOpened}),children:[w.jsx(ive,{}),this.props.presetData.timeType==="relative"?`${P.t(i9[this.props.presetData.range])} ${P.t("to")} ${P.t(s9[this.props.presetData.relativeEnd])}`:`${this.props.presetData.start} ${this.props.presetData.start_time} - ${this.props.presetData.end} ${this.props.presetData.end_time}`,w.jsx(z5,{})]}),w.jsx(Re,{sx:Nn.divider}),w.jsx(WE,{style:Nn.popOver,open:this.state.timeSpanOpened,onClose:()=>{this.setState({timeSpanOpened:!1})},anchorEl:()=>document.getElementById("timeSpanOpenButton"),anchorOrigin:{vertical:"bottom",horizontal:"center"},transformOrigin:{vertical:"top",horizontal:"center"},children:w.jsx("div",{style:Nn.popOver,children:w.jsx(Re,{component:"div",sx:Nn.fieldsContainer,children:this.renderTimeSpanElements()})})})]})}renderAggregateElements(){return[w.jsx(Dt,{fullWidth:!0,value:this.props.presetData.chartType,updateValue:r=>{const n=JSON.parse(JSON.stringify(this.props.presetData));n.chartType=r,this.props.onChange(n),window.localStorage.setItem("App.echarts.__chartType",r)},label:"Chart type",options:Xk},"chart-type"),this.props.presetData.chartType!=="auto"?w.jsx(Dt,{fullWidth:!0,value:this.props.presetData.aggregate,updateValue:r=>{const n=JSON.parse(JSON.stringify(this.props.presetData));n.aggregate=r,this.props.onChange(n),window.localStorage.setItem("App.echarts.__aggregate",r)},label:"Aggregate",options:Jk},"aggregate"):null,this.props.presetData.aggregate!=="onchange"?w.jsx(Dt,{fullWidth:!0,value:this.props.presetData.aggregateType,updateValue:r=>{const n=JSON.parse(JSON.stringify(this.props.presetData));n.aggregateType=r,this.props.onChange(n),window.localStorage.setItem("App.echarts.__aggregateType",r)},label:"Step type",options:{count:"counts",step:"seconds"}},"aggregateType"):null,this.props.presetData.aggregate!=="onchange"?w.jsx(Er,{fullWidth:!0,value:this.props.presetData.aggregateSpan,updateValue:r=>{const n=JSON.parse(JSON.stringify(this.props.presetData));n.aggregateSpan=r,this.props.onChange(n),window.localStorage.setItem("App.echarts.__aggregateSpan",r.toString())},label:this.props.presetData.aggregateType==="step"?"Seconds":"Counts"},"aggregateSpan"):null]}renderAggregate(){return w.jsxs(w.Fragment,{children:[w.jsxs(tt,{color:"grey",title:P.t("Aggregate"),size:"small",style:Nn.settingsButton,id:"aggregateOpenButton",onClick:()=>this.setState({aggregateOpened:!this.state.aggregateOpened}),children:[w.jsx(aZt,{style:Nn.aggregateIcon}),Xk[this.props.presetData.chartType]?P.t(Xk[this.props.presetData.chartType]):"","/",Jk[this.props.presetData.aggregate]?P.t(Jk[this.props.presetData.aggregate]):"",w.jsx(z5,{})]}),w.jsx(Re,{sx:Nn.divider}),w.jsx(WE,{open:this.state.aggregateOpened,anchorEl:()=>document.getElementById("aggregateOpenButton"),onClose:()=>{this.setState({aggregateOpened:!1})},children:w.jsx("div",{style:Nn.popOver,children:w.jsx(Re,{component:"div",sx:Nn.fieldsContainer,children:this.renderAggregateElements()})})})]})}renderAutoRefresh(){return this.props.presetData.timeType!=="relative"?null:w.jsx(Ler,{sx:Nn.refreshSelect,value:this.props.presetData.live,updateValue:r=>{const n=JSON.parse(JSON.stringify(this.props.presetData));n.live=r,this.props.onChange(n),window.localStorage.setItem("App.echarts.__live",r.toString())},tooltip:P.t("Auto-refresh"),options:l9,renderValue:()=>w.jsxs("div",{style:Nn.refreshSelectButtonTitle,children:[w.jsx(MO,{})," ",P.t(l9[this.props.presetData.live])]})})}render(){const r={timeSpan:!1,aggregate:!1,autoRefresh:!1,bigButton:!1};let n=!1;const o=(this.state.clientWidth||1024)-32-40-20,a=4,i=this.props.presetData.timeType==="relative"?1:0;return o>=Ua.timeSpan+Ua.aggregate+Ua.autoRefresh*i+Ua.bigButton+a*3?(r.timeSpan=!0,r.aggregate=!0,r.autoRefresh=!0,r.bigButton=!0):o>=Ua.timeSpan+Ua.aggregate+Ua.autoRefresh*i+48+a*3?(r.timeSpan=!0,r.aggregate=!0,r.autoRefresh=!!i,r.bigButton=!1):o>=Ua.timeSpan+Ua.aggregate+48+a*2?(r.timeSpan=!0,r.aggregate=!0,n=!!i):(o>=Ua.timeSpan+48+a&&(r.timeSpan=!0),n=!0),w.jsxs(af,{ref:this.toolbarRef,style:Nn.mainDiv,variant:"dense",children:[this.renderShowMore(),r.timeSpan?this.renderTimeSpan():null,r.aggregate?this.renderAggregate():null,r.autoRefresh?w.jsxs(w.Fragment,{children:[this.renderAutoRefresh(),w.jsx(Re,{sx:Nn.divider})]}):null,w.jsx("div",{style:Nn.grow1}),n?w.jsx(Ie,{size:"small",title:P.t("Show controls"),onClick:()=>this.setState({showMore:!0}),children:w.jsx(Ave,{})}):null,r.bigButton?w.jsx(tt,{variant:"contained",color:"primary",onClick:()=>this.props.onCreatePreset(!0),startIcon:w.jsx(Nv,{}),style:{whiteSpace:"nowrap"},children:P.t("Create preset")}):w.jsx(Ie,{size:"small",color:"primary",title:P.t("Create preset"),onClick:()=>this.props.onCreatePreset(!0),children:w.jsx(Nv,{})})]})}}const c9={darkBackground:{stroke:"#3a3a3a !important",fill:"#515151 !important"},iframe:t=>({width:"100%",height:"100%",overflow:"auto",border:0,color:t.palette.primary.main})};class Fer extends m.Component{constructor(){super(...arguments);X(this,"ready",!1);X(this,"refIframe",null);X(this,"lastPresetData","");X(this,"onReceiveMessage",r=>{var n;(r==null?void 0:r.data)==="chartReady"&&(this.ready=!0,this.lastPresetData=JSON.stringify(this.props.presetData),(n=this.refIframe.contentWindow)==null||n.postMessage(this.lastPresetData,"*"),console.log("Received ready from iframe"))})}componentDidMount(){window.addEventListener("message",this.onReceiveMessage,!1)}componentWillUnmount(){window.removeEventListener("message",this.onReceiveMessage,!1)}render(){var r;return window.location.port==="3000"?w.jsx(zn,{sx:c9.iframe,style:{background:"#333"},children:w.jsx("pre",{children:JSON.stringify(this.props.presetData,null,2)})}):(this.lastPresetData!==JSON.stringify(this.props.presetData)&&this.ready&&(this.lastPresetData=JSON.stringify(this.props.presetData),(r=this.refIframe.contentWindow)==null||r.postMessage(this.lastPresetData,"*")),w.jsx("iframe",{ref:n=>{this.refIframe=n},title:"iobrokerChart",style:ue.getStyle(this.props.theme,c9.iframe),src:this.props.src}))}}const Yk={container:{height:"100%",width:"100%",overflow:"hidden"},heightWithoutToolbar:{height:"calc(100% - 48px)"},height100:{height:"100%"}};class Ber extends m.Component{renderToolbar(){return this.props.selectedId&&typeof this.props.selectedId=="string"?null:w.jsx(zer,{windowWidth:this.props.windowWidth,onChange:this.props.onChange,presetData:this.props.presetData,onCreatePreset:(e,r)=>this.props.onCreatePreset(e,r)})}getChartFrame(){const e=(window.location.search||"").includes("dev=true")?"http://localhost:3000/":"chart/",r=JSON.parse(JSON.stringify(this.props.presetData));return typeof this.props.selectedId=="object"&&r.l&&(delete r.l[0].aggregate,delete r.l[0].chartType),w.jsx("div",{style:{...typeof this.props.selectedId!="string"?Yk.heightWithoutToolbar:Yk.height100,display:this.props.visible?"block":"none"},children:w.jsx(Fer,{src:`${e}index.html?edit=1`,presetData:r,theme:this.props.theme})})}render(){return w.jsx(uE,{injectFirst:!0,children:w.jsx(yE,{theme:this.props.theme,children:w.jsxs("div",{style:Yk.container,children:[this.renderToolbar(),this.getChartFrame()]})})})}}function Wer(){const t=(window.location.search||"").replace(/^\?/,"").split("&"),e={};return t.forEach(r=>{const[n,o]=r.split("=");e[decodeURIComponent(n)]=o!==void 0?decodeURIComponent(o):!0}),e}const hG=A.createContext({dragDropManager:void 0});function At(t,e,...r){if(Her()&&e===void 0)throw new Error("invariant requires an error message argument");if(!t){let n;if(e===void 0)n=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{let o=0;n=new Error(e.replace(/%s/g,function(){return r[o++]})),n.name="Invariant Violation"}throw n.framesToPop=1,n}}function Her(){return typeof process<"u"&&!0}function Uer(t,e,r){return e.split(".").reduce((n,o)=>n&&n[o]?n[o]:r||null,t)}function Ver(t,e){return t.filter(r=>r!==e)}function fG(t){return typeof t=="object"}function qer(t,e){const r=new Map,n=a=>{r.set(a,r.has(a)?r.get(a)+1:1)};t.forEach(n),e.forEach(n);const o=[];return r.forEach((a,i)=>{a===1&&o.push(i)}),o}function Ger(t,e){return t.filter(r=>e.indexOf(r)>-1)}const kA="dnd-core/INIT_COORDS",$_="dnd-core/BEGIN_DRAG",EA="dnd-core/PUBLISH_DRAG_SOURCE",k_="dnd-core/HOVER",E_="dnd-core/DROP",T_="dnd-core/END_DRAG";function d9(t,e){return{type:kA,payload:{sourceClientOffset:e||null,clientOffset:t||null}}}const Xer={type:kA,payload:{clientOffset:null,sourceClientOffset:null}};function Jer(t){return function(r=[],n={publishSource:!0}){const{publishSource:o=!0,clientOffset:a,getSourceClientOffset:i}=n,s=t.getMonitor(),l=t.getRegistry();t.dispatch(d9(a)),Yer(r,s,l);const d=Qer(r,s);if(d==null){t.dispatch(Xer);return}let h=null;if(a){if(!i)throw new Error("getSourceClientOffset must be defined");Ker(i),h=i(d)}t.dispatch(d9(a,h));const f=l.getSource(d).beginDrag(s,d);if(f==null)return;Zer(f),l.pinSource(d);const g=l.getSourceType(d);return{type:$_,payload:{itemType:g,item:f,sourceId:d,clientOffset:a||null,sourceClientOffset:h||null,isSourcePublic:!!o}}}}function Yer(t,e,r){At(!e.isDragging(),"Cannot call beginDrag while dragging."),t.forEach(function(n){At(r.getSource(n),"Expected sourceIds to be registered.")})}function Ker(t){At(typeof t=="function","When clientOffset is provided, getSourceClientOffset must be a function.")}function Zer(t){At(fG(t),"Item must be an object.")}function Qer(t,e){let r=null;for(let n=t.length-1;n>=0;n--)if(e.canDragSource(t[n])){r=t[n];break}return r}function etr(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function ttr(t){for(var e=1;e{const l=otr(i,s,o,n),d={type:E_,payload:{dropResult:ttr({},r,l)}};t.dispatch(d)})}}function ntr(t){At(t.isDragging(),"Cannot call drop while not dragging."),At(!t.didDrop(),"Cannot call drop twice during one drag operation.")}function otr(t,e,r,n){const o=r.getTarget(t);let a=o?o.drop(n,t):void 0;return atr(a),typeof a>"u"&&(a=e===0?{}:n.getDropResult()),a}function atr(t){At(typeof t>"u"||fG(t),"Drop result must either be an object or undefined.")}function itr(t){const e=t.getTargetIds().filter(t.canDropOnTarget,t);return e.reverse(),e}function str(t){return function(){const r=t.getMonitor(),n=t.getRegistry();ltr(r);const o=r.getSourceId();return o!=null&&(n.getSource(o,!0).endDrag(r,o),n.unpinSource()),{type:T_}}}function ltr(t){At(t.isDragging(),"Cannot call endDrag while not dragging.")}function aT(t,e){return e===null?t===null:Array.isArray(t)?t.some(r=>r===e):t===e}function ctr(t){return function(r,{clientOffset:n}={}){dtr(r);const o=r.slice(0),a=t.getMonitor(),i=t.getRegistry(),s=a.getItemType();return ptr(o,i,s),utr(o,a,i),htr(o,a,i),{type:k_,payload:{targetIds:o,clientOffset:n||null}}}}function dtr(t){At(Array.isArray(t),"Expected targetIds to be an array.")}function utr(t,e,r){At(e.isDragging(),"Cannot call hover while not dragging."),At(!e.didDrop(),"Cannot call hover after drop.");for(let n=0;n=0;n--){const o=t[n],a=e.getTargetType(o);aT(a,r)||t.splice(n,1)}}function htr(t,e,r){t.forEach(function(n){r.getTarget(n).hover(e,n)})}function ftr(t){return function(){if(t.getMonitor().isDragging())return{type:EA}}}function mtr(t){return{beginDrag:Jer(t),publishDragSource:ftr(t),hover:ctr(t),drop:rtr(t),endDrag:str(t)}}class gtr{receiveBackend(e){this.backend=e}getMonitor(){return this.monitor}getBackend(){return this.backend}getRegistry(){return this.monitor.registry}getActions(){const e=this,{dispatch:r}=this.store;function n(a){return(...i)=>{const s=a.apply(e,i);typeof s<"u"&&r(s)}}const o=mtr(this);return Object.keys(o).reduce((a,i)=>{const s=o[i];return a[i]=n(s),a},{})}dispatch(e){this.store.dispatch(e)}constructor(e,r){this.isSetUp=!1,this.handleRefCountChange=()=>{const n=this.store.getState().refCount>0;this.backend&&(n&&!this.isSetUp?(this.backend.setup(),this.isSetUp=!0):!n&&this.isSetUp&&(this.backend.teardown(),this.isSetUp=!1))},this.store=e,this.monitor=r,e.subscribe(this.handleRefCountChange)}}function vtr(t,e){return{x:t.x+e.x,y:t.y+e.y}}function mG(t,e){return{x:t.x-e.x,y:t.y-e.y}}function ytr(t){const{clientOffset:e,initialClientOffset:r,initialSourceClientOffset:n}=t;return!e||!r||!n?null:mG(vtr(e,n),r)}function _tr(t){const{clientOffset:e,initialClientOffset:r}=t;return!e||!r?null:mG(e,r)}const Bh=[],TA=[];Bh.__IS_NONE__=!0;TA.__IS_ALL__=!0;function btr(t,e){return t===Bh?!1:t===TA||typeof e>"u"?!0:Ger(e,t).length>0}class wtr{subscribeToStateChange(e,r={}){const{handlerIds:n}=r;At(typeof e=="function","listener must be a function."),At(typeof n>"u"||Array.isArray(n),"handlerIds, when specified, must be an array of strings.");let o=this.store.getState().stateId;const a=()=>{const i=this.store.getState(),s=i.stateId;try{s===o||s===o+1&&!btr(i.dirtyHandlerIds,n)||e()}finally{o=s}};return this.store.subscribe(a)}subscribeToOffsetChange(e){At(typeof e=="function","listener must be a function.");let r=this.store.getState().dragOffset;const n=()=>{const o=this.store.getState().dragOffset;o!==r&&(r=o,e())};return this.store.subscribe(n)}canDragSource(e){if(!e)return!1;const r=this.registry.getSource(e);return At(r,`Expected to find a valid source. sourceId=${e}`),this.isDragging()?!1:r.canDrag(this,e)}canDropOnTarget(e){if(!e)return!1;const r=this.registry.getTarget(e);if(At(r,`Expected to find a valid target. targetId=${e}`),!this.isDragging()||this.didDrop())return!1;const n=this.registry.getTargetType(e),o=this.getItemType();return aT(n,o)&&r.canDrop(this,e)}isDragging(){return!!this.getItemType()}isDraggingSource(e){if(!e)return!1;const r=this.registry.getSource(e,!0);if(At(r,`Expected to find a valid source. sourceId=${e}`),!this.isDragging()||!this.isSourcePublic())return!1;const n=this.registry.getSourceType(e),o=this.getItemType();return n!==o?!1:r.isDragging(this,e)}isOverTarget(e,r={shallow:!1}){if(!e)return!1;const{shallow:n}=r;if(!this.isDragging())return!1;const o=this.registry.getTargetType(e),a=this.getItemType();if(a&&!aT(o,a))return!1;const i=this.getTargetIds();if(!i.length)return!1;const s=i.indexOf(e);return n?s===i.length-1:s>-1}getItemType(){return this.store.getState().dragOperation.itemType}getItem(){return this.store.getState().dragOperation.item}getSourceId(){return this.store.getState().dragOperation.sourceId}getTargetIds(){return this.store.getState().dragOperation.targetIds}getDropResult(){return this.store.getState().dragOperation.dropResult}didDrop(){return this.store.getState().dragOperation.didDrop}isSourcePublic(){return!!this.store.getState().dragOperation.isSourcePublic}getInitialClientOffset(){return this.store.getState().dragOffset.initialClientOffset}getInitialSourceClientOffset(){return this.store.getState().dragOffset.initialSourceClientOffset}getClientOffset(){return this.store.getState().dragOffset.clientOffset}getSourceClientOffset(){return ytr(this.store.getState().dragOffset)}getDifferenceFromInitialOffset(){return _tr(this.store.getState().dragOffset)}constructor(e,r){this.store=e,this.registry=r}}const u9=typeof global<"u"?global:self,gG=u9.MutationObserver||u9.WebKitMutationObserver;function vG(t){return function(){const r=setTimeout(o,0),n=setInterval(o,50);function o(){clearTimeout(r),clearInterval(n),t()}}}function xtr(t){let e=1;const r=new gG(t),n=document.createTextNode("");return r.observe(n,{characterData:!0}),function(){e=-e,n.data=e}}const Str=typeof gG=="function"?xtr:vG;class Ctr{enqueueTask(e){const{queue:r,requestFlush:n}=this;r.length||(n(),this.flushing=!0),r[r.length]=e}constructor(){this.queue=[],this.pendingErrors=[],this.flushing=!1,this.index=0,this.capacity=1024,this.flush=()=>{const{queue:e}=this;for(;this.indexthis.capacity){for(let n=0,o=e.length-this.index;n{this.pendingErrors.push(e),this.requestErrorThrow()},this.requestFlush=Str(this.flush),this.requestErrorThrow=vG(()=>{if(this.pendingErrors.length)throw this.pendingErrors.shift()})}}class $tr{call(){try{this.task&&this.task()}catch(e){this.onError(e)}finally{this.task=null,this.release(this)}}constructor(e,r){this.onError=e,this.release=r,this.task=null}}class ktr{create(e){const r=this.freeTasks,n=r.length?r.pop():new $tr(this.onError,o=>r[r.length]=o);return n.task=e,n}constructor(e){this.onError=e,this.freeTasks=[]}}const yG=new Ctr,Etr=new ktr(yG.registerPendingError);function Ttr(t){yG.enqueueTask(Etr.create(t))}const OA="dnd-core/ADD_SOURCE",DA="dnd-core/ADD_TARGET",AA="dnd-core/REMOVE_SOURCE",O_="dnd-core/REMOVE_TARGET";function Otr(t){return{type:OA,payload:{sourceId:t}}}function Dtr(t){return{type:DA,payload:{targetId:t}}}function Atr(t){return{type:AA,payload:{sourceId:t}}}function Itr(t){return{type:O_,payload:{targetId:t}}}function Mtr(t){At(typeof t.canDrag=="function","Expected canDrag to be a function."),At(typeof t.beginDrag=="function","Expected beginDrag to be a function."),At(typeof t.endDrag=="function","Expected endDrag to be a function.")}function Ptr(t){At(typeof t.canDrop=="function","Expected canDrop to be a function."),At(typeof t.hover=="function","Expected hover to be a function."),At(typeof t.drop=="function","Expected beginDrag to be a function.")}function iT(t,e){if(e&&Array.isArray(t)){t.forEach(r=>iT(r,!1));return}At(typeof t=="string"||typeof t=="symbol",e?"Type can only be a string, a symbol, or an array of either.":"Type can only be a string or a symbol.")}var qo;(function(t){t.SOURCE="SOURCE",t.TARGET="TARGET"})(qo||(qo={}));let Ntr=0;function Rtr(){return Ntr++}function jtr(t){const e=Rtr().toString();switch(t){case qo.SOURCE:return`S${e}`;case qo.TARGET:return`T${e}`;default:throw new Error(`Unknown Handler Role: ${t}`)}}function p9(t){switch(t[0]){case"S":return qo.SOURCE;case"T":return qo.TARGET;default:throw new Error(`Cannot parse handler ID: ${t}`)}}function h9(t,e){const r=t.entries();let n=!1;do{const{done:o,value:[,a]}=r.next();if(a===e)return!0;n=!!o}while(!n);return!1}class Ltr{addSource(e,r){iT(e),Mtr(r);const n=this.addHandler(qo.SOURCE,e,r);return this.store.dispatch(Otr(n)),n}addTarget(e,r){iT(e,!0),Ptr(r);const n=this.addHandler(qo.TARGET,e,r);return this.store.dispatch(Dtr(n)),n}containsHandler(e){return h9(this.dragSources,e)||h9(this.dropTargets,e)}getSource(e,r=!1){return At(this.isSourceId(e),"Expected a valid source ID."),r&&e===this.pinnedSourceId?this.pinnedSource:this.dragSources.get(e)}getTarget(e){return At(this.isTargetId(e),"Expected a valid target ID."),this.dropTargets.get(e)}getSourceType(e){return At(this.isSourceId(e),"Expected a valid source ID."),this.types.get(e)}getTargetType(e){return At(this.isTargetId(e),"Expected a valid target ID."),this.types.get(e)}isSourceId(e){return p9(e)===qo.SOURCE}isTargetId(e){return p9(e)===qo.TARGET}removeSource(e){At(this.getSource(e),"Expected an existing source."),this.store.dispatch(Atr(e)),Ttr(()=>{this.dragSources.delete(e),this.types.delete(e)})}removeTarget(e){At(this.getTarget(e),"Expected an existing target."),this.store.dispatch(Itr(e)),this.dropTargets.delete(e),this.types.delete(e)}pinSource(e){const r=this.getSource(e);At(r,"Expected an existing source."),this.pinnedSourceId=e,this.pinnedSource=r}unpinSource(){At(this.pinnedSource,"No source is pinned at the time."),this.pinnedSourceId=null,this.pinnedSource=null}addHandler(e,r,n){const o=jtr(e);return this.types.set(o,r),e===qo.SOURCE?this.dragSources.set(o,n):e===qo.TARGET&&this.dropTargets.set(o,n),o}constructor(e){this.types=new Map,this.dragSources=new Map,this.dropTargets=new Map,this.pinnedSourceId=null,this.pinnedSource=null,this.store=e}}const ztr=(t,e)=>t===e;function Ftr(t,e){return!t&&!e?!0:!t||!e?!1:t.x===e.x&&t.y===e.y}function Btr(t,e,r=ztr){if(t.length!==e.length)return!1;for(let n=0;n0||!Btr(r,n)))return Bh;const i=n[n.length-1],s=r[r.length-1];return i!==s&&(i&&o.push(i),s&&o.push(s)),o}function Htr(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function Utr(t){for(var e=1;e=0)&&Object.prototype.propertyIsEnumerable.call(t,n)&&(r[n]=t[n])}return r}function nrr(t,e){if(t==null)return{};var r={},n=Object.keys(t),o,a;for(a=0;a=0)&&(r[o]=t[o]);return r}let m9=0;const iv=Symbol.for("__REACT_DND_CONTEXT_INSTANCE__");var orr=A.memo(function(e){var{children:r}=e,n=rrr(e,["children"]);const[o,a]=arr(n);return A.useEffect(()=>{if(a){const i=_G();return++m9,()=>{--m9===0&&(i[iv]=null)}}},[]),w.jsx(hG.Provider,{value:o,children:r})});function arr(t){if("manager"in t)return[{dragDropManager:t.manager},!1];const e=irr(t.backend,t.context,t.options,t.debugMode),r=!t.context;return[e,r]}function irr(t,e=_G(),r,n){const o=e;return o[iv]||(o[iv]={dragDropManager:err(t,e,r,n)}),o[iv]}function _G(){return typeof global<"u"?global:window}var Kk,g9;function srr(){return g9||(g9=1,Kk=function t(e,r){if(e===r)return!0;if(e&&r&&typeof e=="object"&&typeof r=="object"){if(e.constructor!==r.constructor)return!1;var n,o,a;if(Array.isArray(e)){if(n=e.length,n!=r.length)return!1;for(o=n;o--!==0;)if(!t(e[o],r[o]))return!1;return!0}if(e.constructor===RegExp)return e.source===r.source&&e.flags===r.flags;if(e.valueOf!==Object.prototype.valueOf)return e.valueOf()===r.valueOf();if(e.toString!==Object.prototype.toString)return e.toString()===r.toString();if(a=Object.keys(e),n=a.length,n!==Object.keys(r).length)return!1;for(o=n;o--!==0;)if(!Object.prototype.hasOwnProperty.call(r,a[o]))return!1;for(o=n;o--!==0;){var i=a[o];if(!t(e[i],r[i]))return!1}return!0}return e!==e&&r!==r}),Kk}var lrr=srr();const crr=so(lrr),Wl=typeof window<"u"?A.useLayoutEffect:A.useEffect;function drr(t,e,r){const[n,o]=A.useState(()=>e(t)),a=A.useCallback(()=>{const i=e(t);crr(n,i)||(o(i),r&&r())},[n,t,r]);return Wl(a),[n,a]}function urr(t,e,r){const[n,o]=drr(t,e,r);return Wl(function(){const i=t.getHandlerId();if(i!=null)return t.subscribeToStateChange(o,{handlerIds:[i]})},[t,o]),n}function bG(t,e,r){return urr(e,t||(()=>({})),()=>r.reconnect())}function wG(t,e){const r=[];return typeof t!="function"&&r.push(t),A.useMemo(()=>typeof t=="function"?t():t,r)}function prr(t){return A.useMemo(()=>t.hooks.dragSource(),[t])}function hrr(t){return A.useMemo(()=>t.hooks.dragPreview(),[t])}let Zk=!1,Qk=!1;class frr{receiveHandlerId(e){this.sourceId=e}getHandlerId(){return this.sourceId}canDrag(){At(!Zk,"You may not call monitor.canDrag() inside your canDrag() implementation. Read more: http://react-dnd.github.io/react-dnd/docs/api/drag-source-monitor");try{return Zk=!0,this.internalMonitor.canDragSource(this.sourceId)}finally{Zk=!1}}isDragging(){if(!this.sourceId)return!1;At(!Qk,"You may not call monitor.isDragging() inside your isDragging() implementation. Read more: http://react-dnd.github.io/react-dnd/docs/api/drag-source-monitor");try{return Qk=!0,this.internalMonitor.isDraggingSource(this.sourceId)}finally{Qk=!1}}subscribeToStateChange(e,r){return this.internalMonitor.subscribeToStateChange(e,r)}isDraggingSource(e){return this.internalMonitor.isDraggingSource(e)}isOverTarget(e,r){return this.internalMonitor.isOverTarget(e,r)}getTargetIds(){return this.internalMonitor.getTargetIds()}isSourcePublic(){return this.internalMonitor.isSourcePublic()}getSourceId(){return this.internalMonitor.getSourceId()}subscribeToOffsetChange(e){return this.internalMonitor.subscribeToOffsetChange(e)}canDragSource(e){return this.internalMonitor.canDragSource(e)}canDropOnTarget(e){return this.internalMonitor.canDropOnTarget(e)}getItemType(){return this.internalMonitor.getItemType()}getItem(){return this.internalMonitor.getItem()}getDropResult(){return this.internalMonitor.getDropResult()}didDrop(){return this.internalMonitor.didDrop()}getInitialClientOffset(){return this.internalMonitor.getInitialClientOffset()}getInitialSourceClientOffset(){return this.internalMonitor.getInitialSourceClientOffset()}getSourceClientOffset(){return this.internalMonitor.getSourceClientOffset()}getClientOffset(){return this.internalMonitor.getClientOffset()}getDifferenceFromInitialOffset(){return this.internalMonitor.getDifferenceFromInitialOffset()}constructor(e){this.sourceId=null,this.internalMonitor=e.getMonitor()}}let eE=!1;class mrr{receiveHandlerId(e){this.targetId=e}getHandlerId(){return this.targetId}subscribeToStateChange(e,r){return this.internalMonitor.subscribeToStateChange(e,r)}canDrop(){if(!this.targetId)return!1;At(!eE,"You may not call monitor.canDrop() inside your canDrop() implementation. Read more: http://react-dnd.github.io/react-dnd/docs/api/drop-target-monitor");try{return eE=!0,this.internalMonitor.canDropOnTarget(this.targetId)}finally{eE=!1}}isOver(e){return this.targetId?this.internalMonitor.isOverTarget(this.targetId,e):!1}getItemType(){return this.internalMonitor.getItemType()}getItem(){return this.internalMonitor.getItem()}getDropResult(){return this.internalMonitor.getDropResult()}didDrop(){return this.internalMonitor.didDrop()}getInitialClientOffset(){return this.internalMonitor.getInitialClientOffset()}getInitialSourceClientOffset(){return this.internalMonitor.getInitialSourceClientOffset()}getSourceClientOffset(){return this.internalMonitor.getSourceClientOffset()}getClientOffset(){return this.internalMonitor.getClientOffset()}getDifferenceFromInitialOffset(){return this.internalMonitor.getDifferenceFromInitialOffset()}constructor(e){this.targetId=null,this.internalMonitor=e.getMonitor()}}function grr(t,e,r){const n=r.getRegistry(),o=n.addTarget(t,e);return[o,()=>n.removeTarget(o)]}function vrr(t,e,r){const n=r.getRegistry(),o=n.addSource(t,e);return[o,()=>n.removeSource(o)]}function sT(t,e,r,n){let o;if(o!==void 0)return!!o;if(t===e)return!0;if(typeof t!="object"||!t||typeof e!="object"||!e)return!1;const a=Object.keys(t),i=Object.keys(e);if(a.length!==i.length)return!1;const s=Object.prototype.hasOwnProperty.bind(e);for(let l=0;l, or turn it into a drag source or a drop target itself.`)}function _rr(t){return(e=null,r=null)=>{if(!A.isValidElement(e)){const a=e;return t(a,r),a}const n=e;return yrr(n),brr(n,r?a=>t(a,r):t)}}function xG(t){const e={};return Object.keys(t).forEach(r=>{const n=t[r];if(r.endsWith("Ref"))e[r]=t[r];else{const o=_rr(n);e[r]=()=>o}}),e}function v9(t,e){typeof t=="function"?t(e):t.current=e}function brr(t,e){const r=t.ref;return At(typeof r!="string","Cannot connect React DnD to an element with an existing string ref. Please convert it to use a callback ref instead, or wrap it into a or
. Read more: https://reactjs.org/docs/refs-and-the-dom.html#callback-refs"),r?A.cloneElement(t,{ref:n=>{v9(r,n),v9(e,n)}}):A.cloneElement(t,{ref:e})}class wrr{receiveHandlerId(e){this.handlerId!==e&&(this.handlerId=e,this.reconnect())}get connectTarget(){return this.dragSource}get dragSourceOptions(){return this.dragSourceOptionsInternal}set dragSourceOptions(e){this.dragSourceOptionsInternal=e}get dragPreviewOptions(){return this.dragPreviewOptionsInternal}set dragPreviewOptions(e){this.dragPreviewOptionsInternal=e}reconnect(){const e=this.reconnectDragSource();this.reconnectDragPreview(e)}reconnectDragSource(){const e=this.dragSource,r=this.didHandlerIdChange()||this.didConnectedDragSourceChange()||this.didDragSourceOptionsChange();return r&&this.disconnectDragSource(),this.handlerId?e?(r&&(this.lastConnectedHandlerId=this.handlerId,this.lastConnectedDragSource=e,this.lastConnectedDragSourceOptions=this.dragSourceOptions,this.dragSourceUnsubscribe=this.backend.connectDragSource(this.handlerId,e,this.dragSourceOptions)),r):(this.lastConnectedDragSource=e,r):r}reconnectDragPreview(e=!1){const r=this.dragPreview,n=e||this.didHandlerIdChange()||this.didConnectedDragPreviewChange()||this.didDragPreviewOptionsChange();if(n&&this.disconnectDragPreview(),!!this.handlerId){if(!r){this.lastConnectedDragPreview=r;return}n&&(this.lastConnectedHandlerId=this.handlerId,this.lastConnectedDragPreview=r,this.lastConnectedDragPreviewOptions=this.dragPreviewOptions,this.dragPreviewUnsubscribe=this.backend.connectDragPreview(this.handlerId,r,this.dragPreviewOptions))}}didHandlerIdChange(){return this.lastConnectedHandlerId!==this.handlerId}didConnectedDragSourceChange(){return this.lastConnectedDragSource!==this.dragSource}didConnectedDragPreviewChange(){return this.lastConnectedDragPreview!==this.dragPreview}didDragSourceOptionsChange(){return!sT(this.lastConnectedDragSourceOptions,this.dragSourceOptions)}didDragPreviewOptionsChange(){return!sT(this.lastConnectedDragPreviewOptions,this.dragPreviewOptions)}disconnectDragSource(){this.dragSourceUnsubscribe&&(this.dragSourceUnsubscribe(),this.dragSourceUnsubscribe=void 0)}disconnectDragPreview(){this.dragPreviewUnsubscribe&&(this.dragPreviewUnsubscribe(),this.dragPreviewUnsubscribe=void 0,this.dragPreviewNode=null,this.dragPreviewRef=null)}get dragSource(){return this.dragSourceNode||this.dragSourceRef&&this.dragSourceRef.current}get dragPreview(){return this.dragPreviewNode||this.dragPreviewRef&&this.dragPreviewRef.current}clearDragSource(){this.dragSourceNode=null,this.dragSourceRef=null}clearDragPreview(){this.dragPreviewNode=null,this.dragPreviewRef=null}constructor(e){this.hooks=xG({dragSource:(r,n)=>{this.clearDragSource(),this.dragSourceOptions=n||null,lT(r)?this.dragSourceRef=r:this.dragSourceNode=r,this.reconnectDragSource()},dragPreview:(r,n)=>{this.clearDragPreview(),this.dragPreviewOptions=n||null,lT(r)?this.dragPreviewRef=r:this.dragPreviewNode=r,this.reconnectDragPreview()}}),this.handlerId=null,this.dragSourceRef=null,this.dragSourceOptionsInternal=null,this.dragPreviewRef=null,this.dragPreviewOptionsInternal=null,this.lastConnectedHandlerId=null,this.lastConnectedDragSource=null,this.lastConnectedDragSourceOptions=null,this.lastConnectedDragPreview=null,this.lastConnectedDragPreviewOptions=null,this.backend=e}}class xrr{get connectTarget(){return this.dropTarget}reconnect(){const e=this.didHandlerIdChange()||this.didDropTargetChange()||this.didOptionsChange();e&&this.disconnectDropTarget();const r=this.dropTarget;if(this.handlerId){if(!r){this.lastConnectedDropTarget=r;return}e&&(this.lastConnectedHandlerId=this.handlerId,this.lastConnectedDropTarget=r,this.lastConnectedDropTargetOptions=this.dropTargetOptions,this.unsubscribeDropTarget=this.backend.connectDropTarget(this.handlerId,r,this.dropTargetOptions))}}receiveHandlerId(e){e!==this.handlerId&&(this.handlerId=e,this.reconnect())}get dropTargetOptions(){return this.dropTargetOptionsInternal}set dropTargetOptions(e){this.dropTargetOptionsInternal=e}didHandlerIdChange(){return this.lastConnectedHandlerId!==this.handlerId}didDropTargetChange(){return this.lastConnectedDropTarget!==this.dropTarget}didOptionsChange(){return!sT(this.lastConnectedDropTargetOptions,this.dropTargetOptions)}disconnectDropTarget(){this.unsubscribeDropTarget&&(this.unsubscribeDropTarget(),this.unsubscribeDropTarget=void 0)}get dropTarget(){return this.dropTargetNode||this.dropTargetRef&&this.dropTargetRef.current}clearDropTarget(){this.dropTargetRef=null,this.dropTargetNode=null}constructor(e){this.hooks=xG({dropTarget:(r,n)=>{this.clearDropTarget(),this.dropTargetOptions=n,lT(r)?this.dropTargetRef=r:this.dropTargetNode=r,this.reconnect()}}),this.handlerId=null,this.dropTargetRef=null,this.dropTargetOptionsInternal=null,this.lastConnectedHandlerId=null,this.lastConnectedDropTarget=null,this.lastConnectedDropTargetOptions=null,this.backend=e}}function Uu(){const{dragDropManager:t}=A.useContext(hG);return At(t!=null,"Expected drag drop context"),t}function Srr(t,e){const r=Uu(),n=A.useMemo(()=>new wrr(r.getBackend()),[r]);return Wl(()=>(n.dragSourceOptions=t||null,n.reconnect(),()=>n.disconnectDragSource()),[n,t]),Wl(()=>(n.dragPreviewOptions=e||null,n.reconnect(),()=>n.disconnectDragPreview()),[n,e]),n}function Crr(){const t=Uu();return A.useMemo(()=>new frr(t),[t])}class $rr{beginDrag(){const e=this.spec,r=this.monitor;let n=null;return typeof e.item=="object"?n=e.item:typeof e.item=="function"?n=e.item(r):n={},n??null}canDrag(){const e=this.spec,r=this.monitor;return typeof e.canDrag=="boolean"?e.canDrag:typeof e.canDrag=="function"?e.canDrag(r):!0}isDragging(e,r){const n=this.spec,o=this.monitor,{isDragging:a}=n;return a?a(o):r===e.getSourceId()}endDrag(){const e=this.spec,r=this.monitor,n=this.connector,{end:o}=e;o&&o(r.getItem(),r),n.reconnect()}constructor(e,r,n){this.spec=e,this.monitor=r,this.connector=n}}function krr(t,e,r){const n=A.useMemo(()=>new $rr(t,e,r),[e,r]);return A.useEffect(()=>{n.spec=t},[t]),n}function Err(t){return A.useMemo(()=>{const e=t.type;return At(e!=null,"spec.type must be defined"),e},[t])}function Trr(t,e,r){const n=Uu(),o=krr(t,e,r),a=Err(t);Wl(function(){if(a!=null){const[s,l]=vrr(a,o,n);return e.receiveHandlerId(s),r.receiveHandlerId(s),l}},[n,e,r,o,a])}function Orr(t,e){const r=wG(t);At(!r.begin,"useDrag::spec.begin was deprecated in v14. Replace spec.begin() with spec.item(). (see more here - https://react-dnd.github.io/react-dnd/docs/api/use-drag)");const n=Crr(),o=Srr(r.options,r.previewOptions);return Trr(r,n,o),[bG(r.collect,n,o),prr(o),hrr(o)]}function Drr(t){return A.useMemo(()=>t.hooks.dropTarget(),[t])}function Arr(t){const e=Uu(),r=A.useMemo(()=>new xrr(e.getBackend()),[e]);return Wl(()=>(r.dropTargetOptions=t||null,r.reconnect(),()=>r.disconnectDropTarget()),[t]),r}function Irr(){const t=Uu();return A.useMemo(()=>new mrr(t),[t])}function Mrr(t){const{accept:e}=t;return A.useMemo(()=>(At(t.accept!=null,"accept must be defined"),Array.isArray(e)?e:[e]),[e])}class Prr{canDrop(){const e=this.spec,r=this.monitor;return e.canDrop?e.canDrop(r.getItem(),r):!0}hover(){const e=this.spec,r=this.monitor;e.hover&&e.hover(r.getItem(),r)}drop(){const e=this.spec,r=this.monitor;if(e.drop)return e.drop(r.getItem(),r)}constructor(e,r){this.spec=e,this.monitor=r}}function Nrr(t,e){const r=A.useMemo(()=>new Prr(t,e),[e]);return A.useEffect(()=>{r.spec=t},[t]),r}function Rrr(t,e,r){const n=Uu(),o=Nrr(t,e),a=Mrr(t);Wl(function(){const[s,l]=grr(a,o,n);return e.receiveHandlerId(s),r.receiveHandlerId(s),l},[n,e,o,r,a.map(i=>i.toString()).join("|")])}function jrr(t,e){const r=wG(t),n=Irr(),o=Arr(r.options);return Rrr(r,n,o),[bG(r.collect,n,o),Drr(o)]}function SG(t){let e=null;return()=>(e==null&&(e=t()),e)}function Lrr(t,e){return t.filter(r=>r!==e)}function zrr(t,e){const r=new Set,n=a=>r.add(a);t.forEach(n),e.forEach(n);const o=[];return r.forEach(a=>o.push(a)),o}class Frr{enter(e){const r=this.entered.length,n=o=>this.isNodeInDocument(o)&&(!o.contains||o.contains(e));return this.entered=zrr(this.entered.filter(n),[e]),r===0&&this.entered.length>0}leave(e){const r=this.entered.length;return this.entered=Lrr(this.entered.filter(this.isNodeInDocument),e),r>0&&this.entered.length===0}reset(){this.entered=[]}constructor(e){this.entered=[],this.isNodeInDocument=e}}class Brr{initializeExposedProperties(){Object.keys(this.config.exposeProperties).forEach(e=>{Object.defineProperty(this.item,e,{configurable:!0,enumerable:!0,get(){return console.warn(`Browser doesn't allow reading "${e}" until the drop event.`),null}})})}loadDataTransfer(e){if(e){const r={};Object.keys(this.config.exposeProperties).forEach(n=>{const o=this.config.exposeProperties[n];o!=null&&(r[n]={value:o(e,this.config.matchesTypes),configurable:!0,enumerable:!0})}),Object.defineProperties(this.item,r)}}canDrag(){return!0}beginDrag(){return this.item}isDragging(e,r){return r===e.getSourceId()}endDrag(){}constructor(e){this.config=e,this.item={},this.initializeExposedProperties()}}const CG="__NATIVE_FILE__",$G="__NATIVE_URL__",kG="__NATIVE_TEXT__",EG="__NATIVE_HTML__",y9=Object.freeze(Object.defineProperty({__proto__:null,FILE:CG,HTML:EG,TEXT:kG,URL:$G},Symbol.toStringTag,{value:"Module"}));function tE(t,e,r){const n=e.reduce((o,a)=>o||t.getData(a),"");return n??r}const cT={[CG]:{exposeProperties:{files:t=>Array.prototype.slice.call(t.files),items:t=>t.items,dataTransfer:t=>t},matchesTypes:["Files"]},[EG]:{exposeProperties:{html:(t,e)=>tE(t,e,""),dataTransfer:t=>t},matchesTypes:["Html","text/html"]},[$G]:{exposeProperties:{urls:(t,e)=>tE(t,e,"").split(` + */eG();var rG=Date.now(),Fk="fnValues"+rG,Bk="fnStyle"+ ++rG,wQt=function(){return{onCreateRule:function(r,n,o){if(typeof n!="function")return null;var a=xA(r,{},o);return a[Bk]=n,a},onProcessStyle:function(r,n){if(Fk in n||Bk in n)return r;var o={};for(var a in r){var i=r[a];typeof i=="function"&&(delete r[a],o[a]=i)}return n[Fk]=o,r},onUpdate:function(r,n,o,a){var i=n,s=i[Bk];s&&(i.style=s(r)||{});var l=i[Fk];if(l)for(var d in l)i.prop(d,l[d](r),a)}}},As="@global",rT="@global ",xQt=function(){function t(r,n,o){this.type="global",this.at=As,this.isProcessed=!1,this.key=r,this.options=o,this.rules=new C_(De({},o,{parent:this}));for(var a in n)this.rules.add(a,n[a]);this.rules.process()}var e=t.prototype;return e.getRule=function(n){return this.rules.get(n)},e.addRule=function(n,o,a){var i=this.rules.add(n,o,a);return i&&this.options.jss.plugins.onProcessRule(i),i},e.replaceRule=function(n,o,a){var i=this.rules.replace(n,o,a);return i&&this.options.jss.plugins.onProcessRule(i),i},e.indexOf=function(n){return this.rules.indexOf(n)},e.toString=function(n){return this.rules.toString(n)},t}(),SQt=function(){function t(r,n,o){this.type="global",this.at=As,this.isProcessed=!1,this.key=r,this.options=o;var a=r.substr(rT.length);this.rule=o.jss.createRule(a,n,De({},o,{parent:this}))}var e=t.prototype;return e.toString=function(n){return this.rule?this.rule.toString(n):""},t}(),CQt=/\s*,\s*/g;function nG(t,e){for(var r=t.split(CQt),n="",o=0;o-1){var a=lG[e];if(!Array.isArray(a))return It.js+Fs(a)in r?It.css+a:!1;if(!o)return!1;for(var i=0;in?1:-1:r.length-n.length};return{onProcessStyle:function(r,n){if(n.type!=="style")return r;for(var o={},a=Object.keys(r).sort(t),i=0;i"u"?null:her(),fer()]}}function dG(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},e=t.baseClasses,r=t.newClasses;if(t.Component,!r)return e;var n=De({},e);return Object.keys(r).forEach(function(o){r[o]&&(n[o]="".concat(e[o]," ").concat(r[o]))}),n}var Yd={set:function(e,r,n,o){var a=e.get(r);a||(a=new Map,e.set(r,a)),a.set(n,o)},get:function(e,r,n){var o=e.get(r);return o?o.get(n):void 0},delete:function(e,r,n){var o=e.get(r);o.delete(n)}},ger=m.createContext(null);function uG(){var t=m.useContext(ger);return t}var ver=eG(mer()),yer=PZt(),_er=new Map,ber={disableGeneration:!1,generateClassName:yer,jss:ver,sheetsCache:null,sheetsManager:_er,sheetsRegistry:null},wer=m.createContext(ber),a9=-1e9;function xer(){return a9+=1,a9}var Ser={};function Cer(t){var e=typeof t=="function";return{create:function(n,o){var a;try{a=e?t(n):t}catch(l){throw l}if(!o||!n.overrides||!n.overrides[o])return a;var i=n.overrides[o],s=De({},a);return Object.keys(i).forEach(function(l){s[l]=ku(s[l],i[l])}),s},options:{}}}function $er(t,e,r){var n=t.state,o=t.stylesOptions;if(o.disableGeneration)return e||{};n.cacheClasses||(n.cacheClasses={value:null,lastProp:null,lastJSS:{}});var a=!1;return n.classes!==n.cacheClasses.lastJSS&&(n.cacheClasses.lastJSS=n.classes,a=!0),e!==n.cacheClasses.lastProp&&(n.cacheClasses.lastProp=e,a=!0),a&&(n.cacheClasses.value=dG({baseClasses:n.cacheClasses.lastJSS,newClasses:e,Component:r})),n.cacheClasses.value}function ker(t,e){var r=t.state,n=t.theme,o=t.stylesOptions,a=t.stylesCreator,i=t.name;if(!o.disableGeneration){var s=Yd.get(o.sheetsManager,a,n);s||(s={refs:0,staticSheet:null,dynamicStyles:null},Yd.set(o.sheetsManager,a,n,s));var l=De({},a.options,o,{theme:n,flip:typeof o.flip=="boolean"?o.flip:n.direction==="rtl"});l.generateId=l.serverGenerateClassName||l.generateClassName;var d=o.sheetsRegistry;if(s.refs===0){var h;o.sheetsCache&&(h=Yd.get(o.sheetsCache,a,n));var u=a.create(n,i);h||(h=o.jss.createStyleSheet(u,De({link:!1},l)),h.attach(),o.sheetsCache&&Yd.set(o.sheetsCache,a,n,h)),d&&d.add(h),s.staticSheet=h,s.dynamicStyles=tG(u)}if(s.dynamicStyles){var f=o.jss.createStyleSheet(s.dynamicStyles,De({link:!0},l));f.update(e),f.attach(),r.dynamicSheet=f,r.classes=dG({baseClasses:s.staticSheet.classes,newClasses:f.classes}),d&&d.add(f)}else r.classes=s.staticSheet.classes;s.refs+=1}}function Eer(t,e){var r=t.state;r.dynamicSheet&&r.dynamicSheet.update(e)}function Ter(t){var e=t.state,r=t.theme,n=t.stylesOptions,o=t.stylesCreator;if(!n.disableGeneration){var a=Yd.get(n.sheetsManager,o,r);a.refs-=1;var i=n.sheetsRegistry;a.refs===0&&(Yd.delete(n.sheetsManager,o,r),n.jss.removeStyleSheet(a.staticSheet),i&&i.remove(a.staticSheet)),e.dynamicSheet&&(n.jss.removeStyleSheet(e.dynamicSheet),i&&i.remove(e.dynamicSheet))}}function Oer(t,e){var r=m.useRef([]),n,o=m.useMemo(function(){return{}},e);r.current!==o&&(r.current=o,n=t()),m.useEffect(function(){return function(){n&&n()}},[o])}function Der(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},r=e.name,n=e.classNamePrefix,o=e.Component,a=e.defaultTheme,i=a===void 0?Ser:a,s=ji(e,["name","classNamePrefix","Component","defaultTheme"]),l=Cer(t),d=r||n||"makeStyles";l.options={index:xer(),name:r,meta:d,classNamePrefix:d};var h=function(){var f=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},g=uG()||i,y=De({},m.useContext(wer),s),b=m.useRef(),x=m.useRef();Oer(function(){var T={name:r,state:{},stylesCreator:l,stylesOptions:y,theme:g};return ker(T,f),x.current=!1,b.current=T,function(){Ter(T)}},[g,l]),m.useEffect(function(){x.current&&Eer(b.current,f),x.current=!0});var S=$er(b.current,f.classes,o);return S};return h}function pG(t){var e,r,n="";if(typeof t=="string"||typeof t=="number")n+=t;else if(typeof t=="object")if(Array.isArray(t))for(e=0;e1&&arguments[1]!==void 0?arguments[1]:{};return function(n){var o=r.defaultTheme,a=r.withTheme,i=a===void 0?!1:a,s=r.name,l=ji(r,["defaultTheme","withTheme","name"]),d=s,h=Der(e,De({defaultTheme:o,Component:n,name:s||n.displayName,classNamePrefix:d},l)),u=m.forwardRef(function(g,y){g.classes;var b=g.innerRef,x=ji(g,["classes","innerRef"]),S=h(De({},n.defaultProps,g)),T,E=x;return(typeof s=="string"||i)&&(T=uG()||o,s&&(E=NZt({theme:T,name:s,props:x})),i&&!E.theme&&(E.theme=T)),m.createElement(n,De({ref:b||y,classes:S},E))});return bE(u,n),u}},Mer=DZt();function Per(t,e){return Ier(t,De({defaultTheme:Mer},e))}var Ner=function(e){return{root:{flex:"1 1 auto",WebkitOverflowScrolling:"touch",overflowY:"auto",padding:"8px 24px","&:first-child":{paddingTop:20}},dividers:{padding:"16px 24px",borderTop:"1px solid ".concat(e.palette.divider),borderBottom:"1px solid ".concat(e.palette.divider)}}},Rer=A.forwardRef(function(e,r){var n=e.classes,o=e.className,a=e.dividers,i=a===void 0?!1:a,s=ji(e,["classes","className","dividers"]);return A.createElement("div",De({className:Aer(n.root,o,i&&n.dividers),ref:r},s))});const jer=Per(Ner,{name:"MuiDialogContent"})(Rer),Ua={timeSpan:200,aggregate:250,autoRefresh:150,bigButton:200},Nn={mainDiv:{gap:2},fieldsContainer:{"& > div":{display:"flex",pr:"20px",width:200}},popOver:{padding:16},refreshSelect:{display:"inline-block","& > div:before":{borderWidth:0},"& > div:hover:before":{borderBottom:0}},refreshSelectButtonTitle:{display:"inline-flex",paddingTop:6},settingsButton:{color:"currentColor",fontSize:16,textTransform:"inherit",flexGrow:1},grow1:{flexGrow:2},aggregateIcon:{marginTop:4},divider:t=>({borderLeftColor:t.palette.mode==="dark"?"#CCC":"#444",borderLeftStyle:"dotted",borderLeftWidth:"1px",width:"1px",height:"80%"})},Ler=t=>w.jsx(Re,{component:"div",sx:t.sx,title:t.tooltip,children:w.jsx(Bn,{variant:"standard",onChange:e=>t.updateValue(parseInt(e.target.value,10)),value:t.value.toString()||"",renderValue:t.renderValue,displayEmpty:!0,children:t.options?Object.keys(t.options).map(e=>w.jsx(Jt,{value:e,children:t.noTranslate?t.options[e]:P.t(t.options[e])},e)):null})}),i9={10:"10 minutes",30:"30 minutes",60:"1 hour",120:"2 hours",180:"3 hours",360:"6 hours",720:"12 hours",1440:"1 day",2880:"2 days",4320:"3 days",10080:"7 days",20160:"14 days","1m":"1 month","2m":"2 months","3m":"3 months","6m":"6 months","1y":"1 year","2y":"2 years"},s9={now:"now","1minute":"end of minute","5minutes":"end of 5 minutes","10minutes":"end of 10 minutes","30minutes":"end of 30 minutes","1hour":"end of hour","2hours":"end of 2 hours","3hours":"end of 3 hours","4hours":"end of 4 hours","6hours":"end of 6 hours","8hours":"end of 8 hours","12hours":"end of 12 hours",today:"end of day",weekEurope:"end of sunday",weekUsa:"end of saturday",week2Europe:"end of previous sunday",week2Usa:"end of previous saturday",month:"this month",year:"this year"},l9={"":"none",5:"5 seconds",10:"10 seconds",15:"15 seconds",20:"20 seconds",30:"30 seconds",60:"1 minute",120:"2 minutes",300:"5 minutes",600:"10 minutes",900:"15 minutes",1200:"20 minutes",1800:"30 minutes",3600:"1 hour",7200:"2 hours",10800:"3 hours",21600:"6 hours",43200:"12 hours",86400:"1 day"},Xk={auto:"Auto (Line or Steps)",line:"Line",bar:"Bar",polar:"Polar",scatterplot:"Scatter plot",steps:"Steps",stepsStart:"Steps on start",spline:"Spline"},Jk={minmax:"minmax",average:"average",min:"min",max:"max",total:"total",onchange:"raw",percentile:"percentile",integral:"integral",count:"count",none:"none",current:"current"};class zer extends m.Component{constructor(r){super(r);X(this,"windowWidth");X(this,"toolbarRef");X(this,"handleResize",()=>{this.toolbarRef.current&&this.toolbarRef.current.clientWidth!==this.state.clientWidth&&this.setState({clientWidth:this.toolbarRef.current.clientWidth})});this.windowWidth=this.props.windowWidth,this.state={timeSpanOpened:!1,aggregateOpened:!1,clientWidth:0,showMore:!1},this.toolbarRef=m.createRef()}componentDidMount(){window.addEventListener("resize",this.handleResize)}componentWillUnmount(){window.removeEventListener("resize",this.handleResize)}componentDidUpdate(){this.toolbarRef.current&&this.toolbarRef.current.clientWidth!==this.state.clientWidth&&(this.windowWidth=this.props.windowWidth,this.setState({clientWidth:this.toolbarRef.current.clientWidth}))}renderShowMore(){return this.state.showMore?w.jsxs(or,{maxWidth:"xs",fullWidth:!0,open:!0,onClose:()=>this.setState({showMore:!1}),children:[w.jsxs(jer,{children:[this.renderTimeSpanElements(),this.renderAggregateElements(),this.renderAutoRefresh()]}),w.jsx(pr,{children:w.jsx(tt,{variant:"contained",onClick:()=>this.setState({showMore:!1}),startIcon:w.jsx(Ar,{}),children:P.t("Close")})})]}):null}renderTimeSpanElements(){return[w.jsx(Dt,{fullWidth:!0,value:this.props.presetData.timeType,updateValue:r=>{const n=JSON.parse(JSON.stringify(this.props.presetData));n.timeType=r,this.props.onChange(n),window.localStorage.setItem("App.echarts.__timeType",r.toString())},label:"Type",options:{relative:"relative",static:"static"}},"time-type"),this.props.presetData.timeType==="static"?w.jsx(ty,{fullWidth:!0,date:this.props.presetData.start.toString(),time:this.props.presetData.start_time,updateValue:(r,n)=>{const o=JSON.parse(JSON.stringify(this.props.presetData));o.start=r,o.start_time=n,this.props.onChange(o),window.localStorage.setItem("App.echarts.__start",r),window.localStorage.setItem("App.echarts.__start_time",n)},label:"Start"},"static-start"):null,this.props.presetData.timeType==="static"?w.jsx(ty,{fullWidth:!0,date:this.props.presetData.end.toString(),time:this.props.presetData.end_time,updateValue:(r,n)=>{const o=JSON.parse(JSON.stringify(this.props.presetData));o.end=r,o.end_time=n,this.props.onChange(o),window.localStorage.setItem("App.echarts.__end",r),window.localStorage.setItem("App.echarts.__end_time",n)},label:"End"},"static-end"):null,this.props.presetData.timeType!=="static"?w.jsx(Dt,{fullWidth:!0,value:this.props.presetData.relativeEnd,updateValue:r=>{const n=JSON.parse(JSON.stringify(this.props.presetData));n.relativeEnd=r,this.props.onChange(n),window.localStorage.setItem("App.echarts.__relativeEnd",r)},label:"End",options:s9},"non-static-end"):null,this.props.presetData.timeType!=="static"?w.jsx(Dt,{fullWidth:!0,value:this.props.presetData.range.toString(),updateValue:r=>{const n=JSON.parse(JSON.stringify(this.props.presetData));n.range=r,this.props.onChange(n),window.localStorage.setItem("App.echarts.__range",r)},label:"Range",options:i9},"non-static-range"):null]}renderTimeSpan(){return w.jsxs(w.Fragment,{children:[w.jsxs(tt,{color:"grey",title:P.t("Time span"),size:"small",style:Nn.settingsButton,id:"timeSpanOpenButton",onClick:()=>this.setState({timeSpanOpened:!this.state.timeSpanOpened}),children:[w.jsx(ive,{}),this.props.presetData.timeType==="relative"?`${P.t(i9[this.props.presetData.range])} ${P.t("to")} ${P.t(s9[this.props.presetData.relativeEnd])}`:`${this.props.presetData.start} ${this.props.presetData.start_time} - ${this.props.presetData.end} ${this.props.presetData.end_time}`,w.jsx(z5,{})]}),w.jsx(Re,{sx:Nn.divider}),w.jsx(WE,{style:Nn.popOver,open:this.state.timeSpanOpened,onClose:()=>{this.setState({timeSpanOpened:!1})},anchorEl:()=>document.getElementById("timeSpanOpenButton"),anchorOrigin:{vertical:"bottom",horizontal:"center"},transformOrigin:{vertical:"top",horizontal:"center"},children:w.jsx("div",{style:Nn.popOver,children:w.jsx(Re,{component:"div",sx:Nn.fieldsContainer,children:this.renderTimeSpanElements()})})})]})}renderAggregateElements(){return[w.jsx(Dt,{fullWidth:!0,value:this.props.presetData.chartType,updateValue:r=>{const n=JSON.parse(JSON.stringify(this.props.presetData));n.chartType=r,this.props.onChange(n),window.localStorage.setItem("App.echarts.__chartType",r)},label:"Chart type",options:Xk},"chart-type"),this.props.presetData.chartType!=="auto"?w.jsx(Dt,{fullWidth:!0,value:this.props.presetData.aggregate,updateValue:r=>{const n=JSON.parse(JSON.stringify(this.props.presetData));n.aggregate=r,this.props.onChange(n),window.localStorage.setItem("App.echarts.__aggregate",r)},label:"Aggregate",options:Jk},"aggregate"):null,this.props.presetData.aggregate!=="onchange"?w.jsx(Dt,{fullWidth:!0,value:this.props.presetData.aggregateType,updateValue:r=>{const n=JSON.parse(JSON.stringify(this.props.presetData));n.aggregateType=r,this.props.onChange(n),window.localStorage.setItem("App.echarts.__aggregateType",r)},label:"Step type",options:{count:"counts",step:"seconds"}},"aggregateType"):null,this.props.presetData.aggregate!=="onchange"?w.jsx(Er,{fullWidth:!0,value:this.props.presetData.aggregateSpan,updateValue:r=>{const n=JSON.parse(JSON.stringify(this.props.presetData));n.aggregateSpan=r,this.props.onChange(n),window.localStorage.setItem("App.echarts.__aggregateSpan",r.toString())},label:this.props.presetData.aggregateType==="step"?"Seconds":"Counts"},"aggregateSpan"):null]}renderAggregate(){return w.jsxs(w.Fragment,{children:[w.jsxs(tt,{color:"grey",title:P.t("Aggregate"),size:"small",style:Nn.settingsButton,id:"aggregateOpenButton",onClick:()=>this.setState({aggregateOpened:!this.state.aggregateOpened}),children:[w.jsx(aZt,{style:Nn.aggregateIcon}),Xk[this.props.presetData.chartType]?P.t(Xk[this.props.presetData.chartType]):"","/",Jk[this.props.presetData.aggregate]?P.t(Jk[this.props.presetData.aggregate]):"",w.jsx(z5,{})]}),w.jsx(Re,{sx:Nn.divider}),w.jsx(WE,{open:this.state.aggregateOpened,anchorEl:()=>document.getElementById("aggregateOpenButton"),onClose:()=>{this.setState({aggregateOpened:!1})},children:w.jsx("div",{style:Nn.popOver,children:w.jsx(Re,{component:"div",sx:Nn.fieldsContainer,children:this.renderAggregateElements()})})})]})}renderAutoRefresh(){return this.props.presetData.timeType!=="relative"?null:w.jsx(Ler,{sx:Nn.refreshSelect,value:this.props.presetData.live,updateValue:r=>{const n=JSON.parse(JSON.stringify(this.props.presetData));n.live=r,this.props.onChange(n),window.localStorage.setItem("App.echarts.__live",r.toString())},tooltip:P.t("Auto-refresh"),options:l9,renderValue:()=>w.jsxs("div",{style:Nn.refreshSelectButtonTitle,children:[w.jsx(MO,{})," ",P.t(l9[this.props.presetData.live])]})})}render(){const r={timeSpan:!1,aggregate:!1,autoRefresh:!1,bigButton:!1};let n=!1;const o=(this.state.clientWidth||1024)-32-40-20,a=4,i=this.props.presetData.timeType==="relative"?1:0;return o>=Ua.timeSpan+Ua.aggregate+Ua.autoRefresh*i+Ua.bigButton+a*3?(r.timeSpan=!0,r.aggregate=!0,r.autoRefresh=!0,r.bigButton=!0):o>=Ua.timeSpan+Ua.aggregate+Ua.autoRefresh*i+48+a*3?(r.timeSpan=!0,r.aggregate=!0,r.autoRefresh=!!i,r.bigButton=!1):o>=Ua.timeSpan+Ua.aggregate+48+a*2?(r.timeSpan=!0,r.aggregate=!0,n=!!i):(o>=Ua.timeSpan+48+a&&(r.timeSpan=!0),n=!0),w.jsxs(af,{ref:this.toolbarRef,style:Nn.mainDiv,variant:"dense",children:[this.renderShowMore(),r.timeSpan?this.renderTimeSpan():null,r.aggregate?this.renderAggregate():null,r.autoRefresh?w.jsxs(w.Fragment,{children:[this.renderAutoRefresh(),w.jsx(Re,{sx:Nn.divider})]}):null,w.jsx("div",{style:Nn.grow1}),n?w.jsx(Ie,{size:"small",title:P.t("Show controls"),onClick:()=>this.setState({showMore:!0}),children:w.jsx(Ave,{})}):null,r.bigButton?w.jsx(tt,{variant:"contained",color:"primary",onClick:()=>this.props.onCreatePreset(!0),startIcon:w.jsx(Nv,{}),style:{whiteSpace:"nowrap"},children:P.t("Create preset")}):w.jsx(Ie,{size:"small",color:"primary",title:P.t("Create preset"),onClick:()=>this.props.onCreatePreset(!0),children:w.jsx(Nv,{})})]})}}const c9={darkBackground:{stroke:"#3a3a3a !important",fill:"#515151 !important"},iframe:t=>({width:"100%",height:"100%",overflow:"auto",border:0,color:t.palette.primary.main})};class Fer extends m.Component{constructor(){super(...arguments);X(this,"ready",!1);X(this,"refIframe",null);X(this,"lastPresetData","");X(this,"onReceiveMessage",r=>{var n;(r==null?void 0:r.data)==="chartReady"&&(this.ready=!0,this.lastPresetData=JSON.stringify(this.props.presetData),(n=this.refIframe.contentWindow)==null||n.postMessage(this.lastPresetData,"*"),console.log("Received ready from iframe"))})}componentDidMount(){window.addEventListener("message",this.onReceiveMessage,!1)}componentWillUnmount(){window.removeEventListener("message",this.onReceiveMessage,!1)}render(){var r;return window.location.port==="3000"?w.jsx(zn,{sx:c9.iframe,style:{background:"#333"},children:w.jsx("pre",{children:JSON.stringify(this.props.presetData,null,2)})}):(this.lastPresetData!==JSON.stringify(this.props.presetData)&&this.ready&&(this.lastPresetData=JSON.stringify(this.props.presetData),(r=this.refIframe.contentWindow)==null||r.postMessage(this.lastPresetData,"*")),w.jsx("iframe",{ref:n=>{this.refIframe=n},title:"iobrokerChart",style:ue.getStyle(this.props.theme,c9.iframe),src:this.props.src}))}}const Yk={container:{height:"100%",width:"100%",overflow:"hidden"},heightWithoutToolbar:{height:"calc(100% - 48px)"},height100:{height:"100%"}};class Ber extends m.Component{renderToolbar(){return this.props.selectedId&&typeof this.props.selectedId=="string"?null:w.jsx(zer,{windowWidth:this.props.windowWidth,onChange:this.props.onChange,presetData:this.props.presetData,onCreatePreset:(e,r)=>this.props.onCreatePreset(e,r)})}getChartFrame(){const e=(window.location.search||"").includes("dev=true")?"http://localhost:3000/":"chart/",r=JSON.parse(JSON.stringify(this.props.presetData));return typeof this.props.selectedId=="object"&&r.l&&(delete r.l[0].aggregate,delete r.l[0].chartType),w.jsx("div",{style:{...typeof this.props.selectedId!="string"?Yk.heightWithoutToolbar:Yk.height100,display:this.props.visible?"block":"none"},children:this.props.visible?w.jsx(Fer,{src:`${e}index.html?edit=1`,presetData:r,theme:this.props.theme}):null})}render(){return w.jsx(uE,{injectFirst:!0,children:w.jsx(yE,{theme:this.props.theme,children:w.jsxs("div",{style:Yk.container,children:[this.renderToolbar(),this.getChartFrame()]})})})}}function Wer(){const t=(window.location.search||"").replace(/^\?/,"").split("&"),e={};return t.forEach(r=>{const[n,o]=r.split("=");e[decodeURIComponent(n)]=o!==void 0?decodeURIComponent(o):!0}),e}const hG=A.createContext({dragDropManager:void 0});function At(t,e,...r){if(Her()&&e===void 0)throw new Error("invariant requires an error message argument");if(!t){let n;if(e===void 0)n=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{let o=0;n=new Error(e.replace(/%s/g,function(){return r[o++]})),n.name="Invariant Violation"}throw n.framesToPop=1,n}}function Her(){return typeof process<"u"&&!0}function Uer(t,e,r){return e.split(".").reduce((n,o)=>n&&n[o]?n[o]:r||null,t)}function Ver(t,e){return t.filter(r=>r!==e)}function fG(t){return typeof t=="object"}function qer(t,e){const r=new Map,n=a=>{r.set(a,r.has(a)?r.get(a)+1:1)};t.forEach(n),e.forEach(n);const o=[];return r.forEach((a,i)=>{a===1&&o.push(i)}),o}function Ger(t,e){return t.filter(r=>e.indexOf(r)>-1)}const kA="dnd-core/INIT_COORDS",$_="dnd-core/BEGIN_DRAG",EA="dnd-core/PUBLISH_DRAG_SOURCE",k_="dnd-core/HOVER",E_="dnd-core/DROP",T_="dnd-core/END_DRAG";function d9(t,e){return{type:kA,payload:{sourceClientOffset:e||null,clientOffset:t||null}}}const Xer={type:kA,payload:{clientOffset:null,sourceClientOffset:null}};function Jer(t){return function(r=[],n={publishSource:!0}){const{publishSource:o=!0,clientOffset:a,getSourceClientOffset:i}=n,s=t.getMonitor(),l=t.getRegistry();t.dispatch(d9(a)),Yer(r,s,l);const d=Qer(r,s);if(d==null){t.dispatch(Xer);return}let h=null;if(a){if(!i)throw new Error("getSourceClientOffset must be defined");Ker(i),h=i(d)}t.dispatch(d9(a,h));const f=l.getSource(d).beginDrag(s,d);if(f==null)return;Zer(f),l.pinSource(d);const g=l.getSourceType(d);return{type:$_,payload:{itemType:g,item:f,sourceId:d,clientOffset:a||null,sourceClientOffset:h||null,isSourcePublic:!!o}}}}function Yer(t,e,r){At(!e.isDragging(),"Cannot call beginDrag while dragging."),t.forEach(function(n){At(r.getSource(n),"Expected sourceIds to be registered.")})}function Ker(t){At(typeof t=="function","When clientOffset is provided, getSourceClientOffset must be a function.")}function Zer(t){At(fG(t),"Item must be an object.")}function Qer(t,e){let r=null;for(let n=t.length-1;n>=0;n--)if(e.canDragSource(t[n])){r=t[n];break}return r}function etr(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function ttr(t){for(var e=1;e{const l=otr(i,s,o,n),d={type:E_,payload:{dropResult:ttr({},r,l)}};t.dispatch(d)})}}function ntr(t){At(t.isDragging(),"Cannot call drop while not dragging."),At(!t.didDrop(),"Cannot call drop twice during one drag operation.")}function otr(t,e,r,n){const o=r.getTarget(t);let a=o?o.drop(n,t):void 0;return atr(a),typeof a>"u"&&(a=e===0?{}:n.getDropResult()),a}function atr(t){At(typeof t>"u"||fG(t),"Drop result must either be an object or undefined.")}function itr(t){const e=t.getTargetIds().filter(t.canDropOnTarget,t);return e.reverse(),e}function str(t){return function(){const r=t.getMonitor(),n=t.getRegistry();ltr(r);const o=r.getSourceId();return o!=null&&(n.getSource(o,!0).endDrag(r,o),n.unpinSource()),{type:T_}}}function ltr(t){At(t.isDragging(),"Cannot call endDrag while not dragging.")}function aT(t,e){return e===null?t===null:Array.isArray(t)?t.some(r=>r===e):t===e}function ctr(t){return function(r,{clientOffset:n}={}){dtr(r);const o=r.slice(0),a=t.getMonitor(),i=t.getRegistry(),s=a.getItemType();return ptr(o,i,s),utr(o,a,i),htr(o,a,i),{type:k_,payload:{targetIds:o,clientOffset:n||null}}}}function dtr(t){At(Array.isArray(t),"Expected targetIds to be an array.")}function utr(t,e,r){At(e.isDragging(),"Cannot call hover while not dragging."),At(!e.didDrop(),"Cannot call hover after drop.");for(let n=0;n=0;n--){const o=t[n],a=e.getTargetType(o);aT(a,r)||t.splice(n,1)}}function htr(t,e,r){t.forEach(function(n){r.getTarget(n).hover(e,n)})}function ftr(t){return function(){if(t.getMonitor().isDragging())return{type:EA}}}function mtr(t){return{beginDrag:Jer(t),publishDragSource:ftr(t),hover:ctr(t),drop:rtr(t),endDrag:str(t)}}class gtr{receiveBackend(e){this.backend=e}getMonitor(){return this.monitor}getBackend(){return this.backend}getRegistry(){return this.monitor.registry}getActions(){const e=this,{dispatch:r}=this.store;function n(a){return(...i)=>{const s=a.apply(e,i);typeof s<"u"&&r(s)}}const o=mtr(this);return Object.keys(o).reduce((a,i)=>{const s=o[i];return a[i]=n(s),a},{})}dispatch(e){this.store.dispatch(e)}constructor(e,r){this.isSetUp=!1,this.handleRefCountChange=()=>{const n=this.store.getState().refCount>0;this.backend&&(n&&!this.isSetUp?(this.backend.setup(),this.isSetUp=!0):!n&&this.isSetUp&&(this.backend.teardown(),this.isSetUp=!1))},this.store=e,this.monitor=r,e.subscribe(this.handleRefCountChange)}}function vtr(t,e){return{x:t.x+e.x,y:t.y+e.y}}function mG(t,e){return{x:t.x-e.x,y:t.y-e.y}}function ytr(t){const{clientOffset:e,initialClientOffset:r,initialSourceClientOffset:n}=t;return!e||!r||!n?null:mG(vtr(e,n),r)}function _tr(t){const{clientOffset:e,initialClientOffset:r}=t;return!e||!r?null:mG(e,r)}const Bh=[],TA=[];Bh.__IS_NONE__=!0;TA.__IS_ALL__=!0;function btr(t,e){return t===Bh?!1:t===TA||typeof e>"u"?!0:Ger(e,t).length>0}class wtr{subscribeToStateChange(e,r={}){const{handlerIds:n}=r;At(typeof e=="function","listener must be a function."),At(typeof n>"u"||Array.isArray(n),"handlerIds, when specified, must be an array of strings.");let o=this.store.getState().stateId;const a=()=>{const i=this.store.getState(),s=i.stateId;try{s===o||s===o+1&&!btr(i.dirtyHandlerIds,n)||e()}finally{o=s}};return this.store.subscribe(a)}subscribeToOffsetChange(e){At(typeof e=="function","listener must be a function.");let r=this.store.getState().dragOffset;const n=()=>{const o=this.store.getState().dragOffset;o!==r&&(r=o,e())};return this.store.subscribe(n)}canDragSource(e){if(!e)return!1;const r=this.registry.getSource(e);return At(r,`Expected to find a valid source. sourceId=${e}`),this.isDragging()?!1:r.canDrag(this,e)}canDropOnTarget(e){if(!e)return!1;const r=this.registry.getTarget(e);if(At(r,`Expected to find a valid target. targetId=${e}`),!this.isDragging()||this.didDrop())return!1;const n=this.registry.getTargetType(e),o=this.getItemType();return aT(n,o)&&r.canDrop(this,e)}isDragging(){return!!this.getItemType()}isDraggingSource(e){if(!e)return!1;const r=this.registry.getSource(e,!0);if(At(r,`Expected to find a valid source. sourceId=${e}`),!this.isDragging()||!this.isSourcePublic())return!1;const n=this.registry.getSourceType(e),o=this.getItemType();return n!==o?!1:r.isDragging(this,e)}isOverTarget(e,r={shallow:!1}){if(!e)return!1;const{shallow:n}=r;if(!this.isDragging())return!1;const o=this.registry.getTargetType(e),a=this.getItemType();if(a&&!aT(o,a))return!1;const i=this.getTargetIds();if(!i.length)return!1;const s=i.indexOf(e);return n?s===i.length-1:s>-1}getItemType(){return this.store.getState().dragOperation.itemType}getItem(){return this.store.getState().dragOperation.item}getSourceId(){return this.store.getState().dragOperation.sourceId}getTargetIds(){return this.store.getState().dragOperation.targetIds}getDropResult(){return this.store.getState().dragOperation.dropResult}didDrop(){return this.store.getState().dragOperation.didDrop}isSourcePublic(){return!!this.store.getState().dragOperation.isSourcePublic}getInitialClientOffset(){return this.store.getState().dragOffset.initialClientOffset}getInitialSourceClientOffset(){return this.store.getState().dragOffset.initialSourceClientOffset}getClientOffset(){return this.store.getState().dragOffset.clientOffset}getSourceClientOffset(){return ytr(this.store.getState().dragOffset)}getDifferenceFromInitialOffset(){return _tr(this.store.getState().dragOffset)}constructor(e,r){this.store=e,this.registry=r}}const u9=typeof global<"u"?global:self,gG=u9.MutationObserver||u9.WebKitMutationObserver;function vG(t){return function(){const r=setTimeout(o,0),n=setInterval(o,50);function o(){clearTimeout(r),clearInterval(n),t()}}}function xtr(t){let e=1;const r=new gG(t),n=document.createTextNode("");return r.observe(n,{characterData:!0}),function(){e=-e,n.data=e}}const Str=typeof gG=="function"?xtr:vG;class Ctr{enqueueTask(e){const{queue:r,requestFlush:n}=this;r.length||(n(),this.flushing=!0),r[r.length]=e}constructor(){this.queue=[],this.pendingErrors=[],this.flushing=!1,this.index=0,this.capacity=1024,this.flush=()=>{const{queue:e}=this;for(;this.indexthis.capacity){for(let n=0,o=e.length-this.index;n{this.pendingErrors.push(e),this.requestErrorThrow()},this.requestFlush=Str(this.flush),this.requestErrorThrow=vG(()=>{if(this.pendingErrors.length)throw this.pendingErrors.shift()})}}class $tr{call(){try{this.task&&this.task()}catch(e){this.onError(e)}finally{this.task=null,this.release(this)}}constructor(e,r){this.onError=e,this.release=r,this.task=null}}class ktr{create(e){const r=this.freeTasks,n=r.length?r.pop():new $tr(this.onError,o=>r[r.length]=o);return n.task=e,n}constructor(e){this.onError=e,this.freeTasks=[]}}const yG=new Ctr,Etr=new ktr(yG.registerPendingError);function Ttr(t){yG.enqueueTask(Etr.create(t))}const OA="dnd-core/ADD_SOURCE",DA="dnd-core/ADD_TARGET",AA="dnd-core/REMOVE_SOURCE",O_="dnd-core/REMOVE_TARGET";function Otr(t){return{type:OA,payload:{sourceId:t}}}function Dtr(t){return{type:DA,payload:{targetId:t}}}function Atr(t){return{type:AA,payload:{sourceId:t}}}function Itr(t){return{type:O_,payload:{targetId:t}}}function Mtr(t){At(typeof t.canDrag=="function","Expected canDrag to be a function."),At(typeof t.beginDrag=="function","Expected beginDrag to be a function."),At(typeof t.endDrag=="function","Expected endDrag to be a function.")}function Ptr(t){At(typeof t.canDrop=="function","Expected canDrop to be a function."),At(typeof t.hover=="function","Expected hover to be a function."),At(typeof t.drop=="function","Expected beginDrag to be a function.")}function iT(t,e){if(e&&Array.isArray(t)){t.forEach(r=>iT(r,!1));return}At(typeof t=="string"||typeof t=="symbol",e?"Type can only be a string, a symbol, or an array of either.":"Type can only be a string or a symbol.")}var qo;(function(t){t.SOURCE="SOURCE",t.TARGET="TARGET"})(qo||(qo={}));let Ntr=0;function Rtr(){return Ntr++}function jtr(t){const e=Rtr().toString();switch(t){case qo.SOURCE:return`S${e}`;case qo.TARGET:return`T${e}`;default:throw new Error(`Unknown Handler Role: ${t}`)}}function p9(t){switch(t[0]){case"S":return qo.SOURCE;case"T":return qo.TARGET;default:throw new Error(`Cannot parse handler ID: ${t}`)}}function h9(t,e){const r=t.entries();let n=!1;do{const{done:o,value:[,a]}=r.next();if(a===e)return!0;n=!!o}while(!n);return!1}class Ltr{addSource(e,r){iT(e),Mtr(r);const n=this.addHandler(qo.SOURCE,e,r);return this.store.dispatch(Otr(n)),n}addTarget(e,r){iT(e,!0),Ptr(r);const n=this.addHandler(qo.TARGET,e,r);return this.store.dispatch(Dtr(n)),n}containsHandler(e){return h9(this.dragSources,e)||h9(this.dropTargets,e)}getSource(e,r=!1){return At(this.isSourceId(e),"Expected a valid source ID."),r&&e===this.pinnedSourceId?this.pinnedSource:this.dragSources.get(e)}getTarget(e){return At(this.isTargetId(e),"Expected a valid target ID."),this.dropTargets.get(e)}getSourceType(e){return At(this.isSourceId(e),"Expected a valid source ID."),this.types.get(e)}getTargetType(e){return At(this.isTargetId(e),"Expected a valid target ID."),this.types.get(e)}isSourceId(e){return p9(e)===qo.SOURCE}isTargetId(e){return p9(e)===qo.TARGET}removeSource(e){At(this.getSource(e),"Expected an existing source."),this.store.dispatch(Atr(e)),Ttr(()=>{this.dragSources.delete(e),this.types.delete(e)})}removeTarget(e){At(this.getTarget(e),"Expected an existing target."),this.store.dispatch(Itr(e)),this.dropTargets.delete(e),this.types.delete(e)}pinSource(e){const r=this.getSource(e);At(r,"Expected an existing source."),this.pinnedSourceId=e,this.pinnedSource=r}unpinSource(){At(this.pinnedSource,"No source is pinned at the time."),this.pinnedSourceId=null,this.pinnedSource=null}addHandler(e,r,n){const o=jtr(e);return this.types.set(o,r),e===qo.SOURCE?this.dragSources.set(o,n):e===qo.TARGET&&this.dropTargets.set(o,n),o}constructor(e){this.types=new Map,this.dragSources=new Map,this.dropTargets=new Map,this.pinnedSourceId=null,this.pinnedSource=null,this.store=e}}const ztr=(t,e)=>t===e;function Ftr(t,e){return!t&&!e?!0:!t||!e?!1:t.x===e.x&&t.y===e.y}function Btr(t,e,r=ztr){if(t.length!==e.length)return!1;for(let n=0;n0||!Btr(r,n)))return Bh;const i=n[n.length-1],s=r[r.length-1];return i!==s&&(i&&o.push(i),s&&o.push(s)),o}function Htr(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function Utr(t){for(var e=1;e=0)&&Object.prototype.propertyIsEnumerable.call(t,n)&&(r[n]=t[n])}return r}function nrr(t,e){if(t==null)return{};var r={},n=Object.keys(t),o,a;for(a=0;a=0)&&(r[o]=t[o]);return r}let m9=0;const iv=Symbol.for("__REACT_DND_CONTEXT_INSTANCE__");var orr=A.memo(function(e){var{children:r}=e,n=rrr(e,["children"]);const[o,a]=arr(n);return A.useEffect(()=>{if(a){const i=_G();return++m9,()=>{--m9===0&&(i[iv]=null)}}},[]),w.jsx(hG.Provider,{value:o,children:r})});function arr(t){if("manager"in t)return[{dragDropManager:t.manager},!1];const e=irr(t.backend,t.context,t.options,t.debugMode),r=!t.context;return[e,r]}function irr(t,e=_G(),r,n){const o=e;return o[iv]||(o[iv]={dragDropManager:err(t,e,r,n)}),o[iv]}function _G(){return typeof global<"u"?global:window}var Kk,g9;function srr(){return g9||(g9=1,Kk=function t(e,r){if(e===r)return!0;if(e&&r&&typeof e=="object"&&typeof r=="object"){if(e.constructor!==r.constructor)return!1;var n,o,a;if(Array.isArray(e)){if(n=e.length,n!=r.length)return!1;for(o=n;o--!==0;)if(!t(e[o],r[o]))return!1;return!0}if(e.constructor===RegExp)return e.source===r.source&&e.flags===r.flags;if(e.valueOf!==Object.prototype.valueOf)return e.valueOf()===r.valueOf();if(e.toString!==Object.prototype.toString)return e.toString()===r.toString();if(a=Object.keys(e),n=a.length,n!==Object.keys(r).length)return!1;for(o=n;o--!==0;)if(!Object.prototype.hasOwnProperty.call(r,a[o]))return!1;for(o=n;o--!==0;){var i=a[o];if(!t(e[i],r[i]))return!1}return!0}return e!==e&&r!==r}),Kk}var lrr=srr();const crr=so(lrr),Wl=typeof window<"u"?A.useLayoutEffect:A.useEffect;function drr(t,e,r){const[n,o]=A.useState(()=>e(t)),a=A.useCallback(()=>{const i=e(t);crr(n,i)||(o(i),r&&r())},[n,t,r]);return Wl(a),[n,a]}function urr(t,e,r){const[n,o]=drr(t,e,r);return Wl(function(){const i=t.getHandlerId();if(i!=null)return t.subscribeToStateChange(o,{handlerIds:[i]})},[t,o]),n}function bG(t,e,r){return urr(e,t||(()=>({})),()=>r.reconnect())}function wG(t,e){const r=[];return typeof t!="function"&&r.push(t),A.useMemo(()=>typeof t=="function"?t():t,r)}function prr(t){return A.useMemo(()=>t.hooks.dragSource(),[t])}function hrr(t){return A.useMemo(()=>t.hooks.dragPreview(),[t])}let Zk=!1,Qk=!1;class frr{receiveHandlerId(e){this.sourceId=e}getHandlerId(){return this.sourceId}canDrag(){At(!Zk,"You may not call monitor.canDrag() inside your canDrag() implementation. Read more: http://react-dnd.github.io/react-dnd/docs/api/drag-source-monitor");try{return Zk=!0,this.internalMonitor.canDragSource(this.sourceId)}finally{Zk=!1}}isDragging(){if(!this.sourceId)return!1;At(!Qk,"You may not call monitor.isDragging() inside your isDragging() implementation. Read more: http://react-dnd.github.io/react-dnd/docs/api/drag-source-monitor");try{return Qk=!0,this.internalMonitor.isDraggingSource(this.sourceId)}finally{Qk=!1}}subscribeToStateChange(e,r){return this.internalMonitor.subscribeToStateChange(e,r)}isDraggingSource(e){return this.internalMonitor.isDraggingSource(e)}isOverTarget(e,r){return this.internalMonitor.isOverTarget(e,r)}getTargetIds(){return this.internalMonitor.getTargetIds()}isSourcePublic(){return this.internalMonitor.isSourcePublic()}getSourceId(){return this.internalMonitor.getSourceId()}subscribeToOffsetChange(e){return this.internalMonitor.subscribeToOffsetChange(e)}canDragSource(e){return this.internalMonitor.canDragSource(e)}canDropOnTarget(e){return this.internalMonitor.canDropOnTarget(e)}getItemType(){return this.internalMonitor.getItemType()}getItem(){return this.internalMonitor.getItem()}getDropResult(){return this.internalMonitor.getDropResult()}didDrop(){return this.internalMonitor.didDrop()}getInitialClientOffset(){return this.internalMonitor.getInitialClientOffset()}getInitialSourceClientOffset(){return this.internalMonitor.getInitialSourceClientOffset()}getSourceClientOffset(){return this.internalMonitor.getSourceClientOffset()}getClientOffset(){return this.internalMonitor.getClientOffset()}getDifferenceFromInitialOffset(){return this.internalMonitor.getDifferenceFromInitialOffset()}constructor(e){this.sourceId=null,this.internalMonitor=e.getMonitor()}}let eE=!1;class mrr{receiveHandlerId(e){this.targetId=e}getHandlerId(){return this.targetId}subscribeToStateChange(e,r){return this.internalMonitor.subscribeToStateChange(e,r)}canDrop(){if(!this.targetId)return!1;At(!eE,"You may not call monitor.canDrop() inside your canDrop() implementation. Read more: http://react-dnd.github.io/react-dnd/docs/api/drop-target-monitor");try{return eE=!0,this.internalMonitor.canDropOnTarget(this.targetId)}finally{eE=!1}}isOver(e){return this.targetId?this.internalMonitor.isOverTarget(this.targetId,e):!1}getItemType(){return this.internalMonitor.getItemType()}getItem(){return this.internalMonitor.getItem()}getDropResult(){return this.internalMonitor.getDropResult()}didDrop(){return this.internalMonitor.didDrop()}getInitialClientOffset(){return this.internalMonitor.getInitialClientOffset()}getInitialSourceClientOffset(){return this.internalMonitor.getInitialSourceClientOffset()}getSourceClientOffset(){return this.internalMonitor.getSourceClientOffset()}getClientOffset(){return this.internalMonitor.getClientOffset()}getDifferenceFromInitialOffset(){return this.internalMonitor.getDifferenceFromInitialOffset()}constructor(e){this.targetId=null,this.internalMonitor=e.getMonitor()}}function grr(t,e,r){const n=r.getRegistry(),o=n.addTarget(t,e);return[o,()=>n.removeTarget(o)]}function vrr(t,e,r){const n=r.getRegistry(),o=n.addSource(t,e);return[o,()=>n.removeSource(o)]}function sT(t,e,r,n){let o;if(o!==void 0)return!!o;if(t===e)return!0;if(typeof t!="object"||!t||typeof e!="object"||!e)return!1;const a=Object.keys(t),i=Object.keys(e);if(a.length!==i.length)return!1;const s=Object.prototype.hasOwnProperty.bind(e);for(let l=0;l, or turn it into a drag source or a drop target itself.`)}function _rr(t){return(e=null,r=null)=>{if(!A.isValidElement(e)){const a=e;return t(a,r),a}const n=e;return yrr(n),brr(n,r?a=>t(a,r):t)}}function xG(t){const e={};return Object.keys(t).forEach(r=>{const n=t[r];if(r.endsWith("Ref"))e[r]=t[r];else{const o=_rr(n);e[r]=()=>o}}),e}function v9(t,e){typeof t=="function"?t(e):t.current=e}function brr(t,e){const r=t.ref;return At(typeof r!="string","Cannot connect React DnD to an element with an existing string ref. Please convert it to use a callback ref instead, or wrap it into a or
. Read more: https://reactjs.org/docs/refs-and-the-dom.html#callback-refs"),r?A.cloneElement(t,{ref:n=>{v9(r,n),v9(e,n)}}):A.cloneElement(t,{ref:e})}class wrr{receiveHandlerId(e){this.handlerId!==e&&(this.handlerId=e,this.reconnect())}get connectTarget(){return this.dragSource}get dragSourceOptions(){return this.dragSourceOptionsInternal}set dragSourceOptions(e){this.dragSourceOptionsInternal=e}get dragPreviewOptions(){return this.dragPreviewOptionsInternal}set dragPreviewOptions(e){this.dragPreviewOptionsInternal=e}reconnect(){const e=this.reconnectDragSource();this.reconnectDragPreview(e)}reconnectDragSource(){const e=this.dragSource,r=this.didHandlerIdChange()||this.didConnectedDragSourceChange()||this.didDragSourceOptionsChange();return r&&this.disconnectDragSource(),this.handlerId?e?(r&&(this.lastConnectedHandlerId=this.handlerId,this.lastConnectedDragSource=e,this.lastConnectedDragSourceOptions=this.dragSourceOptions,this.dragSourceUnsubscribe=this.backend.connectDragSource(this.handlerId,e,this.dragSourceOptions)),r):(this.lastConnectedDragSource=e,r):r}reconnectDragPreview(e=!1){const r=this.dragPreview,n=e||this.didHandlerIdChange()||this.didConnectedDragPreviewChange()||this.didDragPreviewOptionsChange();if(n&&this.disconnectDragPreview(),!!this.handlerId){if(!r){this.lastConnectedDragPreview=r;return}n&&(this.lastConnectedHandlerId=this.handlerId,this.lastConnectedDragPreview=r,this.lastConnectedDragPreviewOptions=this.dragPreviewOptions,this.dragPreviewUnsubscribe=this.backend.connectDragPreview(this.handlerId,r,this.dragPreviewOptions))}}didHandlerIdChange(){return this.lastConnectedHandlerId!==this.handlerId}didConnectedDragSourceChange(){return this.lastConnectedDragSource!==this.dragSource}didConnectedDragPreviewChange(){return this.lastConnectedDragPreview!==this.dragPreview}didDragSourceOptionsChange(){return!sT(this.lastConnectedDragSourceOptions,this.dragSourceOptions)}didDragPreviewOptionsChange(){return!sT(this.lastConnectedDragPreviewOptions,this.dragPreviewOptions)}disconnectDragSource(){this.dragSourceUnsubscribe&&(this.dragSourceUnsubscribe(),this.dragSourceUnsubscribe=void 0)}disconnectDragPreview(){this.dragPreviewUnsubscribe&&(this.dragPreviewUnsubscribe(),this.dragPreviewUnsubscribe=void 0,this.dragPreviewNode=null,this.dragPreviewRef=null)}get dragSource(){return this.dragSourceNode||this.dragSourceRef&&this.dragSourceRef.current}get dragPreview(){return this.dragPreviewNode||this.dragPreviewRef&&this.dragPreviewRef.current}clearDragSource(){this.dragSourceNode=null,this.dragSourceRef=null}clearDragPreview(){this.dragPreviewNode=null,this.dragPreviewRef=null}constructor(e){this.hooks=xG({dragSource:(r,n)=>{this.clearDragSource(),this.dragSourceOptions=n||null,lT(r)?this.dragSourceRef=r:this.dragSourceNode=r,this.reconnectDragSource()},dragPreview:(r,n)=>{this.clearDragPreview(),this.dragPreviewOptions=n||null,lT(r)?this.dragPreviewRef=r:this.dragPreviewNode=r,this.reconnectDragPreview()}}),this.handlerId=null,this.dragSourceRef=null,this.dragSourceOptionsInternal=null,this.dragPreviewRef=null,this.dragPreviewOptionsInternal=null,this.lastConnectedHandlerId=null,this.lastConnectedDragSource=null,this.lastConnectedDragSourceOptions=null,this.lastConnectedDragPreview=null,this.lastConnectedDragPreviewOptions=null,this.backend=e}}class xrr{get connectTarget(){return this.dropTarget}reconnect(){const e=this.didHandlerIdChange()||this.didDropTargetChange()||this.didOptionsChange();e&&this.disconnectDropTarget();const r=this.dropTarget;if(this.handlerId){if(!r){this.lastConnectedDropTarget=r;return}e&&(this.lastConnectedHandlerId=this.handlerId,this.lastConnectedDropTarget=r,this.lastConnectedDropTargetOptions=this.dropTargetOptions,this.unsubscribeDropTarget=this.backend.connectDropTarget(this.handlerId,r,this.dropTargetOptions))}}receiveHandlerId(e){e!==this.handlerId&&(this.handlerId=e,this.reconnect())}get dropTargetOptions(){return this.dropTargetOptionsInternal}set dropTargetOptions(e){this.dropTargetOptionsInternal=e}didHandlerIdChange(){return this.lastConnectedHandlerId!==this.handlerId}didDropTargetChange(){return this.lastConnectedDropTarget!==this.dropTarget}didOptionsChange(){return!sT(this.lastConnectedDropTargetOptions,this.dropTargetOptions)}disconnectDropTarget(){this.unsubscribeDropTarget&&(this.unsubscribeDropTarget(),this.unsubscribeDropTarget=void 0)}get dropTarget(){return this.dropTargetNode||this.dropTargetRef&&this.dropTargetRef.current}clearDropTarget(){this.dropTargetRef=null,this.dropTargetNode=null}constructor(e){this.hooks=xG({dropTarget:(r,n)=>{this.clearDropTarget(),this.dropTargetOptions=n,lT(r)?this.dropTargetRef=r:this.dropTargetNode=r,this.reconnect()}}),this.handlerId=null,this.dropTargetRef=null,this.dropTargetOptionsInternal=null,this.lastConnectedHandlerId=null,this.lastConnectedDropTarget=null,this.lastConnectedDropTargetOptions=null,this.backend=e}}function Uu(){const{dragDropManager:t}=A.useContext(hG);return At(t!=null,"Expected drag drop context"),t}function Srr(t,e){const r=Uu(),n=A.useMemo(()=>new wrr(r.getBackend()),[r]);return Wl(()=>(n.dragSourceOptions=t||null,n.reconnect(),()=>n.disconnectDragSource()),[n,t]),Wl(()=>(n.dragPreviewOptions=e||null,n.reconnect(),()=>n.disconnectDragPreview()),[n,e]),n}function Crr(){const t=Uu();return A.useMemo(()=>new frr(t),[t])}class $rr{beginDrag(){const e=this.spec,r=this.monitor;let n=null;return typeof e.item=="object"?n=e.item:typeof e.item=="function"?n=e.item(r):n={},n??null}canDrag(){const e=this.spec,r=this.monitor;return typeof e.canDrag=="boolean"?e.canDrag:typeof e.canDrag=="function"?e.canDrag(r):!0}isDragging(e,r){const n=this.spec,o=this.monitor,{isDragging:a}=n;return a?a(o):r===e.getSourceId()}endDrag(){const e=this.spec,r=this.monitor,n=this.connector,{end:o}=e;o&&o(r.getItem(),r),n.reconnect()}constructor(e,r,n){this.spec=e,this.monitor=r,this.connector=n}}function krr(t,e,r){const n=A.useMemo(()=>new $rr(t,e,r),[e,r]);return A.useEffect(()=>{n.spec=t},[t]),n}function Err(t){return A.useMemo(()=>{const e=t.type;return At(e!=null,"spec.type must be defined"),e},[t])}function Trr(t,e,r){const n=Uu(),o=krr(t,e,r),a=Err(t);Wl(function(){if(a!=null){const[s,l]=vrr(a,o,n);return e.receiveHandlerId(s),r.receiveHandlerId(s),l}},[n,e,r,o,a])}function Orr(t,e){const r=wG(t);At(!r.begin,"useDrag::spec.begin was deprecated in v14. Replace spec.begin() with spec.item(). (see more here - https://react-dnd.github.io/react-dnd/docs/api/use-drag)");const n=Crr(),o=Srr(r.options,r.previewOptions);return Trr(r,n,o),[bG(r.collect,n,o),prr(o),hrr(o)]}function Drr(t){return A.useMemo(()=>t.hooks.dropTarget(),[t])}function Arr(t){const e=Uu(),r=A.useMemo(()=>new xrr(e.getBackend()),[e]);return Wl(()=>(r.dropTargetOptions=t||null,r.reconnect(),()=>r.disconnectDropTarget()),[t]),r}function Irr(){const t=Uu();return A.useMemo(()=>new mrr(t),[t])}function Mrr(t){const{accept:e}=t;return A.useMemo(()=>(At(t.accept!=null,"accept must be defined"),Array.isArray(e)?e:[e]),[e])}class Prr{canDrop(){const e=this.spec,r=this.monitor;return e.canDrop?e.canDrop(r.getItem(),r):!0}hover(){const e=this.spec,r=this.monitor;e.hover&&e.hover(r.getItem(),r)}drop(){const e=this.spec,r=this.monitor;if(e.drop)return e.drop(r.getItem(),r)}constructor(e,r){this.spec=e,this.monitor=r}}function Nrr(t,e){const r=A.useMemo(()=>new Prr(t,e),[e]);return A.useEffect(()=>{r.spec=t},[t]),r}function Rrr(t,e,r){const n=Uu(),o=Nrr(t,e),a=Mrr(t);Wl(function(){const[s,l]=grr(a,o,n);return e.receiveHandlerId(s),r.receiveHandlerId(s),l},[n,e,o,r,a.map(i=>i.toString()).join("|")])}function jrr(t,e){const r=wG(t),n=Irr(),o=Arr(r.options);return Rrr(r,n,o),[bG(r.collect,n,o),Drr(o)]}function SG(t){let e=null;return()=>(e==null&&(e=t()),e)}function Lrr(t,e){return t.filter(r=>r!==e)}function zrr(t,e){const r=new Set,n=a=>r.add(a);t.forEach(n),e.forEach(n);const o=[];return r.forEach(a=>o.push(a)),o}class Frr{enter(e){const r=this.entered.length,n=o=>this.isNodeInDocument(o)&&(!o.contains||o.contains(e));return this.entered=zrr(this.entered.filter(n),[e]),r===0&&this.entered.length>0}leave(e){const r=this.entered.length;return this.entered=Lrr(this.entered.filter(this.isNodeInDocument),e),r>0&&this.entered.length===0}reset(){this.entered=[]}constructor(e){this.entered=[],this.isNodeInDocument=e}}class Brr{initializeExposedProperties(){Object.keys(this.config.exposeProperties).forEach(e=>{Object.defineProperty(this.item,e,{configurable:!0,enumerable:!0,get(){return console.warn(`Browser doesn't allow reading "${e}" until the drop event.`),null}})})}loadDataTransfer(e){if(e){const r={};Object.keys(this.config.exposeProperties).forEach(n=>{const o=this.config.exposeProperties[n];o!=null&&(r[n]={value:o(e,this.config.matchesTypes),configurable:!0,enumerable:!0})}),Object.defineProperties(this.item,r)}}canDrag(){return!0}beginDrag(){return this.item}isDragging(e,r){return r===e.getSourceId()}endDrag(){}constructor(e){this.config=e,this.item={},this.initializeExposedProperties()}}const CG="__NATIVE_FILE__",$G="__NATIVE_URL__",kG="__NATIVE_TEXT__",EG="__NATIVE_HTML__",y9=Object.freeze(Object.defineProperty({__proto__:null,FILE:CG,HTML:EG,TEXT:kG,URL:$G},Symbol.toStringTag,{value:"Module"}));function tE(t,e,r){const n=e.reduce((o,a)=>o||t.getData(a),"");return n??r}const cT={[CG]:{exposeProperties:{files:t=>Array.prototype.slice.call(t.files),items:t=>t.items,dataTransfer:t=>t},matchesTypes:["Files"]},[EG]:{exposeProperties:{html:(t,e)=>tE(t,e,""),dataTransfer:t=>t},matchesTypes:["Html","text/html"]},[$G]:{exposeProperties:{urls:(t,e)=>tE(t,e,"").split(` `),dataTransfer:t=>t},matchesTypes:["Url","text/uri-list"]},[kG]:{exposeProperties:{text:(t,e)=>tE(t,e,""),dataTransfer:t=>t},matchesTypes:["Text","text/plain"]}};function Wrr(t,e){const r=cT[t];if(!r)throw new Error(`native type ${t} has no configuration`);const n=new Brr(r);return n.loadDataTransfer(e),n}function rE(t){if(!t)return null;const e=Array.prototype.slice.call(t.types||[]);return Object.keys(cT).filter(r=>{const n=cT[r];return n!=null&&n.matchesTypes?n.matchesTypes.some(o=>e.indexOf(o)>-1):!1})[0]||null}const Hrr=SG(()=>/firefox/i.test(navigator.userAgent)),TG=SG(()=>!!window.safari);class _9{interpolate(e){const{xs:r,ys:n,c1s:o,c2s:a,c3s:i}=this;let s=r.length-1;if(e===r[s])return n[s];let l=0,d=i.length-1,h;for(;l<=d;){h=Math.floor(.5*(l+d));const g=r[h];if(ge)d=h-1;else return n[h]}s=Math.max(0,d);const u=e-r[s],f=u*u;return n[s]+o[s]*u+a[s]*f+i[s]*u*f}constructor(e,r){const{length:n}=e,o=[];for(let g=0;ge[g]{let O=new _9([0,.5,1],[l.y,l.y/h*y,l.y+y-h]).interpolate(f);return TG()&&a&&(O+=(window.devicePixelRatio-1)*y),O},x=()=>new _9([0,.5,1],[l.x,l.x/d*g,l.x+g-d]).interpolate(u),{offsetX:S,offsetY:T}=o,E=S===0||S,$=T===0||T;return{x:E?S:x(),y:$?T:b()}}class Xrr{get window(){if(this.globalContext)return this.globalContext;if(typeof window<"u")return window}get document(){var e;return!((e=this.globalContext)===null||e===void 0)&&e.document?this.globalContext.document:this.window?this.window.document:void 0}get rootElement(){var e;return((e=this.optionsArgs)===null||e===void 0?void 0:e.rootElement)||this.window}constructor(e,r){this.ownerDocument=null,this.globalContext=e,this.optionsArgs=r}}function Jrr(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function b9(t){for(var e=1;e{this.sourcePreviewNodes.delete(e),this.sourcePreviewNodeOptions.delete(e)}}connectDragSource(e,r,n){this.sourceNodes.set(e,r),this.sourceNodeOptions.set(e,n);const o=i=>this.handleDragStart(i,e),a=i=>this.handleSelectStart(i);return r.setAttribute("draggable","true"),r.addEventListener("dragstart",o),r.addEventListener("selectstart",a),()=>{this.sourceNodes.delete(e),this.sourceNodeOptions.delete(e),r.removeEventListener("dragstart",o),r.removeEventListener("selectstart",a),r.setAttribute("draggable","false")}}connectDropTarget(e,r){const n=i=>this.handleDragEnter(i,e),o=i=>this.handleDragOver(i,e),a=i=>this.handleDrop(i,e);return r.addEventListener("dragenter",n),r.addEventListener("dragover",o),r.addEventListener("drop",a),()=>{r.removeEventListener("dragenter",n),r.removeEventListener("dragover",o),r.removeEventListener("drop",a)}}addEventListeners(e){e.addEventListener&&(e.addEventListener("dragstart",this.handleTopDragStart),e.addEventListener("dragstart",this.handleTopDragStartCapture,!0),e.addEventListener("dragend",this.handleTopDragEndCapture,!0),e.addEventListener("dragenter",this.handleTopDragEnter),e.addEventListener("dragenter",this.handleTopDragEnterCapture,!0),e.addEventListener("dragleave",this.handleTopDragLeaveCapture,!0),e.addEventListener("dragover",this.handleTopDragOver),e.addEventListener("dragover",this.handleTopDragOverCapture,!0),e.addEventListener("drop",this.handleTopDrop),e.addEventListener("drop",this.handleTopDropCapture,!0))}removeEventListeners(e){e.removeEventListener&&(e.removeEventListener("dragstart",this.handleTopDragStart),e.removeEventListener("dragstart",this.handleTopDragStartCapture,!0),e.removeEventListener("dragend",this.handleTopDragEndCapture,!0),e.removeEventListener("dragenter",this.handleTopDragEnter),e.removeEventListener("dragenter",this.handleTopDragEnterCapture,!0),e.removeEventListener("dragleave",this.handleTopDragLeaveCapture,!0),e.removeEventListener("dragover",this.handleTopDragOver),e.removeEventListener("dragover",this.handleTopDragOverCapture,!0),e.removeEventListener("drop",this.handleTopDrop),e.removeEventListener("drop",this.handleTopDropCapture,!0))}getCurrentSourceNodeOptions(){const e=this.monitor.getSourceId(),r=this.sourceNodeOptions.get(e);return b9({dropEffect:this.altKeyPressed?"copy":"move"},r||{})}getCurrentDropEffect(){return this.isDraggingNativeItem()?"copy":this.getCurrentSourceNodeOptions().dropEffect}getCurrentSourcePreviewNodeOptions(){const e=this.monitor.getSourceId(),r=this.sourcePreviewNodeOptions.get(e);return b9({anchorX:.5,anchorY:.5,captureDraggingState:!1},r||{})}isDraggingNativeItem(){const e=this.monitor.getItemType();return Object.keys(y9).some(r=>y9[r]===e)}beginDragNativeItem(e,r){this.clearCurrentDragSourceNode(),this.currentNativeSource=Wrr(e,r),this.currentNativeHandle=this.registry.addSource(e,this.currentNativeSource),this.actions.beginDrag([this.currentNativeHandle])}setCurrentDragSourceNode(e){this.clearCurrentDragSourceNode(),this.currentDragSourceNode=e;const r=1e3;this.mouseMoveTimeoutTimer=setTimeout(()=>{var n;return(n=this.rootElement)===null||n===void 0?void 0:n.addEventListener("mousemove",this.endDragIfSourceWasRemovedFromDOM,!0)},r)}clearCurrentDragSourceNode(){if(this.currentDragSourceNode){if(this.currentDragSourceNode=null,this.rootElement){var e;(e=this.window)===null||e===void 0||e.clearTimeout(this.mouseMoveTimeoutTimer||void 0),this.rootElement.removeEventListener("mousemove",this.endDragIfSourceWasRemovedFromDOM,!0)}return this.mouseMoveTimeoutTimer=null,!0}return!1}handleDragStart(e,r){e.defaultPrevented||(this.dragStartSourceIds||(this.dragStartSourceIds=[]),this.dragStartSourceIds.unshift(r))}handleDragEnter(e,r){this.dragEnterTargetIds.unshift(r)}handleDragOver(e,r){this.dragOverTargetIds===null&&(this.dragOverTargetIds=[]),this.dragOverTargetIds.unshift(r)}handleDrop(e,r){this.dropTargetIds.unshift(r)}constructor(e,r,n){this.sourcePreviewNodes=new Map,this.sourcePreviewNodeOptions=new Map,this.sourceNodes=new Map,this.sourceNodeOptions=new Map,this.dragStartSourceIds=null,this.dropTargetIds=[],this.dragEnterTargetIds=[],this.currentNativeSource=null,this.currentNativeHandle=null,this.currentDragSourceNode=null,this.altKeyPressed=!1,this.mouseMoveTimeoutTimer=null,this.asyncEndDragFrameId=null,this.dragOverTargetIds=null,this.lastClientOffset=null,this.hoverRafId=null,this.getSourceClientOffset=o=>{const a=this.sourceNodes.get(o);return a&&OG(a)||null},this.endDragNativeItem=()=>{this.isDraggingNativeItem()&&(this.actions.endDrag(),this.currentNativeHandle&&this.registry.removeSource(this.currentNativeHandle),this.currentNativeHandle=null,this.currentNativeSource=null)},this.isNodeInDocument=o=>!!(o&&this.document&&this.document.body&&this.document.body.contains(o)),this.endDragIfSourceWasRemovedFromDOM=()=>{const o=this.currentDragSourceNode;o==null||this.isNodeInDocument(o)||(this.clearCurrentDragSourceNode()&&this.monitor.isDragging()&&this.actions.endDrag(),this.cancelHover())},this.scheduleHover=o=>{this.hoverRafId===null&&typeof requestAnimationFrame<"u"&&(this.hoverRafId=requestAnimationFrame(()=>{this.monitor.isDragging()&&this.actions.hover(o||[],{clientOffset:this.lastClientOffset}),this.hoverRafId=null}))},this.cancelHover=()=>{this.hoverRafId!==null&&typeof cancelAnimationFrame<"u"&&(cancelAnimationFrame(this.hoverRafId),this.hoverRafId=null)},this.handleTopDragStartCapture=()=>{this.clearCurrentDragSourceNode(),this.dragStartSourceIds=[]},this.handleTopDragStart=o=>{if(o.defaultPrevented)return;const{dragStartSourceIds:a}=this;this.dragStartSourceIds=null;const i=Vg(o);this.monitor.isDragging()&&(this.actions.endDrag(),this.cancelHover()),this.actions.beginDrag(a||[],{publishSource:!1,getSourceClientOffset:this.getSourceClientOffset,clientOffset:i});const{dataTransfer:s}=o,l=rE(s);if(this.monitor.isDragging()){if(s&&typeof s.setDragImage=="function"){const h=this.monitor.getSourceId(),u=this.sourceNodes.get(h),f=this.sourcePreviewNodes.get(h)||u;if(f){const{anchorX:g,anchorY:y,offsetX:b,offsetY:x}=this.getCurrentSourcePreviewNodeOptions(),E=Grr(u,f,i,{anchorX:g,anchorY:y},{offsetX:b,offsetY:x});s.setDragImage(f,E.x,E.y)}}try{s==null||s.setData("application/json",{})}catch{}this.setCurrentDragSourceNode(o.target);const{captureDraggingState:d}=this.getCurrentSourcePreviewNodeOptions();d?this.actions.publishDragSource():setTimeout(()=>this.actions.publishDragSource(),0)}else if(l)this.beginDragNativeItem(l);else{if(s&&!s.types&&(o.target&&!o.target.hasAttribute||!o.target.hasAttribute("draggable")))return;o.preventDefault()}},this.handleTopDragEndCapture=()=>{this.clearCurrentDragSourceNode()&&this.monitor.isDragging()&&this.actions.endDrag(),this.cancelHover()},this.handleTopDragEnterCapture=o=>{if(this.dragEnterTargetIds=[],this.isDraggingNativeItem()){var a;(a=this.currentNativeSource)===null||a===void 0||a.loadDataTransfer(o.dataTransfer)}if(!this.enterLeaveCounter.enter(o.target)||this.monitor.isDragging())return;const{dataTransfer:s}=o,l=rE(s);l&&this.beginDragNativeItem(l,s)},this.handleTopDragEnter=o=>{const{dragEnterTargetIds:a}=this;if(this.dragEnterTargetIds=[],!this.monitor.isDragging())return;this.altKeyPressed=o.altKey,a.length>0&&this.actions.hover(a,{clientOffset:Vg(o)}),a.some(s=>this.monitor.canDropOnTarget(s))&&(o.preventDefault(),o.dataTransfer&&(o.dataTransfer.dropEffect=this.getCurrentDropEffect()))},this.handleTopDragOverCapture=o=>{if(this.dragOverTargetIds=[],this.isDraggingNativeItem()){var a;(a=this.currentNativeSource)===null||a===void 0||a.loadDataTransfer(o.dataTransfer)}},this.handleTopDragOver=o=>{const{dragOverTargetIds:a}=this;if(this.dragOverTargetIds=[],!this.monitor.isDragging()){o.preventDefault(),o.dataTransfer&&(o.dataTransfer.dropEffect="none");return}this.altKeyPressed=o.altKey,this.lastClientOffset=Vg(o),this.scheduleHover(a),(a||[]).some(s=>this.monitor.canDropOnTarget(s))?(o.preventDefault(),o.dataTransfer&&(o.dataTransfer.dropEffect=this.getCurrentDropEffect())):this.isDraggingNativeItem()?o.preventDefault():(o.preventDefault(),o.dataTransfer&&(o.dataTransfer.dropEffect="none"))},this.handleTopDragLeaveCapture=o=>{this.isDraggingNativeItem()&&o.preventDefault(),this.enterLeaveCounter.leave(o.target)&&(this.isDraggingNativeItem()&&setTimeout(()=>this.endDragNativeItem(),0),this.cancelHover())},this.handleTopDropCapture=o=>{if(this.dropTargetIds=[],this.isDraggingNativeItem()){var a;o.preventDefault(),(a=this.currentNativeSource)===null||a===void 0||a.loadDataTransfer(o.dataTransfer)}else rE(o.dataTransfer)&&o.preventDefault();this.enterLeaveCounter.reset()},this.handleTopDrop=o=>{const{dropTargetIds:a}=this;this.dropTargetIds=[],this.actions.hover(a,{clientOffset:Vg(o)}),this.actions.drop({dropEffect:this.getCurrentDropEffect()}),this.isDraggingNativeItem()?this.endDragNativeItem():this.monitor.isDragging()&&this.actions.endDrag(),this.cancelHover()},this.handleSelectStart=o=>{const a=o.target;typeof a.dragDrop=="function"&&(a.tagName==="INPUT"||a.tagName==="SELECT"||a.tagName==="TEXTAREA"||a.isContentEditable||(o.preventDefault(),a.dragDrop()))},this.options=new Xrr(r,n),this.actions=e.getActions(),this.monitor=e.getMonitor(),this.registry=e.getRegistry(),this.enterLeaveCounter=new Frr(this.isNodeInDocument)}}const Krr=function(e,r,n){return new Yrr(e,r,n)},ad="_consumption_",Zrr=!window.location.search.includes("hidden=false");function DG(t){let e=[];return Object.values(t.subFolders||{}).forEach(r=>e=e.concat(DG(r))),e}const Qrr=t=>{const{onDrop:e}=t,[{isOver:r,isOverAny:n},o]=jrr({accept:"item",drop:a=>e(a.name),collect:a=>({isOver:a.isOver({shallow:!0}),isOverAny:a.isOver()})});return w.jsx("div",{ref:o,style:{background:r?"#40adff":void 0,opacity:n?.3:void 0},children:t.children})},enr=t=>{const{name:e}=t,[{opacity:r},n]=Orr({type:"item",item:()=>({name:e}),collect:o=>({opacity:o.isDragging()?.3:1})});return w.jsx("div",{ref:n,style:{opacity:r,transform:"translate3d(0, 0, 0)"},children:t.children})},w9=16,nE=/[.\][*,;'"`<>\\?]/g,Ot={noGutters:{pt:0,pb:0,width:"100%"},changed:t=>({position:"relative","&:after":{content:'""',position:"absolute",top:2,right:2,width:5,height:5,borderRadius:5,background:(t.palette.mode==="dark","#CC0000")}}),itemIcon:{width:32,height:32,marginRight:4},itemIconFolder:{cursor:"pointer"},buttonsContainer:{"& button":{whiteSpace:"nowrap"}},itemIconPreset:t=>({color:t.palette.mode==="dark"?t.palette.primary.light:t.palette.primary.dark,position:"relative"}),folderIconPreset:t=>({color:t.palette.mode==="dark"?t.palette.secondary.dark:t.palette.secondary.light}),width100:{width:"100%"},buttonIcon:{marginRight:4},itemIconRoot:{minWidth:24},listItemSubTitle:{fontSize:"smaller",opacity:.7,fontStyle:"italic",display:"inline-block",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",width:"100%"},mainList:{width:"calc(100% - 8px)",ml:"8px"},iconCopy:{width:16},listItemSecondaryAction:{right:7},listItemTitle:{lineHeight:1,width:"100%"},listItemTitleDiv:{display:"inline-block",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",width:"100%"},itemIconNumber:t=>({position:"absolute",fontSize:12,top:8,left:-1,width:"100%",textAlign:"center",color:t.palette.mode==="dark"?"#000":"#FFF"}),textColor:t=>({color:t.palette.mode==="dark"?"#FFF !important":"#000 !important"})};class oy extends A.Component{constructor(r){super(r);X(this,"refSelected");X(this,"scrollToSelect",!1);X(this,"scrollTimeout",null);X(this,"onPresetChange",(r,n)=>{if(!(r!=null&&r.startsWith("echarts.")))return;let o,a=!1;if(n?(n.common=n.common||{},n.native=n.native||{},JSON.stringify(n)!==JSON.stringify(this.state.presets[r])&&(o=JSON.parse(JSON.stringify(this.state.presets)),o[r]=n,a=!0)):this.state.presets[r]&&(o=JSON.parse(JSON.stringify(this.state.presets)),delete o[r],a=!0),a){const i=this.getEmptyFolders(),s={presets:o,changingPreset:"",presetFolders:oy.buildPresetTree(o,i)};setTimeout(()=>this.informAboutSubFolders(s.presetFolders),200),this.setState(s)}});X(this,"addPresetToFolderPrefix",async(r,n,o)=>{const a=r._id,i=r._id.split(".").pop();r._id=`${this.props.adapterName}.0.${n}${n?".":""}${i}`;try{if(await this.props.socket.setObject(r._id,r),console.log(`Deleted ${a}`),await this.props.socket.delObject(a),console.log(`Set new ID: ${r._id}`),!o){const s=await this.getAllPresets();this.setState(s)}}catch(s){this.onError(s,`Cannot delete object ${a}`)}});let n;try{n=JSON.parse(window.localStorage.getItem("App.echarts.presets.opened"))||[]}catch{n=[]}this.state={presetsOpened:n,presets:{},presetFolders:null,changingPreset:"",deletePresetDialog:"",movePresetDialog:"",newPresetFolder:"",addPresetFolderName:"",editPresetFolderDialog:null,editFolderDialogTitleOrigin:"",editPresetFolderName:"",renameDialog:"",renamePresetDialogTitle:""},this.refSelected=m.createRef(),this.getAllPresets().then(o=>this.setState(o))}async componentDidMount(){await this.props.socket.subscribeObject(`${this.props.adapterName}.0.*`,this.onPresetChange)}async componentWillUnmount(){this.scrollTimeout&&(clearTimeout(this.scrollTimeout),this.scrollTimeout=null),await this.props.socket.unsubscribeObject(`${this.props.adapterName}.0.*`,this.onPresetChange)}informAboutSubFolders(r){r=r||this.state.presetFolders||{},this.props.onShowReorder(!!Object.keys(r.subFolders||{}).length)}getEmptyFolders(r,n,o){if(o=o||[],n=n||[],r=r||this.state.presetFolders||{},r.id){const a=[...n];a.push(r.id),o.push(a.join("."))}return r.subFolders&&Object.keys(r.subFolders).forEach(a=>this.getEmptyFolders(r.subFolders[a],n,o)),o}async getAllPresets(r,n){r=r||{};const o={},a=await this.props.socket.getObjectViewSystem("chart",`${this.props.adapterName}.`,`${this.props.adapterName}.香`);return a&&Object.values(a).forEach(i=>i._id&&!i._id.toString().endsWith(".")&&(o[i._id]=i)),r.presets=o,r.changingPreset="",Object.keys(r.presets).forEach(i=>{const s=r.presets[i];s.common=s.common||{},s.native=s.native||{}}),n=n||this.getEmptyFolders(),r.presetFolders=oy.buildPresetTree(o,n),setTimeout(()=>this.informAboutSubFolders(r.presetFolders),200),r}renderPreset(r,n){var d,h;const o=this.state.presets[r._id],a=typeof r.common.name=="object"?r.common.name[P.getLanguage()]||r.common.name.en:r.common.name;if(!o||this.props.search&&!a.includes(this.props.search))return null;n=n||0;const i=(this.props.reorder?n:n-1)*w9;let s=null;((d=r.native.data.l||r.native.data.lines)==null?void 0:d.length)>1&&(s=w.jsx(Re,{sx:Ot.itemIconNumber,children:(h=r.native.data.l||r.native.data.lines)==null?void 0:h.length}));const l=w.jsxs(Ev,{sx:{"&.MuiListItemButton-gutters":ue.getStyle(this.props.theme,Ot.noGutters,this.props.selectedId===r._id&&this.props.selectedPresetChanged&&Ot.changed),height:48},selected:this.props.selectedId===r._id,style:{paddingLeft:i},className:this.props.reorder?"item-reorder":"",ref:this.props.selectedId===r._id?this.refSelected:null,onClick:()=>this.props.onSelectedChanged(o._id),children:[w.jsxs(ba,{sx:ue.getStyle(this.props.theme,Ot.itemIconRoot,Ot.itemIconPreset),children:[w.jsx(XKt,{style:Ot.itemIcon}),s]}),w.jsx(_o,{sx:{"& .MuiListItemText-primary":Ot.listItemTitle,"& .MuiListItemText-secondary":Ot.listItemSubTitle},primary:w.jsx("div",{style:Ot.listItemTitleDiv,children:ue.getObjectNameFromObj(o,null,{language:P.getLanguage()})}),secondary:ue.getObjectNameFromObj(o,null,{language:P.getLanguage()},!0)}),this.state.changingPreset===o._id?w.jsx(pO,{size:24}):this.props.reorder?null:w.jsxs(w.Fragment,{children:[this.props.selectedId!==o._id||!this.props.selectedPresetChanged?w.jsx(Ie,{size:"small","aria-label":"Rename",title:P.t("Rename"),sx:Ot.textColor,onClick:u=>{u.stopPropagation(),this.setState({renameDialog:o._id,renamePresetDialogTitle:a})},children:w.jsx(JR,{})}):null,w.jsx(Ie,{size:"small","aria-label":"Copy",title:P.t("Copy"),sx:Ot.textColor,onClick:()=>this.props.onCopyPreset(o._id),children:w.jsx(Di,{style:Ot.iconCopy})}),w.jsx(Ie,{size:"small",sx:Ot.textColor,"aria-label":"Delete",title:P.t("Delete"),onClick:()=>this.setState({deletePresetDialog:o._id}),children:w.jsx(yu,{})})]})]},r._id);return this.props.reorder?w.jsx(enr,{name:r._id,draggableId:r._id,children:l},`draggable_${r._id}`):l}renderFolder(r,n){const o=[];n=n||0;const a=this.props.reorder||(this.state.presetsOpened&&r?this.state.presetsOpened.includes(r.prefix):!1),i=(this.props.reorder?n:n-1)*w9,s=[];if(r&&(a||!r.id)){const l=Object.values(r.presets||{}),d=Object.values(r.subFolders||{});d.sort((h,u)=>h.id>u.id?1:h.id!(Zrr&&h.id===ad)).forEach(h=>s.push(this.renderFolder(h,n+1))),l.length||d.length?l.sort((h,u)=>h._id>u._id?1:h._ids.push(this.renderPreset(h,n+1))):n===0&&s.push(w.jsx(of,{sx:{"&.MuiListItem-gutters":Ot.noGutters},children:w.jsx(_o,{style:Ot.folderItem,children:P.t("No presets created yet")})},"no presets"))}if(r&&(r.id||this.props.reorder)){const l=w.jsxs(of,{sx:{"&.MuiListItem-gutters":Ot.noGutters},className:this.props.reorder?"folder-reorder":"",style:{...Ot.width100,...Ot.folderItem,paddingLeft:i,height:48},secondaryAction:w.jsxs(w.Fragment,{children:[!this.props.reorder&&r&&r.id&&a?w.jsx(Ie,{size:"small",sx:Ot.textColor,onClick:()=>this.props.onCreatePreset(r.id),title:P.t("Create new preset"),children:w.jsx(Il,{})}):null,this.props.reorder?null:w.jsx(Ie,{size:"small",sx:Ot.textColor,onClick:()=>this.setState({editPresetFolderDialog:r,editPresetFolderName:r.id,editFolderDialogTitleOrigin:r.id}),title:P.t("Edit folder name"),children:w.jsx(JR,{})}),this.props.reorder?null:w.jsx(Ie,{size:"small",onClick:()=>this.togglePresetsFolder(r),sx:Ot.textColor,title:a?P.t("Collapse"):P.t("Expand"),children:w.jsx(sf,{style:{transform:a?"rotate(180deg)":"rotate(0deg)",transition:"transform 0.2s ease-in-out"}})})]}),children:[w.jsx(ba,{sx:ue.getStyle(this.props.theme,Ot.itemIconRoot,Ot.folderIconPreset),onClick:()=>this.togglePresetsFolder(r),children:a?w.jsx(vf,{style:{...Ot.itemIcon,...Ot.itemIconFolder}}):w.jsx(yf,{style:{...Ot.itemIcon,...Ot.itemIconFolder}})}),w.jsx(_o,{children:r.id||P.t("Root")})]},r.prefix);this.props.reorder?o.push(w.jsx(Qrr,{droppableId:"tree",name:r.prefix,onDrop:d=>this.onDragFinish(d,`echarts.0${r.prefix?".":""}${r.prefix}`),children:l},`droppable_${r.prefix}`)):o.push(l)}return s.forEach(l=>o.push(l)),o}async renamePresetFolder(r,n){this.setState({changingPreset:r.id});let o;const a=this.state.presetsOpened.indexOf(r.prefix);if(a!==-1){const u=[...this.state.presetsOpened];u.splice(a,1),u.push(n),u.sort(),this.setState({presetsOpened:u})}const i=r.prefix.split(".");i[i.length-1]=n;const s=i.join(".");Object.keys(r.presets).find(u=>u===this.props.selectedId)&&(o=`${this.props.adapterName}.0.${s}.${this.props.selectedId.split(".").pop()}`);const l=Object.keys(r.presets);for(let u=0;u0;u--)d[u]===d[u-1]&&d.splice(u,1)}setTimeout(async()=>{const u=await this.getAllPresets(null,d);this.setState(u,()=>this.props.onSelectedChanged(o))},100)}isNameUnique(r,n){const o=r.split(".").length;return n===ad?!1:!Object.keys(this.state.presets).find(a=>o===a.split(".").length&&this.state.presets[a].common.name===n)}static buildPresetTree(r,n){const o=Object.values(r),a={subFolders:{},presets:{},id:"",prefix:""};return o.forEach(i=>{const s=i._id,l=s.split(".");l.shift(),l.shift();let d=a,h="";for(let u=0;u{const s=i.split(".");let l=a,d="";for(let h=0;h{this.setState({presetFolders:o,presetsOpened:i},()=>s())})}togglePresetsFolder(r){const n=[...this.state.presetsOpened],o=n.indexOf(r.prefix);if(o===-1)n.push(r.prefix);else if(n.splice(o,1),Object.keys(r.presets).includes(this.props.selectedId)){this.props.onSelectedChanged(null,a=>{a!==!1&&(window.localStorage.setItem("App.echarts.presets.opened",JSON.stringify(n)),this.setState({presetsOpened:n}))});return}window.localStorage.setItem("App.echarts.presets.opened",JSON.stringify(n)),this.setState({presetsOpened:n})}renderAddFolderDialog(){return this.props.addPresetFolderDialog?w.jsxs(or,{maxWidth:"md",fullWidth:!0,open:!0,onClose:()=>this.props.onClosePresetFolderDialog(),children:[w.jsx(_r,{children:P.t("Create folder")}),w.jsx(Wr,{style:Ot.p,children:w.jsx(Ht,{variant:"standard",fullWidth:!0,autoFocus:!0,label:P.t("Title"),value:this.state.addPresetFolderName,onChange:r=>this.setState({addPresetFolderName:r.target.value.replace(nE,"_").trim()}),onKeyUp:r=>{this.state.addPresetFolderName&&r.key==="Enter"&&this.state.addPresetFolderName!==ad&&(r.preventDefault(),r.stopPropagation(),this.addFolder(null,this.state.addPresetFolderName).then(()=>this.props.onClosePresetFolderDialog(()=>this.informAboutSubFolders())))}})}),w.jsxs(pr,{style:{...Ot.alignRight,...Ot.buttonsContainer},children:[w.jsx(tt,{variant:"contained",disabled:!this.state.addPresetFolderName||!!Object.keys(this.state.presetFolders&&this.state.presetFolders.subFolders||{}).find(r=>r===this.state.addPresetFolderName)||this.state.addPresetFolderName===ad,onClick:()=>this.addFolder(null,this.state.addPresetFolderName).then(()=>this.props.onClosePresetFolderDialog(()=>this.informAboutSubFolders())),color:"primary",autoFocus:!0,startIcon:w.jsx(sh,{}),children:P.t("Create")}),w.jsx(tt,{color:"grey",variant:"contained",onClick:()=>this.props.onClosePresetFolderDialog(),startIcon:w.jsx(wo,{}),children:P.t("Cancel")})]})]}):null}renderRenameFolderDialog(){if(!this.state.editPresetFolderDialog)return null;const r=!Object.keys(this.state.presetFolders&&this.state.presetFolders.subFolders||{}).find(n=>n===this.state.editPresetFolderName);return w.jsxs(or,{maxWidth:"md",fullWidth:!0,open:!!this.state.editPresetFolderDialog,onClose:()=>this.setState({editPresetFolderDialog:null}),children:[w.jsx(_r,{children:P.t("Edit folder")}),w.jsx(Wr,{children:w.jsx(Ht,{variant:"standard",fullWidth:!0,autoFocus:!0,label:P.t("Title"),value:this.state.editPresetFolderName,onKeyUp:n=>{this.state.editPresetFolderName&&n.key==="Enter"&&this.state.editPresetFolderName!==ad&&this.state.editFolderDialogTitleOrigin!==this.state.editPresetFolderName&&r&&(n.preventDefault(),n.stopPropagation(),this.renamePresetFolder(this.state.editPresetFolderDialog,this.state.editPresetFolderName).then(()=>this.setState({editPresetFolderDialog:null})))},onChange:n=>this.setState({editPresetFolderName:n.target.value.replace(nE,"_").trim()})})}),w.jsxs(pr,{style:{...Ot.alignRight,...Ot.buttonsContainer},children:[w.jsx(tt,{variant:"contained",disabled:!this.state.editPresetFolderName||this.state.editFolderDialogTitleOrigin===this.state.editPresetFolderName||!r||this.state.editPresetFolderName===ad,onClick:()=>{this.renamePresetFolder(this.state.editPresetFolderDialog,this.state.editPresetFolderName).then(()=>this.setState({editPresetFolderDialog:null}))},color:"primary",startIcon:w.jsx(sh,{}),children:P.t("Rename")}),w.jsx(tt,{color:"grey",variant:"contained",onClick:()=>this.setState({editPresetFolderDialog:null}),startIcon:w.jsx(wo,{}),children:P.t("Cancel")})]})]})}renderMoveDialog(){if(!this.state.movePresetDialog)return null;const r=this.state.newPresetFolder==="__root__"?"":this.state.newPresetFolder,n=this.state.movePresetDialog,o=`preset.0.${r}${r?".":""}${n}`,a=!Object.keys(this.state.presets).find(i=>i===o);return w.jsxs(or,{maxWidth:"md",fullWidth:!0,open:!0,onClose:()=>this.setState({movePresetDialog:null}),children:[w.jsx(_r,{children:P.t("Move to folder")}),w.jsx(Wr,{children:w.jsxs(_a,{style:Ot.width100,variant:"standard",children:[w.jsx($l,{shrink:!0,children:P.t("Folder")}),w.jsx(Bn,{variant:"standard",autoFocus:!0,fullWidth:!0,style:Ot.width100,value:this.state.newPresetFolder||"__root__",onChange:i=>this.setState({newPresetFolder:i.target.value}),onKeyUp:i=>{a&&i.which===13&&(i.preventDefault(),i.stopPropagation(),this.setState({movePresetDialog:null},()=>this.addPresetToFolderPrefix(this.state.presets[n],this.state.newPresetFolder==="__root__"?"":this.state.newPresetFolder)))},children:DG(this.state.presetFolders||{}).map(i=>w.jsx(Jt,{value:i.prefix||"__root__",children:i.prefix?i.prefix.replace("."," > "):P.t("Root")},i.prefix))})]})}),w.jsxs(pr,{style:{...Ot.alignRight,...Ot.buttonsContainer},children:[w.jsx(tt,{variant:"contained",disabled:!a,color:"primary",onClick:()=>this.setState({movePresetDialog:null},()=>this.addPresetToFolderPrefix(this.state.presets[n],this.state.newPresetFolder==="__root__"?"":this.state.newPresetFolder)),startIcon:w.jsx(sh,{}),children:P.t("Move to folder")}),w.jsxs(tt,{color:"grey",variant:"contained",onClick:()=>this.setState({movePresetDialog:null}),startIcon:w.jsx(wo,{}),children:[w.jsx(wo,{style:Ot.buttonIcon}),P.t("Cancel")]})]})]},"movePresetDialog")}onError(r,n){n&&console.error(n),this.props.onShowError(r.toString())}async onDragFinish(r,n){let o=`${n}.${r.split(".").pop()}`;if(o!==r){this.state.presets[o]&&(o+=`_${P.t("copy")}`);try{const a=await this.props.socket.getObject(r);if(a)try{await this.props.socket.setObject(o,a),await this.props.socket.delObject(r);const i=await this.getAllPresets();this.setState(i)}catch(i){this.onError(i,`Cannot delete object ${o}`)}}catch(a){this.onError(a,`Cannot read object ${r}`)}}}renderRenameDialog(){if(!this.state.renameDialog)return null;const r=this.state.renameDialog;return w.jsxs(or,{maxWidth:"md",fullWidth:!0,open:!0,onClose:()=>this.setState({renameDialog:null}),children:[w.jsx(_r,{children:P.t("Rename preset")}),w.jsx(Wr,{children:w.jsx(_a,{style:Ot.width100,variant:"standard",children:w.jsx(Ht,{variant:"standard",fullWidth:!0,autoFocus:!0,label:P.t("Name"),value:this.state.renamePresetDialogTitle,onKeyUp:n=>{n.keyCode===13&&this.state.renamePresetDialogTitle&&this.isNameUnique(r,this.state.renamePresetDialogTitle)&&(n.stopPropagation(),n.preventDefault(),this.setState({renameDialog:null},()=>this.renamePreset(r,this.state.renamePresetDialogTitle)))},onChange:n=>this.setState({renamePresetDialogTitle:n.target.value})})})}),w.jsxs(pr,{style:{...Ot.alignRight,...Ot.buttonsContainer},children:[w.jsx(tt,{variant:"contained",disabled:!this.state.renamePresetDialogTitle||!this.isNameUnique(r,this.state.renamePresetDialogTitle),color:"primary",onClick:()=>this.setState({renameDialog:null},()=>this.renamePreset(r,this.state.renamePresetDialogTitle)),startIcon:w.jsx(sh,{}),children:P.t("Rename")}),w.jsx(tt,{color:"grey",variant:"contained",onClick:()=>this.setState({renameDialog:null}),startIcon:w.jsx(wo,{}),children:P.t("Cancel")})]})]},"renameDialog")}renderDeleteDialog(){return this.state.deletePresetDialog?w.jsx(PO,{title:P.t("Please confirm"),text:P.t("Are you sure for delete this preset?"),ok:P.t("Delete"),cancel:P.t("Cancel"),suppressQuestionMinutes:3,dialogName:"echarts.deletePresetDialog",onClose:r=>{r?this.deletePreset(this.state.deletePresetDialog,()=>this.setState({deletePresetDialog:""})):this.setState({deletePresetDialog:""})}},"deletePresetDialog"):null}async deletePreset(r,n){try{await this.props.socket.delObject(r);const o=await this.getAllPresets();this.setState(o,()=>{if(r===this.props.selectedId){const a=Object.keys(this.state.presets);this.props.onSelectedChanged(a[0]||null)}})}catch(o){this.onError(o,`Cannot delete object ${r}`)}n()}async renamePreset(r,n){try{const o=await this.props.socket.getObject(r);o.common.name=n;const a=r.split(".");a.splice(-1,1),a.push(n.replace(nE,"_").trim()),o._id=a.join("."),await this.props.socket.setObject(o._id,o),await this.props.socket.delObject(r);const i=await this.getAllPresets();r===this.props.selectedId?this.setState(i,()=>this.props.onSelectedChanged(o._id)):this.setState(i)}catch(o){this.onError(o,`Cannot get object ${r}`)}}render(){return this.scrollToSelect!==this.props.scrollToSelect&&(this.scrollToSelect=this.props.scrollToSelect,this.scrollToSelect&&!this.scrollTimeout&&(this.scrollTimeout=setTimeout(()=>{var r;this.scrollTimeout=null,(r=this.refSelected.current)==null||r.scrollIntoView({behavior:"auto",block:"center",inline:"center"})},100))),w.jsxs(w.Fragment,{children:[w.jsx(orr,{backend:Krr,children:w.jsx(vu,{sx:{...Ot.scroll,...Ot.mainList},children:this.renderFolder(this.state.presetFolders)})}),this.renderAddFolderDialog(),this.renderRenameFolderDialog(),this.renderDeleteDialog(),this.renderMoveDialog(),this.renderRenameDialog()]})}}const tnr=qs()(oy);function rnr(t){return Pr({tag:"svg",attr:{viewBox:"0 0 1024 1024"},child:[{tag:"path",attr:{d:"M888 792H200V168c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v688c0 4.4 3.6 8 8 8h752c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-616-64h536c4.4 0 8-3.6 8-8V284c0-7.2-8.7-10.7-13.7-5.7L592 488.6l-125.4-124a8.03 8.03 0 0 0-11.3 0l-189 189.6a7.87 7.87 0 0 0-2.3 5.6V720c0 4.4 3.6 8 8 8z"},child:[]}]})(t)}const x9=34,id=20,S9=30,Zp=15;class AG extends A.Component{render(){const e=w.jsxs("div",{style:{width:this.props.size==="small"?S9:x9,height:id,display:"flex",alignItems:"center",cursor:"pointer",position:"relative",opacity:this.props.disabled?.7:1},onClick:r=>{this.props.disabled||(r.stopPropagation(),r.preventDefault(),this.props.onChange(!this.props.checked))},children:[w.jsx("div",{style:{borderRadius:15,width:"100%",height:(this.props.size==="small"?Zp:id)*.7,opacity:.6,backgroundColor:this.props.checked?this.props.theme.palette.primary.main:this.props.theme.palette.text.disabled}}),w.jsx("div",{style:{position:"absolute",top:this.props.size==="small"?(id-Zp)/2:0,left:this.props.checked?this.props.size==="small"?S9-Zp:x9-id:0,transition:"left 0.2s",borderRadius:50,width:this.props.size==="small"?Zp:id,height:this.props.size==="small"?Zp:id,backgroundColor:this.props.checked?this.props.theme.palette.primary.main:"#EEE",boxShadow:"rgba(0, 0, 0, 0.2) 0px 2px 1px -1px, rgba(0, 0, 0, 0.14) 0px 1px 1px 0px, rgba(0, 0, 0, 0.12) 0px 1px 3px 0px"}})]});return this.props.labelOn||this.props.labelOff?w.jsxs("div",{style:{display:"flex",alignItems:"center",gap:4},children:[this.props.labelOff,e,this.props.labelOn]}):e}}function C9(t,e){const r=typeof t=="object"?t._id.replace("system.adapter.",""):t.replace("system.adapter.",""),n=typeof e=="object"?e._id.replace("system.adapter.",""):e.replace("system.adapter.","");return r>n?1:r{t[n].common.members.includes(e)&&!r.includes(n)&&r.push(n)}),r}const $9=16,qt={noGutters:{paddingTop:0,paddingBottom:0,paddingLeft:0,width:"100%"},itemIconFolder:{cursor:"pointer",marginLeft:8},width100:{width:"100%"},itemIcon:{width:32,height:32,marginRight:4},itemIconRoot:{minWidth:24},itemNameDiv:{marginTop:5},itemName:{verticalAlign:"top",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",width:"calc(100% - 26px)",display:"inline-block"},itemName0:{},itemName1:{fontSize:14,opacity:.6},itemName2:{fontSize:12,opacity:.6},itemName3:{fontSize:10,opacity:.6},itemName4:{fontSize:8,opacity:.6},itemName5:{fontSize:6,opacity:.6},groupName:{verticalAlign:"top",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",width:"calc(100% - 66px)",display:"inline-block"},itemSecondaryName:{overflow:"hidden",textOverflow:"ellipsis",width:"100%",fontSize:"smaller",opacity:.6,fontStyle:"italic",whiteSpace:"nowrap",display:"inline-block"},listItemSubTitle:{fontSize:"smaller",opacity:.6,fontStyle:"italic"},adapterIcon:{width:20,height:20,borderRadius:2,marginRight:4},mainList:{width:"100%"},listItemSecondaryAction:{marginRight:4},folderItem:t=>({backgroundColor:t.palette.secondary.main,pl:"8px"})};class onr extends A.Component{constructor(r){super(r);X(this,"refSelected");X(this,"scrollToSelect",!1);X(this,"adapterPromises",{});X(this,"toggleChartFolder",r=>{const n=JSON.parse(JSON.stringify(this.state.chartsOpened));n[r]=!n[r],window.localStorage.setItem("App.echarts.opened",JSON.stringify(n));const o={chartsOpened:n};if(!n[r]){const a=r.split("///")[0];this.props.selectedId&&typeof this.props.selectedId=="object"&&this.props.selectedId.instance}this.setState(o,()=>this.props.onSelectedChanged(null))});let n;try{n=JSON.parse(window.localStorage.getItem("App.echarts.opened"))||{}}catch{n={}}this.state={instances:[],chartsOpened:n,enums:null,showAddStateDialog:""},this.refSelected=m.createRef(),this.getAllEnums().then(o=>this.getAllCharts(o)).then(o=>this.setState(o,()=>this.props.selectedId&&this.props.onSelectedChanged(this.props.selectedId)))}UNSAFE_componentWillReceiveProps(r){r.scrollToSelect!==this.scrollToSelect&&(this.scrollToSelect=r.scrollToSelect,this.scrollToSelect&&setTimeout(()=>{var n;(n=this.refSelected.current)==null||n.scrollIntoView({behavior:"auto",block:"center",inline:"center"})},100))}async getAllEnums(r){r=r||{};try{const n=await this.props.socket.getEnums();return r.enums={},Object.keys(n).forEach(o=>{var a,i,s;(o.startsWith("enum.functions.")||o.startsWith("enum.rooms."))&&((s=(i=(a=n[o])==null?void 0:a.common)==null?void 0:i.members)!=null&&s.length)&&(r.enums[o]={_id:o,common:{members:[...n[o].common.members],name:ue.getObjectNameFromObj(n[o],null,{language:P.getLanguage()})},type:"enum",native:{}})}),r}catch(n){return this.onError(n,"Cannot read enums"),{}}}async getAdapterIcon(r){var a;const n=r.split(".");if(n.length<2||n[0]==="0_userdata")return null;let o;n[0]==="system"?(n.splice(4),o=n.join(".")):(n.splice(2),o=`system.adapter.${n.join(".")}`),this.adapterPromises[o]instanceof Promise||(this.adapterPromises[o]=this.props.socket.getObject(o));try{const i=await this.adapterPromises[o];if((a=i==null?void 0:i.common)!=null&&a.icon)return ue.getObjectIcon(i)}catch(i){this.onError(i,`Cannot read object ${o}`)}return null}onError(r,n){n&&console.error(n),this.props.onShowError(r.toString())}async getChartIconAndName(r,n){let o;const a=[];if(!n)return null;const i=P.getLanguage(),s=n._id;n.common&&(n.common.icon&&(o=ue.getObjectIcon(n)),a.push(ue.getObjectNameFromObj(n,null,{language:i})));const l=ue.getParentId(n._id);if((l==null?void 0:l.split(".").length)>2)try{const d=await this.props.socket.getObject(l);if(d&&(d.type==="channel"||d.type==="device")&&d.common){!o&&d.common.icon&&(o=ue.getObjectIcon(d)),a.push(ue.getObjectNameFromObj(d,null,{language:i}));const h=ue.getParentId(l);if((h==null?void 0:h.split(".").length)>2){const u=await this.props.socket.getObject(h);if(u&&(u.type==="channel"||u.type==="device")&&u.common){!o&&u.common.icon&&(o=ue.getObjectIcon(u)),a.push(ue.getObjectNameFromObj(u,null,{language:i}));const f=ue.getParentId(h);if((f==null?void 0:f.split(".").length)>2){const g=await this.props.socket.getObject(f);g&&(g.type==="channel"||g.type==="device")&&g.common&&(!o&&g.common.icon&&(o=ue.getObjectIcon(g)),a.push(ue.getObjectNameFromObj(g,null,{language:i})))}}}}}catch(d){console.error(`Cannot read object: ${d}`)}return o=o||await this.getAdapterIcon(s),{groupId:r,id:s,img:o,name:a.filter(d=>d)}}async getAllCharts(r){r=r||{};const n=this.props.instances.map(u=>u._id.substring(15)),o=await this.props.socket.getObjectViewSystem("custom-full","",""),a={};r.enums=r.enums||this.state.enums;const i=[];Object.values(o).forEach(u=>{const f=n.find(g=>Object.keys(u.common.custom).includes(g));if(f){const g=this.props.instances.find(y=>y._id.endsWith(f));a[f]=a[f]||{_id:`system.adapter.${f}`,enabledDP:{},names:{},statesEnums:{},icon:g.common.icon,name:g.common.name||"",types:{},icons:{}},a[f].enabledDP[u._id]=u,a[f].names[u._id]=ue.getObjectNameFromObj(u,null,{language:P.getLanguage()}),a[f].types[u._id]=u.common.type==="boolean"?"boolean":"number",a[f].statesEnums[u._id]=nnr(r.enums,u._id),i.push(this.getChartIconAndName(f,u))}});const s=JSON.parse(JSON.stringify(this.state.chartsOpened)),l=Object.keys(r.enums).filter(u=>u.startsWith("enum.functions.")),d=Object.keys(r.enums).filter(u=>u.startsWith("enum.rooms.")),h=Object.values(a).map(u=>{var b;const f={};Object.keys(u.enabledDP).forEach(x=>{f[x]=u.enabledDP[x],f[x].group=u._id}),u.enabledDP=f,s[u._id]=s[u._id]!==void 0?this.state.chartsOpened[u._id]||!1:!0,Object.keys(r.enums).forEach(x=>{Object.keys(f).find(S=>r.enums[x].common.members.includes(S))&&(u.enums=u.enums||[],u.enums.includes(x)||u.enums.push(x))});const g={_id:`enum.functions.${u._id}`,type:"enum",common:{members:[],name:P.t("Others")},native:{}},y={_id:`enum.rooms.${u._id}`,type:"enum",common:{members:[],name:P.t("Others")},native:{}};return Object.keys(f).forEach(x=>{l.find(S=>r.enums[S].common.members.includes(x))||g.common.members.push(x),d.find(S=>r.enums[S].common.members.includes(x))||y.common.members.push(x)}),g.common.members.length&&(u.enums=u.enums||[],u.enums.push(`enum.functions.${u._id}`),r.enums[`enum.functions.${u._id}`]=g),y.common.members.length&&(u.enums=u.enums||[],u.enums.push(`enum.rooms.${u._id}`),r.enums[`enum.rooms.${u._id}`]=y),(b=u.enums)==null||b.sort((x,S)=>r.enums[x].common.name>r.enums[S].common.name?1:r.enums[x].common.namethis.props.onSelectedChanged({id:u,instance:h[0]._id}),500)}return r.instances=h,r.chartsOpened=s,setTimeout(()=>{Promise.all(i).then(u=>{const f=JSON.parse(JSON.stringify(this.state.instances));let g=!1;u.forEach(y=>{if(y!=null&&y.groupId){const b=f.find(x=>x._id===`system.adapter.${y.groupId}`);b&&(y.img&&(b.icons[y.id]=y.img),y.name&&(b.names[y.id]=y.name),g=!0)}}),g&&this.setState({instances:f})})},100),r}renderSelectIdDialog(){return this.state.showAddStateDialog?w.jsx(OV,{theme:this.props.theme,imagePrefix:"../..",socket:this.props.socket,dialogName:"Add",title:P.t("Enable logging for state"),onOk:r=>{const n=Array.isArray(r)?r[0]:r;console.log(`Selected ${JSON.stringify(n)}`);const o=this.state.showAddStateDialog.replace("system.adapter.","");n&&this.props.socket.getObject(n).then(a=>{var i;if(!(a!=null&&a.common)){this.props.onShowError(P.t("Invalid object"));return}if((i=a.common.custom)!=null&&i[o]){this.props.onShowToast(P.t("Already enabled"));return}a.common.custom=a.common.custom||{},a.common.custom[o]={enabled:!0},this.props.socket.setObject(n,a).then(()=>{const s=JSON.parse(JSON.stringify(this.state.instances)),l=s.find(d=>d._id===`system.adapter.${o}`);l.enabledDP=l.enabledDP||{},l.enabledDP[a._id]=a,this.setState({instances:s},()=>this.getAllCharts())}).catch(s=>this.onError(s,`Cannot read object ${n}`))}).catch(a=>this.onError(a,`Cannot read object ${n}`)),this.setState({showAddStateDialog:""})},onClose:()=>this.setState({showAddStateDialog:""})},"selectDialog_add"):null}renderListItem(r,n,o,a){a=a||0;const i=r._id,s=this.props.selectedId&&typeof this.props.selectedId=="object"&&this.props.selectedId.id===n&&this.props.selectedId.instance===i;let l;if(typeof r.names[n]=="object"){const d=[...r.names[n]];l=w.jsx("span",{style:qt.itemName,title:d.join(" / "),children:d.map((h,u)=>w.jsx("span",{style:qt[`itemName${u}`],children:(u?" / ":"")+h},u))})}else{const d=(r.names[n]||"").toString();l=w.jsx("span",{style:qt.itemName,title:d,children:d})}return w.jsxs(Ev,{ref:s?this.refSelected:null,sx:{"&.MuiListItemButton-gutters":qt.noGutters},style:{paddingLeft:$9*a,height:48,position:"relative"},selected:s,onClick:o?void 0:()=>this.props.onSelectedChanged({id:n,instance:i}),children:[w.jsx(ba,{style:qt.itemIconRoot,children:r.types[n]==="boolean"?w.jsx(JKt,{style:qt.itemIcon}):w.jsx(rnr,{style:qt.itemIcon})}),w.jsxs("div",{style:{flexGrow:1,overflow:"hidden"},children:[w.jsxs("div",{style:qt.itemNameDiv,children:[ue.getIcon({icon:r.icons[n],prefix:"../../"},{width:20,height:20,borderRadius:2,marginRight:4}),l]}),w.jsx("div",{style:qt.itemSecondaryName,title:n,children:n.replace("system.adapter.","")})]}),!o&&this.props.multiple&&this.props.chartsList?w.jsxs("div",{style:qt.listItemSecondaryAction,children:[w.jsx(AG,{size:"small",theme:this.props.theme,onChange:d=>{const h=JSON.parse(JSON.stringify(this.props.chartsList)),u=h.find(f=>f.id===n&&f.instance===i);d&&!u?(h.push({id:n,instance:i}),h.sort((f,g)=>f.instance>g.instance?1:f.instanceg.id?1:f.idthis.props.onChangeList(h)):this.props.onChangeList(h)):!d&&u&&(h.splice(h.indexOf(u),1),this.props.onChangeList(h))},checked:!!this.props.chartsList.find(d=>d.id===n&&d.instance===i)})," "]}):null]},`${i}_${n}`)}renderListItems(r,n,o,a){if(a.gIndex=a.gIndex||0,!(n!=null&&n.length))return null;const i=r._id,s=1;if(!o)return n.map(f=>w.jsx(EE,{isDragDisabled:!this.props.selectedId||typeof this.props.selectedId=="object",draggableId:`${i}***${f}`,index:a.gIndex++,children:(g,y)=>w.jsxs(w.Fragment,{children:[w.jsx("div",{ref:g.innerRef,...g.draggableProps,...g.dragHandleProps,style:g.draggableProps.style,className:"drag-items",children:this.renderListItem(r,f,!1,s)},`${i}_${f}_item`),y.isDragging?w.jsx("div",{className:"react-beautiful-dnd-copy",children:this.renderListItem(r,f,!0)},`${i}_${f}_dnd`):null]})},`${i}_${f}`));const l=`${i}///${o}`,d=this.state.chartsOpened[l];d&&(n=n.filter(f=>this.state.enums[o].common.members.includes(f)));const h=this.state.enums[o].common.name,u=typeof h=="object"?h[P.getLanguage()]||h.en:h;return[w.jsxs(of,{style:{...qt.width100,paddingLeft:$9*s,height:48},sx:ue.getStyle(this.props.theme,qt.folderItem,{"&.MuiListItem-gutters":qt.noGutters}),secondaryAction:w.jsx(Ie,{size:"small",onClick:()=>this.toggleChartFolder(l),title:d?P.t("Collapse"):P.t("Expand"),children:w.jsx(sf,{style:{transform:d?"rotate(180deg)":"rotate(0deg)",transition:"transform 0.2s ease-in-out"}})}),children:[w.jsx(ba,{style:qt.itemIconRoot,onClick:()=>this.toggleChartFolder(l),children:d?w.jsx(vf,{style:{...qt.itemIcon,...qt.itemIconFolder}}):w.jsx(yf,{style:{...qt.itemIcon,...qt.itemIconFolder}})}),w.jsx(_o,{primary:u})]},l),d?w.jsx(vu,{children:n.map(f=>w.jsx(EE,{isDragDisabled:!this.props.selectedId||typeof this.props.selectedId=="object",draggableId:`${i}***${f}`,index:a.gIndex++,children:(g,y)=>w.jsxs(w.Fragment,{children:[w.jsx("div",{ref:g.innerRef,...g.draggableProps,...g.dragHandleProps,style:g.draggableProps.style,className:"drag-items",children:this.renderListItem(r,f,!1,2)},`${i}_${f}_item`),y.isDragging?w.jsx("div",{className:"react-beautiful-dnd-copy",children:this.renderListItem(r,f,!0)},`${i}_${f}_dnd`):null]})},`${i}_${f}`))},`${l}_LIST`):null]}render(){const r={gIndex:0};return w.jsxs(w.Fragment,{children:[this.renderSelectIdDialog(),w.jsx(QT,{droppableId:"Lines",isDropDisabled:!0,children:n=>w.jsx("div",{ref:n.innerRef,children:w.jsx(vu,{style:{...qt.scroll,...qt.mainList},children:w.jsxs(w.Fragment,{children:[this.state.instances.map(o=>{const a=this.state.chartsOpened[o._id];let i=null;if(a){const s=Object.keys(o.enabledDP).filter(l=>!this.props.search||l.includes(this.props.search)||o.names[l].includes(this.props.search));this.props.groupBy?i=(o.enums||[]).filter(l=>l.startsWith(`enum.${this.props.groupBy}.`)).map(l=>this.renderListItems(o,s,l,r)):(s.sort(C9),i=this.renderListItems(o,s,null,r))}return[w.jsxs(of,{sx:ue.getStyle(this.props.theme,qt.width100,qt.folderItem,{height:48,color:this.props.theme.palette.mode==="dark"?void 0:"#FFF"},{"&.MuiListItem-gutters":qt.noGutters}),secondaryAction:w.jsxs(w.Fragment,{children:[a?w.jsx(Ie,{size:"small",onClick:()=>this.setState({showAddStateDialog:o._id}),style:{color:this.props.theme.palette.mode==="dark"?void 0:"#FFF"},title:P.t("Enable logging for new state"),children:w.jsx(Il,{})}):null,w.jsx(Ie,{size:"small",onClick:()=>this.toggleChartFolder(o._id),title:a?P.t("Collapse"):P.t("Expand"),style:{color:this.props.theme.palette.mode==="dark"?void 0:"#FFF"},children:w.jsx(sf,{style:{transform:a?"rotate(180deg)":"rotate(0deg)",transition:"transform 0.2s ease-in-out"}})})]}),children:[w.jsx(ba,{style:qt.itemIconRoot,sx:{color:this.props.theme.palette.mode==="dark"?void 0:"#FFF"},onClick:()=>this.toggleChartFolder(o._id),children:a?w.jsx(vf,{style:{...qt.itemIcon,...qt.itemIconFolder}}):w.jsx(yf,{style:{...qt.itemIcon,...qt.itemIconFolder}})}),w.jsx(_o,{primary:w.jsxs("div",{style:qt.itemNameDiv,children:[w.jsx("img",{style:qt.adapterIcon,alt:"",src:`../../adapter/${o.name}/${o.icon}`}),w.jsx("div",{style:qt.groupName,children:o._id.replace("system.adapter.","")})]})})]},o._id),i]}),n.placeholder]})},"chartList")},"chartListDiv")},"charts")]})}}const anr=qs()(onr),k9=48,Fo={mainListDiv:{width:"100%",height:"100%",overflow:"hidden"},mainToolbar:t=>({background:t.palette.primary.main}),secondaryColors:t=>({background:"#888",color:t.palette.mode==="dark"?"#000":"#FFF"}),smallMargin:{marginTop:"8px !important"},heightMinusTwoToolbars:{height:`calc(100% - ${k9*2}px)`,overflow:"auto"},heightMinusToolbar:{height:`calc(100% - ${k9}px)`,overflow:"auto"},textColor:t=>({color:t.palette.mode==="dark"?"#000 !important":"#FFF !important"})};class inr extends A.Component{constructor(r){super(r);X(this,"isIFrame");this.state={search:null,multiple:window.localStorage.getItem("App.echarts.multiple")==="true",showSearch:!1,groupBy:window.localStorage.getItem("App.echarts.groupBy")||"",addPresetFolderDialog:!1,reorder:!1,showReorder:!1};try{this.isIFrame=window.self!==window.top}catch{this.isIFrame=!0}if(this.state.multiple){const n=window.localStorage.getItem("App.echarts.chartList")||"[]";let o;try{o=JSON.parse(n)}catch{o=[]}setTimeout(()=>this.props.onChangeList(o),100)}}renderListToolbar(){return w.jsxs(af,{variant:"dense",sx:Fo.mainToolbar,children:[this.state.reorder?null:w.jsx(Ie,{onClick:()=>this.props.onCreatePreset(!1),title:P.t("Create new preset"),children:w.jsx(Il,{})}),this.state.reorder?null:w.jsx(Ie,{onClick:()=>this.setState({addPresetFolderDialog:!0}),title:P.t("Create new folder"),children:w.jsx(Fpe,{})}),this.state.reorder?null:w.jsx("span",{style:Fo.right,children:w.jsx(Ie,{onClick:()=>this.setState({showSearch:!this.state.showSearch,search:""}),children:w.jsx(Nve,{})})}),this.state.showSearch?w.jsx(Ht,{variant:"standard",value:this.state.search,style:Fo.textInput,onChange:r=>this.setState({search:r.target.value}),InputProps:{endAdornment:this.state.search?w.jsx(Ie,{onClick:()=>this.setState({search:""}),children:w.jsx(Ar,{})}):void 0}}):null,w.jsx("div",{style:{flexGrow:1}}),!this.state.showSearch&&this.state.showReorder||this.state.reorder?w.jsx(Ie,{title:P.t("Reorder presets in folders"),style:{color:this.state.reorder?"red":"inherit",float:"right"},onClick:r=>{r.stopPropagation(),this.setState({reorder:!this.state.reorder})},children:w.jsx(zpe,{})},"reorder"):null,!this.state.showSearch&&this.isIFrame?w.jsx(Ie,{onClick:()=>window.open(window.location.href,"own-echarts"),title:P.t("Open in own window"),children:w.jsx(hH,{})}):null]},"toolbar")}renderFooter(){return w.jsxs(af,{variant:"dense",sx:Fo.secondaryColors,style:{gap:8},children:[this.props.selectedPresetChanged?null:w.jsx(AG,{style:{width:58},checked:this.state.multiple,theme:this.props.theme,onChange:r=>{if(window.localStorage.setItem("App.echarts.multiple",r?"true":"false"),r){const n=this.props.selectedId;n&&typeof n=="object"?this.setState({multiple:!0},()=>this.props.onChangeList([JSON.parse(JSON.stringify(n))])):this.setState({multiple:!0},()=>this.props.onChangeList([]))}else this.setState({multiple:!1},()=>this.props.onChangeList(null))},labelOn:P.t("Multiple")}),w.jsxs(_a,{variant:"standard",style:{minWidth:100},sx:Fo.textColor,children:[w.jsx($l,{shrink:!0,sx:Fo.textColor,style:{whiteSpace:"nowrap",top:5},children:P.t("Group by")}),w.jsxs(Bn,{variant:"standard",label:P.t("Group by"),sx:Fo.textColor,onChange:r=>{window.localStorage.setItem("App.echarts.groupBy",r.target.value),this.setState({groupBy:r.target.value})},value:this.state.groupBy||"",style:Fo.smallMargin,displayEmpty:!0,children:[w.jsx(Jt,{value:"",children:P.t("None")}),w.jsx(Jt,{value:"rooms",children:P.t("Rooms")}),w.jsx(Jt,{value:"functions",children:P.t("Functions")})]})]}),w.jsx("div",{style:{flex:1}}),w.jsx(Ie,{size:"small",sx:Fo.textColor,title:P.t("Charts preview"),onClick:()=>{const r=window.location.pathname.split("/");r.pop(),r.push("preview/index.html"),window.location.href=`${window.location.protocol}//${window.location.host}${r.join("/")}`},children:w.jsx(Mve,{})})]},"toolbarBottom")}render(){return w.jsxs("div",{style:Fo.mainListDiv,children:[this.renderListToolbar(),w.jsxs("div",{style:this.state.reorder?Fo.heightMinusToolbar:Fo.heightMinusTwoToolbars,children:[w.jsx(tnr,{socket:this.props.socket,scrollToSelect:this.props.scrollToSelect,addPresetFolderDialog:this.state.addPresetFolderDialog,onClosePresetFolderDialog:r=>this.setState({addPresetFolderDialog:!1},r),onCreatePreset:(r,n)=>this.props.onCreatePreset(r,n),onCopyPreset:r=>this.props.onCopyPreset(r),adapterName:this.props.adapterName,selectedPresetChanged:this.props.selectedPresetChanged,onShowToast:r=>this.props.onShowToast(r),onShowError:r=>this.props.onShowToast(r),onShowReorder:r=>{r!==this.props.showReorder&&this.setState({showReorder:r})},theme:this.props.theme,search:this.state.search,reorder:this.state.reorder,selectedId:this.props.selectedId,systemConfig:this.props.systemConfig,onSelectedChanged:(r,n)=>this.props.onSelectedChanged(r,n)}),this.state.reorder?null:w.jsx(anr,{socket:this.props.socket,scrollToSelect:this.props.scrollToSelect,instances:this.props.instances,adapterName:this.props.adapterName,onShowToast:r=>this.props.onShowToast(r),onShowError:r=>this.props.onShowToast(r),search:this.state.search,multiple:this.state.multiple&&!this.props.selectedPresetChanged,theme:this.props.theme,groupBy:this.state.groupBy,selectedId:this.props.selectedId,onChangeList:r=>{window.localStorage.setItem("App.echarts.chartList",JSON.stringify(r)),this.props.onChangeList(r)},chartsList:this.props.chartsList,onSelectedChanged:(r,n)=>this.props.onSelectedChanged(r,n)})]}),this.state.reorder?null:this.renderFooter()]},"mainMenuDiv")}}const snr=qs()(inr);function lnr(t,e){const r={};return t.replace(/\+/g," ").split("&").forEach(n=>{const o=n.split("=");let a=decodeURIComponent(o[0]),i,s=0,l=a.split("]["),d=l.length-1;if(/\[/.test(l[0])&&/]$/.test(l[d])?(l[d]=l[d].replace(/]$/,""),l=l.shift().split("[").concat(l),d=l.length-1):d=0,o.length===2)if(i=decodeURIComponent(o[1]),d){let h=r;for(;s<=d;s++)a=l[s]===""?h.length:l[s],h=h[a]=s{const a=$h(t,e,o);a&&a.then(()=>{})});if(!e||!e.length)return r(),null;const n=e.shift();return n?t.getObject(n._id).catch(()=>null).then(o=>{o?(console.log(`Object ${n._id} already exists and will not be converted`),setTimeout(()=>$h(t,e,r),50)):t.setObject(n._id,n).then(()=>setTimeout(()=>$h(t,e,r),50))}):setTimeout(()=>$h(t,e,r),50),null}function unr(t,e){const r={_id:t._id.replace(/^flot.\d+/,`echarts.${e}`),common:{name:t.common.name,expert:!0},native:{},type:"chart"};r._id.endsWith(".")&&(r._id=`empty_${Math.round(Math.random()*1e4)}`);const n=cnr(lnr(t.native.url));return n.lines||(n.lines=n.l,delete n.l),r.native.data=n,console.log(`Convert ${t._id} => ${r._id}`),r}function pnr(t,e){e=e||0;let r;return t.getObject(`system.adapter.echarts.${e}`).then(n=>(r=n,n&&n.native&&!n.native.convertDone?dnr(t):Promise.resolve([]))).then(n=>$h(t,n.map(o=>unr(o,e)))).then(()=>r.native.convertDone?Promise.resolve():(r.native.convertDone=!0,t.setObject(r._id,r))).catch(n=>(console.error(`Cannot convert flot: ${n}`),Promise.resolve()))}const Qp={root:t=>({width:"100%",height:"100%",background:t.palette.background.default,color:t.palette.mode==="dark"?"#FFF":"#000",fontFamily:'"Roboto", "Helvetica", "Arial", sans-serif'}),menuDiv:{overflow:"hidden"},content:t=>({width:"100%",height:"100%",backgroundColor:t.palette.background.default,position:"relative"}),menuDivWithoutMenu:{"&>div:first-child":{display:"none"},"&>.layout-splitter":{display:"none"}},progress:{margin:100},menuOpenCloseButton:t=>({position:"absolute",left:0,borderRadius:"0 5px 5px 0",top:6,pt:"8px",cursor:"pointer",zIndex:1,height:25,width:20,background:t.palette.secondary.main,color:t.palette.primary.main,pl:"3px","&:hover":{color:"white"}}),buttonsContainer:{"& button":{whiteSpace:"nowrap"}}},E9=/[.\][*,;'"`<>\\?]/g;function T9(t,e){const r=window.localStorage.getItem(`App.echarts.__${t}`);return r?parseFloat(r):e}function eh(t,e){return window.localStorage.getItem(`App.echarts.__${t}`)||e}function sd(t,e){return window.localStorage.getItem(`App.echarts.__${t}`)||e}function O9(){if(window.location.hash){const t={};return window.location.hash.replace(/^#/,"").split("&").forEach(e=>{const[r,n]=e.split("=");t[r]=window.decodeURIComponent(n),r==="instance"&&!t[r].startsWith("system.adapter")&&(t[r]=`system.adapter.${t[r]}`)}),t}return null}class ay extends ys{constructor(r){const n={socket:{}},o=Wer();n.socket.port=o.port||(parseInt(window.location.port)>=3e3&&parseInt(window.location.port)<=3020?8081:window.location.port),n.socket.host=o.host||window.location.hostname,n.translations={en:mwt,de:yCt,ru:wEt,pt:COt,nl:EIt,fr:DNt,it:M3t,es:RLt,pl:z6t,uk:W9t,"zh-cn":VHt},n.sentryDSN=window.sentryDSN,window.location.port==="3000"&&(n.socket={port:"8081"}),window.socketUrl&&window.socketUrl.startsWith(":")&&(window.socketUrl=`${window.location.protocol}//${window.location.hostname}${window.socketUrl}`);super(r,n);X(this,"config");X(this,"objects",{});X(this,"confirmCB",null);X(this,"onCopyPreset",async r=>{try{const n=await this.socket.getObject(r);if(n){const{id:o,name:a}=await this.getUniqueId(r,typeof n.common.name=="object"?n.common.name[P.getLanguage()]||n.common.name.en:n.common.name);n._id=o,n.common.name=a;try{await this.socket.setObject(n._id,n),this.loadChartOrPreset(o)}catch(i){this.onError(i,"Cannot save object")}}}catch(n){this.onError(n,"Cannot save object")}});X(this,"onCreatePreset",async(r,n)=>{var i;let o,a;if(r===!0){let s="";const l=this.state.selectedId,d=JSON.parse(JSON.stringify(this.state.chartsList||[]));d.find(f=>f.id===l.id&&f.instance===l.instance)||d.push(l);let h=null;d.length===1&&(h=await this.socket.getObject(d[0].id)),h&&((i=h==null?void 0:h.common)!=null&&i.name)&&(s=typeof h.common.name=="object"?(h.common.name[P.getLanguage()]||h.common.name.en||"").trim():h.common.name);const u=await this.getNewPresetName(n,s);a=`${this.adapterName}.0.${n?`${n}.`:""}${s.replace(E9,"_")}`,o={_id:a,common:{name:u,expert:!0},native:{data:JSON.parse(JSON.stringify(this.state.presetData))},type:"chart"}}else{const s=await this.getNewPresetName(n);a=`${this.adapterName}.0.${n?`${n}.`:""}${s.replace(E9,"_")}`,o={_id:a,common:{name:s},native:{url:"",data:G2(this.state.systemConfig,null,null,P.getLanguage())},type:"chart"}}try{await this.socket.setObject(a,o),this.loadChartOrPreset(a)}catch(s){this.onError(s,"Cannot save object")}});X(this,"savePreset",async()=>{if(!this.state.presetData)throw this.showError(P.t("Empty preset cannot be saved!")),new Error(P.t("Empty preset cannot be saved!"));try{const r=await this.socket.getObject(this.state.selectedId);if(!(r!=null&&r.native)){this.showError(P.t("Invalid object"));return}r.native.data=this.state.presetData;try{await this.socket.setObject(r._id,r)}catch(n){this.onError(n,"Cannot save object")}this.setState({originalPresetData:JSON.stringify(this.state.presetData),selectedPresetChanged:!1})}catch(r){this.onError(r,"Cannot read object")}});X(this,"onDragEnd",async r=>{const{source:n,destination:o,draggableId:a}=r;if(o&&a.includes("***")&&n.droppableId==="Lines"){const[i,s]=a.split("***");try{const l=await this.socket.getObject(s),d=JSON.parse(JSON.stringify(this.state.presetData)),h=Lh(this.state.systemConfig,i,l,P.getLanguage());for(let u=0;u=o.index&&(d.l[u].commonYAxis=d.l[u].commonYAxis+1);if(d.l.splice(o.index,0,h),d.l.length>1){if(h.unit){for(let u=0;uu.chartType==="bar")?h.chartType="bar":d.l.find(u=>u.chartType==="polar")&&(h.chartType="polar",h.aggregate="current")}this.setState({presetData:d,selectedPresetChanged:JSON.stringify(d)!==this.state.originalPresetData})}catch(l){this.onError(l,"Cannot read object")}}else if(o&&n.droppableId===o.droppableId){const i=JSON.parse(JSON.stringify(this.state.presetData));for(let l=0;lthis.setState({scrollToSelect:!0},()=>this.setState({scrollToSelect:!1})))}async onConnectionReady(){var h,u,f;const r=window.localStorage.getItem("App.echarts.selectedId");let n;if(r)try{n=JSON.parse(r)}catch{n=null}!n&&((h=this.config)!=null&&h.preset)?n=this.config.preset:!n&&((u=this.config)!=null&&u.id)&&(n={id:this.config.id,instance:this.config.instance});const o=window.localStorage.getItem("App.echarts.settingsSizes");let a=[25,75];if(o)try{a=JSON.parse(o)}catch{}a=a||[25,75];const i=window.localStorage.getItem("App.echarts.menuSizes");let s=[25,75];if(i)try{s=JSON.parse(i)}catch{}s=s||[25,75];const l={ready:!1,instances:[],splitSizes:a,menuSizes:s,selectedId:n,selectedPresetChanged:!1,presetData:null,originalPresetData:null,chartsList:null,progress:0,autoSave:window.localStorage.getItem("App.echarts.autoSave")==="true",discardChangesConfirmDialog:!1,resizing:!1,menuOpened:window.localStorage.getItem("App.echarts.menuOpened")!=="false",logHorzLayout:window.localStorage.getItem("App.echarts.logHorzLayout")==="true"};this.objects={};const d=await this.socket.getSystemConfig();if(l.systemConfig=d,l.presetData=G2(d),(f=this.config)!=null&&f.id){const g=this.config;l.selectedId={id:g.id,instance:g.instance},g.menuOpened!==void 0&&(l.menuOpened=g.menuOpened===!0),this.config=null}this.setState(l,async()=>{pnr(this.socket,this.instance);try{const y=(await this.socket.getAdapterInstances("")).filter(b=>{var x;return((x=b==null?void 0:b.common)==null?void 0:x.getHistory)&&b.common.enabled});this.setState({ready:!0,instances:y})}catch(g){this.onError(g,"Cannot read system config")}})}async getNewPresetName(r,n,o){o=o||(n?"":"1"),n=n||"preset_";let a;do{try{a=await this.socket.getObject(`${this.adapterName}.${this.instance}.${r?`${r}.`:""}${n}${o}`)}catch{return n+o}if(!a)return n+o;o?o=(parseInt(o,10)+1).toString():o="2"}while(a)}async getUniqueId(r,n){let o=0,a;do{const i=`${r}_${P.t("copy")}${o?`_${o}`:""}`,s=`${n} ${P.t("copy")}${o?` ${o}`:""}`;try{a=await this.socket.getObject(i)}catch{}if(!a)return{name:s,id:i};o++}while(o<100);throw new Error(P.t("Cannot create unique ID"))}onError(r,n){n&&console.error(n),this.showError(r.toString())}static normalizePreset(r){var n;r.lines&&(r.l=r.lines,delete r.lines),typeof r.range=="string"&&!r.range.includes("m")&&!r.range.includes("y")&&(r.range=parseInt(r.range,10)),(n=r.l)==null||n.forEach(o=>{typeof o.commonYAxis=="string"&&(o.commonYAxis===""?delete o.commonYAxis:o.commonYAxis=parseInt(o.commonYAxis,10)),typeof o.fill=="string"&&(o.fill===""?delete o.fill:o.fill=parseFloat(o.fill))})}async loadChartOrPreset(r){var n,o;if(window.localStorage.setItem("App.echarts.selectedId",JSON.stringify(r)),r&&typeof r=="object"){if(this.state.chartsList)for(const s of this.state.chartsList)this.objects[s.id]===void 0&&(this.objects[s.id]=await this.socket.getObject(s.id)||null);else this.objects={};this.objects[r.id]===void 0&&(this.objects[r.id]=await this.socket.getObject(r.id)||null);const a=(this.state.chartsList||[]).map(s=>Lh(this.state.systemConfig,s.instance,this.objects[s.id],P.getLanguage()));if((n=this.state.chartsList)!=null&&n.find(s=>s.id===r.id&&s.instance===r.instance)||a.push(Lh(this.state.systemConfig,r.instance,this.objects[r.id],P.getLanguage())),a.length>1){const s=a.find(l=>!l.isBoolean);if(s){const l=a.indexOf(s);if(s.yaxe="left",s.unit)for(let d=l+1;d1?"nw":""};ay.normalizePreset(i),await new Promise(s=>{this.setState({presetData:i,originalPresetData:"",selectedPresetChanged:!1,selectedId:r},()=>{const l=`#id=${r.id}&instance=${r.instance.replace(/^system\.adapter\./,"")}`;window.location.hash!==l&&(window.location.hash=l),s()})})}else if(r){const a=await this.socket.getObject(r);if((o=a==null?void 0:a.native)!=null&&o.data){const i=`#preset=${r}`;window.location.hash!==i&&(window.location.hash=i);const s={presetData:a.native.data,originalPresetData:JSON.stringify(a.native.data),selectedPresetChanged:!1,selectedId:r};ay.normalizePreset(s.presetData),await new Promise(l=>this.setState(s,()=>l()))}}else await new Promise(a=>{this.setState({presetData:null,originalPresetData:"",selectedPresetChanged:!1,selectedId:null},()=>a())})}discardChangesConfirmDialog(){return this.state.discardChangesConfirmDialog?w.jsxs(or,{maxWidth:"lg",fullWidth:!0,open:!0,onClose:()=>this.setState({discardChangesConfirmDialog:!1},()=>this.confirmCB&&this.confirmCB(!1)),children:[w.jsx(_r,{children:this.state.discardChangesConfirmDialog==="chart"?P.t("Are you sure for loading the chart and discard unsaved changes?"):this.state.discardChangesConfirmDialog==="preset"?P.t("Are you sure for loading the preset and discard unsaved changes?"):P.t("Are you sure for closing folder and discard unsaved changes?")}),w.jsxs(pr,{sx:{...Qp.alignRight,...Qp.buttonsContainer},children:[w.jsx(tt,{color:"grey",variant:"outlined",onClick:()=>this.setState({discardChangesConfirmDialog:!1},()=>this.confirmCB&&this.confirmCB(!0)),children:P.t("Load without save")}),w.jsx(tt,{variant:"contained",color:"secondary",autoFocus:!0,onClick:()=>this.savePreset().then(()=>this.setState({discardChangesConfirmDialog:!1},()=>this.confirmCB&&this.confirmCB(!0))),startIcon:w.jsx(pH,{}),children:P.t("Save current preset and load")}),w.jsx(tt,{color:"grey",variant:"contained",onClick:()=>this.setState({discardChangesConfirmDialog:!1},()=>this.confirmCB&&this.confirmCB(!1)),startIcon:w.jsx(wo,{}),children:P.t("Cancel")})]})]},"discardChangesConfirmDialog"):null}renderMain(){let r=null,n=null;this.state.presetData&&this.state.selectedId&&typeof this.state.selectedId=="string"&&(r=w.jsx(oZt,{socket:this.socket,width:window.innerWidth,theme:this.state.theme,onChange:a=>{this.state.autoSave?this.setState({presetData:a},()=>this.savePreset()):this.setState({presetData:a,selectedPresetChanged:JSON.stringify(a)!==this.state.originalPresetData})},presetData:this.state.presetData,selectedId:this.state.selectedId,instances:this.state.instances,systemConfig:this.state.systemConfig,selectedPresetChanged:this.state.selectedPresetChanged,savePreset:this.savePreset,autoSave:this.state.autoSave,onAutoSave:a=>{window.localStorage.setItem("App.echarts.autoSave",a?"true":"false"),a&&this.state.selectedPresetChanged?this.savePreset().then(()=>this.setState({autoSave:a})):this.setState({autoSave:a})},windowWidth:this.state.menuSizes[1]},"Editor")),this.state.selectedId&&(n=w.jsx(Ber,{visible:!this.state.resizing,theme:this.state.theme,onChange:a=>this.setState({presetData:a}),presetData:this.state.presetData,selectedId:this.state.selectedId,onCreatePreset:this.onCreatePreset,windowWidth:this.state.menuSizes[1]},"MainChart"));let o;return n&&r?o=w.jsxs(CP,{direction:this.state.logHorzLayout?Tr.Horizontal:Tr.Vertical,initialSizes:this.state.splitSizes,minWidths:[100,450],onResizeFinished:(a,i)=>{this.setState({resizing:!1,splitSizes:i}),window.localStorage.setItem("App.echarts.settingsSizes",JSON.stringify(i))},gutterClassName:this.state.themeType==="dark"?"Dark visGutter":"Light visGutter",children:[n,r]}):o=n,[w.jsxs(Re,{component:"div",sx:Qp.content,className:"iobVerticalSplitter",children:[w.jsx(Re,{component:"div",sx:Qp.menuOpenCloseButton,onClick:()=>{window.localStorage.setItem("App.echarts.menuOpened",this.state.menuOpened?"false":"true"),this.setState({menuOpened:!this.state.menuOpened,resizing:!0}),setTimeout(()=>this.setState({resizing:!1}),300)},children:this.state.menuOpened?w.jsx(Bpe,{}):w.jsx(HE,{})},"confirmdiv"),o]},"confirmdialog")]}renderMenu(){return w.jsx(snr,{scrollToSelect:this.state.scrollToSelect,socket:this.socket,theme:this.state.theme,adapterName:this.adapterName,instances:this.state.instances,systemConfig:this.state.systemConfig,onShowToast:r=>this.showToast(r),selectedPresetChanged:this.state.selectedPresetChanged,chartsList:this.state.chartsList,selectedId:this.state.selectedId,onCopyPreset:this.onCopyPreset,onCreatePreset:this.onCreatePreset,onChangeList:r=>{let n=this.state.selectedId;if(r&&this.state.chartsList&&r.length&&r.length!r.find(s=>s.id===i.id&&s.instance===i.instance)),a=this.state.chartsList.indexOf(o);this.state.chartsList[a+1]?n=this.state.chartsList[a+1]:this.state.chartsList[a-1]?n=this.state.chartsList[a-1]:n=r[0]}this.setState({chartsList:r},()=>this.loadChartOrPreset(n))},onSelectedChanged:(r,n)=>{this.state.selectedPresetChanged?(this.confirmCB=o=>{o?this.loadChartOrPreset(r).then(()=>n&&n(r)):n&&n(!1),this.confirmCB=null},this.setState({discardChangesConfirmDialog:r&&typeof r=="object"?"chart":r?"preset":"folder"})):this.loadChartOrPreset(r)}},"menuList")}render(){if(!this.state.ready)return w.jsx(uE,{injectFirst:!0,children:w.jsx(yE,{theme:this.state.theme,children:w.jsx(QH,{themeType:this.state.themeType})})});let r;return this.state.menuOpened?r=w.jsx(XN,{onDragEnd:this.onDragEnd,children:w.jsxs(CP,{direction:Tr.Horizontal,initialSizes:this.state.menuSizes,minWidths:[307,300],onResizeFinished:(n,o)=>{this.setState({resizing:!1,menuSizes:[o[0],100-o[0]]}),window.localStorage.setItem("App.echarts.menuSizes",JSON.stringify(o))},gutterClassName:this.state.themeType==="dark"?"Dark visGutter":"Light visGutter",children:[this.renderMenu(),this.renderMain()]})}):r=r=w.jsx(XN,{onDragEnd:this.onDragEnd,children:this.renderMain()}),w.jsx(uE,{injectFirst:!0,children:w.jsxs(yE,{theme:this.state.theme,children:[w.jsx(Re,{sx:Qp.root,children:r}),this.discardChangesConfirmDialog(),this.renderError(),this.renderToast()]})})}}const hnr=qs()(ay);window.location.hostname==="localhost"||window.location.hostname==="[::1]"||window.location.hostname.match(/^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/);function fnr(){"serviceWorker"in navigator&&navigator.serviceWorker.ready.then(t=>t.unregister())}const mnr="echarts.edit",gnr="1.9.2",vnr={"@devbookhq/splitter":"^1.4.2","@vitejs/plugin-react":"^4.3.4","@types/react-color":"^3.0.13","@types/react-beautiful-dnd":"^13.1.8","material-ui-color-picker":"^3.5.1",moment:"^2.30.1",react:"^18.3.1","react-beautiful-dnd":"^13.1.1","react-dnd":"^16.0.1","react-dnd-html5-backend":"^16.0.1","react-dnd-touch-backend":"^16.0.1","react-dom":"^18.3.1","react-i18next":"^15.4.0","react-icons":"^5.4.0",typescript:"^5.7.2"},ynr=".",_nr={start:"vite dev --config vite.config.mjs --host",build:"vite build --config vite.config.mjs",lint:"eslint -c eslint.config.mjs --debug",npm:"npm i -f",tsc:"tsc -p tsconfig.json"},bnr="http://127.0.0.1:8081",wnr=["127.0.0.1"],xnr={extends:"react-app"},Snr=[">0.2%","not dead","not ie <= 11","not op_mini all"],Cnr={name:mnr,version:gnr,private:!0,dependencies:vnr,homepage:ynr,scripts:_nr,_proxy:bnr,allowedHosts:wnr,eslintConfig:xnr,browserslist:Snr};window.adapterName="echarts";window.sentryDSN="https://709f116e1de34029921e4f2696d6740f@sentry.iobroker.net/88";console.log(`iobroker.${window.adapterName}@${Cnr.version}`);const D9=document.getElementById("root");D9&&LJ.createRoot(D9).render(w.jsx(hnr,{}));fnr()});export default $nr(); diff --git a/admin/chart/assets/index-CEGXPVnF.js b/admin/chart/assets/index-C-7EcNoE.js similarity index 98% rename from admin/chart/assets/index-CEGXPVnF.js rename to admin/chart/assets/index-C-7EcNoE.js index 0335517b..e044b096 100644 --- a/admin/chart/assets/index-CEGXPVnF.js +++ b/admin/chart/assets/index-C-7EcNoE.js @@ -516,7 +516,7 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho * * Date: 2024-04-21T07:43:05.335Z */function J9(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(t,a).enumerable})),r.push.apply(r,n)}return r}function vJ(t){for(var e=1;et.length)&&(e=t.length);for(var r=0,n=new Array(e);r
',Kke=Number.isNaN||yl.isNaN;function ir(t){return typeof t=="number"&&!Kke(t)}var c7=function(e){return e>0&&e<1/0};function DO(t){return typeof t>"u"}function ch(t){return DP(t)==="object"&&t!==null}var Qke=Object.prototype.hasOwnProperty;function xm(t){if(!ch(t))return!1;try{var e=t.constructor,r=e.prototype;return e&&r&&Qke.call(r,"isPrototypeOf")}catch{return!1}}function ni(t){return typeof t=="function"}var e2e=Array.prototype.slice;function kJ(t){return Array.from?Array.from(t):e2e.call(t)}function Dn(t,e){return t&&ni(e)&&(Array.isArray(t)||ir(t.length)?kJ(t).forEach(function(r,n){e.call(t,r,n,t)}):ch(t)&&Object.keys(t).forEach(function(r){e.call(t,t[r],r,t)})),t}var nn=Object.assign||function(e){for(var r=arguments.length,n=new Array(r>1?r-1:0),a=1;a0&&n.forEach(function(i){ch(i)&&Object.keys(i).forEach(function(o){e[o]=i[o]})}),e},t2e=/\.\d*(?:0|9){12}\d*$/;function Pm(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1e11;return t2e.test(t)?Math.round(t*e)/e:t}var r2e=/^width|height|left|top|marginLeft|marginTop$/;function Lu(t,e){var r=t.style;Dn(e,function(n,a){r2e.test(a)&&ir(n)&&(n="".concat(n,"px")),r[a]=n})}function n2e(t,e){return t.classList?t.classList.contains(e):t.className.indexOf(e)>-1}function Vn(t,e){if(e){if(ir(t.length)){Dn(t,function(n){Vn(n,e)});return}if(t.classList){t.classList.add(e);return}var r=t.className.trim();r?r.indexOf(e)<0&&(t.className="".concat(r," ").concat(e)):t.className=e}}function ml(t,e){if(e){if(ir(t.length)){Dn(t,function(r){ml(r,e)});return}if(t.classList){t.classList.remove(e);return}t.className.indexOf(e)>=0&&(t.className=t.className.replace(e,""))}}function Cm(t,e,r){if(e){if(ir(t.length)){Dn(t,function(n){Cm(n,e,r)});return}r?Vn(t,e):ml(t,e)}}var a2e=/([a-z\d])([A-Z])/g;function wN(t){return t.replace(a2e,"$1-$2").toLowerCase()}function NP(t,e){return ch(t[e])?t[e]:t.dataset?t.dataset[e]:t.getAttribute("data-".concat(wN(e)))}function Oy(t,e,r){ch(r)?t[e]=r:t.dataset?t.dataset[e]=r:t.setAttribute("data-".concat(wN(e)),r)}function i2e(t,e){if(ch(t[e]))try{delete t[e]}catch{t[e]=void 0}else if(t.dataset)try{delete t.dataset[e]}catch{t.dataset[e]=void 0}else t.removeAttribute("data-".concat(wN(e)))}var EJ=/\s\s*/,DJ=function(){var t=!1;if(QC){var e=!1,r=function(){},n=Object.defineProperty({},"once",{get:function(){return t=!0,e},set:function(i){e=i}});yl.addEventListener("test",r,n),yl.removeEventListener("test",r,n)}return t}();function qo(t,e,r){var n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{},a=r;e.trim().split(EJ).forEach(function(i){if(!DJ){var o=t.listeners;o&&o[i]&&o[i][r]&&(a=o[i][r],delete o[i][r],Object.keys(o[i]).length===0&&delete o[i],Object.keys(o).length===0&&delete t.listeners)}t.removeEventListener(i,a,n)})}function ro(t,e,r){var n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{},a=r;e.trim().split(EJ).forEach(function(i){if(n.once&&!DJ){var o=t.listeners,s=o===void 0?{}:o;a=function(){delete s[i][r],t.removeEventListener(i,a,n);for(var c=arguments.length,d=new Array(c),u=0;uMath.abs(r)&&(r=f)})}),r}function J1(t,e){var r=t.pageX,n=t.pageY,a={endX:r,endY:n};return e?a:vJ({startX:r,startY:n},a)}function l2e(t){var e=0,r=0,n=0;return Dn(t,function(a){var i=a.startX,o=a.startY;e+=i,r+=o,n+=1}),e/=n,r/=n,{pageX:e,pageY:r}}function Nu(t){var e=t.aspectRatio,r=t.height,n=t.width,a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"contain",i=c7(n),o=c7(r);if(i&&o){var s=r*e;a==="contain"&&s>n||a==="cover"&&s90?{width:l,height:s}:{width:s,height:l}}function u2e(t,e,r,n){var a=e.aspectRatio,i=e.naturalWidth,o=e.naturalHeight,s=e.rotate,l=s===void 0?0:s,c=e.scaleX,d=c===void 0?1:c,u=e.scaleY,f=u===void 0?1:u,p=r.aspectRatio,v=r.naturalWidth,g=r.naturalHeight,_=n.fillColor,b=_===void 0?"transparent":_,w=n.imageSmoothingEnabled,x=w===void 0?!0:w,C=n.imageSmoothingQuality,M=C===void 0?"low":C,k=n.maxWidth,O=k===void 0?1/0:k,R=n.maxHeight,L=R===void 0?1/0:R,$=n.minWidth,N=$===void 0?0:$,W=n.minHeight,j=W===void 0?0:W,Y=document.createElement("canvas"),V=Y.getContext("2d"),J=Nu({aspectRatio:p,width:O,height:L}),ie=Nu({aspectRatio:p,width:N,height:j},"cover"),K=Math.min(J.width,Math.max(ie.width,v)),Q=Math.min(J.height,Math.max(ie.height,g)),oe=Nu({aspectRatio:a,width:O,height:L}),H=Nu({aspectRatio:a,width:N,height:j},"cover"),X=Math.min(oe.width,Math.max(H.width,i)),ae=Math.min(oe.height,Math.max(H.height,o)),re=[-X/2,-ae/2,X,ae];return Y.width=Pm(K),Y.height=Pm(Q),V.fillStyle=b,V.fillRect(0,0,K,Q),V.save(),V.translate(K/2,Q/2),V.rotate(l*Math.PI/180),V.scale(d,f),V.imageSmoothingEnabled=x,V.imageSmoothingQuality=M,V.drawImage.apply(V,[t].concat(_J(re.map(function(le){return Math.floor(Pm(le))})))),V.restore(),Y}var OJ=String.fromCharCode;function d2e(t,e,r){var n="";r+=e;for(var a=e;a0;)r.push(OJ.apply(null,kJ(a.subarray(0,n)))),a=a.subarray(n);return"data:".concat(e,";base64,").concat(btoa(r.join("")))}function m2e(t){var e=new DataView(t),r;try{var n,a,i;if(e.getUint8(0)===255&&e.getUint8(1)===216)for(var o=e.byteLength,s=2;s+1=8&&(i=c+u)}}}if(i){var f=e.getUint16(i,n),p,v;for(v=0;v=0?i:CJ),height:Math.max(n.offsetHeight,o>=0?o:TJ)};this.containerData=s,Lu(a,{width:s.width,height:s.height}),Vn(e,ai),ml(a,ai)},initCanvas:function(){var e=this.containerData,r=this.imageData,n=this.options.viewMode,a=Math.abs(r.rotate)%180===90,i=a?r.naturalHeight:r.naturalWidth,o=a?r.naturalWidth:r.naturalHeight,s=i/o,l=e.width,c=e.height;e.height*s>e.width?n===3?l=e.height*s:c=e.width/s:n===3?c=e.width/s:l=e.height*s;var d={aspectRatio:s,naturalWidth:i,naturalHeight:o,width:l,height:c};this.canvasData=d,this.limited=n===1||n===2,this.limitCanvas(!0,!0),d.width=Math.min(Math.max(d.width,d.minWidth),d.maxWidth),d.height=Math.min(Math.max(d.height,d.minHeight),d.maxHeight),d.left=(e.width-d.width)/2,d.top=(e.height-d.height)/2,d.oldLeft=d.left,d.oldTop=d.top,this.initialCanvasData=nn({},d)},limitCanvas:function(e,r){var n=this.options,a=this.containerData,i=this.canvasData,o=this.cropBoxData,s=n.viewMode,l=i.aspectRatio,c=this.cropped&&o;if(e){var d=Number(n.minCanvasWidth)||0,u=Number(n.minCanvasHeight)||0;s>1?(d=Math.max(d,a.width),u=Math.max(u,a.height),s===3&&(u*l>d?d=u*l:u=d/l)):s>0&&(d?d=Math.max(d,c?o.width:0):u?u=Math.max(u,c?o.height:0):c&&(d=o.width,u=o.height,u*l>d?d=u*l:u=d/l));var f=Nu({aspectRatio:l,width:d,height:u});d=f.width,u=f.height,i.minWidth=d,i.minHeight=u,i.maxWidth=1/0,i.maxHeight=1/0}if(r)if(s>(c?0:1)){var p=a.width-i.width,v=a.height-i.height;i.minLeft=Math.min(0,p),i.minTop=Math.min(0,v),i.maxLeft=Math.max(0,p),i.maxTop=Math.max(0,v),c&&this.limited&&(i.minLeft=Math.min(o.left,o.left+(o.width-i.width)),i.minTop=Math.min(o.top,o.top+(o.height-i.height)),i.maxLeft=o.left,i.maxTop=o.top,s===2&&(i.width>=a.width&&(i.minLeft=Math.min(0,p),i.maxLeft=Math.max(0,p)),i.height>=a.height&&(i.minTop=Math.min(0,v),i.maxTop=Math.max(0,v))))}else i.minLeft=-i.width,i.minTop=-i.height,i.maxLeft=a.width,i.maxTop=a.height},renderCanvas:function(e,r){var n=this.canvasData,a=this.imageData;if(r){var i=c2e({width:a.naturalWidth*Math.abs(a.scaleX||1),height:a.naturalHeight*Math.abs(a.scaleY||1),degree:a.rotate||0}),o=i.width,s=i.height,l=n.width*(o/n.naturalWidth),c=n.height*(s/n.naturalHeight);n.left-=(l-n.width)/2,n.top-=(c-n.height)/2,n.width=l,n.height=c,n.aspectRatio=o/s,n.naturalWidth=o,n.naturalHeight=s,this.limitCanvas(!0,!1)}(n.width>n.maxWidth||n.widthn.maxHeight||n.heightr.width?i.height=i.width/n:i.width=i.height*n),this.cropBoxData=i,this.limitCropBox(!0,!0),i.width=Math.min(Math.max(i.width,i.minWidth),i.maxWidth),i.height=Math.min(Math.max(i.height,i.minHeight),i.maxHeight),i.width=Math.max(i.minWidth,i.width*a),i.height=Math.max(i.minHeight,i.height*a),i.left=r.left+(r.width-i.width)/2,i.top=r.top+(r.height-i.height)/2,i.oldLeft=i.left,i.oldTop=i.top,this.initialCropBoxData=nn({},i)},limitCropBox:function(e,r){var n=this.options,a=this.containerData,i=this.canvasData,o=this.cropBoxData,s=this.limited,l=n.aspectRatio;if(e){var c=Number(n.minCropBoxWidth)||0,d=Number(n.minCropBoxHeight)||0,u=s?Math.min(a.width,i.width,i.width+i.left,a.width-i.left):a.width,f=s?Math.min(a.height,i.height,i.height+i.top,a.height-i.top):a.height;c=Math.min(c,a.width),d=Math.min(d,a.height),l&&(c&&d?d*l>c?d=c/l:c=d*l:c?d=c/l:d&&(c=d*l),f*l>u?f=u/l:u=f*l),o.minWidth=Math.min(c,u),o.minHeight=Math.min(d,f),o.maxWidth=u,o.maxHeight=f}r&&(s?(o.minLeft=Math.max(0,i.left),o.minTop=Math.max(0,i.top),o.maxLeft=Math.min(a.width,i.left+i.width)-o.width,o.maxTop=Math.min(a.height,i.top+i.height)-o.height):(o.minLeft=0,o.minTop=0,o.maxLeft=a.width-o.width,o.maxTop=a.height-o.height))},renderCropBox:function(){var e=this.options,r=this.containerData,n=this.cropBoxData;(n.width>n.maxWidth||n.widthn.maxHeight||n.height=r.width&&n.height>=r.height?bJ:yN),Lu(this.cropBox,nn({width:n.width,height:n.height},ny({translateX:n.left,translateY:n.top}))),this.cropped&&this.limited&&this.limitCanvas(!0,!0),this.disabled||this.output()},output:function(){this.preview(),Im(this.element,AP,this.getData())}},_2e={initPreview:function(){var e=this.element,r=this.crossOrigin,n=this.options.preview,a=r?this.crossOriginUrl:this.url,i=e.alt||"The image to preview",o=document.createElement("img");if(r&&(o.crossOrigin=r),o.src=a,o.alt=i,this.viewBox.appendChild(o),this.viewBoxImage=o,!!n){var s=n;typeof n=="string"?s=e.ownerDocument.querySelectorAll(n):n.querySelector&&(s=[n]),this.previews=s,Dn(s,function(l){var c=document.createElement("img");Oy(l,X1,{width:l.offsetWidth,height:l.offsetHeight,html:l.innerHTML}),r&&(c.crossOrigin=r),c.src=a,c.alt=i,c.style.cssText='display:block;width:100%;height:auto;min-width:0!important;min-height:0!important;max-width:none!important;max-height:none!important;image-orientation:0deg!important;"',l.innerHTML="",l.appendChild(c)})}},resetPreview:function(){Dn(this.previews,function(e){var r=NP(e,X1);Lu(e,{width:r.width,height:r.height}),e.innerHTML=r.html,i2e(e,X1)})},preview:function(){var e=this.imageData,r=this.canvasData,n=this.cropBoxData,a=n.width,i=n.height,o=e.width,s=e.height,l=n.left-r.left-e.left,c=n.top-r.top-e.top;!this.cropped||this.disabled||(Lu(this.viewBoxImage,nn({width:o,height:s},ny(nn({translateX:-l,translateY:-c},e)))),Dn(this.previews,function(d){var u=NP(d,X1),f=u.width,p=u.height,v=f,g=p,_=1;a&&(_=f/a,g=i*_),i&&g>p&&(_=p/i,v=a*_,g=p),Lu(d,{width:v,height:g}),Lu(d.getElementsByTagName("img")[0],nn({width:o*_,height:s*_},ny(nn({translateX:-l*_,translateY:-c*_},e))))}))}},y2e={bind:function(){var e=this.element,r=this.options,n=this.cropper;ni(r.cropstart)&&ro(e,RP,r.cropstart),ni(r.cropmove)&&ro(e,IP,r.cropmove),ni(r.cropend)&&ro(e,PP,r.cropend),ni(r.crop)&&ro(e,AP,r.crop),ni(r.zoom)&&ro(e,LP,r.zoom),ro(n,t7,this.onCropStart=this.cropStart.bind(this)),r.zoomable&&r.zoomOnWheel&&ro(n,o7,this.onWheel=this.wheel.bind(this),{passive:!1,capture:!0}),r.toggleDragModeOnDblclick&&ro(n,e7,this.onDblclick=this.dblclick.bind(this)),ro(e.ownerDocument,r7,this.onCropMove=this.cropMove.bind(this)),ro(e.ownerDocument,n7,this.onCropEnd=this.cropEnd.bind(this)),r.responsive&&ro(window,i7,this.onResize=this.resize.bind(this))},unbind:function(){var e=this.element,r=this.options,n=this.cropper;ni(r.cropstart)&&qo(e,RP,r.cropstart),ni(r.cropmove)&&qo(e,IP,r.cropmove),ni(r.cropend)&&qo(e,PP,r.cropend),ni(r.crop)&&qo(e,AP,r.crop),ni(r.zoom)&&qo(e,LP,r.zoom),qo(n,t7,this.onCropStart),r.zoomable&&r.zoomOnWheel&&qo(n,o7,this.onWheel,{passive:!1,capture:!0}),r.toggleDragModeOnDblclick&&qo(n,e7,this.onDblclick),qo(e.ownerDocument,r7,this.onCropMove),qo(e.ownerDocument,n7,this.onCropEnd),r.responsive&&qo(window,i7,this.onResize)}},b2e={resize:function(){if(!this.disabled){var e=this.options,r=this.container,n=this.containerData,a=r.offsetWidth/n.width,i=r.offsetHeight/n.height,o=Math.abs(a-1)>Math.abs(i-1)?a:i;if(o!==1){var s,l;e.restore&&(s=this.getCanvasData(),l=this.getCropBoxData()),this.render(),e.restore&&(this.setCanvasData(Dn(s,function(c,d){s[d]=c*o})),this.setCropBoxData(Dn(l,function(c,d){l[d]=c*o})))}}},dblclick:function(){this.disabled||this.options.dragMode===xJ||this.setDragMode(n2e(this.dragBox,OP)?SJ:bN)},wheel:function(e){var r=this,n=Number(this.options.wheelZoomRatio)||.1,a=1;this.disabled||(e.preventDefault(),!this.wheeling&&(this.wheeling=!0,setTimeout(function(){r.wheeling=!1},50),e.deltaY?a=e.deltaY>0?1:-1:e.wheelDelta?a=-e.wheelDelta/120:e.detail&&(a=e.detail>0?1:-1),this.zoom(-a*n,e)))},cropStart:function(e){var r=e.buttons,n=e.button;if(!(this.disabled||(e.type==="mousedown"||e.type==="pointerdown"&&e.pointerType==="mouse")&&(ir(r)&&r!==1||ir(n)&&n!==0||e.ctrlKey))){var a=this.options,i=this.pointers,o;e.changedTouches?Dn(e.changedTouches,function(s){i[s.identifier]=J1(s)}):i[e.pointerId||0]=J1(e),Object.keys(i).length>1&&a.zoomable&&a.zoomOnTouch?o=wJ:o=NP(e.target,My),Gke.test(o)&&Im(this.element,RP,{originalEvent:e,action:o})!==!1&&(e.preventDefault(),this.action=o,this.cropping=!1,o===yJ&&(this.cropping=!0,Vn(this.dragBox,dx)))}},cropMove:function(e){var r=this.action;if(!(this.disabled||!r)){var n=this.pointers;e.preventDefault(),Im(this.element,IP,{originalEvent:e,action:r})!==!1&&(e.changedTouches?Dn(e.changedTouches,function(a){nn(n[a.identifier]||{},J1(a,!0))}):nn(n[e.pointerId||0]||{},J1(e,!0)),this.change(e))}},cropEnd:function(e){if(!this.disabled){var r=this.action,n=this.pointers;e.changedTouches?Dn(e.changedTouches,function(a){delete n[a.identifier]}):delete n[e.pointerId||0],r&&(e.preventDefault(),Object.keys(n).length||(this.action=""),this.cropping&&(this.cropping=!1,Cm(this.dragBox,dx,this.cropped&&this.options.modal)),Im(this.element,PP,{originalEvent:e,action:r}))}}},w2e={change:function(e){var r=this.options,n=this.canvasData,a=this.containerData,i=this.cropBoxData,o=this.pointers,s=this.action,l=r.aspectRatio,c=i.left,d=i.top,u=i.width,f=i.height,p=c+u,v=d+f,g=0,_=0,b=a.width,w=a.height,x=!0,C;!l&&e.shiftKey&&(l=u&&f?u/f:1),this.limited&&(g=i.minLeft,_=i.minTop,b=g+Math.min(a.width,n.width,n.left+n.width),w=_+Math.min(a.height,n.height,n.top+n.height));var M=o[Object.keys(o)[0]],k={x:M.endX-M.startX,y:M.endY-M.startY},O=function(L){switch(L){case ef:p+k.x>b&&(k.x=b-p);break;case tf:c+k.xw&&(k.y=w-v);break}};switch(s){case yN:c+=k.x,d+=k.y;break;case ef:if(k.x>=0&&(p>=b||l&&(d<=_||v>=w))){x=!1;break}O(ef),u+=k.x,u<0&&(s=tf,u=-u,c-=u),l&&(f=u/l,d+=(i.height-f)/2);break;case yu:if(k.y<=0&&(d<=_||l&&(c<=g||p>=b))){x=!1;break}O(yu),f-=k.y,d+=k.y,f<0&&(s=Pp,f=-f,d-=f),l&&(u=f*l,c+=(i.width-u)/2);break;case tf:if(k.x<=0&&(c<=g||l&&(d<=_||v>=w))){x=!1;break}O(tf),u-=k.x,c+=k.x,u<0&&(s=ef,u=-u,c-=u),l&&(f=u/l,d+=(i.height-f)/2);break;case Pp:if(k.y>=0&&(v>=w||l&&(c<=g||p>=b))){x=!1;break}O(Pp),f+=k.y,f<0&&(s=yu,f=-f,d-=f),l&&(u=f*l,c+=(i.width-u)/2);break;case Yg:if(l){if(k.y<=0&&(d<=_||p>=b)){x=!1;break}O(yu),f-=k.y,d+=k.y,u=f*l}else O(yu),O(ef),k.x>=0?p_&&(f-=k.y,d+=k.y):(f-=k.y,d+=k.y);u<0&&f<0?(s=qg,f=-f,u=-u,d-=f,c-=u):u<0?(s=Vg,u=-u,c-=u):f<0&&(s=Gg,f=-f,d-=f);break;case Vg:if(l){if(k.y<=0&&(d<=_||c<=g)){x=!1;break}O(yu),f-=k.y,d+=k.y,u=f*l,c+=i.width-u}else O(yu),O(tf),k.x<=0?c>g?(u-=k.x,c+=k.x):k.y<=0&&d<=_&&(x=!1):(u-=k.x,c+=k.x),k.y<=0?d>_&&(f-=k.y,d+=k.y):(f-=k.y,d+=k.y);u<0&&f<0?(s=Gg,f=-f,u=-u,d-=f,c-=u):u<0?(s=Yg,u=-u,c-=u):f<0&&(s=qg,f=-f,d-=f);break;case qg:if(l){if(k.x<=0&&(c<=g||v>=w)){x=!1;break}O(tf),u-=k.x,c+=k.x,f=u/l}else O(Pp),O(tf),k.x<=0?c>g?(u-=k.x,c+=k.x):k.y>=0&&v>=w&&(x=!1):(u-=k.x,c+=k.x),k.y>=0?v=0&&(p>=b||v>=w)){x=!1;break}O(ef),u+=k.x,f=u/l}else O(Pp),O(ef),k.x>=0?p=0&&v>=w&&(x=!1):u+=k.x,k.y>=0?v0?s=k.y>0?Gg:Yg:k.x<0&&(c-=u,s=k.y>0?qg:Vg),k.y<0&&(d-=f),this.cropped||(ml(this.cropBox,ai),this.cropped=!0,this.limited&&this.limitCropBox(!0,!0));break}x&&(i.width=u,i.height=f,i.left=c,i.top=d,this.action=s,this.renderCropBox()),Dn(o,function(R){R.startX=R.endX,R.startY=R.endY})}},S2e={crop:function(){return this.ready&&!this.cropped&&!this.disabled&&(this.cropped=!0,this.limitCropBox(!0,!0),this.options.modal&&Vn(this.dragBox,dx),ml(this.cropBox,ai),this.setCropBoxData(this.initialCropBoxData)),this},reset:function(){return this.ready&&!this.disabled&&(this.imageData=nn({},this.initialImageData),this.canvasData=nn({},this.initialCanvasData),this.cropBoxData=nn({},this.initialCropBoxData),this.renderCanvas(),this.cropped&&this.renderCropBox()),this},clear:function(){return this.cropped&&!this.disabled&&(nn(this.cropBoxData,{left:0,top:0,width:0,height:0}),this.cropped=!1,this.renderCropBox(),this.limitCanvas(!0,!0),this.renderCanvas(),ml(this.dragBox,dx),Vn(this.cropBox,ai)),this},replace:function(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;return!this.disabled&&e&&(this.isImg&&(this.element.src=e),r?(this.url=e,this.image.src=e,this.ready&&(this.viewBoxImage.src=e,Dn(this.previews,function(n){n.getElementsByTagName("img")[0].src=e}))):(this.isImg&&(this.replaced=!0),this.options.data=null,this.uncreate(),this.load(e))),this},enable:function(){return this.ready&&this.disabled&&(this.disabled=!1,ml(this.cropper,K9)),this},disable:function(){return this.ready&&!this.disabled&&(this.disabled=!0,Vn(this.cropper,K9)),this},destroy:function(){var e=this.element;return e[Qr]?(e[Qr]=void 0,this.isImg&&this.replaced&&(e.src=this.originalUrl),this.uncreate(),this):this},move:function(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:e,n=this.canvasData,a=n.left,i=n.top;return this.moveTo(DO(e)?e:a+Number(e),DO(r)?r:i+Number(r))},moveTo:function(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:e,n=this.canvasData,a=!1;return e=Number(e),r=Number(r),this.ready&&!this.disabled&&this.options.movable&&(ir(e)&&(n.left=e,a=!0),ir(r)&&(n.top=r,a=!0),a&&this.renderCanvas(!0)),this},zoom:function(e,r){var n=this.canvasData;return e=Number(e),e<0?e=1/(1-e):e=1+e,this.zoomTo(n.width*e/n.naturalWidth,null,r)},zoomTo:function(e,r,n){var a=this.options,i=this.canvasData,o=i.width,s=i.height,l=i.naturalWidth,c=i.naturalHeight;if(e=Number(e),e>=0&&this.ready&&!this.disabled&&a.zoomable){var d=l*e,u=c*e;if(Im(this.element,LP,{ratio:e,oldRatio:o/l,originalEvent:n})===!1)return this;if(n){var f=this.pointers,p=MJ(this.cropper),v=f&&Object.keys(f).length?l2e(f):{pageX:n.pageX,pageY:n.pageY};i.left-=(d-o)*((v.pageX-p.left-i.left)/o),i.top-=(u-s)*((v.pageY-p.top-i.top)/s)}else xm(r)&&ir(r.x)&&ir(r.y)?(i.left-=(d-o)*((r.x-i.left)/o),i.top-=(u-s)*((r.y-i.top)/s)):(i.left-=(d-o)/2,i.top-=(u-s)/2);i.width=d,i.height=u,this.renderCanvas(!0)}return this},rotate:function(e){return this.rotateTo((this.imageData.rotate||0)+Number(e))},rotateTo:function(e){return e=Number(e),ir(e)&&this.ready&&!this.disabled&&this.options.rotatable&&(this.imageData.rotate=e%360,this.renderCanvas(!0,!0)),this},scaleX:function(e){var r=this.imageData.scaleY;return this.scale(e,ir(r)?r:1)},scaleY:function(e){var r=this.imageData.scaleX;return this.scale(ir(r)?r:1,e)},scale:function(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:e,n=this.imageData,a=!1;return e=Number(e),r=Number(r),this.ready&&!this.disabled&&this.options.scalable&&(ir(e)&&(n.scaleX=e,a=!0),ir(r)&&(n.scaleY=r,a=!0),a&&this.renderCanvas(!0,!0)),this},getData:function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1,r=this.options,n=this.imageData,a=this.canvasData,i=this.cropBoxData,o;if(this.ready&&this.cropped){o={x:i.left-a.left,y:i.top-a.top,width:i.width,height:i.height};var s=n.width/n.naturalWidth;if(Dn(o,function(d,u){o[u]=d/s}),e){var l=Math.round(o.y+o.height),c=Math.round(o.x+o.width);o.x=Math.round(o.x),o.y=Math.round(o.y),o.width=c-o.x,o.height=l-o.y}}else o={x:0,y:0,width:0,height:0};return r.rotatable&&(o.rotate=n.rotate||0),r.scalable&&(o.scaleX=n.scaleX||1,o.scaleY=n.scaleY||1),o},setData:function(e){var r=this.options,n=this.imageData,a=this.canvasData,i={};if(this.ready&&!this.disabled&&xm(e)){var o=!1;r.rotatable&&ir(e.rotate)&&e.rotate!==n.rotate&&(n.rotate=e.rotate,o=!0),r.scalable&&(ir(e.scaleX)&&e.scaleX!==n.scaleX&&(n.scaleX=e.scaleX,o=!0),ir(e.scaleY)&&e.scaleY!==n.scaleY&&(n.scaleY=e.scaleY,o=!0)),o&&this.renderCanvas(!0,!0);var s=n.width/n.naturalWidth;ir(e.x)&&(i.left=e.x*s+a.left),ir(e.y)&&(i.top=e.y*s+a.top),ir(e.width)&&(i.width=e.width*s),ir(e.height)&&(i.height=e.height*s),this.setCropBoxData(i)}return this},getContainerData:function(){return this.ready?nn({},this.containerData):{}},getImageData:function(){return this.sized?nn({},this.imageData):{}},getCanvasData:function(){var e=this.canvasData,r={};return this.ready&&Dn(["left","top","width","height","naturalWidth","naturalHeight"],function(n){r[n]=e[n]}),r},setCanvasData:function(e){var r=this.canvasData,n=r.aspectRatio;return this.ready&&!this.disabled&&xm(e)&&(ir(e.left)&&(r.left=e.left),ir(e.top)&&(r.top=e.top),ir(e.width)?(r.width=e.width,r.height=e.width/n):ir(e.height)&&(r.height=e.height,r.width=e.height*n),this.renderCanvas(!0)),this},getCropBoxData:function(){var e=this.cropBoxData,r;return this.ready&&this.cropped&&(r={left:e.left,top:e.top,width:e.width,height:e.height}),r||{}},setCropBoxData:function(e){var r=this.cropBoxData,n=this.options.aspectRatio,a,i;return this.ready&&this.cropped&&!this.disabled&&xm(e)&&(ir(e.left)&&(r.left=e.left),ir(e.top)&&(r.top=e.top),ir(e.width)&&e.width!==r.width&&(a=!0,r.width=e.width),ir(e.height)&&e.height!==r.height&&(i=!0,r.height=e.height),n&&(a?r.height=r.width/n:i&&(r.width=r.height*n)),this.renderCropBox()),this},getCroppedCanvas:function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(!this.ready||!window.HTMLCanvasElement)return null;var r=this.canvasData,n=u2e(this.image,this.imageData,r,e);if(!this.cropped)return n;var a=this.getData(e.rounded),i=a.x,o=a.y,s=a.width,l=a.height,c=n.width/Math.floor(r.naturalWidth);c!==1&&(i*=c,o*=c,s*=c,l*=c);var d=s/l,u=Nu({aspectRatio:d,width:e.maxWidth||1/0,height:e.maxHeight||1/0}),f=Nu({aspectRatio:d,width:e.minWidth||0,height:e.minHeight||0},"cover"),p=Nu({aspectRatio:d,width:e.width||(c!==1?n.width:s),height:e.height||(c!==1?n.height:l)}),v=p.width,g=p.height;v=Math.min(u.width,Math.max(f.width,v)),g=Math.min(u.height,Math.max(f.height,g));var _=document.createElement("canvas"),b=_.getContext("2d");_.width=Pm(v),_.height=Pm(g),b.fillStyle=e.fillColor||"transparent",b.fillRect(0,0,v,g);var w=e.imageSmoothingEnabled,x=w===void 0?!0:w,C=e.imageSmoothingQuality;b.imageSmoothingEnabled=x,C&&(b.imageSmoothingQuality=C);var M=n.width,k=n.height,O=i,R=o,L,$,N,W,j,Y;O<=-s||O>M?(O=0,L=0,N=0,j=0):O<=0?(N=-O,O=0,L=Math.min(M,s+O),j=L):O<=M&&(N=0,L=Math.min(s,M-O),j=L),L<=0||R<=-l||R>k?(R=0,$=0,W=0,Y=0):R<=0?(W=-R,R=0,$=Math.min(k,l+R),Y=$):R<=k&&(W=0,$=Math.min(l,k-R),Y=$);var V=[O,R,L,$];if(j>0&&Y>0){var J=v/s;V.push(N*J,W*J,j*J,Y*J)}return b.drawImage.apply(b,[n].concat(_J(V.map(function(ie){return Math.floor(Pm(ie))})))),_},setAspectRatio:function(e){var r=this.options;return!this.disabled&&!DO(e)&&(r.aspectRatio=Math.max(0,e)||NaN,this.ready&&(this.initCropBox(),this.cropped&&this.renderCropBox())),this},setDragMode:function(e){var r=this.options,n=this.dragBox,a=this.face;if(this.ready&&!this.disabled){var i=e===bN,o=r.movable&&e===SJ;e=i||o?e:xJ,r.dragMode=e,Oy(n,My,e),Cm(n,OP,i),Cm(n,$P,o),r.cropBoxMovable||(Oy(a,My,e),Cm(a,OP,i),Cm(a,$P,o))}return this}},x2e=yl.Cropper,$J=function(){function t(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(Lke(this,t),!e||!Jke.test(e.tagName))throw new Error("The first argument is required and must be an or element.");this.element=e,this.options=nn({},l7,xm(r)&&r),this.cropped=!1,this.disabled=!1,this.pointers={},this.ready=!1,this.reloading=!1,this.replaced=!1,this.sized=!1,this.sizing=!1,this.init()}return Nke(t,[{key:"init",value:function(){var r=this.element,n=r.tagName.toLowerCase(),a;if(!r[Qr]){if(r[Qr]=this,n==="img"){if(this.isImg=!0,a=r.getAttribute("src")||"",this.originalUrl=a,!a)return;a=r.src}else n==="canvas"&&window.HTMLCanvasElement&&(a=r.toDataURL());this.load(a)}}},{key:"load",value:function(r){var n=this;if(r){this.url=r,this.imageData={};var a=this.element,i=this.options;if(!i.rotatable&&!i.scalable&&(i.checkOrientation=!1),!i.checkOrientation||!window.ArrayBuffer){this.clone();return}if(qke.test(r)){Xke.test(r)?this.read(h2e(r)):this.clone();return}var o=new XMLHttpRequest,s=this.clone.bind(this);this.reloading=!0,this.xhr=o,o.onabort=s,o.onerror=s,o.ontimeout=s,o.onprogress=function(){o.getResponseHeader("content-type")!==s7&&o.abort()},o.onload=function(){n.read(o.response)},o.onloadend=function(){n.reloading=!1,n.xhr=null},i.checkCrossOrigin&&u7(r)&&a.crossOrigin&&(r=d7(r)),o.open("GET",r,!0),o.responseType="arraybuffer",o.withCredentials=a.crossOrigin==="use-credentials",o.send()}}},{key:"read",value:function(r){var n=this.options,a=this.imageData,i=m2e(r),o=0,s=1,l=1;if(i>1){this.url=p2e(r,s7);var c=v2e(i);o=c.rotate,s=c.scaleX,l=c.scaleY}n.rotatable&&(a.rotate=o),n.scalable&&(a.scaleX=s,a.scaleY=l),this.clone()}},{key:"clone",value:function(){var r=this.element,n=this.url,a=r.crossOrigin,i=n;this.options.checkCrossOrigin&&u7(n)&&(a||(a="anonymous"),i=d7(n)),this.crossOrigin=a,this.crossOriginUrl=i;var o=document.createElement("img");a&&(o.crossOrigin=a),o.src=i||n,o.alt=r.alt||"The image to crop",this.image=o,o.onload=this.start.bind(this),o.onerror=this.stop.bind(this),Vn(o,Q9),r.parentNode.insertBefore(o,r.nextSibling)}},{key:"start",value:function(){var r=this,n=this.image;n.onload=null,n.onerror=null,this.sizing=!0;var a=yl.navigator&&/(?:iPad|iPhone|iPod).*?AppleWebKit/i.test(yl.navigator.userAgent),i=function(c,d){nn(r.imageData,{naturalWidth:c,naturalHeight:d,aspectRatio:c/d}),r.initialImageData=nn({},r.imageData),r.sizing=!1,r.sized=!0,r.build()};if(n.naturalWidth&&!a){i(n.naturalWidth,n.naturalHeight);return}var o=document.createElement("img"),s=document.body||document.documentElement;this.sizingImage=o,o.onload=function(){i(o.width,o.height),a||s.removeChild(o)},o.src=n.src,a||(o.style.cssText="left:0;max-height:none!important;max-width:none!important;min-height:0!important;min-width:0!important;opacity:0;position:absolute;top:0;z-index:-1;",s.appendChild(o))}},{key:"stop",value:function(){var r=this.image;r.onload=null,r.onerror=null,r.parentNode.removeChild(r),this.image=null}},{key:"build",value:function(){if(!(!this.sized||this.ready)){var r=this.element,n=this.options,a=this.image,i=r.parentNode,o=document.createElement("div");o.innerHTML=Zke;var s=o.querySelector(".".concat(Qr,"-container")),l=s.querySelector(".".concat(Qr,"-canvas")),c=s.querySelector(".".concat(Qr,"-drag-box")),d=s.querySelector(".".concat(Qr,"-crop-box")),u=d.querySelector(".".concat(Qr,"-face"));this.container=i,this.cropper=s,this.canvas=l,this.dragBox=c,this.cropBox=d,this.viewBox=s.querySelector(".".concat(Qr,"-view-box")),this.face=u,l.appendChild(a),Vn(r,ai),i.insertBefore(s,r.nextSibling),ml(a,Q9),this.initPreview(),this.bind(),n.initialAspectRatio=Math.max(0,n.initialAspectRatio)||NaN,n.aspectRatio=Math.max(0,n.aspectRatio)||NaN,n.viewMode=Math.max(0,Math.min(3,Math.round(n.viewMode)))||0,Vn(d,ai),n.guides||Vn(d.getElementsByClassName("".concat(Qr,"-dashed")),ai),n.center||Vn(d.getElementsByClassName("".concat(Qr,"-center")),ai),n.background&&Vn(s,"".concat(Qr,"-bg")),n.highlight||Vn(u,Hke),n.cropBoxMovable&&(Vn(u,$P),Oy(u,My,yN)),n.cropBoxResizable||(Vn(d.getElementsByClassName("".concat(Qr,"-line")),ai),Vn(d.getElementsByClassName("".concat(Qr,"-point")),ai)),this.render(),this.ready=!0,this.setDragMode(n.dragMode),n.autoCrop&&this.crop(),this.setData(n.data),ni(n.ready)&&ro(r,a7,n.ready,{once:!0}),Im(r,a7)}}},{key:"unbuild",value:function(){if(this.ready){this.ready=!1,this.unbind(),this.resetPreview();var r=this.cropper.parentNode;r&&r.removeChild(this.cropper),ml(this.element,ai)}}},{key:"uncreate",value:function(){this.ready?(this.unbuild(),this.ready=!1,this.cropped=!1):this.sizing?(this.sizingImage.onload=null,this.sizing=!1,this.sized=!1):this.reloading?(this.xhr.onabort=null,this.xhr.abort()):this.image&&this.stop()}}],[{key:"noConflict",value:function(){return window.Cropper=x2e,t}},{key:"setDefaults",value:function(r){nn(l7,xm(r)&&r)}}])}();nn($J.prototype,g2e,_2e,y2e,b2e,w2e,S2e);var If=function(){return If=Object.assign||function(t){for(var e,r=1,n=arguments.length;r0&&R.zoomTo(ie)}(O.currentTarget.cropper,x),_&&_(O)}}));b&&b(k)}return function(){var O,R;(R=(O=C.current)===null||O===void 0?void 0:O.cropper)===null||R===void 0||R.destroy()}},[C]);var M=function(k){return C2e.reduce(function(O,R){var L=O,$=R;return L[$],OO(L,[typeof $=="symbol"?$:$+""])},k)}(If(If({},w),{crossOrigin:l,src:i,alt:g}));return E.createElement("div",{style:o,className:s},E.createElement("img",If({},M,{style:T2e,ref:C})))});const bu={mainDiv:{width:"100%",height:"100%",overflow:"auto"},formControl:{margin:0,minWidth:120},formControlMarginRight:{marginRight:5},formControlPaddingTop:{paddingTop:6.2}},k2e={once:"once",interval:"interval",intervalBetween:"intervalBetween",specific:"specific"},ya={seconds:"seconds",minutes:"minutes"},f7=["ra_Sunday","ra_Monday","ra_Tuesday","ra_Wednesday","ra_Thursday","ra_Friday","ra_Saturday","ra_Sunday"];function il(t){return t<10?`0${t}`:`${t}`}const E2e={mode:"interval",interval:{period:1,unit:ya.minutes}};function bS(t){if(t==="*")return[0,1,2,3,4,5,6];const e=t.split(","),r=[];return e.forEach(n=>{const a=n.split("-");if(a.length===2){const i=parseInt(a[0],10),o=parseInt(a[1],10);for(let s=i;s<=o;s++)r.includes(s===7?0:s)||r.push(s===7?0:s)}else{n==="7"&&(n="0");const i=parseInt(n,10);r.includes(i)||r.push(i)}}),r.sort(),r}function AJ(t,e){t=t.replace(/['"]/g,"").trim();const r=t.split(" ");let n,a=null;return r.length===6?n={seconds:r[0]||"*",minutes:r[1]||"*",hours:r[2]||"*",date:r[3]||"*",months:r[4]||"*",dow:r[5]||"*"}:n={seconds:null,minutes:r[0]||"*",hours:r[1]||"*",date:r[2]||"*",months:r[3]||"*",dow:r[4]||"*"},n.seconds===null&&n.minutes==="*"&&n.hours==="*"&&n.date==="*"&&n.months==="*"&&(n.dow==="*"||e)&&(a={mode:"interval",interval:{period:1,unit:ya.minutes}}),n.seconds==="*"&&n.minutes==="*"&&n.hours==="*"&&n.date==="*"&&n.months==="*"&&(n.dow==="*"||e)?a={mode:"interval",interval:{period:1,unit:ya.seconds}}:n.seconds===null&&n.minutes.includes("/")&&n.hours==="*"&&n.date==="*"&&n.months==="*"&&(n.dow==="*"||e)?a={mode:"interval",interval:{period:parseInt(n.minutes.split("/")[1],10),unit:ya.minutes}}:n.seconds!==null&&n.seconds.includes("/")&&n.minutes==="*"&&n.hours==="*"&&n.date==="*"&&n.months==="*"&&(n.dow==="*"||e)?a={mode:"interval",interval:{period:parseInt(n.seconds.split("/")[1],10),unit:ya.seconds}}:n.seconds!==null&&n.seconds.includes("/")&&n.minutes==="*"&&n.hours.includes("-")&&n.date==="*"&&n.months==="*"&&(n.dow==="*"||e)?a={mode:"intervalBetween",intervalBetween:{period:parseInt(n.seconds.split("/")[1],10),unit:ya.seconds,timeFrom:parseInt(n.hours.split("-")[0],10),timeTo:parseInt(n.hours.split("-")[1],10),weekdays:bS(n.dow)}}:n.seconds===null&&n.minutes.includes("/")&&n.hours.includes("-")&&n.date==="*"&&n.months==="*"&&(n.dow==="*"||e)?a={mode:"intervalBetween",intervalBetween:{period:parseInt(n.minutes.split("/")[1],10),unit:ya.minutes,timeFrom:parseInt(n.hours.split("-")[0],10),timeTo:parseInt(n.hours.split("-")[1],10),weekdays:bS(n.dow)}}:n.seconds===null&&parseInt(n.minutes,10).toString()===n.minutes&&parseInt(n.hours,10).toString()===n.hours&&n.date==="*"&&n.months==="*"&&(n.dow==="*"||e)?a={mode:"specific",specific:{time:`${il(parseInt(n.hours,10))}:${il(parseInt(n.minutes,10))}`,weekdays:bS(n.dow)}}:n.seconds===null&&parseInt(n.minutes,10).toString()===n.minutes&&parseInt(n.hours,10).toString()===n.hours&&parseInt(n.date,10).toString()===n.date&&parseInt(n.months,10).toString()===n.months&&(n.dow==="*"||e)&&(a={mode:"once",once:{time:`${il(parseInt(n.hours,10))}:${il(parseInt(n.minutes,10))}`,date:`${il(parseInt(n.date,10))}.${il(parseInt(n.months,10))}`}}),a}class $y extends E.Component{constructor(e){super(e);let r=typeof e.cronExpression=="string"?e.cronExpression.replace(/^["']/,"").replace(/["']\n?$/,""):"";r[0]==="{"&&(r="");const n=AJ(r||"* * * * *",!0)||E2e;this.state={extended:!1,cron:$y.state2cron(n),mode:"interval",once:{time:"00:00",date:""},interval:{period:1,unit:ya.minutes},intervalBetween:{period:1,unit:ya.minutes,timeFrom:0,timeTo:23,weekdays:[0,1,2,3,4,5,6]},specific:{time:"00:00",weekdays:[0,1,2,3,4,5,6]}},Object.assign(this.state,n),this.state.cron!==e.cronExpression&&setTimeout(()=>e.onChange&&e.onChange(this.state.cron),100)}static periodArray2text(e,r=7){if(r=r||7,e.length===r)return"*";const n=[];let a=null,i=null;if(!e.length)return"_";for(let o=0;o60&&(n.period=60),n.period!==void 0&&n.period<1&&(n.period=1),n.minutes!==void 0&&n.minutes!==null&&n.minutes>60&&(n.minutes=60),n.minutes!==void 0&&n.minutes!==null&&n.minutes<1&&(n.minutes=1),n.hours!==void 0&&n.hours!==null&&n.hours>24&&(n.hours=24),n.hours!==void 0&&n.hours!==null&&n.hours<1&&(n.hours=1),e.extended)r=`${n.minutes!==void 0&&n.minutes!==null&&n.minutes>1?`*/${n.minutes}`:"*"} ${n.hours!==void 0&&n.hours!==null&&n.hours>1?`*/${n.hours}`:"*"} * * *`;else switch(n.unit){case ya.seconds:r=`${n.period>1?`*/${n.period}`:"*"} * * * * *`;break;case ya.minutes:r=`${n.period>1?`*/${n.period}`:"*"} * * * *`;break}}else if(e.mode==="intervalBetween"){const n=e.intervalBetween||{period:1,unit:ya.minutes,timeFrom:0,timeTo:24,weekdays:[0,1,2,3,4,5,6]};let a;switch(n.timeFrom=n.timeFrom||0,n.timeTo=n.timeTo===void 0?24:n.timeTo,n.timeFrom!==0&&n.timeTo===24&&(n.timeTo=23),n.timeFrom===0&&n.timeTo===24?a="*":a=n.timeFrom!==n.timeTo?`${n.timeFrom}-${n.timeTo}`:"*",n.period>60&&(n.period=60),n.period<1&&(n.period=1),n.unit=n.unit||ya.minutes,n.unit){case ya.seconds:r=`${n.period>1?`*/${n.period}`:"*"} * ${a} * * ${this.periodArray2text(n.weekdays)}`;break;case ya.minutes:r=`${n.period>1?`*/${n.period}`:"*"} ${a} * * ${this.periodArray2text(n.weekdays)}`;break}}else if(e.mode==="specific"){const n=e.specific||{time:"00:00",weekdays:[0,1,2,3,4,5,6]},a=(n.time||"00:00").split(":");let i=parseInt(a[1],10)||0;i>59&&(i=59),i<0&&(i=0);let o=parseInt(a[0],10)||0;o>23&&(o=59),o<0&&(o=0),r=`${i} ${o} * * ${this.periodArray2text(n.weekdays||[])}`}else if(e.mode==="once"){const n=e.once||{time:"00:00",date:""};n.date||(n.date=`${new Date().getDate()}.${il(new Date().getMonth()+1)}`);const a=(n.time||"00:00").split(":"),i=n.date.split(".");let o=parseInt(a[1],10)||0;o>59&&(o=59),o<0&&(o=0);let s=parseInt(a[0],10)||0;s>23&&(s=59),s<0&&(s=0);let l=parseInt(i[0],10)||1;l>31&&(l=31),l<1&&(s=1);let c=parseInt(i[1],10)||1;c>12&&(c=12),c<1&&(c=1),r=`${o} ${s} ${l} ${c} *`}return r}recalcCron(){this.onChange($y.state2cron(this.state))}getControlsWeekdaysElements(e){const r=e==="intervalBetween"?this.state.intervalBetween:this.state.specific;return E.createElement("div",{key:"weekdays",style:{paddingLeft:8,width:"calc(100% - 8px)",maxWidth:600}},E.createElement("h5",null,te.t("ra_On weekdays")),[1,2,3,4,5,6,0].map(n=>E.createElement(Xt,{key:f7[n],control:E.createElement(Un,{checked:r.weekdays.includes(n),onChange:a=>{const i=JSON.parse(JSON.stringify(this.state[e])),o=i.weekdays.indexOf(n);a.target.checked?o===-1&&i.weekdays.push(n):o!==-1&&i.weekdays.splice(o,1),i.weekdays.sort(),e==="intervalBetween"?this.setState({intervalBetween:i},()=>this.recalcCron()):this.setState({specific:i},()=>this.recalcCron())},value:n.toString()}),label:te.t(f7[n])})))}getControlsPeriodElements(e){const r=e==="interval"?this.state.interval:this.state.intervalBetween;return this.state.extended?E.createElement("div",{key:"period",style:{paddingLeft:8,display:"inline-block"}},E.createElement("h5",{style:{marginBottom:5}},te.t("sc_period")),E.createElement(Sa,{variant:"standard",style:{marginTop:0,marginBottom:0,verticalAlign:"bottom"},key:"value",label:te.t("sc_minutes"),value:r.minutes,onChange:n=>{const a=JSON.parse(JSON.stringify(this.state[e]));a.minutes=parseInt(n.target.value,10),a.minutes<1&&(a.minutes=1),e==="interval"?this.setState({interval:a},()=>this.recalcCron()):this.setState({intervalBetween:a},()=>this.recalcCron())},slotProps:{htmlInput:{min:1,max:60},inputLabel:{shrink:!0}},type:"number",margin:"normal"}),E.createElement(Sa,{variant:"standard",style:{marginTop:0,marginBottom:0,verticalAlign:"bottom"},key:"value",label:te.t("sc_hours"),value:r.hours,onChange:n=>{const a=JSON.parse(JSON.stringify(this.state[e]));a.hours=parseInt(n.target.value,10),a.hours<1&&(a.hours=1),e==="interval"?this.setState({interval:a},()=>this.recalcCron()):this.setState({intervalBetween:a},()=>this.recalcCron())},slotProps:{htmlInput:{min:1,max:24},inputLabel:{shrink:!0}},type:"number",margin:"normal"})):E.createElement("div",{key:"period",style:{paddingLeft:8,display:"inline-block"}},E.createElement("h5",{style:{marginBottom:5}},te.t("sc_period")),E.createElement(Sa,{variant:"standard",style:{marginTop:0,marginBottom:0,verticalAlign:"bottom"},key:"value",label:te.t("sc_every"),value:r.period,onChange:n=>{const a=JSON.parse(JSON.stringify(this.state[e]));a.period=parseInt(n.target.value,10),a.period<1&&(a.period=1),e==="interval"?this.setState({interval:a},()=>this.recalcCron()):this.setState({intervalBetween:a},()=>this.recalcCron())},slotProps:{htmlInput:{min:1,max:60},inputLabel:{shrink:!0}},type:"number",margin:"normal"}),E.createElement(ns,{variant:"standard",style:{verticalAlign:"bottom"},value:r.unit,onChange:n=>{const a=JSON.parse(JSON.stringify(this.state[e]));a.unit=n.target.value,e==="interval"?this.setState({interval:a},()=>this.recalcCron()):this.setState({intervalBetween:a},()=>this.recalcCron())}},E.createElement(tn,{value:"seconds"},te.t("sc_seconds")),")",E.createElement(tn,{value:"minutes"},te.t("sc_minutes")),")"))}getControlsTime(e){const r=e==="once"?this.state.once:this.state.specific;return E.createElement(Af,{variant:"standard",sx:{...bu.formControl,"&.MuiFormControl-root":bu.formControlMarginRight}},E.createElement(Sa,{variant:"standard",key:"at",label:te.t("sc_time"),value:r.time,type:"time",sx:n=>({'& input[type="time"]::-webkit-calendar-picker-indicator':{filter:n.palette.mode==="dark"?"invert(80%)":void 0}}),onChange:n=>{const a=JSON.parse(JSON.stringify(this.state[e]));a.time=n.target.value,e==="once"?this.setState({once:a},()=>this.recalcCron()):this.setState({specific:a},()=>this.recalcCron())},slotProps:{inputLabel:{shrink:!0}},margin:"normal"}))}getControlsDate(){const e=this.state.once;if(!e.date){const r=new Date;e.date=`${r.getDate()}.${il(r.getMonth()+1)}`}return E.createElement(Af,{variant:"standard",style:bu.formControl},E.createElement(Sa,{variant:"standard",key:"date",label:te.t("sc_date"),value:e.date,type:"text",slotProps:{htmlInput:{style:bu.formControlPaddingTop},inputLabel:{shrink:!0}},onChange:r=>{const n=JSON.parse(JSON.stringify(this.state.once));n.date=r.target.value,this.setState({once:n},()=>this.recalcCron())},margin:"normal"}))}getOnceElements(){return E.createElement("div",{style:{marginLeft:8}},this.getControlsTime("once"),this.getControlsDate())}getIntervalElements(){return this.getControlsPeriodElements("interval")}getIntervalBetweenElements(){const e=this.state.intervalBetween;return[this.getControlsPeriodElements("intervalBetween"),E.createElement("div",{key:"between",style:{paddingLeft:8,display:"inline-block",verticalAlign:"top"}},E.createElement("h5",{style:{marginBottom:5}},te.t("sc_hours")),E.createElement(Af,{variant:"standard",style:bu.formControl},E.createElement(ty,{shrink:!0,htmlFor:"age-label-placeholder"},te.t("sc_from")),E.createElement(ns,{variant:"standard",style:{width:100},value:e.timeFrom,onChange:r=>{const n=JSON.parse(JSON.stringify(this.state.intervalBetween));n.timeFrom=parseInt(r.target.value,10),n.timeTo===24&&(n.timeTo=23),this.setState({intervalBetween:n},()=>this.recalcCron())}},[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23].map(r=>E.createElement(tn,{key:`B_${r}`,value:r},`${il(r)}:00`)))),E.createElement(Af,{variant:"standard",style:bu.formControl},E.createElement(ty,{shrink:!0,htmlFor:"age-label-placeholder"},te.t("sc_to")),E.createElement(ns,{variant:"standard",style:{width:100},value:e.timeTo,onChange:r=>{const n=JSON.parse(JSON.stringify(this.state.intervalBetween));n.timeTo=parseInt(r.target.value,10),this.setState({intervalBetween:n},()=>this.recalcCron())}},[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23].map(r=>E.createElement(tn,{key:`A_${r}`,value:r},`${il(r)}:00`)),!e.timeFrom&&E.createElement(tn,{value:24},"00:00")))),this.getControlsWeekdaysElements("intervalBetween")]}getSpecificTimeElements(){return[E.createElement("div",{key:"time",style:{marginLeft:8}},this.getControlsTime("specific")),this.getControlsWeekdaysElements("specific")]}onModeChange(e){e!==this.state.mode&&this.setState({mode:e},()=>this.recalcCron())}onChange(e){e!==this.state.cron&&(this.setState({cron:e}),this.props.onChange&&this.props.onChange(e))}render(){return E.createElement("div",{style:bu.mainDiv},E.createElement("div",{style:{paddingLeft:8,width:"calc(100% - 8px)"}},E.createElement(Sa,{variant:"standard",style:{width:"100%"},value:this.state.cron,disabled:!0,error:this.state.cron.includes("_")})),E.createElement("div",{style:{paddingLeft:8,width:"calc(100% - 8px)",height:60}},this.state.cron.includes("_")?te.t("sc_invalid_cron"):tJ(this.state.cron,this.props.language||"en")),E.createElement("div",null,E.createElement(Af,{variant:"standard",style:{...bu.formControl,marginLeft:8,marginTop:8}},E.createElement(ty,null,te.t("ra_Repeat")),E.createElement(ns,{variant:"standard",value:this.state.mode,onChange:e=>this.onModeChange(e.target.value),inputProps:{name:"mode",id:"mode"}},E.createElement(tn,{value:"once"},te.t("sc_once")),E.createElement(tn,{value:"interval"},te.t("sc_interval")),E.createElement(tn,{value:"intervalBetween"},te.t("sc_intervalBetween")),E.createElement(tn,{value:"specific"},te.t("sc_specific"))))),this.state.mode===k2e.once&&this.getOnceElements(),this.state.mode==="interval"&&this.getIntervalElements(),this.state.mode==="intervalBetween"&&this.getIntervalBetweenElements(),this.state.mode==="specific"&&this.getSpecificTimeElements())}}const D2e={headerID:{fontWeight:"bold",fontStyle:"italic"},radio:{display:"inline-block"},dialogPaper:{height:"calc(100% - 96px)"}};class i3t extends E.Component{constructor(e){super(e);let r;this.props.cron&&typeof this.props.cron=="string"&&this.props.cron.replace(/^["']/,"")[0]!=="{"?r=this.props.cron.replace(/['"]/g,"").trim():(r=this.props.cron||"{}",typeof r=="string"&&(r=r.replace(/^["']/,"").replace(/["']\n?$/,""))),this.state={showWarning:"",cron:r}}handleCancel(){this.props.onClose()}handleOk(e){if(!e){const r=Ru.cron2state(this.state.cron);if(r.seconds==="*"||r.seconds==="*/1"){this.setState({showWarning:"everySecond"});return}if(r.minutes==="*"||r.minutes==="*/1"){this.setState({showWarning:"everyMinute"});return}}this.props.onOk(this.state.cron),this.props.onClose()}renderWarningDialog(){return this.state.showWarning?E.createElement(W_e,{title:te.t("ra_Please confirm"),text:te.t(this.state.showWarning==="everySecond"?"ra_The schedule will be executed every second. Are you sure?":"ra_The schedule will be executed every minute. Are you sure?"),onClose:e=>this.setState({showWarning:""},()=>{e&&this.handleOk(!0)})}):null}handleClear(){this.props.onOk(!1),this.props.onClose()}render(){return E.createElement(ms,{onClose:()=>{},maxWidth:"md",fullWidth:!0,sx:{"& .MuiDialog-paper":D2e.dialogPaper},open:!0,"aria-labelledby":"cron-dialog-title"},this.renderWarningDialog(),E.createElement(_s,{id:"cron-dialog-title"},this.props.title||te.t("ra_Define schedule...")),E.createElement(gs,{style:{height:"100%",overflow:"hidden"}},E.createElement(Ru,{cronExpression:this.state.cron,onChange:e=>this.setState({cron:e}),language:te.getLanguage()})),E.createElement(vs,null,!!this.props.clearButton&&E.createElement(Vr,{color:"grey",variant:"contained",onClick:()=>this.handleClear(),startIcon:E.createElement(_S,null)},this.props.clear||te.t("ra_Clear")),E.createElement(Vr,{variant:"contained",onClick:()=>this.handleOk(),color:"primary",startIcon:E.createElement(Ch,null)},this.props.ok||te.t("ra_Ok")),E.createElement(Vr,{color:"grey",variant:"contained",onClick:()=>this.handleCancel(),startIcon:E.createElement(LC,null)},this.props.cancel||te.t("ra_Cancel"))))}}const M2e={dialogPaper:{height:"calc(100% - 96px)"}};class o3t extends E.Component{constructor(e){super(e);let r;this.props.cron&&typeof this.props.cron=="string"&&this.props.cron.replace(/^["']/,"")[0]!=="{"?r=this.props.cron.replace(/['"]/g,"").trim():(r=this.props.cron||"{}",typeof r=="string"&&(r=r.replace(/^["']/,"").replace(/["']\n?$/,""))),this.state={cron:r,mode:this.props.simple?"simple":this.props.complex?"complex":(typeof r=="object"||r[0]==="{")&&!this.props.noWizard?"wizard":AJ(this.props.cron||"* * * * *")?"simple":"complex"}}handleCancel(){this.props.onClose()}handleOk(){this.props.onOk(this.state.cron),this.props.onClose()}setMode(e){this.setState({mode:e})}render(){return E.createElement(ms,{onClose:()=>{},maxWidth:"md",fullWidth:!0,sx:{"& .MuiDialog-paper":M2e.dialogPaper},open:!0,"aria-labelledby":"cron-dialog-title"},E.createElement(_s,{id:"cron-dialog-title"},this.props.title||te.t("ra_Define schedule...")),E.createElement(gs,{style:{height:"100%",overflow:"hidden"}},this.props.simple&&this.props.complex||!this.props.simple&&!this.props.complex?E.createElement("div",null,!this.props.simple&&!this.props.complex&&!this.props.noWizard&&E.createElement(E.Fragment,null,E.createElement(Yr,{key:"wizard",checked:this.state.mode==="wizard",onChange:()=>this.setMode("wizard")}),E.createElement("label",{onClick:()=>this.setMode("wizard"),style:this.state.mode!=="wizard"?{color:"lightgrey"}:{}},te.t("sc_wizard"))),(!this.props.simple&&!this.props.complex||this.props.simple)&&E.createElement(E.Fragment,null,E.createElement(Yr,{key:"simple",checked:this.state.mode==="simple",onChange:()=>this.setMode("simple")}),E.createElement("label",{onClick:()=>this.setMode("simple"),style:this.state.mode!=="simple"?{color:"lightgrey"}:{}},te.t("sc_simple"))),(!this.props.simple&&!this.props.complex||this.props.complex)&&E.createElement(E.Fragment,null,E.createElement(Yr,{key:"complex",checked:this.state.mode==="complex",onChange:()=>this.setMode("complex")}),E.createElement("label",{onClick:()=>this.setMode("complex"),style:this.state.mode!=="complex"?{color:"lightgrey"}:{}},te.t("sc_cron")))):null,this.state.mode==="simple"&&E.createElement($y,{cronExpression:this.state.cron,onChange:e=>this.setState({cron:e}),language:te.getLanguage()}),this.state.mode==="wizard"&&E.createElement(ea,{theme:this.props.theme,schedule:this.state.cron,onChange:e=>this.setState({cron:e})}),this.state.mode==="complex"&&E.createElement(Ru,{cronExpression:this.state.cron,onChange:e=>this.setState({cron:e}),language:te.getLanguage()})),E.createElement(vs,null,E.createElement(Vr,{variant:"contained",onClick:()=>this.handleOk(),color:"primary",startIcon:E.createElement(Ch,null)},this.props.ok||te.t("ra_Ok")),E.createElement(Vr,{variant:"contained",onClick:()=>this.handleCancel(),color:"grey",startIcon:E.createElement(LC,null)},this.props.cancel||te.t("ra_Cancel"))))}}const rf={headerID:{fontWeight:"bold",fontStyle:"italic"},dialog:{height:"95%"},dialogMobile:{padding:"4px",width:"100%",maxWidth:"100%",maxHeight:"calc(100% - 16px)",height:"100%"},content:{height:"100%",overflow:"hidden"},contentMobile:{padding:"8px 4px"},titleRoot:{whiteSpace:"nowrap",width:"calc(100% - 72px)",overflow:"hidden",display:"inline-block",textOverflow:"ellipsis"}};class s3t extends E.Component{constructor(r){super(r);de(this,"dialogName");de(this,"filters");this.dialogName=this.props.dialogName||"default",this.dialogName=`SelectFile.${this.dialogName}`;const n=(window._localStorage||window.localStorage).getItem(this.dialogName)||"{}";try{this.filters=JSON.parse(n)}catch{this.filters={}}r.filters&&(this.filters={...this.filters,...r.filters});let a=this.props.selected||[];typeof a!="object"?a=[a]:a=[...a],a=a.filter(i=>i),this.state={selected:a}}handleCancel(){this.props.onClose()}handleOk(){this.props.onOk(this.props.multiSelect||!Array.isArray(this.state.selected)?this.state.selected:this.state.selected[0]||""),this.props.onClose()}render(){let r;return this.state.selected.length?!Array.isArray(this.state.selected)||this.state.selected.length===1?r=[E.createElement("span",{key:"selected"},te.t("ra_Selected")," "),E.createElement("span",{key:"id",style:rf.headerID},this.state.selected)]:r=[E.createElement("span",{key:"selected"},te.t("ra_Selected")," "),E.createElement("span",{key:"id",style:rf.headerID},te.t("%s items",this.state.selected.length))]:r=this.props.title||te.t("ra_Please select file..."),E.createElement(ms,{onClose:()=>{},maxWidth:!1,sx:{"& .MuiDialog-paper":{...rf.dialog,...rf.dialogMobile}},fullWidth:!0,open:!0,"aria-labelledby":"ar_dialog_selectfile_title"},E.createElement(_s,{id:"ar_dialog_selectfile_title",sx:{"&.MuiDialogTitle-root":rf.titleRoot}},r),E.createElement(gs,{style:{...rf.content,...rf.contentMobile}},E.createElement(Eke,{ready:!0,imagePrefix:this.props.imagePrefix||this.props.prefix||"../",allowUpload:!!this.props.allowUpload,allowDownload:this.props.allowDownload!==!1,allowCreateFolder:!!this.props.allowCreateFolder,allowDelete:!!this.props.allowDelete,allowView:this.props.allowView!==!1,showViewTypeButton:this.props.showViewTypeButton!==!1,showToolbar:this.props.showToolbar!==!1,limitPath:this.props.limitPath,filterFiles:this.props.filterFiles,filterByType:this.props.filterByType,selected:this.props.selected,restrictToFolder:this.props.restrictToFolder,allowNonRestricted:this.props.allowNonRestricted,onSelect:(n,a,i)=>{this.setState({selected:Array.isArray(n)?n:[n]},()=>a&&(!this.props.selectOnlyFolders||i)&&this.handleOk())},t:this.props.t||te.t,lang:this.props.lang||te.getLanguage(),socket:this.props.socket,themeType:this.props.themeType,themeName:this.props.themeName,theme:this.props.theme,showExpertButton:this.props.showExpertButton,expertMode:this.props.expertMode,showTypeSelector:this.props.showTypeSelector})),E.createElement(vs,null,E.createElement(Vr,{variant:"contained",onClick:()=>this.handleOk(),startIcon:E.createElement(Ch,null),disabled:!this.state.selected.length,color:"primary"},this.props.ok||te.t("ra_Ok")),E.createElement(Vr,{color:"grey",variant:"contained",onClick:()=>this.handleCancel(),startIcon:E.createElement(LC,null)},this.props.cancel||te.t("ra_Cancel"))))}}const O2e={dialogPaper:{height:"calc(100% - 96px)"}};class l3t extends E.Component{constructor(e){super(e);let r;this.props.cron&&typeof this.props.cron=="string"&&this.props.cron.replace(/^["']/,"")[0]!=="{"?r=this.props.cron.replace(/['"]/g,"").trim():(r=this.props.cron||"{}",typeof r=="string"&&(r=r.replace(/^["']/,"").replace(/["']\n?$/,""))),this.state={cron:r}}handleCancel(){this.props.onClose()}handleOk(){this.props.onOk(this.state.cron),this.props.onClose()}render(){return E.createElement(ms,{onClose:()=>{},maxWidth:"md",fullWidth:!0,sx:{"& .MuiDialog-paper":O2e.dialogPaper},open:!0,"aria-labelledby":"cron-dialog-title"},E.createElement(_s,{id:"cron-dialog-title"},this.props.title||te.t("ra_Define CRON...")),E.createElement(gs,{style:{height:"100%",overflow:"hidden"}},E.createElement($y,{cronExpression:this.state.cron,onChange:e=>this.setState({cron:e}),language:te.getLanguage()})),E.createElement(vs,null,E.createElement(Vr,{variant:"contained",disabled:!this.state.cron||this.state.cron.includes("_"),onClick:()=>this.handleOk(),color:"primary",startIcon:E.createElement(Ch,null)},this.props.ok||te.t("ra_Ok")),E.createElement(Vr,{variant:"contained",onClick:()=>this.handleCancel(),color:"grey",startIcon:E.createElement(LC,null)},this.props.cancel||te.t("ra_Cancel"))))}}const $2e="Append",A2e="Cancel",P2e="Categories",I2e="Checked",R2e="Delete",L2e="Close",N2e="Commercial",F2e="Configure",z2e="Connected",B2e="Copied",j2e="Create",W2e="Crop",H2e="Delete",U2e="Delete",Y2e="Discard",V2e="Disconnected",G2e="Error",q2e="Filter",X2e="Friday",J2e="Latitude",Z2e="Expires in",K2e="Longitude",Q2e="Message",eEe="Monday",tEe="Name",rEe="Objects",nEe="Ok",aEe="Product",iEe="Repeat",oEe="Replace",sEe="Root",lEe="Saturday",cEe="Save",uEe="Selected",dEe="States",fEe="Sunday",hEe="Thursday",pEe="Timestamp",mEe="Tuesday",vEe="Update",gEe="Valid till",_Ee="Value",yEe="Version",bEe="Wednesday",wEe="Width",SEe="Yes",xEe="different",CEe="Everyone can read object",TEe="Everyone can read state",kEe="Everyone can write object",EEe="Everyone can write state",DEe="Group can read object",MEe="Group can read state",OEe="Group can write object",$Ee="Group can write state",AEe="Owner can read object",PEe="Owner can read state",IEe="Owner can write object",REe="Owner can write state",LEe="Buttons",NEe="Changed from",FEe="close",zEe="Create boolean state",BEe="Create channel",jEe="Create device",WEe="Create number state",HEe="Create state",UEe="Create string state",YEe="days",VEe="Fr",GEe="Mo",qEe="Sa",XEe="Su",JEe="Th",ZEe="Tu",KEe="We",QEe="Expert mode",eDe="All files",tDe="Audio",rDe="Code/JSON",nDe="Images",aDe="Text",iDe="Video",oDe="Settings",sDe="without",lDe="Function",cDe="ID",uDe="Name",dDe="Role",fDe="Room",hDe="Type",pDe="Invalid settings",mDe="Last change",vDe="locally",gDe="Apr",_De="Aug",yDe="Dec",bDe="Feb",wDe="Jan",SDe="Jul",xDe="Jun",CDe="Mai",TDe="Mar",kDe="Nov",EDe="Oct",DDe="Sep",MDe="Apr",ODe="Aug",$De="Dec",ADe="Feb",PDe="Jan",IDe="Jul",RDe="Jun",LDe="Mai",NDe="Mar",FDe="Nov",zDe="Oct",BDe="Sep",jDe="none",WDe="Object changed by",HDe="Object last changed at",UDe="Settings from other adapter %s",YDe="Quality code",VDe="repeat",GDe='To select folder, just hold the key "shift" by clicking the folder.',qDe="State changed by",XDe="Object changed from",JDe="Timestamp",ZDe="Acknowledged",KDe="Comment",QDe="Copy the state value",eMe="Custom settings",tMe="Delete object",rMe="Edit object",nMe="Edit the state value",aMe="From",iMe="Last changed",oMe="Quality",sMe="Time stamp",lMe="User",cMe="Value",uMe="Value",dMe="Warning: The CRON job will run every minute during the specified period!",fMe="Warning: The CRON job will run every second during the specified period!",hMe="CRON",pMe="Date",mMe="Dates",vMe="Day",gMe="Day of week",_Me="Every",yMe="every N days",bMe="every Nth day of the week",wMe="every N day of week",SMe="every N hours",xMe="every N minutes",CMe="every N months",TMe="every N seconds",kMe="every day",EMe="every day of the week",DMe="every day of the week",MMe="every hour",OMe="every minute",$Me="every month",AMe="every second",PMe="From",IMe="Hours",RMe="Interval",LMe="Interval between",NMe="Invalid CRON",FMe="Minutes",zMe="months",BMe="Once",jMe="Period",WMe="Seconds",HMe="Simple",UMe="Specific time",YMe="specific dates",VMe="specific day(s) of the week",GMe="specific day of weeks",qMe="specific hours",XMe="specific minutes",JMe="specific months",ZMe="specific seconds",KMe="Time",QMe="To",eOe="Wizard",tOe="all",rOe="Astro day",nOe="Astro night",aOe="Dawn",iOe="Dusk",oOe="Golden hour",sOe="Golden hour end",lOe="Nadir",cOe="Nautical dawn",uOe="Nautical dusk",dOe="Night",fOe="Night end",hOe="Solar noon",pOe="Sunrise",mOe="Sunrise end",vOe="Sunset",gOe="Sunset start",_Oe="at",yOe="at %s",bOe="every day",wOe="every hour",SOe="every minute",xOe="every month",COe="every %s day",TOe="every %s hours",kOe="every %s minutes",EOe="every %s months",DOe="every %s weeks",MOe="every %s years",OOe="every week",$Oe="every year",AOe="from %s to %s",POe="never",IOe="on %s of %s",ROe="on %s and %s of",LOe="on every date of",NOe="%s",FOe="%s and %s",zOe="on %s",BOe="on %s and %s",jOe="on weekends",WOe="on working days",HOe="will ne be not executed any more, because start is in the past",UOe="on %s",YOe="from %s",VOe="Execute from to",GOe="to %s",qOe="every",XOe="Specific time",JOe="from",ZOe="From-to",KOe="Interval time",QOe="invert",e$e="none",t$e="on",r$e="Period",n$e="Daily",a$e="Dates",i$e="Day",o$e="Every",s$e="Every day",l$e="Every month",c$e="Every week",u$e="Every year",d$e="Hours",f$e="Minutes",h$e="month",p$e="Monthly",m$e="Once",v$e="Specific months",g$e="Week",_$e="Weekdays",y$e="Weekend",b$e="Weekly",w$e="Workdays",S$e="Year",x$e="Yearly",C$e="Specific time",T$e="Time",k$e="to",E$e="Valid",D$e="from",M$e="to",O$e="Whole day",$$e="every month",A$e={"ra_%s links from aliases":"%s links from aliases","ra_%s object(s) processed":"%s object(s) processed","ra_%s was imported":"%s was imported","ra_Accept license":"Accept license","ra_Add new child object to selected parent":"Add new child object to selected parent","ra_Add objects tree from JSON file":"Add objects tree from JSON file","ra_Add row":"Add row","ra_Advanced options":"Advanced options","ra_All items are filtered out":"All items are filtered out","ra_All objects":"All objects",ra_Append:$2e,"ra_Append %s entries or replace existing?":"Append %s entries or replace existing?","ra_Append or replace?":"Append or replace?","ra_Are you sure?":"Are you sure?","ra_Auto (no custom columns)":"Auto (no custom columns)","ra_Back to %s":"Back to %s","ra_Background image":"Background image",ra_Cancel:A2e,"ra_Cannot add items with set filter":"Cannot add items with set filter","ra_Cannot decode license":"Cannot decode license","ra_Cannot determine position: System settings are empty and GPS detection is disabled in browser":"Cannot determine position: System settings are empty and GPS detection is disabled in browser",'ra_Cannot find "%s"':'Cannot find "%s"','ra_Cannot read "%s"':'Cannot read "%s"',"ra_Cannot read licenses: %s":"Cannot read licenses: %s","ra_Cannot retrieve options, as instance is offline":"Cannot retrieve options, as instance is offline","ra_Cannot update attribute, because not found in the object":"Cannot update attribute, because not found in the object","ra_Cannot upload":"Cannot upload",ra_Categories:P2e,"ra_Chained certificate":"Chained certificate","ra_Change color theme":"Change color theme","ra_Changed from":"Changed from","ra_Channel → State":"Channel → State","ra_Check license":"Check license",ra_Checked:I2e,ra_Clear:R2e,"ra_Clear filter":"Clear filter","ra_Clear icon":"Clear icon","ra_Clone current row":"Clone current row",ra_Close:L2e,"ra_Collapse all nodes":"Collapse all nodes","ra_Collapse one step node":"Collapse one level",ra_Commercial:N2e,ra_Configure:F2e,"ra_Configure visible columns":"Configure visible columns","ra_Confirm deletion of %s":"Confirm deletion of %s",ra_Connected:z2e,ra_Copied:B2e,"ra_Copied %s":'Copied "%s"',"ra_Copy content":"Copy content",ra_Create:j2e,"ra_Create alias":"Create alias","ra_Create folder":"Create folder","ra_Create new folder in %s":"Create new folder in %s",ra_Crop:W2e,"ra_Define CRON...":"Define CRON...","ra_Define functions":"Define functions","ra_Define rooms":"Define rooms","ra_Define schedule":"Define schedule","ra_Define schedule...":"Define schedule...",ra_Del:H2e,ra_Delete:U2e,"ra_Delete (no confirm for 5 mins)":"Delete (no confirm for 5 mins)","ra_Delete current row":"Delete current row","ra_Deselect all":"Unselect all","ra_Device → Channel → State":"Device → Channel → State",ra_Discard:Y2e,ra_Disconnected:V2e,"ra_Do not export values of states":"Do not export values of states","ra_Do not use let's encrypt":"Do not use let's encrypt","ra_Double click to reset table layout":"Double click to reset table layout","ra_Drag 'n' drop some files here, or click to select files":"Drag 'n' drop some files here, or click to select files","ra_Drop file here":"Drop file here","ra_Drop the files here...":"Drop the file here...","ra_Duplicate name":"Duplicate name","ra_Edit ACL":"Edit ACL","ra_Edit alias":"Edit alias","ra_Edit custom config":"Edit custom config","ra_Edit function":"Edit function","ra_Edit object field":"Edit object field","ra_Edit role":"Edit role","ra_Edit room":"Edit room","ra_Edit value":"Edit value",ra_Error:G2e,"ra_Expand all nodes":"Expand all nodes","ra_Expand one step node":"Expand one level","ra_Export data to %s file":"Export data to %s file","ra_Failed to open JSON File":"Failed to open JSON File","ra_Fallback custom certificates":"Fallback custom certificates","ra_File is too big. Max %sk allowed. Try use SVG.":"File is too big. Max %sk allowed. Try use SVG.",ra_Filter:q2e,"ra_Filter files":"Filter files","ra_Folder name":"Folder name","ra_Folder → Channel → State":"Folder → Channel → State","ra_Folder → Device → Channel → State":"Folder → Device → Channel → State","ra_Folder → State":"Folder → State","ra_Folders always first":"Folders always first",ra_Friday:X2e,"ra_Good luck":"Good luck","ra_Hide empty folders":"Hide empty folders","ra_If no file will be created in the folder, it will disappear after the browser closed":"If no file will be created in the folder, it will disappear after the browser closed","ra_Import data from %s file":"Import data from %s file","ra_Import from %s":"Import from %s","ra_Instance %s is alive":"Instance %s is alive","ra_Instance %s is not alive":"Instance %s is not alive","ra_Instance is not alive":"Instance is not alive","ra_Invalid CRON":"Invalid CRON","ra_Invalid JSON":"Invalid JSON","ra_Invalid answer from server":"Invalid answer from server","ra_Invalid parent folder!":"Invalid parent folder!","ra_Invalid structure":"Invalid structure","ra_JSON editor":"JSON editor","ra_Last change":"Last change",ra_Latitude:J2e,"ra_License %s":"License %s","ra_License agreement":"License agreement","ra_License does not exist":"License does not exist",ra_tooltip_expire:Z2e,"ra_License expired on %s":"License expired on %s",'ra_License for other product "%s"':'License for other product "%s"',"ra_License is for version %s, but required version is %s.":"License is for version %s, but required version is %s.","ra_License must be converted":"License must be converted to newer version. You can do it in your iobroker.net profile.","ra_License not found in license manager. Do you want to read licenses from iobroker.net?":"License not found in the license manager. Do you want to update licenses from iobroker.net?","ra_Listen on all IPs":"Listen on all IPs","ra_Load configuration from file":"Load configuration from file",ra_Longitude:K2e,'ra_May not trigger "updateLicenses"':'May not trigger "updateLicenses"',ra_Message:Q2e,ra_Monday:eEe,"ra_Move down":"Move down","ra_Move up":"Move up",ra_Name:tEe,"ra_No data found in file":"No data found in file","ra_No one license found in license manager":"No one license found in license manager","ra_No response from the backend":"No response from the backend",'ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".':'Non-experts may create new objects only in "0_userdata.0" or "alias.0".',"ra_Not a number":"Not a number",ra_Objects:rEe,ra_Ok:nEe,"ra_On weekdays":"On weekdays","ra_Only following structures of objects are available:":"Only following structures of objects are available:","ra_Only selected":"Only selected","ra_Owner group":"Owner group","ra_Owner user":"Owner user","ra_Passwords are not equal!":"Passwords are not equal!","ra_Place your files here or click here to open the browse dialog":"Place your files here or click here to open the browse dialog","ra_Please confirm":"Please confirm","ra_Please create license":"Please create license","ra_Please enter the license":"Please enter the license","ra_Please select file...":"Please select file...","ra_Please select object ID...":"Please select object ID...","ra_Port could be used by %s":"Port could be used by %s","ra_Port is already used by %s":"Port is already used by %s","ra_Private certificate":"Private certificate",ra_Product:aEe,"ra_Public certificate":"Public certificate","ra_Quality code":"Quality","ra_Refresh tree":"Refresh tree","ra_Reload files":"Reload files",ra_Repeat:iEe,ra_Replace:oEe,"ra_Request timed out":"Request timed out","ra_Restrict to folder":"Restrict to folder",ra_Root:sEe,ra_Saturday:lEe,ra_Save:cEe,"ra_Save and close":"Save and close","ra_Save configuration to file":"Save configuration to file","ra_Save objects tree as JSON file":"Save objects tree as JSON file","ra_Select all":"Select all","ra_Select color":"Select color","ra_Select predefined icon":"Select predefined icon","ra_Select type of export":"Select type of export",ra_Selected:uEe,"ra_Selected %s object(s)":"Selected %s object(s)","ra_Serial number (UUID)":"Serial number (UUID)",'ra_Serial number (UUID) "%s" in license is for other device.':'Serial number (UUID) "%s" in license is for other device.',"ra_Show all folders":"Show all folders","ra_Show lines between rows":"Show lines between rows","ra_Show/Hide object descriptions":"Show/Hide object descriptions","ra_Show/hide filter input":"Show/hide filter input","ra_Some data are not stored. Discard?":"Some data are not stored. Discard?",ra_States:dEe,"ra_Suitable license not found in license manager":"Suitable license not found in license manager",ra_Sunday:fEe,"ra_Suppress question for next %s minutes":"Suppress question for next %s minutes","ra_System language":"System language","ra_Take browser position":"Take position from browser","ra_Take position from system settings":"Take position from system settings",'ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").':'The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").',"ra_The page you are looking for was not found":"The page you are looking for was not found","ra_The schedule will be executed every minute. Are you sure?":"The schedule will be executed every minute. Are you sure?","ra_The schedule will be executed every second. Are you sure?":"The schedule will be executed every second. Are you sure?",ra_Thursday:hEe,ra_Timestamp:pEe,"ra_Toggle expert mode":"Toggle expert mode","ra_Toggle the states view":"Toggle the states view","ra_Toggle view mode":"Toggle view mode","ra_Too big":"Too big","ra_Too small":"Too small","ra_Transparent dialog":"Transparent dialog",ra_Tuesday:mEe,"ra_Unknown error":"Unknown error","ra_Unknown error!":"Unknown error!",ra_Update:vEe,"ra_Upload file":"Upload file","ra_Use all available let's encrypt certificates":"Use all available let's encrypt certificates","ra_Use iobroker.acme adapter for letsencrypt certificates":"Use iobroker.acme adapter for letsencrypt certificates","ra_Use system settings for position":"Use system settings for position","ra_Used system settings":"Used system settings","ra_User files":"User files",ra_ValidTill:gEe,ra_Value:_Ee,ra_Version:yEe,"ra_View file":"View file","ra_View: %s":"View: %s",ra_Wednesday:bEe,ra_Width:wEe,ra_Yes:SEe,"ra_You can export all objects or just the selected branch.":"You can export all objects or just the selected branch.","ra_You can filter entries by entering here some text":"You can filter entries by entering here some text",ra___different__:xEe,ra_aclEveryone_read_object:CEe,ra_aclEveryone_read_state:TEe,ra_aclEveryone_write_object:kEe,ra_aclEveryone_write_state:EEe,ra_aclGroup_read_object:DEe,ra_aclGroup_read_state:MEe,ra_aclGroup_write_object:OEe,ra_aclGroup_write_state:$Ee,ra_aclOwner_read_object:AEe,ra_aclOwner_read_state:PEe,ra_aclOwner_write_object:IEe,ra_aclOwner_write_state:REe,ra_buttons:LEe,ra_changedFrom:NEe,ra_close:FEe,ra_create_boolean_state:zEe,ra_create_channel:BEe,ra_create_device:jEe,ra_create_number_state:WEe,ra_create_state:HEe,ra_create_string_state:UEe,ra_daysShortText:YEe,ra_dow_Fr:VEe,ra_dow_Mo:GEe,ra_dow_Sa:qEe,ra_dow_Su:XEe,ra_dow_Th:JEe,ra_dow_Tu:ZEe,ra_dow_We:KEe,ra_expertMode:QEe,ra_fileType_all:eDe,ra_fileType_audio:tDe,ra_fileType_code:rDe,ra_fileType_images:nDe,ra_fileType_txt:aDe,ra_fileType_video:iDe,"ra_fileType_video,":"Video",ra_filter_customs:oDe,ra_filter_customs_without:sDe,ra_filter_func:lDe,ra_filter_id:cDe,ra_filter_name:uDe,ra_filter_role:dDe,ra_filter_room:fDe,ra_filter_type:hDe,"ra_import data from %s file":"Import data from %s file",ra_invalidConfig:pDe,ra_lastChange:mDe,ra_locally:vDe,ra_month_Apr:gDe,ra_month_Aug:_De,ra_month_Dec:yDe,ra_month_Feb:bDe,ra_month_Jan:wDe,ra_month_Jul:SDe,ra_month_Jun:xDe,ra_month_Mai:CDe,ra_month_Mar:TDe,ra_month_Nov:kDe,ra_month_Oct:EDe,ra_month_Sep:DDe,ra_months_Apr:MDe,ra_months_Aug:ODe,ra_months_Dec:$De,ra_months_Feb:ADe,ra_months_Jan:PDe,ra_months_Jul:IDe,ra_months_Jun:RDe,ra_months_Mai:LDe,ra_months_Mar:NDe,ra_months_Nov:FDe,ra_months_Oct:zDe,ra_months_Sep:BDe,ra_none:jDe,ra_object_changed_by:WDe,ra_object_changed_by_user:HDe,ra_otherConfig:UDe,ra_qualityCode:YDe,ra_repeat:VDe,ra_select_folder_hint:GDe,ra_state_changed_by:qDe,ra_state_changed_from:XDe,ra_timestamp:JDe,ra_tooltip_ack:ZDe,ra_tooltip_comment:KDe,ra_tooltip_copyState:QDe,ra_tooltip_customConfig:eMe,ra_tooltip_deleteObject:tMe,ra_tooltip_editObject:rMe,ra_tooltip_editState:nMe,ra_tooltip_from:aMe,ra_tooltip_lc:iMe,ra_tooltip_quality:oMe,ra_tooltip_ts:sMe,ra_tooltip_user:lMe,ra_tooltip_value:cMe,"ra_use seconds":"use seconds",ra_val:uMe,"ra_via internet":"via internet",ra_warning_every_minute:dMe,ra_warning_every_second:fMe,sc_cron:hMe,sc_date:pMe,sc_dates:mMe,sc_dow:vMe,sc_dows:gMe,sc_every:_Me,sc_everyN_dates:yMe,sc_everyN_dow:bMe,sc_everyN_dows:wMe,sc_everyN_hours:SMe,sc_everyN_minutes:xMe,sc_everyN_months:CMe,sc_everyN_seconds:TMe,sc_every_dates:kMe,sc_every_dow:EMe,sc_every_dows:DMe,sc_every_hours:MMe,sc_every_minutes:OMe,sc_every_months:$Me,sc_every_seconds:AMe,sc_from:PMe,sc_hours:IMe,sc_interval:RMe,sc_intervalBetween:LMe,sc_invalid_cron:NMe,sc_minutes:FMe,sc_months:zMe,sc_once:BMe,sc_period:jMe,sc_seconds:WMe,sc_simple:HMe,sc_specific:UMe,sc_specific_dates:YMe,sc_specific_dow:VMe,sc_specific_dows:GMe,sc_specific_hours:qMe,sc_specific_minutes:XMe,sc_specific_months:JMe,sc_specific_seconds:ZMe,sc_time:KMe,sc_to:QMe,sc_wizard:eOe,sch_all:tOe,sch_astroDay:rOe,sch_astroNight:nOe,sch_astro_dawn:aOe,sch_astro_dusk:iOe,sch_astro_goldenHour:oOe,sch_astro_goldenHourEnd:sOe,sch_astro_nadir:lOe,sch_astro_nauticalDawn:cOe,sch_astro_nauticalDusk:uOe,sch_astro_night:dOe,sch_astro_nightEnd:fOe,sch_astro_solarNoon:hOe,sch_astro_sunrise:pOe,sch_astro_sunriseEnd:mOe,sch_astro_sunset:vOe,sch_astro_sunsetStart:gOe,sch_at:_Oe,sch_desc_atTime:yOe,sch_desc_everyDay:bOe,sch_desc_everyHour:wOe,sch_desc_everyMinute:SOe,sch_desc_everyMonth:xOe,sch_desc_everyNDay:COe,sch_desc_everyNHours:TOe,sch_desc_everyNMinutes:kOe,sch_desc_everyNMonths:EOe,sch_desc_everyNWeeks:DOe,sch_desc_everyNYears:MOe,sch_desc_everyWeek:OOe,sch_desc_everyYear:$Oe,sch_desc_intervalFromTo:AOe,sch_desc_never:POe,sch_desc_onDate:IOe,sch_desc_onDates:ROe,sch_desc_onEveryDate:LOe,sch_desc_onMonth:NOe,sch_desc_onMonths:FOe,sch_desc_onWeekday:zOe,sch_desc_onWeekdays:BOe,sch_desc_onWeekends:jOe,sch_desc_onWorkdays:WOe,sch_desc_onceInPast:HOe,sch_desc_once_on:UOe,sch_desc_validFrom:YOe,sch_desc_validFromTo:VOe,sch_desc_validTo:GOe,sch_every:qOe,sch_exactTime:XOe,sch_from:JOe,sch_fromTo:ZOe,sch_intervalTime:KOe,sch_invert:QOe,sch_no_one:e$e,sch_on:t$e,sch_period:r$e,sch_periodDaily:n$e,sch_periodDates:a$e,sch_periodDay:i$e,sch_periodEvery:o$e,sch_periodEveryDay:s$e,sch_periodEveryMonth:l$e,sch_periodEveryWeek:c$e,sch_periodEveryYear:u$e,sch_periodHours:d$e,sch_periodMinutes:f$e,sch_periodMonth:h$e,sch_periodMonthly:p$e,sch_periodOnce:m$e,sch_periodSpecificMonths:v$e,sch_periodWeek:g$e,sch_periodWeekdays:_$e,sch_periodWeekend:y$e,sch_periodWeekly:b$e,sch_periodWorkdays:w$e,sch_periodYear:S$e,sch_periodYearly:x$e,sch_specificTime:C$e,sch_time:T$e,sch_to:k$e,sch_valid:E$e,sch_validFrom:D$e,sch_validTo:M$e,sch_wholeDay:O$e,sch_yearEveryMonth:$$e},P$e="Anhängen",I$e="Abbrechen",R$e="Kategorien",L$e="Geprüft",N$e="Löschen",F$e="Schließen",z$e="Kommerziell",B$e="Konfigurieren",j$e="Verbunden",W$e="Kopiert",H$e="Erstellen",U$e="Ernte",Y$e="Entf",V$e="Löschen",G$e="Verwerfen",q$e="Getrennt",X$e="Fehler",J$e="Filter",Z$e="Freitag",K$e="Breite",Q$e="Längengrad",eAe="Meldung",tAe="Montag",rAe="Name",nAe="Objekte",aAe="OK",iAe="Produkt",oAe="Wiederholen",sAe="Ersetzen",lAe="Anfang",cAe="Samstag",uAe="Speichern",dAe="Ausgewählt",fAe="Zustände",hAe="Sonntag",pAe="Donnerstag",mAe="Zeitstempel",vAe="Dienstag",gAe="Aktualisieren",_Ae="Gültig bis",yAe="Wert",bAe="Ausführung",wAe="Mittwoch",SAe="Breite",xAe="Ja",CAe="unterschiedlich",TAe="Jeder kann Objekt lesen",kAe="Jeder kann Zustand lesen",EAe="Jeder kann ein Objekt schreiben",DAe="Jeder kann Zustand schreiben",MAe="Gruppe kann Objekt lesen",OAe="Gruppe kann Status lesen",$Ae="Gruppe kann Objekt schreiben",AAe="Gruppe kann Status schreiben",PAe="Besitzer kann Objekt lesen",IAe="Besitzer kann Zustand lesen",RAe="Besitzer kann Objekt schreiben",LAe="Besitzer kann Zustand schreiben",NAe="Tasten",FAe="Geändert von",zAe="Schließen",BAe="Booleschen Zustand erstellen",jAe="Kanal erstellen",WAe="Gerät erstellen",HAe="Nummern-Zustand erstellen",UAe="Zustand erstellen",YAe="String-Zustand erstellen",VAe="T.",GAe="Fr",qAe="Mo",XAe="Sa",JAe="So",ZAe="Do",KAe="Di",QAe="Mi",ePe="Expertenmodus",tPe="Alle Dateien",rPe="Audio",nPe="Code/JSON",aPe="Bilder",iPe="Text",oPe="Video",sPe="Einstellungen",lPe="ohne",cPe="Funktion",uPe="ID",dPe="Name",fPe="Rolle",hPe="Raum",pPe="Typ",mPe="Ungültige Einstellungen",vPe="Letzte Änderung",gPe="örtlich",_Pe="Apr",yPe="Aug",bPe="Dez",wPe="Feb",SPe="Jan",xPe="Jul",CPe="Jun",TPe="Mai",kPe="Mär",EPe="Nov",DPe="Okt",MPe="Sep",OPe="Apr",$Pe="Aug",APe="Dez",PPe="Feb",IPe="Jan",RPe="Jul",LPe="Jun",NPe="Mai",FPe="Mär",zPe="Nov",BPe="Okt",jPe="Sep",WPe="kein",HPe="Objekt geändert von",UPe="Objekt zuletzt geändert um",YPe="Einstellungen von anderen Adaptern %s",VPe="Qualitätscode",GPe="wiederholen",qPe='Um einen Ordner auszuwählen, halten Sie einfach die Taste "Shift" gedrückt, indem Sie auf den Ordner klicken.',XPe="Zustand geändert durch",JPe="Objekt geändert von",ZPe="Zeitstempel",KPe="Bestätigt",QPe="Kommentar",eIe="Statuswert kopieren",tIe="Benutzerdefinierte Einstellungen",rIe="Objekt löschen",nIe="Objekt bearbeiten",aIe="Statuswert bearbeiten",iIe="Von",oIe="Zuletzt geändert",sIe="Qualität",lIe="Zeitstempel",cIe="Benutzer",uIe="Wert",dIe="Wert",fIe="Achtung: Der CRON-Job wird im angegebenen Zeitraum jede Minute ausgeführt!",hIe="Achtung: Der CRON-Job wird im angegebenen Zeitraum jede Sekunde ausgeführt!",pIe="CRON",mIe="Datum",vIe="Tage",gIe="Tag",_Ie="Wochentage",yIe="Jeden",bIe="alle N Tage",wIe="jeden x-ten Tag der Woche",SIe="alle N Wochentage",xIe="alle N Stunden",CIe="alle N Minuten",TIe="alle N Monate",kIe="alle N Sekunden",EIe="jeden Tag",DIe="jeden Tag der Woche",MIe="jeden Tag der Woche",OIe="jede Stunde",$Ie="jede Minute",AIe="jeden Monat",PIe="jede Sekunde",IIe="Von",RIe="Stunden",LIe="Intervall",NIe="Intervall zwischen",FIe="Ungültiger CRON",zIe="Minuten",BIe="Monate",jIe="Einmal",WIe="Zeitraum",HIe="Sekunden",UIe="Einfach",YIe="Bestimmte Zeit",VIe="bestimmte Tage",GIe="bestimmte(r) Tag(e) der Woche",qIe="bestimmten Wochentag",XIe="bestimmte Stunden",JIe="bestimmte Minuten",ZIe="bestimmte Monate",KIe="bestimmte Sekunden",QIe="Zeit",eRe="Bis",tRe="Wizard",rRe="alle",nRe="Astronomischer Tag",aRe="Astronomische Nacht",iRe="Morgendämmerung",oRe="Abenddämmerung",sRe="Goldene Stunde",lRe="Goldene Stundenende",cRe="Nadir",uRe="Nautische Morgendämmerung",dRe="Nautische Abenddämmerung",fRe="Nacht",hRe="Nachtende",pRe="Sonnenmittag",mRe="Sonnenaufgang",vRe="Sonnenaufgangende",gRe="Sonnenuntergang",_Re="Sonnenuntergangstart",yRe="am",bRe="um %s",wRe="jeden Tag",SRe="jede Stunde",xRe="jede Minute",CRe="jeden Monat",TRe="jeden %s Tag",kRe="alle %s Stunden",ERe="alle %s Minuten",DRe="alle %s Monate",MRe="alle %s Wochen",ORe="alle %s Jahre",$Re="jede Woche",ARe="jedes Jahr",PRe="von %s bis %s",IRe="noch nie",RRe="am %s von %s",LRe="am %s und %s von",NRe="an jedem Datum von",FRe="%s",zRe="%s und %s",BRe="auf %s",jRe="auf %s und %s",WRe="an Wochenenden",HRe="an Werktagen",URe="wird nicht mehr ausgeführt, weil der Start in der Vergangenheit ist",YRe="auf %s",VRe="von %s",GRe="Ausführen von bis",qRe="bis %s",XRe="jeden",JRe="Bestimmte Zeit",ZRe="von",KRe="Von bis",QRe="Zeitintervall",eLe="umkehren",tLe="keiner",rLe="am",nLe="Zeitraum",aLe="Täglich",iLe="Daten",oLe="Tag",sLe="Jeden",lLe="Jeden Tag",cLe="Jeden Monat",uLe="Jede Woche",dLe="Jedes Jahr",fLe="Stunden",hLe="Minuten",pLe="Monat",mLe="Monatlich",vLe="Einmal",gLe="Bestimmte Monate",_Le="Woche",yLe="Wochentage",bLe="Wochenende",wLe="Wöchentlich",SLe="Arbeitstage",xLe="Jahr",CLe="Jährlich",TLe="Bestimmte Zeit",kLe="Zeit",ELe="zu",DLe="Gültigkeit",MLe="von",OLe="bis",$Le="Ganzer Tag",ALe="jeden Monat",PLe={"ra_%s links from aliases":"%s Links von Aliasen","ra_%s object(s) processed":"%s Objekt(e) verarbeitet","ra_%s was imported":"%s wurde importiert","ra_Accept license":"Lizenz akzeptieren","ra_Add new child object to selected parent":"Dem ausgewählten übergeordneten Objekt ein neues untergeordnetes Objekt hinzufügen","ra_Add objects tree from JSON file":"Objektbaum aus JSON-Datei hinzufügen","ra_Add row":"Zeile hinzufügen","ra_Advanced options":"Erweiterte Optionen","ra_All items are filtered out":"Alle Elemente sind herausgefiltert","ra_All objects":"Alle Objekte",ra_Append:P$e,"ra_Append %s entries or replace existing?":"%s Einträge anhängen oder vorhandene ersetzen?","ra_Append or replace?":"Anhängen oder ersetzen?","ra_Are you sure?":"Bist du sicher?","ra_Auto (no custom columns)":"Auto (keine benutzerdefinierten Spalten)","ra_Back to %s":"Zurück zu %s","ra_Background image":"Hintergrundbild",ra_Cancel:I$e,"ra_Cannot add items with set filter":"Elemente mit festgelegtem Filter können nicht hinzugefügt werden","ra_Cannot decode license":"Lizenz kann nicht entschlüsselt werden","ra_Cannot determine position: System settings are empty and GPS detection is disabled in browser":"Position kann nicht bestimmt werden: Die Systemeinstellungen sind leer und die GPS-Erkennung ist im Browser deaktiviert",'ra_Cannot find "%s"':'Kann "%s" nicht finden','ra_Cannot read "%s"':'"%s" kann nicht gelesen werden',"ra_Cannot read licenses: %s":"Lizenzen können nicht gelesen werden: %s","ra_Cannot retrieve options, as instance is offline":"Optionen können nicht abgerufen werden, da die Instanz offline ist","ra_Cannot update attribute, because not found in the object":"Attribut kann nicht aktualisiert werden, da es nicht im Objekt gefunden wurde","ra_Cannot upload":"Kann nicht hochladen",ra_Categories:R$e,"ra_Chained certificate":"Chained Zertifikat","ra_Change color theme":"Farbthema ändern","ra_Changed from":"Geändert von","ra_Channel → State":"Kanal → Zustand","ra_Check license":"Lizenz prüfen",ra_Checked:L$e,ra_Clear:N$e,"ra_Clear filter":"Filter löschen","ra_Clear icon":"Symbol löschen","ra_Clone current row":"Aktuelle Zeile klonen",ra_Close:F$e,"ra_Collapse all nodes":"Alle Knoten zuklappen","ra_Collapse one step node":"Eine Ebene zuklappen",ra_Commercial:z$e,ra_Configure:B$e,"ra_Configure visible columns":"Spalten Konfigurieren","ra_Confirm deletion of %s":"Das Löschen von %s bestätigen",ra_Connected:j$e,ra_Copied:W$e,"ra_Copied %s":'"%s" kopiert',"ra_Copy content":"Inhalte kopieren",ra_Create:H$e,"ra_Create alias":"Alias erstellen","ra_Create folder":"Ordner erstellen","ra_Create new folder in %s":'Neuen Ordner in "%s" erstellen',ra_Crop:U$e,"ra_Define CRON...":"Definieren Sie CRON ...","ra_Define functions":"Funktionen definieren","ra_Define rooms":"Räume definieren","ra_Define schedule":"Zeitplan definieren","ra_Define schedule...":"Zeitplan definieren ...",ra_Del:Y$e,ra_Delete:V$e,"ra_Delete (no confirm for 5 mins)":"Löschen (keine Bestätigung für 5 Minuten)","ra_Delete current row":"Aktuelle Zeile löschen","ra_Deselect all":"Alles abwählen","ra_Device → Channel → State":"Gerät → Kanal → Zustand",ra_Discard:G$e,ra_Disconnected:q$e,"ra_Do not export values of states":"Keine Zustandswerte exportieren","ra_Do not use let's encrypt":"Let's encrypt nicht verwenden","ra_Double click to reset table layout":"Doppelklicken, um das Tabellenlayout zurückzusetzen","ra_Drag 'n' drop some files here, or click to select files":"Die Datei hierher ziehen und ablegen, oder klicken, um die Datei auszuwählen","ra_Drop file here":"Datei hier ablegen","ra_Drop the files here...":"Datei hier ablegen...","ra_Duplicate name":"Doppelter Name","ra_Edit ACL":"ACL bearbeiten","ra_Edit alias":"Alias bearbeiten","ra_Edit custom config":"Bearbeite Benutzerdefinierte Konfiguration","ra_Edit function":"Funktion bearbeiten","ra_Edit object field":"Objektfeld bearbeiten","ra_Edit role":"Rolle bearbeiten","ra_Edit room":"Raum bearbeiten","ra_Edit value":"Wert bearbeiten",ra_Error:X$e,"ra_Expand all nodes":"Alle Knoten aufklappen","ra_Expand one step node":"Eine Ebene aufklappen","ra_Export data to %s file":"Daten in %s-Datei exportieren","ra_Failed to open JSON File":"Fehler beim Öffnen der JSON-Datei","ra_Fallback custom certificates":"Benutzerdefinierte Fallback-Zertifikate","ra_File is too big. Max %sk allowed. Try use SVG.":"Datei ist zu groß. Max %sk erlaubt. Versuchen Sie, SVG zu verwenden.",ra_Filter:J$e,"ra_Filter files":"Dateien filtern","ra_Folder name":"Ordnernamen","ra_Folder → Channel → State":"Ordner → Kanal → Zustand","ra_Folder → Device → Channel → State":"Ordner → Gerät → Kanal → Zustand","ra_Folder → State":"Ordner → Zustand","ra_Folders always first":"Ordner immer zuerst",ra_Friday:Z$e,"ra_Good luck":"Viel Glück","ra_Hide empty folders":"Leere Ordner ausblenden","ra_If no file will be created in the folder, it will disappear after the browser closed":"Wenn im Ordner keine Datei erstellt wird, verschwindet dieser nach dem Schließen des Browsers","ra_Import data from %s file":"Daten aus %s-Datei importieren","ra_Import from %s":"Von %s importieren","ra_Instance %s is alive":"Instanz %s ist aktiv","ra_Instance %s is not alive":"Instanz %s ist nicht aktiv","ra_Instance is not alive":"Instanz ist nicht am Leben","ra_Invalid CRON":"Ungültiger CRON","ra_Invalid JSON":"Ungültiges JSON","ra_Invalid answer from server":"Ungültige Antwort vom Server","ra_Invalid parent folder!":"Ungültiger übergeordneter Ordner!","ra_Invalid structure":"Ungültige Struktur","ra_JSON editor":"JSON-Editor","ra_Last change":"Letzte Änderung",ra_Latitude:K$e,"ra_License %s":"Lizenz %s","ra_License agreement":"Lizenzvereinbarung","ra_License does not exist":"Lizenz existiert nicht","ra_License expired on %s":"Lizenz am %s abgelaufen",'ra_License for other product "%s"':"Lizenz für anderes Produkt „%s“","ra_License is for version %s, but required version is %s.":"Lizenz ist für Version %s, aber erforderliche Version ist %s.","ra_License must be converted":"Die Lizenz muss auf eine neuere Version konvertiert werden. Sie können dies in Ihrem iobroker.net-Profil tun.","ra_License not found in license manager. Do you want to read licenses from iobroker.net?":"Lizenz im Lizenzmanager nicht gefunden. Möchten Sie Lizenzen von iobroker.net aktualisieren?","ra_Listen on all IPs":"Zugriff von allen IPs zulassen","ra_Load configuration from file":"Konfiguration aus Datei laden",ra_Longitude:Q$e,'ra_May not trigger "updateLicenses"':"Löst möglicherweise nicht „updateLicenses“ aus",ra_Message:eAe,ra_Monday:tAe,"ra_Move down":"Nach unten","ra_Move up":"Nach oben",ra_Name:rAe,"ra_No data found in file":"Keine Daten in der Datei gefunden","ra_No one license found in license manager":"Im Lizenzmanager wurde keine Lizenz gefunden","ra_No response from the backend":"Keine Antwort vom Backend",'ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".':'Nicht-Experten dürfen neue Objekte nur in "0_userdata.0" oder "alias.0" erstellen.',"ra_Not a number":"Keine Nummer",ra_Objects:nAe,ra_Ok:aAe,"ra_On weekdays":"An Wochentagen","ra_Only following structures of objects are available:":"Es stehen nur folgende Objektstrukturen zur Verfügung:","ra_Only selected":"Nur ausgewählt","ra_Owner group":"Besitzergruppe","ra_Owner user":"Besitzer Benutzer","ra_Passwords are not equal!":"Passwörter sind nicht gleich!","ra_Place your files here or click here to open the browse dialog":"Die Dateien hier platzieren oder hier klicken, um den Suchdialog zu öffnen","ra_Please confirm":"Bitte bestätigen","ra_Please create license":"Bitte erstellen Sie eine Lizenz","ra_Please enter the license":"Bitte die Lizenz eingeben","ra_Please select file...":"Bitte Datei auswählen...","ra_Please select object ID...":"Bitte Objekt-ID auswählen...","ra_Port could be used by %s":"Port könnte von %s verwendet werden","ra_Port is already used by %s":"Port wird bereits von %s verwendet","ra_Private certificate":"Privates Zertifikat",ra_Product:iAe,"ra_Public certificate":"Öffentliches Zertifikat","ra_Quality code":"Qualität","ra_Refresh tree":"Baum aktualisieren","ra_Reload files":"Dateien neu laden",ra_Repeat:oAe,ra_Replace:sAe,"ra_Request timed out":"Zeitüberschreitung der Anforderung","ra_Restrict to folder":"Auf Ordner beschränken",ra_Root:lAe,ra_Saturday:cAe,ra_Save:uAe,"ra_Save and close":"Speichern und schließen","ra_Save configuration to file":"Konfiguration in Datei speichern","ra_Save objects tree as JSON file":"Objektbaum als JSON-Datei speichern","ra_Select all":"Alle auswählen","ra_Select color":"Wähle Farbe","ra_Select predefined icon":"Vordefiniertes Symbol auswählen","ra_Select type of export":"Die Art des Exports auswählen ",ra_Selected:dAe,"ra_Selected %s object(s)":"Ausgewählt %s Objekt(en)","ra_Serial number (UUID)":"Seriennummer (UUID)",'ra_Serial number (UUID) "%s" in license is for other device.':"Seriennummer (UUID) „%s“ in der Lizenz gilt für ein anderes Gerät.","ra_Show all folders":"Alle Ordner anzeigen","ra_Show lines between rows":"Linien zwischen Zeilen anzeigen","ra_Show/Hide object descriptions":"Objektbeschreibungen ein-/ausblenden","ra_Show/hide filter input":"Filtereingabe ein-/ausblenden","ra_Some data are not stored. Discard?":"Einige Daten werden nicht gespeichert. Verwerfen?",ra_States:fAe,"ra_Suitable license not found in license manager":"Passende Lizenz im Lizenzmanager nicht gefunden",ra_Sunday:hAe,"ra_Suppress question for next %s minutes":"Frage für die nächsten %s Minuten unterdrücken","ra_System language":"Systemsprache","ra_Take browser position":"Position vom Browser einnehmen","ra_Take position from system settings":"Position aus den Systemeinstellungen übernehmen",'ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").':'Die Experten können Objekte überall erstellen, außer auf der zweiten Ebene (z. B. "vis.0" oder "javascript.0").',"ra_The page you are looking for was not found":"Die gesuchte Seite wurde nicht gefunden","ra_The schedule will be executed every minute. Are you sure?":"Der Zeitplan wird jede Minute ausgeführt. Sind Sie sicher?","ra_The schedule will be executed every second. Are you sure?":"Der Zeitplan wird jede Sekunde ausgeführt. Sind Sie sicher?",ra_Thursday:pAe,ra_Timestamp:mAe,"ra_Toggle expert mode":"Expertenmodus umschalten","ra_Toggle the states view":"Statusansicht umschalten","ra_Toggle view mode":"Ansichtsmodus umschalten","ra_Too big":"Zu groß","ra_Too small":"Zu klein","ra_Transparent dialog":"Transparenter Dialog",ra_Tuesday:vAe,"ra_Unknown error":"Unbekannter Fehler","ra_Unknown error!":"Unbekannter Fehler!",ra_Update:gAe,"ra_Upload file":"Datei hochladen","ra_Use all available let's encrypt certificates":"Alle verfügbaren Zertifikate von Let's encrypt benutzen","ra_Use iobroker.acme adapter for letsencrypt certificates":"ioBroker.acme-Adapter für letsencrypt-Zertifikate verwenden","ra_Use system settings for position":"Systemeinstellungen für die Position verwenden","ra_Used system settings":"Systemeinstellungen","ra_User files":"Benutzerdaten",ra_ValidTill:_Ae,ra_Value:yAe,ra_Version:bAe,"ra_View file":"Datei ansehen","ra_View: %s":"Anschauen: %s",ra_Wednesday:wAe,ra_Width:SAe,ra_Yes:xAe,"ra_You can export all objects or just the selected branch.":"Sie können alle Objekte oder nur den ausgewählten Zweig exportieren.","ra_You can filter entries by entering here some text":"Sie können Einträge filtern, indem Sie hier Text eingeben",ra___different__:CAe,ra_aclEveryone_read_object:TAe,ra_aclEveryone_read_state:kAe,ra_aclEveryone_write_object:EAe,ra_aclEveryone_write_state:DAe,ra_aclGroup_read_object:MAe,ra_aclGroup_read_state:OAe,ra_aclGroup_write_object:$Ae,ra_aclGroup_write_state:AAe,ra_aclOwner_read_object:PAe,ra_aclOwner_read_state:IAe,ra_aclOwner_write_object:RAe,ra_aclOwner_write_state:LAe,ra_buttons:NAe,ra_changedFrom:FAe,ra_close:zAe,ra_create_boolean_state:BAe,ra_create_channel:jAe,ra_create_device:WAe,ra_create_number_state:HAe,ra_create_state:UAe,ra_create_string_state:YAe,ra_daysShortText:VAe,ra_dow_Fr:GAe,ra_dow_Mo:qAe,ra_dow_Sa:XAe,ra_dow_Su:JAe,ra_dow_Th:ZAe,ra_dow_Tu:KAe,ra_dow_We:QAe,ra_expertMode:ePe,ra_fileType_all:tPe,ra_fileType_audio:rPe,ra_fileType_code:nPe,ra_fileType_images:aPe,ra_fileType_txt:iPe,ra_fileType_video:oPe,"ra_fileType_video,":"Video",ra_filter_customs:sPe,ra_filter_customs_without:lPe,ra_filter_func:cPe,ra_filter_id:uPe,ra_filter_name:dPe,ra_filter_role:fPe,ra_filter_room:hPe,ra_filter_type:pPe,"ra_import data from %s file":"Daten aus %s-Datei importieren",ra_invalidConfig:mPe,ra_lastChange:vPe,ra_locally:gPe,ra_month_Apr:_Pe,ra_month_Aug:yPe,ra_month_Dec:bPe,ra_month_Feb:wPe,ra_month_Jan:SPe,ra_month_Jul:xPe,ra_month_Jun:CPe,ra_month_Mai:TPe,ra_month_Mar:kPe,ra_month_Nov:EPe,ra_month_Oct:DPe,ra_month_Sep:MPe,ra_months_Apr:OPe,ra_months_Aug:$Pe,ra_months_Dec:APe,ra_months_Feb:PPe,ra_months_Jan:IPe,ra_months_Jul:RPe,ra_months_Jun:LPe,ra_months_Mai:NPe,ra_months_Mar:FPe,ra_months_Nov:zPe,ra_months_Oct:BPe,ra_months_Sep:jPe,ra_none:WPe,ra_object_changed_by:HPe,ra_object_changed_by_user:UPe,ra_otherConfig:YPe,ra_qualityCode:VPe,ra_repeat:GPe,ra_select_folder_hint:qPe,ra_state_changed_by:XPe,ra_state_changed_from:JPe,ra_timestamp:ZPe,ra_tooltip_ack:KPe,ra_tooltip_comment:QPe,ra_tooltip_copyState:eIe,ra_tooltip_customConfig:tIe,ra_tooltip_deleteObject:rIe,ra_tooltip_editObject:nIe,ra_tooltip_editState:aIe,ra_tooltip_from:iIe,ra_tooltip_lc:oIe,ra_tooltip_quality:sIe,ra_tooltip_ts:lIe,ra_tooltip_user:cIe,ra_tooltip_value:uIe,"ra_use seconds":"Sekunden benutzen",ra_val:dIe,"ra_via internet":"übers Internet",ra_warning_every_minute:fIe,ra_warning_every_second:hIe,sc_cron:pIe,sc_date:mIe,sc_dates:vIe,sc_dow:gIe,sc_dows:_Ie,sc_every:yIe,sc_everyN_dates:bIe,sc_everyN_dow:wIe,sc_everyN_dows:SIe,sc_everyN_hours:xIe,sc_everyN_minutes:CIe,sc_everyN_months:TIe,sc_everyN_seconds:kIe,sc_every_dates:EIe,sc_every_dow:DIe,sc_every_dows:MIe,sc_every_hours:OIe,sc_every_minutes:$Ie,sc_every_months:AIe,sc_every_seconds:PIe,sc_from:IIe,sc_hours:RIe,sc_interval:LIe,sc_intervalBetween:NIe,sc_invalid_cron:FIe,sc_minutes:zIe,sc_months:BIe,sc_once:jIe,sc_period:WIe,sc_seconds:HIe,sc_simple:UIe,sc_specific:YIe,sc_specific_dates:VIe,sc_specific_dow:GIe,sc_specific_dows:qIe,sc_specific_hours:XIe,sc_specific_minutes:JIe,sc_specific_months:ZIe,sc_specific_seconds:KIe,sc_time:QIe,sc_to:eRe,sc_wizard:tRe,sch_all:rRe,sch_astroDay:nRe,sch_astroNight:aRe,sch_astro_dawn:iRe,sch_astro_dusk:oRe,sch_astro_goldenHour:sRe,sch_astro_goldenHourEnd:lRe,sch_astro_nadir:cRe,sch_astro_nauticalDawn:uRe,sch_astro_nauticalDusk:dRe,sch_astro_night:fRe,sch_astro_nightEnd:hRe,sch_astro_solarNoon:pRe,sch_astro_sunrise:mRe,sch_astro_sunriseEnd:vRe,sch_astro_sunset:gRe,sch_astro_sunsetStart:_Re,sch_at:yRe,sch_desc_atTime:bRe,sch_desc_everyDay:wRe,sch_desc_everyHour:SRe,sch_desc_everyMinute:xRe,sch_desc_everyMonth:CRe,sch_desc_everyNDay:TRe,sch_desc_everyNHours:kRe,sch_desc_everyNMinutes:ERe,sch_desc_everyNMonths:DRe,sch_desc_everyNWeeks:MRe,sch_desc_everyNYears:ORe,sch_desc_everyWeek:$Re,sch_desc_everyYear:ARe,sch_desc_intervalFromTo:PRe,sch_desc_never:IRe,sch_desc_onDate:RRe,sch_desc_onDates:LRe,sch_desc_onEveryDate:NRe,sch_desc_onMonth:FRe,sch_desc_onMonths:zRe,sch_desc_onWeekday:BRe,sch_desc_onWeekdays:jRe,sch_desc_onWeekends:WRe,sch_desc_onWorkdays:HRe,sch_desc_onceInPast:URe,sch_desc_once_on:YRe,sch_desc_validFrom:VRe,sch_desc_validFromTo:GRe,sch_desc_validTo:qRe,sch_every:XRe,sch_exactTime:JRe,sch_from:ZRe,sch_fromTo:KRe,sch_intervalTime:QRe,sch_invert:eLe,sch_no_one:tLe,sch_on:rLe,sch_period:nLe,sch_periodDaily:aLe,sch_periodDates:iLe,sch_periodDay:oLe,sch_periodEvery:sLe,sch_periodEveryDay:lLe,sch_periodEveryMonth:cLe,sch_periodEveryWeek:uLe,sch_periodEveryYear:dLe,sch_periodHours:fLe,sch_periodMinutes:hLe,sch_periodMonth:pLe,sch_periodMonthly:mLe,sch_periodOnce:vLe,sch_periodSpecificMonths:gLe,sch_periodWeek:_Le,sch_periodWeekdays:yLe,sch_periodWeekend:bLe,sch_periodWeekly:wLe,sch_periodWorkdays:SLe,sch_periodYear:xLe,sch_periodYearly:CLe,sch_specificTime:TLe,sch_time:kLe,sch_to:ELe,sch_valid:DLe,sch_validFrom:MLe,sch_validTo:OLe,sch_wholeDay:$Le,sch_yearEveryMonth:ALe},ILe="Добавить",RLe="Отмена",LLe="Категории",NLe="Проверено",FLe="Удалить",zLe="Закрыть",BLe="Коммерческая",jLe="Настроить",WLe="Соединение установлено",HLe="скопировано",ULe="Создать",YLe="Обрезать",VLe="Delete",GLe="Удалить",qLe="Отказаться",XLe="Отключено",JLe="Ошибка",ZLe="Фильтр",KLe="Пятница",QLe="Широта",eNe="Долгота",tNe="Сообщение",rNe="Понедельник",nNe="Имя",aNe="Объекты",iNe="Ok",oNe="Продукт",sNe="Повторение",lNe="Заменять",cNe="Начало",uNe="Суббота",dNe="Сохранить",fNe="выбранный",hNe="Состояния",pNe="Воскресенье",mNe="Четверг",vNe="Времени",gNe="Вторник",_Ne="Обновить",yNe="Годен до",bNe="Значение",wNe="Версия",SNe="Среда",xNe="Ширина",CNe="Да",TNe="разное",kNe="Каждый может читать объект",ENe="Каждый может читать состояние",DNe="Каждый может написать объект",MNe="Каждый может написать состояние",ONe="Группа может читать объект",$Ne="Группа может читать состояние",ANe="Группа может писать объект",PNe="Группа может записывать состояние",INe="Владелец может читать объект",RNe="Владелец может читать состояние",LNe="Владелец может писать объект",NNe="Владелец может писать состояние",FNe="Кнопки",zNe="Изменено с",BNe="Закрыть",jNe="Создать логическое состояние",WNe="Создать канал",HNe="Создать устройство",UNe="Создать состояние номера",YNe="Создать состояние",VNe="Создать состояние строки",GNe="д.",qNe="Пт",XNe="Пн",JNe="Сб",ZNe="Вс",KNe="Чт",QNe="Вт",e5e="Ср",t5e="Экспертный режим",r5e="Все файлы",n5e="Аудио",a5e="Код/JSON",i5e="Картинки",o5e="Текст",s5e="видео",l5e="настройки",c5e="без",u5e="функция",d5e="ID",f5e="Имя",h5e="роль",p5e="комната",m5e="Тип",v5e="Неверные настройки",g5e="Последнее изменение",_5e="локально",y5e="Апр",b5e="Авг",w5e="Дек",S5e="Фев",x5e="Янв",C5e="Июл",T5e="Июн",k5e="Май",E5e="Мрт",D5e="Ноя",M5e="Окт",O5e="Сен",$5e="Апр",A5e="Авг",P5e="Дек",I5e="Фев",R5e="Янв",L5e="Июнь",N5e="Июль",F5e="Май",z5e="Март",B5e="Ноя",j5e="Окт",W5e="Сен",H5e="ничего",U5e="Объект изменен",Y5e="Последний раз объект изменен в",V5e="Настройки из другого адаптера %s",G5e="Код качества",q5e="повтор",X5e="Чтобы выбрать папку, просто удерживайте клавишу «Shift», щелкнув папку.",J5e="Состояние изменено",Z5e="Объект изменен с",K5e="Отметка времени",Q5e="Подтверждено",e3e="Комментарий",t3e="Скопируйте значение состояния",r3e="Пользовательские настройки",n3e="Удалить объект",a3e="Редактировать объект",i3e="Изменить значение состояния",o3e="От",s3e="Последнее изменение",l3e="Качество",c3e="Отметка времени",u3e="пользователь",d3e="Значение",f3e="Значение",h3e="Внимание: задание CRON будет запускаться каждую минуту в течение указанного периода!",p3e="Внимание: задание CRON будет выполняться каждую секунду в течение указанного периода!",m3e="CRON",v3e="Дата",g3e="Даты",_3e="День",y3e="День недели",b3e="каждый(ую/ые)",w3e="каждый N день",S3e="каждый N-й день недели",x3e="каждый N день недели",C3e="каждые N часов",T3e="каждые N минут",k3e="каждые N месяцев",E3e="каждые N секунд",D3e="каждый день",M3e="Каждый день недели",O3e="каждый день недели",$3e="каждый час",A3e="каждую минуту",P3e="каждый месяц",I3e="каждую секунду",R3e="От",L3e="часы",N3e="Интервал",F3e="Интервал между",z3e="Неверный CRON",B3e="минуты",j3e="Месяцы",W3e="один раз",H3e="Период",U3e="секунды",Y3e="Просто",V3e="Конкретное время",G3e="конкретные даты",q3e="конкретный день(а) недели",X3e="конкретный день недели",J3e="конкретные часы",Z3e="конкретные минуты",K3e="конкретные месяцы",Q3e="конкретные секунды",e4e="Время",t4e="До",r4e="Форма",n4e="все",a4e="днём",i4e="ночью",o4e="Рассвет",s4e="Сумерки",l4e="Золотой час",c4e="Конец золотого часа",u4e="Надир",d4e="Морской рассвет",f4e="Морские сумерки",h4e="Ночь",p4e="Конец ночи",m4e="Солнечный полдень",v4e="Восход",g4e="Восход солнца",_4e="Заход солнца",y4e="Начало заката",b4e="дата",w4e="в %s",S4e="каждый день",x4e="каждый час",C4e="каждую минуту",T4e="каждый месяц",k4e="каждый %s день",E4e="каждый %s часов",D4e="каждые %s минут",M4e="каждые %s месяцев",O4e="каждые %s недель",$4e="каждые %s лет",A4e="каждую неделю",P4e="каждый год",I4e="от %s до %s",R4e="никогда",L4e="%s %s",N4e="%s и %s",F4e="в каждый день",z4e="%s",B4e="%s и %s",j4e="%s",W4e="%s и %s",H4e="на выходных",U4e="в рабочие дни",Y4e="не будет больше выполняться, потому что начало в прошлом",V4e="%s",G4e="%s",q4e="Выполнить с",X4e="%s",J4e="каждый",Z4e="Конкретное время",K4e="от",Q4e="От и до",eFe="Интервал времени",tFe="инвертировать",rFe="никакой",nFe="на",aFe="период",iFe="Ежедневно",oFe="Даты",sFe="День",lFe="каждый",cFe="Каждый день",uFe="Каждый месяц",dFe="Каждую неделю",fFe="Каждый год",hFe="часов",pFe="минут",mFe="месяц",vFe="ежемесячно",gFe="однажды",_Fe="Конкретные месяцы",yFe="Неделю",bFe="Будние дни",wFe="выходные",SFe="еженедельно",xFe="Рабочие дни",CFe="Год",TFe="каждый год",kFe="Конкретное время",EFe="Время",DFe="в",MFe="действительный",OFe="от",$Fe="в",AFe="Весь день",PFe="каждый месяц",IFe={"ra_%s links from aliases":"%s ссылок из псевдонимов","ra_%s object(s) processed":"Объектов обработано: %s","ra_%s was imported":"%s был импортирован","ra_Accept license":"Принять лицензию","ra_Add new child object to selected parent":"Добавить новый дочерний объект к выбранному родительскому объекту","ra_Add objects tree from JSON file":"Добавить дерево объектов из файла JSON","ra_Add row":"Добавить ряд","ra_Advanced options":"Расширенные настройки","ra_All items are filtered out":"Все элементы отфильтрованы","ra_All objects":"Все объекты",ra_Append:ILe,"ra_Append %s entries or replace existing?":"Добавить записи %s или заменить существующие?","ra_Append or replace?":"Дополнить или заменить?","ra_Are you sure?":"Вы уверены?","ra_Auto (no custom columns)":"Авто (без настраиваемых столбцов)","ra_Back to %s":"Вернуться к %s","ra_Background image":"Фоновая картинка",ra_Cancel:RLe,"ra_Cannot add items with set filter":"Невозможно добавить элементы с установленным фильтром","ra_Cannot decode license":"Не могу декодировать лицензию","ra_Cannot determine position: System settings are empty and GPS detection is disabled in browser":"Невозможно определить местоположение: системные настройки пусты, а обнаружение GPS отключено в браузере.",'ra_Cannot find "%s"':'Не могу найти "%s"','ra_Cannot read "%s"':'Не могу прочитать "%s"',"ra_Cannot read licenses: %s":"Невозможно прочитать лицензии: %s","ra_Cannot retrieve options, as instance is offline":"Невозможно получить параметры, так как экземпляр находится в автономном режиме.","ra_Cannot update attribute, because not found in the object":"Невозможно обновить атрибут, потому что он не найден в объекте","ra_Cannot upload":"Невозможно загрузить",ra_Categories:LLe,"ra_Chained certificate":"Chained сертификат","ra_Change color theme":"Изменить цветовую тему","ra_Changed from":"Изменено","ra_Channel → State":"Канал → Состояние","ra_Check license":"Проверить лицензию",ra_Checked:NLe,ra_Clear:FLe,"ra_Clear filter":"Очистить фильтр","ra_Clear icon":"Очистить значок","ra_Clone current row":"Клонировать текущую строку",ra_Close:zLe,"ra_Collapse all nodes":"Свернуть все узлы","ra_Collapse one step node":"Свернуть один уровень",ra_Commercial:BLe,ra_Configure:jLe,"ra_Configure visible columns":"Настроить видимые столбцы","ra_Confirm deletion of %s":"Подтвердите удаление %s",ra_Connected:WLe,ra_Copied:HLe,"ra_Copied %s":'Скопировано "%s"',"ra_Copy content":"Копировать содержимое",ra_Create:ULe,"ra_Create alias":"Создать псевдоним","ra_Create folder":"Создать папку","ra_Create new folder in %s":"Создать новую папку в %s",ra_Crop:YLe,"ra_Define CRON...":"Определите CRON...","ra_Define functions":"Задать функции","ra_Define rooms":"Задать комнаты","ra_Define schedule":"Задать расписание","ra_Define schedule...":"Определить расписание ...",ra_Del:VLe,ra_Delete:GLe,"ra_Delete (no confirm for 5 mins)":"Удалить (без подтверждения в течение 5 минут)","ra_Delete current row":"Удалить текущую строку","ra_Deselect all":"Убрать выбор везде","ra_Device → Channel → State":"Устройство → Канал → Состояние",ra_Discard:qLe,ra_Disconnected:XLe,"ra_Do not export values of states":"Не экспортировать значения состояний","ra_Do not use let's encrypt":"Не использовать Let’s Encrypt","ra_Double click to reset table layout":"Дважды щелкните, чтобы сбросить макет таблицы","ra_Drag 'n' drop some files here, or click to select files":"Перетащите сюда несколько файлов или щелкните, чтобы выбрать файлы","ra_Drop file here":"Перетащите файл сюда","ra_Drop the files here...":"Перетащите файл сюда ...","ra_Duplicate name":"Повторяющееся имя","ra_Edit ACL":"Изменить ACL-список","ra_Edit alias":"Изменить псевдоним","ra_Edit custom config":"Редактировать настраиваемую конфигурацию","ra_Edit function":"Изменить функцию","ra_Edit object field":"Поле редактирования объекта","ra_Edit role":"Изменить роль","ra_Edit room":"Редактировать комнату","ra_Edit value":"Изменить значение",ra_Error:JLe,"ra_Expand all nodes":"Развернуть все узлы","ra_Expand one step node":"Открыть один уровень","ra_Export data to %s file":"Экспорт данных в файл %s","ra_Failed to open JSON File":"Не удалось открыть файл JSON","ra_Fallback custom certificates":"Резервные пользовательские сертификаты","ra_File is too big. Max %sk allowed. Try use SVG.":"Файл слишком большой. Разрешено максимальное количество %sk. Попробуйте использовать SVG.",ra_Filter:ZLe,"ra_Filter files":"Фильтровать файлы","ra_Folder name":"Имя папки","ra_Folder → Channel → State":"Папка → Канал → Состояние","ra_Folder → Device → Channel → State":"Папка → Устройство → Канал → Состояние","ra_Folder → State":"Папка → Состояние","ra_Folders always first":"Папки всегда на первом месте",ra_Friday:KLe,"ra_Good luck":"Удачи","ra_Hide empty folders":"Скрыть пустые папки","ra_If no file will be created in the folder, it will disappear after the browser closed":"Если в папке не будет создан файл, он исчезнет после закрытия браузера.","ra_Import data from %s file":"Импорт данных из файла %s","ra_Import from %s":"Импорт из %s","ra_Instance %s is alive":"Экземпляр %s работает","ra_Instance %s is not alive":"Экземпляр %s не работает","ra_Instance is not alive":"Экземпляр не живой","ra_Invalid CRON":"Неверный CRON","ra_Invalid JSON":"Неверный JSON","ra_Invalid answer from server":"Неверный ответ от сервера","ra_Invalid parent folder!":"Неверная родительская папка!","ra_Invalid structure":"Неверная структура","ra_JSON editor":"Редактор JSON","ra_Last change":"Последнее изменение",ra_Latitude:QLe,"ra_License %s":"Лицензия %s","ra_License agreement":"Лицензионное соглашение","ra_License does not exist":"Лицензия не существует","ra_License expired on %s":"Срок действия лицензии истек %s",'ra_License for other product "%s"':'Лицензия на другой продукт "%s"',"ra_License is for version %s, but required version is %s.":"Лицензия предназначена для версии %s, но необходима версия %s.","ra_License must be converted":"Лицензия должна быть преобразована в более новую версию. Вы можете сделать это в своем профиле на iobroker.net.","ra_License not found in license manager. Do you want to read licenses from iobroker.net?":"Лицензия не найдена в диспетчере лицензий. Вы хотите обновить лицензии от iobroker.net?","ra_Listen on all IPs":"Слушать на всех IP","ra_Load configuration from file":"Загрузить конфигурацию из файла",ra_Longitude:eNe,'ra_May not trigger "updateLicenses"':"Не может запускать «updateLicenses»",ra_Message:tNe,ra_Monday:rNe,"ra_Move down":"Вниз","ra_Move up":"Вверх",ra_Name:nNe,"ra_No data found in file":"Данные в файле не найдены","ra_No one license found in license manager":"В менеджере лицензий не найдена ни одна лицензия","ra_No response from the backend":"Нет ответа от бэкэнда",'ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".':"Не-эксперты могут создавать новые объекты только в «0_userdata.0» или «alias.0».","ra_Not a number":"Не число",ra_Objects:aNe,ra_Ok:iNe,"ra_On weekdays":"На выходных","ra_Only following structures of objects are available:":"Доступны только следующие структуры объектов:","ra_Only selected":"Только выбранные","ra_Owner group":"Группа владельцев","ra_Owner user":"Пользователь-владелец","ra_Passwords are not equal!":"Пароли не равны!","ra_Place your files here or click here to open the browse dialog":"Поместите свои файлы сюда или щелкните здесь, чтобы открыть диалоговое окно выбора","ra_Please confirm":"Пожалуйста подтвердите","ra_Please create license":"Пожалуйста, создайте лицензию","ra_Please enter the license":"Пожалуйста, введите лицензию","ra_Please select file...":"Пожалуйста, выберите файл...","ra_Please select object ID...":"Пожалуйста, выберите идентификатор объекта ...","ra_Port could be used by %s":"Порт может использоваться %s","ra_Port is already used by %s":"Порт уже используется %s","ra_Private certificate":"Частный сертификат",ra_Product:oNe,"ra_Public certificate":"Публичный сертификат","ra_Quality code":"Валидность","ra_Refresh tree":"Обновить дерево","ra_Reload files":"Обновить",ra_Repeat:sNe,ra_Replace:lNe,"ra_Request timed out":"Истекло время запроса","ra_Restrict to folder":"Ограничить папкой",ra_Root:cNe,ra_Saturday:uNe,ra_Save:dNe,"ra_Save and close":"Сохранить и закрыть","ra_Save configuration to file":"Сохранить конфигурацию в файл","ra_Save objects tree as JSON file":"Сохранить дерево объектов как файл JSON","ra_Select all":"Выбрать все","ra_Select color":"Выберите цвет","ra_Select predefined icon":"Выберите предопределенный значок","ra_Select type of export":"Выберите тип экспорта",ra_Selected:fNe,"ra_Selected %s object(s)":"Объектов: %s","ra_Serial number (UUID)":"Серийный номер (UUID)",'ra_Serial number (UUID) "%s" in license is for other device.':"Серийный номер (UUID) «%s» в лицензии предназначен для другого устройства.","ra_Show all folders":"Показать все папки","ra_Show lines between rows":"Показать линии между строками","ra_Show/Hide object descriptions":"Показать/скрыть описания объектов","ra_Show/hide filter input":"Показать/скрыть ввод фильтра","ra_Some data are not stored. Discard?":"Некоторые данные не сохранились. Отказаться?",ra_States:hNe,"ra_Suitable license not found in license manager":"Подходящая лицензия не найдена в менеджере лицензий",ra_Sunday:pNe,"ra_Suppress question for next %s minutes":"Скрыть вопрос на следующие %s минут(ы)","ra_System language":"Язык системы","ra_Take browser position":"Взять позицию из браузера","ra_Take position from system settings":"Занять позицию из системных настроек",'ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").':"Эксперты могут создавать объекты везде, кроме второго уровня (например, «vis.0» или «javascript.0»).","ra_The page you are looking for was not found":"Страница, которую вы ищете, не найдена","ra_The schedule will be executed every minute. Are you sure?":"Расписание будет выполняться каждую минуту. Вы уверены?","ra_The schedule will be executed every second. Are you sure?":"Расписание будет выполняться каждую секунду. Вы уверены?",ra_Thursday:mNe,ra_Timestamp:vNe,"ra_Toggle expert mode":"Переключить экспертный режим","ra_Toggle the states view":"Переключить режим просмотра состояний","ra_Toggle view mode":"Переключить режим просмотра","ra_Too big":"Слишком большое","ra_Too small":"Слишком маленькое","ra_Transparent dialog":"Прозрачный диалог",ra_Tuesday:gNe,"ra_Unknown error":"Неизвестная ошибка","ra_Unknown error!":"Неизвестная ошибка!",ra_Update:_Ne,"ra_Upload file":"Загрузить файл","ra_Use all available let's encrypt certificates":"Использовать все доступные сертификаты Let’s encrypt","ra_Use iobroker.acme adapter for letsencrypt certificates":"Используйте адаптер iobroker.acme для сертификатов letsencrypt","ra_Use system settings for position":"Использовать системные настройки для позиции","ra_Used system settings":"Системные настройки","ra_User files":"Файлы пользователя",ra_ValidTill:yNe,ra_Value:bNe,ra_Version:wNe,"ra_View file":"Посмотреть файл","ra_View: %s":"Просмотр: %s",ra_Wednesday:SNe,ra_Width:xNe,ra_Yes:CNe,"ra_You can export all objects or just the selected branch.":"Вы можете экспортировать все объекты или только выбранную ветвь.","ra_You can filter entries by entering here some text":"Вы можете отфильтровать записи, введя здесь текст",ra___different__:TNe,ra_aclEveryone_read_object:kNe,ra_aclEveryone_read_state:ENe,ra_aclEveryone_write_object:DNe,ra_aclEveryone_write_state:MNe,ra_aclGroup_read_object:ONe,ra_aclGroup_read_state:$Ne,ra_aclGroup_write_object:ANe,ra_aclGroup_write_state:PNe,ra_aclOwner_read_object:INe,ra_aclOwner_read_state:RNe,ra_aclOwner_write_object:LNe,ra_aclOwner_write_state:NNe,ra_buttons:FNe,ra_changedFrom:zNe,ra_close:BNe,ra_create_boolean_state:jNe,ra_create_channel:WNe,ra_create_device:HNe,ra_create_number_state:UNe,ra_create_state:YNe,ra_create_string_state:VNe,ra_daysShortText:GNe,ra_dow_Fr:qNe,ra_dow_Mo:XNe,ra_dow_Sa:JNe,ra_dow_Su:ZNe,ra_dow_Th:KNe,ra_dow_Tu:QNe,ra_dow_We:e5e,ra_expertMode:t5e,ra_fileType_all:r5e,ra_fileType_audio:n5e,ra_fileType_code:a5e,ra_fileType_images:i5e,ra_fileType_txt:o5e,ra_fileType_video:s5e,"ra_fileType_video,":"видео",ra_filter_customs:l5e,ra_filter_customs_without:c5e,ra_filter_func:u5e,ra_filter_id:d5e,ra_filter_name:f5e,ra_filter_role:h5e,ra_filter_room:p5e,ra_filter_type:m5e,"ra_import data from %s file":"Импортировать данные из файла %s",ra_invalidConfig:v5e,ra_lastChange:g5e,ra_locally:_5e,ra_month_Apr:y5e,ra_month_Aug:b5e,ra_month_Dec:w5e,ra_month_Feb:S5e,ra_month_Jan:x5e,ra_month_Jul:C5e,ra_month_Jun:T5e,ra_month_Mai:k5e,ra_month_Mar:E5e,ra_month_Nov:D5e,ra_month_Oct:M5e,ra_month_Sep:O5e,ra_months_Apr:$5e,ra_months_Aug:A5e,ra_months_Dec:P5e,ra_months_Feb:I5e,ra_months_Jan:R5e,ra_months_Jul:L5e,ra_months_Jun:N5e,ra_months_Mai:F5e,ra_months_Mar:z5e,ra_months_Nov:B5e,ra_months_Oct:j5e,ra_months_Sep:W5e,ra_none:H5e,ra_object_changed_by:U5e,ra_object_changed_by_user:Y5e,ra_otherConfig:V5e,ra_qualityCode:G5e,ra_repeat:q5e,ra_select_folder_hint:X5e,ra_state_changed_by:J5e,ra_state_changed_from:Z5e,ra_timestamp:K5e,ra_tooltip_ack:Q5e,ra_tooltip_comment:e3e,ra_tooltip_copyState:t3e,ra_tooltip_customConfig:r3e,ra_tooltip_deleteObject:n3e,ra_tooltip_editObject:a3e,ra_tooltip_editState:i3e,ra_tooltip_from:o3e,ra_tooltip_lc:s3e,ra_tooltip_quality:l3e,ra_tooltip_ts:c3e,ra_tooltip_user:u3e,ra_tooltip_value:d3e,"ra_use seconds":"секунды",ra_val:f3e,"ra_via internet":"через интернет",ra_warning_every_minute:h3e,ra_warning_every_second:p3e,sc_cron:m3e,sc_date:v3e,sc_dates:g3e,sc_dow:_3e,sc_dows:y3e,sc_every:b3e,sc_everyN_dates:w3e,sc_everyN_dow:S3e,sc_everyN_dows:x3e,sc_everyN_hours:C3e,sc_everyN_minutes:T3e,sc_everyN_months:k3e,sc_everyN_seconds:E3e,sc_every_dates:D3e,sc_every_dow:M3e,sc_every_dows:O3e,sc_every_hours:$3e,sc_every_minutes:A3e,sc_every_months:P3e,sc_every_seconds:I3e,sc_from:R3e,sc_hours:L3e,sc_interval:N3e,sc_intervalBetween:F3e,sc_invalid_cron:z3e,sc_minutes:B3e,sc_months:j3e,sc_once:W3e,sc_period:H3e,sc_seconds:U3e,sc_simple:Y3e,sc_specific:V3e,sc_specific_dates:G3e,sc_specific_dow:q3e,sc_specific_dows:X3e,sc_specific_hours:J3e,sc_specific_minutes:Z3e,sc_specific_months:K3e,sc_specific_seconds:Q3e,sc_time:e4e,sc_to:t4e,sc_wizard:r4e,sch_all:n4e,sch_astroDay:a4e,sch_astroNight:i4e,sch_astro_dawn:o4e,sch_astro_dusk:s4e,sch_astro_goldenHour:l4e,sch_astro_goldenHourEnd:c4e,sch_astro_nadir:u4e,sch_astro_nauticalDawn:d4e,sch_astro_nauticalDusk:f4e,sch_astro_night:h4e,sch_astro_nightEnd:p4e,sch_astro_solarNoon:m4e,sch_astro_sunrise:v4e,sch_astro_sunriseEnd:g4e,sch_astro_sunset:_4e,sch_astro_sunsetStart:y4e,sch_at:b4e,sch_desc_atTime:w4e,sch_desc_everyDay:S4e,sch_desc_everyHour:x4e,sch_desc_everyMinute:C4e,sch_desc_everyMonth:T4e,sch_desc_everyNDay:k4e,sch_desc_everyNHours:E4e,sch_desc_everyNMinutes:D4e,sch_desc_everyNMonths:M4e,sch_desc_everyNWeeks:O4e,sch_desc_everyNYears:$4e,sch_desc_everyWeek:A4e,sch_desc_everyYear:P4e,sch_desc_intervalFromTo:I4e,sch_desc_never:R4e,sch_desc_onDate:L4e,sch_desc_onDates:N4e,sch_desc_onEveryDate:F4e,sch_desc_onMonth:z4e,sch_desc_onMonths:B4e,sch_desc_onWeekday:j4e,sch_desc_onWeekdays:W4e,sch_desc_onWeekends:H4e,sch_desc_onWorkdays:U4e,sch_desc_onceInPast:Y4e,sch_desc_once_on:V4e,sch_desc_validFrom:G4e,sch_desc_validFromTo:q4e,sch_desc_validTo:X4e,sch_every:J4e,sch_exactTime:Z4e,sch_from:K4e,sch_fromTo:Q4e,sch_intervalTime:eFe,sch_invert:tFe,sch_no_one:rFe,sch_on:nFe,sch_period:aFe,sch_periodDaily:iFe,sch_periodDates:oFe,sch_periodDay:sFe,sch_periodEvery:lFe,sch_periodEveryDay:cFe,sch_periodEveryMonth:uFe,sch_periodEveryWeek:dFe,sch_periodEveryYear:fFe,sch_periodHours:hFe,sch_periodMinutes:pFe,sch_periodMonth:mFe,sch_periodMonthly:vFe,sch_periodOnce:gFe,sch_periodSpecificMonths:_Fe,sch_periodWeek:yFe,sch_periodWeekdays:bFe,sch_periodWeekend:wFe,sch_periodWeekly:SFe,sch_periodWorkdays:xFe,sch_periodYear:CFe,sch_periodYearly:TFe,sch_specificTime:kFe,sch_time:EFe,sch_to:DFe,sch_valid:MFe,sch_validFrom:OFe,sch_validTo:$Fe,sch_wholeDay:AFe,sch_yearEveryMonth:PFe},RFe="Acrescentar",LFe="Cancelar",NFe="Categorias",FFe="Verificado",zFe="Excluir",BFe="Perto",jFe="Comercial",WFe="Configurar",HFe="Conectado",UFe="Copiado",YFe="Crio",VFe="Colheita",GFe="Delete",qFe="Excluir",XFe="Descartar",JFe="Desconectado",ZFe="Erro",KFe="Filtro",QFe="Sexta-feira",eze="Latitude",tze="Longitude",rze="mensagem",nze="Segunda-feira",aze="Nome",ize="Objetos",oze="Está bem",sze="produtos",lze="Repita",cze="Substituir",uze="Raiz",dze="Sábado",fze="Salve ",hze="Selecionado",pze="Estados",mze="Domingo",vze="Quinta-feira",gze="Timestamp",_ze="Terça-feira",yze="Atualizar",bze="Válida até",wze="Valor",Sze="Versão",xze="Quarta-feira",Cze="Largura",Tze="Sim",kze="diferente",Eze="Todos podem ler objetos",Dze="Todos podem ler o estado",Mze="Todos podem escrever objetos",Oze="Todos podem escrever o estado",$ze="O grupo pode ler o objeto",Aze="O grupo pode ler o estado",Pze="O grupo pode escrever o objeto",Ize="O grupo pode escrever o estado",Rze="O proprietário pode ler o objeto",Lze="O proprietário pode ler o estado",Nze="O proprietário pode escrever o objeto",Fze="O proprietário pode escrever o estado",zze="Botões",Bze="Mudou de",jze="fechar",Wze="Criar estado booleano",Hze="Criar canal",Uze="Criar dispositivo",Yze="Criar estado numérico",Vze="Criar estado",Gze="Criar estado de string",qze="d.",Xze="Fr",Jze="Mo",Zze="Sa",Kze="Su",Qze="º",e6e="Tu",t6e="Nós",r6e="Modo especialista",n6e="Todos os arquivos",a6e="áudio",i6e="Código/JSON",o6e="Imagens",s6e="Texto",l6e="Vídeo",c6e="Configurações",u6e="sem",d6e="Função",f6e="ID",h6e="Nome",p6e="Papel (Função)",m6e="Quarto",v6e="Tipo",g6e="Configurações inválidas",_6e="Última mudança",y6e="localmente",b6e="abril",w6e="agosto",S6e="dezembro",x6e="fevereiro",C6e="janeiro",T6e="julho",k6e="junho",E6e="Mai",D6e="março",M6e="novembro",O6e="outubro",$6e="setembro",A6e="abril",P6e="agosto",I6e="dezembro",R6e="fevereiro",L6e="janeiro",N6e="julho",F6e="junho",z6e="Mai",B6e="março",j6e="novembro",W6e="outubro",H6e="setembro",U6e="Nenhum",Y6e="Objeto alterado por",V6e="Objeto alterado pela última vez em",G6e="Configurações de outro adaptador %s",q6e="Código de qualidade",X6e="repetir",J6e='Para selecionar a pasta, basta segurar a tecla "shift" clicando na pasta.',Z6e="Estado alterado por",K6e="Objeto alterado de",Q6e="Timestamp",e8e="Confirmado",t8e="Comente",r8e="Copie o valor do estado",n8e="Opções customizadas",a8e="Excluir objeto",i8e="Editar objeto",o8e="Edite o valor do estado",s8e="De",l8e="Última alteração",c8e="Qualidade",u8e="Timestamp",d8e="Usuário",f8e="Valor",h8e="Valor",p8e="Aviso: O trabalho CRON será executado a cada minuto durante o período especificado!",m8e="Aviso: O trabalho CRON será executado a cada segundo durante o período especificado!",v8e="CRON",g8e="Data",_8e="Dias",y8e="Dia",b8e="Dia da semana",w8e="todos",S8e="a cada N dias",x8e="todo enésimo dia da semana",C8e="todos os N dias da semana",T8e="a cada N horas",k8e="a cada N minutos",E8e="a cada N meses",D8e="a cada N segundos",M8e="todo dia",O8e="todos os dias da semana",$8e="todos os dias da semana",A8e="toda hora",P8e="todo minuto",I8e="todo mês",R8e="todo segundo",L8e="de",N8e="horas",F8e="intervalo",z8e="intervalo entre",B8e="CRON inválido",j8e="minutos",W8e="meses",H8e="uma vez",U8e="período",Y8e="segundos",V8e="simples",G8e="tempo específico",q8e="datas específicas",X8e="dia(s) específico(s) da semana",J8e="dia específico de semanas",Z8e="horas específicas",K8e="minutos específicos",Q8e="meses específicos",eBe="segundos específicos",tBe="tempo",rBe="para",nBe="assistente",aBe="tudo",iBe="dia astral",oBe="noite astral",sBe="amanhecer",lBe="anoitecer",cBe="hora dourada",uBe="Fim da hora dourada",dBe="nadir",fBe="Amanhecer náutico",hBe="Anoitecer náutico",pBe="noite",mBe="fim da noite",vBe="meio-dia solar",gBe="nascer do sol",_Be="fim do nascer do sol",yBe="pôr do sol",bBe="início do pôr do sol",wBe="às",SBe="em %s",xBe="todo dia",CBe="toda hora",TBe="todo minuto",kBe="todo mês",EBe="a cada %s dias",DBe="a cada %s horas",MBe="a cada %s minutos",OBe="a cada %s meses",$Be="a cada %s semanas",ABe="a cada %s anos",PBe="toda semana",IBe="todo ano",RBe="de %s para %s",LBe="nunca",NBe="em %s de %s",FBe="em %s e %s de",zBe="em toda data de",BBe="%s",jBe="%s e %s",WBe="em %s",HBe="em %s e %s",UBe="nos fins de semana",YBe="em dias úteis",VBe="não será mais executado, porque o começo está no passado",GBe="em %s",qBe="de %s",XBe="Executar de até",JBe="até %s",ZBe="cada",KBe="tempo específico",QBe="de",eje="de a´t",tje="tempo de intervalo",rje="invertido",nje="nenhum",aje="em",ije="período",oje="diariamente",sje="datas",lje="dia",cje="todos",uje="todo dia",dje="todo mês",fje="toda semana",hje="todo ano",pje="horas",mje="minutos",vje="mês",gje="por mês",_je="uma vez",yje="meses específicos",bje="semana",wje="dias úteis",Sje="final de semana",xje="semanal",Cje="dias úteis",Tje="ano",kje="anual",Eje="tempo específico",Dje="tempo",Mje="para",Oje="válido",$je="de",Aje="para",Pje="dia inteiro",Ije="todo mês",Rje={"ra_%s links from aliases":"%s links de aliases","ra_%s object(s) processed":"%s objeto(s) processado(s)","ra_%s was imported":"%s foi importado","ra_Accept license":"Aceitar licença","ra_Add new child object to selected parent":"Adicionar novo objeto filho ao pai selecionado","ra_Add objects tree from JSON file":"Adicionar árvore de objetos do arquivo JSON","ra_Add row":"Adicionar linha","ra_Advanced options":"Opções avançadas","ra_All items are filtered out":"Todos os itens são filtrados","ra_All objects":"Todos os objetos",ra_Append:RFe,"ra_Append %s entries or replace existing?":"Acrescentar %s entradas ou substituir as existentes?","ra_Append or replace?":"Acrescentar ou substituir?","ra_Are you sure?":"Você tem certeza?","ra_Auto (no custom columns)":"Auto (sem colunas personalizadas)","ra_Back to %s":"Voltar para %s","ra_Background image":"Imagem de fundo",ra_Cancel:LFe,"ra_Cannot add items with set filter":"Não é possível adicionar itens com filtro definido","ra_Cannot decode license":"Não é possível decodificar a licença","ra_Cannot determine position: System settings are empty and GPS detection is disabled in browser":"Não é possível determinar a posição: as configurações do sistema estão vazias e a detecção de GPS está desativada no navegador",'ra_Cannot find "%s"':'Não foi possível encontrar "%s"','ra_Cannot read "%s"':'Não é possível ler "%s"',"ra_Cannot read licenses: %s":"Não é possível ler licenças: %s","ra_Cannot retrieve options, as instance is offline":"Não é possível recuperar opções, pois a instância está off-line","ra_Cannot update attribute, because not found in the object":"Não é possível atualizar o atributo, porque não foi encontrado no objeto","ra_Cannot upload":"Não é possível fazer upload",ra_Categories:NFe,"ra_Chained certificate":"certificado encadeado","ra_Change color theme":"Alterar tema de cores","ra_Changed from":"Mudou de","ra_Channel → State":"Canal → Estado","ra_Check license":"Verifique a licença",ra_Checked:FFe,ra_Clear:zFe,"ra_Clear filter":"Filtro limpo","ra_Clear icon":"Ícone de limpeza","ra_Clone current row":"Clonar linha atual",ra_Close:BFe,"ra_Collapse all nodes":"Recolher todos os nós","ra_Collapse one step node":"Recolher um nível",ra_Commercial:jFe,ra_Configure:WFe,"ra_Configure visible columns":"Configurar colunas visíveis","ra_Confirm deletion of %s":"Confirme a exclusão de %s",ra_Connected:HFe,ra_Copied:UFe,"ra_Copied %s":'"%s" copiado',"ra_Copy content":"Copiar conteúdo",ra_Create:YFe,"ra_Create alias":"Criar alias","ra_Create folder":"Criar pasta","ra_Create new folder in %s":"Crie uma nova pasta em %s",ra_Crop:VFe,"ra_Define CRON...":"Defina CRON...","ra_Define functions":"Definir funções","ra_Define rooms":"Definir quartos","ra_Define schedule":"Definir cronograma","ra_Define schedule...":"Definir programação ...",ra_Del:GFe,ra_Delete:qFe,"ra_Delete (no confirm for 5 mins)":"Excluir (sem confirmação por 5 minutos)","ra_Delete current row":"Excluir linha atual","ra_Deselect all":"Desmarque todos","ra_Device → Channel → State":"Dispositivo → Canal → Estado",ra_Discard:XFe,ra_Disconnected:JFe,"ra_Do not export values of states":"Não exporte valores de estados","ra_Do not use let's encrypt":"Não use vamos criptografar","ra_Double click to reset table layout":"Clique duas vezes para redefinir o layout da tabela","ra_Drag 'n' drop some files here, or click to select files":"Arraste e solte alguns arquivos aqui ou clique para selecionar arquivos","ra_Drop file here":"Solte o arquivo aqui","ra_Drop the files here...":"Solte o arquivo aqui ...","ra_Duplicate name":"Nome duplicado","ra_Edit ACL":"Editar ACL","ra_Edit alias":"Editar alias","ra_Edit custom config":"Editar configuração personalizada","ra_Edit function":"Função de edição","ra_Edit object field":"Editar campo de objeto","ra_Edit role":"Editar papel","ra_Edit room":"Sala de edição","ra_Edit value":"Editar valor",ra_Error:ZFe,"ra_Expand all nodes":"Expanda todos os nós","ra_Expand one step node":"Expanda um nível","ra_Export data to %s file":"Exportar dados para o arquivo %s","ra_Failed to open JSON File":"Falha ao abrir arquivo JSON","ra_Fallback custom certificates":"Certificados personalizados alternativos","ra_File is too big. Max %sk allowed. Try use SVG.":"O arquivo é muito grande. Max %sk permitido. Tente usar SVG.",ra_Filter:KFe,"ra_Filter files":"Filtrar arquivos","ra_Folder name":"Nome da pasta","ra_Folder → Channel → State":"Pasta → Canal → Estado","ra_Folder → Device → Channel → State":"Pasta → Dispositivo → Canal → Estado","ra_Folder → State":"Pasta → Estado","ra_Folders always first":"Pastas sempre primeiro",ra_Friday:QFe,"ra_Good luck":"Boa sorte","ra_Hide empty folders":"Esconder pastas vazias","ra_If no file will be created in the folder, it will disappear after the browser closed":"Se nenhum arquivo for criado na pasta, ele desaparecerá depois que o navegador for fechado","ra_Import data from %s file":"Importar dados do arquivo %s","ra_Import from %s":"Importar de %s","ra_Instance %s is alive":"O %s da instância está ativo","ra_Instance %s is not alive":"O %s da instância não está ativo","ra_Instance is not alive":"A instância não está ativa","ra_Invalid CRON":"CRON inválido","ra_Invalid JSON":"JSON inválido","ra_Invalid answer from server":"Resposta inválida do servidor","ra_Invalid parent folder!":"Pasta pai inválida!","ra_Invalid structure":"Estrutura inválida","ra_JSON editor":"Editor JSON","ra_Last change":"Última mudança",ra_Latitude:eze,"ra_License %s":"Licença %s","ra_License agreement":"Contrato de licença","ra_License does not exist":"A licença não existe","ra_License expired on %s":"A licença expirou em %s",'ra_License for other product "%s"':'Licença para outro produto "%s"',"ra_License is for version %s, but required version is %s.":"A licença é para a versão %s, mas a versão necessária é %s.","ra_License must be converted":"A licença deve ser convertida para uma versão mais recente. Você pode fazê-lo em seu perfil iobroker.net.","ra_License not found in license manager. Do you want to read licenses from iobroker.net?":"Licença não encontrada no gerenciador de licenças. Deseja atualizar as licenças do iobroker.net?","ra_Listen on all IPs":"Ouça em todos os IPs","ra_Load configuration from file":"Carregar configuração do arquivo",ra_Longitude:tze,'ra_May not trigger "updateLicenses"':'Pode não acionar "updateLicenses"',ra_Message:rze,ra_Monday:nze,"ra_Move down":"Mover para baixo","ra_Move up":"Subir",ra_Name:aze,"ra_No data found in file":"Nenhum dado encontrado no arquivo","ra_No one license found in license manager":"Nenhuma licença encontrada no gerenciador de licenças","ra_No response from the backend":"Nenhuma resposta do backend",'ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".':'Os não especialistas podem criar novos objetos apenas em "0_userdata.0" ou "alias.0".',"ra_Not a number":"Não é um número",ra_Objects:ize,ra_Ok:oze,"ra_On weekdays":"Nos dias úteis","ra_Only following structures of objects are available:":"Apenas as seguintes estruturas de objetos estão disponíveis:","ra_Only selected":"Apenas selecionado","ra_Owner group":"Grupo proprietário","ra_Owner user":"Usuário proprietário","ra_Passwords are not equal!":"As senhas não são iguais!","ra_Place your files here or click here to open the browse dialog":"Coloque seus arquivos aqui ou clique aqui para abrir a janela de navegação","ra_Please confirm":"Por favor confirme","ra_Please create license":"Crie uma licença","ra_Please enter the license":"Por favor, insira a licença","ra_Please select file...":"Selecione o arquivo...","ra_Please select object ID...":"Selecione o ID do objeto ...","ra_Port could be used by %s":"A porta pode ser usada por %s","ra_Port is already used by %s":"A porta já está sendo usada por %s","ra_Private certificate":"certificado privado",ra_Product:sze,"ra_Public certificate":"certificado público","ra_Quality code":"Qualidade","ra_Refresh tree":"Atualizar árvore","ra_Reload files":"Recarregar arquivos",ra_Repeat:lze,ra_Replace:cze,"ra_Request timed out":"Solicitação expirou","ra_Restrict to folder":"Restringir à pasta",ra_Root:uze,ra_Saturday:dze,ra_Save:fze,"ra_Save and close":"Salvar e fechar","ra_Save configuration to file":"Salvar configuração em arquivo","ra_Save objects tree as JSON file":"Salvar árvore de objetos como arquivo JSON","ra_Select all":"Selecionar tudo","ra_Select color":"Selecione a cor","ra_Select predefined icon":"Selecione o ícone predefinido","ra_Select type of export":"Selecione o tipo de exportação",ra_Selected:hze,"ra_Selected %s object(s)":"%s objeto(s) selecionado(s)","ra_Serial number (UUID)":"Número de série (UUID)",'ra_Serial number (UUID) "%s" in license is for other device.':'O número de série (UUID) "%s" na licença é para outro dispositivo.',"ra_Show all folders":"Mostrar todas as pastas","ra_Show lines between rows":"Mostrar linhas entre as linhas","ra_Show/Hide object descriptions":"Mostrar/ocultar descrições de objetos","ra_Show/hide filter input":"Mostrar/ocultar entrada de filtro","ra_Some data are not stored. Discard?":"Alguns dados não são armazenados. Descartar?",ra_States:pze,"ra_Suitable license not found in license manager":"Licença adequada não encontrada no gerenciador de licenças",ra_Sunday:mze,"ra_Suppress question for next %s minutes":"Suprimir pergunta nos próximos %s minutos","ra_System language":"Idioma do sistema","ra_Take browser position":"Tomar posição do navegador","ra_Take position from system settings":"Tomar posição a partir das configurações do sistema",'ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").':'Os especialistas podem criar objetos em qualquer lugar, exceto no segundo nível (por exemplo, "vis.0" ou "javascript.0").',"ra_The page you are looking for was not found":"A página que você está procurando não foi encontrada","ra_The schedule will be executed every minute. Are you sure?":"O agendamento será executado a cada minuto. Tem certeza?","ra_The schedule will be executed every second. Are you sure?":"O agendamento será executado a cada segundo. Tem certeza?",ra_Thursday:vze,ra_Timestamp:gze,"ra_Toggle expert mode":"Alternar modo especialista","ra_Toggle the states view":"Alternar a visualização dos estados","ra_Toggle view mode":"Alternar modo de visualização","ra_Too big":"Muito grande","ra_Too small":"Muito pequeno","ra_Transparent dialog":"Diálogo transparente",ra_Tuesday:_ze,"ra_Unknown error":"Erro desconhecido","ra_Unknown error!":"Erro desconhecido!",ra_Update:yze,"ra_Upload file":"Subir arquivo","ra_Use all available let's encrypt certificates":"Use todos os certificados disponíveis vamos criptografar","ra_Use iobroker.acme adapter for letsencrypt certificates":"Use o adaptador iobroker.acme para certificados letsencrypt","ra_Use system settings for position":"Use as configurações do sistema para a posição","ra_Used system settings":"Configurações do sistema usadas","ra_User files":"Arquivos do usuário",ra_ValidTill:bze,ra_Value:wze,ra_Version:Sze,"ra_View file":"Visualizar arquivo","ra_View: %s":"Visualizar: %s",ra_Wednesday:xze,ra_Width:Cze,ra_Yes:Tze,"ra_You can export all objects or just the selected branch.":"Você pode exportar todos os objetos ou apenas a ramificação selecionada.","ra_You can filter entries by entering here some text":"Você pode filtrar as entradas digitando aqui algum texto",ra___different__:kze,ra_aclEveryone_read_object:Eze,ra_aclEveryone_read_state:Dze,ra_aclEveryone_write_object:Mze,ra_aclEveryone_write_state:Oze,ra_aclGroup_read_object:$ze,ra_aclGroup_read_state:Aze,ra_aclGroup_write_object:Pze,ra_aclGroup_write_state:Ize,ra_aclOwner_read_object:Rze,ra_aclOwner_read_state:Lze,ra_aclOwner_write_object:Nze,ra_aclOwner_write_state:Fze,ra_buttons:zze,ra_changedFrom:Bze,ra_close:jze,ra_create_boolean_state:Wze,ra_create_channel:Hze,ra_create_device:Uze,ra_create_number_state:Yze,ra_create_state:Vze,ra_create_string_state:Gze,ra_daysShortText:qze,ra_dow_Fr:Xze,ra_dow_Mo:Jze,ra_dow_Sa:Zze,ra_dow_Su:Kze,ra_dow_Th:Qze,ra_dow_Tu:e6e,ra_dow_We:t6e,ra_expertMode:r6e,ra_fileType_all:n6e,ra_fileType_audio:a6e,ra_fileType_code:i6e,ra_fileType_images:o6e,ra_fileType_txt:s6e,ra_fileType_video:l6e,"ra_fileType_video,":"Vídeo",ra_filter_customs:c6e,ra_filter_customs_without:u6e,ra_filter_func:d6e,ra_filter_id:f6e,ra_filter_name:h6e,ra_filter_role:p6e,ra_filter_room:m6e,ra_filter_type:v6e,"ra_import data from %s file":"Importar dados do arquivo %s",ra_invalidConfig:g6e,ra_lastChange:_6e,ra_locally:y6e,ra_month_Apr:b6e,ra_month_Aug:w6e,ra_month_Dec:S6e,ra_month_Feb:x6e,ra_month_Jan:C6e,ra_month_Jul:T6e,ra_month_Jun:k6e,ra_month_Mai:E6e,ra_month_Mar:D6e,ra_month_Nov:M6e,ra_month_Oct:O6e,ra_month_Sep:$6e,ra_months_Apr:A6e,ra_months_Aug:P6e,ra_months_Dec:I6e,ra_months_Feb:R6e,ra_months_Jan:L6e,ra_months_Jul:N6e,ra_months_Jun:F6e,ra_months_Mai:z6e,ra_months_Mar:B6e,ra_months_Nov:j6e,ra_months_Oct:W6e,ra_months_Sep:H6e,ra_none:U6e,ra_object_changed_by:Y6e,ra_object_changed_by_user:V6e,ra_otherConfig:G6e,ra_qualityCode:q6e,ra_repeat:X6e,ra_select_folder_hint:J6e,ra_state_changed_by:Z6e,ra_state_changed_from:K6e,ra_timestamp:Q6e,ra_tooltip_ack:e8e,ra_tooltip_comment:t8e,ra_tooltip_copyState:r8e,ra_tooltip_customConfig:n8e,ra_tooltip_deleteObject:a8e,ra_tooltip_editObject:i8e,ra_tooltip_editState:o8e,ra_tooltip_from:s8e,ra_tooltip_lc:l8e,ra_tooltip_quality:c8e,ra_tooltip_ts:u8e,ra_tooltip_user:d8e,ra_tooltip_value:f8e,"ra_use seconds":"use segundos",ra_val:h8e,"ra_via internet":"via internet",ra_warning_every_minute:p8e,ra_warning_every_second:m8e,sc_cron:v8e,sc_date:g8e,sc_dates:_8e,sc_dow:y8e,sc_dows:b8e,sc_every:w8e,sc_everyN_dates:S8e,sc_everyN_dow:x8e,sc_everyN_dows:C8e,sc_everyN_hours:T8e,sc_everyN_minutes:k8e,sc_everyN_months:E8e,sc_everyN_seconds:D8e,sc_every_dates:M8e,sc_every_dow:O8e,sc_every_dows:$8e,sc_every_hours:A8e,sc_every_minutes:P8e,sc_every_months:I8e,sc_every_seconds:R8e,sc_from:L8e,sc_hours:N8e,sc_interval:F8e,sc_intervalBetween:z8e,sc_invalid_cron:B8e,sc_minutes:j8e,sc_months:W8e,sc_once:H8e,sc_period:U8e,sc_seconds:Y8e,sc_simple:V8e,sc_specific:G8e,sc_specific_dates:q8e,sc_specific_dow:X8e,sc_specific_dows:J8e,sc_specific_hours:Z8e,sc_specific_minutes:K8e,sc_specific_months:Q8e,sc_specific_seconds:eBe,sc_time:tBe,sc_to:rBe,sc_wizard:nBe,sch_all:aBe,sch_astroDay:iBe,sch_astroNight:oBe,sch_astro_dawn:sBe,sch_astro_dusk:lBe,sch_astro_goldenHour:cBe,sch_astro_goldenHourEnd:uBe,sch_astro_nadir:dBe,sch_astro_nauticalDawn:fBe,sch_astro_nauticalDusk:hBe,sch_astro_night:pBe,sch_astro_nightEnd:mBe,sch_astro_solarNoon:vBe,sch_astro_sunrise:gBe,sch_astro_sunriseEnd:_Be,sch_astro_sunset:yBe,sch_astro_sunsetStart:bBe,sch_at:wBe,sch_desc_atTime:SBe,sch_desc_everyDay:xBe,sch_desc_everyHour:CBe,sch_desc_everyMinute:TBe,sch_desc_everyMonth:kBe,sch_desc_everyNDay:EBe,sch_desc_everyNHours:DBe,sch_desc_everyNMinutes:MBe,sch_desc_everyNMonths:OBe,sch_desc_everyNWeeks:$Be,sch_desc_everyNYears:ABe,sch_desc_everyWeek:PBe,sch_desc_everyYear:IBe,sch_desc_intervalFromTo:RBe,sch_desc_never:LBe,sch_desc_onDate:NBe,sch_desc_onDates:FBe,sch_desc_onEveryDate:zBe,sch_desc_onMonth:BBe,sch_desc_onMonths:jBe,sch_desc_onWeekday:WBe,sch_desc_onWeekdays:HBe,sch_desc_onWeekends:UBe,sch_desc_onWorkdays:YBe,sch_desc_onceInPast:VBe,sch_desc_once_on:GBe,sch_desc_validFrom:qBe,sch_desc_validFromTo:XBe,sch_desc_validTo:JBe,sch_every:ZBe,sch_exactTime:KBe,sch_from:QBe,sch_fromTo:eje,sch_intervalTime:tje,sch_invert:rje,sch_no_one:nje,sch_on:aje,sch_period:ije,sch_periodDaily:oje,sch_periodDates:sje,sch_periodDay:lje,sch_periodEvery:cje,sch_periodEveryDay:uje,sch_periodEveryMonth:dje,sch_periodEveryWeek:fje,sch_periodEveryYear:hje,sch_periodHours:pje,sch_periodMinutes:mje,sch_periodMonth:vje,sch_periodMonthly:gje,sch_periodOnce:_je,sch_periodSpecificMonths:yje,sch_periodWeek:bje,sch_periodWeekdays:wje,sch_periodWeekend:Sje,sch_periodWeekly:xje,sch_periodWorkdays:Cje,sch_periodYear:Tje,sch_periodYearly:kje,sch_specificTime:Eje,sch_time:Dje,sch_to:Mje,sch_valid:Oje,sch_validFrom:$je,sch_validTo:Aje,sch_wholeDay:Pje,sch_yearEveryMonth:Ije},Lje="toevoegen",Nje="Annuleer",Fje="Categorieën",zje="Gecontroleerd",Bje="Verwijderen",jje="Dichtbij",Wje="Reclame",Hje="Configureren",Uje="Verbonden",Yje="Gekopieerd",Vje="Creëer",Gje="Bijsnijden",qje="Delete",Xje="Verwijderen",Jje="Weggooien",Zje="Verbinding verbroken",Kje="Fout",Qje="Filter",e9e="Vrijdag",t9e="Breedtegraad",r9e="Lengtegraad",n9e="Bericht",a9e="Maandag",i9e="Naam",o9e="Voorwerpen",s9e="OK",l9e="Product",c9e="Herhaling",u9e="Vervangen",d9e="Wortel",f9e="Zaterdag",h9e="Sparen",p9e="Geselecteerd",m9e="Staten",v9e="Zondag",g9e="Donderdag",_9e="Tijdstempel",y9e="Dinsdag",b9e="Bijwerken",w9e="Geldig tot",S9e="Waarde",x9e="Versie",C9e="Woensdag",T9e="Breedte",k9e="Ja",E9e="verschillend",D9e="Iedereen kan object lezen",M9e="Iedereen kan staat lezen",O9e="Iedereen kan object schrijven",$9e="Iedereen kan staat schrijven",A9e="Groep kan object lezen",P9e="Groep kan status lezen",I9e="Groep kan object schrijven",R9e="Groep kan staat schrijven",L9e="Eigenaar kan object lezen",N9e="Eigenaar kan staat lezen",F9e="Eigenaar kan object schrijven",z9e="Eigenaar kan staat schrijven",B9e="Toetsen",j9e="Veranderd van",W9e="dichtbij",H9e="Creëer een Booleaanse status",U9e="Kanaal maken",Y9e="Apparaat maken",V9e="Nummerstatus maken",G9e="Staat creëren",q9e="Tekenreeksstatus maken",X9e="d.",J9e="Fr",Z9e="Mo",K9e="Za",Q9e="Zo",e7e="Th",t7e="Tu",r7e="Wij",n7e="Expert modus",a7e="Alle bestanden",i7e="Audio",o7e="Code/JSON",s7e="Afbeeldingen",l7e="Tekst",c7e="Video",u7e="Instellingen",d7e="zonder",f7e="Functie",h7e="ID",p7e="Naam",m7e="Rol",v7e="Kamer",g7e="Type",_7e="Ongeldige instellingen",y7e="Laatste wijziging",b7e="plaatselijk",w7e="april",S7e="aug",x7e="dec",C7e="februari",T7e="jan",k7e="jul",E7e="juni",D7e="Mei",M7e="mrt",O7e="nov",$7e="Okt",A7e="sept",P7e="april",I7e="aug",R7e="dec",L7e="februari",N7e="jan",F7e="jul",z7e="juni",B7e="Mei",j7e="mrt",W7e="nov",H7e="Okt",U7e="sept",Y7e="geen",V7e="Object veranderd door",G7e="Object voor het laatst gewijzigd om",q7e="Instellingen van andere adapter %s",X7e="Kwaliteitscode",J7e="herhalen",Z7e='Om een map te selecteren, houdt u gewoon de toets "shift" ingedrukt door op de map te klikken.',K7e="Staat veranderd door",Q7e="Object veranderd van",eWe="Tijdstempel",tWe="Erkende vlag",rWe="Opmerking",nWe="Kopieer de statuswaarde",aWe="Aangepaste instellingen",iWe="Object verwijderen",oWe="Object bewerken",sWe="Bewerk de statuswaarde",lWe="Van",cWe="Laatst gewijzigd",uWe="Kwaliteit",dWe="Tijdstempel",fWe="Gebruiker",hWe="Waarde",pWe="Waarde",mWe="Waarschuwing: De CRON-taak wordt elke minuut uitgevoerd gedurende de opgegeven periode!",vWe="Waarschuwing: De CRON-taak wordt elke seconde uitgevoerd gedurende de opgegeven periode!",gWe="CRON",_We="Datum",yWe="data",bWe="Dag",wWe="Dag van de week",SWe="elk",xWe="elke N dagen",CWe="elke N-de dag van de week",TWe="elke N dag van de week",kWe="elke N uur",EWe="elke N minuten",DWe="elke N maanden",MWe="elke N seconden",OWe="elke dag",$We="elke dag van de week",AWe="elke dag van de week",PWe="elk uur",IWe="elke minuut",RWe="elke maand",LWe="elke seconde",NWe="Van",FWe="uren",zWe="Interval",BWe="Interval tussen",jWe="Ongeldige CRON",WWe="Notulen",HWe="maanden",UWe="Een keer",YWe="Periode",VWe="seconden",GWe="Gemakkelijk",qWe="Specifieke tijd",XWe="specifieke data",JWe="specifieke dag(en) van de week",ZWe="specifieke dag van weken",KWe="specifieke uren",QWe="specifieke minuten",eHe="specifieke maanden",tHe="specifieke seconden",rHe="Tijd",nHe="Naar",aHe="tovenaar",iHe="allemaal",oHe="Astro-dag",sHe="Astro-nacht",lHe="Dageraad",cHe="Schemer",uHe="gouden uur",dHe="Gouden uur einde",fHe="Nadir",hHe="Nautische dageraad",pHe="Nautische schemering",mHe="Nacht",vHe="Nacht einde",gHe="Zonne middag",_He="zonsopkomst",yHe="Sunrise einde",bHe="Zonsondergang",wHe="Zonsondergang start",SHe="Bij",xHe="op %s",CHe="elke dag",THe="elk uur",kHe="elke minuut",EHe="elke maand",DHe="elke %s dag",MHe="elke %s uur",OHe="elke %s minuten",$He="elke %s maanden",AHe="elke %s weken",PHe="elke %s jaar",IHe="elke week",RHe="elk jaar",LHe="van %s tot %s",NHe="nooit",FHe="op %s van %s",zHe="op %s en %s van",BHe="op elke datum van",jHe="%s",WHe="%s en %s",HHe="op %s",UHe="op %s en %s",YHe="in het weekend",VHe="op werkdagen",GHe="zal niet meer worden uitgevoerd, omdat start verleden tijd is",qHe="op %s",XHe="van %s",JHe="Uitvoeren van tot",ZHe="tot %s",KHe="elk",QHe="Specifieke tijd",eUe="van",tUe="Van naar",rUe="Interval tijd",nUe="omkeren",aUe="geen",iUe="Aan",oUe="Periode",sUe="Dagelijks",lUe="data",cUe="Dag",uUe="elk",dUe="Elke dag",fUe="Elke maand",hUe="Elke week",pUe="Elk jaar",mUe="uren",vUe="Notulen",gUe="maand",_Ue="Maandelijks",yUe="Een keer",bUe="Specifieke maanden",wUe="Week",SUe="Doordeweekse dagen",xUe="Weekend",CUe="Wekelijks",TUe="werkdagen",kUe="Jaar",EUe="jaar-",DUe="Specifieke tijd",MUe="Tijd",OUe="naar",$Ue="Geldig",AUe="van",PUe="naar",IUe="Hele dag",RUe="elke maand",LUe={"ra_%s links from aliases":"%s links van aliassen","ra_%s object(s) processed":"%s object(en) verwerkt","ra_%s was imported":"%s is geïmporteerd","ra_Accept license":"Accepteer licentie","ra_Add new child object to selected parent":"Voeg een nieuw kindobject toe aan het geselecteerde bovenliggende object","ra_Add objects tree from JSON file":"Objectenboom toevoegen vanuit JSON-bestand","ra_Add row":"Voeg een rij toe","ra_Advanced options":"Geavanceerde mogelijkheden","ra_All items are filtered out":"Alle items zijn uitgefilterd","ra_All objects":"Alle objecten",ra_Append:Lje,"ra_Append %s entries or replace existing?":"%s ingangen toevoegen of bestaande vervangen?","ra_Append or replace?":"Toevoegen of vervangen?","ra_Are you sure?":"Weet je het zeker?","ra_Auto (no custom columns)":"Auto (geen aangepaste kolommen)","ra_Back to %s":"Terug naar %s","ra_Background image":"Achtergrond afbeelding",ra_Cancel:Nje,"ra_Cannot add items with set filter":"Kan geen items toevoegen met ingestelde filter","ra_Cannot decode license":"Kan licentie niet decoderen","ra_Cannot determine position: System settings are empty and GPS detection is disabled in browser":"Kan positie niet bepalen: systeeminstellingen zijn leeg en GPS-detectie is uitgeschakeld in browser",'ra_Cannot find "%s"':'Kan "%s" niet vinden','ra_Cannot read "%s"':'Kan "%s" niet lezen',"ra_Cannot read licenses: %s":"Kan licenties niet lezen: %s","ra_Cannot retrieve options, as instance is offline":"Kan opties niet ophalen, omdat instantie offline is","ra_Cannot update attribute, because not found in the object":"Kan kenmerk niet bijwerken, omdat het niet in het object is gevonden","ra_Cannot upload":"Kan niet uploaden",ra_Categories:Fje,"ra_Chained certificate":"Geketend certificaat","ra_Change color theme":"Kleurthema wijzigen","ra_Changed from":"Veranderd van","ra_Channel → State":"Kanaal → Staat","ra_Check license":"Licentie controleren",ra_Checked:zje,ra_Clear:Bje,"ra_Clear filter":"Filter wissen","ra_Clear icon":"Pictogram wissen","ra_Clone current row":"Kloon de huidige rij",ra_Close:jje,"ra_Collapse all nodes":"Vouw alle knooppunten samen","ra_Collapse one step node":"Eén niveau samenvouwen",ra_Commercial:Wje,ra_Configure:Hje,"ra_Configure visible columns":"Configureer zichtbare kolommen","ra_Confirm deletion of %s":"Bevestig het verwijderen van %s",ra_Connected:Uje,ra_Copied:Yje,"ra_Copied %s":'"%s" gekopieerd',"ra_Copy content":"Inhoud kopiëren",ra_Create:Vje,"ra_Create alias":"Alias maken","ra_Create folder":"Map aanmaken","ra_Create new folder in %s":"Maak een nieuwe map in %s",ra_Crop:Gje,"ra_Define CRON...":"Definieer CRON...","ra_Define functions":"Definieer functies","ra_Define rooms":"Definieer kamers","ra_Define schedule":"Definieer schema","ra_Define schedule...":"Schema definiëren ...",ra_Del:qje,ra_Delete:Xje,"ra_Delete (no confirm for 5 mins)":"Verwijderen (geen bevestiging gedurende 5 minuten)","ra_Delete current row":"Huidige rij verwijderen","ra_Deselect all":"Deselecteer alles","ra_Device → Channel → State":"Apparaat → Kanaal → Staat",ra_Discard:Jje,ra_Disconnected:Zje,"ra_Do not export values of states":"Exporteer geen waarden van staten","ra_Do not use let's encrypt":"Gebruik geen let's encrypt","ra_Double click to reset table layout":"Dubbelklik om de tafelindeling te resetten","ra_Drag 'n' drop some files here, or click to select files":"Sleep enkele bestanden hierheen, of klik om bestanden te selecteren","ra_Drop file here":"Zet het bestand hier neer","ra_Drop the files here...":"Zet het bestand hier neer...","ra_Duplicate name":"Dubbele naam","ra_Edit ACL":"ACL bewerken","ra_Edit alias":"Alias bewerken","ra_Edit custom config":"Bewerk aangepaste config","ra_Edit function":"Bewerkingsfunctie","ra_Edit object field":"Bewerk objectveld","ra_Edit role":"Rol bewerken","ra_Edit room":"Kamer bewerken","ra_Edit value":"Waarde bewerken",ra_Error:Kje,"ra_Expand all nodes":"Vouw alle knooppunten uit","ra_Expand one step node":"Vouw een niveau uit","ra_Export data to %s file":"Exporteer gegevens naar %s bestand","ra_Failed to open JSON File":"JSON-bestand kan niet worden geopend","ra_Fallback custom certificates":"Fallback aangepaste certificaten","ra_File is too big. Max %sk allowed. Try use SVG.":"Bestand is te groot. Max. %sk toegestaan. Probeer SVG te gebruiken.",ra_Filter:Qje,"ra_Filter files":"Bestanden filteren","ra_Folder name":"Naam van de map","ra_Folder → Channel → State":"Map → Kanaal → Staat","ra_Folder → Device → Channel → State":"Map → Apparaat → Kanaal → Staat","ra_Folder → State":"Map → Staat","ra_Folders always first":"Mappen altijd eerst",ra_Friday:e9e,"ra_Good luck":"Veel geluk","ra_Hide empty folders":"Verberg lege mappen","ra_If no file will be created in the folder, it will disappear after the browser closed":"Als er geen bestand in de map wordt gemaakt, verdwijnt het nadat de browser is gesloten","ra_Import data from %s file":"Importeer gegevens uit %s bestand","ra_Import from %s":"Importeren uit %s","ra_Instance %s is alive":"Instantie %s leeft","ra_Instance %s is not alive":"Instantie %s is niet actief","ra_Instance is not alive":"Instantie leeft niet","ra_Invalid CRON":"Ongeldige CRON","ra_Invalid JSON":"Ongeldige JSON","ra_Invalid answer from server":"Ongeldig antwoord van de server","ra_Invalid parent folder!":"Ongeldige bovenliggende map!","ra_Invalid structure":"Ongeldige structuur","ra_JSON editor":"JSON-editor","ra_Last change":"Laatste wijziging",ra_Latitude:t9e,"ra_License %s":"Licentie %s","ra_License agreement":"Licentieovereenkomst","ra_License does not exist":"Licentie bestaat niet","ra_License expired on %s":"Licentie verlopen op %s",'ra_License for other product "%s"':'Licentie voor ander product "%s"',"ra_License is for version %s, but required version is %s.":"Licentie is voor versie %s, maar vereiste versie is %s.","ra_License must be converted":"Licentie moet worden omgezet naar nieuwere versie. U kunt dit doen in uw iobroker.net-profiel.","ra_License not found in license manager. Do you want to read licenses from iobroker.net?":"Licentie niet gevonden in licentiebeheer. Wilt u licenties van iobroker.net bijwerken?","ra_Listen on all IPs":"Luister op alle IP's","ra_Load configuration from file":"Laad configuratie uit bestand",ra_Longitude:r9e,'ra_May not trigger "updateLicenses"':'Activeert mogelijk niet "updateLicenses"',ra_Message:n9e,ra_Monday:a9e,"ra_Move down":"Naar beneden verplaatsen","ra_Move up":"Omhoog gaan",ra_Name:i9e,"ra_No data found in file":"Geen gegevens gevonden in bestand","ra_No one license found in license manager":"Geen enkele licentie gevonden in licentiebeheer","ra_No response from the backend":"Geen reactie van de backend",'ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".':'Niet-experts mogen alleen nieuwe objecten maken in "0_userdata.0" of "alias.0".',"ra_Not a number":"Geen nummer",ra_Objects:o9e,ra_Ok:s9e,"ra_On weekdays":"Op weekdagen","ra_Only following structures of objects are available:":"Alleen de volgende structuren van objecten zijn beschikbaar:","ra_Only selected":"Alleen geselecteerd","ra_Owner group":"Eigenaarsgroep","ra_Owner user":"Eigenaar gebruiker","ra_Passwords are not equal!":"Wachtwoorden zijn niet gelijk!","ra_Place your files here or click here to open the browse dialog":"Plaats uw bestanden hier of klik hier om het bladervenster te openen","ra_Please confirm":"Bevestig alstublieft","ra_Please create license":"Maak een licentie aan","ra_Please enter the license":"Voer de licentie in","ra_Please select file...":"Selecteer bestand...","ra_Please select object ID...":"Selecteer object-ID ...","ra_Port could be used by %s":"Poort kan worden gebruikt door %s","ra_Port is already used by %s":"Poort wordt al gebruikt door %s","ra_Private certificate":"Privé certificaat",ra_Product:l9e,"ra_Public certificate":"Openbaar certificaat","ra_Quality code":"Kwaliteit","ra_Refresh tree":"Vernieuw de boom","ra_Reload files":"Laad bestanden opnieuw",ra_Repeat:c9e,ra_Replace:u9e,"ra_Request timed out":"Verzoek verlopen","ra_Restrict to folder":"Beperken tot map",ra_Root:d9e,ra_Saturday:f9e,ra_Save:h9e,"ra_Save and close":"Opslaan en afsluiten","ra_Save configuration to file":"Sla de configuratie op in een bestand","ra_Save objects tree as JSON file":"Sla de objectenboom op als JSON-bestand","ra_Select all":"Selecteer alles","ra_Select color":"Selecteer kleur","ra_Select predefined icon":"Selecteer voorgedefinieerd pictogram","ra_Select type of export":"Selecteer het type export",ra_Selected:p9e,"ra_Selected %s object(s)":"Geselecteerde %s object(en)","ra_Serial number (UUID)":"Serienummer (UUID)",'ra_Serial number (UUID) "%s" in license is for other device.':'Serienummer (UUID) "%s" in licentie is voor ander apparaat.',"ra_Show all folders":"Toon alle mappen","ra_Show lines between rows":"Toon lijnen tussen rijen","ra_Show/Hide object descriptions":"Toon/verberg objectbeschrijvingen","ra_Show/hide filter input":"Filterinvoer weergeven/verbergen","ra_Some data are not stored. Discard?":"Sommige gegevens worden niet opgeslagen. Weggooien?",ra_States:m9e,"ra_Suitable license not found in license manager":"Geschikte licentie niet gevonden in licentiebeheer",ra_Sunday:v9e,"ra_Suppress question for next %s minutes":"Vraag de volgende %s minuten onderdrukken","ra_System language":"Systeemtaal","ra_Take browser position":"Positie innemen vanuit de browser","ra_Take position from system settings":"Neem positie over van systeeminstellingen",'ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").':'De experts kunnen overal objecten maken, behalve vanaf het tweede niveau (bijv. "Vis.0" of "javascript.0").',"ra_The page you are looking for was not found":"De pagina die u zoekt is niet gevonden","ra_The schedule will be executed every minute. Are you sure?":"Het schema wordt elke minuut uitgevoerd. Weet u het zeker?","ra_The schedule will be executed every second. Are you sure?":"Het schema wordt elke seconde uitgevoerd. Weet je het zeker?",ra_Thursday:g9e,ra_Timestamp:_9e,"ra_Toggle expert mode":"Schakel tussen expertmodus","ra_Toggle the states view":"Schakel de statusweergave in of uit","ra_Toggle view mode":"Schakelen tussen weergavemodus","ra_Too big":"Te groot","ra_Too small":"Te klein","ra_Transparent dialog":"Transparant dialoogvenster",ra_Tuesday:y9e,"ra_Unknown error":"Onbekende fout","ra_Unknown error!":"Onbekende fout!",ra_Update:b9e,"ra_Upload file":"Upload bestand","ra_Use all available let's encrypt certificates":"Gebruik alle beschikbare Let's Encrypt-certificaten","ra_Use iobroker.acme adapter for letsencrypt certificates":"Gebruik de iobroker.acme-adapter voor letsencrypt-certificaten","ra_Use system settings for position":"Gebruik systeeminstellingen voor positie","ra_Used system settings":"Gebruikte systeeminstellingen","ra_User files":"Gebruikersbestanden",ra_ValidTill:w9e,ra_Value:S9e,ra_Version:x9e,"ra_View file":"Bestand bekijken","ra_View: %s":"Bekijk: %s",ra_Wednesday:C9e,ra_Width:T9e,ra_Yes:k9e,"ra_You can export all objects or just the selected branch.":"U kunt alle objecten of alleen de geselecteerde tak exporteren.","ra_You can filter entries by entering here some text":"U kunt items filteren door hier wat tekst in te voeren",ra___different__:E9e,ra_aclEveryone_read_object:D9e,ra_aclEveryone_read_state:M9e,ra_aclEveryone_write_object:O9e,ra_aclEveryone_write_state:$9e,ra_aclGroup_read_object:A9e,ra_aclGroup_read_state:P9e,ra_aclGroup_write_object:I9e,ra_aclGroup_write_state:R9e,ra_aclOwner_read_object:L9e,ra_aclOwner_read_state:N9e,ra_aclOwner_write_object:F9e,ra_aclOwner_write_state:z9e,ra_buttons:B9e,ra_changedFrom:j9e,ra_close:W9e,ra_create_boolean_state:H9e,ra_create_channel:U9e,ra_create_device:Y9e,ra_create_number_state:V9e,ra_create_state:G9e,ra_create_string_state:q9e,ra_daysShortText:X9e,ra_dow_Fr:J9e,ra_dow_Mo:Z9e,ra_dow_Sa:K9e,ra_dow_Su:Q9e,ra_dow_Th:e7e,ra_dow_Tu:t7e,ra_dow_We:r7e,ra_expertMode:n7e,ra_fileType_all:a7e,ra_fileType_audio:i7e,ra_fileType_code:o7e,ra_fileType_images:s7e,ra_fileType_txt:l7e,ra_fileType_video:c7e,"ra_fileType_video,":"Video",ra_filter_customs:u7e,ra_filter_customs_without:d7e,ra_filter_func:f7e,ra_filter_id:h7e,ra_filter_name:p7e,ra_filter_role:m7e,ra_filter_room:v7e,ra_filter_type:g7e,"ra_import data from %s file":"Importeer gegevens uit %s bestand",ra_invalidConfig:_7e,ra_lastChange:y7e,ra_locally:b7e,ra_month_Apr:w7e,ra_month_Aug:S7e,ra_month_Dec:x7e,ra_month_Feb:C7e,ra_month_Jan:T7e,ra_month_Jul:k7e,ra_month_Jun:E7e,ra_month_Mai:D7e,ra_month_Mar:M7e,ra_month_Nov:O7e,ra_month_Oct:$7e,ra_month_Sep:A7e,ra_months_Apr:P7e,ra_months_Aug:I7e,ra_months_Dec:R7e,ra_months_Feb:L7e,ra_months_Jan:N7e,ra_months_Jul:F7e,ra_months_Jun:z7e,ra_months_Mai:B7e,ra_months_Mar:j7e,ra_months_Nov:W7e,ra_months_Oct:H7e,ra_months_Sep:U7e,ra_none:Y7e,ra_object_changed_by:V7e,ra_object_changed_by_user:G7e,ra_otherConfig:q7e,ra_qualityCode:X7e,ra_repeat:J7e,ra_select_folder_hint:Z7e,ra_state_changed_by:K7e,ra_state_changed_from:Q7e,ra_timestamp:eWe,ra_tooltip_ack:tWe,ra_tooltip_comment:rWe,ra_tooltip_copyState:nWe,ra_tooltip_customConfig:aWe,ra_tooltip_deleteObject:iWe,ra_tooltip_editObject:oWe,ra_tooltip_editState:sWe,ra_tooltip_from:lWe,ra_tooltip_lc:cWe,ra_tooltip_quality:uWe,ra_tooltip_ts:dWe,ra_tooltip_user:fWe,ra_tooltip_value:hWe,"ra_use seconds":"gebruik seconden",ra_val:pWe,"ra_via internet":"via internet",ra_warning_every_minute:mWe,ra_warning_every_second:vWe,sc_cron:gWe,sc_date:_We,sc_dates:yWe,sc_dow:bWe,sc_dows:wWe,sc_every:SWe,sc_everyN_dates:xWe,sc_everyN_dow:CWe,sc_everyN_dows:TWe,sc_everyN_hours:kWe,sc_everyN_minutes:EWe,sc_everyN_months:DWe,sc_everyN_seconds:MWe,sc_every_dates:OWe,sc_every_dow:$We,sc_every_dows:AWe,sc_every_hours:PWe,sc_every_minutes:IWe,sc_every_months:RWe,sc_every_seconds:LWe,sc_from:NWe,sc_hours:FWe,sc_interval:zWe,sc_intervalBetween:BWe,sc_invalid_cron:jWe,sc_minutes:WWe,sc_months:HWe,sc_once:UWe,sc_period:YWe,sc_seconds:VWe,sc_simple:GWe,sc_specific:qWe,sc_specific_dates:XWe,sc_specific_dow:JWe,sc_specific_dows:ZWe,sc_specific_hours:KWe,sc_specific_minutes:QWe,sc_specific_months:eHe,sc_specific_seconds:tHe,sc_time:rHe,sc_to:nHe,sc_wizard:aHe,sch_all:iHe,sch_astroDay:oHe,sch_astroNight:sHe,sch_astro_dawn:lHe,sch_astro_dusk:cHe,sch_astro_goldenHour:uHe,sch_astro_goldenHourEnd:dHe,sch_astro_nadir:fHe,sch_astro_nauticalDawn:hHe,sch_astro_nauticalDusk:pHe,sch_astro_night:mHe,sch_astro_nightEnd:vHe,sch_astro_solarNoon:gHe,sch_astro_sunrise:_He,sch_astro_sunriseEnd:yHe,sch_astro_sunset:bHe,sch_astro_sunsetStart:wHe,sch_at:SHe,sch_desc_atTime:xHe,sch_desc_everyDay:CHe,sch_desc_everyHour:THe,sch_desc_everyMinute:kHe,sch_desc_everyMonth:EHe,sch_desc_everyNDay:DHe,sch_desc_everyNHours:MHe,sch_desc_everyNMinutes:OHe,sch_desc_everyNMonths:$He,sch_desc_everyNWeeks:AHe,sch_desc_everyNYears:PHe,sch_desc_everyWeek:IHe,sch_desc_everyYear:RHe,sch_desc_intervalFromTo:LHe,sch_desc_never:NHe,sch_desc_onDate:FHe,sch_desc_onDates:zHe,sch_desc_onEveryDate:BHe,sch_desc_onMonth:jHe,sch_desc_onMonths:WHe,sch_desc_onWeekday:HHe,sch_desc_onWeekdays:UHe,sch_desc_onWeekends:YHe,sch_desc_onWorkdays:VHe,sch_desc_onceInPast:GHe,sch_desc_once_on:qHe,sch_desc_validFrom:XHe,sch_desc_validFromTo:JHe,sch_desc_validTo:ZHe,sch_every:KHe,sch_exactTime:QHe,sch_from:eUe,sch_fromTo:tUe,sch_intervalTime:rUe,sch_invert:nUe,sch_no_one:aUe,sch_on:iUe,sch_period:oUe,sch_periodDaily:sUe,sch_periodDates:lUe,sch_periodDay:cUe,sch_periodEvery:uUe,sch_periodEveryDay:dUe,sch_periodEveryMonth:fUe,sch_periodEveryWeek:hUe,sch_periodEveryYear:pUe,sch_periodHours:mUe,sch_periodMinutes:vUe,sch_periodMonth:gUe,sch_periodMonthly:_Ue,sch_periodOnce:yUe,sch_periodSpecificMonths:bUe,sch_periodWeek:wUe,sch_periodWeekdays:SUe,sch_periodWeekend:xUe,sch_periodWeekly:CUe,sch_periodWorkdays:TUe,sch_periodYear:kUe,sch_periodYearly:EUe,sch_specificTime:DUe,sch_time:MUe,sch_to:OUe,sch_valid:$Ue,sch_validFrom:AUe,sch_validTo:PUe,sch_wholeDay:IUe,sch_yearEveryMonth:RUe},NUe="Ajouter",FUe="Annuler",zUe="Catégories",BUe="Vérifié",jUe="Effacer",WUe="Fermer",HUe="Commercial",UUe="Configurer",YUe="Lié",VUe="Copié",GUe="Créer",qUe="Recadrer",XUe="Delete",JUe="Supprimer",ZUe="Jeter",KUe="Débranché",QUe="Erreur",eYe="Filtre",tYe="Vendredi",rYe="Latitude",nYe="Longitude",aYe="Message",iYe="Lundi",oYe="Nom",sYe="Objets",lYe="D'accord",cYe="Produit",uYe="Répéter",dYe="Remplacer",fYe="Racine",hYe="Samedi",pYe="sauver",mYe="Choisi",vYe="États",gYe="Dimanche",_Ye="Jeudi",yYe="Horodatage",bYe="Mardi",wYe="Mise à jour",SYe="Valable jusqu'au",xYe="Valeur",CYe="Version",TYe="Mercredi",kYe="Largeur",EYe="Oui",DYe="différent",MYe="Tout le monde peut lire un objet",OYe="Tout le monde peut lire l'état",$Ye="Tout le monde peut écrire un objet",AYe="Tout le monde peut écrire l'état",PYe="Le groupe peut lire l'objet",IYe="Le groupe peut lire l'état",RYe="Le groupe peut écrire un objet",LYe="Le groupe peut écrire l'état",NYe="Le propriétaire peut lire l'objet",FYe="Le propriétaire peut lire l'état",zYe="Le propriétaire peut écrire un objet",BYe="Le propriétaire peut écrire l'état",jYe="Boutons",WYe="Changé de",HYe="Fermer",UYe="Créer un état booléen",YYe="Créer une chaîne",VYe="Créer un appareil",GYe="Créer un état de numéro",qYe="Créer un état",XYe="Créer un état de chaîne",JYe="j.",ZYe="Fr",KYe="Mo",QYe="Sa",eVe="Su",tVe="Th",rVe="Tu",nVe="Nous",aVe="Mode expert",iVe="Tous les fichiers",oVe="l'audio",sVe="Code/JSON",lVe="Images",cVe="Texte",uVe="Vidéo",dVe="Paramètres",fVe="sans",hVe="Une fonction",pVe="ID",mVe="Prénom",vVe="Rôle",gVe="Pièce",_Ve="Type",yVe="Paramètres invalides",bVe="Dernier changement",wVe="localement",SVe="Avr",xVe="Août",CVe="Déc",TVe="Fév",kVe="Jan",EVe="Juil",DVe="Juin",MVe="Mai",OVe="Mar",$Ve="Nov",AVe="Oct",PVe="Sep",IVe="Avr",RVe="Août",LVe="Déc",NVe="Fév",FVe="Jan",zVe="Juil",BVe="Juin",jVe="Mai",WVe="Mar",HVe="Nov",UVe="Oct",YVe="Sep",VVe="rien",GVe="Objet modifié par",qVe="Objet modifié pour la dernière fois à",XVe="Paramètres d'un autre adaptateur %s",JVe="Code de qualité",ZVe="répéter",KVe='Pour sélectionner un dossier, maintenez simplement la touche "shift" enfoncée en cliquant sur le dossier.',QVe="État modifié par",eGe="Objet changé de",tGe="Horodatage",rGe="Drapeau reconnu",nGe="Commentaire",aGe="Copiez la valeur d'état",iGe="Paramètres personnalisés",oGe="Supprimer un objet",sGe="Modifier l'objet",lGe="Modifier la valeur d'état",cGe="De",uGe="Dernière modification",dGe="Qualité",fGe="Horodatage",hGe="Utilisateur",pGe="Valeur",mGe="Valeur",vGe="Attention : la tâche CRON s’exécutera toutes les minutes pendant la période spécifiée !",gGe="Attention : la tâche CRON s’exécutera toutes les secondes pendant la période spécifiée !",_Ge="CRON",yGe="Date",bGe="Rendez-vous",wGe="Jour",SGe="Jour de la semaine",xGe="Chaque",CGe="tous les N jours",TGe="chaque Nième jour de la semaine",kGe="tous les N jours de la semaine",EGe="toutes les N heures",DGe="toutes les N minutes",MGe="tous les N mois",OGe="toutes les N secondes",$Ge="tous les jours",AGe="Chaque jour de la semaine",PGe="Chaque jour de la semaine",IGe="Toutes les heures",RGe="chaque minute",LGe="chaque mois",NGe="chaque seconde",FGe="De",zGe="Heures",BGe="Intervalle",jGe="Intervalle entre",WGe="CRON non valide",HGe="Minutes",UGe="mois",YGe="Une fois que",VGe="Période",GGe="Secondes",qGe="Facile",XGe="Temps spécifique",JGe="dates spécifiques",ZGe="jour(s) spécifique(s) de la semaine",KGe="jour spécifique de semaines",QGe="heures spécifiques",eqe="minutes spécifiques",tqe="mois spécifiques",rqe="secondes spécifiques",nqe="Temps",aqe="À",iqe="sorcier",oqe="tout",sqe="Journée astronomique",lqe="Nuit astronomique",cqe="Aube",uqe="Crépuscule",dqe="Heure d'or",fqe="Fin de l'heure d'or",hqe="Nadir",pqe="Aube nautique",mqe="Crépuscule nautique",vqe="Nuit",gqe="Fin de nuit",_qe="Midi solaire",yqe="lever du soleil",bqe="Fin du lever du soleil",wqe="Le coucher du soleil",Sqe="Coucher du soleil",xqe="à",Cqe="à %s",Tqe="tous les jours",kqe="Toutes les heures",Eqe="chaque minute",Dqe="chaque mois",Mqe="chaque %s jour",Oqe="chaque %s heures",$qe="toutes les %s minutes",Aqe="tous les %s mois",Pqe="chaque %s semaines",Iqe="tous les %s ans",Rqe="toutes les semaines",Lqe="chaque année",Nqe="de %s à %s",Fqe="jamais",zqe="sur %s de %s",Bqe="sur %s et %s de",jqe="à chaque date de",Wqe="%s",Hqe="%s et %s",Uqe="sur %s",Yqe="sur %s et %s",Vqe="les weekends",Gqe="les jours ouvrables",qqe="ne sera plus exécuté, car start est dans le passé",Xqe="sur %s",Jqe="de %s",Zqe="Exécuter de à",Kqe="à %s",Qqe="chaque",eXe="Temps spécifique",tXe="de",rXe="De à",nXe="Temps d'interval",aXe="inverser",iXe="aucun",oXe="sur",sXe="Période",lXe="du quotidien",cXe="Rendez-vous",uXe="journée",dXe="Chaque",fXe="Tous les jours",hXe="Chaque mois",pXe="Toutes les semaines",mXe="Chaque année",vXe="Heures",gXe="Minutes",_Xe="mois",yXe="Mensuel",bXe="Une fois que",wXe="Mois spécifiques",SXe="La semaine",xXe="Jours de la semaine",CXe="Weekend",TXe="Hebdomadaire",kXe="Jours ouvrables",EXe="Année",DXe="Annuel",MXe="Temps spécifique",OXe="Temps",$Xe="à",AXe="Valide",PXe="de",IXe="à",RXe="Toute la journée",LXe="chaque mois",NXe={"ra_%s links from aliases":"%s liens provenant d'alias","ra_%s object(s) processed":"%s objet(s) traité(s)","ra_%s was imported":"%s a été importé","ra_Accept license":"Accepter la licence","ra_Add new child object to selected parent":"Ajouter un nouvel objet enfant au parent sélectionné","ra_Add objects tree from JSON file":"Ajouter une arborescence d'objets à partir d'un fichier JSON","ra_Add row":"Ajouter une rangée","ra_Advanced options":"Options avancées","ra_All items are filtered out":"Tous les éléments sont filtrés","ra_All objects":"Tous les objets",ra_Append:NUe,"ra_Append %s entries or replace existing?":"Ajouter %s entrées ou remplacer l'existant ?","ra_Append or replace?":"Ajouter ou remplacer ?","ra_Are you sure?":"Êtes-vous sûr?","ra_Auto (no custom columns)":"Auto (pas de colonnes personnalisées)","ra_Back to %s":"Retour à %s","ra_Background image":"Image de fond",ra_Cancel:FUe,"ra_Cannot add items with set filter":"Impossible d'ajouter des éléments avec le filtre défini","ra_Cannot decode license":"Impossible de décoder la licence","ra_Cannot determine position: System settings are empty and GPS detection is disabled in browser":"Impossible de déterminer la position : les paramètres système sont vides et la détection GPS est désactivée dans le navigateur",'ra_Cannot find "%s"':'Impossible de trouver "%s"','ra_Cannot read "%s"':'Impossible de lire "%s"',"ra_Cannot read licenses: %s":"Impossible de lire les licences : %s","ra_Cannot retrieve options, as instance is offline":"Impossible de récupérer les options, car l'instance est hors ligne","ra_Cannot update attribute, because not found in the object":"Impossible de mettre à jour l'attribut, car il est introuvable dans l'objet","ra_Cannot upload":"Impossible de télécharger",ra_Categories:zUe,"ra_Chained certificate":"Certificat chaîné","ra_Change color theme":"Changer le thème de couleur","ra_Changed from":"Changé de","ra_Channel → State":"Canal → État","ra_Check license":"Vérifier la licence",ra_Checked:BUe,ra_Clear:jUe,"ra_Clear filter":"Effacer le filtre","ra_Clear icon":"Effacer l'icône","ra_Clone current row":"Cloner la ligne actuelle",ra_Close:WUe,"ra_Collapse all nodes":"Réduire tous les nœuds","ra_Collapse one step node":"Réduire d'un niveau",ra_Commercial:HUe,ra_Configure:UUe,"ra_Configure visible columns":"Configurer les colonnes visibles","ra_Confirm deletion of %s":"Confirmer la suppression de %s",ra_Connected:YUe,ra_Copied:VUe,"ra_Copied %s":'"%s" copié',"ra_Copy content":"Copier le contenu",ra_Create:GUe,"ra_Create alias":"Créer un alias","ra_Create folder":"Créer le dossier","ra_Create new folder in %s":"Créer un nouveau dossier dans %s",ra_Crop:qUe,"ra_Define CRON...":"Définir CRON...","ra_Define functions":"Définir des fonctions","ra_Define rooms":"Définir des pièces","ra_Define schedule":"Définir le calendrier","ra_Define schedule...":"Définir le calendrier ...",ra_Del:XUe,ra_Delete:JUe,"ra_Delete (no confirm for 5 mins)":"Supprimer (pas de confirmation pendant 5 minutes)","ra_Delete current row":"Supprimer la ligne actuelle","ra_Deselect all":"Tout déselectionner","ra_Device → Channel → State":"Appareil → Canal → État",ra_Discard:ZUe,ra_Disconnected:KUe,"ra_Do not export values of states":"Ne pas exporter les valeurs des états","ra_Do not use let's encrypt":"Ne pas utiliser let's encrypt","ra_Double click to reset table layout":"Double-cliquez pour réinitialiser la disposition du tableau","ra_Drag 'n' drop some files here, or click to select files":"Glissez-déposez des fichiers ici, ou cliquez pour sélectionner des fichiers","ra_Drop file here":"Déposer le fichier ici","ra_Drop the files here...":"Déposez le fichier ici...","ra_Duplicate name":"Nom en double","ra_Edit ACL":"Modifier la LCA","ra_Edit alias":"Modifier l'alias","ra_Edit custom config":"Modifier la configuration personnalisée","ra_Edit function":"Fonction d'édition","ra_Edit object field":"Modifier le champ d'objet","ra_Edit role":"Modifier le rôle","ra_Edit room":"Modifier la salle","ra_Edit value":"Modifier la valeur",ra_Error:QUe,"ra_Expand all nodes":"Développer tous les nœuds","ra_Expand one step node":"Développer un niveau","ra_Export data to %s file":"Exporter les données vers le fichier %s","ra_Failed to open JSON File":"Échec de l'ouverture du fichier JSON","ra_Fallback custom certificates":"Certificats personnalisés de secours","ra_File is too big. Max %sk allowed. Try use SVG.":"Le fichier est trop volumineux. Max %sk autorisé. Essayez d'utiliser SVG.",ra_Filter:eYe,"ra_Filter files":"Filtrer les fichiers","ra_Folder name":"Nom de dossier","ra_Folder → Channel → State":"Dossier → Chaîne → État","ra_Folder → Device → Channel → State":"Dossier → Appareil → Canal → État","ra_Folder → State":"Dossier → État","ra_Folders always first":"Les dossiers toujours en premier",ra_Friday:tYe,"ra_Good luck":"Bonne chance","ra_Hide empty folders":"Masquer les dossiers vides","ra_If no file will be created in the folder, it will disappear after the browser closed":"Si aucun fichier ne sera créé dans le dossier, il disparaîtra après la fermeture du navigateur","ra_Import data from %s file":"Importer des données à partir du fichier %s","ra_Import from %s":"Importer depuis %s","ra_Instance %s is alive":"L'instance %s est active","ra_Instance %s is not alive":"L'instance %s n'est pas active","ra_Instance is not alive":"L'instance n'est pas active","ra_Invalid CRON":"CRON invalide","ra_Invalid JSON":"JSON invalide","ra_Invalid answer from server":"Réponse invalide du serveur","ra_Invalid parent folder!":"Dossier parent non valide!","ra_Invalid structure":"Structure invalide","ra_JSON editor":"Éditeur JSON","ra_Last change":"Dernier changement",ra_Latitude:rYe,"ra_License %s":"Licence %s","ra_License agreement":"Accord de licence","ra_License does not exist":"La licence n'existe pas","ra_License expired on %s":"Licence expirée le %s",'ra_License for other product "%s"':'Licence pour un autre produit "%s"',"ra_License is for version %s, but required version is %s.":"La licence est pour la version %s, mais la version requise est %s.","ra_License must be converted":"La licence doit être convertie en une version plus récente. Vous pouvez le faire dans votre profil iobroker.net.","ra_License not found in license manager. Do you want to read licenses from iobroker.net?":"Licence introuvable dans le gestionnaire de licences. Voulez-vous mettre à jour les licences depuis iobroker.net ?","ra_Listen on all IPs":"Écoutez sur toutes les adresses IP","ra_Load configuration from file":"Charger la configuration à partir du fichier",ra_Longitude:nYe,'ra_May not trigger "updateLicenses"':'Peut ne pas déclencher "updateLicences"',ra_Message:aYe,ra_Monday:iYe,"ra_Move down":"Descendre","ra_Move up":"Déplacer vers le haut",ra_Name:oYe,"ra_No data found in file":"Aucune donnée trouvée dans le fichier","ra_No one license found in license manager":"Aucune licence trouvée dans le gestionnaire de licences","ra_No response from the backend":"Aucune réponse du backend",'ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".':'Les non-experts ne peuvent créer de nouveaux objets que dans "0_userdata.0" ou "alias.0".',"ra_Not a number":"Pas un numéro",ra_Objects:sYe,ra_Ok:lYe,"ra_On weekdays":"En semaine","ra_Only following structures of objects are available:":"Seules les structures d'objets suivantes sont disponibles:","ra_Only selected":"Uniquement sélectionné","ra_Owner group":"Groupe propriétaire","ra_Owner user":"Utilisateur propriétaire","ra_Passwords are not equal!":"Les mots de passe ne sont pas égaux !","ra_Place your files here or click here to open the browse dialog":"Placez vos fichiers ici ou cliquez ici pour ouvrir la boîte de dialogue de navigation","ra_Please confirm":"Veuillez confirmer","ra_Please create license":"Veuillez créer une licence","ra_Please enter the license":"Veuillez entrer la licence","ra_Please select file...":"Veuillez sélectionner le fichier...","ra_Please select object ID...":"Veuillez sélectionner l'ID d'objet ...","ra_Port could be used by %s":"Le port pourrait être utilisé par %s","ra_Port is already used by %s":"Le port est déjà utilisé par %s","ra_Private certificate":"Certificat privé",ra_Product:cYe,"ra_Public certificate":"Certificat public","ra_Quality code":"Qualité","ra_Refresh tree":"Rafraîchir l'arborescence","ra_Reload files":"Recharger les fichiers",ra_Repeat:uYe,ra_Replace:dYe,"ra_Request timed out":"La demande a expiré","ra_Restrict to folder":"Restreindre au dossier",ra_Root:fYe,ra_Saturday:hYe,ra_Save:pYe,"ra_Save and close":"Sauver et fermer","ra_Save configuration to file":"Enregistrer la configuration dans un fichier","ra_Save objects tree as JSON file":"Enregistrer l'arborescence des objets en tant que fichier JSON","ra_Select all":"Tout sélectionner","ra_Select color":"Choisissez la couleur","ra_Select predefined icon":"Sélectionnez l'icône prédéfinie","ra_Select type of export":"Sélectionnez le type d'exportation",ra_Selected:mYe,"ra_Selected %s object(s)":"Objet(s) %s sélectionné(s)","ra_Serial number (UUID)":"Numéro de série (UUID)",'ra_Serial number (UUID) "%s" in license is for other device.':'Le numéro de série (UUID) "%s" dans la licence est pour un autre appareil.',"ra_Show all folders":"Afficher tous les dossiers","ra_Show lines between rows":"Afficher les lignes entre les lignes","ra_Show/Hide object descriptions":"Afficher/Masquer les descriptions d'objets","ra_Show/hide filter input":"Afficher/masquer l'entrée de filtre","ra_Some data are not stored. Discard?":"Certaines données ne sont pas stockées. Jeter?",ra_States:vYe,"ra_Suitable license not found in license manager":"Licence appropriée introuvable dans le gestionnaire de licences",ra_Sunday:gYe,"ra_Suppress question for next %s minutes":"Supprimer la question pour les %s prochaines minutes","ra_System language":"Langue du système","ra_Take browser position":"Prendre position depuis le navigateur","ra_Take position from system settings":"Prendre position à partir des paramètres système",'ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").':'Les experts peuvent créer des objets partout mais à partir du deuxième niveau (par exemple "vis.0" ou "javascript.0").',"ra_The page you are looking for was not found":"La page que vous recherchez n'a pas été trouvée","ra_The schedule will be executed every minute. Are you sure?":"Le planning sera exécuté toutes les minutes. Êtes-vous sûr ?","ra_The schedule will be executed every second. Are you sure?":"Le planning sera exécuté toutes les secondes. Êtes-vous sûr ?",ra_Thursday:_Ye,ra_Timestamp:yYe,"ra_Toggle expert mode":"Basculer en mode expert","ra_Toggle the states view":"Basculer la vue des états","ra_Toggle view mode":"Basculer le mode d'affichage","ra_Too big":"Trop grand","ra_Too small":"Trop petit","ra_Transparent dialog":"Dialogue transparent",ra_Tuesday:bYe,"ra_Unknown error":"Erreur inconnue","ra_Unknown error!":"Erreur inconnue!",ra_Update:wYe,"ra_Upload file":"Téléverser un fichier","ra_Use all available let's encrypt certificates":"Utilisez tous les certificats let's encrypt disponibles","ra_Use iobroker.acme adapter for letsencrypt certificates":"Utiliser l'adaptateur iobroker.acme pour les certificats Letsencrypt","ra_Use system settings for position":"Utiliser les paramètres système pour la position","ra_Used system settings":"Paramètres système utilisés","ra_User files":"Fichiers utilisateurs",ra_ValidTill:SYe,ra_Value:xYe,ra_Version:CYe,"ra_View file":"Voir la fiche","ra_View: %s":"Affichage : %s",ra_Wednesday:TYe,ra_Width:kYe,ra_Yes:EYe,"ra_You can export all objects or just the selected branch.":"Vous pouvez exporter tous les objets ou uniquement la branche sélectionnée.","ra_You can filter entries by entering here some text":"Vous pouvez filtrer les entrées en saisissant ici du texte",ra___different__:DYe,ra_aclEveryone_read_object:MYe,ra_aclEveryone_read_state:OYe,ra_aclEveryone_write_object:$Ye,ra_aclEveryone_write_state:AYe,ra_aclGroup_read_object:PYe,ra_aclGroup_read_state:IYe,ra_aclGroup_write_object:RYe,ra_aclGroup_write_state:LYe,ra_aclOwner_read_object:NYe,ra_aclOwner_read_state:FYe,ra_aclOwner_write_object:zYe,ra_aclOwner_write_state:BYe,ra_buttons:jYe,ra_changedFrom:WYe,ra_close:HYe,ra_create_boolean_state:UYe,ra_create_channel:YYe,ra_create_device:VYe,ra_create_number_state:GYe,ra_create_state:qYe,ra_create_string_state:XYe,ra_daysShortText:JYe,ra_dow_Fr:ZYe,ra_dow_Mo:KYe,ra_dow_Sa:QYe,ra_dow_Su:eVe,ra_dow_Th:tVe,ra_dow_Tu:rVe,ra_dow_We:nVe,ra_expertMode:aVe,ra_fileType_all:iVe,ra_fileType_audio:oVe,ra_fileType_code:sVe,ra_fileType_images:lVe,ra_fileType_txt:cVe,ra_fileType_video:uVe,"ra_fileType_video,":"Vidéo",ra_filter_customs:dVe,ra_filter_customs_without:fVe,ra_filter_func:hVe,ra_filter_id:pVe,ra_filter_name:mVe,ra_filter_role:vVe,ra_filter_room:gVe,ra_filter_type:_Ve,"ra_import data from %s file":"Importer des données à partir du fichier %s",ra_invalidConfig:yVe,ra_lastChange:bVe,ra_locally:wVe,ra_month_Apr:SVe,ra_month_Aug:xVe,ra_month_Dec:CVe,ra_month_Feb:TVe,ra_month_Jan:kVe,ra_month_Jul:EVe,ra_month_Jun:DVe,ra_month_Mai:MVe,ra_month_Mar:OVe,ra_month_Nov:$Ve,ra_month_Oct:AVe,ra_month_Sep:PVe,ra_months_Apr:IVe,ra_months_Aug:RVe,ra_months_Dec:LVe,ra_months_Feb:NVe,ra_months_Jan:FVe,ra_months_Jul:zVe,ra_months_Jun:BVe,ra_months_Mai:jVe,ra_months_Mar:WVe,ra_months_Nov:HVe,ra_months_Oct:UVe,ra_months_Sep:YVe,ra_none:VVe,ra_object_changed_by:GVe,ra_object_changed_by_user:qVe,ra_otherConfig:XVe,ra_qualityCode:JVe,ra_repeat:ZVe,ra_select_folder_hint:KVe,ra_state_changed_by:QVe,ra_state_changed_from:eGe,ra_timestamp:tGe,ra_tooltip_ack:rGe,ra_tooltip_comment:nGe,ra_tooltip_copyState:aGe,ra_tooltip_customConfig:iGe,ra_tooltip_deleteObject:oGe,ra_tooltip_editObject:sGe,ra_tooltip_editState:lGe,ra_tooltip_from:cGe,ra_tooltip_lc:uGe,ra_tooltip_quality:dGe,ra_tooltip_ts:fGe,ra_tooltip_user:hGe,ra_tooltip_value:pGe,"ra_use seconds":"utiliser les secondes",ra_val:mGe,"ra_via internet":"par Internet",ra_warning_every_minute:vGe,ra_warning_every_second:gGe,sc_cron:_Ge,sc_date:yGe,sc_dates:bGe,sc_dow:wGe,sc_dows:SGe,sc_every:xGe,sc_everyN_dates:CGe,sc_everyN_dow:TGe,sc_everyN_dows:kGe,sc_everyN_hours:EGe,sc_everyN_minutes:DGe,sc_everyN_months:MGe,sc_everyN_seconds:OGe,sc_every_dates:$Ge,sc_every_dow:AGe,sc_every_dows:PGe,sc_every_hours:IGe,sc_every_minutes:RGe,sc_every_months:LGe,sc_every_seconds:NGe,sc_from:FGe,sc_hours:zGe,sc_interval:BGe,sc_intervalBetween:jGe,sc_invalid_cron:WGe,sc_minutes:HGe,sc_months:UGe,sc_once:YGe,sc_period:VGe,sc_seconds:GGe,sc_simple:qGe,sc_specific:XGe,sc_specific_dates:JGe,sc_specific_dow:ZGe,sc_specific_dows:KGe,sc_specific_hours:QGe,sc_specific_minutes:eqe,sc_specific_months:tqe,sc_specific_seconds:rqe,sc_time:nqe,sc_to:aqe,sc_wizard:iqe,sch_all:oqe,sch_astroDay:sqe,sch_astroNight:lqe,sch_astro_dawn:cqe,sch_astro_dusk:uqe,sch_astro_goldenHour:dqe,sch_astro_goldenHourEnd:fqe,sch_astro_nadir:hqe,sch_astro_nauticalDawn:pqe,sch_astro_nauticalDusk:mqe,sch_astro_night:vqe,sch_astro_nightEnd:gqe,sch_astro_solarNoon:_qe,sch_astro_sunrise:yqe,sch_astro_sunriseEnd:bqe,sch_astro_sunset:wqe,sch_astro_sunsetStart:Sqe,sch_at:xqe,sch_desc_atTime:Cqe,sch_desc_everyDay:Tqe,sch_desc_everyHour:kqe,sch_desc_everyMinute:Eqe,sch_desc_everyMonth:Dqe,sch_desc_everyNDay:Mqe,sch_desc_everyNHours:Oqe,sch_desc_everyNMinutes:$qe,sch_desc_everyNMonths:Aqe,sch_desc_everyNWeeks:Pqe,sch_desc_everyNYears:Iqe,sch_desc_everyWeek:Rqe,sch_desc_everyYear:Lqe,sch_desc_intervalFromTo:Nqe,sch_desc_never:Fqe,sch_desc_onDate:zqe,sch_desc_onDates:Bqe,sch_desc_onEveryDate:jqe,sch_desc_onMonth:Wqe,sch_desc_onMonths:Hqe,sch_desc_onWeekday:Uqe,sch_desc_onWeekdays:Yqe,sch_desc_onWeekends:Vqe,sch_desc_onWorkdays:Gqe,sch_desc_onceInPast:qqe,sch_desc_once_on:Xqe,sch_desc_validFrom:Jqe,sch_desc_validFromTo:Zqe,sch_desc_validTo:Kqe,sch_every:Qqe,sch_exactTime:eXe,sch_from:tXe,sch_fromTo:rXe,sch_intervalTime:nXe,sch_invert:aXe,sch_no_one:iXe,sch_on:oXe,sch_period:sXe,sch_periodDaily:lXe,sch_periodDates:cXe,sch_periodDay:uXe,sch_periodEvery:dXe,sch_periodEveryDay:fXe,sch_periodEveryMonth:hXe,sch_periodEveryWeek:pXe,sch_periodEveryYear:mXe,sch_periodHours:vXe,sch_periodMinutes:gXe,sch_periodMonth:_Xe,sch_periodMonthly:yXe,sch_periodOnce:bXe,sch_periodSpecificMonths:wXe,sch_periodWeek:SXe,sch_periodWeekdays:xXe,sch_periodWeekend:CXe,sch_periodWeekly:TXe,sch_periodWorkdays:kXe,sch_periodYear:EXe,sch_periodYearly:DXe,sch_specificTime:MXe,sch_time:OXe,sch_to:$Xe,sch_valid:AXe,sch_validFrom:PXe,sch_validTo:IXe,sch_wholeDay:RXe,sch_yearEveryMonth:LXe},FXe="Aggiungere",zXe="Annulla",BXe="Categorie",jXe="Controllato",WXe="Elimina",HXe="Vicino",UXe="Commerciale",YXe="Configura",VXe="Collegato",GXe="Copiato",qXe="Creare",XXe="Raccolto",JXe="Delete",ZXe="Elimina",KXe="Scartare",QXe="Disconnesso",eJe="Errore",tJe="Filtro",rJe="Venerdì",nJe="Latitudine",aJe="Longitudine",iJe="Messaggio",oJe="Lunedi",sJe="Nome",lJe="Oggetti",cJe="Ok",uJe="Prodotto",dJe="Ripetere",fJe="Sostituire",hJe="Radice",pJe="Sabato",mJe="Salva",vJe="Selezionato",gJe="stati",_Je="Domenica",yJe="Giovedì",bJe="Timestamp",wJe="Martedì",SJe="Aggiornare",xJe="Valido fino a",CJe="Valore",TJe="Versione",kJe="Mercoledì",EJe="Larghezza",DJe="SÌ",MJe="diverso",OJe="Tutti possono leggere gli oggetti",$Je="Tutti possono leggere lo stato",AJe="Tutti possono scrivere oggetti",PJe="Tutti possono scrivere stato",IJe="Il gruppo può leggere l'oggetto",RJe="Il gruppo può leggere lo stato",LJe="Il gruppo può scrivere l'oggetto",NJe="Il gruppo può scrivere lo stato",FJe="Il proprietario può leggere l'oggetto",zJe="Il proprietario può leggere lo stato",BJe="Il proprietario può scrivere l'oggetto",jJe="Il proprietario può scrivere lo stato",WJe="Bottoni",HJe="Cambiato da",UJe="vicino",YJe="Crea uno stato booleano",VJe="Crea canale",GJe="Crea dispositivo",qJe="Crea lo stato del numero",XJe="Crea stato",JJe="Crea lo stato della stringa",ZJe="g.",KJe="fr",QJe="momento",eZe="Sa",tZe="su",rZe="th",nZe="Tu",aZe="Noi",iZe="Modalità esperto",oZe="Tutti i files",sZe="Audio",lZe="Codice/JSON",cZe="immagini",uZe="Testo",dZe="video",fZe="impostazioni",hZe="senza",pZe="Funzione",mZe="ID",vZe="Nome",gZe="Ruolo",_Ze="Camera",yZe="genere",bZe="Impostazioni non valide",wZe="Ultima modifica",SZe="localmente",xZe="apr",CZe="agosto",TZe="Dic",kZe="febbraio",EZe="gen",DZe="lug",MZe="giu",OZe="Mai",$Ze="marzo",AZe="nov",PZe="ottobre",IZe="Sett",RZe="apr",LZe="agosto",NZe="Dic",FZe="febbraio",zZe="gen",BZe="lug",jZe="giu",WZe="Mai",HZe="marzo",UZe="nov",YZe="ottobre",VZe="Sett",GZe="nessuna",qZe="Oggetto modificato da",XZe="L'oggetto è stato modificato l'ultima volta alle",JZe="Impostazioni dall'altro adattatore %s",ZZe="Codice di qualità",KZe="ripetere",QZe='Per selezionare la cartella, basta tenere premuto il tasto "shift" facendo clic sulla cartella.',eKe="Stato cambiato da",tKe="Oggetto cambiato da",rKe="Timestamp",nKe="Bandiera riconosciuta",aKe="Commento",iKe="Copia il valore dello stato",oKe="Impostazioni personalizzate",sKe="Elimina oggetto",lKe="Modifica oggetto",cKe="Modifica il valore dello stato",uKe="A partire dal",dKe="Ultima modifica",fKe="Qualità",hKe="Data e ora",pKe="Utente",mKe="Valore",vKe="Valore",gKe="Attenzione: il processo CRON verrà eseguito ogni minuto durante il periodo specificato!",_Ke="Attenzione: il processo CRON verrà eseguito ogni secondo durante il periodo specificato!",yKe="CRON",bKe="Data",wKe="Date",SKe="Giorno",xKe="Giorno della settimana",CKe="Ogni",TKe="ogni N giorni",kKe="ogni Nesimo giorno della settimana",EKe="ogni N giorno della settimana",DKe="ogni N ore",MKe="ogni N minuti",OKe="ogni N mesi",$Ke="ogni N secondi",AKe="ogni giorno",PKe="Tutti i giorni della settimana",IKe="Tutti i giorni della settimana",RKe="ogni ora",LKe="ogni minuto",NKe="ogni mese",FKe="ogni secondo",zKe="A partire dal",BKe="Ore",jKe="Intervallo",WKe="Intervallo tra",HKe="CRON non valido",UKe="Minuti",YKe="mesi",VKe="Una volta",GKe="Periodo",qKe="secondi",XKe="Semplice",JKe="Orario preciso",ZKe="date specifiche",KKe="giorno/i specifico/i della settimana",QKe="giorno specifico delle settimane",eQe="orari specifici",tQe="minuti specifici",rQe="mesi specifici",nQe="secondi specifici",aQe="Tempo",iQe="Per",oQe="procedura guidata",sQe="tutti",lQe="Astro day",cQe="Astro night",uQe="Alba",dQe="Crepuscolo",fQe="Ora d'oro",hQe="Fine dell'ora d'oro",pQe="Nadir",mQe="Alba nautica",vQe="Crepuscolo nautico",gQe="Notte",_Qe="Fine della notte",yQe="Mezzogiorno solare",bQe="Alba",wQe="Fine dell'alba",SQe="Tramonto",xQe="Inizio del tramonto",CQe="a",TQe="a %s",kQe="ogni giorno",EQe="ogni ora",DQe="ogni minuto",MQe="ogni mese",OQe="ogni %s giorno",$Qe="ogni %s ore",AQe="ogni %s minuti",PQe="ogni %s mesi",IQe="ogni %s settimane",RQe="ogni %s anni",LQe="ogni settimana",NQe="ogni anno",FQe="da %s a %s",zQe="mai",BQe="su %s di %s",jQe="su %s e %s di",WQe="in ogni data di",HQe="%s",UQe="%s e %s",YQe="su %s",VQe="su %s e %s",GQe="nei finesettimana",qQe="nei giorni lavorativi",XQe="non verrà più eseguito, perché start è nel passato",JQe="su %s",ZQe="da %s",KQe="Eseguire da a",QQe="a %s",eet="ogni",tet="Orario preciso",ret="a partire dal",net="Da A",aet="Intervallo di tempo",iet="invertire",oet="nessuna",set="sopra",cet="Periodo",uet="Quotidiano",det="Date",fet="Giorno",het="Ogni",pet="Ogni giorno",met="Ogni mese",vet="Ogni settimana",get="Ogni anno",_et="Ore",yet="Minuti",bet="mese",wet="Mensile",xet="Una volta",Cet="Mesi specifici",Tet="Settimana",ket="Giorni della settimana",Eet="Fine settimana",Det="settimanalmente",Met="giorni feriali",Oet="Anno",$et="Annuale",Aet="Orario preciso",Pet="Tempo",Iet="per",Ret="Valido",Let="a partire dal",Net="per",Fet="Giorno intero",zet="ogni mese",Bet={"ra_%s links from aliases":"%s link da alias","ra_%s object(s) processed":"%s oggetti elaborati","ra_%s was imported":"%s è stato importato","ra_Accept license":"Accetta licenza","ra_Add new child object to selected parent":"Aggiungi un nuovo oggetto figlio al genitore selezionato","ra_Add objects tree from JSON file":"Aggiungi l'albero degli oggetti dal file JSON","ra_Add row":"Aggiungi riga","ra_Advanced options":"Opzioni avanzate","ra_All items are filtered out":"Tutti gli elementi vengono filtrati","ra_All objects":"Tutti gli oggetti",ra_Append:FXe,"ra_Append %s entries or replace existing?":"Aggiungi %s voci o sostituisci quelle esistenti?","ra_Append or replace?":"Aggiungere o sostituire?","ra_Are you sure?":"Sei sicuro?","ra_Auto (no custom columns)":"Auto (nessuna colonna personalizzata)","ra_Back to %s":"Torna a %s","ra_Background image":"Immagine di sfondo",ra_Cancel:zXe,"ra_Cannot add items with set filter":"Impossibile aggiungere elementi con il filtro impostato","ra_Cannot decode license":"Impossibile decodificare la licenza","ra_Cannot determine position: System settings are empty and GPS detection is disabled in browser":"Impossibile determinare la posizione: le impostazioni di sistema sono vuote e il rilevamento GPS è disabilitato nel browser",'ra_Cannot find "%s"':'Impossibile trovare "%s"','ra_Cannot read "%s"':'Impossibile leggere "%s"',"ra_Cannot read licenses: %s":"Impossibile leggere le licenze: %s","ra_Cannot retrieve options, as instance is offline":"Impossibile recuperare le opzioni, poiché l'istanza è offline","ra_Cannot update attribute, because not found in the object":"Impossibile aggiornare l'attributo, perché non trovato nell'oggetto","ra_Cannot upload":"Impossibile caricare",ra_Categories:BXe,"ra_Chained certificate":"Certificato incatenato","ra_Change color theme":"Cambia tema colore","ra_Changed from":"Cambiato da","ra_Channel → State":"Canale → Stato","ra_Check license":"Controlla la licenza",ra_Checked:jXe,ra_Clear:WXe,"ra_Clear filter":"Filtro pulito","ra_Clear icon":"Cancella icona","ra_Clone current row":"Clona riga corrente",ra_Close:HXe,"ra_Collapse all nodes":"Comprimi tutti i nodi","ra_Collapse one step node":"Comprimi un livello",ra_Commercial:UXe,ra_Configure:YXe,"ra_Configure visible columns":"Configura colonne visibili","ra_Confirm deletion of %s":"Conferma l'eliminazione di %s",ra_Connected:VXe,ra_Copied:GXe,"ra_Copied %s":'"%s" copiato',"ra_Copy content":"Copia contenuto",ra_Create:qXe,"ra_Create alias":"Crea alias","ra_Create folder":"Creare una cartella","ra_Create new folder in %s":"Crea nuova cartella in %s",ra_Crop:XXe,"ra_Define CRON...":"Definisci CRON...","ra_Define functions":"Definire le funzioni","ra_Define rooms":"Definisci le stanze","ra_Define schedule":"Definisci programma","ra_Define schedule...":"Definisci pianificazione ...",ra_Del:JXe,ra_Delete:ZXe,"ra_Delete (no confirm for 5 mins)":"Elimina (nessuna conferma per 5 minuti)","ra_Delete current row":"Elimina la riga corrente","ra_Deselect all":"Deseleziona tutto","ra_Device → Channel → State":"Dispositivo → Canale → Stato",ra_Discard:KXe,ra_Disconnected:QXe,"ra_Do not export values of states":"Non esportare i valori degli stati","ra_Do not use let's encrypt":"Non utilizzare crittografiamo","ra_Double click to reset table layout":"Fare doppio clic per ripristinare il layout della tabella","ra_Drag 'n' drop some files here, or click to select files":"Trascina e rilascia alcuni file qui o fai clic per selezionare i file","ra_Drop file here":"Trascina il file qui","ra_Drop the files here...":"Trascina qui il file...","ra_Duplicate name":"Nome duplicato","ra_Edit ACL":"Modifica ACL","ra_Edit alias":"Modifica alias","ra_Edit custom config":"Modifica configurazione personalizzata","ra_Edit function":"Funzione di modifica","ra_Edit object field":"Modifica campo oggetto","ra_Edit role":"Modifica ruolo","ra_Edit room":"Modifica stanza","ra_Edit value":"Modifica valore",ra_Error:eJe,"ra_Expand all nodes":"Espandi tutti i nodi","ra_Expand one step node":"Espandi un livello","ra_Export data to %s file":"Esporta i dati nel file %s","ra_Failed to open JSON File":"Impossibile aprire il file JSON","ra_Fallback custom certificates":"Certificati personalizzati di fallback","ra_File is too big. Max %sk allowed. Try use SVG.":"Il file è troppo grande. Max %sk consentito. Prova a usare SVG.",ra_Filter:tJe,"ra_Filter files":"Filtra i file","ra_Folder name":"Nome della cartella","ra_Folder → Channel → State":"Cartella → Canale → Stato","ra_Folder → Device → Channel → State":"Cartella → Dispositivo → Canale → Stato","ra_Folder → State":"Cartella → Stato","ra_Folders always first":"Le cartelle sono sempre al primo posto",ra_Friday:rJe,"ra_Good luck":"Buona fortuna","ra_Hide empty folders":"Nascondi cartelle vuote","ra_If no file will be created in the folder, it will disappear after the browser closed":"Se nessun file verrà creato nella cartella, scomparirà dopo la chiusura del browser","ra_Import data from %s file":"Importa i dati dal file %s","ra_Import from %s":"Importa da %s","ra_Instance %s is alive":"Il %s dell'istanza è vivo","ra_Instance %s is not alive":"Il TESTO dell'istanza non è vivo","ra_Instance is not alive":"L'istanza non è viva","ra_Invalid CRON":"CRON non valido","ra_Invalid JSON":"JSON non valido","ra_Invalid answer from server":"Risposta non valida dal server","ra_Invalid parent folder!":"Cartella principale non valida!","ra_Invalid structure":"Struttura non valida","ra_JSON editor":"Editor JSON","ra_Last change":"Ultima modifica",ra_Latitude:nJe,"ra_License %s":"Licenza %s","ra_License agreement":"Contratto di licenza","ra_License does not exist":"La licenza non esiste","ra_License expired on %s":"Licenza scaduta il %s",'ra_License for other product "%s"':'Licenza per altro prodotto "%s"',"ra_License is for version %s, but required version is %s.":"La licenza è per la versione %s, ma la versione richiesta è %s.","ra_License must be converted":"La licenza deve essere convertita in una versione più recente. Puoi farlo nel tuo profilo iobroker.net.","ra_License not found in license manager. Do you want to read licenses from iobroker.net?":"Licenza non trovata nel gestore delle licenze. Vuoi aggiornare le licenze da iobroker.net?","ra_Listen on all IPs":"Ascolta su tutti gli IP","ra_Load configuration from file":"Carica la configurazione dal file",ra_Longitude:aJe,'ra_May not trigger "updateLicenses"':'Potrebbe non attivare "updateLicenses"',ra_Message:iJe,ra_Monday:oJe,"ra_Move down":"Abbassati","ra_Move up":"Andare avanti",ra_Name:sJe,"ra_No data found in file":"Nessun dato trovato nel file","ra_No one license found in license manager":"Nessuna licenza trovata nel gestore delle licenze","ra_No response from the backend":"Nessuna risposta dal backend",'ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".':'I non esperti possono creare nuovi oggetti solo in "0_userdata.0" o "alias.0".',"ra_Not a number":"Non un numero",ra_Objects:lJe,ra_Ok:cJe,"ra_On weekdays":"Nei giorni della settimana","ra_Only following structures of objects are available:":"Sono disponibili solo le seguenti strutture di oggetti:","ra_Only selected":"Solo selezionato","ra_Owner group":"Gruppo di proprietari","ra_Owner user":"Utente proprietario","ra_Passwords are not equal!":"Le password non sono uguali!","ra_Place your files here or click here to open the browse dialog":"Posiziona i file qui o fai clic qui per aprire la finestra di dialogo Sfoglia","ra_Please confirm":"Si prega di confermare","ra_Please create license":"Si prega di creare la licenza","ra_Please enter the license":"Inserisci la licenza","ra_Please select file...":"Si prega di selezionare il file...","ra_Please select object ID...":"Seleziona l'ID oggetto ...","ra_Port could be used by %s":"La porta potrebbe essere utilizzata da %s","ra_Port is already used by %s":"La porta è già utilizzata da %s","ra_Private certificate":"Certificato privato",ra_Product:uJe,"ra_Public certificate":"Certificato pubblico","ra_Quality code":"Qualità","ra_Refresh tree":"Aggiorna l'albero","ra_Reload files":"Ricarica i file",ra_Repeat:dJe,ra_Replace:fJe,"ra_Request timed out":"Tempo scaduto per la richiesta","ra_Restrict to folder":"Limita alla cartella",ra_Root:hJe,ra_Saturday:pJe,ra_Save:mJe,"ra_Save and close":"Salva e chiudi","ra_Save configuration to file":"Salva la configurazione su file","ra_Save objects tree as JSON file":"Salva l'albero degli oggetti come file JSON","ra_Select all":"Seleziona tutto","ra_Select color":"Seleziona il colore","ra_Select predefined icon":"Seleziona l'icona predefinita","ra_Select type of export":"Seleziona il tipo di esportazione",ra_Selected:vJe,"ra_Selected %s object(s)":"%s oggetto/i selezionato/i","ra_Serial number (UUID)":"Numero di serie (UUID)",'ra_Serial number (UUID) "%s" in license is for other device.':'Il numero di serie (UUID) "%s" nella licenza è per un altro dispositivo.',"ra_Show all folders":"Mostra tutte le cartelle","ra_Show lines between rows":"Mostra linee tra le righe","ra_Show/Hide object descriptions":"Mostra/Nascondi le descrizioni degli oggetti","ra_Show/hide filter input":"Mostra/nascondi input filtro","ra_Some data are not stored. Discard?":"Alcuni dati non vengono memorizzati. Scartare?",ra_States:gJe,"ra_Suitable license not found in license manager":"Licenza adatta non trovata nel gestore delle licenze",ra_Sunday:_Je,"ra_Suppress question for next %s minutes":"Sopprimi la domanda per i prossimi %s minuti","ra_System language":"Linguaggio di sistema","ra_Take browser position":"Prendi posizione dal browser","ra_Take position from system settings":"Prendi posizione dalle impostazioni di sistema",'ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").':'Gli esperti possono creare oggetti ovunque ma dal secondo livello (es. "Vis.0" o "javascript.0").',"ra_The page you are looking for was not found":"La pagina che stai cercando non è stata trovata","ra_The schedule will be executed every minute. Are you sure?":"La pianificazione verrà eseguita ogni minuto. Sei sicuro?","ra_The schedule will be executed every second. Are you sure?":"La pianificazione verrà eseguita ogni secondo. Sei sicuro?",ra_Thursday:yJe,ra_Timestamp:bJe,"ra_Toggle expert mode":"Attiva / disattiva la modalità esperto","ra_Toggle the states view":"Attiva o disattiva la visualizzazione degli stati","ra_Toggle view mode":"Attiva / disattiva la modalità di visualizzazione","ra_Too big":"Troppo grande","ra_Too small":"Troppo piccolo","ra_Transparent dialog":"Finestra di dialogo trasparente",ra_Tuesday:wJe,"ra_Unknown error":"Errore sconosciuto","ra_Unknown error!":"Errore sconosciuto!",ra_Update:SJe,"ra_Upload file":"Caricare un file","ra_Use all available let's encrypt certificates":"Usa tutti i certificati Let's Encrypt disponibili","ra_Use iobroker.acme adapter for letsencrypt certificates":"Utilizzare l'adattatore iobroker.acme per i certificati letsencrypt","ra_Use system settings for position":"Usa le impostazioni di sistema per la posizione","ra_Used system settings":"Impostazioni di sistema utilizzate","ra_User files":"File utente",ra_ValidTill:xJe,ra_Value:CJe,ra_Version:TJe,"ra_View file":"Vedi il file","ra_View: %s":"Visualizza: %s",ra_Wednesday:kJe,ra_Width:EJe,ra_Yes:DJe,"ra_You can export all objects or just the selected branch.":"Puoi esportare tutti gli oggetti o solo il ramo selezionato.","ra_You can filter entries by entering here some text":"Puoi filtrare le voci inserendo qui del testo",ra___different__:MJe,ra_aclEveryone_read_object:OJe,ra_aclEveryone_read_state:$Je,ra_aclEveryone_write_object:AJe,ra_aclEveryone_write_state:PJe,ra_aclGroup_read_object:IJe,ra_aclGroup_read_state:RJe,ra_aclGroup_write_object:LJe,ra_aclGroup_write_state:NJe,ra_aclOwner_read_object:FJe,ra_aclOwner_read_state:zJe,ra_aclOwner_write_object:BJe,ra_aclOwner_write_state:jJe,ra_buttons:WJe,ra_changedFrom:HJe,ra_close:UJe,ra_create_boolean_state:YJe,ra_create_channel:VJe,ra_create_device:GJe,ra_create_number_state:qJe,ra_create_state:XJe,ra_create_string_state:JJe,ra_daysShortText:ZJe,ra_dow_Fr:KJe,ra_dow_Mo:QJe,ra_dow_Sa:eZe,ra_dow_Su:tZe,ra_dow_Th:rZe,ra_dow_Tu:nZe,ra_dow_We:aZe,ra_expertMode:iZe,ra_fileType_all:oZe,ra_fileType_audio:sZe,ra_fileType_code:lZe,ra_fileType_images:cZe,ra_fileType_txt:uZe,ra_fileType_video:dZe,"ra_fileType_video,":"video",ra_filter_customs:fZe,ra_filter_customs_without:hZe,ra_filter_func:pZe,ra_filter_id:mZe,ra_filter_name:vZe,ra_filter_role:gZe,ra_filter_room:_Ze,ra_filter_type:yZe,"ra_import data from %s file":"Importa dati dal file %s",ra_invalidConfig:bZe,ra_lastChange:wZe,ra_locally:SZe,ra_month_Apr:xZe,ra_month_Aug:CZe,ra_month_Dec:TZe,ra_month_Feb:kZe,ra_month_Jan:EZe,ra_month_Jul:DZe,ra_month_Jun:MZe,ra_month_Mai:OZe,ra_month_Mar:$Ze,ra_month_Nov:AZe,ra_month_Oct:PZe,ra_month_Sep:IZe,ra_months_Apr:RZe,ra_months_Aug:LZe,ra_months_Dec:NZe,ra_months_Feb:FZe,ra_months_Jan:zZe,ra_months_Jul:BZe,ra_months_Jun:jZe,ra_months_Mai:WZe,ra_months_Mar:HZe,ra_months_Nov:UZe,ra_months_Oct:YZe,ra_months_Sep:VZe,ra_none:GZe,ra_object_changed_by:qZe,ra_object_changed_by_user:XZe,ra_otherConfig:JZe,ra_qualityCode:ZZe,ra_repeat:KZe,ra_select_folder_hint:QZe,ra_state_changed_by:eKe,ra_state_changed_from:tKe,ra_timestamp:rKe,ra_tooltip_ack:nKe,ra_tooltip_comment:aKe,ra_tooltip_copyState:iKe,ra_tooltip_customConfig:oKe,ra_tooltip_deleteObject:sKe,ra_tooltip_editObject:lKe,ra_tooltip_editState:cKe,ra_tooltip_from:uKe,ra_tooltip_lc:dKe,ra_tooltip_quality:fKe,ra_tooltip_ts:hKe,ra_tooltip_user:pKe,ra_tooltip_value:mKe,"ra_use seconds":"usa i secondi",ra_val:vKe,"ra_via internet":"attraverso internet",ra_warning_every_minute:gKe,ra_warning_every_second:_Ke,sc_cron:yKe,sc_date:bKe,sc_dates:wKe,sc_dow:SKe,sc_dows:xKe,sc_every:CKe,sc_everyN_dates:TKe,sc_everyN_dow:kKe,sc_everyN_dows:EKe,sc_everyN_hours:DKe,sc_everyN_minutes:MKe,sc_everyN_months:OKe,sc_everyN_seconds:$Ke,sc_every_dates:AKe,sc_every_dow:PKe,sc_every_dows:IKe,sc_every_hours:RKe,sc_every_minutes:LKe,sc_every_months:NKe,sc_every_seconds:FKe,sc_from:zKe,sc_hours:BKe,sc_interval:jKe,sc_intervalBetween:WKe,sc_invalid_cron:HKe,sc_minutes:UKe,sc_months:YKe,sc_once:VKe,sc_period:GKe,sc_seconds:qKe,sc_simple:XKe,sc_specific:JKe,sc_specific_dates:ZKe,sc_specific_dow:KKe,sc_specific_dows:QKe,sc_specific_hours:eQe,sc_specific_minutes:tQe,sc_specific_months:rQe,sc_specific_seconds:nQe,sc_time:aQe,sc_to:iQe,sc_wizard:oQe,sch_all:sQe,sch_astroDay:lQe,sch_astroNight:cQe,sch_astro_dawn:uQe,sch_astro_dusk:dQe,sch_astro_goldenHour:fQe,sch_astro_goldenHourEnd:hQe,sch_astro_nadir:pQe,sch_astro_nauticalDawn:mQe,sch_astro_nauticalDusk:vQe,sch_astro_night:gQe,sch_astro_nightEnd:_Qe,sch_astro_solarNoon:yQe,sch_astro_sunrise:bQe,sch_astro_sunriseEnd:wQe,sch_astro_sunset:SQe,sch_astro_sunsetStart:xQe,sch_at:CQe,sch_desc_atTime:TQe,sch_desc_everyDay:kQe,sch_desc_everyHour:EQe,sch_desc_everyMinute:DQe,sch_desc_everyMonth:MQe,sch_desc_everyNDay:OQe,sch_desc_everyNHours:$Qe,sch_desc_everyNMinutes:AQe,sch_desc_everyNMonths:PQe,sch_desc_everyNWeeks:IQe,sch_desc_everyNYears:RQe,sch_desc_everyWeek:LQe,sch_desc_everyYear:NQe,sch_desc_intervalFromTo:FQe,sch_desc_never:zQe,sch_desc_onDate:BQe,sch_desc_onDates:jQe,sch_desc_onEveryDate:WQe,sch_desc_onMonth:HQe,sch_desc_onMonths:UQe,sch_desc_onWeekday:YQe,sch_desc_onWeekdays:VQe,sch_desc_onWeekends:GQe,sch_desc_onWorkdays:qQe,sch_desc_onceInPast:XQe,sch_desc_once_on:JQe,sch_desc_validFrom:ZQe,sch_desc_validFromTo:KQe,sch_desc_validTo:QQe,sch_every:eet,sch_exactTime:tet,sch_from:ret,sch_fromTo:net,sch_intervalTime:aet,sch_invert:iet,sch_no_one:oet,sch_on:set,sch_period:cet,sch_periodDaily:uet,sch_periodDates:det,sch_periodDay:fet,sch_periodEvery:het,sch_periodEveryDay:pet,sch_periodEveryMonth:met,sch_periodEveryWeek:vet,sch_periodEveryYear:get,sch_periodHours:_et,sch_periodMinutes:yet,sch_periodMonth:bet,sch_periodMonthly:wet,sch_periodOnce:xet,sch_periodSpecificMonths:Cet,sch_periodWeek:Tet,sch_periodWeekdays:ket,sch_periodWeekend:Eet,sch_periodWeekly:Det,sch_periodWorkdays:Met,sch_periodYear:Oet,sch_periodYearly:$et,sch_specificTime:Aet,sch_time:Pet,sch_to:Iet,sch_valid:Ret,sch_validFrom:Let,sch_validTo:Net,sch_wholeDay:Fet,sch_yearEveryMonth:zet},jet="Adjuntar",Wet="Cancelar",Het="Categorías",Uet="Comprobado",Yet="Borrar",Vet="Cerca",Get="Comercial",qet="Configurar",Xet="Conectado",Jet="Copiado",Zet="Crear",Ket="Cultivo",Qet="Delete",ett="Eliminar",ttt="Desechar",rtt="Desconectado",ntt="Error",att="Filtrar",itt="Viernes",ott="Latitud",stt="Longitud",ltt="Mensaje",ctt="Lunes",utt="Nombre",dtt="Objetos",ftt="Okay",htt="Producto",ptt="Repetir",mtt="Reemplazar",vtt="Raíz",gtt="Sábado",_tt="Salvar",ytt="Seleccionado",btt="Estados",wtt="Domingo",Stt="Jueves",xtt="Marca de tiempo",Ctt="Martes",Ttt="Actualizar",ktt="Válida hasta",Ett="Valor",Dtt="Versión",Mtt="Miércoles",Ott="Anchura",$tt="Sí",Att="diferente",Ptt="Todo el mundo puede leer el objeto",Itt="Todos pueden leer el estado",Rtt="Todos pueden escribir objetos",Ltt="Todos pueden escribir el estado",Ntt="El grupo puede leer el objeto",Ftt="El grupo puede leer el estado",ztt="El grupo puede escribir un objeto",Btt="El grupo puede escribir el estado",jtt="El propietario puede leer el objeto",Wtt="El propietario puede leer el estado",Htt="El propietario puede escribir el objeto",Utt="El propietario puede escribir el estado",Ytt="Botones",Vtt="Cambiaron desde",Gtt="cerrar",qtt="Crear estado booleano",Xtt="Crear canal",Jtt="Crear dispositivo",Ztt="Crear estado numérico",Ktt="Crear estado",Qtt="Crear estado de cadena",ert="d.",trt="Fr",rrt="Mes",nrt="Sa",art="Su",irt="Th",ort="Tu",srt="Nosotros",lrt="Modo experto",crt="Todos los archivos",urt="Audio",drt="Código/JSON",frt="Imágenes",hrt="Texto",prt="Video",mrt="Configuraciones",vrt="sin",grt="Función",_rt="ID",yrt="Nombre",brt="Papel",wrt="Habitación",Srt="Tipo",xrt="Configuraciones inválidas",Crt="Ultimo cambio",Trt="en la zona",krt="Abr",Ert="Ago",Drt="Dic",Mrt="Feb",Ort="Ene",$rt="Jul",Art="Jun",Prt="Mai",Irt="Mar",Rrt="Nov",Lrt="Oct",Nrt="Sep",Frt="Abr",zrt="Ago",Brt="Dic",jrt="Feb",Wrt="Ene",Hrt="Jul",Urt="Jun",Yrt="Mai",Vrt="Mar",Grt="Nov",qrt="Oct",Xrt="Sep",Jrt="ninguno",Zrt="Objeto cambiado por",Krt="Objeto cambiado por última vez a las",Qrt="Configuraciones de otro adaptador %s",ent="Código de calidad",tnt="repetir",rnt='Para seleccionar la carpeta, simplemente mantenga presionada la tecla "shift" haciendo clic en la carpeta.',nnt="Estado cambiado por",ant="Objeto cambiado de",int="Marca de tiempo",ont="Bandera reconocida",snt="Comentario",lnt="Copie el valor del estado",cnt="Ajustes personalizados",unt="Eliminar objeto",dnt="Editar objeto",fnt="Edite el valor del estado",hnt="Desde",pnt="Último cambio",mnt="Calidad",vnt="Sello de tiempo",gnt="Usuario",_nt="Valor",ynt="Valor",bnt="Advertencia: ¡El trabajo CRON se ejecutará cada minuto durante el período especificado!",wnt="Advertencia: ¡El trabajo CRON se ejecutará cada segundo durante el período especificado!",Snt="CRON",xnt="Fecha",Cnt="fechas",Tnt="Día",knt="Día de la semana",Ent="Cada",Dnt="cada N días",Mnt="cada enésimo día de la semana",Ont="cada N día de la semana",$nt="cada N horas",Ant="cada N minutos",Pnt="cada N meses",Int="cada N segundos",Rnt="cada día",Lnt="Cada día de la semana",Nnt="Cada día de la semana",Fnt="cada hora",znt="cada minuto",Bnt="cada mes",jnt="cada segundo",Wnt="De",Hnt="Horas",Unt="Intervalo",Ynt="Intervalo entre",Vnt="CRON no válido",Gnt="Minutos",qnt="meses",Xnt="Una vez",Jnt="Período",Znt="Segundos",Knt="Sencillo",Qnt="Tiempo específico",eat="fechas especificas",tat="día(s) específico(s) de la semana",rat="día específico de semanas",nat="horas específicas",aat="minutos específicos",iat="meses específicos",oat="segundos específicos",sat="Hora",lat="A",cat="Mago",uat="todas",dat="Día astro",fat="Noche astro",hat="Amanecer",pat="Oscuridad",mat="hora dorada",vat="Fin de la hora dorada",gat="Nadir",_at="Amanecer náutico",yat="Anochecer náutico",bat="Noche",wat="Fin de la noche",Sat="Mediodía solar",xat="amanecer",Cat="Fin del amanecer",Tat="Puesta de sol",kat="Puesta de sol",Eat="a",Dat="en %s",Mat="cada día",Oat="cada hora",$at="cada minuto",Aat="cada mes",Pat="cada %s días",Iat="cada %s horas",Rat="cada %s minutos",Lat="cada %s meses",Nat="cada %s semanas",Fat="cada %s años",zat="cada semana",Bat="todos los años",jat="de %s a %s",Wat="Nunca",Hat="en %s de %s",Uat="en %s y %s de",Yat="en cada fecha de",Vat="%s",Gat="%s y %s",qat="en %s",Xat="en %s y %s",Jat="en los fines de semana",Zat="en días laborables",Kat="ya no se ejecutará más, porque el inicio está en el pasado",Qat="en %s",eit="de %s",tit="Ejecutar desde hasta",rit="a %s",nit="cada",ait="Tiempo específico",iit="de",oit="De-a",sit="Tiempo de intervalo",lit="invertir; poner boca abajo o en la posición opuesta, orden o arreglo; Boca abajo",cit="ninguna",uit="en",dit="Período",fit="Diario",hit="fechas",pit="Día",mit="Cada",vit="Cada día",git="Cada mes",_it="Cada semana",yit="Todos los años",bit="Horas",wit="Minutos",Sit="mes",xit="Mensual",Cit="Una vez",Tit="Meses específicos",kit="Semana",Eit="Días laborables",Dit="Fin de semana",Mit="Semanal",Oit="Días laborables",$it="Año",Ait="Anual",Pit="Tiempo específico",Iit="Hora",Rit="a",Lit="Válido",Nit="de",Fit="a",zit="Todo el dia",Bit="cada mes",jit={"ra_%s links from aliases":"%s enlaces de alias","ra_%s object(s) processed":"%s objeto(s) procesados","ra_%s was imported":"%s fue importado","ra_Accept license":"Aceptar licencia","ra_Add new child object to selected parent":"Agregar nuevo objeto hijo al padre seleccionado","ra_Add objects tree from JSON file":"Agregar árbol de objetos desde el archivo JSON","ra_Add row":"Añadir fila","ra_Advanced options":"Opciones avanzadas","ra_All items are filtered out":"Todos los elementos se filtran","ra_All objects":"Todos los objetos",ra_Append:jet,"ra_Append %s entries or replace existing?":"¿Agregar %s entradas o reemplazar las existentes?","ra_Append or replace?":"¿Agregar o reemplazar?","ra_Are you sure?":"¿Estás seguro?","ra_Auto (no custom columns)":"Automático (sin columnas personalizadas)","ra_Back to %s":"Volver a %s","ra_Background image":"Imagen de fondo",ra_Cancel:Wet,"ra_Cannot add items with set filter":"No se pueden agregar elementos con el filtro establecido","ra_Cannot decode license":"No se puede decodificar la licencia","ra_Cannot determine position: System settings are empty and GPS detection is disabled in browser":"No se puede determinar la posición: la configuración del sistema está vacía y la detección de GPS está deshabilitada en el navegador",'ra_Cannot find "%s"':'No se puede encontrar "%s"','ra_Cannot read "%s"':'No se puede leer "%s"',"ra_Cannot read licenses: %s":"No se pueden leer licencias: %s","ra_Cannot retrieve options, as instance is offline":"No se pueden recuperar las opciones, ya que la instancia está fuera de línea","ra_Cannot update attribute, because not found in the object":"No se puede actualizar el atributo porque no se encuentra en el objeto","ra_Cannot upload":"no se puede cargar",ra_Categories:Het,"ra_Chained certificate":"certificado encadenado","ra_Change color theme":"Cambiar tema de color","ra_Changed from":"Cambiaron desde","ra_Channel → State":"Canal → Estado","ra_Check license":"Verificar licencia",ra_Checked:Uet,ra_Clear:Yet,"ra_Clear filter":"Filtro claro","ra_Clear icon":"Icono claro","ra_Clone current row":"Clonar fila actual",ra_Close:Vet,"ra_Collapse all nodes":"Contraer todos los nodos","ra_Collapse one step node":"Contraer un nivel",ra_Commercial:Get,ra_Configure:qet,"ra_Configure visible columns":"Configurar columnas visibles","ra_Confirm deletion of %s":"Confirmar la eliminación de %s",ra_Connected:Xet,ra_Copied:Jet,"ra_Copied %s":'Copiado "%s"',"ra_Copy content":"Copiar contenido",ra_Create:Zet,"ra_Create alias":"Crear alias","ra_Create folder":"Crear carpeta","ra_Create new folder in %s":"Crear nueva carpeta en %s",ra_Crop:Ket,"ra_Define CRON...":"Definir CRON...","ra_Define functions":"Definir funciones","ra_Define rooms":"Definir habitaciones","ra_Define schedule":"Definir horario","ra_Define schedule...":"Definir horario ...",ra_Del:Qet,ra_Delete:ett,"ra_Delete (no confirm for 5 mins)":"Eliminar (sin confirmar durante 5 minutos)","ra_Delete current row":"Eliminar fila actual","ra_Deselect all":"Deselecciona todo","ra_Device → Channel → State":"Dispositivo → Canal → Estado",ra_Discard:ttt,ra_Disconnected:rtt,"ra_Do not export values of states":"No exportar valores de estados.","ra_Do not use let's encrypt":"No use vamos a cifrar","ra_Double click to reset table layout":"Haga doble clic para restablecer el diseño de la tabla","ra_Drag 'n' drop some files here, or click to select files":"Arrastre y suelte algunos archivos aquí, o haga clic para seleccionar archivos","ra_Drop file here":"Suelta el archivo aquí","ra_Drop the files here...":"Suelta el archivo aquí ...","ra_Duplicate name":"Nombre duplicado","ra_Edit ACL":"Editar LCA","ra_Edit alias":"Editar alias","ra_Edit custom config":"Editar configuración personalizada","ra_Edit function":"Función de edición","ra_Edit object field":"Editar campo de objeto","ra_Edit role":"Editar rol","ra_Edit room":"Cuarto de edición","ra_Edit value":"Editar valor",ra_Error:ntt,"ra_Expand all nodes":"Expandir todos los nodos","ra_Expand one step node":"Expandir un nivel","ra_Export data to %s file":"Exportar datos al archivo %s","ra_Failed to open JSON File":"No se pudo abrir el archivo JSON","ra_Fallback custom certificates":"Certificados personalizados alternativos","ra_File is too big. Max %sk allowed. Try use SVG.":"El archivo es demasiado grande. Máximo de %sk permitido. Intenta usar SVG.",ra_Filter:att,"ra_Filter files":"Filtrar archivos","ra_Folder name":"Nombre de la carpeta","ra_Folder → Channel → State":"Carpeta → Canal → Estado","ra_Folder → Device → Channel → State":"Carpeta → Dispositivo → Canal → Estado","ra_Folder → State":"Carpeta → Estado","ra_Folders always first":"Carpetas siempre primero",ra_Friday:itt,"ra_Good luck":"Buena suerte","ra_Hide empty folders":"Ocultar carpetas vacías","ra_If no file will be created in the folder, it will disappear after the browser closed":"Si no se creará ningún archivo en la carpeta, desaparecerá después de que se cierre el navegador.","ra_Import data from %s file":"Importar datos del archivo %s","ra_Import from %s":"Importar desde %s","ra_Instance %s is alive":"Instancia %s está vivo","ra_Instance %s is not alive":"Instancia %s no está vivo","ra_Instance is not alive":"La instancia no está viva","ra_Invalid CRON":"CRON no válido","ra_Invalid JSON":"JSON no válido","ra_Invalid answer from server":"Respuesta inválida del servidor","ra_Invalid parent folder!":"Carpeta principal no válida.","ra_Invalid structure":"Estructura inválida","ra_JSON editor":"editor JSON","ra_Last change":"Ultimo cambio",ra_Latitude:ott,"ra_License %s":"Licencia %s","ra_License agreement":"Acuerdo de licencia","ra_License does not exist":"La licencia no existe","ra_License expired on %s":"La licencia venció el %s",'ra_License for other product "%s"':'Licencia para otro producto "%s"',"ra_License is for version %s, but required version is %s.":"La licencia es para la versión %s, pero la versión requerida es %s.","ra_License must be converted":"La licencia debe convertirse a una versión más reciente. Puedes hacerlo en tu perfil de iobroker.net.","ra_License not found in license manager. Do you want to read licenses from iobroker.net?":"Licencia no encontrada en el administrador de licencias. ¿Quieres actualizar las licencias de iobroker.net?","ra_Listen on all IPs":"Escuche en todas las IP","ra_Load configuration from file":"Cargar configuración desde archivo",ra_Longitude:stt,'ra_May not trigger "updateLicenses"':'No puede activar "updateLicenses"',ra_Message:ltt,ra_Monday:ctt,"ra_Move down":"Mover hacia abajo","ra_Move up":"Ascender",ra_Name:utt,"ra_No data found in file":"No se encontraron datos en el archivo","ra_No one license found in license manager":"No se encontró ninguna licencia en el administrador de licencias","ra_No response from the backend":"No hay respuesta del backend",'ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".':'Los no expertos pueden crear nuevos objetos solo en "0_userdata.0" o "alias.0".',"ra_Not a number":"No un número",ra_Objects:dtt,ra_Ok:ftt,"ra_On weekdays":"De lunes a viernes","ra_Only following structures of objects are available:":"Solo están disponibles las siguientes estructuras de objetos:","ra_Only selected":"Solo seleccionados","ra_Owner group":"Grupo propietario","ra_Owner user":"Usuario propietario","ra_Passwords are not equal!":"¡Las contraseñas no son iguales!","ra_Place your files here or click here to open the browse dialog":"Coloque sus archivos aquí o haga clic aquí para abrir el cuadro de diálogo de exploración","ra_Please confirm":"Por favor confirmar","ra_Please create license":"Por favor cree una licencia","ra_Please enter the license":"Por favor ingrese la licencia","ra_Please select file...":"Seleccione el archivo...","ra_Please select object ID...":"Por favor seleccione ID de objeto ...","ra_Port could be used by %s":"El puerto podría ser utilizado por %s","ra_Port is already used by %s":"El puerto ya está en uso por %s","ra_Private certificate":"certificado privado",ra_Product:htt,"ra_Public certificate":"Certificado público","ra_Quality code":"Calidad","ra_Refresh tree":"Actualizar árbol","ra_Reload files":"Recargar archivos",ra_Repeat:ptt,ra_Replace:mtt,"ra_Request timed out":"Tiempo de espera agotado","ra_Restrict to folder":"Restringir a carpeta",ra_Root:vtt,ra_Saturday:gtt,ra_Save:_tt,"ra_Save and close":"Guardar y cerrar","ra_Save configuration to file":"Guardar configuración en archivo","ra_Save objects tree as JSON file":"Guardar el árbol de objetos como archivo JSON","ra_Select all":"Seleccionar todo","ra_Select color":"Seleccionar el color","ra_Select predefined icon":"Seleccionar icono predefinido","ra_Select type of export":"Seleccione tipo de exportación",ra_Selected:ytt,"ra_Selected %s object(s)":"%s objetos seleccionados","ra_Serial number (UUID)":"Número de serie (UUID)",'ra_Serial number (UUID) "%s" in license is for other device.':'El número de serie (UUID) "%s" en la licencia es para otro dispositivo.',"ra_Show all folders":"Mostrar todas las carpetas","ra_Show lines between rows":"Mostrar líneas entre filas","ra_Show/Hide object descriptions":"Mostrar/ocultar descripciones de objetos","ra_Show/hide filter input":"Mostrar/ocultar entrada de filtro","ra_Some data are not stored. Discard?":"Algunos datos no se almacenan. ¿Desechar?",ra_States:btt,"ra_Suitable license not found in license manager":"Licencia adecuada no encontrada en el administrador de licencias",ra_Sunday:wtt,"ra_Suppress question for next %s minutes":"Suprimir pregunta durante los próximos %s minutos","ra_System language":"Lenguaje del sistema","ra_Take browser position":"Tomar posición desde el navegador","ra_Take position from system settings":"Tomar posición desde la configuración del sistema",'ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").':'Los expertos pueden crear objetos en todas partes excepto desde el segundo nivel (por ejemplo, "vis.0" o "javascript.0").',"ra_The page you are looking for was not found":"No se encontró la página que busca","ra_The schedule will be executed every minute. Are you sure?":"El cronograma se ejecutará cada minuto. ¿Estás seguro?","ra_The schedule will be executed every second. Are you sure?":"El cronograma se ejecutará cada segundo. ¿Estás seguro?",ra_Thursday:Stt,ra_Timestamp:xtt,"ra_Toggle expert mode":"Alternar modo experto","ra_Toggle the states view":"Alternar la vista de estados","ra_Toggle view mode":"Alternar modo de vista","ra_Too big":"Demasiado grande","ra_Too small":"Demasiado pequeña","ra_Transparent dialog":"Diálogo transparente",ra_Tuesday:Ctt,"ra_Unknown error":"Error desconocido","ra_Unknown error!":"¡Error desconocido!",ra_Update:Ttt,"ra_Upload file":"Subir archivo","ra_Use all available let's encrypt certificates":"Utilice todos los certificados let's encrypt disponibles","ra_Use iobroker.acme adapter for letsencrypt certificates":"Use el adaptador iobroker.acme para los certificados de letsencrypt","ra_Use system settings for position":"Usar la configuración del sistema para la posición","ra_Used system settings":"Configuraciones del sistema usadas","ra_User files":"Archivos de usuario",ra_ValidTill:ktt,ra_Value:Ett,ra_Version:Dtt,"ra_View file":"Ver archivo","ra_View: %s":"Ver: %s",ra_Wednesday:Mtt,ra_Width:Ott,ra_Yes:$tt,"ra_You can export all objects or just the selected branch.":"Puede exportar todos los objetos o solo la rama seleccionada.","ra_You can filter entries by entering here some text":"Puede filtrar las entradas ingresando aquí algún texto",ra___different__:Att,ra_aclEveryone_read_object:Ptt,ra_aclEveryone_read_state:Itt,ra_aclEveryone_write_object:Rtt,ra_aclEveryone_write_state:Ltt,ra_aclGroup_read_object:Ntt,ra_aclGroup_read_state:Ftt,ra_aclGroup_write_object:ztt,ra_aclGroup_write_state:Btt,ra_aclOwner_read_object:jtt,ra_aclOwner_read_state:Wtt,ra_aclOwner_write_object:Htt,ra_aclOwner_write_state:Utt,ra_buttons:Ytt,ra_changedFrom:Vtt,ra_close:Gtt,ra_create_boolean_state:qtt,ra_create_channel:Xtt,ra_create_device:Jtt,ra_create_number_state:Ztt,ra_create_state:Ktt,ra_create_string_state:Qtt,ra_daysShortText:ert,ra_dow_Fr:trt,ra_dow_Mo:rrt,ra_dow_Sa:nrt,ra_dow_Su:art,ra_dow_Th:irt,ra_dow_Tu:ort,ra_dow_We:srt,ra_expertMode:lrt,ra_fileType_all:crt,ra_fileType_audio:urt,ra_fileType_code:drt,ra_fileType_images:frt,ra_fileType_txt:hrt,ra_fileType_video:prt,"ra_fileType_video,":"Video",ra_filter_customs:mrt,ra_filter_customs_without:vrt,ra_filter_func:grt,ra_filter_id:_rt,ra_filter_name:yrt,ra_filter_role:brt,ra_filter_room:wrt,ra_filter_type:Srt,"ra_import data from %s file":"Importar datos del archivo %s",ra_invalidConfig:xrt,ra_lastChange:Crt,ra_locally:Trt,ra_month_Apr:krt,ra_month_Aug:Ert,ra_month_Dec:Drt,ra_month_Feb:Mrt,ra_month_Jan:Ort,ra_month_Jul:$rt,ra_month_Jun:Art,ra_month_Mai:Prt,ra_month_Mar:Irt,ra_month_Nov:Rrt,ra_month_Oct:Lrt,ra_month_Sep:Nrt,ra_months_Apr:Frt,ra_months_Aug:zrt,ra_months_Dec:Brt,ra_months_Feb:jrt,ra_months_Jan:Wrt,ra_months_Jul:Hrt,ra_months_Jun:Urt,ra_months_Mai:Yrt,ra_months_Mar:Vrt,ra_months_Nov:Grt,ra_months_Oct:qrt,ra_months_Sep:Xrt,ra_none:Jrt,ra_object_changed_by:Zrt,ra_object_changed_by_user:Krt,ra_otherConfig:Qrt,ra_qualityCode:ent,ra_repeat:tnt,ra_select_folder_hint:rnt,ra_state_changed_by:nnt,ra_state_changed_from:ant,ra_timestamp:int,ra_tooltip_ack:ont,ra_tooltip_comment:snt,ra_tooltip_copyState:lnt,ra_tooltip_customConfig:cnt,ra_tooltip_deleteObject:unt,ra_tooltip_editObject:dnt,ra_tooltip_editState:fnt,ra_tooltip_from:hnt,ra_tooltip_lc:pnt,ra_tooltip_quality:mnt,ra_tooltip_ts:vnt,ra_tooltip_user:gnt,ra_tooltip_value:_nt,"ra_use seconds":"usar segundos",ra_val:ynt,"ra_via internet":"vía Internet",ra_warning_every_minute:bnt,ra_warning_every_second:wnt,sc_cron:Snt,sc_date:xnt,sc_dates:Cnt,sc_dow:Tnt,sc_dows:knt,sc_every:Ent,sc_everyN_dates:Dnt,sc_everyN_dow:Mnt,sc_everyN_dows:Ont,sc_everyN_hours:$nt,sc_everyN_minutes:Ant,sc_everyN_months:Pnt,sc_everyN_seconds:Int,sc_every_dates:Rnt,sc_every_dow:Lnt,sc_every_dows:Nnt,sc_every_hours:Fnt,sc_every_minutes:znt,sc_every_months:Bnt,sc_every_seconds:jnt,sc_from:Wnt,sc_hours:Hnt,sc_interval:Unt,sc_intervalBetween:Ynt,sc_invalid_cron:Vnt,sc_minutes:Gnt,sc_months:qnt,sc_once:Xnt,sc_period:Jnt,sc_seconds:Znt,sc_simple:Knt,sc_specific:Qnt,sc_specific_dates:eat,sc_specific_dow:tat,sc_specific_dows:rat,sc_specific_hours:nat,sc_specific_minutes:aat,sc_specific_months:iat,sc_specific_seconds:oat,sc_time:sat,sc_to:lat,sc_wizard:cat,sch_all:uat,sch_astroDay:dat,sch_astroNight:fat,sch_astro_dawn:hat,sch_astro_dusk:pat,sch_astro_goldenHour:mat,sch_astro_goldenHourEnd:vat,sch_astro_nadir:gat,sch_astro_nauticalDawn:_at,sch_astro_nauticalDusk:yat,sch_astro_night:bat,sch_astro_nightEnd:wat,sch_astro_solarNoon:Sat,sch_astro_sunrise:xat,sch_astro_sunriseEnd:Cat,sch_astro_sunset:Tat,sch_astro_sunsetStart:kat,sch_at:Eat,sch_desc_atTime:Dat,sch_desc_everyDay:Mat,sch_desc_everyHour:Oat,sch_desc_everyMinute:$at,sch_desc_everyMonth:Aat,sch_desc_everyNDay:Pat,sch_desc_everyNHours:Iat,sch_desc_everyNMinutes:Rat,sch_desc_everyNMonths:Lat,sch_desc_everyNWeeks:Nat,sch_desc_everyNYears:Fat,sch_desc_everyWeek:zat,sch_desc_everyYear:Bat,sch_desc_intervalFromTo:jat,sch_desc_never:Wat,sch_desc_onDate:Hat,sch_desc_onDates:Uat,sch_desc_onEveryDate:Yat,sch_desc_onMonth:Vat,sch_desc_onMonths:Gat,sch_desc_onWeekday:qat,sch_desc_onWeekdays:Xat,sch_desc_onWeekends:Jat,sch_desc_onWorkdays:Zat,sch_desc_onceInPast:Kat,sch_desc_once_on:Qat,sch_desc_validFrom:eit,sch_desc_validFromTo:tit,sch_desc_validTo:rit,sch_every:nit,sch_exactTime:ait,sch_from:iit,sch_fromTo:oit,sch_intervalTime:sit,sch_invert:lit,sch_no_one:cit,sch_on:uit,sch_period:dit,sch_periodDaily:fit,sch_periodDates:hit,sch_periodDay:pit,sch_periodEvery:mit,sch_periodEveryDay:vit,sch_periodEveryMonth:git,sch_periodEveryWeek:_it,sch_periodEveryYear:yit,sch_periodHours:bit,sch_periodMinutes:wit,sch_periodMonth:Sit,sch_periodMonthly:xit,sch_periodOnce:Cit,sch_periodSpecificMonths:Tit,sch_periodWeek:kit,sch_periodWeekdays:Eit,sch_periodWeekend:Dit,sch_periodWeekly:Mit,sch_periodWorkdays:Oit,sch_periodYear:$it,sch_periodYearly:Ait,sch_specificTime:Pit,sch_time:Iit,sch_to:Rit,sch_valid:Lit,sch_validFrom:Nit,sch_validTo:Fit,sch_wholeDay:zit,sch_yearEveryMonth:Bit},Wit="Dodać",Hit="Anuluj",Uit="Kategorie",Yit="Sprawdzony",Vit="Kasować",Git="Blisko",qit="Handlowy",Xit="Konfiguruj",Jit="Połączony",Zit="Skopiowano",Kit="Stwórz",Qit="Przyciąć",eot="Delete",tot="Usunąć",rot="Wyrzucać",not="Niepowiązany",aot="Błąd",iot="Filtr",oot="Piątek",sot="Szerokość",lot="Długość geograficzna",cot="Wiadomość",uot="Poniedziałek",dot="Nazwa",fot="Obiekty",hot="Dobrze",pot="Produkt",mot="Powtarzać",vot="Zastępować",got="Korzeń",_ot="Sobota",yot="Zapisać",bot="Wybrany",wot="Stany",Sot="Niedziela",xot="Czwartek",Cot="Znak czasu",Tot="Wtorek",kot="Aktualizacja",Eot="Obowiązuje do",Dot="Wartość",Mot="Wersja",Oot="Środa",$ot="Szerokość",Aot="Tak",Pot="różne",Iot="Każdy może czytać obiekt",Rot="Każdy może czytać stan",Lot="Każdy może pisać przedmiot",Not="Każdy może pisać stan",Fot="Grupa może odczytać obiekt",zot="Grupa może odczytać stan",Bot="Grupa może pisać obiekt",jot="Grupa może pisać stan",Wot="Właściciel może czytać obiekt",Hot="Właściciel może odczytać stan",Uot="Właściciel może napisać obiekt",Yot="Właściciel może pisać stan",Vot="guziki",Got="Zmieniony z",qot="blisko",Xot="Utwórz stan logiczny",Jot="Utwórz kanał",Zot="Utwórz urządzenie",Kot="Utwórz stan liczbowy",Qot="Utwórz stan",est="Utwórz stan ciągu",tst="d.",rst="Ks",nst="Mo",ast="Sa",ist="Su",ost="Th",sst="Tu",lst="My",cst="Tryb ekspercki",ust="Wszystkie pliki",dst="Audio",fst="Kod/JSON",hst="Obrazy",pst="Tekst",mst="Wideo",vst="Ustawienia",gst="bez",_st="Funkcjonować",yst="ID",bst="Imię",wst="Rola",Sst="Sala",xst="Rodzaj",Cst="Nieprawidłowe ustawienia",Tst="Ostatnia zmiana",kst="lokalnie",Est="kwiecień",Dst="sierpień",Mst="grudzień",Ost="luty",$st="styczeń",Ast="lipiec",Pst="czerwiec",Ist="Mai",Rst="Zniszczyć",Lst="listopad",Nst="październik",Fst="wrzesień",zst="kwiecień",Bst="sierpień",jst="grudzień",Wst="luty",Hst="styczeń",Ust="lipiec",Yst="czerwiec",Vst="Mai",Gst="Zniszczyć",qst="listopad",Xst="październik",Jst="wrzesień",Zst="Żaden",Kst="Obiekt zmieniony przez",Qst="Obiekt ostatnio zmieniony o godz",elt="Ustawienia z innego adaptera %s",tlt="Kod jakości",rlt="powtarzać",nlt="Aby wybrać folder, wystarczy przytrzymać klawisz „shift”, klikając folder.",alt="Stan zmieniony przez",ilt="Obiekt zmieniony z",olt="Znak czasu",slt="Potwierdzon",llt="Komentarz",clt="Skopiuj wartość stanu",ult="Własne ustawienia",dlt="Usuń obiekt",flt="Edytuj obiekt",hlt="Edytuj wartość stanu",plt="Z",mlt="Ostatnia zmiana",vlt="Jakość",glt="Znak czasu",_lt="Użytkownik",ylt="Wartość",blt="Wartość",wlt="Ostrzeżenie: Zadanie CRON będzie uruchamiane co minutę w określonym przedziale czasowym!",Slt="Ostrzeżenie: Zadanie CRON będzie uruchamiane co sekundę w określonym przedziale czasowym!",xlt="CRON",Clt="Data",Tlt="Daktyle",klt="Dzień",Elt="Dzień tygodnia",Dlt="Każdy",Mlt="co N dni",Olt="w każdy N-ty dzień tygodnia",$lt="co N dnia tygodnia",Alt="co N godzin",Plt="co N minut",Ilt="co N miesięcy",Rlt="co N sekund",Llt="codziennie",Nlt="każdy dzień tygodnia",Flt="każdy dzień tygodnia",zlt="co godzinę",Blt="każda minuta",jlt="każdego miesiąca",Wlt="każda sekunda",Hlt="Od",Ult="godziny",Ylt="Interwał",Vlt="Interwał między",Glt="Nieprawidłowy CRON",qlt="Minuty",Xlt="miesięcy",Jlt="Pewnego razu",Zlt="Kropka",Klt="sekundy",Qlt="Prosty",ect="Określony czas",tct="konkretne daty",rct="określone dni tygodnia",nct="określony dzień tygodni",act="określone godziny",ict="określone minuty",oct="określone miesiące",sct="określone sekundy",lct="Czas",cct="Do",uct="Czarodziej",dct="wszystko",fct="Dzień Astro",hct="Noc Astro",pct="Świt",mct="Zmierzch",vct="złota godzina",gct="Koniec złotej godziny",_ct="Nadir",yct="Morski świt",bct="Morski zmierzch",wct="Noc",Sct="Koniec nocy",xct="Południe słoneczne",Cct="wschód słońca",Tct="Koniec wschodu słońca",kct="Zachód słońca",Ect="Początek zachodu słońca",Dct="w",Mct="na %s",Oct="codziennie",$ct="co godzinę",Act="każda minuta",Pct="każdego miesiąca",Ict="każdego dnia %s",Rct="co %s godzin",Lct="co %s minut",Nct="co %s miesięcy",Fct="co %s tygodni",zct="co %s lat",Bct="co tydzień",jct="każdego roku",Wct="od %s do %s",Hct="nigdy",Uct="na %s z %s",Yct="na %s i %s z",Vct="w każdą datę",Gct="%s",qct="%s i %s",Xct="na %s",Jct="na %s i %s",Zct="w weekendy",Kct="w dni robocze",Qct="nie będzie już wykonywany, ponieważ start jest w przeszłości",eut="na %s",tut="z %s",rut="Wykonaj od do",nut="do %s",aut="każdy",iut="Określony czas",out="od",sut="Od-do",lut="Czas przerwy",cut="odwracać",uut="Żaden",dut="na",fut="Kropka",hut="Codziennie",put="Daktyle",mut="Dzień",vut="Każdy",gut="Codziennie",_ut="Każdego miesiąca",yut="Co tydzień",but="Każdego roku",wut="godziny",Sut="Minuty",xut="miesiąc",Cut="Miesięczny",Tut="Pewnego razu",kut="Określone miesiące",Eut="Tydzień",Dut="Dni powszednie",Mut="Weekend",Out="Co tydzień",$ut="Dni robocze",Aut="Rok",Put="Rocznie",Iut="Określony czas",Rut="Czas",Lut="do",Nut="Ważny",Fut="od",zut="do",But="Cały dzień",jut="każdego miesiąca",Wut={"ra_%s links from aliases":"%s linków z aliasów","ra_%s object(s) processed":"Przetworzono %s obiektów","ra_%s was imported":"%s został zaimportowany","ra_Accept license":"Zaakceptuj licencję","ra_Add new child object to selected parent":"Dodaj nowy obiekt potomny do wybranego rodzica","ra_Add objects tree from JSON file":"Dodaj drzewo obiektów z pliku JSON","ra_Add row":"Dodaj wiersz","ra_Advanced options":"Zaawansowane opcje","ra_All items are filtered out":"Wszystkie pozycje są odfiltrowane","ra_All objects":"Wszystkie obiekty",ra_Append:Wit,"ra_Append %s entries or replace existing?":"Dołączyć wpisy %s czy zastąpić istniejące?","ra_Append or replace?":"Dołączyć czy zastąpić?","ra_Are you sure?":"Jesteś pewny?","ra_Auto (no custom columns)":"Auto (bez kolumn niestandardowych)","ra_Back to %s":"Powrót do %s","ra_Background image":"Zdjęcie w tle",ra_Cancel:Hit,"ra_Cannot add items with set filter":"Nie można dodać elementów z ustawionym filtrem","ra_Cannot decode license":"Nie można zdekodować licencji","ra_Cannot determine position: System settings are empty and GPS detection is disabled in browser":"Nie można określić pozycji: ustawienia systemu są puste, a wykrywanie GPS jest wyłączone w przeglądarce",'ra_Cannot find "%s"':"Nie można znaleźć „%s”",'ra_Cannot read "%s"':"Nie można odczytać „%s”","ra_Cannot read licenses: %s":"Nie można odczytać licencji: %s","ra_Cannot retrieve options, as instance is offline":"Nie można pobrać opcji, ponieważ instancja jest w trybie offline","ra_Cannot update attribute, because not found in the object":"Nie można zaktualizować atrybutu, ponieważ nie znaleziono go w obiekcie","ra_Cannot upload":"Nie można przesłać",ra_Categories:Uit,"ra_Chained certificate":"Certyfikat łańcuchowy","ra_Change color theme":"Zmień motyw kolorystyczny","ra_Changed from":"Zmieniony z","ra_Channel → State":"Kanał → Stan","ra_Check license":"Sprawdź licencję",ra_Checked:Yit,ra_Clear:Vit,"ra_Clear filter":"Czysty filtr","ra_Clear icon":"Wyczyść ikonę","ra_Clone current row":"Sklonuj bieżący wiersz",ra_Close:Git,"ra_Collapse all nodes":"Zwiń wszystkie węzły","ra_Collapse one step node":"Zwiń o jeden poziom",ra_Commercial:qit,ra_Configure:Xit,"ra_Configure visible columns":"Skonfiguruj widoczne kolumny","ra_Confirm deletion of %s":"Potwierdź usunięcie %s",ra_Connected:Jit,ra_Copied:Zit,"ra_Copied %s":'Skopiowano "%s"',"ra_Copy content":"Kopiuj zawartość",ra_Create:Kit,"ra_Create alias":"Utwórz alias","ra_Create folder":"Utwórz folder","ra_Create new folder in %s":"Utwórz nowy folder w %s",ra_Crop:Qit,"ra_Define CRON...":"Zdefiniuj CRON...","ra_Define functions":"Zdefiniuj funkcje","ra_Define rooms":"Zdefiniuj pokoje","ra_Define schedule":"Zdefiniuj harmonogram","ra_Define schedule...":"Zdefiniuj harmonogram ...",ra_Del:eot,ra_Delete:tot,"ra_Delete (no confirm for 5 mins)":"Usuń (bez potwierdzenia przez 5 minut)","ra_Delete current row":"Usuń bieżący wiersz","ra_Deselect all":"Odznacz wszystko","ra_Device → Channel → State":"Urządzenie → Kanał → Stan",ra_Discard:rot,ra_Disconnected:not,"ra_Do not export values of states":"Nie eksportuj wartości stanów","ra_Do not use let's encrypt":"Nie używaj zaszyfrujmy","ra_Double click to reset table layout":"Kliknij dwukrotnie, aby zresetować układ tabeli","ra_Drag 'n' drop some files here, or click to select files":"Przeciągnij i upuść kilka plików tutaj lub kliknij, aby wybrać pliki","ra_Drop file here":"Upuść plik tutaj","ra_Drop the files here...":"Upuść plik tutaj...","ra_Duplicate name":"Zduplikowana nazwa","ra_Edit ACL":"Edytuj listy ACL","ra_Edit alias":"Edytuj alias","ra_Edit custom config":"Edytuj konfigurację niestandardową","ra_Edit function":"Funkcja edycji","ra_Edit object field":"Edytuj pole obiektu","ra_Edit role":"Edytuj rolę","ra_Edit room":"Edytuj pokój","ra_Edit value":"Edytuj wartość",ra_Error:aot,"ra_Expand all nodes":"Rozwiń wszystkie węzły","ra_Expand one step node":"Rozwiń o jeden poziom","ra_Export data to %s file":"Eksportuj dane do pliku %s","ra_Failed to open JSON File":"Nie udało się otworzyć pliku JSON","ra_Fallback custom certificates":"Niestandardowe certyfikaty zastępcze","ra_File is too big. Max %sk allowed. Try use SVG.":"Plik jest za duży. Maksymalna dozwolona liczba %sk. Spróbuj użyć SVG.",ra_Filter:iot,"ra_Filter files":"Filtruj pliki","ra_Folder name":"Nazwa folderu","ra_Folder → Channel → State":"Folder → Kanał → Stan","ra_Folder → Device → Channel → State":"Folder → Urządzenie → Kanał → Stan","ra_Folder → State":"Folder → Stan","ra_Folders always first":"Foldery zawsze na pierwszym miejscu",ra_Friday:oot,"ra_Good luck":"Powodzenia","ra_Hide empty folders":"Ukryj puste foldery","ra_If no file will be created in the folder, it will disappear after the browser closed":"Jeśli w folderze nie zostanie utworzony żaden plik, zniknie on po zamknięciu przeglądarki","ra_Import data from %s file":"Importuj dane z pliku %s","ra_Import from %s":"Importuj z %s","ra_Instance %s is alive":"Instancja %s jest aktywna","ra_Instance %s is not alive":"Instancja TEKST nie jest aktywna","ra_Instance is not alive":"Instancja nie jest aktywna","ra_Invalid CRON":"Nieprawidłowy CRON","ra_Invalid JSON":"Nieprawidłowy JSON","ra_Invalid answer from server":"Nieprawidłowa odpowiedź z serwera","ra_Invalid parent folder!":"Nieprawidłowy folder nadrzędny!","ra_Invalid structure":"Nieprawidłowa struktura","ra_JSON editor":"Edytor JSON","ra_Last change":"Ostatnia zmiana",ra_Latitude:sot,"ra_License %s":"Licencja %s","ra_License agreement":"Umowa licencyjna","ra_License does not exist":"Licencja nie istnieje","ra_License expired on %s":"Licencja wygasła w dniu %s",'ra_License for other product "%s"':"Licencja na inny produkt „%s”","ra_License is for version %s, but required version is %s.":"Licencja dotyczy wersji %s, ale wymagana wersja to %s.","ra_License must be converted":"Licencja musi zostać przekonwertowana na nowszą wersję. Możesz to zrobić w swoim profilu iobroker.net.","ra_License not found in license manager. Do you want to read licenses from iobroker.net?":"Nie znaleziono licencji w menedżerze licencji. Chcesz zaktualizować licencje z iobroker.net?","ra_Listen on all IPs":"Słuchaj na wszystkich adresach IP","ra_Load configuration from file":"Załaduj konfigurację z pliku",ra_Longitude:lot,'ra_May not trigger "updateLicenses"':"Może nie uruchamiać „updateLicenses”",ra_Message:cot,ra_Monday:uot,"ra_Move down":"Padnij","ra_Move up":"Podnieść",ra_Name:dot,"ra_No data found in file":"Nie znaleziono danych w pliku","ra_No one license found in license manager":"Nie znaleziono licencji w menedżerze licencji","ra_No response from the backend":"Brak odpowiedzi z zaplecza",'ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".':"Osoby nie będące ekspertami mogą tworzyć nowe obiekty tylko w „0_userdata.0” lub „alias.0”.","ra_Not a number":"Nie numer",ra_Objects:fot,ra_Ok:hot,"ra_On weekdays":"W dni powszednie","ra_Only following structures of objects are available:":"Dostępne są tylko następujące struktury obiektów:","ra_Only selected":"Tylko wybrane","ra_Owner group":"Grupa właścicieli","ra_Owner user":"Właściciel użytkownika","ra_Passwords are not equal!":"Hasła nie są równe!","ra_Place your files here or click here to open the browse dialog":"Umieść swoje pliki tutaj lub kliknij tutaj, aby otworzyć okno dialogowe przeglądania","ra_Please confirm":"Proszę potwierdzić","ra_Please create license":"Utwórz licencję","ra_Please enter the license":"Proszę wprowadzić licencję","ra_Please select file...":"Wybierz plik...","ra_Please select object ID...":"Wybierz identyfikator obiektu ...","ra_Port could be used by %s":"Port może być używany przez %s","ra_Port is already used by %s":"Port jest już używany przez %s","ra_Private certificate":"Prywatny certyfikat",ra_Product:pot,"ra_Public certificate":"Certyfikat publiczny","ra_Quality code":"Jakości","ra_Refresh tree":"Odśwież drzewo","ra_Reload files":"Załaduj ponownie pliki",ra_Repeat:mot,ra_Replace:vot,"ra_Request timed out":"Upłynął limit czasu żądania","ra_Restrict to folder":"Ogranicz do folderu",ra_Root:got,ra_Saturday:_ot,ra_Save:yot,"ra_Save and close":"Zapisz i zamknij","ra_Save configuration to file":"Zapisz konfigurację do pliku","ra_Save objects tree as JSON file":"Zapisz drzewo obiektów jako plik JSON","ra_Select all":"Zaznacz wszystko","ra_Select color":"Wybierz kolor","ra_Select predefined icon":"Wybierz predefiniowaną ikonę","ra_Select type of export":"Wybierz rodzaj eksportu",ra_Selected:bot,"ra_Selected %s object(s)":"Wybrane obiekty %s","ra_Serial number (UUID)":"Numer seryjny (UUID)",'ra_Serial number (UUID) "%s" in license is for other device.':"Numer seryjny (UUID) „%s” w licencji dotyczy innego urządzenia.","ra_Show all folders":"Pokaż wszystkie foldery","ra_Show lines between rows":"Pokaż linie między rzędami","ra_Show/Hide object descriptions":"Pokaż/ukryj opisy obiektów","ra_Show/hide filter input":"Pokaż/ukryj wejście filtra","ra_Some data are not stored. Discard?":"Niektóre dane nie są przechowywane. Wyrzucać?",ra_States:wot,"ra_Suitable license not found in license manager":"Nie znaleziono odpowiedniej licencji w menedżerze licencji",ra_Sunday:Sot,"ra_Suppress question for next %s minutes":"Ukryj pytanie przez następne %s minut","ra_System language":"Język systemu","ra_Take browser position":"Zajmij pozycję z przeglądarki","ra_Take position from system settings":"Zajmij pozycję z ustawień systemowych",'ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").':"Eksperci mogą tworzyć obiekty wszędzie poza drugim poziomem (np. „Vis.0” lub „javascript.0”).","ra_The page you are looking for was not found":"Strona, której szukasz nie została znaleziona","ra_The schedule will be executed every minute. Are you sure?":"Harmonogram będzie wykonywany co minutę. Czy jesteś pewien?","ra_The schedule will be executed every second. Are you sure?":"Harmonogram będzie wykonywany co sekundę. Czy jesteś pewien?",ra_Thursday:xot,ra_Timestamp:Cot,"ra_Toggle expert mode":"Przełącz tryb eksperta","ra_Toggle the states view":"Przełącz widok stanów","ra_Toggle view mode":"Przełącz tryb widoku","ra_Too big":"Za duży","ra_Too small":"Za mały","ra_Transparent dialog":"Przejrzyste okno dialogowe",ra_Tuesday:Tot,"ra_Unknown error":"Nieznany błąd","ra_Unknown error!":"Nieznany błąd!",ra_Update:kot,"ra_Upload file":"Przesyłanie pliku","ra_Use all available let's encrypt certificates":"Użyj wszystkich dostępnych certyfikatów Let's Encrypt","ra_Use iobroker.acme adapter for letsencrypt certificates":"Użyj adaptera iobroker.acme dla certyfikatów letsencrypt","ra_Use system settings for position":"Użyj ustawień systemowych dla pozycji","ra_Used system settings":"Używane ustawienia systemowe","ra_User files":"Pliki użytkownika",ra_ValidTill:Eot,ra_Value:Dot,ra_Version:Mot,"ra_View file":"Zobaczyć plik","ra_View: %s":"Widok: %s",ra_Wednesday:Oot,ra_Width:$ot,ra_Yes:Aot,"ra_You can export all objects or just the selected branch.":"Możesz wyeksportować wszystkie obiekty lub tylko wybraną gałąź.","ra_You can filter entries by entering here some text":"Możesz filtrować wpisy, wpisując tutaj jakiś tekst",ra___different__:Pot,ra_aclEveryone_read_object:Iot,ra_aclEveryone_read_state:Rot,ra_aclEveryone_write_object:Lot,ra_aclEveryone_write_state:Not,ra_aclGroup_read_object:Fot,ra_aclGroup_read_state:zot,ra_aclGroup_write_object:Bot,ra_aclGroup_write_state:jot,ra_aclOwner_read_object:Wot,ra_aclOwner_read_state:Hot,ra_aclOwner_write_object:Uot,ra_aclOwner_write_state:Yot,ra_buttons:Vot,ra_changedFrom:Got,ra_close:qot,ra_create_boolean_state:Xot,ra_create_channel:Jot,ra_create_device:Zot,ra_create_number_state:Kot,ra_create_state:Qot,ra_create_string_state:est,ra_daysShortText:tst,ra_dow_Fr:rst,ra_dow_Mo:nst,ra_dow_Sa:ast,ra_dow_Su:ist,ra_dow_Th:ost,ra_dow_Tu:sst,ra_dow_We:lst,ra_expertMode:cst,ra_fileType_all:ust,ra_fileType_audio:dst,ra_fileType_code:fst,ra_fileType_images:hst,ra_fileType_txt:pst,ra_fileType_video:mst,"ra_fileType_video,":"Wideo",ra_filter_customs:vst,ra_filter_customs_without:gst,ra_filter_func:_st,ra_filter_id:yst,ra_filter_name:bst,ra_filter_role:wst,ra_filter_room:Sst,ra_filter_type:xst,"ra_import data from %s file":"Importuj dane z pliku %s",ra_invalidConfig:Cst,ra_lastChange:Tst,ra_locally:kst,ra_month_Apr:Est,ra_month_Aug:Dst,ra_month_Dec:Mst,ra_month_Feb:Ost,ra_month_Jan:$st,ra_month_Jul:Ast,ra_month_Jun:Pst,ra_month_Mai:Ist,ra_month_Mar:Rst,ra_month_Nov:Lst,ra_month_Oct:Nst,ra_month_Sep:Fst,ra_months_Apr:zst,ra_months_Aug:Bst,ra_months_Dec:jst,ra_months_Feb:Wst,ra_months_Jan:Hst,ra_months_Jul:Ust,ra_months_Jun:Yst,ra_months_Mai:Vst,ra_months_Mar:Gst,ra_months_Nov:qst,ra_months_Oct:Xst,ra_months_Sep:Jst,ra_none:Zst,ra_object_changed_by:Kst,ra_object_changed_by_user:Qst,ra_otherConfig:elt,ra_qualityCode:tlt,ra_repeat:rlt,ra_select_folder_hint:nlt,ra_state_changed_by:alt,ra_state_changed_from:ilt,ra_timestamp:olt,ra_tooltip_ack:slt,ra_tooltip_comment:llt,ra_tooltip_copyState:clt,ra_tooltip_customConfig:ult,ra_tooltip_deleteObject:dlt,ra_tooltip_editObject:flt,ra_tooltip_editState:hlt,ra_tooltip_from:plt,ra_tooltip_lc:mlt,ra_tooltip_quality:vlt,ra_tooltip_ts:glt,ra_tooltip_user:_lt,ra_tooltip_value:ylt,"ra_use seconds":"użyj sekund",ra_val:blt,"ra_via internet":"przez internet",ra_warning_every_minute:wlt,ra_warning_every_second:Slt,sc_cron:xlt,sc_date:Clt,sc_dates:Tlt,sc_dow:klt,sc_dows:Elt,sc_every:Dlt,sc_everyN_dates:Mlt,sc_everyN_dow:Olt,sc_everyN_dows:$lt,sc_everyN_hours:Alt,sc_everyN_minutes:Plt,sc_everyN_months:Ilt,sc_everyN_seconds:Rlt,sc_every_dates:Llt,sc_every_dow:Nlt,sc_every_dows:Flt,sc_every_hours:zlt,sc_every_minutes:Blt,sc_every_months:jlt,sc_every_seconds:Wlt,sc_from:Hlt,sc_hours:Ult,sc_interval:Ylt,sc_intervalBetween:Vlt,sc_invalid_cron:Glt,sc_minutes:qlt,sc_months:Xlt,sc_once:Jlt,sc_period:Zlt,sc_seconds:Klt,sc_simple:Qlt,sc_specific:ect,sc_specific_dates:tct,sc_specific_dow:rct,sc_specific_dows:nct,sc_specific_hours:act,sc_specific_minutes:ict,sc_specific_months:oct,sc_specific_seconds:sct,sc_time:lct,sc_to:cct,sc_wizard:uct,sch_all:dct,sch_astroDay:fct,sch_astroNight:hct,sch_astro_dawn:pct,sch_astro_dusk:mct,sch_astro_goldenHour:vct,sch_astro_goldenHourEnd:gct,sch_astro_nadir:_ct,sch_astro_nauticalDawn:yct,sch_astro_nauticalDusk:bct,sch_astro_night:wct,sch_astro_nightEnd:Sct,sch_astro_solarNoon:xct,sch_astro_sunrise:Cct,sch_astro_sunriseEnd:Tct,sch_astro_sunset:kct,sch_astro_sunsetStart:Ect,sch_at:Dct,sch_desc_atTime:Mct,sch_desc_everyDay:Oct,sch_desc_everyHour:$ct,sch_desc_everyMinute:Act,sch_desc_everyMonth:Pct,sch_desc_everyNDay:Ict,sch_desc_everyNHours:Rct,sch_desc_everyNMinutes:Lct,sch_desc_everyNMonths:Nct,sch_desc_everyNWeeks:Fct,sch_desc_everyNYears:zct,sch_desc_everyWeek:Bct,sch_desc_everyYear:jct,sch_desc_intervalFromTo:Wct,sch_desc_never:Hct,sch_desc_onDate:Uct,sch_desc_onDates:Yct,sch_desc_onEveryDate:Vct,sch_desc_onMonth:Gct,sch_desc_onMonths:qct,sch_desc_onWeekday:Xct,sch_desc_onWeekdays:Jct,sch_desc_onWeekends:Zct,sch_desc_onWorkdays:Kct,sch_desc_onceInPast:Qct,sch_desc_once_on:eut,sch_desc_validFrom:tut,sch_desc_validFromTo:rut,sch_desc_validTo:nut,sch_every:aut,sch_exactTime:iut,sch_from:out,sch_fromTo:sut,sch_intervalTime:lut,sch_invert:cut,sch_no_one:uut,sch_on:dut,sch_period:fut,sch_periodDaily:hut,sch_periodDates:put,sch_periodDay:mut,sch_periodEvery:vut,sch_periodEveryDay:gut,sch_periodEveryMonth:_ut,sch_periodEveryWeek:yut,sch_periodEveryYear:but,sch_periodHours:wut,sch_periodMinutes:Sut,sch_periodMonth:xut,sch_periodMonthly:Cut,sch_periodOnce:Tut,sch_periodSpecificMonths:kut,sch_periodWeek:Eut,sch_periodWeekdays:Dut,sch_periodWeekend:Mut,sch_periodWeekly:Out,sch_periodWorkdays:$ut,sch_periodYear:Aut,sch_periodYearly:Put,sch_specificTime:Iut,sch_time:Rut,sch_to:Lut,sch_valid:Nut,sch_validFrom:Fut,sch_validTo:zut,sch_wholeDay:But,sch_yearEveryMonth:jut},Hut="Додайте",Uut="Скасувати",Yut="Категорії",Vut="Перевірено",Gut="Видалити",qut="Закрити",Xut="Комерційний",Jut="Налаштувати",Zut="Підключено",Kut="Скопійовано",Qut="Створити",edt="Урожай",tdt="Delete",rdt="Видалити",ndt="Відкинути",adt="Відключено",idt="Помилка",odt="фільтр",sdt="П'ятниця",ldt="Широта",cdt="Довгота",udt="повідомлення",ddt="понеділок",fdt="Ім'я",hdt="Об'єкти",pdt="В порядку",mdt="Продукт",vdt="Повторіть",gdt="Замінити",_dt="Корінь",ydt="Субота",bdt="зберегти",wdt="Вибране",Sdt="держави",xdt="неділя",Cdt="четвер",Tdt="Мітка часу",kdt="вівторок",Edt="оновлення",Ddt="Дійсний до",Mdt="Значення",Odt="Версія",$dt="Середа",Adt="Ширина",Pdt="Так",Idt="інший",Rdt="Кожен може читати об'єкт",Ldt="Кожен може читати стан",Ndt="Кожен може написати об'єкт",Fdt="Кожен може написати стан",zdt="Група може читати об'єкт",Bdt="Група може читати стан",jdt="Група може писати об'єкт",Wdt="Група може писати стан",Hdt="Власник може читати об'єкт",Udt="Власник може читати стан",Ydt="Власник може написати об'єкт",Vdt="Власник може написати стан",Gdt="кнопки",qdt="Змінено з",Xdt="закрити",Jdt="Створіть логічний стан",Zdt="Створити канал",Kdt="Створити пристрій",Qdt="Створити номерний стан",eft="Створити состояние",tft="Створити рядковий стан",rft="днів",nft="О",aft="пн",ift="Sa",oft="Нд",sft="чт",lft="вт",cft="ми",uft="Експертний режим",dft="Всі файли",fft="Аудіо",hft="Код/JSON",pft="Зображення",mft="текст",vft="відео",gft="Налаштування",_ft="без",yft="функція",bft="ID",wft="Ім'я",Sft="Роль",xft="Кімната",Cft="Тип",Tft="Недійсні налаштування",kft="Остання зміна",Eft="локально",Dft="квіт",Mft="серп",Oft="груд",$ft="лютий",Aft="січня",Pft="лип",Ift="черв",Rft="травень",Lft="березень",Nft="Листопад",Fft="жовт",zft="вер",Bft="квіт",jft="серп",Wft="груд",Hft="лютий",Uft="січня",Yft="лип",Vft="черв",Gft="травень",qft="березень",Xft="Листопад",Jft="жовт",Zft="вер",Kft="немає",Qft="Об'єкт змінено",eht="Об'єкт востаннє змінено о",tht="Налаштування з іншого адаптера %s",rht="Код якості",nht="повторити",aht="Щоб вибрати папку, просто клацніть папку, утримуючи клавішу «Shift».",iht="Стан змінено на",oht="Об'єкт змінено з",sht="Мітка часу",lht="Визнано",cht="коментар",uht="Скопіюйте значення стану",dht="Спеціальні налаштування",fht="Видалити об'єкт",hht="Редагувати об'єкт",pht="Відредагуйте значення стану",mht="Від",vht="Востаннє змінено",ght="якість",_ht="Позначка часу",yht="Користувач",bht="Значення",wht="Значення",Sht="Попередження: завдання CRON виконуватиметься щохвилини протягом зазначеного періоду!",xht="Попередження: завдання CRON виконуватиметься кожну секунду протягом зазначеного періоду!",Cht="CRON",Tht="Дата",kht="дати",Eht="День",Dht="День тижня",Mht="кожен",Oht="кожні N днів",$ht="кожен N-й день тижня",Aht="кожні N днів тижня",Pht="кожні N годин",Iht="кожні N хвилин",Rht="кожні N місяців",Lht="кожні N секунд",Nht="кожен день",Fht="кожен день тижня",zht="кожен день тижня",Bht="щогодини",jht="кожну хвилину",Wht="щомісяця",Hht="кожна секунда",Uht="Від",Yht="години",Vht="Інтервал",Ght="Інтервал між",qht="Недійсний CRON",Xht="хвилин",Jht="місяців",Zht="Один раз",Kht="Крапка",Qht="секунд",ept="просто",tpt="Конкретний час",rpt="конкретні дати",npt="конкретний день (дні) тижня",apt="конкретний день тижня",ipt="конкретні години",opt="конкретні хвилини",spt="конкретні місяці",lpt="конкретні секунди",cpt="час",upt="до",dpt="майстер",fpt="все",hpt="Астродень",ppt="Астро ніч",mpt="Світанок",vpt="Сутінки",gpt="Золота година",_pt="Кінець золотої години",ypt="Надір",bpt="Морський світанок",wpt="Морські сутінки",Spt="ніч",xpt="Кінець ночі",Cpt="Сонячний полудень",Tpt="Схід сонця",kpt="Кінець сходу сонця",Ept="Захід сонця",Dpt="Початок заходу сонця",Mpt="в",Opt="в %s",$pt="кожен день",Apt="щогодини",Ppt="кожну хвилину",Ipt="щомісяця",Rpt="кожен %s день",Lpt="кожні %s годин",Npt="кожні %s хвилин",Fpt="кожні %s місяців",zpt="кожні %s тижнів",Bpt="кожні %s років",jpt="щотижня",Wpt="щороку",Hpt="від %s до %s",Upt="ніколи",Ypt="на %s з %s",Vpt="на %s і %s з",Gpt="на кожну дату",qpt="%s",Xpt="%s і %s",Jpt="на %s",Zpt="на %s і %s",Kpt="на вихідних",Qpt="в робочі дні",emt="більше не виконуватиметься, оскільки запуск у минулому",tmt="на %s",rmt="від %s",nmt="Виконати від до",amt="до %s",imt="кожен",omt="Конкретний час",smt="від",lmt="Від до",cmt="Час інтервалу",umt="інвертувати",dmt="немає",fmt="на",hmt="Крапка",pmt="Щодня",mmt="дати",vmt="День",gmt="кожен",_mt="Кожен день",ymt="Щомісяця",bmt="Щотижня",wmt="Щороку",Smt="години",xmt="хвилин",Cmt="місяць",Tmt="Щомісяця",kmt="Один раз",Emt="Конкретні місяці",Dmt="тиждень",Mmt="будні",Omt="Вихідні",$mt="Щотижня",Amt="робочі дні",Pmt="рік",Imt="щорічно",Rmt="Конкретний час",Lmt="час",Nmt="до",Fmt="Дійсний",zmt="від",Bmt="до",jmt="Цілий день",Wmt="щомісяця",Hmt={"ra_%s links from aliases":"%s посилань із псевдонімів","ra_%s object(s) processed":"Оброблено %s об’єктів","ra_%s was imported":"%s було імпортовано","ra_Accept license":"Прийняти ліцензію","ra_Add new child object to selected parent":"Додати новий дочірній об’єкт до вибраного батьківського","ra_Add objects tree from JSON file":"Додайте дерево об’єктів із файлу JSON","ra_Add row":"Додати рядок","ra_Advanced options":"Розширені опції","ra_All items are filtered out":"Усі елементи відфільтровано","ra_All objects":"Всі об'єкти",ra_Append:Hut,"ra_Append %s entries or replace existing?":"Додати %s записів чи замінити наявні?","ra_Append or replace?":"Додати чи замінити?","ra_Are you sure?":"Ти впевнений?","ra_Auto (no custom columns)":"Автоматично (без спеціальних стовпців)","ra_Back to %s":"Назад до %s","ra_Background image":"Фонове зображення",ra_Cancel:Uut,"ra_Cannot add items with set filter":"Неможливо додати елементи зі встановленим фільтром","ra_Cannot decode license":"Неможливо розшифрувати ліцензію","ra_Cannot determine position: System settings are empty and GPS detection is disabled in browser":"Неможливо визначити положення: системні налаштування порожні, а визначення GPS вимкнено в браузері",'ra_Cannot find "%s"':'Не вдається знайти "%s"','ra_Cannot read "%s"':'Неможливо прочитати "%s"',"ra_Cannot read licenses: %s":"Неможливо прочитати ліцензії: %s","ra_Cannot retrieve options, as instance is offline":"Неможливо отримати параметри, оскільки екземпляр офлайн","ra_Cannot update attribute, because not found in the object":"Неможливо оновити атрибут, оскільки його не знайдено в об’єкті","ra_Cannot upload":"Неможливо завантажити",ra_Categories:Yut,"ra_Chained certificate":"Прикутий сертифікат","ra_Change color theme":"Змінити кольорову тему","ra_Changed from":"Змінено з","ra_Channel → State":"Канал → Стан","ra_Check license":"Перевірити ліцензію",ra_Checked:Vut,ra_Clear:Gut,"ra_Clear filter":"Очистити фільтр","ra_Clear icon":"Очистити значок","ra_Clone current row":"Клонувати поточний рядок",ra_Close:qut,"ra_Collapse all nodes":"Згорнути всі вузли","ra_Collapse one step node":"Згорнути на один рівень",ra_Commercial:Xut,ra_Configure:Jut,"ra_Configure visible columns":"Налаштувати видимі стовпці","ra_Confirm deletion of %s":"Підтвердити видалення %s",ra_Connected:Zut,ra_Copied:Kut,"ra_Copied %s":'Скопійовано "%s"',"ra_Copy content":"Скопіюйте вміст",ra_Create:Qut,"ra_Create alias":"Створити псевдонім","ra_Create folder":"Створити папку","ra_Create new folder in %s":"Створіть нову папку в %s",ra_Crop:edt,"ra_Define CRON...":"Визначити CRON...","ra_Define functions":"Визначити функції","ra_Define rooms":"Визначте кімнати","ra_Define schedule":"Визначити розклад","ra_Define schedule...":"Визначити розклад...",ra_Del:tdt,ra_Delete:rdt,"ra_Delete (no confirm for 5 mins)":"Видалити (без підтвердження протягом 5 хвилин)","ra_Delete current row":"Видалити поточний рядок","ra_Deselect all":"Скасувати вибір усіх","ra_Device → Channel → State":"Пристрій → Канал → Стан",ra_Discard:ndt,ra_Disconnected:adt,"ra_Do not export values of states":"Не експортуйте значення станів","ra_Do not use let's encrypt":"Не використовуйте let's encrypt","ra_Double click to reset table layout":"Двічі клацніть, щоб скинути макет таблиці","ra_Drag 'n' drop some files here, or click to select files":"Перетягніть деякі файли сюди або натисніть, щоб вибрати файли","ra_Drop file here":"Перетягніть файл сюди","ra_Drop the files here...":"Перетягніть файл сюди...","ra_Duplicate name":"Повторюване ім'я","ra_Edit ACL":"Редагувати ACL","ra_Edit alias":"Редагувати псевдонім","ra_Edit custom config":"Редагувати спеціальну конфігурацію","ra_Edit function":"функція редагування","ra_Edit object field":"Поле редагування об'єкта","ra_Edit role":"Редагувати роль","ra_Edit room":"Редагувати кімнату","ra_Edit value":"Редагувати значення",ra_Error:idt,"ra_Expand all nodes":"Розгорнути всі вузли","ra_Expand one step node":"Розгорніть один рівень","ra_Export data to %s file":"Експортувати дані у файл %s","ra_Failed to open JSON File":"Не вдалося відкрити файл JSON","ra_Fallback custom certificates":"Запасні спеціальні сертифікати","ra_File is too big. Max %sk allowed. Try use SVG.":"Файл завеликий. Максимально дозволено %sk. Спробуйте використовувати SVG.",ra_Filter:odt,"ra_Filter files":"Фільтр файлів","ra_Folder name":"Назва папки","ra_Folder → Channel → State":"Папка → Канал → Стан","ra_Folder → Device → Channel → State":"Папка → Пристрій → Канал → Стан","ra_Folder → State":"Папка → Стан","ra_Folders always first":"Папки завжди першими",ra_Friday:sdt,"ra_Good luck":"Удачі","ra_Hide empty folders":"Приховати порожні папки","ra_If no file will be created in the folder, it will disappear after the browser closed":"Якщо в папці не буде створено файл, він зникне після закриття браузера","ra_Import data from %s file":"Імпортувати дані з файлу %s","ra_Import from %s":"Імпортувати з %s","ra_Instance %s is alive":"Примірник %s живий","ra_Instance %s is not alive":"Примірник %s не живий","ra_Instance is not alive":"Примірник не живий","ra_Invalid CRON":"Недійсний CRON","ra_Invalid JSON":"Недійсний JSON","ra_Invalid answer from server":"Недійсна відповідь від сервера","ra_Invalid parent folder!":"Недійсна батьківська папка!","ra_Invalid structure":"Недійсна структура","ra_JSON editor":"Редактор JSON","ra_Last change":"Остання зміна",ra_Latitude:ldt,"ra_License %s":"Ліцензія %s","ra_License agreement":"Ліцензійна угода","ra_License does not exist":"Ліцензії не існує","ra_License expired on %s":"Термін дії ліцензії закінчився %s",'ra_License for other product "%s"':'Ліцензія на інший продукт "%s"',"ra_License is for version %s, but required version is %s.":"Ліцензія для версії %s, але потрібна версія %s.","ra_License must be converted":"Ліцензію необхідно конвертувати до новішої версії. Ви можете зробити це у своєму профілі на iobroker.net.","ra_License not found in license manager. Do you want to read licenses from iobroker.net?":"Ліцензія не знайдена в менеджері ліцензій. Хочете оновити ліцензії з iobroker.net?","ra_Listen on all IPs":"Прослуховування на всіх IP","ra_Load configuration from file":"Завантажити конфігурацію з файлу",ra_Longitude:cdt,'ra_May not trigger "updateLicenses"':'Може не запускати "updateLicenses"',ra_Message:udt,ra_Monday:ddt,"ra_Move down":"Рухатися вниз","ra_Move up":"Рухатися вгору",ra_Name:fdt,"ra_No data found in file":"Немає даних у файлі","ra_No one license found in license manager":"У менеджері ліцензій не знайдено жодної ліцензії","ra_No response from the backend":"Немає відповіді від сервера",'ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".':"Неексперти можуть створювати нові об’єкти лише в «0_userdata.0» або «alias.0».","ra_Not a number":"Не номер",ra_Objects:hdt,ra_Ok:pdt,"ra_On weekdays":"В будні дні","ra_Only following structures of objects are available:":"Доступні тільки такі структури об'єктів:","ra_Only selected":"Тільки обрані","ra_Owner group":"Група власників","ra_Owner user":"Користувач-власник","ra_Passwords are not equal!":"Паролі не бувають рівними!","ra_Place your files here or click here to open the browse dialog":"Розмістіть свої файли тут або натисніть тут, щоб відкрити діалогове вікно перегляду","ra_Please confirm":"Будь-ласка підтвердіть","ra_Please create license":"Будь ласка, створіть ліцензію","ra_Please enter the license":"Будь ласка, введіть ліцензію","ra_Please select file...":"Виберіть файл...","ra_Please select object ID...":"Виберіть ідентифікатор об'єкта...","ra_Port could be used by %s":"Порт може використовуватися %s","ra_Port is already used by %s":"Порт уже використовується %s","ra_Private certificate":"Приватний сертифікат",ra_Product:mdt,"ra_Public certificate":"Публічний сертифікат","ra_Quality code":"якість","ra_Refresh tree":"Оновити дерево","ra_Reload files":"Перезавантажте файли",ra_Repeat:vdt,ra_Replace:gdt,"ra_Request timed out":"Час запиту вичерпано","ra_Restrict to folder":"Обмежити папкою",ra_Root:_dt,ra_Saturday:ydt,ra_Save:bdt,"ra_Save and close":"Зберегти та закрити","ra_Save configuration to file":"Зберегти конфігурацію у файл","ra_Save objects tree as JSON file":"Зберегти дерево об’єктів як файл JSON","ra_Select all":"Вибрати все","ra_Select color":"Виберіть колір","ra_Select predefined icon":"Виберіть попередньо визначений значок","ra_Select type of export":"Виберіть тип експорту",ra_Selected:wdt,"ra_Selected %s object(s)":"Вибрані об’єкти %s","ra_Serial number (UUID)":"Серійний номер (UUID)",'ra_Serial number (UUID) "%s" in license is for other device.':'Серійний номер (UUID) "%s" у ліцензії призначений для іншого пристрою.',"ra_Show all folders":"Показати всі папки","ra_Show lines between rows":"Показувати лінії між рядками","ra_Show/Hide object descriptions":"Показати/Сховати описи об’єктів","ra_Show/hide filter input":"Показати/сховати введення фільтра","ra_Some data are not stored. Discard?":"Деякі дані не зберігаються. Відкинути?",ra_States:Sdt,"ra_Suitable license not found in license manager":"Відповідна ліцензія не знайдена в менеджері ліцензій",ra_Sunday:xdt,"ra_Suppress question for next %s minutes":"Приховати запитання на наступні %s хвилин","ra_System language":"Системна мова","ra_Take browser position":"Займіть позицію з браузера","ra_Take position from system settings":"Займіть позицію в налаштуваннях системи",'ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").':"Експерти можуть створювати об’єкти всюди, крім другого рівня (наприклад, «vis.0» або «javascript.0»).","ra_The page you are looking for was not found":"Сторінка, яку ви шукаєте, не знайдена","ra_The schedule will be executed every minute. Are you sure?":"Розклад буде виконуватися щохвилини. Ви впевнені?","ra_The schedule will be executed every second. Are you sure?":"Розклад буде виконуватися щосекунди. Ви впевнені?",ra_Thursday:Cdt,ra_Timestamp:Tdt,"ra_Toggle expert mode":"Перемкнути експертний режим","ra_Toggle the states view":"Перемкнути перегляд штатів","ra_Toggle view mode":"Перемкнути режим перегляду","ra_Too big":"Занадто великий","ra_Too small":"Занадто малий","ra_Transparent dialog":"Прозорий діалог",ra_Tuesday:kdt,"ra_Unknown error":"Невідома помилка","ra_Unknown error!":"Невідома помилка!",ra_Update:Edt,"ra_Upload file":"Завантажити файл","ra_Use all available let's encrypt certificates":"Використовуйте всі доступні сертифікати let's encrypt","ra_Use iobroker.acme adapter for letsencrypt certificates":"Використовуйте адаптер iobroker.acme для сертифікатів letsencrypt","ra_Use system settings for position":"Використовуйте системні налаштування для позиції","ra_Used system settings":"Використані системні налаштування","ra_User files":"Файли користувача",ra_ValidTill:Ddt,ra_Value:Mdt,ra_Version:Odt,"ra_View file":"Переглянути файл","ra_View: %s":"Перегляд: %s",ra_Wednesday:$dt,ra_Width:Adt,ra_Yes:Pdt,"ra_You can export all objects or just the selected branch.":"Ви можете експортувати всі об’єкти або лише вибрану гілку.","ra_You can filter entries by entering here some text":"Ви можете фільтрувати записи, ввівши тут певний текст",ra___different__:Idt,ra_aclEveryone_read_object:Rdt,ra_aclEveryone_read_state:Ldt,ra_aclEveryone_write_object:Ndt,ra_aclEveryone_write_state:Fdt,ra_aclGroup_read_object:zdt,ra_aclGroup_read_state:Bdt,ra_aclGroup_write_object:jdt,ra_aclGroup_write_state:Wdt,ra_aclOwner_read_object:Hdt,ra_aclOwner_read_state:Udt,ra_aclOwner_write_object:Ydt,ra_aclOwner_write_state:Vdt,ra_buttons:Gdt,ra_changedFrom:qdt,ra_close:Xdt,ra_create_boolean_state:Jdt,ra_create_channel:Zdt,ra_create_device:Kdt,ra_create_number_state:Qdt,ra_create_state:eft,ra_create_string_state:tft,ra_daysShortText:rft,ra_dow_Fr:nft,ra_dow_Mo:aft,ra_dow_Sa:ift,ra_dow_Su:oft,ra_dow_Th:sft,ra_dow_Tu:lft,ra_dow_We:cft,ra_expertMode:uft,ra_fileType_all:dft,ra_fileType_audio:fft,ra_fileType_code:hft,ra_fileType_images:pft,ra_fileType_txt:mft,ra_fileType_video:vft,"ra_fileType_video,":"відео",ra_filter_customs:gft,ra_filter_customs_without:_ft,ra_filter_func:yft,ra_filter_id:bft,ra_filter_name:wft,ra_filter_role:Sft,ra_filter_room:xft,ra_filter_type:Cft,"ra_import data from %s file":"Імпортувати дані з файлу %s",ra_invalidConfig:Tft,ra_lastChange:kft,ra_locally:Eft,ra_month_Apr:Dft,ra_month_Aug:Mft,ra_month_Dec:Oft,ra_month_Feb:$ft,ra_month_Jan:Aft,ra_month_Jul:Pft,ra_month_Jun:Ift,ra_month_Mai:Rft,ra_month_Mar:Lft,ra_month_Nov:Nft,ra_month_Oct:Fft,ra_month_Sep:zft,ra_months_Apr:Bft,ra_months_Aug:jft,ra_months_Dec:Wft,ra_months_Feb:Hft,ra_months_Jan:Uft,ra_months_Jul:Yft,ra_months_Jun:Vft,ra_months_Mai:Gft,ra_months_Mar:qft,ra_months_Nov:Xft,ra_months_Oct:Jft,ra_months_Sep:Zft,ra_none:Kft,ra_object_changed_by:Qft,ra_object_changed_by_user:eht,ra_otherConfig:tht,ra_qualityCode:rht,ra_repeat:nht,ra_select_folder_hint:aht,ra_state_changed_by:iht,ra_state_changed_from:oht,ra_timestamp:sht,ra_tooltip_ack:lht,ra_tooltip_comment:cht,ra_tooltip_copyState:uht,ra_tooltip_customConfig:dht,ra_tooltip_deleteObject:fht,ra_tooltip_editObject:hht,ra_tooltip_editState:pht,ra_tooltip_from:mht,ra_tooltip_lc:vht,ra_tooltip_quality:ght,ra_tooltip_ts:_ht,ra_tooltip_user:yht,ra_tooltip_value:bht,"ra_use seconds":"використовуйте секунди",ra_val:wht,"ra_via internet":"через інтернет",ra_warning_every_minute:Sht,ra_warning_every_second:xht,sc_cron:Cht,sc_date:Tht,sc_dates:kht,sc_dow:Eht,sc_dows:Dht,sc_every:Mht,sc_everyN_dates:Oht,sc_everyN_dow:$ht,sc_everyN_dows:Aht,sc_everyN_hours:Pht,sc_everyN_minutes:Iht,sc_everyN_months:Rht,sc_everyN_seconds:Lht,sc_every_dates:Nht,sc_every_dow:Fht,sc_every_dows:zht,sc_every_hours:Bht,sc_every_minutes:jht,sc_every_months:Wht,sc_every_seconds:Hht,sc_from:Uht,sc_hours:Yht,sc_interval:Vht,sc_intervalBetween:Ght,sc_invalid_cron:qht,sc_minutes:Xht,sc_months:Jht,sc_once:Zht,sc_period:Kht,sc_seconds:Qht,sc_simple:ept,sc_specific:tpt,sc_specific_dates:rpt,sc_specific_dow:npt,sc_specific_dows:apt,sc_specific_hours:ipt,sc_specific_minutes:opt,sc_specific_months:spt,sc_specific_seconds:lpt,sc_time:cpt,sc_to:upt,sc_wizard:dpt,sch_all:fpt,sch_astroDay:hpt,sch_astroNight:ppt,sch_astro_dawn:mpt,sch_astro_dusk:vpt,sch_astro_goldenHour:gpt,sch_astro_goldenHourEnd:_pt,sch_astro_nadir:ypt,sch_astro_nauticalDawn:bpt,sch_astro_nauticalDusk:wpt,sch_astro_night:Spt,sch_astro_nightEnd:xpt,sch_astro_solarNoon:Cpt,sch_astro_sunrise:Tpt,sch_astro_sunriseEnd:kpt,sch_astro_sunset:Ept,sch_astro_sunsetStart:Dpt,sch_at:Mpt,sch_desc_atTime:Opt,sch_desc_everyDay:$pt,sch_desc_everyHour:Apt,sch_desc_everyMinute:Ppt,sch_desc_everyMonth:Ipt,sch_desc_everyNDay:Rpt,sch_desc_everyNHours:Lpt,sch_desc_everyNMinutes:Npt,sch_desc_everyNMonths:Fpt,sch_desc_everyNWeeks:zpt,sch_desc_everyNYears:Bpt,sch_desc_everyWeek:jpt,sch_desc_everyYear:Wpt,sch_desc_intervalFromTo:Hpt,sch_desc_never:Upt,sch_desc_onDate:Ypt,sch_desc_onDates:Vpt,sch_desc_onEveryDate:Gpt,sch_desc_onMonth:qpt,sch_desc_onMonths:Xpt,sch_desc_onWeekday:Jpt,sch_desc_onWeekdays:Zpt,sch_desc_onWeekends:Kpt,sch_desc_onWorkdays:Qpt,sch_desc_onceInPast:emt,sch_desc_once_on:tmt,sch_desc_validFrom:rmt,sch_desc_validFromTo:nmt,sch_desc_validTo:amt,sch_every:imt,sch_exactTime:omt,sch_from:smt,sch_fromTo:lmt,sch_intervalTime:cmt,sch_invert:umt,sch_no_one:dmt,sch_on:fmt,sch_period:hmt,sch_periodDaily:pmt,sch_periodDates:mmt,sch_periodDay:vmt,sch_periodEvery:gmt,sch_periodEveryDay:_mt,sch_periodEveryMonth:ymt,sch_periodEveryWeek:bmt,sch_periodEveryYear:wmt,sch_periodHours:Smt,sch_periodMinutes:xmt,sch_periodMonth:Cmt,sch_periodMonthly:Tmt,sch_periodOnce:kmt,sch_periodSpecificMonths:Emt,sch_periodWeek:Dmt,sch_periodWeekdays:Mmt,sch_periodWeekend:Omt,sch_periodWeekly:$mt,sch_periodWorkdays:Amt,sch_periodYear:Pmt,sch_periodYearly:Imt,sch_specificTime:Rmt,sch_time:Lmt,sch_to:Nmt,sch_valid:Fmt,sch_validFrom:zmt,sch_validTo:Bmt,sch_wholeDay:jmt,sch_yearEveryMonth:Wmt},Umt="附加",Ymt="取消",Vmt="类别",Gmt="勾选",qmt="删除",Xmt="关",Jmt="商业的",Zmt="配置",Kmt="连接的",Qmt="复制的",evt="创建",tvt="庄稼",rvt="Delete",nvt="删除",avt="丢弃",ivt="断开连接",ovt="错误",svt="筛选",lvt="星期五",cvt="纬度",uvt="经度",dvt="信息",fvt="周一",hvt="姓名",pvt="对象",mvt="好",vvt="产品",gvt="重复",_vt="代替",yvt="根",bvt="周六",wvt="保存",Svt="已选",xvt="状态",Cvt="星期日",Tvt="周四",kvt="时间戳记",Evt="周二",Dvt="更新资料",Mvt="有效期至",Ovt="值",$vt="版本",Avt="周三",Pvt="宽度",Ivt="是的",Rvt="不同的",Lvt="每个人都可以阅读对象",Nvt="每个人都可以阅读状态",Fvt="每个人都可以写对象",zvt="每个人都可以写状态",Bvt="组可以读取对象",jvt="群组可以读取状态",Wvt="组可以写对象",Hvt="组可以写状态",Uvt="所有者可以读取对象",Yvt="所有者可以读取状态",Vvt="所有者可以写对象",Gvt="所有者可以写状态",qvt="纽扣",Xvt="更改为",Jvt="关闭",Zvt="创建布尔状态",Kvt="创建频道",Qvt="创建设备",egt="创建号码状态",tgt="创建状态",rgt="创建字符串状态",ngt="天",agt="r",igt="莫",ogt="萨",sgt="苏",lgt="Th",cgt="Tu",ugt="我们",dgt="专家模式",fgt="所有文件",hgt="声音的",pgt="代码/JSON",mgt="图片",vgt="文本",ggt="视频",_gt="设定值",ygt="没有",bgt="功能",wgt="ID",Sgt="名称",xgt="角色",Cgt="房间",Tgt="类型",kgt="无效的设定",Egt="最后一次变更",Dgt="本地",Mgt="4月",Ogt="八月",$gt="十二月",Agt="二月",Pgt="简",Igt="七月",Rgt="君",Lgt="迈",Ngt="三月",Fgt="十一月",zgt="十月",Bgt="九月",jgt="4月",Wgt="八月",Hgt="十二月",Ugt="二月",Ygt="简",Vgt="七月",Ggt="君",qgt="迈",Xgt="三月",Jgt="十一月",Zgt="十月",Kgt="九月",Qgt="没有任何",e_t="物件变更者",t_t="对象上次更改时间为",r_t="来自其他适配器%s的设置",n_t="质量代码",a_t="重复",i_t="要选择文件夹,只需按住“shift”键单击文件夹即可。",o_t="状态由",s_t="对象已从更改",l_t="时间戳记",c_t="致谢国旗",u_t="评论",d_t="复制状态值",f_t="自定义设置",h_t="删除物件",p_t="编辑物件",m_t="编辑状态值",v_t="从",g_t="最后改变了",__t="质量",y_t="时间戳",b_t="用户",w_t="值",S_t="值",x_t="警告:CRON 作业将在指定期间内每分钟运行一次!",C_t="警告:CRON 作业将在指定期间内每秒运行一次!",T_t="周期任务",k_t="日期",E_t="日",D_t="天",M_t="星期",O_t="每",$_t="每N天",A_t="每周的第 N 天",P_t="每周N天",I_t="每N小时一次",R_t="每N分钟",L_t="每N个月",N_t="每N秒",F_t="每天",z_t="一周的每一天",B_t="一周的每一天",j_t="每小时",W_t="每分钟",H_t="每月",U_t="每秒",Y_t="从",V_t="小时",G_t="间隔",q_t="间隔时间",X_t="无效的 CRON",J_t="分钟",Z_t="月",K_t="一次",Q_t="周期",eyt="秒",tyt="简单模式",ryt="特定的时间",nyt="特定的日子",ayt="一周中的特定日子",iyt="特定的一周",oyt="特定的小时",syt="特定的分钟",lyt="特定的月份",cyt="特定的描述",uyt="时间",dyt="至",fyt="向导模式",hyt="全选",pyt="天文白天",myt="天文夜晚",vyt="黎明",gyt="黄昏",_yt="黄金时段",yyt="黄金时段结束",byt="天底",wyt="航海黎明",Syt="航海黄昏",xyt="夜晚",Cyt="夜晚结束",Tyt="正午",kyt="日出",Eyt="日出结束",Dyt="日落",Myt="日落开始",Oyt="在",$yt="的%s",Ayt="每天",Pyt="每小时",Iyt="每分钟",Ryt="每月",Lyt="每%s天",Nyt="每%s小时",Fyt="每%s分钟",zyt="每%s月",Byt="每%s周",jyt="每%s年",Wyt="每周",Hyt="每年",Uyt="从%s到%s",Yyt="决不",Vyt="在%s的%s上",Gyt="在%s和%s上",qyt="在每天",Xyt="%s",Jyt="%s和%s",Zyt="在%s上",Kyt="在%s和%s上",Qyt="在周末",e0t="在工作日",t0t="将不再执行,因为起始时间已经是过去的时间了。",r0t="在%s上",n0t="来自%s",a0t="从执行到",i0t="到%s",o0t="每",s0t="特定的时间",l0t="从",c0t="从到",u0t="间隔时间",d0t="倒置",f0t="取消全选",h0t="的",p0t="周期",m0t="每天",v0t="日期",g0t="天",_0t="每",y0t="每天",b0t="每月",w0t="每周",S0t="每年",x0t="小时",C0t="分钟",T0t="月",k0t="每月一次",E0t="一次",D0t="特定的月份",M0t="周",O0t="工作日",$0t="周末",A0t="每周",P0t="工作日",I0t="年",R0t="每年",L0t="特定的时间",N0t="时间",F0t="至",z0t="生效",B0t="从",j0t="至",W0t="一整天",H0t="每月",U0t={"ra_%s links from aliases":"来自别名的 %s 个链接","ra_%s object(s) processed":"已处理%s个对象","ra_%s was imported":"对象已导入","ra_Accept license":"接受许可","ra_Add new child object to selected parent":"将新的子对象添加到选定的父对象","ra_Add objects tree from JSON file":"从JSON文件添加对象树","ra_Add row":"添加行","ra_Advanced options":"高级选项","ra_All items are filtered out":"所有项目都被过滤掉","ra_All objects":"所有对象",ra_Append:Umt,"ra_Append %s entries or replace existing?":"追加 %s 条目还是替换现有条目?","ra_Append or replace?":"追加还是替换?","ra_Are you sure?":"你确定吗?","ra_Auto (no custom columns)":"自动(无自定义列)","ra_Back to %s":"返回“%s”","ra_Background image":"背景图像",ra_Cancel:Ymt,"ra_Cannot add items with set filter":"无法使用设置过滤器添加项目","ra_Cannot decode license":"无法解码许可证","ra_Cannot determine position: System settings are empty and GPS detection is disabled in browser":"无法确定位置:系统设置为空且浏览器中禁用了 GPS 检测",'ra_Cannot find "%s"':"找不到“%s”",'ra_Cannot read "%s"':"无法阅读“%s”","ra_Cannot read licenses: %s":"无法读取许可证:%s","ra_Cannot retrieve options, as instance is offline":"无法检索选项,因为实例处于脱机状态","ra_Cannot update attribute, because not found in the object":"无法更新属性,因为在对象中找不到","ra_Cannot upload":"无法上传",ra_Categories:Vmt,"ra_Chained certificate":"链式证书","ra_Change color theme":"更改颜色主题","ra_Changed from":"更改为","ra_Channel → State":"频道→状态","ra_Check license":"检查许可证",ra_Checked:Gmt,ra_Clear:qmt,"ra_Clear filter":"清除筛选","ra_Clear icon":"清除图标","ra_Clone current row":"克隆当前行",ra_Close:Xmt,"ra_Collapse all nodes":"收合所有节点","ra_Collapse one step node":"折叠一级",ra_Commercial:Jmt,ra_Configure:Zmt,"ra_Configure visible columns":"配置可见列","ra_Confirm deletion of %s":"确认删除%s",ra_Connected:Kmt,ra_Copied:Qmt,"ra_Copied %s":'复制的"%s"',"ra_Copy content":"复制内容",ra_Create:evt,"ra_Create alias":"创建别名","ra_Create folder":"创建文件夹","ra_Create new folder in %s":"在%s中创建新文件夹",ra_Crop:tvt,"ra_Define CRON...":"定义 CRON...","ra_Define functions":"定义功能","ra_Define rooms":"定义房间","ra_Define schedule":"定义时间表","ra_Define schedule...":"定义时间表...",ra_Del:rvt,ra_Delete:nvt,"ra_Delete (no confirm for 5 mins)":"删除(5分钟内未确认)","ra_Delete current row":"删除当前行","ra_Deselect all":"全部取消选择","ra_Device → Channel → State":"设备→频道→状态",ra_Discard:avt,ra_Disconnected:ivt,"ra_Do not export values of states":"不导出状态值","ra_Do not use let's encrypt":"不要使用让我们加密","ra_Double click to reset table layout":"双击重置表格布局","ra_Drag 'n' drop some files here, or click to select files":"将一些文件拖放到此处,或单击以选择文件","ra_Drop file here":"将档案放在这里","ra_Drop the files here...":"把文件放在这里...","ra_Duplicate name":"名称重复","ra_Edit ACL":"编辑访问控制列表","ra_Edit alias":"编辑别名","ra_Edit custom config":"编辑自定义配置","ra_Edit function":"编辑功能","ra_Edit object field":"编辑对象字段","ra_Edit role":"编辑角色","ra_Edit room":"编辑室","ra_Edit value":"编辑值",ra_Error:ovt,"ra_Expand all nodes":"展开所有节点","ra_Expand one step node":"扩大一级","ra_Export data to %s file":"将数据导出到 %s 文件","ra_Failed to open JSON File":"无法打开JSON文件","ra_Fallback custom certificates":"后备自定义证书","ra_File is too big. Max %sk allowed. Try use SVG.":"文件太大。允许的最大字节%s数。尝试使用 SVG。",ra_Filter:svt,"ra_Filter files":"过滤文件","ra_Folder name":"文件夹名称","ra_Folder → Channel → State":"文件夹→频道→状态","ra_Folder → Device → Channel → State":"文件夹→设备→频道→状态","ra_Folder → State":"文件夹→状态","ra_Folders always first":"资料夹永远优先",ra_Friday:lvt,"ra_Good luck":"祝你好运","ra_Hide empty folders":"隐藏空文件夹","ra_If no file will be created in the folder, it will disappear after the browser closed":"如果在该文件夹中未创建任何文件,则该文件将在浏览器关闭后消失","ra_Import data from %s file":"从 %s 文件导入数据","ra_Import from %s":"从 %s 导入","ra_Instance %s is alive":"实例 %s 是活动的","ra_Instance %s is not alive":"实例 %s 不存在","ra_Instance is not alive":"实例不存在","ra_Invalid CRON":"无效的 CRON","ra_Invalid JSON":"JSON 无效","ra_Invalid answer from server":"来自服务器的无效答案","ra_Invalid parent folder!":"父文件夹无效!","ra_Invalid structure":"结构无效","ra_JSON editor":"JSON 编辑器","ra_Last change":"最后一次变更",ra_Latitude:cvt,"ra_License %s":"许可证 %s","ra_License agreement":"许可协议","ra_License does not exist":"许可证不存在","ra_License expired on %s":"许可证已于 %s 过期",'ra_License for other product "%s"':"其他产品“%s”的许可证","ra_License is for version %s, but required version is %s.":"许可证适用于版本 %s,但所需版本为 %s。","ra_License must be converted":"许可证必须转换为更新版本。您可以在 iobroker.net 个人资料中执行此操作。","ra_License not found in license manager. Do you want to read licenses from iobroker.net?":"在许可证管理器中找不到许可证。您要从 iobroker.net 更新许可证吗?","ra_Listen on all IPs":"监听所有IP","ra_Load configuration from file":"从文件加载配置",ra_Longitude:uvt,'ra_May not trigger "updateLicenses"':"可能不会触发“updateLicenses”",ra_Message:dvt,ra_Monday:fvt,"ra_Move down":"下移","ra_Move up":"提升",ra_Name:hvt,"ra_No data found in file":"文件中未找到数据","ra_No one license found in license manager":"许可证管理器中未找到任何许可证","ra_No response from the backend":"后端无响应",'ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".':"非专家只能在“ 0_userdata.0”或“ alias.0”中创建新对象。","ra_Not a number":"不是数字",ra_Objects:pvt,ra_Ok:mvt,"ra_On weekdays":"在工作日","ra_Only following structures of objects are available:":"仅以下对象结构可用:","ra_Only selected":"只选择","ra_Owner group":"所有者组","ra_Owner user":"所有者用户","ra_Passwords are not equal!":"密码不相等!","ra_Place your files here or click here to open the browse dialog":"将文件放在此处或单击此处打开浏览对话框","ra_Please confirm":"请确认","ra_Please create license":"请创建许可证","ra_Please enter the license":"请输入许可证","ra_Please select file...":"请选择文件...","ra_Please select object ID...":"请选择对象ID ...","ra_Port could be used by %s":"%s 可以使用端口","ra_Port is already used by %s":"端口已被 %s 使用","ra_Private certificate":"私有证书",ra_Product:vvt,"ra_Public certificate":"公共证书","ra_Quality code":"质量代码","ra_Refresh tree":"刷新树","ra_Reload files":"重新载入文件",ra_Repeat:gvt,ra_Replace:_vt,"ra_Request timed out":"请求超时","ra_Restrict to folder":"限制到文件夹",ra_Root:yvt,ra_Saturday:bvt,ra_Save:wvt,"ra_Save and close":"保存并关闭","ra_Save configuration to file":"将配置保存到文件","ra_Save objects tree as JSON file":"将对象树另存为JSON文件","ra_Select all":"全选","ra_Select color":"选择颜色","ra_Select predefined icon":"选择预定义图标","ra_Select type of export":"选择导出类型",ra_Selected:Svt,"ra_Selected %s object(s)":"选定的 %s 个对象","ra_Serial number (UUID)":"序列号 (UUID)",'ra_Serial number (UUID) "%s" in license is for other device.':"许可证中的序列号 (UUID)“%s”用于其他设备。","ra_Show all folders":"显示所有文件夹","ra_Show lines between rows":"显示行之间的线","ra_Show/Hide object descriptions":"显示/隐藏对象描述","ra_Show/hide filter input":"显示/隐藏过滤器输入","ra_Some data are not stored. Discard?":"部分数据未存储。丢弃?",ra_States:xvt,"ra_Suitable license not found in license manager":"在许可证管理器中找不到合适的许可证",ra_Sunday:Cvt,"ra_Suppress question for next %s minutes":"在接下来的%s分钟内取消提问","ra_System language":"系统语言","ra_Take browser position":"从浏览器获取位置","ra_Take position from system settings":"从系统设置中获取位置",'ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").':"专家可以在任何地方创建对象,但要从第二层开始(例如“ vis.0”或“ javascript.0”)。","ra_The page you are looking for was not found":"未找到您要查找的页面","ra_The schedule will be executed every minute. Are you sure?":"该计划将每分钟执行一次。您确定吗?","ra_The schedule will be executed every second. Are you sure?":"该计划将每秒执行一次。你确定吗?",ra_Thursday:Tvt,ra_Timestamp:kvt,"ra_Toggle expert mode":"切换专家模式","ra_Toggle the states view":"切换状态视图","ra_Toggle view mode":"切换检视模式","ra_Too big":"太大","ra_Too small":"太小","ra_Transparent dialog":"透明对话框",ra_Tuesday:Evt,"ra_Unknown error":"未知错误","ra_Unknown error!":"未知错误!",ra_Update:Dvt,"ra_Upload file":"上传文件","ra_Use all available let's encrypt certificates":"使用所有可用的让我们加密证书","ra_Use iobroker.acme adapter for letsencrypt certificates":"使用 iobroker.acme 适配器获取 letsencrypt 证书","ra_Use system settings for position":"使用系统设置定位","ra_Used system settings":"使用的系统设置","ra_User files":"用户档案",ra_ValidTill:Mvt,ra_Value:Ovt,ra_Version:$vt,"ra_View file":"查看文件","ra_View: %s":"查看:%s",ra_Wednesday:Avt,ra_Width:Pvt,ra_Yes:Ivt,"ra_You can export all objects or just the selected branch.":"您可以导出所有对象或仅导出选定的分支。","ra_You can filter entries by entering here some text":"您可以通过在此处输入一些文本来过滤条目",ra___different__:Rvt,ra_aclEveryone_read_object:Lvt,ra_aclEveryone_read_state:Nvt,ra_aclEveryone_write_object:Fvt,ra_aclEveryone_write_state:zvt,ra_aclGroup_read_object:Bvt,ra_aclGroup_read_state:jvt,ra_aclGroup_write_object:Wvt,ra_aclGroup_write_state:Hvt,ra_aclOwner_read_object:Uvt,ra_aclOwner_read_state:Yvt,ra_aclOwner_write_object:Vvt,ra_aclOwner_write_state:Gvt,ra_buttons:qvt,ra_changedFrom:Xvt,ra_close:Jvt,ra_create_boolean_state:Zvt,ra_create_channel:Kvt,ra_create_device:Qvt,ra_create_number_state:egt,ra_create_state:tgt,ra_create_string_state:rgt,ra_daysShortText:ngt,ra_dow_Fr:agt,ra_dow_Mo:igt,ra_dow_Sa:ogt,ra_dow_Su:sgt,ra_dow_Th:lgt,ra_dow_Tu:cgt,ra_dow_We:ugt,ra_expertMode:dgt,ra_fileType_all:fgt,ra_fileType_audio:hgt,ra_fileType_code:pgt,ra_fileType_images:mgt,ra_fileType_txt:vgt,ra_fileType_video:ggt,"ra_fileType_video,":"视频",ra_filter_customs:_gt,ra_filter_customs_without:ygt,ra_filter_func:bgt,ra_filter_id:wgt,ra_filter_name:Sgt,ra_filter_role:xgt,ra_filter_room:Cgt,ra_filter_type:Tgt,"ra_import data from %s file":"从 %s 文件导入数据",ra_invalidConfig:kgt,ra_lastChange:Egt,ra_locally:Dgt,ra_month_Apr:Mgt,ra_month_Aug:Ogt,ra_month_Dec:$gt,ra_month_Feb:Agt,ra_month_Jan:Pgt,ra_month_Jul:Igt,ra_month_Jun:Rgt,ra_month_Mai:Lgt,ra_month_Mar:Ngt,ra_month_Nov:Fgt,ra_month_Oct:zgt,ra_month_Sep:Bgt,ra_months_Apr:jgt,ra_months_Aug:Wgt,ra_months_Dec:Hgt,ra_months_Feb:Ugt,ra_months_Jan:Ygt,ra_months_Jul:Vgt,ra_months_Jun:Ggt,ra_months_Mai:qgt,ra_months_Mar:Xgt,ra_months_Nov:Jgt,ra_months_Oct:Zgt,ra_months_Sep:Kgt,ra_none:Qgt,ra_object_changed_by:e_t,ra_object_changed_by_user:t_t,ra_otherConfig:r_t,ra_qualityCode:n_t,ra_repeat:a_t,ra_select_folder_hint:i_t,ra_state_changed_by:o_t,ra_state_changed_from:s_t,ra_timestamp:l_t,ra_tooltip_ack:c_t,ra_tooltip_comment:u_t,ra_tooltip_copyState:d_t,ra_tooltip_customConfig:f_t,ra_tooltip_deleteObject:h_t,ra_tooltip_editObject:p_t,ra_tooltip_editState:m_t,ra_tooltip_from:v_t,ra_tooltip_lc:g_t,ra_tooltip_quality:__t,ra_tooltip_ts:y_t,ra_tooltip_user:b_t,ra_tooltip_value:w_t,"ra_use seconds":"用秒",ra_val:S_t,"ra_via internet":"通过互联网",ra_warning_every_minute:x_t,ra_warning_every_second:C_t,sc_cron:T_t,sc_date:k_t,sc_dates:E_t,sc_dow:D_t,sc_dows:M_t,sc_every:O_t,sc_everyN_dates:$_t,sc_everyN_dow:A_t,sc_everyN_dows:P_t,sc_everyN_hours:I_t,sc_everyN_minutes:R_t,sc_everyN_months:L_t,sc_everyN_seconds:N_t,sc_every_dates:F_t,sc_every_dow:z_t,sc_every_dows:B_t,sc_every_hours:j_t,sc_every_minutes:W_t,sc_every_months:H_t,sc_every_seconds:U_t,sc_from:Y_t,sc_hours:V_t,sc_interval:G_t,sc_intervalBetween:q_t,sc_invalid_cron:X_t,sc_minutes:J_t,sc_months:Z_t,sc_once:K_t,sc_period:Q_t,sc_seconds:eyt,sc_simple:tyt,sc_specific:ryt,sc_specific_dates:nyt,sc_specific_dow:ayt,sc_specific_dows:iyt,sc_specific_hours:oyt,sc_specific_minutes:syt,sc_specific_months:lyt,sc_specific_seconds:cyt,sc_time:uyt,sc_to:dyt,sc_wizard:fyt,sch_all:hyt,sch_astroDay:pyt,sch_astroNight:myt,sch_astro_dawn:vyt,sch_astro_dusk:gyt,sch_astro_goldenHour:_yt,sch_astro_goldenHourEnd:yyt,sch_astro_nadir:byt,sch_astro_nauticalDawn:wyt,sch_astro_nauticalDusk:Syt,sch_astro_night:xyt,sch_astro_nightEnd:Cyt,sch_astro_solarNoon:Tyt,sch_astro_sunrise:kyt,sch_astro_sunriseEnd:Eyt,sch_astro_sunset:Dyt,sch_astro_sunsetStart:Myt,sch_at:Oyt,sch_desc_atTime:$yt,sch_desc_everyDay:Ayt,sch_desc_everyHour:Pyt,sch_desc_everyMinute:Iyt,sch_desc_everyMonth:Ryt,sch_desc_everyNDay:Lyt,sch_desc_everyNHours:Nyt,sch_desc_everyNMinutes:Fyt,sch_desc_everyNMonths:zyt,sch_desc_everyNWeeks:Byt,sch_desc_everyNYears:jyt,sch_desc_everyWeek:Wyt,sch_desc_everyYear:Hyt,sch_desc_intervalFromTo:Uyt,sch_desc_never:Yyt,sch_desc_onDate:Vyt,sch_desc_onDates:Gyt,sch_desc_onEveryDate:qyt,sch_desc_onMonth:Xyt,sch_desc_onMonths:Jyt,sch_desc_onWeekday:Zyt,sch_desc_onWeekdays:Kyt,sch_desc_onWeekends:Qyt,sch_desc_onWorkdays:e0t,sch_desc_onceInPast:t0t,sch_desc_once_on:r0t,sch_desc_validFrom:n0t,sch_desc_validFromTo:a0t,sch_desc_validTo:i0t,sch_every:o0t,sch_exactTime:s0t,sch_from:l0t,sch_fromTo:c0t,sch_intervalTime:u0t,sch_invert:d0t,sch_no_one:f0t,sch_on:h0t,sch_period:p0t,sch_periodDaily:m0t,sch_periodDates:v0t,sch_periodDay:g0t,sch_periodEvery:_0t,sch_periodEveryDay:y0t,sch_periodEveryMonth:b0t,sch_periodEveryWeek:w0t,sch_periodEveryYear:S0t,sch_periodHours:x0t,sch_periodMinutes:C0t,sch_periodMonth:T0t,sch_periodMonthly:k0t,sch_periodOnce:E0t,sch_periodSpecificMonths:D0t,sch_periodWeek:M0t,sch_periodWeekdays:O0t,sch_periodWeekend:$0t,sch_periodWeekly:A0t,sch_periodWorkdays:P0t,sch_periodYear:I0t,sch_periodYearly:R0t,sch_specificTime:L0t,sch_time:N0t,sch_to:F0t,sch_valid:z0t,sch_validFrom:B0t,sch_validTo:j0t,sch_wholeDay:W0t,sch_yearEveryMonth:H0t},Y0t="Export",V0t="Cancel",G0t="Close",q0t={"Save as image":"Save as image","Reset pan and zoom":"Reset pan and zoom","Save chart as svg":"Save chart as SVG","Unfortunately your browser does not support this feature":"Unfortunately your browser does not support this feature","Save chart as png":"Save chart as png","No data found":"No data found","Export raw data as CSV":"Export raw data as CSV","Select lines for export":"Select lines for export","Time format":"Time format","Browser format":"Browser time format","Time stamp in milliseconds":"Time stamp in milliseconds",Export:Y0t,Cancel:V0t,"Select lines":"Select lines","Select lines to show":"Select lines to show","Select all":"Select all",Close:G0t,"Unselect all":"Unselect all"},X0t="Export",J0t="Abbrechen",Z0t="Schließen",K0t={"Save as image":"Als Bild speichern","Reset pan and zoom":"Verschiebung und Zoomen zurücksetzen","Save chart as svg":"Diagramm als SVG speichern","Unfortunately your browser does not support this feature":"Leider unterstützt Ihr Browser diese Funktion nicht","Save chart as png":"Diagramm als PNG speichern","No data found":"Keine Daten gefunden","Export raw data as CSV":"Rohdaten als CSV exportieren","Select lines for export":"Wählen Sie Zeilen für den Export aus","Time format":"Zeitformat","Browser format":"Browser-Zeitformat","Time stamp in milliseconds":"Zeitstempel in Millisekunden",Export:X0t,Cancel:J0t,"Select lines":"Wählen Sie Zeilen aus","Select lines to show":"Wählen Sie die anzuzeigenden Linien aus","Select all":"Wählen Sie Alle",Close:Z0t,"Unselect all":"Alles wiederufen"},Q0t="Экспорт",ebt="Отмена",tbt="Закрыть",rbt={"Save as image":"Сохранить как изображение","Reset pan and zoom":"Сбросить сдвиг и масштабирование","Save chart as svg":"Сохранить график как SVG","Unfortunately your browser does not support this feature":"К сожалению, ваш браузер не поддерживает эту функцию","Save chart as png":"Сохранить диаграмму как png","No data found":"Данные не найдены","Export raw data as CSV":"Экспорт необработанных данных в формате CSV","Select lines for export":"Выбрать строки для экспорта","Time format":"Формат времени","Browser format":"Формат времени браузера","Time stamp in milliseconds":"Отметка времени в миллисекундах",Export:Q0t,Cancel:ebt,"Select lines":"Выберите строки","Select lines to show":"Выберите строки для отображения","Select all":"Выбрать все",Close:tbt,"Unselect all":"Снять все"},nbt="Exportar",abt="Cancelar",ibt="Fechar",obt={"Save as image":"Salvar como imagem","Reset pan and zoom":"Redefinir panorâmica e zoom","Save chart as svg":"Salvar gráfico como SVG","Unfortunately your browser does not support this feature":"Infelizmente, seu navegador não oferece suporte a esse recurso","Save chart as png":"Salvar gráfico como png","No data found":"Nenhum dado encontrado","Export raw data as CSV":"Exportar dados brutos como CSV","Select lines for export":"Selecione as linhas para exportação","Time format":"Formato de hora","Browser format":"Formato de hora do navegador","Time stamp in milliseconds":"Carimbo de hora em milissegundos",Export:nbt,Cancel:abt,"Select lines":"Selecione linhas","Select lines to show":"Selecione linhas para mostrar","Select all":"Selecionar tudo",Close:ibt,"Unselect all":"Desmarque todos"},sbt="Exporteren",lbt="Annuleren",cbt="Dichtbij",ubt={"Save as image":"Bewaar als afbeelding","Reset pan and zoom":"Stel pannen en zoomen opnieuw in","Save chart as svg":"Bewaar grafiek als SVG","Unfortunately your browser does not support this feature":"Helaas ondersteunt uw browser deze functie niet","Save chart as png":"Bewaar grafiek als png","No data found":"Geen data gevonden","Export raw data as CSV":"Exporteer onbewerkte gegevens als CSV","Select lines for export":"Selecteer regels voor export","Time format":"Tijd formaat","Browser format":"Browser tijdformaat","Time stamp in milliseconds":"Tijdstempel in milliseconden",Export:sbt,Cancel:lbt,"Select lines":"Selecteer lijnen","Select lines to show":"Selecteer lijnen om weer te geven","Select all":"Selecteer alles",Close:cbt,"Unselect all":"Deselecteer alles"},dbt="Exporter",fbt="Annuler",hbt="Fermer",pbt={"Save as image":"Enregistrer comme image","Reset pan and zoom":"Réinitialiser le panoramique et le zoom","Save chart as svg":"Enregistrer le graphique au format SVG","Unfortunately your browser does not support this feature":"Malheureusement, votre navigateur ne prend pas en charge cette fonctionnalité","Save chart as png":"Enregistrer le graphique au format png","No data found":"Aucune donnée disponible","Export raw data as CSV":"Exporter les données brutes au format CSV","Select lines for export":"Sélectionner les lignes à exporter","Time format":"Format de l'heure","Browser format":"Format d'heure du navigateur","Time stamp in milliseconds":"Horodatage en millisecondes",Export:dbt,Cancel:fbt,"Select lines":"Sélectionner des lignes","Select lines to show":"Sélectionnez les lignes à afficher","Select all":"Tout sélectionner",Close:hbt,"Unselect all":"Tout déselectionner"},mbt="Esportare",vbt="Annulla",gbt="Vicino",_bt={"Save as image":"Salva come immagine","Reset pan and zoom":"Reimposta panoramica e zoom","Save chart as svg":"Salva grafico come SVG","Unfortunately your browser does not support this feature":"Purtroppo il tuo browser non supporta questa funzionalità","Save chart as png":"Salva grafico come png","No data found":"Nessun dato trovato","Export raw data as CSV":"Esporta i dati grezzi come CSV","Select lines for export":"Seleziona le linee per l'esportazione","Time format":"Formato orario","Browser format":"Formato dell'ora del browser","Time stamp in milliseconds":"Timestamp in millisecondi",Export:mbt,Cancel:vbt,"Select lines":"Seleziona linee","Select lines to show":"Seleziona le righe da mostrare","Select all":"Seleziona tutto",Close:gbt,"Unselect all":"Deseleziona tutto"},ybt="Exportar",bbt="Cancelar",wbt="Cerca",Sbt={"Save as image":"Guardar como imagen","Reset pan and zoom":"Restablecer panorámica y zoom","Save chart as svg":"Guardar gráfico como SVG","Unfortunately your browser does not support this feature":"Lamentablemente, su navegador no es compatible con esta función.","Save chart as png":"Guardar gráfico como png","No data found":"Datos no encontrados","Export raw data as CSV":"Exportar datos sin procesar como CSV","Select lines for export":"Seleccionar líneas para exportar","Time format":"Formato de tiempo","Browser format":"formato de hora del navegador","Time stamp in milliseconds":"Marca de tiempo en milisegundos",Export:ybt,Cancel:bbt,"Select lines":"Seleccionar líneas","Select lines to show":"Seleccionar líneas para mostrar","Select all":"Seleccionar todo",Close:wbt,"Unselect all":"Deselecciona todo"},xbt="Eksport",Cbt="Anulować",Tbt="Zamknąć",kbt={"Save as image":"Zapisz jako obraz","Reset pan and zoom":"Zresetuj przesuwanie i powiększanie","Save chart as svg":"Zapisz wykres jako SVG","Unfortunately your browser does not support this feature":"Niestety Twoja przeglądarka nie obsługuje tej funkcji","Save chart as png":"Zapisz wykres jako png","No data found":"Nie znaleziono danych","Export raw data as CSV":"Eksportuj surowe dane jako CSV","Select lines for export":"Wybierz linie do eksportu","Time format":"Format czasu","Browser format":"Format czasu przeglądarki","Time stamp in milliseconds":"Znacznik czasu w milisekundach",Export:xbt,Cancel:Cbt,"Select lines":"Wybierz linie","Select lines to show":"Wybierz linie do pokazania","Select all":"Zaznacz wszystko",Close:Tbt,"Unselect all":"Odznacz wszystko"},Ebt="Експорт",Dbt="Скасувати",Mbt="Закрити",Obt={"No data found":"Даних не знайдено","Reset pan and zoom":"Скинути панорамування та масштабування","Save as image":"Зберегти як зображення","Save chart as png":"Зберегти діаграму як png","Save chart as svg":"Зберегти діаграму як SVG","Unfortunately your browser does not support this feature":"На жаль, ваш браузер не підтримує цю функцію","Export raw data as CSV":"Експорт необроблених даних як CSV","Select lines for export":"Виберіть рядки для експорту","Time format":"Формат часу","Browser format":"Формат часу браузера","Time stamp in milliseconds":"Мітка часу в мілісекундах",Export:Ebt,Cancel:Dbt,"Select lines":"Виберіть лінії","Select lines to show":"Виберіть рядки для показу","Select all":"Вибрати все",Close:Mbt,"Unselect all":"Скасувати вибір усіх"},$bt="出口",Abt="取消",Pbt="关闭",Ibt={"Save as image":"另存为图片","Reset pan and zoom":"重置平移和缩放","Save chart as svg":"将图表另存为SVG","Unfortunately your browser does not support this feature":"不幸的是,您的浏览器不支持此功能","Save chart as png":"将图表另存为png","No data found":"没有找到数据","Export raw data as CSV":"将原始数据导出为 CSV","Select lines for export":"选择要导出的行","Time format":"时间格式","Browser format":"浏览器时间格式","Time stamp in milliseconds":"以毫秒为单位的时间戳",Export:$bt,Cancel:Abt,"Select lines":"选择线路","Select lines to show":"选择要显示的行","Select all":"全选",Close:Pbt,"Unselect all":"全部取消选择"};function h7(t){t=(t||"").toString().replace(/^\?/,"");const e={};return t.split("&").forEach(r=>{if(r=r.trim(),r){const n=r.split("="),a=decodeURIComponent(n[0]).trim();if(n.length>1)if(e[a]=decodeURIComponent(n[1]),e[a]==="true")e[a]=!0;else if(e[a]==="false")e[a]=!1;else{const i=parseFloat(e[a]);i.toString()===e[a]&&(e[a]=i)}else e[a]=!0}}),e}function Xg(t){const e=JSON.parse(JSON.stringify(t));if(t.lines&&(e.l=t.lines,delete e.lines),t._ids){const r=t._ids?t._ids.split(";"):[],n=t._colors?t._colors.split(";"):[],a=t._names?t._names.split(";"):[],i=t._units?t._units.split(";"):[];e.l=[];for(let o=0;o{this.lastHash!==window.location.hash&&(this.lastHash=window.location.hash,this.analyseAndLoadConfig())});de(this,"onPresetUpdate",(e,r)=>{e===this.preset&&(this.presetUpdateTimeout&&clearTimeout(this.presetUpdateTimeout),this.presetUpdateTimeout=setTimeout(()=>{this.presetUpdateTimeout=null;let n;r?n=Xg(r.native.data):n=Xg({}),JSON.stringify(n)!==JSON.stringify(this.config)&&(this.config=n,this.updateInterval&&clearInterval(this.updateInterval),this.updateInterval=null,this.config.live&&(!this.zoomData||!this.zoomData.stopLive)&&(this.updateInterval=setInterval(()=>this.readData(),this.config.live*1e3)),this.readData())},100))});de(this,"onStateChange",(e,r)=>{if(!e||!r||this.reading)return;this.debug&&console.log(`State update ${e} - ${r.val}`);let n=!1;for(let a=0;ac.ts-d.ts?-1:c.ts(a.toString().includes(Xs)&&this.onErrorFunc&&this.onErrorFunc(a),console.error(`Cannot read systemConfig: ${a.toString()}`),null)).then(a=>(this.systemConfig=a!=null&&a.common?a.common:{},this.defaultHistory=this.systemConfig.defaultHistory,this.analyseAndLoadConfig(r)))}async analyseAndLoadConfig(e){var r,n,a,i,o;if(e)typeof e=="string"?this.preset=e:this.config=Xg(e);else if(!this.serverSide){const s=h7(window.location.search);if(this.debug=s.debug===!0||s.debug==="true"||s.debug===1||s.debug==="1",s.preset&&typeof s.preset=="string")this.preset=s.preset;else{const l=h7((window.location.hash||"").toString().replace(/^#/,""));let c={};if(l.data&&typeof l.data=="string")try{c=JSON.parse(l.data)}catch{}if(s.data&&typeof s.data=="string")try{Object.assign(c,JSON.parse(s.data),!0)}catch{}l.preset?(this.preset=l.preset,(l.range||l.relativeEnd)&&(this.hash={range:l.range,relativeEnd:l.relativeEnd})):(l.noLoader!==void 0&&(c.noLoader=l.noLoader===!0||l.noLoader==="true"||l.noLoader===1||l.noLoader==="1"),s.noLoader!==void 0&&(c.noLoader=s.noLoader===!0||s.noLoader==="true"||s.noLoader===1||s.noLoader==="1"),this.config=Xg(c))}}if(this.seriesData=[],this.barData=[],this.barCategories=null,this.updateInterval&&(clearInterval(this.updateInterval),this.updateInterval=null),this.preset){(!this.preset.startsWith("echarts.")&&!this.preset.startsWith("flot.")||!this.preset.includes("."))&&(this.preset=`echarts.0.${this.preset}`);try{const s=await this.socket.getObject(this.preset);if(!((r=s==null?void 0:s.native)!=null&&r.data)||s.type!=="chart"){console.error(`[ChartModel] Invalid object ${this.preset}: ${JSON.stringify(s)}`);return}this.config=Xg(s.native.data),this.config.useComma=this.config.useComma===void 0?this.systemConfig.isFloatComma:this.config.useComma,this.config.lang=this.systemConfig.language,this.config.live=parseInt(this.config.live,10)||0,this.config.debug=this.debug,this.config.presetId=this.preset,(n=this.hash)!=null&&n.range&&(typeof this.hash.range=="string"&&!this.hash.range.includes("y")&&!this.hash.range.includes("m")?this.config.range=parseInt(this.hash.range,10):this.config.range=this.hash.range),(a=this.hash)!=null&&a.relativeEnd&&(this.config.relativeEnd=this.hash.relativeEnd),await this.readData(),!this.serverSide&&this.presetSubscribed!==this.preset&&(this.presetSubscribed&&await this.socket.unsubscribeObject(this.presetSubscribed,this.onPresetUpdate),this.presetSubscribed=this.preset,await this.socket.subscribeObject(this.preset,this.onPresetUpdate)),!this.serverSide&&this.config.live&&!((i=this.zoomData)!=null&&i.stopLive)&&(this.updateInterval=setInterval(()=>this.readData(),this.config.live*1e3))}catch(s){s===Xs&&this.onErrorFunc&&this.onErrorFunc(s),console.error(`Cannot read "${this.preset}": ${s}`)}}else this.config.useComma=this.config.useComma===void 0?this.systemConfig.isFloatComma===!0:this.config.useComma===!0,this.config.lang=this.systemConfig.language,this.config.live=parseInt(this.config.live,10)||0,this.config.debug=this.debug,await this.readData(),!this.serverSide&&this.config.live&&!((o=this.zoomData)!=null&&o.stopLive)&&(this.updateInterval=setInterval(()=>this.readData(),this.config.live*1e3))}setNewRange(e){var r;if(this.debug&&console.log(`[ChartModel] [${new Date().toISOString()}] setNewRange: ${JSON.stringify(e)}`),!e)this.zoomData&&(this.zoomData=null,this.readOnZoomTimeout&&clearTimeout(this.readOnZoomTimeout),this.readOnZoomTimeout=setTimeout(()=>{this.readOnZoomTimeout=null,this.config.live&&(!this.zoomData||!this.zoomData.stopLive)&&(console.log("Restore update"),this.updateInterval&&clearInterval(this.updateInterval),this.updateInterval=setInterval(()=>this.readData(),this.config.live*1e3)),this.readData()},this.updateTimeout));else if(e.stopLive)this.zoomData=this.zoomData||{},this.zoomData.stopLive=!0,this.updateInterval&&(console.log("Clear interval"),clearInterval(this.updateInterval),this.updateInterval=null);else{const n=(r=this.zoomData)==null?void 0:r.stopLive;n&&delete this.zoomData.stopLive,!this.zoomData||JSON.stringify(this.zoomData)!==JSON.stringify(e)?(this.zoomData=e,n&&(this.zoomData.stopLive=!0),this.readOnZoomTimeout&&clearTimeout(this.readOnZoomTimeout),this.readOnZoomTimeout=setTimeout(()=>{this.readOnZoomTimeout=null,this.readData()},this.updateTimeout)):n&&(this.zoomData.stopLive=!0)}}destroy(){this.subscribed&&(this.serverSide||this.subscribes.forEach(e=>this.socket.unsubscribeState(e,this.onStateChange)),this.subscribes=[],this.subscribed=!1),this.readOnZoomTimeout&&(clearTimeout(this.readOnZoomTimeout),this.readOnZoomTimeout=null),this.presetUpdateTimeout&&(clearTimeout(this.presetUpdateTimeout),this.presetUpdateTimeout=null),this.presetSubscribed&&(this.serverSide||this.socket.unsubscribeObject(this.presetSubscribed,this.onPresetUpdate),this.presetSubscribed=null),this.updateInterval&&(clearInterval(this.updateInterval),this.updateInterval=null),this.serverSide||this.onHashInstalled&&(window.removeEventListener("hashchange",this.onHashChange,!1),this.onHashInstalled=!1)}onUpdate(e){this.onUpdateFunc=e}onReading(e){this.onReadingFunc=e}onError(e){this.onErrorFunc=e}getConfig(){return this.config}getSystemConfig(){return this.systemConfig}setConfig(e){this.analyseAndLoadConfig(e)}increaseRegionForBar(e,r,n){this.config.aggregateBar=parseInt(this.config.aggregateBar,10)||0;let a=typeof r=="number"?r:r.getTime(),i=typeof e=="number"?e:e.getTime();if(this.config.aggregateBar||(a-i<=36e5*12?this.config.aggregateBar=15:a-i>=36e5*24*60?this.config.aggregateBar=43200:a-i>36e5*24*3?this.config.aggregateBar=1440:this.config.aggregateBar=60),n=n||{},this.config.aggregateBar===15){const o=new Date(i);o.setMinutes(Math.floor(o.getMinutes()/15)*15),this.config.postProcessing==="diff"&&o.setMinutes(o.getMinutes()-15),o.setSeconds(0),o.setMilliseconds(0),i=o.getTime();const s=new Date(a);s.setMinutes(Math.ceil(s.getMinutes()/15)*15),s.setSeconds(0),s.setMilliseconds(0),a=s.getTime(),n.count=Math.round((a-i)/9e5)}else if(this.config.aggregateBar===60){const o=new Date(i);o.setMinutes(0),o.setSeconds(0),o.setMilliseconds(0),this.config.postProcessing==="diff"&&o.setMinutes(o.getMinutes()-60),i=o.getTime();const s=new Date(a);s.setMinutes(60),s.setSeconds(0),s.setMilliseconds(0),a=s.getTime(),n.count=Math.round((a-i)/36e5)}else if(this.config.aggregateBar===1440){const o=new Date(i);o.setHours(0),o.setMinutes(0),o.setSeconds(0),o.setMilliseconds(0),this.config.postProcessing==="diff"&&o.setDate(o.getDate()-1),i=o.getTime();const s=new Date(a);s.setDate(s.getDate()+1),s.setHours(0),s.setMinutes(0),s.setSeconds(0),s.setMilliseconds(0),a=s.getTime(),n.count=Math.round((a-i)/864e5)}else if(this.config.aggregateBar===43200){const o=new Date(i);o.setDate(1),o.setHours(0),o.setMinutes(0),o.setSeconds(0),o.setMilliseconds(0),this.config.postProcessing==="diff"&&o.setDate(o.getDate()-30),i=o.getTime();const s=new Date(a);s.setDate(1),s.setHours(0),s.setMinutes(0),s.setMonth(s.getMonth()+1),s.setSeconds(0),s.setMilliseconds(0),a=s.getTime(),n.count=Math.round((a-i)/(864e5*30))}n.start=i,n.end=a}getStartStop(e,r){let n,a,i,o;if(this.config.l[e].offset=this.config.l[e].offset||0,typeof this.config.range=="string"&&this.config.range.includes("m")&&this.config.l.length>1){const s=parseInt(this.config.range,10)||1;for(let l=0;l1){const s=parseInt(this.config.range,10)||1;for(let l=0;lc+d,0);i[o]=l/s.length}else if(n==="min"){let l=s[0];for(let c=1;cl&&(l=s[c]);i[o]=l}else n==="total"?i[o]=s.reduce((l,c)=>l+c,0):i[o]=s[s.length-1]}if(a==="diff"){for(let o=e.length-1;o>0;o--)i[o-1]!==null&&i[o]!==null?i[o]-=i[o-1]:i[o]=0;i.splice(0,1),r.splice(0,1)}for(let o=0;os.push([]))}let c;if((u=r.convert)!=null&&u.trim()){if(!this.convertFunctions[r.convert.trim()]){let f=r.convert.trim();f.includes("return")||(f=`return ${f}`);try{c=new Function("val",f)}catch(p){console.error(`[ChartModel] Cannot parse convert function: ${p}`)}}c=this.convertFunctions[r.convert.trim()]}for(let f=0;f=n[f].ts&&n[f].tsthis.now)break;const v={value:[n[f].ts,p]};n[f].i&&(v.exact=!1),o.push(v)}}if(r.chartType!=="bar"&&r.chartType!=="polar"){let f=typeof a.end=="number"?a.end:a.end.getTime();const p=typeof a.start=="number"?a.start:a.start.getTime();if(f>this.now&&(f=this.now),o.length){o[0].value[0]>p&&o.unshift({value:[p,null],exact:!1});const v=o[o.length-1];v.value[0]v.value[0]>g.value[0]?1:v.value[0]c),s[0]){const c=Object.keys(s[0]);(!c.includes("val")||!c.includes("ts"))&&(c.includes("y")&&c.includes("t")?s=s.map(d=>({ts:d.t,val:d.y})):(c.includes("y")?s.forEach(d=>d.val=d.y):c.includes("value")?s.forEach(d=>d.val=d.value):c.includes("data")?s.forEach(d=>d.val=d.data):c.includes("v")&&s.forEach(d=>d.val=d.v),c.includes("t")?s.forEach(d=>d.ts=d.t):c.includes("time")?s.forEach(d=>d.ts=d.time):c.includes("date")&&s.forEach(d=>d.ts=d.date))),s[0].ts&&(typeof s[0].ts=="string"&&window.isFinite(s[0].ts)?s.forEach(d=>d.ts=parseInt(d.ts,10)):typeof s[0].ts=="string"&&new Date(s[0].ts).toString()!=="Invalid Date"&&s.forEach(d=>d.ts=new Date(d.ts).getTime()),typeof s[0].ts=="number"&&s[0].ts<9466812e5&&s.forEach(d=>d.ts*=1e3))}s.sort((c,d)=>c.ts-d.ts?-1:c.ts({ts:c.t,val:c.y})):(l.includes("y")?s.forEach(c=>c.val=c.y):l.includes("value")?s.forEach(c=>c.val=c.value):l.includes("data")?s.forEach(c=>c.val=c.data):l.includes("v")&&s.forEach(c=>c.val=c.v),l.includes("t")?s.forEach(c=>c.ts=c.t):l.includes("time")?s.forEach(c=>c.ts=c.time):l.includes("date")&&s.forEach(c=>c.ts=c.date))),s[0].ts&&(typeof s[0].ts=="string"&&window.isFinite(s[0].ts)?s.forEach(c=>c.ts=parseInt(c.ts,10)):typeof s[0].ts=="string"&&new Date(s[0].ts).toString()!=="Invalid Date"&&s.forEach(c=>c.ts=new Date(c.ts).getTime()),typeof s[0].ts=="number"&&s[0].ts<9466812e5&&s.forEach(c=>c.ts*=1e3))}return Array.isArray(s)||(s=[],console.warn("JSON is not an array")),s.sort((l,c)=>l.ts-c.ts?-1:l.ts(r.toString().includes(Xs)&&this.onErrorFunc&&this.onErrorFunc(r),console.error(`Cannot read "${e}": ${r.toString()}`),null))),this.objectPromises[e]}async _readOneLine(e){const r=this.config.l[e];try{const n=await this._readObject(r.id);if(n!=null&&n.common){const a=r.name||n.common.name;if(r.name=a&&typeof a=="object"?a[this.systemConfig.language]||a.en||r.id:a||"",r.unit=r.unit||(n.common.unit?n.common.unit.replace("�","°"):""),r.type=n.common.type,r.chartType==="auto"&&(r.chartType=n.common.type==="boolean"?"steps":"line",r.aggregate=n.common.type==="boolean"?"none":"minmax"),r.unit&&(r.falseText||r.trueText)&&delete r.unit,n.common.states&&!Array.isArray(n.common.states)&&r.states!==!1&&!n.common.unit){if(r.states?r.states=Object.assign(n.common.states,r.states):r.states=n.common.states,Object.keys(r.states).find(i=>i==="true"||i==="false")){const i={};Object.keys(r.states).forEach(o=>{i[o==="true"?1:o==="false"?0:o]=r.states[o]}),r.states=i}r.unit&&r.states&&delete r.unit}(r.commonYAxis||r.commonYAxis===0)&&(r.yaxe="off")}}catch(n){n===Xs&&this.onErrorFunc&&this.onErrorFunc(n),console.error(`[ChartModel] Cannot read object ${r.id}: ${n}`)}r.name=r.name||r.id||"",r.unit=r.unit||"",r.chartType==="auto"&&(r.chartType="line",r.aggregate="minmax"),await this.readOneChart(r.id,r.instance||this.defaultHistory,e)}async _readData(){var e;for(let r=0;rn.start&&i.unshift({value:[n.start,""]}),i[i.length-1].value[0]{r.chartType==="bar"?e[n]=this.barData[n]:e[n]=this.seriesData[n]}),this.onUpdateFunc(e,this.actualValues,this.barCategories)}static addTime(e,r,n){const a=new Date(e);return typeof r=="string"?r[1]==="m"||r[2]==="m"?(r=parseInt(r,10),a.setMonth(a.getMonth()-r),e=a.getTime()):r[1]==="y"||r[2]==="y"?(r=parseInt(r,10),a.setFullYear(a.getFullYear()-r),e=a.getTime()):(e=a.getTime(),n?e-=(parseInt(r,10)||0)*6e4:e-=(parseInt(r,10)||0)*1e3):(r=r||0,e=a.getTime(),n?e-=r*6e4:e-=r*1e3),e}async exportData(e,r,n){const a={};for(let i=0;i16777215&&(this.sessionId=1),this.config.l){this.reading=!0,this.onReadingFunc&&this.onReadingFunc(!0),this.seriesData=[],this.barData=[],this.barCategories=null,await this._readData();for(let e=0;e=0)&&Object.prototype.propertyIsEnumerable.call(t,n)&&(r[n]=t[n])}return r}function Nbt(t,e){if(t==null)return{};var r={};for(var n in t)if(Object.prototype.hasOwnProperty.call(t,n)){if(e.indexOf(n)>=0)continue;r[n]=t[n]}return r}function fx(){return fx=Object.assign?Object.assign.bind():function(t){for(var e=1;eE.createElement(e.tag,hx({key:r},e.attr),IJ(e.child)))}function wv(t){return e=>E.createElement(jbt,fx({attr:hx({},t.attr)},e),IJ(t.child))}function jbt(t){var e=r=>{var{attr:n,size:a,title:i}=t,o=Lbt(t,Rbt),s=a||r.size||"1em",l;return r.className&&(l=r.className),t.className&&(l=(l?l+" ":"")+t.className),E.createElement("svg",fx({stroke:"currentColor",fill:"currentColor",strokeWidth:"0"},r.attr,n,o,{className:l,style:hx(hx({color:t.color||r.color},r.style),t.style),height:s,width:s,xmlns:"http://www.w3.org/2000/svg"}),i&&E.createElement("title",null,i),t.children)};return p7!==void 0?E.createElement(p7.Consumer,null,r=>e(r)):e(PJ)}function Wbt(t){return wv({tag:"svg",attr:{viewBox:"0 0 448 512"},child:[{tag:"path",attr:{d:"M16 132h416c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H16C7.163 60 0 67.163 0 76v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z"},child:[]}]})(t)}function Hbt(t){return wv({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z"},child:[]}]})(t)}function Ubt(t){return wv({tag:"svg",attr:{viewBox:"0 0 448 512"},child:[{tag:"path",attr:{d:"M320 448v40c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V120c0-13.255 10.745-24 24-24h72v296c0 30.879 25.121 56 56 56h168zm0-344V0H152c-13.255 0-24 10.745-24 24v368c0 13.255 10.745 24 24 24h272c13.255 0 24-10.745 24-24V128H344c-13.2 0-24-10.8-24-24zm120.971-31.029L375.029 7.029A24 24 0 0 0 358.059 0H352v96h96v-6.059a24 24 0 0 0-7.029-16.97z"},child:[]}]})(t)}function Ybt(t){return wv({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M216 0h80c13.3 0 24 10.7 24 24v168h87.7c17.8 0 26.7 21.5 14.1 34.1L269.7 378.3c-7.5 7.5-19.8 7.5-27.3 0L90.1 226.1c-12.6-12.6-3.7-34.1 14.1-34.1H192V24c0-13.3 10.7-24 24-24zm296 376v112c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24V376c0-13.3 10.7-24 24-24h146.7l49 49c20.1 20.1 52.5 20.1 72.6 0l49-49H488c13.3 0 24 10.7 24 24zm-124 88c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20zm64 0c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20z"},child:[]}]})(t)}function Vbt(t){return wv({tag:"svg",attr:{viewBox:"0 0 576 512"},child:[{tag:"path",attr:{d:"M384 121.9c0-6.3-2.5-12.4-7-16.9L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128zM571 308l-95.7-96.4c-10.1-10.1-27.4-3-27.4 11.3V288h-64v64h64v65.2c0 14.3 17.3 21.4 27.4 11.3L571 332c6.6-6.6 6.6-17.4 0-24zm-379 28v-32c0-8.8 7.2-16 16-16h176V160H248c-13.2 0-24-10.8-24-24V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V352H208c-8.8 0-16-7.2-16-16z"},child:[]}]})(t)}function Gbt(t){return wv({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M256.455 8c66.269.119 126.437 26.233 170.859 68.685l35.715-35.715C478.149 25.851 504 36.559 504 57.941V192c0 13.255-10.745 24-24 24H345.941c-21.382 0-32.09-25.851-16.971-40.971l41.75-41.75c-30.864-28.899-70.801-44.907-113.23-45.273-92.398-.798-170.283 73.977-169.484 169.442C88.764 348.009 162.184 424 256 424c41.127 0 79.997-14.678 110.629-41.556 4.743-4.161 11.906-3.908 16.368.553l39.662 39.662c4.872 4.872 4.631 12.815-.482 17.433C378.202 479.813 319.926 504 256 504 119.034 504 8.001 392.967 8 256.002 7.999 119.193 119.646 7.755 256.455 8z"},child:[]}]})(t)}//! moment.js +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var QC=typeof window<"u"&&typeof window.document<"u",yl=QC?window:{},gN=QC&&yl.document.documentElement?"ontouchstart"in yl.document.documentElement:!1,_N=QC?"PointerEvent"in yl:!1,Qr="cropper",yN="all",yJ="crop",bJ="move",wJ="zoom",ef="e",tf="w",Pp="s",yu="n",Yg="ne",Vg="nw",Gg="se",qg="sw",OP="".concat(Qr,"-crop"),K9="".concat(Qr,"-disabled"),ai="".concat(Qr,"-hidden"),Q9="".concat(Qr,"-hide"),Hke="".concat(Qr,"-invisible"),dx="".concat(Qr,"-modal"),$P="".concat(Qr,"-move"),My="".concat(Qr,"Action"),X1="".concat(Qr,"Preview"),bN="crop",SJ="move",xJ="none",AP="crop",PP="cropend",IP="cropmove",RP="cropstart",e7="dblclick",Uke=gN?"touchstart":"mousedown",Yke=gN?"touchmove":"mousemove",Vke=gN?"touchend touchcancel":"mouseup",t7=_N?"pointerdown":Uke,r7=_N?"pointermove":Yke,n7=_N?"pointerup pointercancel":Vke,a7="ready",i7="resize",o7="wheel",LP="zoom",s7="image/jpeg",Gke=/^e|w|s|n|se|sw|ne|nw|all|crop|move|zoom$/,qke=/^data:/,Xke=/^data:image\/jpeg;base64,/,Jke=/^img|canvas$/i,CJ=200,TJ=100,l7={viewMode:0,dragMode:bN,initialAspectRatio:NaN,aspectRatio:NaN,data:null,preview:"",responsive:!0,restore:!0,checkCrossOrigin:!0,checkOrientation:!0,modal:!0,guides:!0,center:!0,highlight:!0,background:!0,autoCrop:!0,autoCropArea:.8,movable:!0,rotatable:!0,scalable:!0,zoomable:!0,zoomOnTouch:!0,zoomOnWheel:!0,wheelZoomRatio:.1,cropBoxMovable:!0,cropBoxResizable:!0,toggleDragModeOnDblclick:!0,minCanvasWidth:0,minCanvasHeight:0,minCropBoxWidth:0,minCropBoxHeight:0,minContainerWidth:CJ,minContainerHeight:TJ,ready:null,cropstart:null,cropmove:null,cropend:null,crop:null,zoom:null},Zke='
',Kke=Number.isNaN||yl.isNaN;function ir(t){return typeof t=="number"&&!Kke(t)}var c7=function(e){return e>0&&e<1/0};function DO(t){return typeof t>"u"}function ch(t){return DP(t)==="object"&&t!==null}var Qke=Object.prototype.hasOwnProperty;function xm(t){if(!ch(t))return!1;try{var e=t.constructor,r=e.prototype;return e&&r&&Qke.call(r,"isPrototypeOf")}catch{return!1}}function ni(t){return typeof t=="function"}var e2e=Array.prototype.slice;function kJ(t){return Array.from?Array.from(t):e2e.call(t)}function Dn(t,e){return t&&ni(e)&&(Array.isArray(t)||ir(t.length)?kJ(t).forEach(function(r,n){e.call(t,r,n,t)}):ch(t)&&Object.keys(t).forEach(function(r){e.call(t,t[r],r,t)})),t}var nn=Object.assign||function(e){for(var r=arguments.length,n=new Array(r>1?r-1:0),a=1;a0&&n.forEach(function(i){ch(i)&&Object.keys(i).forEach(function(o){e[o]=i[o]})}),e},t2e=/\.\d*(?:0|9){12}\d*$/;function Pm(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1e11;return t2e.test(t)?Math.round(t*e)/e:t}var r2e=/^width|height|left|top|marginLeft|marginTop$/;function Lu(t,e){var r=t.style;Dn(e,function(n,a){r2e.test(a)&&ir(n)&&(n="".concat(n,"px")),r[a]=n})}function n2e(t,e){return t.classList?t.classList.contains(e):t.className.indexOf(e)>-1}function Vn(t,e){if(e){if(ir(t.length)){Dn(t,function(n){Vn(n,e)});return}if(t.classList){t.classList.add(e);return}var r=t.className.trim();r?r.indexOf(e)<0&&(t.className="".concat(r," ").concat(e)):t.className=e}}function ml(t,e){if(e){if(ir(t.length)){Dn(t,function(r){ml(r,e)});return}if(t.classList){t.classList.remove(e);return}t.className.indexOf(e)>=0&&(t.className=t.className.replace(e,""))}}function Cm(t,e,r){if(e){if(ir(t.length)){Dn(t,function(n){Cm(n,e,r)});return}r?Vn(t,e):ml(t,e)}}var a2e=/([a-z\d])([A-Z])/g;function wN(t){return t.replace(a2e,"$1-$2").toLowerCase()}function NP(t,e){return ch(t[e])?t[e]:t.dataset?t.dataset[e]:t.getAttribute("data-".concat(wN(e)))}function Oy(t,e,r){ch(r)?t[e]=r:t.dataset?t.dataset[e]=r:t.setAttribute("data-".concat(wN(e)),r)}function i2e(t,e){if(ch(t[e]))try{delete t[e]}catch{t[e]=void 0}else if(t.dataset)try{delete t.dataset[e]}catch{t.dataset[e]=void 0}else t.removeAttribute("data-".concat(wN(e)))}var EJ=/\s\s*/,DJ=function(){var t=!1;if(QC){var e=!1,r=function(){},n=Object.defineProperty({},"once",{get:function(){return t=!0,e},set:function(i){e=i}});yl.addEventListener("test",r,n),yl.removeEventListener("test",r,n)}return t}();function qo(t,e,r){var n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{},a=r;e.trim().split(EJ).forEach(function(i){if(!DJ){var o=t.listeners;o&&o[i]&&o[i][r]&&(a=o[i][r],delete o[i][r],Object.keys(o[i]).length===0&&delete o[i],Object.keys(o).length===0&&delete t.listeners)}t.removeEventListener(i,a,n)})}function ro(t,e,r){var n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{},a=r;e.trim().split(EJ).forEach(function(i){if(n.once&&!DJ){var o=t.listeners,s=o===void 0?{}:o;a=function(){delete s[i][r],t.removeEventListener(i,a,n);for(var c=arguments.length,d=new Array(c),u=0;uMath.abs(r)&&(r=f)})}),r}function J1(t,e){var r=t.pageX,n=t.pageY,a={endX:r,endY:n};return e?a:vJ({startX:r,startY:n},a)}function l2e(t){var e=0,r=0,n=0;return Dn(t,function(a){var i=a.startX,o=a.startY;e+=i,r+=o,n+=1}),e/=n,r/=n,{pageX:e,pageY:r}}function Nu(t){var e=t.aspectRatio,r=t.height,n=t.width,a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"contain",i=c7(n),o=c7(r);if(i&&o){var s=r*e;a==="contain"&&s>n||a==="cover"&&s90?{width:l,height:s}:{width:s,height:l}}function u2e(t,e,r,n){var a=e.aspectRatio,i=e.naturalWidth,o=e.naturalHeight,s=e.rotate,l=s===void 0?0:s,c=e.scaleX,d=c===void 0?1:c,u=e.scaleY,f=u===void 0?1:u,p=r.aspectRatio,v=r.naturalWidth,g=r.naturalHeight,_=n.fillColor,b=_===void 0?"transparent":_,w=n.imageSmoothingEnabled,x=w===void 0?!0:w,C=n.imageSmoothingQuality,M=C===void 0?"low":C,k=n.maxWidth,O=k===void 0?1/0:k,R=n.maxHeight,L=R===void 0?1/0:R,$=n.minWidth,N=$===void 0?0:$,W=n.minHeight,j=W===void 0?0:W,Y=document.createElement("canvas"),V=Y.getContext("2d"),J=Nu({aspectRatio:p,width:O,height:L}),ie=Nu({aspectRatio:p,width:N,height:j},"cover"),K=Math.min(J.width,Math.max(ie.width,v)),Q=Math.min(J.height,Math.max(ie.height,g)),oe=Nu({aspectRatio:a,width:O,height:L}),H=Nu({aspectRatio:a,width:N,height:j},"cover"),X=Math.min(oe.width,Math.max(H.width,i)),ae=Math.min(oe.height,Math.max(H.height,o)),re=[-X/2,-ae/2,X,ae];return Y.width=Pm(K),Y.height=Pm(Q),V.fillStyle=b,V.fillRect(0,0,K,Q),V.save(),V.translate(K/2,Q/2),V.rotate(l*Math.PI/180),V.scale(d,f),V.imageSmoothingEnabled=x,V.imageSmoothingQuality=M,V.drawImage.apply(V,[t].concat(_J(re.map(function(le){return Math.floor(Pm(le))})))),V.restore(),Y}var OJ=String.fromCharCode;function d2e(t,e,r){var n="";r+=e;for(var a=e;a0;)r.push(OJ.apply(null,kJ(a.subarray(0,n)))),a=a.subarray(n);return"data:".concat(e,";base64,").concat(btoa(r.join("")))}function m2e(t){var e=new DataView(t),r;try{var n,a,i;if(e.getUint8(0)===255&&e.getUint8(1)===216)for(var o=e.byteLength,s=2;s+1=8&&(i=c+u)}}}if(i){var f=e.getUint16(i,n),p,v;for(v=0;v=0?i:CJ),height:Math.max(n.offsetHeight,o>=0?o:TJ)};this.containerData=s,Lu(a,{width:s.width,height:s.height}),Vn(e,ai),ml(a,ai)},initCanvas:function(){var e=this.containerData,r=this.imageData,n=this.options.viewMode,a=Math.abs(r.rotate)%180===90,i=a?r.naturalHeight:r.naturalWidth,o=a?r.naturalWidth:r.naturalHeight,s=i/o,l=e.width,c=e.height;e.height*s>e.width?n===3?l=e.height*s:c=e.width/s:n===3?c=e.width/s:l=e.height*s;var d={aspectRatio:s,naturalWidth:i,naturalHeight:o,width:l,height:c};this.canvasData=d,this.limited=n===1||n===2,this.limitCanvas(!0,!0),d.width=Math.min(Math.max(d.width,d.minWidth),d.maxWidth),d.height=Math.min(Math.max(d.height,d.minHeight),d.maxHeight),d.left=(e.width-d.width)/2,d.top=(e.height-d.height)/2,d.oldLeft=d.left,d.oldTop=d.top,this.initialCanvasData=nn({},d)},limitCanvas:function(e,r){var n=this.options,a=this.containerData,i=this.canvasData,o=this.cropBoxData,s=n.viewMode,l=i.aspectRatio,c=this.cropped&&o;if(e){var d=Number(n.minCanvasWidth)||0,u=Number(n.minCanvasHeight)||0;s>1?(d=Math.max(d,a.width),u=Math.max(u,a.height),s===3&&(u*l>d?d=u*l:u=d/l)):s>0&&(d?d=Math.max(d,c?o.width:0):u?u=Math.max(u,c?o.height:0):c&&(d=o.width,u=o.height,u*l>d?d=u*l:u=d/l));var f=Nu({aspectRatio:l,width:d,height:u});d=f.width,u=f.height,i.minWidth=d,i.minHeight=u,i.maxWidth=1/0,i.maxHeight=1/0}if(r)if(s>(c?0:1)){var p=a.width-i.width,v=a.height-i.height;i.minLeft=Math.min(0,p),i.minTop=Math.min(0,v),i.maxLeft=Math.max(0,p),i.maxTop=Math.max(0,v),c&&this.limited&&(i.minLeft=Math.min(o.left,o.left+(o.width-i.width)),i.minTop=Math.min(o.top,o.top+(o.height-i.height)),i.maxLeft=o.left,i.maxTop=o.top,s===2&&(i.width>=a.width&&(i.minLeft=Math.min(0,p),i.maxLeft=Math.max(0,p)),i.height>=a.height&&(i.minTop=Math.min(0,v),i.maxTop=Math.max(0,v))))}else i.minLeft=-i.width,i.minTop=-i.height,i.maxLeft=a.width,i.maxTop=a.height},renderCanvas:function(e,r){var n=this.canvasData,a=this.imageData;if(r){var i=c2e({width:a.naturalWidth*Math.abs(a.scaleX||1),height:a.naturalHeight*Math.abs(a.scaleY||1),degree:a.rotate||0}),o=i.width,s=i.height,l=n.width*(o/n.naturalWidth),c=n.height*(s/n.naturalHeight);n.left-=(l-n.width)/2,n.top-=(c-n.height)/2,n.width=l,n.height=c,n.aspectRatio=o/s,n.naturalWidth=o,n.naturalHeight=s,this.limitCanvas(!0,!1)}(n.width>n.maxWidth||n.widthn.maxHeight||n.heightr.width?i.height=i.width/n:i.width=i.height*n),this.cropBoxData=i,this.limitCropBox(!0,!0),i.width=Math.min(Math.max(i.width,i.minWidth),i.maxWidth),i.height=Math.min(Math.max(i.height,i.minHeight),i.maxHeight),i.width=Math.max(i.minWidth,i.width*a),i.height=Math.max(i.minHeight,i.height*a),i.left=r.left+(r.width-i.width)/2,i.top=r.top+(r.height-i.height)/2,i.oldLeft=i.left,i.oldTop=i.top,this.initialCropBoxData=nn({},i)},limitCropBox:function(e,r){var n=this.options,a=this.containerData,i=this.canvasData,o=this.cropBoxData,s=this.limited,l=n.aspectRatio;if(e){var c=Number(n.minCropBoxWidth)||0,d=Number(n.minCropBoxHeight)||0,u=s?Math.min(a.width,i.width,i.width+i.left,a.width-i.left):a.width,f=s?Math.min(a.height,i.height,i.height+i.top,a.height-i.top):a.height;c=Math.min(c,a.width),d=Math.min(d,a.height),l&&(c&&d?d*l>c?d=c/l:c=d*l:c?d=c/l:d&&(c=d*l),f*l>u?f=u/l:u=f*l),o.minWidth=Math.min(c,u),o.minHeight=Math.min(d,f),o.maxWidth=u,o.maxHeight=f}r&&(s?(o.minLeft=Math.max(0,i.left),o.minTop=Math.max(0,i.top),o.maxLeft=Math.min(a.width,i.left+i.width)-o.width,o.maxTop=Math.min(a.height,i.top+i.height)-o.height):(o.minLeft=0,o.minTop=0,o.maxLeft=a.width-o.width,o.maxTop=a.height-o.height))},renderCropBox:function(){var e=this.options,r=this.containerData,n=this.cropBoxData;(n.width>n.maxWidth||n.widthn.maxHeight||n.height=r.width&&n.height>=r.height?bJ:yN),Lu(this.cropBox,nn({width:n.width,height:n.height},ny({translateX:n.left,translateY:n.top}))),this.cropped&&this.limited&&this.limitCanvas(!0,!0),this.disabled||this.output()},output:function(){this.preview(),Im(this.element,AP,this.getData())}},_2e={initPreview:function(){var e=this.element,r=this.crossOrigin,n=this.options.preview,a=r?this.crossOriginUrl:this.url,i=e.alt||"The image to preview",o=document.createElement("img");if(r&&(o.crossOrigin=r),o.src=a,o.alt=i,this.viewBox.appendChild(o),this.viewBoxImage=o,!!n){var s=n;typeof n=="string"?s=e.ownerDocument.querySelectorAll(n):n.querySelector&&(s=[n]),this.previews=s,Dn(s,function(l){var c=document.createElement("img");Oy(l,X1,{width:l.offsetWidth,height:l.offsetHeight,html:l.innerHTML}),r&&(c.crossOrigin=r),c.src=a,c.alt=i,c.style.cssText='display:block;width:100%;height:auto;min-width:0!important;min-height:0!important;max-width:none!important;max-height:none!important;image-orientation:0deg!important;"',l.innerHTML="",l.appendChild(c)})}},resetPreview:function(){Dn(this.previews,function(e){var r=NP(e,X1);Lu(e,{width:r.width,height:r.height}),e.innerHTML=r.html,i2e(e,X1)})},preview:function(){var e=this.imageData,r=this.canvasData,n=this.cropBoxData,a=n.width,i=n.height,o=e.width,s=e.height,l=n.left-r.left-e.left,c=n.top-r.top-e.top;!this.cropped||this.disabled||(Lu(this.viewBoxImage,nn({width:o,height:s},ny(nn({translateX:-l,translateY:-c},e)))),Dn(this.previews,function(d){var u=NP(d,X1),f=u.width,p=u.height,v=f,g=p,_=1;a&&(_=f/a,g=i*_),i&&g>p&&(_=p/i,v=a*_,g=p),Lu(d,{width:v,height:g}),Lu(d.getElementsByTagName("img")[0],nn({width:o*_,height:s*_},ny(nn({translateX:-l*_,translateY:-c*_},e))))}))}},y2e={bind:function(){var e=this.element,r=this.options,n=this.cropper;ni(r.cropstart)&&ro(e,RP,r.cropstart),ni(r.cropmove)&&ro(e,IP,r.cropmove),ni(r.cropend)&&ro(e,PP,r.cropend),ni(r.crop)&&ro(e,AP,r.crop),ni(r.zoom)&&ro(e,LP,r.zoom),ro(n,t7,this.onCropStart=this.cropStart.bind(this)),r.zoomable&&r.zoomOnWheel&&ro(n,o7,this.onWheel=this.wheel.bind(this),{passive:!1,capture:!0}),r.toggleDragModeOnDblclick&&ro(n,e7,this.onDblclick=this.dblclick.bind(this)),ro(e.ownerDocument,r7,this.onCropMove=this.cropMove.bind(this)),ro(e.ownerDocument,n7,this.onCropEnd=this.cropEnd.bind(this)),r.responsive&&ro(window,i7,this.onResize=this.resize.bind(this))},unbind:function(){var e=this.element,r=this.options,n=this.cropper;ni(r.cropstart)&&qo(e,RP,r.cropstart),ni(r.cropmove)&&qo(e,IP,r.cropmove),ni(r.cropend)&&qo(e,PP,r.cropend),ni(r.crop)&&qo(e,AP,r.crop),ni(r.zoom)&&qo(e,LP,r.zoom),qo(n,t7,this.onCropStart),r.zoomable&&r.zoomOnWheel&&qo(n,o7,this.onWheel,{passive:!1,capture:!0}),r.toggleDragModeOnDblclick&&qo(n,e7,this.onDblclick),qo(e.ownerDocument,r7,this.onCropMove),qo(e.ownerDocument,n7,this.onCropEnd),r.responsive&&qo(window,i7,this.onResize)}},b2e={resize:function(){if(!this.disabled){var e=this.options,r=this.container,n=this.containerData,a=r.offsetWidth/n.width,i=r.offsetHeight/n.height,o=Math.abs(a-1)>Math.abs(i-1)?a:i;if(o!==1){var s,l;e.restore&&(s=this.getCanvasData(),l=this.getCropBoxData()),this.render(),e.restore&&(this.setCanvasData(Dn(s,function(c,d){s[d]=c*o})),this.setCropBoxData(Dn(l,function(c,d){l[d]=c*o})))}}},dblclick:function(){this.disabled||this.options.dragMode===xJ||this.setDragMode(n2e(this.dragBox,OP)?SJ:bN)},wheel:function(e){var r=this,n=Number(this.options.wheelZoomRatio)||.1,a=1;this.disabled||(e.preventDefault(),!this.wheeling&&(this.wheeling=!0,setTimeout(function(){r.wheeling=!1},50),e.deltaY?a=e.deltaY>0?1:-1:e.wheelDelta?a=-e.wheelDelta/120:e.detail&&(a=e.detail>0?1:-1),this.zoom(-a*n,e)))},cropStart:function(e){var r=e.buttons,n=e.button;if(!(this.disabled||(e.type==="mousedown"||e.type==="pointerdown"&&e.pointerType==="mouse")&&(ir(r)&&r!==1||ir(n)&&n!==0||e.ctrlKey))){var a=this.options,i=this.pointers,o;e.changedTouches?Dn(e.changedTouches,function(s){i[s.identifier]=J1(s)}):i[e.pointerId||0]=J1(e),Object.keys(i).length>1&&a.zoomable&&a.zoomOnTouch?o=wJ:o=NP(e.target,My),Gke.test(o)&&Im(this.element,RP,{originalEvent:e,action:o})!==!1&&(e.preventDefault(),this.action=o,this.cropping=!1,o===yJ&&(this.cropping=!0,Vn(this.dragBox,dx)))}},cropMove:function(e){var r=this.action;if(!(this.disabled||!r)){var n=this.pointers;e.preventDefault(),Im(this.element,IP,{originalEvent:e,action:r})!==!1&&(e.changedTouches?Dn(e.changedTouches,function(a){nn(n[a.identifier]||{},J1(a,!0))}):nn(n[e.pointerId||0]||{},J1(e,!0)),this.change(e))}},cropEnd:function(e){if(!this.disabled){var r=this.action,n=this.pointers;e.changedTouches?Dn(e.changedTouches,function(a){delete n[a.identifier]}):delete n[e.pointerId||0],r&&(e.preventDefault(),Object.keys(n).length||(this.action=""),this.cropping&&(this.cropping=!1,Cm(this.dragBox,dx,this.cropped&&this.options.modal)),Im(this.element,PP,{originalEvent:e,action:r}))}}},w2e={change:function(e){var r=this.options,n=this.canvasData,a=this.containerData,i=this.cropBoxData,o=this.pointers,s=this.action,l=r.aspectRatio,c=i.left,d=i.top,u=i.width,f=i.height,p=c+u,v=d+f,g=0,_=0,b=a.width,w=a.height,x=!0,C;!l&&e.shiftKey&&(l=u&&f?u/f:1),this.limited&&(g=i.minLeft,_=i.minTop,b=g+Math.min(a.width,n.width,n.left+n.width),w=_+Math.min(a.height,n.height,n.top+n.height));var M=o[Object.keys(o)[0]],k={x:M.endX-M.startX,y:M.endY-M.startY},O=function(L){switch(L){case ef:p+k.x>b&&(k.x=b-p);break;case tf:c+k.xw&&(k.y=w-v);break}};switch(s){case yN:c+=k.x,d+=k.y;break;case ef:if(k.x>=0&&(p>=b||l&&(d<=_||v>=w))){x=!1;break}O(ef),u+=k.x,u<0&&(s=tf,u=-u,c-=u),l&&(f=u/l,d+=(i.height-f)/2);break;case yu:if(k.y<=0&&(d<=_||l&&(c<=g||p>=b))){x=!1;break}O(yu),f-=k.y,d+=k.y,f<0&&(s=Pp,f=-f,d-=f),l&&(u=f*l,c+=(i.width-u)/2);break;case tf:if(k.x<=0&&(c<=g||l&&(d<=_||v>=w))){x=!1;break}O(tf),u-=k.x,c+=k.x,u<0&&(s=ef,u=-u,c-=u),l&&(f=u/l,d+=(i.height-f)/2);break;case Pp:if(k.y>=0&&(v>=w||l&&(c<=g||p>=b))){x=!1;break}O(Pp),f+=k.y,f<0&&(s=yu,f=-f,d-=f),l&&(u=f*l,c+=(i.width-u)/2);break;case Yg:if(l){if(k.y<=0&&(d<=_||p>=b)){x=!1;break}O(yu),f-=k.y,d+=k.y,u=f*l}else O(yu),O(ef),k.x>=0?p_&&(f-=k.y,d+=k.y):(f-=k.y,d+=k.y);u<0&&f<0?(s=qg,f=-f,u=-u,d-=f,c-=u):u<0?(s=Vg,u=-u,c-=u):f<0&&(s=Gg,f=-f,d-=f);break;case Vg:if(l){if(k.y<=0&&(d<=_||c<=g)){x=!1;break}O(yu),f-=k.y,d+=k.y,u=f*l,c+=i.width-u}else O(yu),O(tf),k.x<=0?c>g?(u-=k.x,c+=k.x):k.y<=0&&d<=_&&(x=!1):(u-=k.x,c+=k.x),k.y<=0?d>_&&(f-=k.y,d+=k.y):(f-=k.y,d+=k.y);u<0&&f<0?(s=Gg,f=-f,u=-u,d-=f,c-=u):u<0?(s=Yg,u=-u,c-=u):f<0&&(s=qg,f=-f,d-=f);break;case qg:if(l){if(k.x<=0&&(c<=g||v>=w)){x=!1;break}O(tf),u-=k.x,c+=k.x,f=u/l}else O(Pp),O(tf),k.x<=0?c>g?(u-=k.x,c+=k.x):k.y>=0&&v>=w&&(x=!1):(u-=k.x,c+=k.x),k.y>=0?v=0&&(p>=b||v>=w)){x=!1;break}O(ef),u+=k.x,f=u/l}else O(Pp),O(ef),k.x>=0?p=0&&v>=w&&(x=!1):u+=k.x,k.y>=0?v0?s=k.y>0?Gg:Yg:k.x<0&&(c-=u,s=k.y>0?qg:Vg),k.y<0&&(d-=f),this.cropped||(ml(this.cropBox,ai),this.cropped=!0,this.limited&&this.limitCropBox(!0,!0));break}x&&(i.width=u,i.height=f,i.left=c,i.top=d,this.action=s,this.renderCropBox()),Dn(o,function(R){R.startX=R.endX,R.startY=R.endY})}},S2e={crop:function(){return this.ready&&!this.cropped&&!this.disabled&&(this.cropped=!0,this.limitCropBox(!0,!0),this.options.modal&&Vn(this.dragBox,dx),ml(this.cropBox,ai),this.setCropBoxData(this.initialCropBoxData)),this},reset:function(){return this.ready&&!this.disabled&&(this.imageData=nn({},this.initialImageData),this.canvasData=nn({},this.initialCanvasData),this.cropBoxData=nn({},this.initialCropBoxData),this.renderCanvas(),this.cropped&&this.renderCropBox()),this},clear:function(){return this.cropped&&!this.disabled&&(nn(this.cropBoxData,{left:0,top:0,width:0,height:0}),this.cropped=!1,this.renderCropBox(),this.limitCanvas(!0,!0),this.renderCanvas(),ml(this.dragBox,dx),Vn(this.cropBox,ai)),this},replace:function(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;return!this.disabled&&e&&(this.isImg&&(this.element.src=e),r?(this.url=e,this.image.src=e,this.ready&&(this.viewBoxImage.src=e,Dn(this.previews,function(n){n.getElementsByTagName("img")[0].src=e}))):(this.isImg&&(this.replaced=!0),this.options.data=null,this.uncreate(),this.load(e))),this},enable:function(){return this.ready&&this.disabled&&(this.disabled=!1,ml(this.cropper,K9)),this},disable:function(){return this.ready&&!this.disabled&&(this.disabled=!0,Vn(this.cropper,K9)),this},destroy:function(){var e=this.element;return e[Qr]?(e[Qr]=void 0,this.isImg&&this.replaced&&(e.src=this.originalUrl),this.uncreate(),this):this},move:function(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:e,n=this.canvasData,a=n.left,i=n.top;return this.moveTo(DO(e)?e:a+Number(e),DO(r)?r:i+Number(r))},moveTo:function(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:e,n=this.canvasData,a=!1;return e=Number(e),r=Number(r),this.ready&&!this.disabled&&this.options.movable&&(ir(e)&&(n.left=e,a=!0),ir(r)&&(n.top=r,a=!0),a&&this.renderCanvas(!0)),this},zoom:function(e,r){var n=this.canvasData;return e=Number(e),e<0?e=1/(1-e):e=1+e,this.zoomTo(n.width*e/n.naturalWidth,null,r)},zoomTo:function(e,r,n){var a=this.options,i=this.canvasData,o=i.width,s=i.height,l=i.naturalWidth,c=i.naturalHeight;if(e=Number(e),e>=0&&this.ready&&!this.disabled&&a.zoomable){var d=l*e,u=c*e;if(Im(this.element,LP,{ratio:e,oldRatio:o/l,originalEvent:n})===!1)return this;if(n){var f=this.pointers,p=MJ(this.cropper),v=f&&Object.keys(f).length?l2e(f):{pageX:n.pageX,pageY:n.pageY};i.left-=(d-o)*((v.pageX-p.left-i.left)/o),i.top-=(u-s)*((v.pageY-p.top-i.top)/s)}else xm(r)&&ir(r.x)&&ir(r.y)?(i.left-=(d-o)*((r.x-i.left)/o),i.top-=(u-s)*((r.y-i.top)/s)):(i.left-=(d-o)/2,i.top-=(u-s)/2);i.width=d,i.height=u,this.renderCanvas(!0)}return this},rotate:function(e){return this.rotateTo((this.imageData.rotate||0)+Number(e))},rotateTo:function(e){return e=Number(e),ir(e)&&this.ready&&!this.disabled&&this.options.rotatable&&(this.imageData.rotate=e%360,this.renderCanvas(!0,!0)),this},scaleX:function(e){var r=this.imageData.scaleY;return this.scale(e,ir(r)?r:1)},scaleY:function(e){var r=this.imageData.scaleX;return this.scale(ir(r)?r:1,e)},scale:function(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:e,n=this.imageData,a=!1;return e=Number(e),r=Number(r),this.ready&&!this.disabled&&this.options.scalable&&(ir(e)&&(n.scaleX=e,a=!0),ir(r)&&(n.scaleY=r,a=!0),a&&this.renderCanvas(!0,!0)),this},getData:function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1,r=this.options,n=this.imageData,a=this.canvasData,i=this.cropBoxData,o;if(this.ready&&this.cropped){o={x:i.left-a.left,y:i.top-a.top,width:i.width,height:i.height};var s=n.width/n.naturalWidth;if(Dn(o,function(d,u){o[u]=d/s}),e){var l=Math.round(o.y+o.height),c=Math.round(o.x+o.width);o.x=Math.round(o.x),o.y=Math.round(o.y),o.width=c-o.x,o.height=l-o.y}}else o={x:0,y:0,width:0,height:0};return r.rotatable&&(o.rotate=n.rotate||0),r.scalable&&(o.scaleX=n.scaleX||1,o.scaleY=n.scaleY||1),o},setData:function(e){var r=this.options,n=this.imageData,a=this.canvasData,i={};if(this.ready&&!this.disabled&&xm(e)){var o=!1;r.rotatable&&ir(e.rotate)&&e.rotate!==n.rotate&&(n.rotate=e.rotate,o=!0),r.scalable&&(ir(e.scaleX)&&e.scaleX!==n.scaleX&&(n.scaleX=e.scaleX,o=!0),ir(e.scaleY)&&e.scaleY!==n.scaleY&&(n.scaleY=e.scaleY,o=!0)),o&&this.renderCanvas(!0,!0);var s=n.width/n.naturalWidth;ir(e.x)&&(i.left=e.x*s+a.left),ir(e.y)&&(i.top=e.y*s+a.top),ir(e.width)&&(i.width=e.width*s),ir(e.height)&&(i.height=e.height*s),this.setCropBoxData(i)}return this},getContainerData:function(){return this.ready?nn({},this.containerData):{}},getImageData:function(){return this.sized?nn({},this.imageData):{}},getCanvasData:function(){var e=this.canvasData,r={};return this.ready&&Dn(["left","top","width","height","naturalWidth","naturalHeight"],function(n){r[n]=e[n]}),r},setCanvasData:function(e){var r=this.canvasData,n=r.aspectRatio;return this.ready&&!this.disabled&&xm(e)&&(ir(e.left)&&(r.left=e.left),ir(e.top)&&(r.top=e.top),ir(e.width)?(r.width=e.width,r.height=e.width/n):ir(e.height)&&(r.height=e.height,r.width=e.height*n),this.renderCanvas(!0)),this},getCropBoxData:function(){var e=this.cropBoxData,r;return this.ready&&this.cropped&&(r={left:e.left,top:e.top,width:e.width,height:e.height}),r||{}},setCropBoxData:function(e){var r=this.cropBoxData,n=this.options.aspectRatio,a,i;return this.ready&&this.cropped&&!this.disabled&&xm(e)&&(ir(e.left)&&(r.left=e.left),ir(e.top)&&(r.top=e.top),ir(e.width)&&e.width!==r.width&&(a=!0,r.width=e.width),ir(e.height)&&e.height!==r.height&&(i=!0,r.height=e.height),n&&(a?r.height=r.width/n:i&&(r.width=r.height*n)),this.renderCropBox()),this},getCroppedCanvas:function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(!this.ready||!window.HTMLCanvasElement)return null;var r=this.canvasData,n=u2e(this.image,this.imageData,r,e);if(!this.cropped)return n;var a=this.getData(e.rounded),i=a.x,o=a.y,s=a.width,l=a.height,c=n.width/Math.floor(r.naturalWidth);c!==1&&(i*=c,o*=c,s*=c,l*=c);var d=s/l,u=Nu({aspectRatio:d,width:e.maxWidth||1/0,height:e.maxHeight||1/0}),f=Nu({aspectRatio:d,width:e.minWidth||0,height:e.minHeight||0},"cover"),p=Nu({aspectRatio:d,width:e.width||(c!==1?n.width:s),height:e.height||(c!==1?n.height:l)}),v=p.width,g=p.height;v=Math.min(u.width,Math.max(f.width,v)),g=Math.min(u.height,Math.max(f.height,g));var _=document.createElement("canvas"),b=_.getContext("2d");_.width=Pm(v),_.height=Pm(g),b.fillStyle=e.fillColor||"transparent",b.fillRect(0,0,v,g);var w=e.imageSmoothingEnabled,x=w===void 0?!0:w,C=e.imageSmoothingQuality;b.imageSmoothingEnabled=x,C&&(b.imageSmoothingQuality=C);var M=n.width,k=n.height,O=i,R=o,L,$,N,W,j,Y;O<=-s||O>M?(O=0,L=0,N=0,j=0):O<=0?(N=-O,O=0,L=Math.min(M,s+O),j=L):O<=M&&(N=0,L=Math.min(s,M-O),j=L),L<=0||R<=-l||R>k?(R=0,$=0,W=0,Y=0):R<=0?(W=-R,R=0,$=Math.min(k,l+R),Y=$):R<=k&&(W=0,$=Math.min(l,k-R),Y=$);var V=[O,R,L,$];if(j>0&&Y>0){var J=v/s;V.push(N*J,W*J,j*J,Y*J)}return b.drawImage.apply(b,[n].concat(_J(V.map(function(ie){return Math.floor(Pm(ie))})))),_},setAspectRatio:function(e){var r=this.options;return!this.disabled&&!DO(e)&&(r.aspectRatio=Math.max(0,e)||NaN,this.ready&&(this.initCropBox(),this.cropped&&this.renderCropBox())),this},setDragMode:function(e){var r=this.options,n=this.dragBox,a=this.face;if(this.ready&&!this.disabled){var i=e===bN,o=r.movable&&e===SJ;e=i||o?e:xJ,r.dragMode=e,Oy(n,My,e),Cm(n,OP,i),Cm(n,$P,o),r.cropBoxMovable||(Oy(a,My,e),Cm(a,OP,i),Cm(a,$P,o))}return this}},x2e=yl.Cropper,$J=function(){function t(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(Lke(this,t),!e||!Jke.test(e.tagName))throw new Error("The first argument is required and must be an or element.");this.element=e,this.options=nn({},l7,xm(r)&&r),this.cropped=!1,this.disabled=!1,this.pointers={},this.ready=!1,this.reloading=!1,this.replaced=!1,this.sized=!1,this.sizing=!1,this.init()}return Nke(t,[{key:"init",value:function(){var r=this.element,n=r.tagName.toLowerCase(),a;if(!r[Qr]){if(r[Qr]=this,n==="img"){if(this.isImg=!0,a=r.getAttribute("src")||"",this.originalUrl=a,!a)return;a=r.src}else n==="canvas"&&window.HTMLCanvasElement&&(a=r.toDataURL());this.load(a)}}},{key:"load",value:function(r){var n=this;if(r){this.url=r,this.imageData={};var a=this.element,i=this.options;if(!i.rotatable&&!i.scalable&&(i.checkOrientation=!1),!i.checkOrientation||!window.ArrayBuffer){this.clone();return}if(qke.test(r)){Xke.test(r)?this.read(h2e(r)):this.clone();return}var o=new XMLHttpRequest,s=this.clone.bind(this);this.reloading=!0,this.xhr=o,o.onabort=s,o.onerror=s,o.ontimeout=s,o.onprogress=function(){o.getResponseHeader("content-type")!==s7&&o.abort()},o.onload=function(){n.read(o.response)},o.onloadend=function(){n.reloading=!1,n.xhr=null},i.checkCrossOrigin&&u7(r)&&a.crossOrigin&&(r=d7(r)),o.open("GET",r,!0),o.responseType="arraybuffer",o.withCredentials=a.crossOrigin==="use-credentials",o.send()}}},{key:"read",value:function(r){var n=this.options,a=this.imageData,i=m2e(r),o=0,s=1,l=1;if(i>1){this.url=p2e(r,s7);var c=v2e(i);o=c.rotate,s=c.scaleX,l=c.scaleY}n.rotatable&&(a.rotate=o),n.scalable&&(a.scaleX=s,a.scaleY=l),this.clone()}},{key:"clone",value:function(){var r=this.element,n=this.url,a=r.crossOrigin,i=n;this.options.checkCrossOrigin&&u7(n)&&(a||(a="anonymous"),i=d7(n)),this.crossOrigin=a,this.crossOriginUrl=i;var o=document.createElement("img");a&&(o.crossOrigin=a),o.src=i||n,o.alt=r.alt||"The image to crop",this.image=o,o.onload=this.start.bind(this),o.onerror=this.stop.bind(this),Vn(o,Q9),r.parentNode.insertBefore(o,r.nextSibling)}},{key:"start",value:function(){var r=this,n=this.image;n.onload=null,n.onerror=null,this.sizing=!0;var a=yl.navigator&&/(?:iPad|iPhone|iPod).*?AppleWebKit/i.test(yl.navigator.userAgent),i=function(c,d){nn(r.imageData,{naturalWidth:c,naturalHeight:d,aspectRatio:c/d}),r.initialImageData=nn({},r.imageData),r.sizing=!1,r.sized=!0,r.build()};if(n.naturalWidth&&!a){i(n.naturalWidth,n.naturalHeight);return}var o=document.createElement("img"),s=document.body||document.documentElement;this.sizingImage=o,o.onload=function(){i(o.width,o.height),a||s.removeChild(o)},o.src=n.src,a||(o.style.cssText="left:0;max-height:none!important;max-width:none!important;min-height:0!important;min-width:0!important;opacity:0;position:absolute;top:0;z-index:-1;",s.appendChild(o))}},{key:"stop",value:function(){var r=this.image;r.onload=null,r.onerror=null,r.parentNode.removeChild(r),this.image=null}},{key:"build",value:function(){if(!(!this.sized||this.ready)){var r=this.element,n=this.options,a=this.image,i=r.parentNode,o=document.createElement("div");o.innerHTML=Zke;var s=o.querySelector(".".concat(Qr,"-container")),l=s.querySelector(".".concat(Qr,"-canvas")),c=s.querySelector(".".concat(Qr,"-drag-box")),d=s.querySelector(".".concat(Qr,"-crop-box")),u=d.querySelector(".".concat(Qr,"-face"));this.container=i,this.cropper=s,this.canvas=l,this.dragBox=c,this.cropBox=d,this.viewBox=s.querySelector(".".concat(Qr,"-view-box")),this.face=u,l.appendChild(a),Vn(r,ai),i.insertBefore(s,r.nextSibling),ml(a,Q9),this.initPreview(),this.bind(),n.initialAspectRatio=Math.max(0,n.initialAspectRatio)||NaN,n.aspectRatio=Math.max(0,n.aspectRatio)||NaN,n.viewMode=Math.max(0,Math.min(3,Math.round(n.viewMode)))||0,Vn(d,ai),n.guides||Vn(d.getElementsByClassName("".concat(Qr,"-dashed")),ai),n.center||Vn(d.getElementsByClassName("".concat(Qr,"-center")),ai),n.background&&Vn(s,"".concat(Qr,"-bg")),n.highlight||Vn(u,Hke),n.cropBoxMovable&&(Vn(u,$P),Oy(u,My,yN)),n.cropBoxResizable||(Vn(d.getElementsByClassName("".concat(Qr,"-line")),ai),Vn(d.getElementsByClassName("".concat(Qr,"-point")),ai)),this.render(),this.ready=!0,this.setDragMode(n.dragMode),n.autoCrop&&this.crop(),this.setData(n.data),ni(n.ready)&&ro(r,a7,n.ready,{once:!0}),Im(r,a7)}}},{key:"unbuild",value:function(){if(this.ready){this.ready=!1,this.unbind(),this.resetPreview();var r=this.cropper.parentNode;r&&r.removeChild(this.cropper),ml(this.element,ai)}}},{key:"uncreate",value:function(){this.ready?(this.unbuild(),this.ready=!1,this.cropped=!1):this.sizing?(this.sizingImage.onload=null,this.sizing=!1,this.sized=!1):this.reloading?(this.xhr.onabort=null,this.xhr.abort()):this.image&&this.stop()}}],[{key:"noConflict",value:function(){return window.Cropper=x2e,t}},{key:"setDefaults",value:function(r){nn(l7,xm(r)&&r)}}])}();nn($J.prototype,g2e,_2e,y2e,b2e,w2e,S2e);var If=function(){return If=Object.assign||function(t){for(var e,r=1,n=arguments.length;r0&&R.zoomTo(ie)}(O.currentTarget.cropper,x),_&&_(O)}}));b&&b(k)}return function(){var O,R;(R=(O=C.current)===null||O===void 0?void 0:O.cropper)===null||R===void 0||R.destroy()}},[C]);var M=function(k){return C2e.reduce(function(O,R){var L=O,$=R;return L[$],OO(L,[typeof $=="symbol"?$:$+""])},k)}(If(If({},w),{crossOrigin:l,src:i,alt:g}));return E.createElement("div",{style:o,className:s},E.createElement("img",If({},M,{style:T2e,ref:C})))});const bu={mainDiv:{width:"100%",height:"100%",overflow:"auto"},formControl:{margin:0,minWidth:120},formControlMarginRight:{marginRight:5},formControlPaddingTop:{paddingTop:6.2}},k2e={once:"once",interval:"interval",intervalBetween:"intervalBetween",specific:"specific"},ya={seconds:"seconds",minutes:"minutes"},f7=["ra_Sunday","ra_Monday","ra_Tuesday","ra_Wednesday","ra_Thursday","ra_Friday","ra_Saturday","ra_Sunday"];function il(t){return t<10?`0${t}`:`${t}`}const E2e={mode:"interval",interval:{period:1,unit:ya.minutes}};function bS(t){if(t==="*")return[0,1,2,3,4,5,6];const e=t.split(","),r=[];return e.forEach(n=>{const a=n.split("-");if(a.length===2){const i=parseInt(a[0],10),o=parseInt(a[1],10);for(let s=i;s<=o;s++)r.includes(s===7?0:s)||r.push(s===7?0:s)}else{n==="7"&&(n="0");const i=parseInt(n,10);r.includes(i)||r.push(i)}}),r.sort(),r}function AJ(t,e){t=t.replace(/['"]/g,"").trim();const r=t.split(" ");let n,a=null;return r.length===6?n={seconds:r[0]||"*",minutes:r[1]||"*",hours:r[2]||"*",date:r[3]||"*",months:r[4]||"*",dow:r[5]||"*"}:n={seconds:null,minutes:r[0]||"*",hours:r[1]||"*",date:r[2]||"*",months:r[3]||"*",dow:r[4]||"*"},n.seconds===null&&n.minutes==="*"&&n.hours==="*"&&n.date==="*"&&n.months==="*"&&(n.dow==="*"||e)&&(a={mode:"interval",interval:{period:1,unit:ya.minutes}}),n.seconds==="*"&&n.minutes==="*"&&n.hours==="*"&&n.date==="*"&&n.months==="*"&&(n.dow==="*"||e)?a={mode:"interval",interval:{period:1,unit:ya.seconds}}:n.seconds===null&&n.minutes.includes("/")&&n.hours==="*"&&n.date==="*"&&n.months==="*"&&(n.dow==="*"||e)?a={mode:"interval",interval:{period:parseInt(n.minutes.split("/")[1],10),unit:ya.minutes}}:n.seconds!==null&&n.seconds.includes("/")&&n.minutes==="*"&&n.hours==="*"&&n.date==="*"&&n.months==="*"&&(n.dow==="*"||e)?a={mode:"interval",interval:{period:parseInt(n.seconds.split("/")[1],10),unit:ya.seconds}}:n.seconds!==null&&n.seconds.includes("/")&&n.minutes==="*"&&n.hours.includes("-")&&n.date==="*"&&n.months==="*"&&(n.dow==="*"||e)?a={mode:"intervalBetween",intervalBetween:{period:parseInt(n.seconds.split("/")[1],10),unit:ya.seconds,timeFrom:parseInt(n.hours.split("-")[0],10),timeTo:parseInt(n.hours.split("-")[1],10),weekdays:bS(n.dow)}}:n.seconds===null&&n.minutes.includes("/")&&n.hours.includes("-")&&n.date==="*"&&n.months==="*"&&(n.dow==="*"||e)?a={mode:"intervalBetween",intervalBetween:{period:parseInt(n.minutes.split("/")[1],10),unit:ya.minutes,timeFrom:parseInt(n.hours.split("-")[0],10),timeTo:parseInt(n.hours.split("-")[1],10),weekdays:bS(n.dow)}}:n.seconds===null&&parseInt(n.minutes,10).toString()===n.minutes&&parseInt(n.hours,10).toString()===n.hours&&n.date==="*"&&n.months==="*"&&(n.dow==="*"||e)?a={mode:"specific",specific:{time:`${il(parseInt(n.hours,10))}:${il(parseInt(n.minutes,10))}`,weekdays:bS(n.dow)}}:n.seconds===null&&parseInt(n.minutes,10).toString()===n.minutes&&parseInt(n.hours,10).toString()===n.hours&&parseInt(n.date,10).toString()===n.date&&parseInt(n.months,10).toString()===n.months&&(n.dow==="*"||e)&&(a={mode:"once",once:{time:`${il(parseInt(n.hours,10))}:${il(parseInt(n.minutes,10))}`,date:`${il(parseInt(n.date,10))}.${il(parseInt(n.months,10))}`}}),a}class $y extends E.Component{constructor(e){super(e);let r=typeof e.cronExpression=="string"?e.cronExpression.replace(/^["']/,"").replace(/["']\n?$/,""):"";r[0]==="{"&&(r="");const n=AJ(r||"* * * * *",!0)||E2e;this.state={extended:!1,cron:$y.state2cron(n),mode:"interval",once:{time:"00:00",date:""},interval:{period:1,unit:ya.minutes},intervalBetween:{period:1,unit:ya.minutes,timeFrom:0,timeTo:23,weekdays:[0,1,2,3,4,5,6]},specific:{time:"00:00",weekdays:[0,1,2,3,4,5,6]}},Object.assign(this.state,n),this.state.cron!==e.cronExpression&&setTimeout(()=>e.onChange&&e.onChange(this.state.cron),100)}static periodArray2text(e,r=7){if(r=r||7,e.length===r)return"*";const n=[];let a=null,i=null;if(!e.length)return"_";for(let o=0;o60&&(n.period=60),n.period!==void 0&&n.period<1&&(n.period=1),n.minutes!==void 0&&n.minutes!==null&&n.minutes>60&&(n.minutes=60),n.minutes!==void 0&&n.minutes!==null&&n.minutes<1&&(n.minutes=1),n.hours!==void 0&&n.hours!==null&&n.hours>24&&(n.hours=24),n.hours!==void 0&&n.hours!==null&&n.hours<1&&(n.hours=1),e.extended)r=`${n.minutes!==void 0&&n.minutes!==null&&n.minutes>1?`*/${n.minutes}`:"*"} ${n.hours!==void 0&&n.hours!==null&&n.hours>1?`*/${n.hours}`:"*"} * * *`;else switch(n.unit){case ya.seconds:r=`${n.period>1?`*/${n.period}`:"*"} * * * * *`;break;case ya.minutes:r=`${n.period>1?`*/${n.period}`:"*"} * * * *`;break}}else if(e.mode==="intervalBetween"){const n=e.intervalBetween||{period:1,unit:ya.minutes,timeFrom:0,timeTo:24,weekdays:[0,1,2,3,4,5,6]};let a;switch(n.timeFrom=n.timeFrom||0,n.timeTo=n.timeTo===void 0?24:n.timeTo,n.timeFrom!==0&&n.timeTo===24&&(n.timeTo=23),n.timeFrom===0&&n.timeTo===24?a="*":a=n.timeFrom!==n.timeTo?`${n.timeFrom}-${n.timeTo}`:"*",n.period>60&&(n.period=60),n.period<1&&(n.period=1),n.unit=n.unit||ya.minutes,n.unit){case ya.seconds:r=`${n.period>1?`*/${n.period}`:"*"} * ${a} * * ${this.periodArray2text(n.weekdays)}`;break;case ya.minutes:r=`${n.period>1?`*/${n.period}`:"*"} ${a} * * ${this.periodArray2text(n.weekdays)}`;break}}else if(e.mode==="specific"){const n=e.specific||{time:"00:00",weekdays:[0,1,2,3,4,5,6]},a=(n.time||"00:00").split(":");let i=parseInt(a[1],10)||0;i>59&&(i=59),i<0&&(i=0);let o=parseInt(a[0],10)||0;o>23&&(o=59),o<0&&(o=0),r=`${i} ${o} * * ${this.periodArray2text(n.weekdays||[])}`}else if(e.mode==="once"){const n=e.once||{time:"00:00",date:""};n.date||(n.date=`${new Date().getDate()}.${il(new Date().getMonth()+1)}`);const a=(n.time||"00:00").split(":"),i=n.date.split(".");let o=parseInt(a[1],10)||0;o>59&&(o=59),o<0&&(o=0);let s=parseInt(a[0],10)||0;s>23&&(s=59),s<0&&(s=0);let l=parseInt(i[0],10)||1;l>31&&(l=31),l<1&&(s=1);let c=parseInt(i[1],10)||1;c>12&&(c=12),c<1&&(c=1),r=`${o} ${s} ${l} ${c} *`}return r}recalcCron(){this.onChange($y.state2cron(this.state))}getControlsWeekdaysElements(e){const r=e==="intervalBetween"?this.state.intervalBetween:this.state.specific;return E.createElement("div",{key:"weekdays",style:{paddingLeft:8,width:"calc(100% - 8px)",maxWidth:600}},E.createElement("h5",null,te.t("ra_On weekdays")),[1,2,3,4,5,6,0].map(n=>E.createElement(Xt,{key:f7[n],control:E.createElement(Un,{checked:r.weekdays.includes(n),onChange:a=>{const i=JSON.parse(JSON.stringify(this.state[e])),o=i.weekdays.indexOf(n);a.target.checked?o===-1&&i.weekdays.push(n):o!==-1&&i.weekdays.splice(o,1),i.weekdays.sort(),e==="intervalBetween"?this.setState({intervalBetween:i},()=>this.recalcCron()):this.setState({specific:i},()=>this.recalcCron())},value:n.toString()}),label:te.t(f7[n])})))}getControlsPeriodElements(e){const r=e==="interval"?this.state.interval:this.state.intervalBetween;return this.state.extended?E.createElement("div",{key:"period",style:{paddingLeft:8,display:"inline-block"}},E.createElement("h5",{style:{marginBottom:5}},te.t("sc_period")),E.createElement(Sa,{variant:"standard",style:{marginTop:0,marginBottom:0,verticalAlign:"bottom"},key:"value",label:te.t("sc_minutes"),value:r.minutes,onChange:n=>{const a=JSON.parse(JSON.stringify(this.state[e]));a.minutes=parseInt(n.target.value,10),a.minutes<1&&(a.minutes=1),e==="interval"?this.setState({interval:a},()=>this.recalcCron()):this.setState({intervalBetween:a},()=>this.recalcCron())},slotProps:{htmlInput:{min:1,max:60},inputLabel:{shrink:!0}},type:"number",margin:"normal"}),E.createElement(Sa,{variant:"standard",style:{marginTop:0,marginBottom:0,verticalAlign:"bottom"},key:"value",label:te.t("sc_hours"),value:r.hours,onChange:n=>{const a=JSON.parse(JSON.stringify(this.state[e]));a.hours=parseInt(n.target.value,10),a.hours<1&&(a.hours=1),e==="interval"?this.setState({interval:a},()=>this.recalcCron()):this.setState({intervalBetween:a},()=>this.recalcCron())},slotProps:{htmlInput:{min:1,max:24},inputLabel:{shrink:!0}},type:"number",margin:"normal"})):E.createElement("div",{key:"period",style:{paddingLeft:8,display:"inline-block"}},E.createElement("h5",{style:{marginBottom:5}},te.t("sc_period")),E.createElement(Sa,{variant:"standard",style:{marginTop:0,marginBottom:0,verticalAlign:"bottom"},key:"value",label:te.t("sc_every"),value:r.period,onChange:n=>{const a=JSON.parse(JSON.stringify(this.state[e]));a.period=parseInt(n.target.value,10),a.period<1&&(a.period=1),e==="interval"?this.setState({interval:a},()=>this.recalcCron()):this.setState({intervalBetween:a},()=>this.recalcCron())},slotProps:{htmlInput:{min:1,max:60},inputLabel:{shrink:!0}},type:"number",margin:"normal"}),E.createElement(ns,{variant:"standard",style:{verticalAlign:"bottom"},value:r.unit,onChange:n=>{const a=JSON.parse(JSON.stringify(this.state[e]));a.unit=n.target.value,e==="interval"?this.setState({interval:a},()=>this.recalcCron()):this.setState({intervalBetween:a},()=>this.recalcCron())}},E.createElement(tn,{value:"seconds"},te.t("sc_seconds")),")",E.createElement(tn,{value:"minutes"},te.t("sc_minutes")),")"))}getControlsTime(e){const r=e==="once"?this.state.once:this.state.specific;return E.createElement(Af,{variant:"standard",sx:{...bu.formControl,"&.MuiFormControl-root":bu.formControlMarginRight}},E.createElement(Sa,{variant:"standard",key:"at",label:te.t("sc_time"),value:r.time,type:"time",sx:n=>({'& input[type="time"]::-webkit-calendar-picker-indicator':{filter:n.palette.mode==="dark"?"invert(80%)":void 0}}),onChange:n=>{const a=JSON.parse(JSON.stringify(this.state[e]));a.time=n.target.value,e==="once"?this.setState({once:a},()=>this.recalcCron()):this.setState({specific:a},()=>this.recalcCron())},slotProps:{inputLabel:{shrink:!0}},margin:"normal"}))}getControlsDate(){const e=this.state.once;if(!e.date){const r=new Date;e.date=`${r.getDate()}.${il(r.getMonth()+1)}`}return E.createElement(Af,{variant:"standard",style:bu.formControl},E.createElement(Sa,{variant:"standard",key:"date",label:te.t("sc_date"),value:e.date,type:"text",slotProps:{htmlInput:{style:bu.formControlPaddingTop},inputLabel:{shrink:!0}},onChange:r=>{const n=JSON.parse(JSON.stringify(this.state.once));n.date=r.target.value,this.setState({once:n},()=>this.recalcCron())},margin:"normal"}))}getOnceElements(){return E.createElement("div",{style:{marginLeft:8}},this.getControlsTime("once"),this.getControlsDate())}getIntervalElements(){return this.getControlsPeriodElements("interval")}getIntervalBetweenElements(){const e=this.state.intervalBetween;return[this.getControlsPeriodElements("intervalBetween"),E.createElement("div",{key:"between",style:{paddingLeft:8,display:"inline-block",verticalAlign:"top"}},E.createElement("h5",{style:{marginBottom:5}},te.t("sc_hours")),E.createElement(Af,{variant:"standard",style:bu.formControl},E.createElement(ty,{shrink:!0,htmlFor:"age-label-placeholder"},te.t("sc_from")),E.createElement(ns,{variant:"standard",style:{width:100},value:e.timeFrom,onChange:r=>{const n=JSON.parse(JSON.stringify(this.state.intervalBetween));n.timeFrom=parseInt(r.target.value,10),n.timeTo===24&&(n.timeTo=23),this.setState({intervalBetween:n},()=>this.recalcCron())}},[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23].map(r=>E.createElement(tn,{key:`B_${r}`,value:r},`${il(r)}:00`)))),E.createElement(Af,{variant:"standard",style:bu.formControl},E.createElement(ty,{shrink:!0,htmlFor:"age-label-placeholder"},te.t("sc_to")),E.createElement(ns,{variant:"standard",style:{width:100},value:e.timeTo,onChange:r=>{const n=JSON.parse(JSON.stringify(this.state.intervalBetween));n.timeTo=parseInt(r.target.value,10),this.setState({intervalBetween:n},()=>this.recalcCron())}},[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23].map(r=>E.createElement(tn,{key:`A_${r}`,value:r},`${il(r)}:00`)),!e.timeFrom&&E.createElement(tn,{value:24},"00:00")))),this.getControlsWeekdaysElements("intervalBetween")]}getSpecificTimeElements(){return[E.createElement("div",{key:"time",style:{marginLeft:8}},this.getControlsTime("specific")),this.getControlsWeekdaysElements("specific")]}onModeChange(e){e!==this.state.mode&&this.setState({mode:e},()=>this.recalcCron())}onChange(e){e!==this.state.cron&&(this.setState({cron:e}),this.props.onChange&&this.props.onChange(e))}render(){return E.createElement("div",{style:bu.mainDiv},E.createElement("div",{style:{paddingLeft:8,width:"calc(100% - 8px)"}},E.createElement(Sa,{variant:"standard",style:{width:"100%"},value:this.state.cron,disabled:!0,error:this.state.cron.includes("_")})),E.createElement("div",{style:{paddingLeft:8,width:"calc(100% - 8px)",height:60}},this.state.cron.includes("_")?te.t("sc_invalid_cron"):tJ(this.state.cron,this.props.language||"en")),E.createElement("div",null,E.createElement(Af,{variant:"standard",style:{...bu.formControl,marginLeft:8,marginTop:8}},E.createElement(ty,null,te.t("ra_Repeat")),E.createElement(ns,{variant:"standard",value:this.state.mode,onChange:e=>this.onModeChange(e.target.value),inputProps:{name:"mode",id:"mode"}},E.createElement(tn,{value:"once"},te.t("sc_once")),E.createElement(tn,{value:"interval"},te.t("sc_interval")),E.createElement(tn,{value:"intervalBetween"},te.t("sc_intervalBetween")),E.createElement(tn,{value:"specific"},te.t("sc_specific"))))),this.state.mode===k2e.once&&this.getOnceElements(),this.state.mode==="interval"&&this.getIntervalElements(),this.state.mode==="intervalBetween"&&this.getIntervalBetweenElements(),this.state.mode==="specific"&&this.getSpecificTimeElements())}}const D2e={headerID:{fontWeight:"bold",fontStyle:"italic"},radio:{display:"inline-block"},dialogPaper:{height:"calc(100% - 96px)"}};class i3t extends E.Component{constructor(e){super(e);let r;this.props.cron&&typeof this.props.cron=="string"&&this.props.cron.replace(/^["']/,"")[0]!=="{"?r=this.props.cron.replace(/['"]/g,"").trim():(r=this.props.cron||"{}",typeof r=="string"&&(r=r.replace(/^["']/,"").replace(/["']\n?$/,""))),this.state={showWarning:"",cron:r}}handleCancel(){this.props.onClose()}handleOk(e){if(!e){const r=Ru.cron2state(this.state.cron);if(r.seconds==="*"||r.seconds==="*/1"){this.setState({showWarning:"everySecond"});return}if(r.minutes==="*"||r.minutes==="*/1"){this.setState({showWarning:"everyMinute"});return}}this.props.onOk(this.state.cron),this.props.onClose()}renderWarningDialog(){return this.state.showWarning?E.createElement(W_e,{title:te.t("ra_Please confirm"),text:te.t(this.state.showWarning==="everySecond"?"ra_The schedule will be executed every second. Are you sure?":"ra_The schedule will be executed every minute. Are you sure?"),onClose:e=>this.setState({showWarning:""},()=>{e&&this.handleOk(!0)})}):null}handleClear(){this.props.onOk(!1),this.props.onClose()}render(){return E.createElement(ms,{onClose:()=>{},maxWidth:"md",fullWidth:!0,sx:{"& .MuiDialog-paper":D2e.dialogPaper},open:!0,"aria-labelledby":"cron-dialog-title"},this.renderWarningDialog(),E.createElement(_s,{id:"cron-dialog-title"},this.props.title||te.t("ra_Define schedule...")),E.createElement(gs,{style:{height:"100%",overflow:"hidden"}},E.createElement(Ru,{cronExpression:this.state.cron,onChange:e=>this.setState({cron:e}),language:te.getLanguage()})),E.createElement(vs,null,!!this.props.clearButton&&E.createElement(Vr,{color:"grey",variant:"contained",onClick:()=>this.handleClear(),startIcon:E.createElement(_S,null)},this.props.clear||te.t("ra_Clear")),E.createElement(Vr,{variant:"contained",onClick:()=>this.handleOk(),color:"primary",startIcon:E.createElement(Ch,null)},this.props.ok||te.t("ra_Ok")),E.createElement(Vr,{color:"grey",variant:"contained",onClick:()=>this.handleCancel(),startIcon:E.createElement(LC,null)},this.props.cancel||te.t("ra_Cancel"))))}}const M2e={dialogPaper:{height:"calc(100% - 96px)"}};class o3t extends E.Component{constructor(e){super(e);let r;this.props.cron&&typeof this.props.cron=="string"&&this.props.cron.replace(/^["']/,"")[0]!=="{"?r=this.props.cron.replace(/['"]/g,"").trim():(r=this.props.cron||"{}",typeof r=="string"&&(r=r.replace(/^["']/,"").replace(/["']\n?$/,""))),this.state={cron:r,mode:this.props.simple?"simple":this.props.complex?"complex":(typeof r=="object"||r[0]==="{")&&!this.props.noWizard?"wizard":AJ(this.props.cron||"* * * * *")?"simple":"complex"}}handleCancel(){this.props.onClose()}handleOk(){this.props.onOk(this.state.cron),this.props.onClose()}setMode(e){this.setState({mode:e})}render(){return E.createElement(ms,{onClose:()=>{},maxWidth:"md",fullWidth:!0,sx:{"& .MuiDialog-paper":M2e.dialogPaper},open:!0,"aria-labelledby":"cron-dialog-title"},E.createElement(_s,{id:"cron-dialog-title"},this.props.title||te.t("ra_Define schedule...")),E.createElement(gs,{style:{height:"100%",overflow:"hidden"}},this.props.simple&&this.props.complex||!this.props.simple&&!this.props.complex?E.createElement("div",null,!this.props.simple&&!this.props.complex&&!this.props.noWizard&&E.createElement(E.Fragment,null,E.createElement(Yr,{key:"wizard",checked:this.state.mode==="wizard",onChange:()=>this.setMode("wizard")}),E.createElement("label",{onClick:()=>this.setMode("wizard"),style:this.state.mode!=="wizard"?{color:"lightgrey"}:{}},te.t("sc_wizard"))),(!this.props.simple&&!this.props.complex||this.props.simple)&&E.createElement(E.Fragment,null,E.createElement(Yr,{key:"simple",checked:this.state.mode==="simple",onChange:()=>this.setMode("simple")}),E.createElement("label",{onClick:()=>this.setMode("simple"),style:this.state.mode!=="simple"?{color:"lightgrey"}:{}},te.t("sc_simple"))),(!this.props.simple&&!this.props.complex||this.props.complex)&&E.createElement(E.Fragment,null,E.createElement(Yr,{key:"complex",checked:this.state.mode==="complex",onChange:()=>this.setMode("complex")}),E.createElement("label",{onClick:()=>this.setMode("complex"),style:this.state.mode!=="complex"?{color:"lightgrey"}:{}},te.t("sc_cron")))):null,this.state.mode==="simple"&&E.createElement($y,{cronExpression:this.state.cron,onChange:e=>this.setState({cron:e}),language:te.getLanguage()}),this.state.mode==="wizard"&&E.createElement(ea,{theme:this.props.theme,schedule:this.state.cron,onChange:e=>this.setState({cron:e})}),this.state.mode==="complex"&&E.createElement(Ru,{cronExpression:this.state.cron,onChange:e=>this.setState({cron:e}),language:te.getLanguage()})),E.createElement(vs,null,E.createElement(Vr,{variant:"contained",onClick:()=>this.handleOk(),color:"primary",startIcon:E.createElement(Ch,null)},this.props.ok||te.t("ra_Ok")),E.createElement(Vr,{variant:"contained",onClick:()=>this.handleCancel(),color:"grey",startIcon:E.createElement(LC,null)},this.props.cancel||te.t("ra_Cancel"))))}}const rf={headerID:{fontWeight:"bold",fontStyle:"italic"},dialog:{height:"95%"},dialogMobile:{padding:"4px",width:"100%",maxWidth:"100%",maxHeight:"calc(100% - 16px)",height:"100%"},content:{height:"100%",overflow:"hidden"},contentMobile:{padding:"8px 4px"},titleRoot:{whiteSpace:"nowrap",width:"calc(100% - 72px)",overflow:"hidden",display:"inline-block",textOverflow:"ellipsis"}};class s3t extends E.Component{constructor(r){super(r);de(this,"dialogName");de(this,"filters");this.dialogName=this.props.dialogName||"default",this.dialogName=`SelectFile.${this.dialogName}`;const n=(window._localStorage||window.localStorage).getItem(this.dialogName)||"{}";try{this.filters=JSON.parse(n)}catch{this.filters={}}r.filters&&(this.filters={...this.filters,...r.filters});let a=this.props.selected||[];typeof a!="object"?a=[a]:a=[...a],a=a.filter(i=>i),this.state={selected:a}}handleCancel(){this.props.onClose()}handleOk(){this.props.onOk(this.props.multiSelect||!Array.isArray(this.state.selected)?this.state.selected:this.state.selected[0]||""),this.props.onClose()}render(){let r;return this.state.selected.length?!Array.isArray(this.state.selected)||this.state.selected.length===1?r=[E.createElement("span",{key:"selected"},te.t("ra_Selected")," "),E.createElement("span",{key:"id",style:rf.headerID},this.state.selected)]:r=[E.createElement("span",{key:"selected"},te.t("ra_Selected")," "),E.createElement("span",{key:"id",style:rf.headerID},te.t("%s items",this.state.selected.length))]:r=this.props.title||te.t("ra_Please select file..."),E.createElement(ms,{onClose:()=>{},maxWidth:!1,sx:{"& .MuiDialog-paper":{...rf.dialog,...rf.dialogMobile}},fullWidth:!0,open:!0,"aria-labelledby":"ar_dialog_selectfile_title"},E.createElement(_s,{id:"ar_dialog_selectfile_title",sx:{"&.MuiDialogTitle-root":rf.titleRoot}},r),E.createElement(gs,{style:{...rf.content,...rf.contentMobile}},E.createElement(Eke,{ready:!0,imagePrefix:this.props.imagePrefix||this.props.prefix||"../",allowUpload:!!this.props.allowUpload,allowDownload:this.props.allowDownload!==!1,allowCreateFolder:!!this.props.allowCreateFolder,allowDelete:!!this.props.allowDelete,allowView:this.props.allowView!==!1,showViewTypeButton:this.props.showViewTypeButton!==!1,showToolbar:this.props.showToolbar!==!1,limitPath:this.props.limitPath,filterFiles:this.props.filterFiles,filterByType:this.props.filterByType,selected:this.props.selected,restrictToFolder:this.props.restrictToFolder,allowNonRestricted:this.props.allowNonRestricted,onSelect:(n,a,i)=>{this.setState({selected:Array.isArray(n)?n:[n]},()=>a&&(!this.props.selectOnlyFolders||i)&&this.handleOk())},t:this.props.t||te.t,lang:this.props.lang||te.getLanguage(),socket:this.props.socket,themeType:this.props.themeType,themeName:this.props.themeName,theme:this.props.theme,showExpertButton:this.props.showExpertButton,expertMode:this.props.expertMode,showTypeSelector:this.props.showTypeSelector})),E.createElement(vs,null,E.createElement(Vr,{variant:"contained",onClick:()=>this.handleOk(),startIcon:E.createElement(Ch,null),disabled:!this.state.selected.length,color:"primary"},this.props.ok||te.t("ra_Ok")),E.createElement(Vr,{color:"grey",variant:"contained",onClick:()=>this.handleCancel(),startIcon:E.createElement(LC,null)},this.props.cancel||te.t("ra_Cancel"))))}}const O2e={dialogPaper:{height:"calc(100% - 96px)"}};class l3t extends E.Component{constructor(e){super(e);let r;this.props.cron&&typeof this.props.cron=="string"&&this.props.cron.replace(/^["']/,"")[0]!=="{"?r=this.props.cron.replace(/['"]/g,"").trim():(r=this.props.cron||"{}",typeof r=="string"&&(r=r.replace(/^["']/,"").replace(/["']\n?$/,""))),this.state={cron:r}}handleCancel(){this.props.onClose()}handleOk(){this.props.onOk(this.state.cron),this.props.onClose()}render(){return E.createElement(ms,{onClose:()=>{},maxWidth:"md",fullWidth:!0,sx:{"& .MuiDialog-paper":O2e.dialogPaper},open:!0,"aria-labelledby":"cron-dialog-title"},E.createElement(_s,{id:"cron-dialog-title"},this.props.title||te.t("ra_Define CRON...")),E.createElement(gs,{style:{height:"100%",overflow:"hidden"}},E.createElement($y,{cronExpression:this.state.cron,onChange:e=>this.setState({cron:e}),language:te.getLanguage()})),E.createElement(vs,null,E.createElement(Vr,{variant:"contained",disabled:!this.state.cron||this.state.cron.includes("_"),onClick:()=>this.handleOk(),color:"primary",startIcon:E.createElement(Ch,null)},this.props.ok||te.t("ra_Ok")),E.createElement(Vr,{variant:"contained",onClick:()=>this.handleCancel(),color:"grey",startIcon:E.createElement(LC,null)},this.props.cancel||te.t("ra_Cancel"))))}}const $2e="Append",A2e="Cancel",P2e="Categories",I2e="Checked",R2e="Delete",L2e="Close",N2e="Commercial",F2e="Configure",z2e="Connected",B2e="Copied",j2e="Create",W2e="Crop",H2e="Delete",U2e="Delete",Y2e="Discard",V2e="Disconnected",G2e="Error",q2e="Filter",X2e="Friday",J2e="Latitude",Z2e="Expires in",K2e="Longitude",Q2e="Message",eEe="Monday",tEe="Name",rEe="Objects",nEe="Ok",aEe="Product",iEe="Repeat",oEe="Replace",sEe="Root",lEe="Saturday",cEe="Save",uEe="Selected",dEe="States",fEe="Sunday",hEe="Thursday",pEe="Timestamp",mEe="Tuesday",vEe="Update",gEe="Valid till",_Ee="Value",yEe="Version",bEe="Wednesday",wEe="Width",SEe="Yes",xEe="different",CEe="Everyone can read object",TEe="Everyone can read state",kEe="Everyone can write object",EEe="Everyone can write state",DEe="Group can read object",MEe="Group can read state",OEe="Group can write object",$Ee="Group can write state",AEe="Owner can read object",PEe="Owner can read state",IEe="Owner can write object",REe="Owner can write state",LEe="Buttons",NEe="Changed from",FEe="close",zEe="Create boolean state",BEe="Create channel",jEe="Create device",WEe="Create number state",HEe="Create state",UEe="Create string state",YEe="days",VEe="Fr",GEe="Mo",qEe="Sa",XEe="Su",JEe="Th",ZEe="Tu",KEe="We",QEe="Expert mode",eDe="All files",tDe="Audio",rDe="Code/JSON",nDe="Images",aDe="Text",iDe="Video",oDe="Settings",sDe="without",lDe="Function",cDe="ID",uDe="Name",dDe="Role",fDe="Room",hDe="Type",pDe="Invalid settings",mDe="Last change",vDe="locally",gDe="Apr",_De="Aug",yDe="Dec",bDe="Feb",wDe="Jan",SDe="Jul",xDe="Jun",CDe="Mai",TDe="Mar",kDe="Nov",EDe="Oct",DDe="Sep",MDe="Apr",ODe="Aug",$De="Dec",ADe="Feb",PDe="Jan",IDe="Jul",RDe="Jun",LDe="Mai",NDe="Mar",FDe="Nov",zDe="Oct",BDe="Sep",jDe="none",WDe="Object changed by",HDe="Object last changed at",UDe="Settings from other adapter %s",YDe="Quality code",VDe="repeat",GDe='To select folder, just hold the key "shift" by clicking the folder.',qDe="State changed by",XDe="Object changed from",JDe="Timestamp",ZDe="Acknowledged",KDe="Comment",QDe="Copy the state value",eMe="Custom settings",tMe="Delete object",rMe="Edit object",nMe="Edit the state value",aMe="From",iMe="Last changed",oMe="Quality",sMe="Time stamp",lMe="User",cMe="Value",uMe="Value",dMe="Warning: The CRON job will run every minute during the specified period!",fMe="Warning: The CRON job will run every second during the specified period!",hMe="CRON",pMe="Date",mMe="Dates",vMe="Day",gMe="Day of week",_Me="Every",yMe="every N days",bMe="every Nth day of the week",wMe="every N day of week",SMe="every N hours",xMe="every N minutes",CMe="every N months",TMe="every N seconds",kMe="every day",EMe="every day of the week",DMe="every day of the week",MMe="every hour",OMe="every minute",$Me="every month",AMe="every second",PMe="From",IMe="Hours",RMe="Interval",LMe="Interval between",NMe="Invalid CRON",FMe="Minutes",zMe="months",BMe="Once",jMe="Period",WMe="Seconds",HMe="Simple",UMe="Specific time",YMe="specific dates",VMe="specific day(s) of the week",GMe="specific day of weeks",qMe="specific hours",XMe="specific minutes",JMe="specific months",ZMe="specific seconds",KMe="Time",QMe="To",eOe="Wizard",tOe="all",rOe="Astro day",nOe="Astro night",aOe="Dawn",iOe="Dusk",oOe="Golden hour",sOe="Golden hour end",lOe="Nadir",cOe="Nautical dawn",uOe="Nautical dusk",dOe="Night",fOe="Night end",hOe="Solar noon",pOe="Sunrise",mOe="Sunrise end",vOe="Sunset",gOe="Sunset start",_Oe="at",yOe="at %s",bOe="every day",wOe="every hour",SOe="every minute",xOe="every month",COe="every %s day",TOe="every %s hours",kOe="every %s minutes",EOe="every %s months",DOe="every %s weeks",MOe="every %s years",OOe="every week",$Oe="every year",AOe="from %s to %s",POe="never",IOe="on %s of %s",ROe="on %s and %s of",LOe="on every date of",NOe="%s",FOe="%s and %s",zOe="on %s",BOe="on %s and %s",jOe="on weekends",WOe="on working days",HOe="will ne be not executed any more, because start is in the past",UOe="on %s",YOe="from %s",VOe="Execute from to",GOe="to %s",qOe="every",XOe="Specific time",JOe="from",ZOe="From-to",KOe="Interval time",QOe="invert",e$e="none",t$e="on",r$e="Period",n$e="Daily",a$e="Dates",i$e="Day",o$e="Every",s$e="Every day",l$e="Every month",c$e="Every week",u$e="Every year",d$e="Hours",f$e="Minutes",h$e="month",p$e="Monthly",m$e="Once",v$e="Specific months",g$e="Week",_$e="Weekdays",y$e="Weekend",b$e="Weekly",w$e="Workdays",S$e="Year",x$e="Yearly",C$e="Specific time",T$e="Time",k$e="to",E$e="Valid",D$e="from",M$e="to",O$e="Whole day",$$e="every month",A$e={"ra_%s links from aliases":"%s links from aliases","ra_%s object(s) processed":"%s object(s) processed","ra_%s was imported":"%s was imported","ra_Accept license":"Accept license","ra_Add new child object to selected parent":"Add new child object to selected parent","ra_Add objects tree from JSON file":"Add objects tree from JSON file","ra_Add row":"Add row","ra_Advanced options":"Advanced options","ra_All items are filtered out":"All items are filtered out","ra_All objects":"All objects",ra_Append:$2e,"ra_Append %s entries or replace existing?":"Append %s entries or replace existing?","ra_Append or replace?":"Append or replace?","ra_Are you sure?":"Are you sure?","ra_Auto (no custom columns)":"Auto (no custom columns)","ra_Back to %s":"Back to %s","ra_Background image":"Background image",ra_Cancel:A2e,"ra_Cannot add items with set filter":"Cannot add items with set filter","ra_Cannot decode license":"Cannot decode license","ra_Cannot determine position: System settings are empty and GPS detection is disabled in browser":"Cannot determine position: System settings are empty and GPS detection is disabled in browser",'ra_Cannot find "%s"':'Cannot find "%s"','ra_Cannot read "%s"':'Cannot read "%s"',"ra_Cannot read licenses: %s":"Cannot read licenses: %s","ra_Cannot retrieve options, as instance is offline":"Cannot retrieve options, as instance is offline","ra_Cannot update attribute, because not found in the object":"Cannot update attribute, because not found in the object","ra_Cannot upload":"Cannot upload",ra_Categories:P2e,"ra_Chained certificate":"Chained certificate","ra_Change color theme":"Change color theme","ra_Changed from":"Changed from","ra_Channel → State":"Channel → State","ra_Check license":"Check license",ra_Checked:I2e,ra_Clear:R2e,"ra_Clear filter":"Clear filter","ra_Clear icon":"Clear icon","ra_Clone current row":"Clone current row",ra_Close:L2e,"ra_Collapse all nodes":"Collapse all nodes","ra_Collapse one step node":"Collapse one level",ra_Commercial:N2e,ra_Configure:F2e,"ra_Configure visible columns":"Configure visible columns","ra_Confirm deletion of %s":"Confirm deletion of %s",ra_Connected:z2e,ra_Copied:B2e,"ra_Copied %s":'Copied "%s"',"ra_Copy content":"Copy content",ra_Create:j2e,"ra_Create alias":"Create alias","ra_Create folder":"Create folder","ra_Create new folder in %s":"Create new folder in %s",ra_Crop:W2e,"ra_Define CRON...":"Define CRON...","ra_Define functions":"Define functions","ra_Define rooms":"Define rooms","ra_Define schedule":"Define schedule","ra_Define schedule...":"Define schedule...",ra_Del:H2e,ra_Delete:U2e,"ra_Delete (no confirm for 5 mins)":"Delete (no confirm for 5 mins)","ra_Delete current row":"Delete current row","ra_Deselect all":"Unselect all","ra_Device → Channel → State":"Device → Channel → State",ra_Discard:Y2e,ra_Disconnected:V2e,"ra_Do not export values of states":"Do not export values of states","ra_Do not use let's encrypt":"Do not use let's encrypt","ra_Double click to reset table layout":"Double click to reset table layout","ra_Drag 'n' drop some files here, or click to select files":"Drag 'n' drop some files here, or click to select files","ra_Drop file here":"Drop file here","ra_Drop the files here...":"Drop the file here...","ra_Duplicate name":"Duplicate name","ra_Edit ACL":"Edit ACL","ra_Edit alias":"Edit alias","ra_Edit custom config":"Edit custom config","ra_Edit function":"Edit function","ra_Edit object field":"Edit object field","ra_Edit role":"Edit role","ra_Edit room":"Edit room","ra_Edit value":"Edit value",ra_Error:G2e,"ra_Expand all nodes":"Expand all nodes","ra_Expand one step node":"Expand one level","ra_Export data to %s file":"Export data to %s file","ra_Failed to open JSON File":"Failed to open JSON File","ra_Fallback custom certificates":"Fallback custom certificates","ra_File is too big. Max %sk allowed. Try use SVG.":"File is too big. Max %sk allowed. Try use SVG.",ra_Filter:q2e,"ra_Filter files":"Filter files","ra_Folder name":"Folder name","ra_Folder → Channel → State":"Folder → Channel → State","ra_Folder → Device → Channel → State":"Folder → Device → Channel → State","ra_Folder → State":"Folder → State","ra_Folders always first":"Folders always first",ra_Friday:X2e,"ra_Good luck":"Good luck","ra_Hide empty folders":"Hide empty folders","ra_If no file will be created in the folder, it will disappear after the browser closed":"If no file will be created in the folder, it will disappear after the browser closed","ra_Import data from %s file":"Import data from %s file","ra_Import from %s":"Import from %s","ra_Instance %s is alive":"Instance %s is alive","ra_Instance %s is not alive":"Instance %s is not alive","ra_Instance is not alive":"Instance is not alive","ra_Invalid CRON":"Invalid CRON","ra_Invalid JSON":"Invalid JSON","ra_Invalid answer from server":"Invalid answer from server","ra_Invalid parent folder!":"Invalid parent folder!","ra_Invalid structure":"Invalid structure","ra_JSON editor":"JSON editor","ra_Last change":"Last change",ra_Latitude:J2e,"ra_License %s":"License %s","ra_License agreement":"License agreement","ra_License does not exist":"License does not exist",ra_tooltip_expire:Z2e,"ra_License expired on %s":"License expired on %s",'ra_License for other product "%s"':'License for other product "%s"',"ra_License is for version %s, but required version is %s.":"License is for version %s, but required version is %s.","ra_License must be converted":"License must be converted to newer version. You can do it in your iobroker.net profile.","ra_License not found in license manager. Do you want to read licenses from iobroker.net?":"License not found in the license manager. Do you want to update licenses from iobroker.net?","ra_Listen on all IPs":"Listen on all IPs","ra_Load configuration from file":"Load configuration from file",ra_Longitude:K2e,'ra_May not trigger "updateLicenses"':'May not trigger "updateLicenses"',ra_Message:Q2e,ra_Monday:eEe,"ra_Move down":"Move down","ra_Move up":"Move up",ra_Name:tEe,"ra_No data found in file":"No data found in file","ra_No one license found in license manager":"No one license found in license manager","ra_No response from the backend":"No response from the backend",'ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".':'Non-experts may create new objects only in "0_userdata.0" or "alias.0".',"ra_Not a number":"Not a number",ra_Objects:rEe,ra_Ok:nEe,"ra_On weekdays":"On weekdays","ra_Only following structures of objects are available:":"Only following structures of objects are available:","ra_Only selected":"Only selected","ra_Owner group":"Owner group","ra_Owner user":"Owner user","ra_Passwords are not equal!":"Passwords are not equal!","ra_Place your files here or click here to open the browse dialog":"Place your files here or click here to open the browse dialog","ra_Please confirm":"Please confirm","ra_Please create license":"Please create license","ra_Please enter the license":"Please enter the license","ra_Please select file...":"Please select file...","ra_Please select object ID...":"Please select object ID...","ra_Port could be used by %s":"Port could be used by %s","ra_Port is already used by %s":"Port is already used by %s","ra_Private certificate":"Private certificate",ra_Product:aEe,"ra_Public certificate":"Public certificate","ra_Quality code":"Quality","ra_Refresh tree":"Refresh tree","ra_Reload files":"Reload files",ra_Repeat:iEe,ra_Replace:oEe,"ra_Request timed out":"Request timed out","ra_Restrict to folder":"Restrict to folder",ra_Root:sEe,ra_Saturday:lEe,ra_Save:cEe,"ra_Save and close":"Save and close","ra_Save configuration to file":"Save configuration to file","ra_Save objects tree as JSON file":"Save objects tree as JSON file","ra_Select all":"Select all","ra_Select color":"Select color","ra_Select predefined icon":"Select predefined icon","ra_Select type of export":"Select type of export",ra_Selected:uEe,"ra_Selected %s object(s)":"Selected %s object(s)","ra_Serial number (UUID)":"Serial number (UUID)",'ra_Serial number (UUID) "%s" in license is for other device.':'Serial number (UUID) "%s" in license is for other device.',"ra_Show all folders":"Show all folders","ra_Show lines between rows":"Show lines between rows","ra_Show/Hide object descriptions":"Show/Hide object descriptions","ra_Show/hide filter input":"Show/hide filter input","ra_Some data are not stored. Discard?":"Some data are not stored. Discard?",ra_States:dEe,"ra_Suitable license not found in license manager":"Suitable license not found in license manager",ra_Sunday:fEe,"ra_Suppress question for next %s minutes":"Suppress question for next %s minutes","ra_System language":"System language","ra_Take browser position":"Take position from browser","ra_Take position from system settings":"Take position from system settings",'ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").':'The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").',"ra_The page you are looking for was not found":"The page you are looking for was not found","ra_The schedule will be executed every minute. Are you sure?":"The schedule will be executed every minute. Are you sure?","ra_The schedule will be executed every second. Are you sure?":"The schedule will be executed every second. Are you sure?",ra_Thursday:hEe,ra_Timestamp:pEe,"ra_Toggle expert mode":"Toggle expert mode","ra_Toggle the states view":"Toggle the states view","ra_Toggle view mode":"Toggle view mode","ra_Too big":"Too big","ra_Too small":"Too small","ra_Transparent dialog":"Transparent dialog",ra_Tuesday:mEe,"ra_Unknown error":"Unknown error","ra_Unknown error!":"Unknown error!",ra_Update:vEe,"ra_Upload file":"Upload file","ra_Use all available let's encrypt certificates":"Use all available let's encrypt certificates","ra_Use iobroker.acme adapter for letsencrypt certificates":"Use iobroker.acme adapter for letsencrypt certificates","ra_Use system settings for position":"Use system settings for position","ra_Used system settings":"Used system settings","ra_User files":"User files",ra_ValidTill:gEe,ra_Value:_Ee,ra_Version:yEe,"ra_View file":"View file","ra_View: %s":"View: %s",ra_Wednesday:bEe,ra_Width:wEe,ra_Yes:SEe,"ra_You can export all objects or just the selected branch.":"You can export all objects or just the selected branch.","ra_You can filter entries by entering here some text":"You can filter entries by entering here some text",ra___different__:xEe,ra_aclEveryone_read_object:CEe,ra_aclEveryone_read_state:TEe,ra_aclEveryone_write_object:kEe,ra_aclEveryone_write_state:EEe,ra_aclGroup_read_object:DEe,ra_aclGroup_read_state:MEe,ra_aclGroup_write_object:OEe,ra_aclGroup_write_state:$Ee,ra_aclOwner_read_object:AEe,ra_aclOwner_read_state:PEe,ra_aclOwner_write_object:IEe,ra_aclOwner_write_state:REe,ra_buttons:LEe,ra_changedFrom:NEe,ra_close:FEe,ra_create_boolean_state:zEe,ra_create_channel:BEe,ra_create_device:jEe,ra_create_number_state:WEe,ra_create_state:HEe,ra_create_string_state:UEe,ra_daysShortText:YEe,ra_dow_Fr:VEe,ra_dow_Mo:GEe,ra_dow_Sa:qEe,ra_dow_Su:XEe,ra_dow_Th:JEe,ra_dow_Tu:ZEe,ra_dow_We:KEe,ra_expertMode:QEe,ra_fileType_all:eDe,ra_fileType_audio:tDe,ra_fileType_code:rDe,ra_fileType_images:nDe,ra_fileType_txt:aDe,ra_fileType_video:iDe,"ra_fileType_video,":"Video",ra_filter_customs:oDe,ra_filter_customs_without:sDe,ra_filter_func:lDe,ra_filter_id:cDe,ra_filter_name:uDe,ra_filter_role:dDe,ra_filter_room:fDe,ra_filter_type:hDe,"ra_import data from %s file":"Import data from %s file",ra_invalidConfig:pDe,ra_lastChange:mDe,ra_locally:vDe,ra_month_Apr:gDe,ra_month_Aug:_De,ra_month_Dec:yDe,ra_month_Feb:bDe,ra_month_Jan:wDe,ra_month_Jul:SDe,ra_month_Jun:xDe,ra_month_Mai:CDe,ra_month_Mar:TDe,ra_month_Nov:kDe,ra_month_Oct:EDe,ra_month_Sep:DDe,ra_months_Apr:MDe,ra_months_Aug:ODe,ra_months_Dec:$De,ra_months_Feb:ADe,ra_months_Jan:PDe,ra_months_Jul:IDe,ra_months_Jun:RDe,ra_months_Mai:LDe,ra_months_Mar:NDe,ra_months_Nov:FDe,ra_months_Oct:zDe,ra_months_Sep:BDe,ra_none:jDe,ra_object_changed_by:WDe,ra_object_changed_by_user:HDe,ra_otherConfig:UDe,ra_qualityCode:YDe,ra_repeat:VDe,ra_select_folder_hint:GDe,ra_state_changed_by:qDe,ra_state_changed_from:XDe,ra_timestamp:JDe,ra_tooltip_ack:ZDe,ra_tooltip_comment:KDe,ra_tooltip_copyState:QDe,ra_tooltip_customConfig:eMe,ra_tooltip_deleteObject:tMe,ra_tooltip_editObject:rMe,ra_tooltip_editState:nMe,ra_tooltip_from:aMe,ra_tooltip_lc:iMe,ra_tooltip_quality:oMe,ra_tooltip_ts:sMe,ra_tooltip_user:lMe,ra_tooltip_value:cMe,"ra_use seconds":"use seconds",ra_val:uMe,"ra_via internet":"via internet",ra_warning_every_minute:dMe,ra_warning_every_second:fMe,sc_cron:hMe,sc_date:pMe,sc_dates:mMe,sc_dow:vMe,sc_dows:gMe,sc_every:_Me,sc_everyN_dates:yMe,sc_everyN_dow:bMe,sc_everyN_dows:wMe,sc_everyN_hours:SMe,sc_everyN_minutes:xMe,sc_everyN_months:CMe,sc_everyN_seconds:TMe,sc_every_dates:kMe,sc_every_dow:EMe,sc_every_dows:DMe,sc_every_hours:MMe,sc_every_minutes:OMe,sc_every_months:$Me,sc_every_seconds:AMe,sc_from:PMe,sc_hours:IMe,sc_interval:RMe,sc_intervalBetween:LMe,sc_invalid_cron:NMe,sc_minutes:FMe,sc_months:zMe,sc_once:BMe,sc_period:jMe,sc_seconds:WMe,sc_simple:HMe,sc_specific:UMe,sc_specific_dates:YMe,sc_specific_dow:VMe,sc_specific_dows:GMe,sc_specific_hours:qMe,sc_specific_minutes:XMe,sc_specific_months:JMe,sc_specific_seconds:ZMe,sc_time:KMe,sc_to:QMe,sc_wizard:eOe,sch_all:tOe,sch_astroDay:rOe,sch_astroNight:nOe,sch_astro_dawn:aOe,sch_astro_dusk:iOe,sch_astro_goldenHour:oOe,sch_astro_goldenHourEnd:sOe,sch_astro_nadir:lOe,sch_astro_nauticalDawn:cOe,sch_astro_nauticalDusk:uOe,sch_astro_night:dOe,sch_astro_nightEnd:fOe,sch_astro_solarNoon:hOe,sch_astro_sunrise:pOe,sch_astro_sunriseEnd:mOe,sch_astro_sunset:vOe,sch_astro_sunsetStart:gOe,sch_at:_Oe,sch_desc_atTime:yOe,sch_desc_everyDay:bOe,sch_desc_everyHour:wOe,sch_desc_everyMinute:SOe,sch_desc_everyMonth:xOe,sch_desc_everyNDay:COe,sch_desc_everyNHours:TOe,sch_desc_everyNMinutes:kOe,sch_desc_everyNMonths:EOe,sch_desc_everyNWeeks:DOe,sch_desc_everyNYears:MOe,sch_desc_everyWeek:OOe,sch_desc_everyYear:$Oe,sch_desc_intervalFromTo:AOe,sch_desc_never:POe,sch_desc_onDate:IOe,sch_desc_onDates:ROe,sch_desc_onEveryDate:LOe,sch_desc_onMonth:NOe,sch_desc_onMonths:FOe,sch_desc_onWeekday:zOe,sch_desc_onWeekdays:BOe,sch_desc_onWeekends:jOe,sch_desc_onWorkdays:WOe,sch_desc_onceInPast:HOe,sch_desc_once_on:UOe,sch_desc_validFrom:YOe,sch_desc_validFromTo:VOe,sch_desc_validTo:GOe,sch_every:qOe,sch_exactTime:XOe,sch_from:JOe,sch_fromTo:ZOe,sch_intervalTime:KOe,sch_invert:QOe,sch_no_one:e$e,sch_on:t$e,sch_period:r$e,sch_periodDaily:n$e,sch_periodDates:a$e,sch_periodDay:i$e,sch_periodEvery:o$e,sch_periodEveryDay:s$e,sch_periodEveryMonth:l$e,sch_periodEveryWeek:c$e,sch_periodEveryYear:u$e,sch_periodHours:d$e,sch_periodMinutes:f$e,sch_periodMonth:h$e,sch_periodMonthly:p$e,sch_periodOnce:m$e,sch_periodSpecificMonths:v$e,sch_periodWeek:g$e,sch_periodWeekdays:_$e,sch_periodWeekend:y$e,sch_periodWeekly:b$e,sch_periodWorkdays:w$e,sch_periodYear:S$e,sch_periodYearly:x$e,sch_specificTime:C$e,sch_time:T$e,sch_to:k$e,sch_valid:E$e,sch_validFrom:D$e,sch_validTo:M$e,sch_wholeDay:O$e,sch_yearEveryMonth:$$e},P$e="Anhängen",I$e="Abbrechen",R$e="Kategorien",L$e="Geprüft",N$e="Löschen",F$e="Schließen",z$e="Kommerziell",B$e="Konfigurieren",j$e="Verbunden",W$e="Kopiert",H$e="Erstellen",U$e="Ernte",Y$e="Entf",V$e="Löschen",G$e="Verwerfen",q$e="Getrennt",X$e="Fehler",J$e="Filter",Z$e="Freitag",K$e="Breite",Q$e="Längengrad",eAe="Meldung",tAe="Montag",rAe="Name",nAe="Objekte",aAe="OK",iAe="Produkt",oAe="Wiederholen",sAe="Ersetzen",lAe="Anfang",cAe="Samstag",uAe="Speichern",dAe="Ausgewählt",fAe="Zustände",hAe="Sonntag",pAe="Donnerstag",mAe="Zeitstempel",vAe="Dienstag",gAe="Aktualisieren",_Ae="Gültig bis",yAe="Wert",bAe="Ausführung",wAe="Mittwoch",SAe="Breite",xAe="Ja",CAe="unterschiedlich",TAe="Jeder kann Objekt lesen",kAe="Jeder kann Zustand lesen",EAe="Jeder kann ein Objekt schreiben",DAe="Jeder kann Zustand schreiben",MAe="Gruppe kann Objekt lesen",OAe="Gruppe kann Status lesen",$Ae="Gruppe kann Objekt schreiben",AAe="Gruppe kann Status schreiben",PAe="Besitzer kann Objekt lesen",IAe="Besitzer kann Zustand lesen",RAe="Besitzer kann Objekt schreiben",LAe="Besitzer kann Zustand schreiben",NAe="Tasten",FAe="Geändert von",zAe="Schließen",BAe="Booleschen Zustand erstellen",jAe="Kanal erstellen",WAe="Gerät erstellen",HAe="Nummern-Zustand erstellen",UAe="Zustand erstellen",YAe="String-Zustand erstellen",VAe="T.",GAe="Fr",qAe="Mo",XAe="Sa",JAe="So",ZAe="Do",KAe="Di",QAe="Mi",ePe="Expertenmodus",tPe="Alle Dateien",rPe="Audio",nPe="Code/JSON",aPe="Bilder",iPe="Text",oPe="Video",sPe="Einstellungen",lPe="ohne",cPe="Funktion",uPe="ID",dPe="Name",fPe="Rolle",hPe="Raum",pPe="Typ",mPe="Ungültige Einstellungen",vPe="Letzte Änderung",gPe="örtlich",_Pe="Apr",yPe="Aug",bPe="Dez",wPe="Feb",SPe="Jan",xPe="Jul",CPe="Jun",TPe="Mai",kPe="Mär",EPe="Nov",DPe="Okt",MPe="Sep",OPe="Apr",$Pe="Aug",APe="Dez",PPe="Feb",IPe="Jan",RPe="Jul",LPe="Jun",NPe="Mai",FPe="Mär",zPe="Nov",BPe="Okt",jPe="Sep",WPe="kein",HPe="Objekt geändert von",UPe="Objekt zuletzt geändert um",YPe="Einstellungen von anderen Adaptern %s",VPe="Qualitätscode",GPe="wiederholen",qPe='Um einen Ordner auszuwählen, halten Sie einfach die Taste "Shift" gedrückt, indem Sie auf den Ordner klicken.',XPe="Zustand geändert durch",JPe="Objekt geändert von",ZPe="Zeitstempel",KPe="Bestätigt",QPe="Kommentar",eIe="Statuswert kopieren",tIe="Benutzerdefinierte Einstellungen",rIe="Objekt löschen",nIe="Objekt bearbeiten",aIe="Statuswert bearbeiten",iIe="Von",oIe="Zuletzt geändert",sIe="Qualität",lIe="Zeitstempel",cIe="Benutzer",uIe="Wert",dIe="Wert",fIe="Achtung: Der CRON-Job wird im angegebenen Zeitraum jede Minute ausgeführt!",hIe="Achtung: Der CRON-Job wird im angegebenen Zeitraum jede Sekunde ausgeführt!",pIe="CRON",mIe="Datum",vIe="Tage",gIe="Tag",_Ie="Wochentage",yIe="Jeden",bIe="alle N Tage",wIe="jeden x-ten Tag der Woche",SIe="alle N Wochentage",xIe="alle N Stunden",CIe="alle N Minuten",TIe="alle N Monate",kIe="alle N Sekunden",EIe="jeden Tag",DIe="jeden Tag der Woche",MIe="jeden Tag der Woche",OIe="jede Stunde",$Ie="jede Minute",AIe="jeden Monat",PIe="jede Sekunde",IIe="Von",RIe="Stunden",LIe="Intervall",NIe="Intervall zwischen",FIe="Ungültiger CRON",zIe="Minuten",BIe="Monate",jIe="Einmal",WIe="Zeitraum",HIe="Sekunden",UIe="Einfach",YIe="Bestimmte Zeit",VIe="bestimmte Tage",GIe="bestimmte(r) Tag(e) der Woche",qIe="bestimmten Wochentag",XIe="bestimmte Stunden",JIe="bestimmte Minuten",ZIe="bestimmte Monate",KIe="bestimmte Sekunden",QIe="Zeit",eRe="Bis",tRe="Wizard",rRe="alle",nRe="Astronomischer Tag",aRe="Astronomische Nacht",iRe="Morgendämmerung",oRe="Abenddämmerung",sRe="Goldene Stunde",lRe="Goldene Stundenende",cRe="Nadir",uRe="Nautische Morgendämmerung",dRe="Nautische Abenddämmerung",fRe="Nacht",hRe="Nachtende",pRe="Sonnenmittag",mRe="Sonnenaufgang",vRe="Sonnenaufgangende",gRe="Sonnenuntergang",_Re="Sonnenuntergangstart",yRe="am",bRe="um %s",wRe="jeden Tag",SRe="jede Stunde",xRe="jede Minute",CRe="jeden Monat",TRe="jeden %s Tag",kRe="alle %s Stunden",ERe="alle %s Minuten",DRe="alle %s Monate",MRe="alle %s Wochen",ORe="alle %s Jahre",$Re="jede Woche",ARe="jedes Jahr",PRe="von %s bis %s",IRe="noch nie",RRe="am %s von %s",LRe="am %s und %s von",NRe="an jedem Datum von",FRe="%s",zRe="%s und %s",BRe="auf %s",jRe="auf %s und %s",WRe="an Wochenenden",HRe="an Werktagen",URe="wird nicht mehr ausgeführt, weil der Start in der Vergangenheit ist",YRe="auf %s",VRe="von %s",GRe="Ausführen von bis",qRe="bis %s",XRe="jeden",JRe="Bestimmte Zeit",ZRe="von",KRe="Von bis",QRe="Zeitintervall",eLe="umkehren",tLe="keiner",rLe="am",nLe="Zeitraum",aLe="Täglich",iLe="Daten",oLe="Tag",sLe="Jeden",lLe="Jeden Tag",cLe="Jeden Monat",uLe="Jede Woche",dLe="Jedes Jahr",fLe="Stunden",hLe="Minuten",pLe="Monat",mLe="Monatlich",vLe="Einmal",gLe="Bestimmte Monate",_Le="Woche",yLe="Wochentage",bLe="Wochenende",wLe="Wöchentlich",SLe="Arbeitstage",xLe="Jahr",CLe="Jährlich",TLe="Bestimmte Zeit",kLe="Zeit",ELe="zu",DLe="Gültigkeit",MLe="von",OLe="bis",$Le="Ganzer Tag",ALe="jeden Monat",PLe={"ra_%s links from aliases":"%s Links von Aliasen","ra_%s object(s) processed":"%s Objekt(e) verarbeitet","ra_%s was imported":"%s wurde importiert","ra_Accept license":"Lizenz akzeptieren","ra_Add new child object to selected parent":"Dem ausgewählten übergeordneten Objekt ein neues untergeordnetes Objekt hinzufügen","ra_Add objects tree from JSON file":"Objektbaum aus JSON-Datei hinzufügen","ra_Add row":"Zeile hinzufügen","ra_Advanced options":"Erweiterte Optionen","ra_All items are filtered out":"Alle Elemente sind herausgefiltert","ra_All objects":"Alle Objekte",ra_Append:P$e,"ra_Append %s entries or replace existing?":"%s Einträge anhängen oder vorhandene ersetzen?","ra_Append or replace?":"Anhängen oder ersetzen?","ra_Are you sure?":"Bist du sicher?","ra_Auto (no custom columns)":"Auto (keine benutzerdefinierten Spalten)","ra_Back to %s":"Zurück zu %s","ra_Background image":"Hintergrundbild",ra_Cancel:I$e,"ra_Cannot add items with set filter":"Elemente mit festgelegtem Filter können nicht hinzugefügt werden","ra_Cannot decode license":"Lizenz kann nicht entschlüsselt werden","ra_Cannot determine position: System settings are empty and GPS detection is disabled in browser":"Position kann nicht bestimmt werden: Die Systemeinstellungen sind leer und die GPS-Erkennung ist im Browser deaktiviert",'ra_Cannot find "%s"':'Kann "%s" nicht finden','ra_Cannot read "%s"':'"%s" kann nicht gelesen werden',"ra_Cannot read licenses: %s":"Lizenzen können nicht gelesen werden: %s","ra_Cannot retrieve options, as instance is offline":"Optionen können nicht abgerufen werden, da die Instanz offline ist","ra_Cannot update attribute, because not found in the object":"Attribut kann nicht aktualisiert werden, da es nicht im Objekt gefunden wurde","ra_Cannot upload":"Kann nicht hochladen",ra_Categories:R$e,"ra_Chained certificate":"Chained Zertifikat","ra_Change color theme":"Farbthema ändern","ra_Changed from":"Geändert von","ra_Channel → State":"Kanal → Zustand","ra_Check license":"Lizenz prüfen",ra_Checked:L$e,ra_Clear:N$e,"ra_Clear filter":"Filter löschen","ra_Clear icon":"Symbol löschen","ra_Clone current row":"Aktuelle Zeile klonen",ra_Close:F$e,"ra_Collapse all nodes":"Alle Knoten zuklappen","ra_Collapse one step node":"Eine Ebene zuklappen",ra_Commercial:z$e,ra_Configure:B$e,"ra_Configure visible columns":"Spalten Konfigurieren","ra_Confirm deletion of %s":"Das Löschen von %s bestätigen",ra_Connected:j$e,ra_Copied:W$e,"ra_Copied %s":'"%s" kopiert',"ra_Copy content":"Inhalte kopieren",ra_Create:H$e,"ra_Create alias":"Alias erstellen","ra_Create folder":"Ordner erstellen","ra_Create new folder in %s":'Neuen Ordner in "%s" erstellen',ra_Crop:U$e,"ra_Define CRON...":"Definieren Sie CRON ...","ra_Define functions":"Funktionen definieren","ra_Define rooms":"Räume definieren","ra_Define schedule":"Zeitplan definieren","ra_Define schedule...":"Zeitplan definieren ...",ra_Del:Y$e,ra_Delete:V$e,"ra_Delete (no confirm for 5 mins)":"Löschen (keine Bestätigung für 5 Minuten)","ra_Delete current row":"Aktuelle Zeile löschen","ra_Deselect all":"Alles abwählen","ra_Device → Channel → State":"Gerät → Kanal → Zustand",ra_Discard:G$e,ra_Disconnected:q$e,"ra_Do not export values of states":"Keine Zustandswerte exportieren","ra_Do not use let's encrypt":"Let's encrypt nicht verwenden","ra_Double click to reset table layout":"Doppelklicken, um das Tabellenlayout zurückzusetzen","ra_Drag 'n' drop some files here, or click to select files":"Die Datei hierher ziehen und ablegen, oder klicken, um die Datei auszuwählen","ra_Drop file here":"Datei hier ablegen","ra_Drop the files here...":"Datei hier ablegen...","ra_Duplicate name":"Doppelter Name","ra_Edit ACL":"ACL bearbeiten","ra_Edit alias":"Alias bearbeiten","ra_Edit custom config":"Bearbeite Benutzerdefinierte Konfiguration","ra_Edit function":"Funktion bearbeiten","ra_Edit object field":"Objektfeld bearbeiten","ra_Edit role":"Rolle bearbeiten","ra_Edit room":"Raum bearbeiten","ra_Edit value":"Wert bearbeiten",ra_Error:X$e,"ra_Expand all nodes":"Alle Knoten aufklappen","ra_Expand one step node":"Eine Ebene aufklappen","ra_Export data to %s file":"Daten in %s-Datei exportieren","ra_Failed to open JSON File":"Fehler beim Öffnen der JSON-Datei","ra_Fallback custom certificates":"Benutzerdefinierte Fallback-Zertifikate","ra_File is too big. Max %sk allowed. Try use SVG.":"Datei ist zu groß. Max %sk erlaubt. Versuchen Sie, SVG zu verwenden.",ra_Filter:J$e,"ra_Filter files":"Dateien filtern","ra_Folder name":"Ordnernamen","ra_Folder → Channel → State":"Ordner → Kanal → Zustand","ra_Folder → Device → Channel → State":"Ordner → Gerät → Kanal → Zustand","ra_Folder → State":"Ordner → Zustand","ra_Folders always first":"Ordner immer zuerst",ra_Friday:Z$e,"ra_Good luck":"Viel Glück","ra_Hide empty folders":"Leere Ordner ausblenden","ra_If no file will be created in the folder, it will disappear after the browser closed":"Wenn im Ordner keine Datei erstellt wird, verschwindet dieser nach dem Schließen des Browsers","ra_Import data from %s file":"Daten aus %s-Datei importieren","ra_Import from %s":"Von %s importieren","ra_Instance %s is alive":"Instanz %s ist aktiv","ra_Instance %s is not alive":"Instanz %s ist nicht aktiv","ra_Instance is not alive":"Instanz ist nicht am Leben","ra_Invalid CRON":"Ungültiger CRON","ra_Invalid JSON":"Ungültiges JSON","ra_Invalid answer from server":"Ungültige Antwort vom Server","ra_Invalid parent folder!":"Ungültiger übergeordneter Ordner!","ra_Invalid structure":"Ungültige Struktur","ra_JSON editor":"JSON-Editor","ra_Last change":"Letzte Änderung",ra_Latitude:K$e,"ra_License %s":"Lizenz %s","ra_License agreement":"Lizenzvereinbarung","ra_License does not exist":"Lizenz existiert nicht","ra_License expired on %s":"Lizenz am %s abgelaufen",'ra_License for other product "%s"':"Lizenz für anderes Produkt „%s“","ra_License is for version %s, but required version is %s.":"Lizenz ist für Version %s, aber erforderliche Version ist %s.","ra_License must be converted":"Die Lizenz muss auf eine neuere Version konvertiert werden. Sie können dies in Ihrem iobroker.net-Profil tun.","ra_License not found in license manager. Do you want to read licenses from iobroker.net?":"Lizenz im Lizenzmanager nicht gefunden. Möchten Sie Lizenzen von iobroker.net aktualisieren?","ra_Listen on all IPs":"Zugriff von allen IPs zulassen","ra_Load configuration from file":"Konfiguration aus Datei laden",ra_Longitude:Q$e,'ra_May not trigger "updateLicenses"':"Löst möglicherweise nicht „updateLicenses“ aus",ra_Message:eAe,ra_Monday:tAe,"ra_Move down":"Nach unten","ra_Move up":"Nach oben",ra_Name:rAe,"ra_No data found in file":"Keine Daten in der Datei gefunden","ra_No one license found in license manager":"Im Lizenzmanager wurde keine Lizenz gefunden","ra_No response from the backend":"Keine Antwort vom Backend",'ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".':'Nicht-Experten dürfen neue Objekte nur in "0_userdata.0" oder "alias.0" erstellen.',"ra_Not a number":"Keine Nummer",ra_Objects:nAe,ra_Ok:aAe,"ra_On weekdays":"An Wochentagen","ra_Only following structures of objects are available:":"Es stehen nur folgende Objektstrukturen zur Verfügung:","ra_Only selected":"Nur ausgewählt","ra_Owner group":"Besitzergruppe","ra_Owner user":"Besitzer Benutzer","ra_Passwords are not equal!":"Passwörter sind nicht gleich!","ra_Place your files here or click here to open the browse dialog":"Die Dateien hier platzieren oder hier klicken, um den Suchdialog zu öffnen","ra_Please confirm":"Bitte bestätigen","ra_Please create license":"Bitte erstellen Sie eine Lizenz","ra_Please enter the license":"Bitte die Lizenz eingeben","ra_Please select file...":"Bitte Datei auswählen...","ra_Please select object ID...":"Bitte Objekt-ID auswählen...","ra_Port could be used by %s":"Port könnte von %s verwendet werden","ra_Port is already used by %s":"Port wird bereits von %s verwendet","ra_Private certificate":"Privates Zertifikat",ra_Product:iAe,"ra_Public certificate":"Öffentliches Zertifikat","ra_Quality code":"Qualität","ra_Refresh tree":"Baum aktualisieren","ra_Reload files":"Dateien neu laden",ra_Repeat:oAe,ra_Replace:sAe,"ra_Request timed out":"Zeitüberschreitung der Anforderung","ra_Restrict to folder":"Auf Ordner beschränken",ra_Root:lAe,ra_Saturday:cAe,ra_Save:uAe,"ra_Save and close":"Speichern und schließen","ra_Save configuration to file":"Konfiguration in Datei speichern","ra_Save objects tree as JSON file":"Objektbaum als JSON-Datei speichern","ra_Select all":"Alle auswählen","ra_Select color":"Wähle Farbe","ra_Select predefined icon":"Vordefiniertes Symbol auswählen","ra_Select type of export":"Die Art des Exports auswählen ",ra_Selected:dAe,"ra_Selected %s object(s)":"Ausgewählt %s Objekt(en)","ra_Serial number (UUID)":"Seriennummer (UUID)",'ra_Serial number (UUID) "%s" in license is for other device.':"Seriennummer (UUID) „%s“ in der Lizenz gilt für ein anderes Gerät.","ra_Show all folders":"Alle Ordner anzeigen","ra_Show lines between rows":"Linien zwischen Zeilen anzeigen","ra_Show/Hide object descriptions":"Objektbeschreibungen ein-/ausblenden","ra_Show/hide filter input":"Filtereingabe ein-/ausblenden","ra_Some data are not stored. Discard?":"Einige Daten werden nicht gespeichert. Verwerfen?",ra_States:fAe,"ra_Suitable license not found in license manager":"Passende Lizenz im Lizenzmanager nicht gefunden",ra_Sunday:hAe,"ra_Suppress question for next %s minutes":"Frage für die nächsten %s Minuten unterdrücken","ra_System language":"Systemsprache","ra_Take browser position":"Position vom Browser einnehmen","ra_Take position from system settings":"Position aus den Systemeinstellungen übernehmen",'ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").':'Die Experten können Objekte überall erstellen, außer auf der zweiten Ebene (z. B. "vis.0" oder "javascript.0").',"ra_The page you are looking for was not found":"Die gesuchte Seite wurde nicht gefunden","ra_The schedule will be executed every minute. Are you sure?":"Der Zeitplan wird jede Minute ausgeführt. Sind Sie sicher?","ra_The schedule will be executed every second. Are you sure?":"Der Zeitplan wird jede Sekunde ausgeführt. Sind Sie sicher?",ra_Thursday:pAe,ra_Timestamp:mAe,"ra_Toggle expert mode":"Expertenmodus umschalten","ra_Toggle the states view":"Statusansicht umschalten","ra_Toggle view mode":"Ansichtsmodus umschalten","ra_Too big":"Zu groß","ra_Too small":"Zu klein","ra_Transparent dialog":"Transparenter Dialog",ra_Tuesday:vAe,"ra_Unknown error":"Unbekannter Fehler","ra_Unknown error!":"Unbekannter Fehler!",ra_Update:gAe,"ra_Upload file":"Datei hochladen","ra_Use all available let's encrypt certificates":"Alle verfügbaren Zertifikate von Let's encrypt benutzen","ra_Use iobroker.acme adapter for letsencrypt certificates":"ioBroker.acme-Adapter für letsencrypt-Zertifikate verwenden","ra_Use system settings for position":"Systemeinstellungen für die Position verwenden","ra_Used system settings":"Systemeinstellungen","ra_User files":"Benutzerdaten",ra_ValidTill:_Ae,ra_Value:yAe,ra_Version:bAe,"ra_View file":"Datei ansehen","ra_View: %s":"Anschauen: %s",ra_Wednesday:wAe,ra_Width:SAe,ra_Yes:xAe,"ra_You can export all objects or just the selected branch.":"Sie können alle Objekte oder nur den ausgewählten Zweig exportieren.","ra_You can filter entries by entering here some text":"Sie können Einträge filtern, indem Sie hier Text eingeben",ra___different__:CAe,ra_aclEveryone_read_object:TAe,ra_aclEveryone_read_state:kAe,ra_aclEveryone_write_object:EAe,ra_aclEveryone_write_state:DAe,ra_aclGroup_read_object:MAe,ra_aclGroup_read_state:OAe,ra_aclGroup_write_object:$Ae,ra_aclGroup_write_state:AAe,ra_aclOwner_read_object:PAe,ra_aclOwner_read_state:IAe,ra_aclOwner_write_object:RAe,ra_aclOwner_write_state:LAe,ra_buttons:NAe,ra_changedFrom:FAe,ra_close:zAe,ra_create_boolean_state:BAe,ra_create_channel:jAe,ra_create_device:WAe,ra_create_number_state:HAe,ra_create_state:UAe,ra_create_string_state:YAe,ra_daysShortText:VAe,ra_dow_Fr:GAe,ra_dow_Mo:qAe,ra_dow_Sa:XAe,ra_dow_Su:JAe,ra_dow_Th:ZAe,ra_dow_Tu:KAe,ra_dow_We:QAe,ra_expertMode:ePe,ra_fileType_all:tPe,ra_fileType_audio:rPe,ra_fileType_code:nPe,ra_fileType_images:aPe,ra_fileType_txt:iPe,ra_fileType_video:oPe,"ra_fileType_video,":"Video",ra_filter_customs:sPe,ra_filter_customs_without:lPe,ra_filter_func:cPe,ra_filter_id:uPe,ra_filter_name:dPe,ra_filter_role:fPe,ra_filter_room:hPe,ra_filter_type:pPe,"ra_import data from %s file":"Daten aus %s-Datei importieren",ra_invalidConfig:mPe,ra_lastChange:vPe,ra_locally:gPe,ra_month_Apr:_Pe,ra_month_Aug:yPe,ra_month_Dec:bPe,ra_month_Feb:wPe,ra_month_Jan:SPe,ra_month_Jul:xPe,ra_month_Jun:CPe,ra_month_Mai:TPe,ra_month_Mar:kPe,ra_month_Nov:EPe,ra_month_Oct:DPe,ra_month_Sep:MPe,ra_months_Apr:OPe,ra_months_Aug:$Pe,ra_months_Dec:APe,ra_months_Feb:PPe,ra_months_Jan:IPe,ra_months_Jul:RPe,ra_months_Jun:LPe,ra_months_Mai:NPe,ra_months_Mar:FPe,ra_months_Nov:zPe,ra_months_Oct:BPe,ra_months_Sep:jPe,ra_none:WPe,ra_object_changed_by:HPe,ra_object_changed_by_user:UPe,ra_otherConfig:YPe,ra_qualityCode:VPe,ra_repeat:GPe,ra_select_folder_hint:qPe,ra_state_changed_by:XPe,ra_state_changed_from:JPe,ra_timestamp:ZPe,ra_tooltip_ack:KPe,ra_tooltip_comment:QPe,ra_tooltip_copyState:eIe,ra_tooltip_customConfig:tIe,ra_tooltip_deleteObject:rIe,ra_tooltip_editObject:nIe,ra_tooltip_editState:aIe,ra_tooltip_from:iIe,ra_tooltip_lc:oIe,ra_tooltip_quality:sIe,ra_tooltip_ts:lIe,ra_tooltip_user:cIe,ra_tooltip_value:uIe,"ra_use seconds":"Sekunden benutzen",ra_val:dIe,"ra_via internet":"übers Internet",ra_warning_every_minute:fIe,ra_warning_every_second:hIe,sc_cron:pIe,sc_date:mIe,sc_dates:vIe,sc_dow:gIe,sc_dows:_Ie,sc_every:yIe,sc_everyN_dates:bIe,sc_everyN_dow:wIe,sc_everyN_dows:SIe,sc_everyN_hours:xIe,sc_everyN_minutes:CIe,sc_everyN_months:TIe,sc_everyN_seconds:kIe,sc_every_dates:EIe,sc_every_dow:DIe,sc_every_dows:MIe,sc_every_hours:OIe,sc_every_minutes:$Ie,sc_every_months:AIe,sc_every_seconds:PIe,sc_from:IIe,sc_hours:RIe,sc_interval:LIe,sc_intervalBetween:NIe,sc_invalid_cron:FIe,sc_minutes:zIe,sc_months:BIe,sc_once:jIe,sc_period:WIe,sc_seconds:HIe,sc_simple:UIe,sc_specific:YIe,sc_specific_dates:VIe,sc_specific_dow:GIe,sc_specific_dows:qIe,sc_specific_hours:XIe,sc_specific_minutes:JIe,sc_specific_months:ZIe,sc_specific_seconds:KIe,sc_time:QIe,sc_to:eRe,sc_wizard:tRe,sch_all:rRe,sch_astroDay:nRe,sch_astroNight:aRe,sch_astro_dawn:iRe,sch_astro_dusk:oRe,sch_astro_goldenHour:sRe,sch_astro_goldenHourEnd:lRe,sch_astro_nadir:cRe,sch_astro_nauticalDawn:uRe,sch_astro_nauticalDusk:dRe,sch_astro_night:fRe,sch_astro_nightEnd:hRe,sch_astro_solarNoon:pRe,sch_astro_sunrise:mRe,sch_astro_sunriseEnd:vRe,sch_astro_sunset:gRe,sch_astro_sunsetStart:_Re,sch_at:yRe,sch_desc_atTime:bRe,sch_desc_everyDay:wRe,sch_desc_everyHour:SRe,sch_desc_everyMinute:xRe,sch_desc_everyMonth:CRe,sch_desc_everyNDay:TRe,sch_desc_everyNHours:kRe,sch_desc_everyNMinutes:ERe,sch_desc_everyNMonths:DRe,sch_desc_everyNWeeks:MRe,sch_desc_everyNYears:ORe,sch_desc_everyWeek:$Re,sch_desc_everyYear:ARe,sch_desc_intervalFromTo:PRe,sch_desc_never:IRe,sch_desc_onDate:RRe,sch_desc_onDates:LRe,sch_desc_onEveryDate:NRe,sch_desc_onMonth:FRe,sch_desc_onMonths:zRe,sch_desc_onWeekday:BRe,sch_desc_onWeekdays:jRe,sch_desc_onWeekends:WRe,sch_desc_onWorkdays:HRe,sch_desc_onceInPast:URe,sch_desc_once_on:YRe,sch_desc_validFrom:VRe,sch_desc_validFromTo:GRe,sch_desc_validTo:qRe,sch_every:XRe,sch_exactTime:JRe,sch_from:ZRe,sch_fromTo:KRe,sch_intervalTime:QRe,sch_invert:eLe,sch_no_one:tLe,sch_on:rLe,sch_period:nLe,sch_periodDaily:aLe,sch_periodDates:iLe,sch_periodDay:oLe,sch_periodEvery:sLe,sch_periodEveryDay:lLe,sch_periodEveryMonth:cLe,sch_periodEveryWeek:uLe,sch_periodEveryYear:dLe,sch_periodHours:fLe,sch_periodMinutes:hLe,sch_periodMonth:pLe,sch_periodMonthly:mLe,sch_periodOnce:vLe,sch_periodSpecificMonths:gLe,sch_periodWeek:_Le,sch_periodWeekdays:yLe,sch_periodWeekend:bLe,sch_periodWeekly:wLe,sch_periodWorkdays:SLe,sch_periodYear:xLe,sch_periodYearly:CLe,sch_specificTime:TLe,sch_time:kLe,sch_to:ELe,sch_valid:DLe,sch_validFrom:MLe,sch_validTo:OLe,sch_wholeDay:$Le,sch_yearEveryMonth:ALe},ILe="Добавить",RLe="Отмена",LLe="Категории",NLe="Проверено",FLe="Удалить",zLe="Закрыть",BLe="Коммерческая",jLe="Настроить",WLe="Соединение установлено",HLe="скопировано",ULe="Создать",YLe="Обрезать",VLe="Delete",GLe="Удалить",qLe="Отказаться",XLe="Отключено",JLe="Ошибка",ZLe="Фильтр",KLe="Пятница",QLe="Широта",eNe="Долгота",tNe="Сообщение",rNe="Понедельник",nNe="Имя",aNe="Объекты",iNe="Ok",oNe="Продукт",sNe="Повторение",lNe="Заменять",cNe="Начало",uNe="Суббота",dNe="Сохранить",fNe="выбранный",hNe="Состояния",pNe="Воскресенье",mNe="Четверг",vNe="Времени",gNe="Вторник",_Ne="Обновить",yNe="Годен до",bNe="Значение",wNe="Версия",SNe="Среда",xNe="Ширина",CNe="Да",TNe="разное",kNe="Каждый может читать объект",ENe="Каждый может читать состояние",DNe="Каждый может написать объект",MNe="Каждый может написать состояние",ONe="Группа может читать объект",$Ne="Группа может читать состояние",ANe="Группа может писать объект",PNe="Группа может записывать состояние",INe="Владелец может читать объект",RNe="Владелец может читать состояние",LNe="Владелец может писать объект",NNe="Владелец может писать состояние",FNe="Кнопки",zNe="Изменено с",BNe="Закрыть",jNe="Создать логическое состояние",WNe="Создать канал",HNe="Создать устройство",UNe="Создать состояние номера",YNe="Создать состояние",VNe="Создать состояние строки",GNe="д.",qNe="Пт",XNe="Пн",JNe="Сб",ZNe="Вс",KNe="Чт",QNe="Вт",e5e="Ср",t5e="Экспертный режим",r5e="Все файлы",n5e="Аудио",a5e="Код/JSON",i5e="Картинки",o5e="Текст",s5e="видео",l5e="настройки",c5e="без",u5e="функция",d5e="ID",f5e="Имя",h5e="роль",p5e="комната",m5e="Тип",v5e="Неверные настройки",g5e="Последнее изменение",_5e="локально",y5e="Апр",b5e="Авг",w5e="Дек",S5e="Фев",x5e="Янв",C5e="Июл",T5e="Июн",k5e="Май",E5e="Мрт",D5e="Ноя",M5e="Окт",O5e="Сен",$5e="Апр",A5e="Авг",P5e="Дек",I5e="Фев",R5e="Янв",L5e="Июнь",N5e="Июль",F5e="Май",z5e="Март",B5e="Ноя",j5e="Окт",W5e="Сен",H5e="ничего",U5e="Объект изменен",Y5e="Последний раз объект изменен в",V5e="Настройки из другого адаптера %s",G5e="Код качества",q5e="повтор",X5e="Чтобы выбрать папку, просто удерживайте клавишу «Shift», щелкнув папку.",J5e="Состояние изменено",Z5e="Объект изменен с",K5e="Отметка времени",Q5e="Подтверждено",e3e="Комментарий",t3e="Скопируйте значение состояния",r3e="Пользовательские настройки",n3e="Удалить объект",a3e="Редактировать объект",i3e="Изменить значение состояния",o3e="От",s3e="Последнее изменение",l3e="Качество",c3e="Отметка времени",u3e="пользователь",d3e="Значение",f3e="Значение",h3e="Внимание: задание CRON будет запускаться каждую минуту в течение указанного периода!",p3e="Внимание: задание CRON будет выполняться каждую секунду в течение указанного периода!",m3e="CRON",v3e="Дата",g3e="Даты",_3e="День",y3e="День недели",b3e="каждый(ую/ые)",w3e="каждый N день",S3e="каждый N-й день недели",x3e="каждый N день недели",C3e="каждые N часов",T3e="каждые N минут",k3e="каждые N месяцев",E3e="каждые N секунд",D3e="каждый день",M3e="Каждый день недели",O3e="каждый день недели",$3e="каждый час",A3e="каждую минуту",P3e="каждый месяц",I3e="каждую секунду",R3e="От",L3e="часы",N3e="Интервал",F3e="Интервал между",z3e="Неверный CRON",B3e="минуты",j3e="Месяцы",W3e="один раз",H3e="Период",U3e="секунды",Y3e="Просто",V3e="Конкретное время",G3e="конкретные даты",q3e="конкретный день(а) недели",X3e="конкретный день недели",J3e="конкретные часы",Z3e="конкретные минуты",K3e="конкретные месяцы",Q3e="конкретные секунды",e4e="Время",t4e="До",r4e="Форма",n4e="все",a4e="днём",i4e="ночью",o4e="Рассвет",s4e="Сумерки",l4e="Золотой час",c4e="Конец золотого часа",u4e="Надир",d4e="Морской рассвет",f4e="Морские сумерки",h4e="Ночь",p4e="Конец ночи",m4e="Солнечный полдень",v4e="Восход",g4e="Восход солнца",_4e="Заход солнца",y4e="Начало заката",b4e="дата",w4e="в %s",S4e="каждый день",x4e="каждый час",C4e="каждую минуту",T4e="каждый месяц",k4e="каждый %s день",E4e="каждый %s часов",D4e="каждые %s минут",M4e="каждые %s месяцев",O4e="каждые %s недель",$4e="каждые %s лет",A4e="каждую неделю",P4e="каждый год",I4e="от %s до %s",R4e="никогда",L4e="%s %s",N4e="%s и %s",F4e="в каждый день",z4e="%s",B4e="%s и %s",j4e="%s",W4e="%s и %s",H4e="на выходных",U4e="в рабочие дни",Y4e="не будет больше выполняться, потому что начало в прошлом",V4e="%s",G4e="%s",q4e="Выполнить с",X4e="%s",J4e="каждый",Z4e="Конкретное время",K4e="от",Q4e="От и до",eFe="Интервал времени",tFe="инвертировать",rFe="никакой",nFe="на",aFe="период",iFe="Ежедневно",oFe="Даты",sFe="День",lFe="каждый",cFe="Каждый день",uFe="Каждый месяц",dFe="Каждую неделю",fFe="Каждый год",hFe="часов",pFe="минут",mFe="месяц",vFe="ежемесячно",gFe="однажды",_Fe="Конкретные месяцы",yFe="Неделю",bFe="Будние дни",wFe="выходные",SFe="еженедельно",xFe="Рабочие дни",CFe="Год",TFe="каждый год",kFe="Конкретное время",EFe="Время",DFe="в",MFe="действительный",OFe="от",$Fe="в",AFe="Весь день",PFe="каждый месяц",IFe={"ra_%s links from aliases":"%s ссылок из псевдонимов","ra_%s object(s) processed":"Объектов обработано: %s","ra_%s was imported":"%s был импортирован","ra_Accept license":"Принять лицензию","ra_Add new child object to selected parent":"Добавить новый дочерний объект к выбранному родительскому объекту","ra_Add objects tree from JSON file":"Добавить дерево объектов из файла JSON","ra_Add row":"Добавить ряд","ra_Advanced options":"Расширенные настройки","ra_All items are filtered out":"Все элементы отфильтрованы","ra_All objects":"Все объекты",ra_Append:ILe,"ra_Append %s entries or replace existing?":"Добавить записи %s или заменить существующие?","ra_Append or replace?":"Дополнить или заменить?","ra_Are you sure?":"Вы уверены?","ra_Auto (no custom columns)":"Авто (без настраиваемых столбцов)","ra_Back to %s":"Вернуться к %s","ra_Background image":"Фоновая картинка",ra_Cancel:RLe,"ra_Cannot add items with set filter":"Невозможно добавить элементы с установленным фильтром","ra_Cannot decode license":"Не могу декодировать лицензию","ra_Cannot determine position: System settings are empty and GPS detection is disabled in browser":"Невозможно определить местоположение: системные настройки пусты, а обнаружение GPS отключено в браузере.",'ra_Cannot find "%s"':'Не могу найти "%s"','ra_Cannot read "%s"':'Не могу прочитать "%s"',"ra_Cannot read licenses: %s":"Невозможно прочитать лицензии: %s","ra_Cannot retrieve options, as instance is offline":"Невозможно получить параметры, так как экземпляр находится в автономном режиме.","ra_Cannot update attribute, because not found in the object":"Невозможно обновить атрибут, потому что он не найден в объекте","ra_Cannot upload":"Невозможно загрузить",ra_Categories:LLe,"ra_Chained certificate":"Chained сертификат","ra_Change color theme":"Изменить цветовую тему","ra_Changed from":"Изменено","ra_Channel → State":"Канал → Состояние","ra_Check license":"Проверить лицензию",ra_Checked:NLe,ra_Clear:FLe,"ra_Clear filter":"Очистить фильтр","ra_Clear icon":"Очистить значок","ra_Clone current row":"Клонировать текущую строку",ra_Close:zLe,"ra_Collapse all nodes":"Свернуть все узлы","ra_Collapse one step node":"Свернуть один уровень",ra_Commercial:BLe,ra_Configure:jLe,"ra_Configure visible columns":"Настроить видимые столбцы","ra_Confirm deletion of %s":"Подтвердите удаление %s",ra_Connected:WLe,ra_Copied:HLe,"ra_Copied %s":'Скопировано "%s"',"ra_Copy content":"Копировать содержимое",ra_Create:ULe,"ra_Create alias":"Создать псевдоним","ra_Create folder":"Создать папку","ra_Create new folder in %s":"Создать новую папку в %s",ra_Crop:YLe,"ra_Define CRON...":"Определите CRON...","ra_Define functions":"Задать функции","ra_Define rooms":"Задать комнаты","ra_Define schedule":"Задать расписание","ra_Define schedule...":"Определить расписание ...",ra_Del:VLe,ra_Delete:GLe,"ra_Delete (no confirm for 5 mins)":"Удалить (без подтверждения в течение 5 минут)","ra_Delete current row":"Удалить текущую строку","ra_Deselect all":"Убрать выбор везде","ra_Device → Channel → State":"Устройство → Канал → Состояние",ra_Discard:qLe,ra_Disconnected:XLe,"ra_Do not export values of states":"Не экспортировать значения состояний","ra_Do not use let's encrypt":"Не использовать Let’s Encrypt","ra_Double click to reset table layout":"Дважды щелкните, чтобы сбросить макет таблицы","ra_Drag 'n' drop some files here, or click to select files":"Перетащите сюда несколько файлов или щелкните, чтобы выбрать файлы","ra_Drop file here":"Перетащите файл сюда","ra_Drop the files here...":"Перетащите файл сюда ...","ra_Duplicate name":"Повторяющееся имя","ra_Edit ACL":"Изменить ACL-список","ra_Edit alias":"Изменить псевдоним","ra_Edit custom config":"Редактировать настраиваемую конфигурацию","ra_Edit function":"Изменить функцию","ra_Edit object field":"Поле редактирования объекта","ra_Edit role":"Изменить роль","ra_Edit room":"Редактировать комнату","ra_Edit value":"Изменить значение",ra_Error:JLe,"ra_Expand all nodes":"Развернуть все узлы","ra_Expand one step node":"Открыть один уровень","ra_Export data to %s file":"Экспорт данных в файл %s","ra_Failed to open JSON File":"Не удалось открыть файл JSON","ra_Fallback custom certificates":"Резервные пользовательские сертификаты","ra_File is too big. Max %sk allowed. Try use SVG.":"Файл слишком большой. Разрешено максимальное количество %sk. Попробуйте использовать SVG.",ra_Filter:ZLe,"ra_Filter files":"Фильтровать файлы","ra_Folder name":"Имя папки","ra_Folder → Channel → State":"Папка → Канал → Состояние","ra_Folder → Device → Channel → State":"Папка → Устройство → Канал → Состояние","ra_Folder → State":"Папка → Состояние","ra_Folders always first":"Папки всегда на первом месте",ra_Friday:KLe,"ra_Good luck":"Удачи","ra_Hide empty folders":"Скрыть пустые папки","ra_If no file will be created in the folder, it will disappear after the browser closed":"Если в папке не будет создан файл, он исчезнет после закрытия браузера.","ra_Import data from %s file":"Импорт данных из файла %s","ra_Import from %s":"Импорт из %s","ra_Instance %s is alive":"Экземпляр %s работает","ra_Instance %s is not alive":"Экземпляр %s не работает","ra_Instance is not alive":"Экземпляр не живой","ra_Invalid CRON":"Неверный CRON","ra_Invalid JSON":"Неверный JSON","ra_Invalid answer from server":"Неверный ответ от сервера","ra_Invalid parent folder!":"Неверная родительская папка!","ra_Invalid structure":"Неверная структура","ra_JSON editor":"Редактор JSON","ra_Last change":"Последнее изменение",ra_Latitude:QLe,"ra_License %s":"Лицензия %s","ra_License agreement":"Лицензионное соглашение","ra_License does not exist":"Лицензия не существует","ra_License expired on %s":"Срок действия лицензии истек %s",'ra_License for other product "%s"':'Лицензия на другой продукт "%s"',"ra_License is for version %s, but required version is %s.":"Лицензия предназначена для версии %s, но необходима версия %s.","ra_License must be converted":"Лицензия должна быть преобразована в более новую версию. Вы можете сделать это в своем профиле на iobroker.net.","ra_License not found in license manager. Do you want to read licenses from iobroker.net?":"Лицензия не найдена в диспетчере лицензий. Вы хотите обновить лицензии от iobroker.net?","ra_Listen on all IPs":"Слушать на всех IP","ra_Load configuration from file":"Загрузить конфигурацию из файла",ra_Longitude:eNe,'ra_May not trigger "updateLicenses"':"Не может запускать «updateLicenses»",ra_Message:tNe,ra_Monday:rNe,"ra_Move down":"Вниз","ra_Move up":"Вверх",ra_Name:nNe,"ra_No data found in file":"Данные в файле не найдены","ra_No one license found in license manager":"В менеджере лицензий не найдена ни одна лицензия","ra_No response from the backend":"Нет ответа от бэкэнда",'ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".':"Не-эксперты могут создавать новые объекты только в «0_userdata.0» или «alias.0».","ra_Not a number":"Не число",ra_Objects:aNe,ra_Ok:iNe,"ra_On weekdays":"На выходных","ra_Only following structures of objects are available:":"Доступны только следующие структуры объектов:","ra_Only selected":"Только выбранные","ra_Owner group":"Группа владельцев","ra_Owner user":"Пользователь-владелец","ra_Passwords are not equal!":"Пароли не равны!","ra_Place your files here or click here to open the browse dialog":"Поместите свои файлы сюда или щелкните здесь, чтобы открыть диалоговое окно выбора","ra_Please confirm":"Пожалуйста подтвердите","ra_Please create license":"Пожалуйста, создайте лицензию","ra_Please enter the license":"Пожалуйста, введите лицензию","ra_Please select file...":"Пожалуйста, выберите файл...","ra_Please select object ID...":"Пожалуйста, выберите идентификатор объекта ...","ra_Port could be used by %s":"Порт может использоваться %s","ra_Port is already used by %s":"Порт уже используется %s","ra_Private certificate":"Частный сертификат",ra_Product:oNe,"ra_Public certificate":"Публичный сертификат","ra_Quality code":"Валидность","ra_Refresh tree":"Обновить дерево","ra_Reload files":"Обновить",ra_Repeat:sNe,ra_Replace:lNe,"ra_Request timed out":"Истекло время запроса","ra_Restrict to folder":"Ограничить папкой",ra_Root:cNe,ra_Saturday:uNe,ra_Save:dNe,"ra_Save and close":"Сохранить и закрыть","ra_Save configuration to file":"Сохранить конфигурацию в файл","ra_Save objects tree as JSON file":"Сохранить дерево объектов как файл JSON","ra_Select all":"Выбрать все","ra_Select color":"Выберите цвет","ra_Select predefined icon":"Выберите предопределенный значок","ra_Select type of export":"Выберите тип экспорта",ra_Selected:fNe,"ra_Selected %s object(s)":"Объектов: %s","ra_Serial number (UUID)":"Серийный номер (UUID)",'ra_Serial number (UUID) "%s" in license is for other device.':"Серийный номер (UUID) «%s» в лицензии предназначен для другого устройства.","ra_Show all folders":"Показать все папки","ra_Show lines between rows":"Показать линии между строками","ra_Show/Hide object descriptions":"Показать/скрыть описания объектов","ra_Show/hide filter input":"Показать/скрыть ввод фильтра","ra_Some data are not stored. Discard?":"Некоторые данные не сохранились. Отказаться?",ra_States:hNe,"ra_Suitable license not found in license manager":"Подходящая лицензия не найдена в менеджере лицензий",ra_Sunday:pNe,"ra_Suppress question for next %s minutes":"Скрыть вопрос на следующие %s минут(ы)","ra_System language":"Язык системы","ra_Take browser position":"Взять позицию из браузера","ra_Take position from system settings":"Занять позицию из системных настроек",'ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").':"Эксперты могут создавать объекты везде, кроме второго уровня (например, «vis.0» или «javascript.0»).","ra_The page you are looking for was not found":"Страница, которую вы ищете, не найдена","ra_The schedule will be executed every minute. Are you sure?":"Расписание будет выполняться каждую минуту. Вы уверены?","ra_The schedule will be executed every second. Are you sure?":"Расписание будет выполняться каждую секунду. Вы уверены?",ra_Thursday:mNe,ra_Timestamp:vNe,"ra_Toggle expert mode":"Переключить экспертный режим","ra_Toggle the states view":"Переключить режим просмотра состояний","ra_Toggle view mode":"Переключить режим просмотра","ra_Too big":"Слишком большое","ra_Too small":"Слишком маленькое","ra_Transparent dialog":"Прозрачный диалог",ra_Tuesday:gNe,"ra_Unknown error":"Неизвестная ошибка","ra_Unknown error!":"Неизвестная ошибка!",ra_Update:_Ne,"ra_Upload file":"Загрузить файл","ra_Use all available let's encrypt certificates":"Использовать все доступные сертификаты Let’s encrypt","ra_Use iobroker.acme adapter for letsencrypt certificates":"Используйте адаптер iobroker.acme для сертификатов letsencrypt","ra_Use system settings for position":"Использовать системные настройки для позиции","ra_Used system settings":"Системные настройки","ra_User files":"Файлы пользователя",ra_ValidTill:yNe,ra_Value:bNe,ra_Version:wNe,"ra_View file":"Посмотреть файл","ra_View: %s":"Просмотр: %s",ra_Wednesday:SNe,ra_Width:xNe,ra_Yes:CNe,"ra_You can export all objects or just the selected branch.":"Вы можете экспортировать все объекты или только выбранную ветвь.","ra_You can filter entries by entering here some text":"Вы можете отфильтровать записи, введя здесь текст",ra___different__:TNe,ra_aclEveryone_read_object:kNe,ra_aclEveryone_read_state:ENe,ra_aclEveryone_write_object:DNe,ra_aclEveryone_write_state:MNe,ra_aclGroup_read_object:ONe,ra_aclGroup_read_state:$Ne,ra_aclGroup_write_object:ANe,ra_aclGroup_write_state:PNe,ra_aclOwner_read_object:INe,ra_aclOwner_read_state:RNe,ra_aclOwner_write_object:LNe,ra_aclOwner_write_state:NNe,ra_buttons:FNe,ra_changedFrom:zNe,ra_close:BNe,ra_create_boolean_state:jNe,ra_create_channel:WNe,ra_create_device:HNe,ra_create_number_state:UNe,ra_create_state:YNe,ra_create_string_state:VNe,ra_daysShortText:GNe,ra_dow_Fr:qNe,ra_dow_Mo:XNe,ra_dow_Sa:JNe,ra_dow_Su:ZNe,ra_dow_Th:KNe,ra_dow_Tu:QNe,ra_dow_We:e5e,ra_expertMode:t5e,ra_fileType_all:r5e,ra_fileType_audio:n5e,ra_fileType_code:a5e,ra_fileType_images:i5e,ra_fileType_txt:o5e,ra_fileType_video:s5e,"ra_fileType_video,":"видео",ra_filter_customs:l5e,ra_filter_customs_without:c5e,ra_filter_func:u5e,ra_filter_id:d5e,ra_filter_name:f5e,ra_filter_role:h5e,ra_filter_room:p5e,ra_filter_type:m5e,"ra_import data from %s file":"Импортировать данные из файла %s",ra_invalidConfig:v5e,ra_lastChange:g5e,ra_locally:_5e,ra_month_Apr:y5e,ra_month_Aug:b5e,ra_month_Dec:w5e,ra_month_Feb:S5e,ra_month_Jan:x5e,ra_month_Jul:C5e,ra_month_Jun:T5e,ra_month_Mai:k5e,ra_month_Mar:E5e,ra_month_Nov:D5e,ra_month_Oct:M5e,ra_month_Sep:O5e,ra_months_Apr:$5e,ra_months_Aug:A5e,ra_months_Dec:P5e,ra_months_Feb:I5e,ra_months_Jan:R5e,ra_months_Jul:L5e,ra_months_Jun:N5e,ra_months_Mai:F5e,ra_months_Mar:z5e,ra_months_Nov:B5e,ra_months_Oct:j5e,ra_months_Sep:W5e,ra_none:H5e,ra_object_changed_by:U5e,ra_object_changed_by_user:Y5e,ra_otherConfig:V5e,ra_qualityCode:G5e,ra_repeat:q5e,ra_select_folder_hint:X5e,ra_state_changed_by:J5e,ra_state_changed_from:Z5e,ra_timestamp:K5e,ra_tooltip_ack:Q5e,ra_tooltip_comment:e3e,ra_tooltip_copyState:t3e,ra_tooltip_customConfig:r3e,ra_tooltip_deleteObject:n3e,ra_tooltip_editObject:a3e,ra_tooltip_editState:i3e,ra_tooltip_from:o3e,ra_tooltip_lc:s3e,ra_tooltip_quality:l3e,ra_tooltip_ts:c3e,ra_tooltip_user:u3e,ra_tooltip_value:d3e,"ra_use seconds":"секунды",ra_val:f3e,"ra_via internet":"через интернет",ra_warning_every_minute:h3e,ra_warning_every_second:p3e,sc_cron:m3e,sc_date:v3e,sc_dates:g3e,sc_dow:_3e,sc_dows:y3e,sc_every:b3e,sc_everyN_dates:w3e,sc_everyN_dow:S3e,sc_everyN_dows:x3e,sc_everyN_hours:C3e,sc_everyN_minutes:T3e,sc_everyN_months:k3e,sc_everyN_seconds:E3e,sc_every_dates:D3e,sc_every_dow:M3e,sc_every_dows:O3e,sc_every_hours:$3e,sc_every_minutes:A3e,sc_every_months:P3e,sc_every_seconds:I3e,sc_from:R3e,sc_hours:L3e,sc_interval:N3e,sc_intervalBetween:F3e,sc_invalid_cron:z3e,sc_minutes:B3e,sc_months:j3e,sc_once:W3e,sc_period:H3e,sc_seconds:U3e,sc_simple:Y3e,sc_specific:V3e,sc_specific_dates:G3e,sc_specific_dow:q3e,sc_specific_dows:X3e,sc_specific_hours:J3e,sc_specific_minutes:Z3e,sc_specific_months:K3e,sc_specific_seconds:Q3e,sc_time:e4e,sc_to:t4e,sc_wizard:r4e,sch_all:n4e,sch_astroDay:a4e,sch_astroNight:i4e,sch_astro_dawn:o4e,sch_astro_dusk:s4e,sch_astro_goldenHour:l4e,sch_astro_goldenHourEnd:c4e,sch_astro_nadir:u4e,sch_astro_nauticalDawn:d4e,sch_astro_nauticalDusk:f4e,sch_astro_night:h4e,sch_astro_nightEnd:p4e,sch_astro_solarNoon:m4e,sch_astro_sunrise:v4e,sch_astro_sunriseEnd:g4e,sch_astro_sunset:_4e,sch_astro_sunsetStart:y4e,sch_at:b4e,sch_desc_atTime:w4e,sch_desc_everyDay:S4e,sch_desc_everyHour:x4e,sch_desc_everyMinute:C4e,sch_desc_everyMonth:T4e,sch_desc_everyNDay:k4e,sch_desc_everyNHours:E4e,sch_desc_everyNMinutes:D4e,sch_desc_everyNMonths:M4e,sch_desc_everyNWeeks:O4e,sch_desc_everyNYears:$4e,sch_desc_everyWeek:A4e,sch_desc_everyYear:P4e,sch_desc_intervalFromTo:I4e,sch_desc_never:R4e,sch_desc_onDate:L4e,sch_desc_onDates:N4e,sch_desc_onEveryDate:F4e,sch_desc_onMonth:z4e,sch_desc_onMonths:B4e,sch_desc_onWeekday:j4e,sch_desc_onWeekdays:W4e,sch_desc_onWeekends:H4e,sch_desc_onWorkdays:U4e,sch_desc_onceInPast:Y4e,sch_desc_once_on:V4e,sch_desc_validFrom:G4e,sch_desc_validFromTo:q4e,sch_desc_validTo:X4e,sch_every:J4e,sch_exactTime:Z4e,sch_from:K4e,sch_fromTo:Q4e,sch_intervalTime:eFe,sch_invert:tFe,sch_no_one:rFe,sch_on:nFe,sch_period:aFe,sch_periodDaily:iFe,sch_periodDates:oFe,sch_periodDay:sFe,sch_periodEvery:lFe,sch_periodEveryDay:cFe,sch_periodEveryMonth:uFe,sch_periodEveryWeek:dFe,sch_periodEveryYear:fFe,sch_periodHours:hFe,sch_periodMinutes:pFe,sch_periodMonth:mFe,sch_periodMonthly:vFe,sch_periodOnce:gFe,sch_periodSpecificMonths:_Fe,sch_periodWeek:yFe,sch_periodWeekdays:bFe,sch_periodWeekend:wFe,sch_periodWeekly:SFe,sch_periodWorkdays:xFe,sch_periodYear:CFe,sch_periodYearly:TFe,sch_specificTime:kFe,sch_time:EFe,sch_to:DFe,sch_valid:MFe,sch_validFrom:OFe,sch_validTo:$Fe,sch_wholeDay:AFe,sch_yearEveryMonth:PFe},RFe="Acrescentar",LFe="Cancelar",NFe="Categorias",FFe="Verificado",zFe="Excluir",BFe="Perto",jFe="Comercial",WFe="Configurar",HFe="Conectado",UFe="Copiado",YFe="Crio",VFe="Colheita",GFe="Delete",qFe="Excluir",XFe="Descartar",JFe="Desconectado",ZFe="Erro",KFe="Filtro",QFe="Sexta-feira",eze="Latitude",tze="Longitude",rze="mensagem",nze="Segunda-feira",aze="Nome",ize="Objetos",oze="Está bem",sze="produtos",lze="Repita",cze="Substituir",uze="Raiz",dze="Sábado",fze="Salve ",hze="Selecionado",pze="Estados",mze="Domingo",vze="Quinta-feira",gze="Timestamp",_ze="Terça-feira",yze="Atualizar",bze="Válida até",wze="Valor",Sze="Versão",xze="Quarta-feira",Cze="Largura",Tze="Sim",kze="diferente",Eze="Todos podem ler objetos",Dze="Todos podem ler o estado",Mze="Todos podem escrever objetos",Oze="Todos podem escrever o estado",$ze="O grupo pode ler o objeto",Aze="O grupo pode ler o estado",Pze="O grupo pode escrever o objeto",Ize="O grupo pode escrever o estado",Rze="O proprietário pode ler o objeto",Lze="O proprietário pode ler o estado",Nze="O proprietário pode escrever o objeto",Fze="O proprietário pode escrever o estado",zze="Botões",Bze="Mudou de",jze="fechar",Wze="Criar estado booleano",Hze="Criar canal",Uze="Criar dispositivo",Yze="Criar estado numérico",Vze="Criar estado",Gze="Criar estado de string",qze="d.",Xze="Fr",Jze="Mo",Zze="Sa",Kze="Su",Qze="º",e6e="Tu",t6e="Nós",r6e="Modo especialista",n6e="Todos os arquivos",a6e="áudio",i6e="Código/JSON",o6e="Imagens",s6e="Texto",l6e="Vídeo",c6e="Configurações",u6e="sem",d6e="Função",f6e="ID",h6e="Nome",p6e="Papel (Função)",m6e="Quarto",v6e="Tipo",g6e="Configurações inválidas",_6e="Última mudança",y6e="localmente",b6e="abril",w6e="agosto",S6e="dezembro",x6e="fevereiro",C6e="janeiro",T6e="julho",k6e="junho",E6e="Mai",D6e="março",M6e="novembro",O6e="outubro",$6e="setembro",A6e="abril",P6e="agosto",I6e="dezembro",R6e="fevereiro",L6e="janeiro",N6e="julho",F6e="junho",z6e="Mai",B6e="março",j6e="novembro",W6e="outubro",H6e="setembro",U6e="Nenhum",Y6e="Objeto alterado por",V6e="Objeto alterado pela última vez em",G6e="Configurações de outro adaptador %s",q6e="Código de qualidade",X6e="repetir",J6e='Para selecionar a pasta, basta segurar a tecla "shift" clicando na pasta.',Z6e="Estado alterado por",K6e="Objeto alterado de",Q6e="Timestamp",e8e="Confirmado",t8e="Comente",r8e="Copie o valor do estado",n8e="Opções customizadas",a8e="Excluir objeto",i8e="Editar objeto",o8e="Edite o valor do estado",s8e="De",l8e="Última alteração",c8e="Qualidade",u8e="Timestamp",d8e="Usuário",f8e="Valor",h8e="Valor",p8e="Aviso: O trabalho CRON será executado a cada minuto durante o período especificado!",m8e="Aviso: O trabalho CRON será executado a cada segundo durante o período especificado!",v8e="CRON",g8e="Data",_8e="Dias",y8e="Dia",b8e="Dia da semana",w8e="todos",S8e="a cada N dias",x8e="todo enésimo dia da semana",C8e="todos os N dias da semana",T8e="a cada N horas",k8e="a cada N minutos",E8e="a cada N meses",D8e="a cada N segundos",M8e="todo dia",O8e="todos os dias da semana",$8e="todos os dias da semana",A8e="toda hora",P8e="todo minuto",I8e="todo mês",R8e="todo segundo",L8e="de",N8e="horas",F8e="intervalo",z8e="intervalo entre",B8e="CRON inválido",j8e="minutos",W8e="meses",H8e="uma vez",U8e="período",Y8e="segundos",V8e="simples",G8e="tempo específico",q8e="datas específicas",X8e="dia(s) específico(s) da semana",J8e="dia específico de semanas",Z8e="horas específicas",K8e="minutos específicos",Q8e="meses específicos",eBe="segundos específicos",tBe="tempo",rBe="para",nBe="assistente",aBe="tudo",iBe="dia astral",oBe="noite astral",sBe="amanhecer",lBe="anoitecer",cBe="hora dourada",uBe="Fim da hora dourada",dBe="nadir",fBe="Amanhecer náutico",hBe="Anoitecer náutico",pBe="noite",mBe="fim da noite",vBe="meio-dia solar",gBe="nascer do sol",_Be="fim do nascer do sol",yBe="pôr do sol",bBe="início do pôr do sol",wBe="às",SBe="em %s",xBe="todo dia",CBe="toda hora",TBe="todo minuto",kBe="todo mês",EBe="a cada %s dias",DBe="a cada %s horas",MBe="a cada %s minutos",OBe="a cada %s meses",$Be="a cada %s semanas",ABe="a cada %s anos",PBe="toda semana",IBe="todo ano",RBe="de %s para %s",LBe="nunca",NBe="em %s de %s",FBe="em %s e %s de",zBe="em toda data de",BBe="%s",jBe="%s e %s",WBe="em %s",HBe="em %s e %s",UBe="nos fins de semana",YBe="em dias úteis",VBe="não será mais executado, porque o começo está no passado",GBe="em %s",qBe="de %s",XBe="Executar de até",JBe="até %s",ZBe="cada",KBe="tempo específico",QBe="de",eje="de a´t",tje="tempo de intervalo",rje="invertido",nje="nenhum",aje="em",ije="período",oje="diariamente",sje="datas",lje="dia",cje="todos",uje="todo dia",dje="todo mês",fje="toda semana",hje="todo ano",pje="horas",mje="minutos",vje="mês",gje="por mês",_je="uma vez",yje="meses específicos",bje="semana",wje="dias úteis",Sje="final de semana",xje="semanal",Cje="dias úteis",Tje="ano",kje="anual",Eje="tempo específico",Dje="tempo",Mje="para",Oje="válido",$je="de",Aje="para",Pje="dia inteiro",Ije="todo mês",Rje={"ra_%s links from aliases":"%s links de aliases","ra_%s object(s) processed":"%s objeto(s) processado(s)","ra_%s was imported":"%s foi importado","ra_Accept license":"Aceitar licença","ra_Add new child object to selected parent":"Adicionar novo objeto filho ao pai selecionado","ra_Add objects tree from JSON file":"Adicionar árvore de objetos do arquivo JSON","ra_Add row":"Adicionar linha","ra_Advanced options":"Opções avançadas","ra_All items are filtered out":"Todos os itens são filtrados","ra_All objects":"Todos os objetos",ra_Append:RFe,"ra_Append %s entries or replace existing?":"Acrescentar %s entradas ou substituir as existentes?","ra_Append or replace?":"Acrescentar ou substituir?","ra_Are you sure?":"Você tem certeza?","ra_Auto (no custom columns)":"Auto (sem colunas personalizadas)","ra_Back to %s":"Voltar para %s","ra_Background image":"Imagem de fundo",ra_Cancel:LFe,"ra_Cannot add items with set filter":"Não é possível adicionar itens com filtro definido","ra_Cannot decode license":"Não é possível decodificar a licença","ra_Cannot determine position: System settings are empty and GPS detection is disabled in browser":"Não é possível determinar a posição: as configurações do sistema estão vazias e a detecção de GPS está desativada no navegador",'ra_Cannot find "%s"':'Não foi possível encontrar "%s"','ra_Cannot read "%s"':'Não é possível ler "%s"',"ra_Cannot read licenses: %s":"Não é possível ler licenças: %s","ra_Cannot retrieve options, as instance is offline":"Não é possível recuperar opções, pois a instância está off-line","ra_Cannot update attribute, because not found in the object":"Não é possível atualizar o atributo, porque não foi encontrado no objeto","ra_Cannot upload":"Não é possível fazer upload",ra_Categories:NFe,"ra_Chained certificate":"certificado encadeado","ra_Change color theme":"Alterar tema de cores","ra_Changed from":"Mudou de","ra_Channel → State":"Canal → Estado","ra_Check license":"Verifique a licença",ra_Checked:FFe,ra_Clear:zFe,"ra_Clear filter":"Filtro limpo","ra_Clear icon":"Ícone de limpeza","ra_Clone current row":"Clonar linha atual",ra_Close:BFe,"ra_Collapse all nodes":"Recolher todos os nós","ra_Collapse one step node":"Recolher um nível",ra_Commercial:jFe,ra_Configure:WFe,"ra_Configure visible columns":"Configurar colunas visíveis","ra_Confirm deletion of %s":"Confirme a exclusão de %s",ra_Connected:HFe,ra_Copied:UFe,"ra_Copied %s":'"%s" copiado',"ra_Copy content":"Copiar conteúdo",ra_Create:YFe,"ra_Create alias":"Criar alias","ra_Create folder":"Criar pasta","ra_Create new folder in %s":"Crie uma nova pasta em %s",ra_Crop:VFe,"ra_Define CRON...":"Defina CRON...","ra_Define functions":"Definir funções","ra_Define rooms":"Definir quartos","ra_Define schedule":"Definir cronograma","ra_Define schedule...":"Definir programação ...",ra_Del:GFe,ra_Delete:qFe,"ra_Delete (no confirm for 5 mins)":"Excluir (sem confirmação por 5 minutos)","ra_Delete current row":"Excluir linha atual","ra_Deselect all":"Desmarque todos","ra_Device → Channel → State":"Dispositivo → Canal → Estado",ra_Discard:XFe,ra_Disconnected:JFe,"ra_Do not export values of states":"Não exporte valores de estados","ra_Do not use let's encrypt":"Não use vamos criptografar","ra_Double click to reset table layout":"Clique duas vezes para redefinir o layout da tabela","ra_Drag 'n' drop some files here, or click to select files":"Arraste e solte alguns arquivos aqui ou clique para selecionar arquivos","ra_Drop file here":"Solte o arquivo aqui","ra_Drop the files here...":"Solte o arquivo aqui ...","ra_Duplicate name":"Nome duplicado","ra_Edit ACL":"Editar ACL","ra_Edit alias":"Editar alias","ra_Edit custom config":"Editar configuração personalizada","ra_Edit function":"Função de edição","ra_Edit object field":"Editar campo de objeto","ra_Edit role":"Editar papel","ra_Edit room":"Sala de edição","ra_Edit value":"Editar valor",ra_Error:ZFe,"ra_Expand all nodes":"Expanda todos os nós","ra_Expand one step node":"Expanda um nível","ra_Export data to %s file":"Exportar dados para o arquivo %s","ra_Failed to open JSON File":"Falha ao abrir arquivo JSON","ra_Fallback custom certificates":"Certificados personalizados alternativos","ra_File is too big. Max %sk allowed. Try use SVG.":"O arquivo é muito grande. Max %sk permitido. Tente usar SVG.",ra_Filter:KFe,"ra_Filter files":"Filtrar arquivos","ra_Folder name":"Nome da pasta","ra_Folder → Channel → State":"Pasta → Canal → Estado","ra_Folder → Device → Channel → State":"Pasta → Dispositivo → Canal → Estado","ra_Folder → State":"Pasta → Estado","ra_Folders always first":"Pastas sempre primeiro",ra_Friday:QFe,"ra_Good luck":"Boa sorte","ra_Hide empty folders":"Esconder pastas vazias","ra_If no file will be created in the folder, it will disappear after the browser closed":"Se nenhum arquivo for criado na pasta, ele desaparecerá depois que o navegador for fechado","ra_Import data from %s file":"Importar dados do arquivo %s","ra_Import from %s":"Importar de %s","ra_Instance %s is alive":"O %s da instância está ativo","ra_Instance %s is not alive":"O %s da instância não está ativo","ra_Instance is not alive":"A instância não está ativa","ra_Invalid CRON":"CRON inválido","ra_Invalid JSON":"JSON inválido","ra_Invalid answer from server":"Resposta inválida do servidor","ra_Invalid parent folder!":"Pasta pai inválida!","ra_Invalid structure":"Estrutura inválida","ra_JSON editor":"Editor JSON","ra_Last change":"Última mudança",ra_Latitude:eze,"ra_License %s":"Licença %s","ra_License agreement":"Contrato de licença","ra_License does not exist":"A licença não existe","ra_License expired on %s":"A licença expirou em %s",'ra_License for other product "%s"':'Licença para outro produto "%s"',"ra_License is for version %s, but required version is %s.":"A licença é para a versão %s, mas a versão necessária é %s.","ra_License must be converted":"A licença deve ser convertida para uma versão mais recente. Você pode fazê-lo em seu perfil iobroker.net.","ra_License not found in license manager. Do you want to read licenses from iobroker.net?":"Licença não encontrada no gerenciador de licenças. Deseja atualizar as licenças do iobroker.net?","ra_Listen on all IPs":"Ouça em todos os IPs","ra_Load configuration from file":"Carregar configuração do arquivo",ra_Longitude:tze,'ra_May not trigger "updateLicenses"':'Pode não acionar "updateLicenses"',ra_Message:rze,ra_Monday:nze,"ra_Move down":"Mover para baixo","ra_Move up":"Subir",ra_Name:aze,"ra_No data found in file":"Nenhum dado encontrado no arquivo","ra_No one license found in license manager":"Nenhuma licença encontrada no gerenciador de licenças","ra_No response from the backend":"Nenhuma resposta do backend",'ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".':'Os não especialistas podem criar novos objetos apenas em "0_userdata.0" ou "alias.0".',"ra_Not a number":"Não é um número",ra_Objects:ize,ra_Ok:oze,"ra_On weekdays":"Nos dias úteis","ra_Only following structures of objects are available:":"Apenas as seguintes estruturas de objetos estão disponíveis:","ra_Only selected":"Apenas selecionado","ra_Owner group":"Grupo proprietário","ra_Owner user":"Usuário proprietário","ra_Passwords are not equal!":"As senhas não são iguais!","ra_Place your files here or click here to open the browse dialog":"Coloque seus arquivos aqui ou clique aqui para abrir a janela de navegação","ra_Please confirm":"Por favor confirme","ra_Please create license":"Crie uma licença","ra_Please enter the license":"Por favor, insira a licença","ra_Please select file...":"Selecione o arquivo...","ra_Please select object ID...":"Selecione o ID do objeto ...","ra_Port could be used by %s":"A porta pode ser usada por %s","ra_Port is already used by %s":"A porta já está sendo usada por %s","ra_Private certificate":"certificado privado",ra_Product:sze,"ra_Public certificate":"certificado público","ra_Quality code":"Qualidade","ra_Refresh tree":"Atualizar árvore","ra_Reload files":"Recarregar arquivos",ra_Repeat:lze,ra_Replace:cze,"ra_Request timed out":"Solicitação expirou","ra_Restrict to folder":"Restringir à pasta",ra_Root:uze,ra_Saturday:dze,ra_Save:fze,"ra_Save and close":"Salvar e fechar","ra_Save configuration to file":"Salvar configuração em arquivo","ra_Save objects tree as JSON file":"Salvar árvore de objetos como arquivo JSON","ra_Select all":"Selecionar tudo","ra_Select color":"Selecione a cor","ra_Select predefined icon":"Selecione o ícone predefinido","ra_Select type of export":"Selecione o tipo de exportação",ra_Selected:hze,"ra_Selected %s object(s)":"%s objeto(s) selecionado(s)","ra_Serial number (UUID)":"Número de série (UUID)",'ra_Serial number (UUID) "%s" in license is for other device.':'O número de série (UUID) "%s" na licença é para outro dispositivo.',"ra_Show all folders":"Mostrar todas as pastas","ra_Show lines between rows":"Mostrar linhas entre as linhas","ra_Show/Hide object descriptions":"Mostrar/ocultar descrições de objetos","ra_Show/hide filter input":"Mostrar/ocultar entrada de filtro","ra_Some data are not stored. Discard?":"Alguns dados não são armazenados. Descartar?",ra_States:pze,"ra_Suitable license not found in license manager":"Licença adequada não encontrada no gerenciador de licenças",ra_Sunday:mze,"ra_Suppress question for next %s minutes":"Suprimir pergunta nos próximos %s minutos","ra_System language":"Idioma do sistema","ra_Take browser position":"Tomar posição do navegador","ra_Take position from system settings":"Tomar posição a partir das configurações do sistema",'ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").':'Os especialistas podem criar objetos em qualquer lugar, exceto no segundo nível (por exemplo, "vis.0" ou "javascript.0").',"ra_The page you are looking for was not found":"A página que você está procurando não foi encontrada","ra_The schedule will be executed every minute. Are you sure?":"O agendamento será executado a cada minuto. Tem certeza?","ra_The schedule will be executed every second. Are you sure?":"O agendamento será executado a cada segundo. Tem certeza?",ra_Thursday:vze,ra_Timestamp:gze,"ra_Toggle expert mode":"Alternar modo especialista","ra_Toggle the states view":"Alternar a visualização dos estados","ra_Toggle view mode":"Alternar modo de visualização","ra_Too big":"Muito grande","ra_Too small":"Muito pequeno","ra_Transparent dialog":"Diálogo transparente",ra_Tuesday:_ze,"ra_Unknown error":"Erro desconhecido","ra_Unknown error!":"Erro desconhecido!",ra_Update:yze,"ra_Upload file":"Subir arquivo","ra_Use all available let's encrypt certificates":"Use todos os certificados disponíveis vamos criptografar","ra_Use iobroker.acme adapter for letsencrypt certificates":"Use o adaptador iobroker.acme para certificados letsencrypt","ra_Use system settings for position":"Use as configurações do sistema para a posição","ra_Used system settings":"Configurações do sistema usadas","ra_User files":"Arquivos do usuário",ra_ValidTill:bze,ra_Value:wze,ra_Version:Sze,"ra_View file":"Visualizar arquivo","ra_View: %s":"Visualizar: %s",ra_Wednesday:xze,ra_Width:Cze,ra_Yes:Tze,"ra_You can export all objects or just the selected branch.":"Você pode exportar todos os objetos ou apenas a ramificação selecionada.","ra_You can filter entries by entering here some text":"Você pode filtrar as entradas digitando aqui algum texto",ra___different__:kze,ra_aclEveryone_read_object:Eze,ra_aclEveryone_read_state:Dze,ra_aclEveryone_write_object:Mze,ra_aclEveryone_write_state:Oze,ra_aclGroup_read_object:$ze,ra_aclGroup_read_state:Aze,ra_aclGroup_write_object:Pze,ra_aclGroup_write_state:Ize,ra_aclOwner_read_object:Rze,ra_aclOwner_read_state:Lze,ra_aclOwner_write_object:Nze,ra_aclOwner_write_state:Fze,ra_buttons:zze,ra_changedFrom:Bze,ra_close:jze,ra_create_boolean_state:Wze,ra_create_channel:Hze,ra_create_device:Uze,ra_create_number_state:Yze,ra_create_state:Vze,ra_create_string_state:Gze,ra_daysShortText:qze,ra_dow_Fr:Xze,ra_dow_Mo:Jze,ra_dow_Sa:Zze,ra_dow_Su:Kze,ra_dow_Th:Qze,ra_dow_Tu:e6e,ra_dow_We:t6e,ra_expertMode:r6e,ra_fileType_all:n6e,ra_fileType_audio:a6e,ra_fileType_code:i6e,ra_fileType_images:o6e,ra_fileType_txt:s6e,ra_fileType_video:l6e,"ra_fileType_video,":"Vídeo",ra_filter_customs:c6e,ra_filter_customs_without:u6e,ra_filter_func:d6e,ra_filter_id:f6e,ra_filter_name:h6e,ra_filter_role:p6e,ra_filter_room:m6e,ra_filter_type:v6e,"ra_import data from %s file":"Importar dados do arquivo %s",ra_invalidConfig:g6e,ra_lastChange:_6e,ra_locally:y6e,ra_month_Apr:b6e,ra_month_Aug:w6e,ra_month_Dec:S6e,ra_month_Feb:x6e,ra_month_Jan:C6e,ra_month_Jul:T6e,ra_month_Jun:k6e,ra_month_Mai:E6e,ra_month_Mar:D6e,ra_month_Nov:M6e,ra_month_Oct:O6e,ra_month_Sep:$6e,ra_months_Apr:A6e,ra_months_Aug:P6e,ra_months_Dec:I6e,ra_months_Feb:R6e,ra_months_Jan:L6e,ra_months_Jul:N6e,ra_months_Jun:F6e,ra_months_Mai:z6e,ra_months_Mar:B6e,ra_months_Nov:j6e,ra_months_Oct:W6e,ra_months_Sep:H6e,ra_none:U6e,ra_object_changed_by:Y6e,ra_object_changed_by_user:V6e,ra_otherConfig:G6e,ra_qualityCode:q6e,ra_repeat:X6e,ra_select_folder_hint:J6e,ra_state_changed_by:Z6e,ra_state_changed_from:K6e,ra_timestamp:Q6e,ra_tooltip_ack:e8e,ra_tooltip_comment:t8e,ra_tooltip_copyState:r8e,ra_tooltip_customConfig:n8e,ra_tooltip_deleteObject:a8e,ra_tooltip_editObject:i8e,ra_tooltip_editState:o8e,ra_tooltip_from:s8e,ra_tooltip_lc:l8e,ra_tooltip_quality:c8e,ra_tooltip_ts:u8e,ra_tooltip_user:d8e,ra_tooltip_value:f8e,"ra_use seconds":"use segundos",ra_val:h8e,"ra_via internet":"via internet",ra_warning_every_minute:p8e,ra_warning_every_second:m8e,sc_cron:v8e,sc_date:g8e,sc_dates:_8e,sc_dow:y8e,sc_dows:b8e,sc_every:w8e,sc_everyN_dates:S8e,sc_everyN_dow:x8e,sc_everyN_dows:C8e,sc_everyN_hours:T8e,sc_everyN_minutes:k8e,sc_everyN_months:E8e,sc_everyN_seconds:D8e,sc_every_dates:M8e,sc_every_dow:O8e,sc_every_dows:$8e,sc_every_hours:A8e,sc_every_minutes:P8e,sc_every_months:I8e,sc_every_seconds:R8e,sc_from:L8e,sc_hours:N8e,sc_interval:F8e,sc_intervalBetween:z8e,sc_invalid_cron:B8e,sc_minutes:j8e,sc_months:W8e,sc_once:H8e,sc_period:U8e,sc_seconds:Y8e,sc_simple:V8e,sc_specific:G8e,sc_specific_dates:q8e,sc_specific_dow:X8e,sc_specific_dows:J8e,sc_specific_hours:Z8e,sc_specific_minutes:K8e,sc_specific_months:Q8e,sc_specific_seconds:eBe,sc_time:tBe,sc_to:rBe,sc_wizard:nBe,sch_all:aBe,sch_astroDay:iBe,sch_astroNight:oBe,sch_astro_dawn:sBe,sch_astro_dusk:lBe,sch_astro_goldenHour:cBe,sch_astro_goldenHourEnd:uBe,sch_astro_nadir:dBe,sch_astro_nauticalDawn:fBe,sch_astro_nauticalDusk:hBe,sch_astro_night:pBe,sch_astro_nightEnd:mBe,sch_astro_solarNoon:vBe,sch_astro_sunrise:gBe,sch_astro_sunriseEnd:_Be,sch_astro_sunset:yBe,sch_astro_sunsetStart:bBe,sch_at:wBe,sch_desc_atTime:SBe,sch_desc_everyDay:xBe,sch_desc_everyHour:CBe,sch_desc_everyMinute:TBe,sch_desc_everyMonth:kBe,sch_desc_everyNDay:EBe,sch_desc_everyNHours:DBe,sch_desc_everyNMinutes:MBe,sch_desc_everyNMonths:OBe,sch_desc_everyNWeeks:$Be,sch_desc_everyNYears:ABe,sch_desc_everyWeek:PBe,sch_desc_everyYear:IBe,sch_desc_intervalFromTo:RBe,sch_desc_never:LBe,sch_desc_onDate:NBe,sch_desc_onDates:FBe,sch_desc_onEveryDate:zBe,sch_desc_onMonth:BBe,sch_desc_onMonths:jBe,sch_desc_onWeekday:WBe,sch_desc_onWeekdays:HBe,sch_desc_onWeekends:UBe,sch_desc_onWorkdays:YBe,sch_desc_onceInPast:VBe,sch_desc_once_on:GBe,sch_desc_validFrom:qBe,sch_desc_validFromTo:XBe,sch_desc_validTo:JBe,sch_every:ZBe,sch_exactTime:KBe,sch_from:QBe,sch_fromTo:eje,sch_intervalTime:tje,sch_invert:rje,sch_no_one:nje,sch_on:aje,sch_period:ije,sch_periodDaily:oje,sch_periodDates:sje,sch_periodDay:lje,sch_periodEvery:cje,sch_periodEveryDay:uje,sch_periodEveryMonth:dje,sch_periodEveryWeek:fje,sch_periodEveryYear:hje,sch_periodHours:pje,sch_periodMinutes:mje,sch_periodMonth:vje,sch_periodMonthly:gje,sch_periodOnce:_je,sch_periodSpecificMonths:yje,sch_periodWeek:bje,sch_periodWeekdays:wje,sch_periodWeekend:Sje,sch_periodWeekly:xje,sch_periodWorkdays:Cje,sch_periodYear:Tje,sch_periodYearly:kje,sch_specificTime:Eje,sch_time:Dje,sch_to:Mje,sch_valid:Oje,sch_validFrom:$je,sch_validTo:Aje,sch_wholeDay:Pje,sch_yearEveryMonth:Ije},Lje="toevoegen",Nje="Annuleer",Fje="Categorieën",zje="Gecontroleerd",Bje="Verwijderen",jje="Dichtbij",Wje="Reclame",Hje="Configureren",Uje="Verbonden",Yje="Gekopieerd",Vje="Creëer",Gje="Bijsnijden",qje="Delete",Xje="Verwijderen",Jje="Weggooien",Zje="Verbinding verbroken",Kje="Fout",Qje="Filter",e9e="Vrijdag",t9e="Breedtegraad",r9e="Lengtegraad",n9e="Bericht",a9e="Maandag",i9e="Naam",o9e="Voorwerpen",s9e="OK",l9e="Product",c9e="Herhaling",u9e="Vervangen",d9e="Wortel",f9e="Zaterdag",h9e="Sparen",p9e="Geselecteerd",m9e="Staten",v9e="Zondag",g9e="Donderdag",_9e="Tijdstempel",y9e="Dinsdag",b9e="Bijwerken",w9e="Geldig tot",S9e="Waarde",x9e="Versie",C9e="Woensdag",T9e="Breedte",k9e="Ja",E9e="verschillend",D9e="Iedereen kan object lezen",M9e="Iedereen kan staat lezen",O9e="Iedereen kan object schrijven",$9e="Iedereen kan staat schrijven",A9e="Groep kan object lezen",P9e="Groep kan status lezen",I9e="Groep kan object schrijven",R9e="Groep kan staat schrijven",L9e="Eigenaar kan object lezen",N9e="Eigenaar kan staat lezen",F9e="Eigenaar kan object schrijven",z9e="Eigenaar kan staat schrijven",B9e="Toetsen",j9e="Veranderd van",W9e="dichtbij",H9e="Creëer een Booleaanse status",U9e="Kanaal maken",Y9e="Apparaat maken",V9e="Nummerstatus maken",G9e="Staat creëren",q9e="Tekenreeksstatus maken",X9e="d.",J9e="Fr",Z9e="Mo",K9e="Za",Q9e="Zo",e7e="Th",t7e="Tu",r7e="Wij",n7e="Expert modus",a7e="Alle bestanden",i7e="Audio",o7e="Code/JSON",s7e="Afbeeldingen",l7e="Tekst",c7e="Video",u7e="Instellingen",d7e="zonder",f7e="Functie",h7e="ID",p7e="Naam",m7e="Rol",v7e="Kamer",g7e="Type",_7e="Ongeldige instellingen",y7e="Laatste wijziging",b7e="plaatselijk",w7e="april",S7e="aug",x7e="dec",C7e="februari",T7e="jan",k7e="jul",E7e="juni",D7e="Mei",M7e="mrt",O7e="nov",$7e="Okt",A7e="sept",P7e="april",I7e="aug",R7e="dec",L7e="februari",N7e="jan",F7e="jul",z7e="juni",B7e="Mei",j7e="mrt",W7e="nov",H7e="Okt",U7e="sept",Y7e="geen",V7e="Object veranderd door",G7e="Object voor het laatst gewijzigd om",q7e="Instellingen van andere adapter %s",X7e="Kwaliteitscode",J7e="herhalen",Z7e='Om een map te selecteren, houdt u gewoon de toets "shift" ingedrukt door op de map te klikken.',K7e="Staat veranderd door",Q7e="Object veranderd van",eWe="Tijdstempel",tWe="Erkende vlag",rWe="Opmerking",nWe="Kopieer de statuswaarde",aWe="Aangepaste instellingen",iWe="Object verwijderen",oWe="Object bewerken",sWe="Bewerk de statuswaarde",lWe="Van",cWe="Laatst gewijzigd",uWe="Kwaliteit",dWe="Tijdstempel",fWe="Gebruiker",hWe="Waarde",pWe="Waarde",mWe="Waarschuwing: De CRON-taak wordt elke minuut uitgevoerd gedurende de opgegeven periode!",vWe="Waarschuwing: De CRON-taak wordt elke seconde uitgevoerd gedurende de opgegeven periode!",gWe="CRON",_We="Datum",yWe="data",bWe="Dag",wWe="Dag van de week",SWe="elk",xWe="elke N dagen",CWe="elke N-de dag van de week",TWe="elke N dag van de week",kWe="elke N uur",EWe="elke N minuten",DWe="elke N maanden",MWe="elke N seconden",OWe="elke dag",$We="elke dag van de week",AWe="elke dag van de week",PWe="elk uur",IWe="elke minuut",RWe="elke maand",LWe="elke seconde",NWe="Van",FWe="uren",zWe="Interval",BWe="Interval tussen",jWe="Ongeldige CRON",WWe="Notulen",HWe="maanden",UWe="Een keer",YWe="Periode",VWe="seconden",GWe="Gemakkelijk",qWe="Specifieke tijd",XWe="specifieke data",JWe="specifieke dag(en) van de week",ZWe="specifieke dag van weken",KWe="specifieke uren",QWe="specifieke minuten",eHe="specifieke maanden",tHe="specifieke seconden",rHe="Tijd",nHe="Naar",aHe="tovenaar",iHe="allemaal",oHe="Astro-dag",sHe="Astro-nacht",lHe="Dageraad",cHe="Schemer",uHe="gouden uur",dHe="Gouden uur einde",fHe="Nadir",hHe="Nautische dageraad",pHe="Nautische schemering",mHe="Nacht",vHe="Nacht einde",gHe="Zonne middag",_He="zonsopkomst",yHe="Sunrise einde",bHe="Zonsondergang",wHe="Zonsondergang start",SHe="Bij",xHe="op %s",CHe="elke dag",THe="elk uur",kHe="elke minuut",EHe="elke maand",DHe="elke %s dag",MHe="elke %s uur",OHe="elke %s minuten",$He="elke %s maanden",AHe="elke %s weken",PHe="elke %s jaar",IHe="elke week",RHe="elk jaar",LHe="van %s tot %s",NHe="nooit",FHe="op %s van %s",zHe="op %s en %s van",BHe="op elke datum van",jHe="%s",WHe="%s en %s",HHe="op %s",UHe="op %s en %s",YHe="in het weekend",VHe="op werkdagen",GHe="zal niet meer worden uitgevoerd, omdat start verleden tijd is",qHe="op %s",XHe="van %s",JHe="Uitvoeren van tot",ZHe="tot %s",KHe="elk",QHe="Specifieke tijd",eUe="van",tUe="Van naar",rUe="Interval tijd",nUe="omkeren",aUe="geen",iUe="Aan",oUe="Periode",sUe="Dagelijks",lUe="data",cUe="Dag",uUe="elk",dUe="Elke dag",fUe="Elke maand",hUe="Elke week",pUe="Elk jaar",mUe="uren",vUe="Notulen",gUe="maand",_Ue="Maandelijks",yUe="Een keer",bUe="Specifieke maanden",wUe="Week",SUe="Doordeweekse dagen",xUe="Weekend",CUe="Wekelijks",TUe="werkdagen",kUe="Jaar",EUe="jaar-",DUe="Specifieke tijd",MUe="Tijd",OUe="naar",$Ue="Geldig",AUe="van",PUe="naar",IUe="Hele dag",RUe="elke maand",LUe={"ra_%s links from aliases":"%s links van aliassen","ra_%s object(s) processed":"%s object(en) verwerkt","ra_%s was imported":"%s is geïmporteerd","ra_Accept license":"Accepteer licentie","ra_Add new child object to selected parent":"Voeg een nieuw kindobject toe aan het geselecteerde bovenliggende object","ra_Add objects tree from JSON file":"Objectenboom toevoegen vanuit JSON-bestand","ra_Add row":"Voeg een rij toe","ra_Advanced options":"Geavanceerde mogelijkheden","ra_All items are filtered out":"Alle items zijn uitgefilterd","ra_All objects":"Alle objecten",ra_Append:Lje,"ra_Append %s entries or replace existing?":"%s ingangen toevoegen of bestaande vervangen?","ra_Append or replace?":"Toevoegen of vervangen?","ra_Are you sure?":"Weet je het zeker?","ra_Auto (no custom columns)":"Auto (geen aangepaste kolommen)","ra_Back to %s":"Terug naar %s","ra_Background image":"Achtergrond afbeelding",ra_Cancel:Nje,"ra_Cannot add items with set filter":"Kan geen items toevoegen met ingestelde filter","ra_Cannot decode license":"Kan licentie niet decoderen","ra_Cannot determine position: System settings are empty and GPS detection is disabled in browser":"Kan positie niet bepalen: systeeminstellingen zijn leeg en GPS-detectie is uitgeschakeld in browser",'ra_Cannot find "%s"':'Kan "%s" niet vinden','ra_Cannot read "%s"':'Kan "%s" niet lezen',"ra_Cannot read licenses: %s":"Kan licenties niet lezen: %s","ra_Cannot retrieve options, as instance is offline":"Kan opties niet ophalen, omdat instantie offline is","ra_Cannot update attribute, because not found in the object":"Kan kenmerk niet bijwerken, omdat het niet in het object is gevonden","ra_Cannot upload":"Kan niet uploaden",ra_Categories:Fje,"ra_Chained certificate":"Geketend certificaat","ra_Change color theme":"Kleurthema wijzigen","ra_Changed from":"Veranderd van","ra_Channel → State":"Kanaal → Staat","ra_Check license":"Licentie controleren",ra_Checked:zje,ra_Clear:Bje,"ra_Clear filter":"Filter wissen","ra_Clear icon":"Pictogram wissen","ra_Clone current row":"Kloon de huidige rij",ra_Close:jje,"ra_Collapse all nodes":"Vouw alle knooppunten samen","ra_Collapse one step node":"Eén niveau samenvouwen",ra_Commercial:Wje,ra_Configure:Hje,"ra_Configure visible columns":"Configureer zichtbare kolommen","ra_Confirm deletion of %s":"Bevestig het verwijderen van %s",ra_Connected:Uje,ra_Copied:Yje,"ra_Copied %s":'"%s" gekopieerd',"ra_Copy content":"Inhoud kopiëren",ra_Create:Vje,"ra_Create alias":"Alias maken","ra_Create folder":"Map aanmaken","ra_Create new folder in %s":"Maak een nieuwe map in %s",ra_Crop:Gje,"ra_Define CRON...":"Definieer CRON...","ra_Define functions":"Definieer functies","ra_Define rooms":"Definieer kamers","ra_Define schedule":"Definieer schema","ra_Define schedule...":"Schema definiëren ...",ra_Del:qje,ra_Delete:Xje,"ra_Delete (no confirm for 5 mins)":"Verwijderen (geen bevestiging gedurende 5 minuten)","ra_Delete current row":"Huidige rij verwijderen","ra_Deselect all":"Deselecteer alles","ra_Device → Channel → State":"Apparaat → Kanaal → Staat",ra_Discard:Jje,ra_Disconnected:Zje,"ra_Do not export values of states":"Exporteer geen waarden van staten","ra_Do not use let's encrypt":"Gebruik geen let's encrypt","ra_Double click to reset table layout":"Dubbelklik om de tafelindeling te resetten","ra_Drag 'n' drop some files here, or click to select files":"Sleep enkele bestanden hierheen, of klik om bestanden te selecteren","ra_Drop file here":"Zet het bestand hier neer","ra_Drop the files here...":"Zet het bestand hier neer...","ra_Duplicate name":"Dubbele naam","ra_Edit ACL":"ACL bewerken","ra_Edit alias":"Alias bewerken","ra_Edit custom config":"Bewerk aangepaste config","ra_Edit function":"Bewerkingsfunctie","ra_Edit object field":"Bewerk objectveld","ra_Edit role":"Rol bewerken","ra_Edit room":"Kamer bewerken","ra_Edit value":"Waarde bewerken",ra_Error:Kje,"ra_Expand all nodes":"Vouw alle knooppunten uit","ra_Expand one step node":"Vouw een niveau uit","ra_Export data to %s file":"Exporteer gegevens naar %s bestand","ra_Failed to open JSON File":"JSON-bestand kan niet worden geopend","ra_Fallback custom certificates":"Fallback aangepaste certificaten","ra_File is too big. Max %sk allowed. Try use SVG.":"Bestand is te groot. Max. %sk toegestaan. Probeer SVG te gebruiken.",ra_Filter:Qje,"ra_Filter files":"Bestanden filteren","ra_Folder name":"Naam van de map","ra_Folder → Channel → State":"Map → Kanaal → Staat","ra_Folder → Device → Channel → State":"Map → Apparaat → Kanaal → Staat","ra_Folder → State":"Map → Staat","ra_Folders always first":"Mappen altijd eerst",ra_Friday:e9e,"ra_Good luck":"Veel geluk","ra_Hide empty folders":"Verberg lege mappen","ra_If no file will be created in the folder, it will disappear after the browser closed":"Als er geen bestand in de map wordt gemaakt, verdwijnt het nadat de browser is gesloten","ra_Import data from %s file":"Importeer gegevens uit %s bestand","ra_Import from %s":"Importeren uit %s","ra_Instance %s is alive":"Instantie %s leeft","ra_Instance %s is not alive":"Instantie %s is niet actief","ra_Instance is not alive":"Instantie leeft niet","ra_Invalid CRON":"Ongeldige CRON","ra_Invalid JSON":"Ongeldige JSON","ra_Invalid answer from server":"Ongeldig antwoord van de server","ra_Invalid parent folder!":"Ongeldige bovenliggende map!","ra_Invalid structure":"Ongeldige structuur","ra_JSON editor":"JSON-editor","ra_Last change":"Laatste wijziging",ra_Latitude:t9e,"ra_License %s":"Licentie %s","ra_License agreement":"Licentieovereenkomst","ra_License does not exist":"Licentie bestaat niet","ra_License expired on %s":"Licentie verlopen op %s",'ra_License for other product "%s"':'Licentie voor ander product "%s"',"ra_License is for version %s, but required version is %s.":"Licentie is voor versie %s, maar vereiste versie is %s.","ra_License must be converted":"Licentie moet worden omgezet naar nieuwere versie. U kunt dit doen in uw iobroker.net-profiel.","ra_License not found in license manager. Do you want to read licenses from iobroker.net?":"Licentie niet gevonden in licentiebeheer. Wilt u licenties van iobroker.net bijwerken?","ra_Listen on all IPs":"Luister op alle IP's","ra_Load configuration from file":"Laad configuratie uit bestand",ra_Longitude:r9e,'ra_May not trigger "updateLicenses"':'Activeert mogelijk niet "updateLicenses"',ra_Message:n9e,ra_Monday:a9e,"ra_Move down":"Naar beneden verplaatsen","ra_Move up":"Omhoog gaan",ra_Name:i9e,"ra_No data found in file":"Geen gegevens gevonden in bestand","ra_No one license found in license manager":"Geen enkele licentie gevonden in licentiebeheer","ra_No response from the backend":"Geen reactie van de backend",'ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".':'Niet-experts mogen alleen nieuwe objecten maken in "0_userdata.0" of "alias.0".',"ra_Not a number":"Geen nummer",ra_Objects:o9e,ra_Ok:s9e,"ra_On weekdays":"Op weekdagen","ra_Only following structures of objects are available:":"Alleen de volgende structuren van objecten zijn beschikbaar:","ra_Only selected":"Alleen geselecteerd","ra_Owner group":"Eigenaarsgroep","ra_Owner user":"Eigenaar gebruiker","ra_Passwords are not equal!":"Wachtwoorden zijn niet gelijk!","ra_Place your files here or click here to open the browse dialog":"Plaats uw bestanden hier of klik hier om het bladervenster te openen","ra_Please confirm":"Bevestig alstublieft","ra_Please create license":"Maak een licentie aan","ra_Please enter the license":"Voer de licentie in","ra_Please select file...":"Selecteer bestand...","ra_Please select object ID...":"Selecteer object-ID ...","ra_Port could be used by %s":"Poort kan worden gebruikt door %s","ra_Port is already used by %s":"Poort wordt al gebruikt door %s","ra_Private certificate":"Privé certificaat",ra_Product:l9e,"ra_Public certificate":"Openbaar certificaat","ra_Quality code":"Kwaliteit","ra_Refresh tree":"Vernieuw de boom","ra_Reload files":"Laad bestanden opnieuw",ra_Repeat:c9e,ra_Replace:u9e,"ra_Request timed out":"Verzoek verlopen","ra_Restrict to folder":"Beperken tot map",ra_Root:d9e,ra_Saturday:f9e,ra_Save:h9e,"ra_Save and close":"Opslaan en afsluiten","ra_Save configuration to file":"Sla de configuratie op in een bestand","ra_Save objects tree as JSON file":"Sla de objectenboom op als JSON-bestand","ra_Select all":"Selecteer alles","ra_Select color":"Selecteer kleur","ra_Select predefined icon":"Selecteer voorgedefinieerd pictogram","ra_Select type of export":"Selecteer het type export",ra_Selected:p9e,"ra_Selected %s object(s)":"Geselecteerde %s object(en)","ra_Serial number (UUID)":"Serienummer (UUID)",'ra_Serial number (UUID) "%s" in license is for other device.':'Serienummer (UUID) "%s" in licentie is voor ander apparaat.',"ra_Show all folders":"Toon alle mappen","ra_Show lines between rows":"Toon lijnen tussen rijen","ra_Show/Hide object descriptions":"Toon/verberg objectbeschrijvingen","ra_Show/hide filter input":"Filterinvoer weergeven/verbergen","ra_Some data are not stored. Discard?":"Sommige gegevens worden niet opgeslagen. Weggooien?",ra_States:m9e,"ra_Suitable license not found in license manager":"Geschikte licentie niet gevonden in licentiebeheer",ra_Sunday:v9e,"ra_Suppress question for next %s minutes":"Vraag de volgende %s minuten onderdrukken","ra_System language":"Systeemtaal","ra_Take browser position":"Positie innemen vanuit de browser","ra_Take position from system settings":"Neem positie over van systeeminstellingen",'ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").':'De experts kunnen overal objecten maken, behalve vanaf het tweede niveau (bijv. "Vis.0" of "javascript.0").',"ra_The page you are looking for was not found":"De pagina die u zoekt is niet gevonden","ra_The schedule will be executed every minute. Are you sure?":"Het schema wordt elke minuut uitgevoerd. Weet u het zeker?","ra_The schedule will be executed every second. Are you sure?":"Het schema wordt elke seconde uitgevoerd. Weet je het zeker?",ra_Thursday:g9e,ra_Timestamp:_9e,"ra_Toggle expert mode":"Schakel tussen expertmodus","ra_Toggle the states view":"Schakel de statusweergave in of uit","ra_Toggle view mode":"Schakelen tussen weergavemodus","ra_Too big":"Te groot","ra_Too small":"Te klein","ra_Transparent dialog":"Transparant dialoogvenster",ra_Tuesday:y9e,"ra_Unknown error":"Onbekende fout","ra_Unknown error!":"Onbekende fout!",ra_Update:b9e,"ra_Upload file":"Upload bestand","ra_Use all available let's encrypt certificates":"Gebruik alle beschikbare Let's Encrypt-certificaten","ra_Use iobroker.acme adapter for letsencrypt certificates":"Gebruik de iobroker.acme-adapter voor letsencrypt-certificaten","ra_Use system settings for position":"Gebruik systeeminstellingen voor positie","ra_Used system settings":"Gebruikte systeeminstellingen","ra_User files":"Gebruikersbestanden",ra_ValidTill:w9e,ra_Value:S9e,ra_Version:x9e,"ra_View file":"Bestand bekijken","ra_View: %s":"Bekijk: %s",ra_Wednesday:C9e,ra_Width:T9e,ra_Yes:k9e,"ra_You can export all objects or just the selected branch.":"U kunt alle objecten of alleen de geselecteerde tak exporteren.","ra_You can filter entries by entering here some text":"U kunt items filteren door hier wat tekst in te voeren",ra___different__:E9e,ra_aclEveryone_read_object:D9e,ra_aclEveryone_read_state:M9e,ra_aclEveryone_write_object:O9e,ra_aclEveryone_write_state:$9e,ra_aclGroup_read_object:A9e,ra_aclGroup_read_state:P9e,ra_aclGroup_write_object:I9e,ra_aclGroup_write_state:R9e,ra_aclOwner_read_object:L9e,ra_aclOwner_read_state:N9e,ra_aclOwner_write_object:F9e,ra_aclOwner_write_state:z9e,ra_buttons:B9e,ra_changedFrom:j9e,ra_close:W9e,ra_create_boolean_state:H9e,ra_create_channel:U9e,ra_create_device:Y9e,ra_create_number_state:V9e,ra_create_state:G9e,ra_create_string_state:q9e,ra_daysShortText:X9e,ra_dow_Fr:J9e,ra_dow_Mo:Z9e,ra_dow_Sa:K9e,ra_dow_Su:Q9e,ra_dow_Th:e7e,ra_dow_Tu:t7e,ra_dow_We:r7e,ra_expertMode:n7e,ra_fileType_all:a7e,ra_fileType_audio:i7e,ra_fileType_code:o7e,ra_fileType_images:s7e,ra_fileType_txt:l7e,ra_fileType_video:c7e,"ra_fileType_video,":"Video",ra_filter_customs:u7e,ra_filter_customs_without:d7e,ra_filter_func:f7e,ra_filter_id:h7e,ra_filter_name:p7e,ra_filter_role:m7e,ra_filter_room:v7e,ra_filter_type:g7e,"ra_import data from %s file":"Importeer gegevens uit %s bestand",ra_invalidConfig:_7e,ra_lastChange:y7e,ra_locally:b7e,ra_month_Apr:w7e,ra_month_Aug:S7e,ra_month_Dec:x7e,ra_month_Feb:C7e,ra_month_Jan:T7e,ra_month_Jul:k7e,ra_month_Jun:E7e,ra_month_Mai:D7e,ra_month_Mar:M7e,ra_month_Nov:O7e,ra_month_Oct:$7e,ra_month_Sep:A7e,ra_months_Apr:P7e,ra_months_Aug:I7e,ra_months_Dec:R7e,ra_months_Feb:L7e,ra_months_Jan:N7e,ra_months_Jul:F7e,ra_months_Jun:z7e,ra_months_Mai:B7e,ra_months_Mar:j7e,ra_months_Nov:W7e,ra_months_Oct:H7e,ra_months_Sep:U7e,ra_none:Y7e,ra_object_changed_by:V7e,ra_object_changed_by_user:G7e,ra_otherConfig:q7e,ra_qualityCode:X7e,ra_repeat:J7e,ra_select_folder_hint:Z7e,ra_state_changed_by:K7e,ra_state_changed_from:Q7e,ra_timestamp:eWe,ra_tooltip_ack:tWe,ra_tooltip_comment:rWe,ra_tooltip_copyState:nWe,ra_tooltip_customConfig:aWe,ra_tooltip_deleteObject:iWe,ra_tooltip_editObject:oWe,ra_tooltip_editState:sWe,ra_tooltip_from:lWe,ra_tooltip_lc:cWe,ra_tooltip_quality:uWe,ra_tooltip_ts:dWe,ra_tooltip_user:fWe,ra_tooltip_value:hWe,"ra_use seconds":"gebruik seconden",ra_val:pWe,"ra_via internet":"via internet",ra_warning_every_minute:mWe,ra_warning_every_second:vWe,sc_cron:gWe,sc_date:_We,sc_dates:yWe,sc_dow:bWe,sc_dows:wWe,sc_every:SWe,sc_everyN_dates:xWe,sc_everyN_dow:CWe,sc_everyN_dows:TWe,sc_everyN_hours:kWe,sc_everyN_minutes:EWe,sc_everyN_months:DWe,sc_everyN_seconds:MWe,sc_every_dates:OWe,sc_every_dow:$We,sc_every_dows:AWe,sc_every_hours:PWe,sc_every_minutes:IWe,sc_every_months:RWe,sc_every_seconds:LWe,sc_from:NWe,sc_hours:FWe,sc_interval:zWe,sc_intervalBetween:BWe,sc_invalid_cron:jWe,sc_minutes:WWe,sc_months:HWe,sc_once:UWe,sc_period:YWe,sc_seconds:VWe,sc_simple:GWe,sc_specific:qWe,sc_specific_dates:XWe,sc_specific_dow:JWe,sc_specific_dows:ZWe,sc_specific_hours:KWe,sc_specific_minutes:QWe,sc_specific_months:eHe,sc_specific_seconds:tHe,sc_time:rHe,sc_to:nHe,sc_wizard:aHe,sch_all:iHe,sch_astroDay:oHe,sch_astroNight:sHe,sch_astro_dawn:lHe,sch_astro_dusk:cHe,sch_astro_goldenHour:uHe,sch_astro_goldenHourEnd:dHe,sch_astro_nadir:fHe,sch_astro_nauticalDawn:hHe,sch_astro_nauticalDusk:pHe,sch_astro_night:mHe,sch_astro_nightEnd:vHe,sch_astro_solarNoon:gHe,sch_astro_sunrise:_He,sch_astro_sunriseEnd:yHe,sch_astro_sunset:bHe,sch_astro_sunsetStart:wHe,sch_at:SHe,sch_desc_atTime:xHe,sch_desc_everyDay:CHe,sch_desc_everyHour:THe,sch_desc_everyMinute:kHe,sch_desc_everyMonth:EHe,sch_desc_everyNDay:DHe,sch_desc_everyNHours:MHe,sch_desc_everyNMinutes:OHe,sch_desc_everyNMonths:$He,sch_desc_everyNWeeks:AHe,sch_desc_everyNYears:PHe,sch_desc_everyWeek:IHe,sch_desc_everyYear:RHe,sch_desc_intervalFromTo:LHe,sch_desc_never:NHe,sch_desc_onDate:FHe,sch_desc_onDates:zHe,sch_desc_onEveryDate:BHe,sch_desc_onMonth:jHe,sch_desc_onMonths:WHe,sch_desc_onWeekday:HHe,sch_desc_onWeekdays:UHe,sch_desc_onWeekends:YHe,sch_desc_onWorkdays:VHe,sch_desc_onceInPast:GHe,sch_desc_once_on:qHe,sch_desc_validFrom:XHe,sch_desc_validFromTo:JHe,sch_desc_validTo:ZHe,sch_every:KHe,sch_exactTime:QHe,sch_from:eUe,sch_fromTo:tUe,sch_intervalTime:rUe,sch_invert:nUe,sch_no_one:aUe,sch_on:iUe,sch_period:oUe,sch_periodDaily:sUe,sch_periodDates:lUe,sch_periodDay:cUe,sch_periodEvery:uUe,sch_periodEveryDay:dUe,sch_periodEveryMonth:fUe,sch_periodEveryWeek:hUe,sch_periodEveryYear:pUe,sch_periodHours:mUe,sch_periodMinutes:vUe,sch_periodMonth:gUe,sch_periodMonthly:_Ue,sch_periodOnce:yUe,sch_periodSpecificMonths:bUe,sch_periodWeek:wUe,sch_periodWeekdays:SUe,sch_periodWeekend:xUe,sch_periodWeekly:CUe,sch_periodWorkdays:TUe,sch_periodYear:kUe,sch_periodYearly:EUe,sch_specificTime:DUe,sch_time:MUe,sch_to:OUe,sch_valid:$Ue,sch_validFrom:AUe,sch_validTo:PUe,sch_wholeDay:IUe,sch_yearEveryMonth:RUe},NUe="Ajouter",FUe="Annuler",zUe="Catégories",BUe="Vérifié",jUe="Effacer",WUe="Fermer",HUe="Commercial",UUe="Configurer",YUe="Lié",VUe="Copié",GUe="Créer",qUe="Recadrer",XUe="Delete",JUe="Supprimer",ZUe="Jeter",KUe="Débranché",QUe="Erreur",eYe="Filtre",tYe="Vendredi",rYe="Latitude",nYe="Longitude",aYe="Message",iYe="Lundi",oYe="Nom",sYe="Objets",lYe="D'accord",cYe="Produit",uYe="Répéter",dYe="Remplacer",fYe="Racine",hYe="Samedi",pYe="sauver",mYe="Choisi",vYe="États",gYe="Dimanche",_Ye="Jeudi",yYe="Horodatage",bYe="Mardi",wYe="Mise à jour",SYe="Valable jusqu'au",xYe="Valeur",CYe="Version",TYe="Mercredi",kYe="Largeur",EYe="Oui",DYe="différent",MYe="Tout le monde peut lire un objet",OYe="Tout le monde peut lire l'état",$Ye="Tout le monde peut écrire un objet",AYe="Tout le monde peut écrire l'état",PYe="Le groupe peut lire l'objet",IYe="Le groupe peut lire l'état",RYe="Le groupe peut écrire un objet",LYe="Le groupe peut écrire l'état",NYe="Le propriétaire peut lire l'objet",FYe="Le propriétaire peut lire l'état",zYe="Le propriétaire peut écrire un objet",BYe="Le propriétaire peut écrire l'état",jYe="Boutons",WYe="Changé de",HYe="Fermer",UYe="Créer un état booléen",YYe="Créer une chaîne",VYe="Créer un appareil",GYe="Créer un état de numéro",qYe="Créer un état",XYe="Créer un état de chaîne",JYe="j.",ZYe="Fr",KYe="Mo",QYe="Sa",eVe="Su",tVe="Th",rVe="Tu",nVe="Nous",aVe="Mode expert",iVe="Tous les fichiers",oVe="l'audio",sVe="Code/JSON",lVe="Images",cVe="Texte",uVe="Vidéo",dVe="Paramètres",fVe="sans",hVe="Une fonction",pVe="ID",mVe="Prénom",vVe="Rôle",gVe="Pièce",_Ve="Type",yVe="Paramètres invalides",bVe="Dernier changement",wVe="localement",SVe="Avr",xVe="Août",CVe="Déc",TVe="Fév",kVe="Jan",EVe="Juil",DVe="Juin",MVe="Mai",OVe="Mar",$Ve="Nov",AVe="Oct",PVe="Sep",IVe="Avr",RVe="Août",LVe="Déc",NVe="Fév",FVe="Jan",zVe="Juil",BVe="Juin",jVe="Mai",WVe="Mar",HVe="Nov",UVe="Oct",YVe="Sep",VVe="rien",GVe="Objet modifié par",qVe="Objet modifié pour la dernière fois à",XVe="Paramètres d'un autre adaptateur %s",JVe="Code de qualité",ZVe="répéter",KVe='Pour sélectionner un dossier, maintenez simplement la touche "shift" enfoncée en cliquant sur le dossier.',QVe="État modifié par",eGe="Objet changé de",tGe="Horodatage",rGe="Drapeau reconnu",nGe="Commentaire",aGe="Copiez la valeur d'état",iGe="Paramètres personnalisés",oGe="Supprimer un objet",sGe="Modifier l'objet",lGe="Modifier la valeur d'état",cGe="De",uGe="Dernière modification",dGe="Qualité",fGe="Horodatage",hGe="Utilisateur",pGe="Valeur",mGe="Valeur",vGe="Attention : la tâche CRON s’exécutera toutes les minutes pendant la période spécifiée !",gGe="Attention : la tâche CRON s’exécutera toutes les secondes pendant la période spécifiée !",_Ge="CRON",yGe="Date",bGe="Rendez-vous",wGe="Jour",SGe="Jour de la semaine",xGe="Chaque",CGe="tous les N jours",TGe="chaque Nième jour de la semaine",kGe="tous les N jours de la semaine",EGe="toutes les N heures",DGe="toutes les N minutes",MGe="tous les N mois",OGe="toutes les N secondes",$Ge="tous les jours",AGe="Chaque jour de la semaine",PGe="Chaque jour de la semaine",IGe="Toutes les heures",RGe="chaque minute",LGe="chaque mois",NGe="chaque seconde",FGe="De",zGe="Heures",BGe="Intervalle",jGe="Intervalle entre",WGe="CRON non valide",HGe="Minutes",UGe="mois",YGe="Une fois que",VGe="Période",GGe="Secondes",qGe="Facile",XGe="Temps spécifique",JGe="dates spécifiques",ZGe="jour(s) spécifique(s) de la semaine",KGe="jour spécifique de semaines",QGe="heures spécifiques",eqe="minutes spécifiques",tqe="mois spécifiques",rqe="secondes spécifiques",nqe="Temps",aqe="À",iqe="sorcier",oqe="tout",sqe="Journée astronomique",lqe="Nuit astronomique",cqe="Aube",uqe="Crépuscule",dqe="Heure d'or",fqe="Fin de l'heure d'or",hqe="Nadir",pqe="Aube nautique",mqe="Crépuscule nautique",vqe="Nuit",gqe="Fin de nuit",_qe="Midi solaire",yqe="lever du soleil",bqe="Fin du lever du soleil",wqe="Le coucher du soleil",Sqe="Coucher du soleil",xqe="à",Cqe="à %s",Tqe="tous les jours",kqe="Toutes les heures",Eqe="chaque minute",Dqe="chaque mois",Mqe="chaque %s jour",Oqe="chaque %s heures",$qe="toutes les %s minutes",Aqe="tous les %s mois",Pqe="chaque %s semaines",Iqe="tous les %s ans",Rqe="toutes les semaines",Lqe="chaque année",Nqe="de %s à %s",Fqe="jamais",zqe="sur %s de %s",Bqe="sur %s et %s de",jqe="à chaque date de",Wqe="%s",Hqe="%s et %s",Uqe="sur %s",Yqe="sur %s et %s",Vqe="les weekends",Gqe="les jours ouvrables",qqe="ne sera plus exécuté, car start est dans le passé",Xqe="sur %s",Jqe="de %s",Zqe="Exécuter de à",Kqe="à %s",Qqe="chaque",eXe="Temps spécifique",tXe="de",rXe="De à",nXe="Temps d'interval",aXe="inverser",iXe="aucun",oXe="sur",sXe="Période",lXe="du quotidien",cXe="Rendez-vous",uXe="journée",dXe="Chaque",fXe="Tous les jours",hXe="Chaque mois",pXe="Toutes les semaines",mXe="Chaque année",vXe="Heures",gXe="Minutes",_Xe="mois",yXe="Mensuel",bXe="Une fois que",wXe="Mois spécifiques",SXe="La semaine",xXe="Jours de la semaine",CXe="Weekend",TXe="Hebdomadaire",kXe="Jours ouvrables",EXe="Année",DXe="Annuel",MXe="Temps spécifique",OXe="Temps",$Xe="à",AXe="Valide",PXe="de",IXe="à",RXe="Toute la journée",LXe="chaque mois",NXe={"ra_%s links from aliases":"%s liens provenant d'alias","ra_%s object(s) processed":"%s objet(s) traité(s)","ra_%s was imported":"%s a été importé","ra_Accept license":"Accepter la licence","ra_Add new child object to selected parent":"Ajouter un nouvel objet enfant au parent sélectionné","ra_Add objects tree from JSON file":"Ajouter une arborescence d'objets à partir d'un fichier JSON","ra_Add row":"Ajouter une rangée","ra_Advanced options":"Options avancées","ra_All items are filtered out":"Tous les éléments sont filtrés","ra_All objects":"Tous les objets",ra_Append:NUe,"ra_Append %s entries or replace existing?":"Ajouter %s entrées ou remplacer l'existant ?","ra_Append or replace?":"Ajouter ou remplacer ?","ra_Are you sure?":"Êtes-vous sûr?","ra_Auto (no custom columns)":"Auto (pas de colonnes personnalisées)","ra_Back to %s":"Retour à %s","ra_Background image":"Image de fond",ra_Cancel:FUe,"ra_Cannot add items with set filter":"Impossible d'ajouter des éléments avec le filtre défini","ra_Cannot decode license":"Impossible de décoder la licence","ra_Cannot determine position: System settings are empty and GPS detection is disabled in browser":"Impossible de déterminer la position : les paramètres système sont vides et la détection GPS est désactivée dans le navigateur",'ra_Cannot find "%s"':'Impossible de trouver "%s"','ra_Cannot read "%s"':'Impossible de lire "%s"',"ra_Cannot read licenses: %s":"Impossible de lire les licences : %s","ra_Cannot retrieve options, as instance is offline":"Impossible de récupérer les options, car l'instance est hors ligne","ra_Cannot update attribute, because not found in the object":"Impossible de mettre à jour l'attribut, car il est introuvable dans l'objet","ra_Cannot upload":"Impossible de télécharger",ra_Categories:zUe,"ra_Chained certificate":"Certificat chaîné","ra_Change color theme":"Changer le thème de couleur","ra_Changed from":"Changé de","ra_Channel → State":"Canal → État","ra_Check license":"Vérifier la licence",ra_Checked:BUe,ra_Clear:jUe,"ra_Clear filter":"Effacer le filtre","ra_Clear icon":"Effacer l'icône","ra_Clone current row":"Cloner la ligne actuelle",ra_Close:WUe,"ra_Collapse all nodes":"Réduire tous les nœuds","ra_Collapse one step node":"Réduire d'un niveau",ra_Commercial:HUe,ra_Configure:UUe,"ra_Configure visible columns":"Configurer les colonnes visibles","ra_Confirm deletion of %s":"Confirmer la suppression de %s",ra_Connected:YUe,ra_Copied:VUe,"ra_Copied %s":'"%s" copié',"ra_Copy content":"Copier le contenu",ra_Create:GUe,"ra_Create alias":"Créer un alias","ra_Create folder":"Créer le dossier","ra_Create new folder in %s":"Créer un nouveau dossier dans %s",ra_Crop:qUe,"ra_Define CRON...":"Définir CRON...","ra_Define functions":"Définir des fonctions","ra_Define rooms":"Définir des pièces","ra_Define schedule":"Définir le calendrier","ra_Define schedule...":"Définir le calendrier ...",ra_Del:XUe,ra_Delete:JUe,"ra_Delete (no confirm for 5 mins)":"Supprimer (pas de confirmation pendant 5 minutes)","ra_Delete current row":"Supprimer la ligne actuelle","ra_Deselect all":"Tout déselectionner","ra_Device → Channel → State":"Appareil → Canal → État",ra_Discard:ZUe,ra_Disconnected:KUe,"ra_Do not export values of states":"Ne pas exporter les valeurs des états","ra_Do not use let's encrypt":"Ne pas utiliser let's encrypt","ra_Double click to reset table layout":"Double-cliquez pour réinitialiser la disposition du tableau","ra_Drag 'n' drop some files here, or click to select files":"Glissez-déposez des fichiers ici, ou cliquez pour sélectionner des fichiers","ra_Drop file here":"Déposer le fichier ici","ra_Drop the files here...":"Déposez le fichier ici...","ra_Duplicate name":"Nom en double","ra_Edit ACL":"Modifier la LCA","ra_Edit alias":"Modifier l'alias","ra_Edit custom config":"Modifier la configuration personnalisée","ra_Edit function":"Fonction d'édition","ra_Edit object field":"Modifier le champ d'objet","ra_Edit role":"Modifier le rôle","ra_Edit room":"Modifier la salle","ra_Edit value":"Modifier la valeur",ra_Error:QUe,"ra_Expand all nodes":"Développer tous les nœuds","ra_Expand one step node":"Développer un niveau","ra_Export data to %s file":"Exporter les données vers le fichier %s","ra_Failed to open JSON File":"Échec de l'ouverture du fichier JSON","ra_Fallback custom certificates":"Certificats personnalisés de secours","ra_File is too big. Max %sk allowed. Try use SVG.":"Le fichier est trop volumineux. Max %sk autorisé. Essayez d'utiliser SVG.",ra_Filter:eYe,"ra_Filter files":"Filtrer les fichiers","ra_Folder name":"Nom de dossier","ra_Folder → Channel → State":"Dossier → Chaîne → État","ra_Folder → Device → Channel → State":"Dossier → Appareil → Canal → État","ra_Folder → State":"Dossier → État","ra_Folders always first":"Les dossiers toujours en premier",ra_Friday:tYe,"ra_Good luck":"Bonne chance","ra_Hide empty folders":"Masquer les dossiers vides","ra_If no file will be created in the folder, it will disappear after the browser closed":"Si aucun fichier ne sera créé dans le dossier, il disparaîtra après la fermeture du navigateur","ra_Import data from %s file":"Importer des données à partir du fichier %s","ra_Import from %s":"Importer depuis %s","ra_Instance %s is alive":"L'instance %s est active","ra_Instance %s is not alive":"L'instance %s n'est pas active","ra_Instance is not alive":"L'instance n'est pas active","ra_Invalid CRON":"CRON invalide","ra_Invalid JSON":"JSON invalide","ra_Invalid answer from server":"Réponse invalide du serveur","ra_Invalid parent folder!":"Dossier parent non valide!","ra_Invalid structure":"Structure invalide","ra_JSON editor":"Éditeur JSON","ra_Last change":"Dernier changement",ra_Latitude:rYe,"ra_License %s":"Licence %s","ra_License agreement":"Accord de licence","ra_License does not exist":"La licence n'existe pas","ra_License expired on %s":"Licence expirée le %s",'ra_License for other product "%s"':'Licence pour un autre produit "%s"',"ra_License is for version %s, but required version is %s.":"La licence est pour la version %s, mais la version requise est %s.","ra_License must be converted":"La licence doit être convertie en une version plus récente. Vous pouvez le faire dans votre profil iobroker.net.","ra_License not found in license manager. Do you want to read licenses from iobroker.net?":"Licence introuvable dans le gestionnaire de licences. Voulez-vous mettre à jour les licences depuis iobroker.net ?","ra_Listen on all IPs":"Écoutez sur toutes les adresses IP","ra_Load configuration from file":"Charger la configuration à partir du fichier",ra_Longitude:nYe,'ra_May not trigger "updateLicenses"':'Peut ne pas déclencher "updateLicences"',ra_Message:aYe,ra_Monday:iYe,"ra_Move down":"Descendre","ra_Move up":"Déplacer vers le haut",ra_Name:oYe,"ra_No data found in file":"Aucune donnée trouvée dans le fichier","ra_No one license found in license manager":"Aucune licence trouvée dans le gestionnaire de licences","ra_No response from the backend":"Aucune réponse du backend",'ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".':'Les non-experts ne peuvent créer de nouveaux objets que dans "0_userdata.0" ou "alias.0".',"ra_Not a number":"Pas un numéro",ra_Objects:sYe,ra_Ok:lYe,"ra_On weekdays":"En semaine","ra_Only following structures of objects are available:":"Seules les structures d'objets suivantes sont disponibles:","ra_Only selected":"Uniquement sélectionné","ra_Owner group":"Groupe propriétaire","ra_Owner user":"Utilisateur propriétaire","ra_Passwords are not equal!":"Les mots de passe ne sont pas égaux !","ra_Place your files here or click here to open the browse dialog":"Placez vos fichiers ici ou cliquez ici pour ouvrir la boîte de dialogue de navigation","ra_Please confirm":"Veuillez confirmer","ra_Please create license":"Veuillez créer une licence","ra_Please enter the license":"Veuillez entrer la licence","ra_Please select file...":"Veuillez sélectionner le fichier...","ra_Please select object ID...":"Veuillez sélectionner l'ID d'objet ...","ra_Port could be used by %s":"Le port pourrait être utilisé par %s","ra_Port is already used by %s":"Le port est déjà utilisé par %s","ra_Private certificate":"Certificat privé",ra_Product:cYe,"ra_Public certificate":"Certificat public","ra_Quality code":"Qualité","ra_Refresh tree":"Rafraîchir l'arborescence","ra_Reload files":"Recharger les fichiers",ra_Repeat:uYe,ra_Replace:dYe,"ra_Request timed out":"La demande a expiré","ra_Restrict to folder":"Restreindre au dossier",ra_Root:fYe,ra_Saturday:hYe,ra_Save:pYe,"ra_Save and close":"Sauver et fermer","ra_Save configuration to file":"Enregistrer la configuration dans un fichier","ra_Save objects tree as JSON file":"Enregistrer l'arborescence des objets en tant que fichier JSON","ra_Select all":"Tout sélectionner","ra_Select color":"Choisissez la couleur","ra_Select predefined icon":"Sélectionnez l'icône prédéfinie","ra_Select type of export":"Sélectionnez le type d'exportation",ra_Selected:mYe,"ra_Selected %s object(s)":"Objet(s) %s sélectionné(s)","ra_Serial number (UUID)":"Numéro de série (UUID)",'ra_Serial number (UUID) "%s" in license is for other device.':'Le numéro de série (UUID) "%s" dans la licence est pour un autre appareil.',"ra_Show all folders":"Afficher tous les dossiers","ra_Show lines between rows":"Afficher les lignes entre les lignes","ra_Show/Hide object descriptions":"Afficher/Masquer les descriptions d'objets","ra_Show/hide filter input":"Afficher/masquer l'entrée de filtre","ra_Some data are not stored. Discard?":"Certaines données ne sont pas stockées. Jeter?",ra_States:vYe,"ra_Suitable license not found in license manager":"Licence appropriée introuvable dans le gestionnaire de licences",ra_Sunday:gYe,"ra_Suppress question for next %s minutes":"Supprimer la question pour les %s prochaines minutes","ra_System language":"Langue du système","ra_Take browser position":"Prendre position depuis le navigateur","ra_Take position from system settings":"Prendre position à partir des paramètres système",'ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").':'Les experts peuvent créer des objets partout mais à partir du deuxième niveau (par exemple "vis.0" ou "javascript.0").',"ra_The page you are looking for was not found":"La page que vous recherchez n'a pas été trouvée","ra_The schedule will be executed every minute. Are you sure?":"Le planning sera exécuté toutes les minutes. Êtes-vous sûr ?","ra_The schedule will be executed every second. Are you sure?":"Le planning sera exécuté toutes les secondes. Êtes-vous sûr ?",ra_Thursday:_Ye,ra_Timestamp:yYe,"ra_Toggle expert mode":"Basculer en mode expert","ra_Toggle the states view":"Basculer la vue des états","ra_Toggle view mode":"Basculer le mode d'affichage","ra_Too big":"Trop grand","ra_Too small":"Trop petit","ra_Transparent dialog":"Dialogue transparent",ra_Tuesday:bYe,"ra_Unknown error":"Erreur inconnue","ra_Unknown error!":"Erreur inconnue!",ra_Update:wYe,"ra_Upload file":"Téléverser un fichier","ra_Use all available let's encrypt certificates":"Utilisez tous les certificats let's encrypt disponibles","ra_Use iobroker.acme adapter for letsencrypt certificates":"Utiliser l'adaptateur iobroker.acme pour les certificats Letsencrypt","ra_Use system settings for position":"Utiliser les paramètres système pour la position","ra_Used system settings":"Paramètres système utilisés","ra_User files":"Fichiers utilisateurs",ra_ValidTill:SYe,ra_Value:xYe,ra_Version:CYe,"ra_View file":"Voir la fiche","ra_View: %s":"Affichage : %s",ra_Wednesday:TYe,ra_Width:kYe,ra_Yes:EYe,"ra_You can export all objects or just the selected branch.":"Vous pouvez exporter tous les objets ou uniquement la branche sélectionnée.","ra_You can filter entries by entering here some text":"Vous pouvez filtrer les entrées en saisissant ici du texte",ra___different__:DYe,ra_aclEveryone_read_object:MYe,ra_aclEveryone_read_state:OYe,ra_aclEveryone_write_object:$Ye,ra_aclEveryone_write_state:AYe,ra_aclGroup_read_object:PYe,ra_aclGroup_read_state:IYe,ra_aclGroup_write_object:RYe,ra_aclGroup_write_state:LYe,ra_aclOwner_read_object:NYe,ra_aclOwner_read_state:FYe,ra_aclOwner_write_object:zYe,ra_aclOwner_write_state:BYe,ra_buttons:jYe,ra_changedFrom:WYe,ra_close:HYe,ra_create_boolean_state:UYe,ra_create_channel:YYe,ra_create_device:VYe,ra_create_number_state:GYe,ra_create_state:qYe,ra_create_string_state:XYe,ra_daysShortText:JYe,ra_dow_Fr:ZYe,ra_dow_Mo:KYe,ra_dow_Sa:QYe,ra_dow_Su:eVe,ra_dow_Th:tVe,ra_dow_Tu:rVe,ra_dow_We:nVe,ra_expertMode:aVe,ra_fileType_all:iVe,ra_fileType_audio:oVe,ra_fileType_code:sVe,ra_fileType_images:lVe,ra_fileType_txt:cVe,ra_fileType_video:uVe,"ra_fileType_video,":"Vidéo",ra_filter_customs:dVe,ra_filter_customs_without:fVe,ra_filter_func:hVe,ra_filter_id:pVe,ra_filter_name:mVe,ra_filter_role:vVe,ra_filter_room:gVe,ra_filter_type:_Ve,"ra_import data from %s file":"Importer des données à partir du fichier %s",ra_invalidConfig:yVe,ra_lastChange:bVe,ra_locally:wVe,ra_month_Apr:SVe,ra_month_Aug:xVe,ra_month_Dec:CVe,ra_month_Feb:TVe,ra_month_Jan:kVe,ra_month_Jul:EVe,ra_month_Jun:DVe,ra_month_Mai:MVe,ra_month_Mar:OVe,ra_month_Nov:$Ve,ra_month_Oct:AVe,ra_month_Sep:PVe,ra_months_Apr:IVe,ra_months_Aug:RVe,ra_months_Dec:LVe,ra_months_Feb:NVe,ra_months_Jan:FVe,ra_months_Jul:zVe,ra_months_Jun:BVe,ra_months_Mai:jVe,ra_months_Mar:WVe,ra_months_Nov:HVe,ra_months_Oct:UVe,ra_months_Sep:YVe,ra_none:VVe,ra_object_changed_by:GVe,ra_object_changed_by_user:qVe,ra_otherConfig:XVe,ra_qualityCode:JVe,ra_repeat:ZVe,ra_select_folder_hint:KVe,ra_state_changed_by:QVe,ra_state_changed_from:eGe,ra_timestamp:tGe,ra_tooltip_ack:rGe,ra_tooltip_comment:nGe,ra_tooltip_copyState:aGe,ra_tooltip_customConfig:iGe,ra_tooltip_deleteObject:oGe,ra_tooltip_editObject:sGe,ra_tooltip_editState:lGe,ra_tooltip_from:cGe,ra_tooltip_lc:uGe,ra_tooltip_quality:dGe,ra_tooltip_ts:fGe,ra_tooltip_user:hGe,ra_tooltip_value:pGe,"ra_use seconds":"utiliser les secondes",ra_val:mGe,"ra_via internet":"par Internet",ra_warning_every_minute:vGe,ra_warning_every_second:gGe,sc_cron:_Ge,sc_date:yGe,sc_dates:bGe,sc_dow:wGe,sc_dows:SGe,sc_every:xGe,sc_everyN_dates:CGe,sc_everyN_dow:TGe,sc_everyN_dows:kGe,sc_everyN_hours:EGe,sc_everyN_minutes:DGe,sc_everyN_months:MGe,sc_everyN_seconds:OGe,sc_every_dates:$Ge,sc_every_dow:AGe,sc_every_dows:PGe,sc_every_hours:IGe,sc_every_minutes:RGe,sc_every_months:LGe,sc_every_seconds:NGe,sc_from:FGe,sc_hours:zGe,sc_interval:BGe,sc_intervalBetween:jGe,sc_invalid_cron:WGe,sc_minutes:HGe,sc_months:UGe,sc_once:YGe,sc_period:VGe,sc_seconds:GGe,sc_simple:qGe,sc_specific:XGe,sc_specific_dates:JGe,sc_specific_dow:ZGe,sc_specific_dows:KGe,sc_specific_hours:QGe,sc_specific_minutes:eqe,sc_specific_months:tqe,sc_specific_seconds:rqe,sc_time:nqe,sc_to:aqe,sc_wizard:iqe,sch_all:oqe,sch_astroDay:sqe,sch_astroNight:lqe,sch_astro_dawn:cqe,sch_astro_dusk:uqe,sch_astro_goldenHour:dqe,sch_astro_goldenHourEnd:fqe,sch_astro_nadir:hqe,sch_astro_nauticalDawn:pqe,sch_astro_nauticalDusk:mqe,sch_astro_night:vqe,sch_astro_nightEnd:gqe,sch_astro_solarNoon:_qe,sch_astro_sunrise:yqe,sch_astro_sunriseEnd:bqe,sch_astro_sunset:wqe,sch_astro_sunsetStart:Sqe,sch_at:xqe,sch_desc_atTime:Cqe,sch_desc_everyDay:Tqe,sch_desc_everyHour:kqe,sch_desc_everyMinute:Eqe,sch_desc_everyMonth:Dqe,sch_desc_everyNDay:Mqe,sch_desc_everyNHours:Oqe,sch_desc_everyNMinutes:$qe,sch_desc_everyNMonths:Aqe,sch_desc_everyNWeeks:Pqe,sch_desc_everyNYears:Iqe,sch_desc_everyWeek:Rqe,sch_desc_everyYear:Lqe,sch_desc_intervalFromTo:Nqe,sch_desc_never:Fqe,sch_desc_onDate:zqe,sch_desc_onDates:Bqe,sch_desc_onEveryDate:jqe,sch_desc_onMonth:Wqe,sch_desc_onMonths:Hqe,sch_desc_onWeekday:Uqe,sch_desc_onWeekdays:Yqe,sch_desc_onWeekends:Vqe,sch_desc_onWorkdays:Gqe,sch_desc_onceInPast:qqe,sch_desc_once_on:Xqe,sch_desc_validFrom:Jqe,sch_desc_validFromTo:Zqe,sch_desc_validTo:Kqe,sch_every:Qqe,sch_exactTime:eXe,sch_from:tXe,sch_fromTo:rXe,sch_intervalTime:nXe,sch_invert:aXe,sch_no_one:iXe,sch_on:oXe,sch_period:sXe,sch_periodDaily:lXe,sch_periodDates:cXe,sch_periodDay:uXe,sch_periodEvery:dXe,sch_periodEveryDay:fXe,sch_periodEveryMonth:hXe,sch_periodEveryWeek:pXe,sch_periodEveryYear:mXe,sch_periodHours:vXe,sch_periodMinutes:gXe,sch_periodMonth:_Xe,sch_periodMonthly:yXe,sch_periodOnce:bXe,sch_periodSpecificMonths:wXe,sch_periodWeek:SXe,sch_periodWeekdays:xXe,sch_periodWeekend:CXe,sch_periodWeekly:TXe,sch_periodWorkdays:kXe,sch_periodYear:EXe,sch_periodYearly:DXe,sch_specificTime:MXe,sch_time:OXe,sch_to:$Xe,sch_valid:AXe,sch_validFrom:PXe,sch_validTo:IXe,sch_wholeDay:RXe,sch_yearEveryMonth:LXe},FXe="Aggiungere",zXe="Annulla",BXe="Categorie",jXe="Controllato",WXe="Elimina",HXe="Vicino",UXe="Commerciale",YXe="Configura",VXe="Collegato",GXe="Copiato",qXe="Creare",XXe="Raccolto",JXe="Delete",ZXe="Elimina",KXe="Scartare",QXe="Disconnesso",eJe="Errore",tJe="Filtro",rJe="Venerdì",nJe="Latitudine",aJe="Longitudine",iJe="Messaggio",oJe="Lunedi",sJe="Nome",lJe="Oggetti",cJe="Ok",uJe="Prodotto",dJe="Ripetere",fJe="Sostituire",hJe="Radice",pJe="Sabato",mJe="Salva",vJe="Selezionato",gJe="stati",_Je="Domenica",yJe="Giovedì",bJe="Timestamp",wJe="Martedì",SJe="Aggiornare",xJe="Valido fino a",CJe="Valore",TJe="Versione",kJe="Mercoledì",EJe="Larghezza",DJe="SÌ",MJe="diverso",OJe="Tutti possono leggere gli oggetti",$Je="Tutti possono leggere lo stato",AJe="Tutti possono scrivere oggetti",PJe="Tutti possono scrivere stato",IJe="Il gruppo può leggere l'oggetto",RJe="Il gruppo può leggere lo stato",LJe="Il gruppo può scrivere l'oggetto",NJe="Il gruppo può scrivere lo stato",FJe="Il proprietario può leggere l'oggetto",zJe="Il proprietario può leggere lo stato",BJe="Il proprietario può scrivere l'oggetto",jJe="Il proprietario può scrivere lo stato",WJe="Bottoni",HJe="Cambiato da",UJe="vicino",YJe="Crea uno stato booleano",VJe="Crea canale",GJe="Crea dispositivo",qJe="Crea lo stato del numero",XJe="Crea stato",JJe="Crea lo stato della stringa",ZJe="g.",KJe="fr",QJe="momento",eZe="Sa",tZe="su",rZe="th",nZe="Tu",aZe="Noi",iZe="Modalità esperto",oZe="Tutti i files",sZe="Audio",lZe="Codice/JSON",cZe="immagini",uZe="Testo",dZe="video",fZe="impostazioni",hZe="senza",pZe="Funzione",mZe="ID",vZe="Nome",gZe="Ruolo",_Ze="Camera",yZe="genere",bZe="Impostazioni non valide",wZe="Ultima modifica",SZe="localmente",xZe="apr",CZe="agosto",TZe="Dic",kZe="febbraio",EZe="gen",DZe="lug",MZe="giu",OZe="Mai",$Ze="marzo",AZe="nov",PZe="ottobre",IZe="Sett",RZe="apr",LZe="agosto",NZe="Dic",FZe="febbraio",zZe="gen",BZe="lug",jZe="giu",WZe="Mai",HZe="marzo",UZe="nov",YZe="ottobre",VZe="Sett",GZe="nessuna",qZe="Oggetto modificato da",XZe="L'oggetto è stato modificato l'ultima volta alle",JZe="Impostazioni dall'altro adattatore %s",ZZe="Codice di qualità",KZe="ripetere",QZe='Per selezionare la cartella, basta tenere premuto il tasto "shift" facendo clic sulla cartella.',eKe="Stato cambiato da",tKe="Oggetto cambiato da",rKe="Timestamp",nKe="Bandiera riconosciuta",aKe="Commento",iKe="Copia il valore dello stato",oKe="Impostazioni personalizzate",sKe="Elimina oggetto",lKe="Modifica oggetto",cKe="Modifica il valore dello stato",uKe="A partire dal",dKe="Ultima modifica",fKe="Qualità",hKe="Data e ora",pKe="Utente",mKe="Valore",vKe="Valore",gKe="Attenzione: il processo CRON verrà eseguito ogni minuto durante il periodo specificato!",_Ke="Attenzione: il processo CRON verrà eseguito ogni secondo durante il periodo specificato!",yKe="CRON",bKe="Data",wKe="Date",SKe="Giorno",xKe="Giorno della settimana",CKe="Ogni",TKe="ogni N giorni",kKe="ogni Nesimo giorno della settimana",EKe="ogni N giorno della settimana",DKe="ogni N ore",MKe="ogni N minuti",OKe="ogni N mesi",$Ke="ogni N secondi",AKe="ogni giorno",PKe="Tutti i giorni della settimana",IKe="Tutti i giorni della settimana",RKe="ogni ora",LKe="ogni minuto",NKe="ogni mese",FKe="ogni secondo",zKe="A partire dal",BKe="Ore",jKe="Intervallo",WKe="Intervallo tra",HKe="CRON non valido",UKe="Minuti",YKe="mesi",VKe="Una volta",GKe="Periodo",qKe="secondi",XKe="Semplice",JKe="Orario preciso",ZKe="date specifiche",KKe="giorno/i specifico/i della settimana",QKe="giorno specifico delle settimane",eQe="orari specifici",tQe="minuti specifici",rQe="mesi specifici",nQe="secondi specifici",aQe="Tempo",iQe="Per",oQe="procedura guidata",sQe="tutti",lQe="Astro day",cQe="Astro night",uQe="Alba",dQe="Crepuscolo",fQe="Ora d'oro",hQe="Fine dell'ora d'oro",pQe="Nadir",mQe="Alba nautica",vQe="Crepuscolo nautico",gQe="Notte",_Qe="Fine della notte",yQe="Mezzogiorno solare",bQe="Alba",wQe="Fine dell'alba",SQe="Tramonto",xQe="Inizio del tramonto",CQe="a",TQe="a %s",kQe="ogni giorno",EQe="ogni ora",DQe="ogni minuto",MQe="ogni mese",OQe="ogni %s giorno",$Qe="ogni %s ore",AQe="ogni %s minuti",PQe="ogni %s mesi",IQe="ogni %s settimane",RQe="ogni %s anni",LQe="ogni settimana",NQe="ogni anno",FQe="da %s a %s",zQe="mai",BQe="su %s di %s",jQe="su %s e %s di",WQe="in ogni data di",HQe="%s",UQe="%s e %s",YQe="su %s",VQe="su %s e %s",GQe="nei finesettimana",qQe="nei giorni lavorativi",XQe="non verrà più eseguito, perché start è nel passato",JQe="su %s",ZQe="da %s",KQe="Eseguire da a",QQe="a %s",eet="ogni",tet="Orario preciso",ret="a partire dal",net="Da A",aet="Intervallo di tempo",iet="invertire",oet="nessuna",set="sopra",cet="Periodo",uet="Quotidiano",det="Date",fet="Giorno",het="Ogni",pet="Ogni giorno",met="Ogni mese",vet="Ogni settimana",get="Ogni anno",_et="Ore",yet="Minuti",bet="mese",wet="Mensile",xet="Una volta",Cet="Mesi specifici",Tet="Settimana",ket="Giorni della settimana",Eet="Fine settimana",Det="settimanalmente",Met="giorni feriali",Oet="Anno",$et="Annuale",Aet="Orario preciso",Pet="Tempo",Iet="per",Ret="Valido",Let="a partire dal",Net="per",Fet="Giorno intero",zet="ogni mese",Bet={"ra_%s links from aliases":"%s link da alias","ra_%s object(s) processed":"%s oggetti elaborati","ra_%s was imported":"%s è stato importato","ra_Accept license":"Accetta licenza","ra_Add new child object to selected parent":"Aggiungi un nuovo oggetto figlio al genitore selezionato","ra_Add objects tree from JSON file":"Aggiungi l'albero degli oggetti dal file JSON","ra_Add row":"Aggiungi riga","ra_Advanced options":"Opzioni avanzate","ra_All items are filtered out":"Tutti gli elementi vengono filtrati","ra_All objects":"Tutti gli oggetti",ra_Append:FXe,"ra_Append %s entries or replace existing?":"Aggiungi %s voci o sostituisci quelle esistenti?","ra_Append or replace?":"Aggiungere o sostituire?","ra_Are you sure?":"Sei sicuro?","ra_Auto (no custom columns)":"Auto (nessuna colonna personalizzata)","ra_Back to %s":"Torna a %s","ra_Background image":"Immagine di sfondo",ra_Cancel:zXe,"ra_Cannot add items with set filter":"Impossibile aggiungere elementi con il filtro impostato","ra_Cannot decode license":"Impossibile decodificare la licenza","ra_Cannot determine position: System settings are empty and GPS detection is disabled in browser":"Impossibile determinare la posizione: le impostazioni di sistema sono vuote e il rilevamento GPS è disabilitato nel browser",'ra_Cannot find "%s"':'Impossibile trovare "%s"','ra_Cannot read "%s"':'Impossibile leggere "%s"',"ra_Cannot read licenses: %s":"Impossibile leggere le licenze: %s","ra_Cannot retrieve options, as instance is offline":"Impossibile recuperare le opzioni, poiché l'istanza è offline","ra_Cannot update attribute, because not found in the object":"Impossibile aggiornare l'attributo, perché non trovato nell'oggetto","ra_Cannot upload":"Impossibile caricare",ra_Categories:BXe,"ra_Chained certificate":"Certificato incatenato","ra_Change color theme":"Cambia tema colore","ra_Changed from":"Cambiato da","ra_Channel → State":"Canale → Stato","ra_Check license":"Controlla la licenza",ra_Checked:jXe,ra_Clear:WXe,"ra_Clear filter":"Filtro pulito","ra_Clear icon":"Cancella icona","ra_Clone current row":"Clona riga corrente",ra_Close:HXe,"ra_Collapse all nodes":"Comprimi tutti i nodi","ra_Collapse one step node":"Comprimi un livello",ra_Commercial:UXe,ra_Configure:YXe,"ra_Configure visible columns":"Configura colonne visibili","ra_Confirm deletion of %s":"Conferma l'eliminazione di %s",ra_Connected:VXe,ra_Copied:GXe,"ra_Copied %s":'"%s" copiato',"ra_Copy content":"Copia contenuto",ra_Create:qXe,"ra_Create alias":"Crea alias","ra_Create folder":"Creare una cartella","ra_Create new folder in %s":"Crea nuova cartella in %s",ra_Crop:XXe,"ra_Define CRON...":"Definisci CRON...","ra_Define functions":"Definire le funzioni","ra_Define rooms":"Definisci le stanze","ra_Define schedule":"Definisci programma","ra_Define schedule...":"Definisci pianificazione ...",ra_Del:JXe,ra_Delete:ZXe,"ra_Delete (no confirm for 5 mins)":"Elimina (nessuna conferma per 5 minuti)","ra_Delete current row":"Elimina la riga corrente","ra_Deselect all":"Deseleziona tutto","ra_Device → Channel → State":"Dispositivo → Canale → Stato",ra_Discard:KXe,ra_Disconnected:QXe,"ra_Do not export values of states":"Non esportare i valori degli stati","ra_Do not use let's encrypt":"Non utilizzare crittografiamo","ra_Double click to reset table layout":"Fare doppio clic per ripristinare il layout della tabella","ra_Drag 'n' drop some files here, or click to select files":"Trascina e rilascia alcuni file qui o fai clic per selezionare i file","ra_Drop file here":"Trascina il file qui","ra_Drop the files here...":"Trascina qui il file...","ra_Duplicate name":"Nome duplicato","ra_Edit ACL":"Modifica ACL","ra_Edit alias":"Modifica alias","ra_Edit custom config":"Modifica configurazione personalizzata","ra_Edit function":"Funzione di modifica","ra_Edit object field":"Modifica campo oggetto","ra_Edit role":"Modifica ruolo","ra_Edit room":"Modifica stanza","ra_Edit value":"Modifica valore",ra_Error:eJe,"ra_Expand all nodes":"Espandi tutti i nodi","ra_Expand one step node":"Espandi un livello","ra_Export data to %s file":"Esporta i dati nel file %s","ra_Failed to open JSON File":"Impossibile aprire il file JSON","ra_Fallback custom certificates":"Certificati personalizzati di fallback","ra_File is too big. Max %sk allowed. Try use SVG.":"Il file è troppo grande. Max %sk consentito. Prova a usare SVG.",ra_Filter:tJe,"ra_Filter files":"Filtra i file","ra_Folder name":"Nome della cartella","ra_Folder → Channel → State":"Cartella → Canale → Stato","ra_Folder → Device → Channel → State":"Cartella → Dispositivo → Canale → Stato","ra_Folder → State":"Cartella → Stato","ra_Folders always first":"Le cartelle sono sempre al primo posto",ra_Friday:rJe,"ra_Good luck":"Buona fortuna","ra_Hide empty folders":"Nascondi cartelle vuote","ra_If no file will be created in the folder, it will disappear after the browser closed":"Se nessun file verrà creato nella cartella, scomparirà dopo la chiusura del browser","ra_Import data from %s file":"Importa i dati dal file %s","ra_Import from %s":"Importa da %s","ra_Instance %s is alive":"Il %s dell'istanza è vivo","ra_Instance %s is not alive":"Il TESTO dell'istanza non è vivo","ra_Instance is not alive":"L'istanza non è viva","ra_Invalid CRON":"CRON non valido","ra_Invalid JSON":"JSON non valido","ra_Invalid answer from server":"Risposta non valida dal server","ra_Invalid parent folder!":"Cartella principale non valida!","ra_Invalid structure":"Struttura non valida","ra_JSON editor":"Editor JSON","ra_Last change":"Ultima modifica",ra_Latitude:nJe,"ra_License %s":"Licenza %s","ra_License agreement":"Contratto di licenza","ra_License does not exist":"La licenza non esiste","ra_License expired on %s":"Licenza scaduta il %s",'ra_License for other product "%s"':'Licenza per altro prodotto "%s"',"ra_License is for version %s, but required version is %s.":"La licenza è per la versione %s, ma la versione richiesta è %s.","ra_License must be converted":"La licenza deve essere convertita in una versione più recente. Puoi farlo nel tuo profilo iobroker.net.","ra_License not found in license manager. Do you want to read licenses from iobroker.net?":"Licenza non trovata nel gestore delle licenze. Vuoi aggiornare le licenze da iobroker.net?","ra_Listen on all IPs":"Ascolta su tutti gli IP","ra_Load configuration from file":"Carica la configurazione dal file",ra_Longitude:aJe,'ra_May not trigger "updateLicenses"':'Potrebbe non attivare "updateLicenses"',ra_Message:iJe,ra_Monday:oJe,"ra_Move down":"Abbassati","ra_Move up":"Andare avanti",ra_Name:sJe,"ra_No data found in file":"Nessun dato trovato nel file","ra_No one license found in license manager":"Nessuna licenza trovata nel gestore delle licenze","ra_No response from the backend":"Nessuna risposta dal backend",'ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".':'I non esperti possono creare nuovi oggetti solo in "0_userdata.0" o "alias.0".',"ra_Not a number":"Non un numero",ra_Objects:lJe,ra_Ok:cJe,"ra_On weekdays":"Nei giorni della settimana","ra_Only following structures of objects are available:":"Sono disponibili solo le seguenti strutture di oggetti:","ra_Only selected":"Solo selezionato","ra_Owner group":"Gruppo di proprietari","ra_Owner user":"Utente proprietario","ra_Passwords are not equal!":"Le password non sono uguali!","ra_Place your files here or click here to open the browse dialog":"Posiziona i file qui o fai clic qui per aprire la finestra di dialogo Sfoglia","ra_Please confirm":"Si prega di confermare","ra_Please create license":"Si prega di creare la licenza","ra_Please enter the license":"Inserisci la licenza","ra_Please select file...":"Si prega di selezionare il file...","ra_Please select object ID...":"Seleziona l'ID oggetto ...","ra_Port could be used by %s":"La porta potrebbe essere utilizzata da %s","ra_Port is already used by %s":"La porta è già utilizzata da %s","ra_Private certificate":"Certificato privato",ra_Product:uJe,"ra_Public certificate":"Certificato pubblico","ra_Quality code":"Qualità","ra_Refresh tree":"Aggiorna l'albero","ra_Reload files":"Ricarica i file",ra_Repeat:dJe,ra_Replace:fJe,"ra_Request timed out":"Tempo scaduto per la richiesta","ra_Restrict to folder":"Limita alla cartella",ra_Root:hJe,ra_Saturday:pJe,ra_Save:mJe,"ra_Save and close":"Salva e chiudi","ra_Save configuration to file":"Salva la configurazione su file","ra_Save objects tree as JSON file":"Salva l'albero degli oggetti come file JSON","ra_Select all":"Seleziona tutto","ra_Select color":"Seleziona il colore","ra_Select predefined icon":"Seleziona l'icona predefinita","ra_Select type of export":"Seleziona il tipo di esportazione",ra_Selected:vJe,"ra_Selected %s object(s)":"%s oggetto/i selezionato/i","ra_Serial number (UUID)":"Numero di serie (UUID)",'ra_Serial number (UUID) "%s" in license is for other device.':'Il numero di serie (UUID) "%s" nella licenza è per un altro dispositivo.',"ra_Show all folders":"Mostra tutte le cartelle","ra_Show lines between rows":"Mostra linee tra le righe","ra_Show/Hide object descriptions":"Mostra/Nascondi le descrizioni degli oggetti","ra_Show/hide filter input":"Mostra/nascondi input filtro","ra_Some data are not stored. Discard?":"Alcuni dati non vengono memorizzati. Scartare?",ra_States:gJe,"ra_Suitable license not found in license manager":"Licenza adatta non trovata nel gestore delle licenze",ra_Sunday:_Je,"ra_Suppress question for next %s minutes":"Sopprimi la domanda per i prossimi %s minuti","ra_System language":"Linguaggio di sistema","ra_Take browser position":"Prendi posizione dal browser","ra_Take position from system settings":"Prendi posizione dalle impostazioni di sistema",'ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").':'Gli esperti possono creare oggetti ovunque ma dal secondo livello (es. "Vis.0" o "javascript.0").',"ra_The page you are looking for was not found":"La pagina che stai cercando non è stata trovata","ra_The schedule will be executed every minute. Are you sure?":"La pianificazione verrà eseguita ogni minuto. Sei sicuro?","ra_The schedule will be executed every second. Are you sure?":"La pianificazione verrà eseguita ogni secondo. Sei sicuro?",ra_Thursday:yJe,ra_Timestamp:bJe,"ra_Toggle expert mode":"Attiva / disattiva la modalità esperto","ra_Toggle the states view":"Attiva o disattiva la visualizzazione degli stati","ra_Toggle view mode":"Attiva / disattiva la modalità di visualizzazione","ra_Too big":"Troppo grande","ra_Too small":"Troppo piccolo","ra_Transparent dialog":"Finestra di dialogo trasparente",ra_Tuesday:wJe,"ra_Unknown error":"Errore sconosciuto","ra_Unknown error!":"Errore sconosciuto!",ra_Update:SJe,"ra_Upload file":"Caricare un file","ra_Use all available let's encrypt certificates":"Usa tutti i certificati Let's Encrypt disponibili","ra_Use iobroker.acme adapter for letsencrypt certificates":"Utilizzare l'adattatore iobroker.acme per i certificati letsencrypt","ra_Use system settings for position":"Usa le impostazioni di sistema per la posizione","ra_Used system settings":"Impostazioni di sistema utilizzate","ra_User files":"File utente",ra_ValidTill:xJe,ra_Value:CJe,ra_Version:TJe,"ra_View file":"Vedi il file","ra_View: %s":"Visualizza: %s",ra_Wednesday:kJe,ra_Width:EJe,ra_Yes:DJe,"ra_You can export all objects or just the selected branch.":"Puoi esportare tutti gli oggetti o solo il ramo selezionato.","ra_You can filter entries by entering here some text":"Puoi filtrare le voci inserendo qui del testo",ra___different__:MJe,ra_aclEveryone_read_object:OJe,ra_aclEveryone_read_state:$Je,ra_aclEveryone_write_object:AJe,ra_aclEveryone_write_state:PJe,ra_aclGroup_read_object:IJe,ra_aclGroup_read_state:RJe,ra_aclGroup_write_object:LJe,ra_aclGroup_write_state:NJe,ra_aclOwner_read_object:FJe,ra_aclOwner_read_state:zJe,ra_aclOwner_write_object:BJe,ra_aclOwner_write_state:jJe,ra_buttons:WJe,ra_changedFrom:HJe,ra_close:UJe,ra_create_boolean_state:YJe,ra_create_channel:VJe,ra_create_device:GJe,ra_create_number_state:qJe,ra_create_state:XJe,ra_create_string_state:JJe,ra_daysShortText:ZJe,ra_dow_Fr:KJe,ra_dow_Mo:QJe,ra_dow_Sa:eZe,ra_dow_Su:tZe,ra_dow_Th:rZe,ra_dow_Tu:nZe,ra_dow_We:aZe,ra_expertMode:iZe,ra_fileType_all:oZe,ra_fileType_audio:sZe,ra_fileType_code:lZe,ra_fileType_images:cZe,ra_fileType_txt:uZe,ra_fileType_video:dZe,"ra_fileType_video,":"video",ra_filter_customs:fZe,ra_filter_customs_without:hZe,ra_filter_func:pZe,ra_filter_id:mZe,ra_filter_name:vZe,ra_filter_role:gZe,ra_filter_room:_Ze,ra_filter_type:yZe,"ra_import data from %s file":"Importa dati dal file %s",ra_invalidConfig:bZe,ra_lastChange:wZe,ra_locally:SZe,ra_month_Apr:xZe,ra_month_Aug:CZe,ra_month_Dec:TZe,ra_month_Feb:kZe,ra_month_Jan:EZe,ra_month_Jul:DZe,ra_month_Jun:MZe,ra_month_Mai:OZe,ra_month_Mar:$Ze,ra_month_Nov:AZe,ra_month_Oct:PZe,ra_month_Sep:IZe,ra_months_Apr:RZe,ra_months_Aug:LZe,ra_months_Dec:NZe,ra_months_Feb:FZe,ra_months_Jan:zZe,ra_months_Jul:BZe,ra_months_Jun:jZe,ra_months_Mai:WZe,ra_months_Mar:HZe,ra_months_Nov:UZe,ra_months_Oct:YZe,ra_months_Sep:VZe,ra_none:GZe,ra_object_changed_by:qZe,ra_object_changed_by_user:XZe,ra_otherConfig:JZe,ra_qualityCode:ZZe,ra_repeat:KZe,ra_select_folder_hint:QZe,ra_state_changed_by:eKe,ra_state_changed_from:tKe,ra_timestamp:rKe,ra_tooltip_ack:nKe,ra_tooltip_comment:aKe,ra_tooltip_copyState:iKe,ra_tooltip_customConfig:oKe,ra_tooltip_deleteObject:sKe,ra_tooltip_editObject:lKe,ra_tooltip_editState:cKe,ra_tooltip_from:uKe,ra_tooltip_lc:dKe,ra_tooltip_quality:fKe,ra_tooltip_ts:hKe,ra_tooltip_user:pKe,ra_tooltip_value:mKe,"ra_use seconds":"usa i secondi",ra_val:vKe,"ra_via internet":"attraverso internet",ra_warning_every_minute:gKe,ra_warning_every_second:_Ke,sc_cron:yKe,sc_date:bKe,sc_dates:wKe,sc_dow:SKe,sc_dows:xKe,sc_every:CKe,sc_everyN_dates:TKe,sc_everyN_dow:kKe,sc_everyN_dows:EKe,sc_everyN_hours:DKe,sc_everyN_minutes:MKe,sc_everyN_months:OKe,sc_everyN_seconds:$Ke,sc_every_dates:AKe,sc_every_dow:PKe,sc_every_dows:IKe,sc_every_hours:RKe,sc_every_minutes:LKe,sc_every_months:NKe,sc_every_seconds:FKe,sc_from:zKe,sc_hours:BKe,sc_interval:jKe,sc_intervalBetween:WKe,sc_invalid_cron:HKe,sc_minutes:UKe,sc_months:YKe,sc_once:VKe,sc_period:GKe,sc_seconds:qKe,sc_simple:XKe,sc_specific:JKe,sc_specific_dates:ZKe,sc_specific_dow:KKe,sc_specific_dows:QKe,sc_specific_hours:eQe,sc_specific_minutes:tQe,sc_specific_months:rQe,sc_specific_seconds:nQe,sc_time:aQe,sc_to:iQe,sc_wizard:oQe,sch_all:sQe,sch_astroDay:lQe,sch_astroNight:cQe,sch_astro_dawn:uQe,sch_astro_dusk:dQe,sch_astro_goldenHour:fQe,sch_astro_goldenHourEnd:hQe,sch_astro_nadir:pQe,sch_astro_nauticalDawn:mQe,sch_astro_nauticalDusk:vQe,sch_astro_night:gQe,sch_astro_nightEnd:_Qe,sch_astro_solarNoon:yQe,sch_astro_sunrise:bQe,sch_astro_sunriseEnd:wQe,sch_astro_sunset:SQe,sch_astro_sunsetStart:xQe,sch_at:CQe,sch_desc_atTime:TQe,sch_desc_everyDay:kQe,sch_desc_everyHour:EQe,sch_desc_everyMinute:DQe,sch_desc_everyMonth:MQe,sch_desc_everyNDay:OQe,sch_desc_everyNHours:$Qe,sch_desc_everyNMinutes:AQe,sch_desc_everyNMonths:PQe,sch_desc_everyNWeeks:IQe,sch_desc_everyNYears:RQe,sch_desc_everyWeek:LQe,sch_desc_everyYear:NQe,sch_desc_intervalFromTo:FQe,sch_desc_never:zQe,sch_desc_onDate:BQe,sch_desc_onDates:jQe,sch_desc_onEveryDate:WQe,sch_desc_onMonth:HQe,sch_desc_onMonths:UQe,sch_desc_onWeekday:YQe,sch_desc_onWeekdays:VQe,sch_desc_onWeekends:GQe,sch_desc_onWorkdays:qQe,sch_desc_onceInPast:XQe,sch_desc_once_on:JQe,sch_desc_validFrom:ZQe,sch_desc_validFromTo:KQe,sch_desc_validTo:QQe,sch_every:eet,sch_exactTime:tet,sch_from:ret,sch_fromTo:net,sch_intervalTime:aet,sch_invert:iet,sch_no_one:oet,sch_on:set,sch_period:cet,sch_periodDaily:uet,sch_periodDates:det,sch_periodDay:fet,sch_periodEvery:het,sch_periodEveryDay:pet,sch_periodEveryMonth:met,sch_periodEveryWeek:vet,sch_periodEveryYear:get,sch_periodHours:_et,sch_periodMinutes:yet,sch_periodMonth:bet,sch_periodMonthly:wet,sch_periodOnce:xet,sch_periodSpecificMonths:Cet,sch_periodWeek:Tet,sch_periodWeekdays:ket,sch_periodWeekend:Eet,sch_periodWeekly:Det,sch_periodWorkdays:Met,sch_periodYear:Oet,sch_periodYearly:$et,sch_specificTime:Aet,sch_time:Pet,sch_to:Iet,sch_valid:Ret,sch_validFrom:Let,sch_validTo:Net,sch_wholeDay:Fet,sch_yearEveryMonth:zet},jet="Adjuntar",Wet="Cancelar",Het="Categorías",Uet="Comprobado",Yet="Borrar",Vet="Cerca",Get="Comercial",qet="Configurar",Xet="Conectado",Jet="Copiado",Zet="Crear",Ket="Cultivo",Qet="Delete",ett="Eliminar",ttt="Desechar",rtt="Desconectado",ntt="Error",att="Filtrar",itt="Viernes",ott="Latitud",stt="Longitud",ltt="Mensaje",ctt="Lunes",utt="Nombre",dtt="Objetos",ftt="Okay",htt="Producto",ptt="Repetir",mtt="Reemplazar",vtt="Raíz",gtt="Sábado",_tt="Salvar",ytt="Seleccionado",btt="Estados",wtt="Domingo",Stt="Jueves",xtt="Marca de tiempo",Ctt="Martes",Ttt="Actualizar",ktt="Válida hasta",Ett="Valor",Dtt="Versión",Mtt="Miércoles",Ott="Anchura",$tt="Sí",Att="diferente",Ptt="Todo el mundo puede leer el objeto",Itt="Todos pueden leer el estado",Rtt="Todos pueden escribir objetos",Ltt="Todos pueden escribir el estado",Ntt="El grupo puede leer el objeto",Ftt="El grupo puede leer el estado",ztt="El grupo puede escribir un objeto",Btt="El grupo puede escribir el estado",jtt="El propietario puede leer el objeto",Wtt="El propietario puede leer el estado",Htt="El propietario puede escribir el objeto",Utt="El propietario puede escribir el estado",Ytt="Botones",Vtt="Cambiaron desde",Gtt="cerrar",qtt="Crear estado booleano",Xtt="Crear canal",Jtt="Crear dispositivo",Ztt="Crear estado numérico",Ktt="Crear estado",Qtt="Crear estado de cadena",ert="d.",trt="Fr",rrt="Mes",nrt="Sa",art="Su",irt="Th",ort="Tu",srt="Nosotros",lrt="Modo experto",crt="Todos los archivos",urt="Audio",drt="Código/JSON",frt="Imágenes",hrt="Texto",prt="Video",mrt="Configuraciones",vrt="sin",grt="Función",_rt="ID",yrt="Nombre",brt="Papel",wrt="Habitación",Srt="Tipo",xrt="Configuraciones inválidas",Crt="Ultimo cambio",Trt="en la zona",krt="Abr",Ert="Ago",Drt="Dic",Mrt="Feb",Ort="Ene",$rt="Jul",Art="Jun",Prt="Mai",Irt="Mar",Rrt="Nov",Lrt="Oct",Nrt="Sep",Frt="Abr",zrt="Ago",Brt="Dic",jrt="Feb",Wrt="Ene",Hrt="Jul",Urt="Jun",Yrt="Mai",Vrt="Mar",Grt="Nov",qrt="Oct",Xrt="Sep",Jrt="ninguno",Zrt="Objeto cambiado por",Krt="Objeto cambiado por última vez a las",Qrt="Configuraciones de otro adaptador %s",ent="Código de calidad",tnt="repetir",rnt='Para seleccionar la carpeta, simplemente mantenga presionada la tecla "shift" haciendo clic en la carpeta.',nnt="Estado cambiado por",ant="Objeto cambiado de",int="Marca de tiempo",ont="Bandera reconocida",snt="Comentario",lnt="Copie el valor del estado",cnt="Ajustes personalizados",unt="Eliminar objeto",dnt="Editar objeto",fnt="Edite el valor del estado",hnt="Desde",pnt="Último cambio",mnt="Calidad",vnt="Sello de tiempo",gnt="Usuario",_nt="Valor",ynt="Valor",bnt="Advertencia: ¡El trabajo CRON se ejecutará cada minuto durante el período especificado!",wnt="Advertencia: ¡El trabajo CRON se ejecutará cada segundo durante el período especificado!",Snt="CRON",xnt="Fecha",Cnt="fechas",Tnt="Día",knt="Día de la semana",Ent="Cada",Dnt="cada N días",Mnt="cada enésimo día de la semana",Ont="cada N día de la semana",$nt="cada N horas",Ant="cada N minutos",Pnt="cada N meses",Int="cada N segundos",Rnt="cada día",Lnt="Cada día de la semana",Nnt="Cada día de la semana",Fnt="cada hora",znt="cada minuto",Bnt="cada mes",jnt="cada segundo",Wnt="De",Hnt="Horas",Unt="Intervalo",Ynt="Intervalo entre",Vnt="CRON no válido",Gnt="Minutos",qnt="meses",Xnt="Una vez",Jnt="Período",Znt="Segundos",Knt="Sencillo",Qnt="Tiempo específico",eat="fechas especificas",tat="día(s) específico(s) de la semana",rat="día específico de semanas",nat="horas específicas",aat="minutos específicos",iat="meses específicos",oat="segundos específicos",sat="Hora",lat="A",cat="Mago",uat="todas",dat="Día astro",fat="Noche astro",hat="Amanecer",pat="Oscuridad",mat="hora dorada",vat="Fin de la hora dorada",gat="Nadir",_at="Amanecer náutico",yat="Anochecer náutico",bat="Noche",wat="Fin de la noche",Sat="Mediodía solar",xat="amanecer",Cat="Fin del amanecer",Tat="Puesta de sol",kat="Puesta de sol",Eat="a",Dat="en %s",Mat="cada día",Oat="cada hora",$at="cada minuto",Aat="cada mes",Pat="cada %s días",Iat="cada %s horas",Rat="cada %s minutos",Lat="cada %s meses",Nat="cada %s semanas",Fat="cada %s años",zat="cada semana",Bat="todos los años",jat="de %s a %s",Wat="Nunca",Hat="en %s de %s",Uat="en %s y %s de",Yat="en cada fecha de",Vat="%s",Gat="%s y %s",qat="en %s",Xat="en %s y %s",Jat="en los fines de semana",Zat="en días laborables",Kat="ya no se ejecutará más, porque el inicio está en el pasado",Qat="en %s",eit="de %s",tit="Ejecutar desde hasta",rit="a %s",nit="cada",ait="Tiempo específico",iit="de",oit="De-a",sit="Tiempo de intervalo",lit="invertir; poner boca abajo o en la posición opuesta, orden o arreglo; Boca abajo",cit="ninguna",uit="en",dit="Período",fit="Diario",hit="fechas",pit="Día",mit="Cada",vit="Cada día",git="Cada mes",_it="Cada semana",yit="Todos los años",bit="Horas",wit="Minutos",Sit="mes",xit="Mensual",Cit="Una vez",Tit="Meses específicos",kit="Semana",Eit="Días laborables",Dit="Fin de semana",Mit="Semanal",Oit="Días laborables",$it="Año",Ait="Anual",Pit="Tiempo específico",Iit="Hora",Rit="a",Lit="Válido",Nit="de",Fit="a",zit="Todo el dia",Bit="cada mes",jit={"ra_%s links from aliases":"%s enlaces de alias","ra_%s object(s) processed":"%s objeto(s) procesados","ra_%s was imported":"%s fue importado","ra_Accept license":"Aceptar licencia","ra_Add new child object to selected parent":"Agregar nuevo objeto hijo al padre seleccionado","ra_Add objects tree from JSON file":"Agregar árbol de objetos desde el archivo JSON","ra_Add row":"Añadir fila","ra_Advanced options":"Opciones avanzadas","ra_All items are filtered out":"Todos los elementos se filtran","ra_All objects":"Todos los objetos",ra_Append:jet,"ra_Append %s entries or replace existing?":"¿Agregar %s entradas o reemplazar las existentes?","ra_Append or replace?":"¿Agregar o reemplazar?","ra_Are you sure?":"¿Estás seguro?","ra_Auto (no custom columns)":"Automático (sin columnas personalizadas)","ra_Back to %s":"Volver a %s","ra_Background image":"Imagen de fondo",ra_Cancel:Wet,"ra_Cannot add items with set filter":"No se pueden agregar elementos con el filtro establecido","ra_Cannot decode license":"No se puede decodificar la licencia","ra_Cannot determine position: System settings are empty and GPS detection is disabled in browser":"No se puede determinar la posición: la configuración del sistema está vacía y la detección de GPS está deshabilitada en el navegador",'ra_Cannot find "%s"':'No se puede encontrar "%s"','ra_Cannot read "%s"':'No se puede leer "%s"',"ra_Cannot read licenses: %s":"No se pueden leer licencias: %s","ra_Cannot retrieve options, as instance is offline":"No se pueden recuperar las opciones, ya que la instancia está fuera de línea","ra_Cannot update attribute, because not found in the object":"No se puede actualizar el atributo porque no se encuentra en el objeto","ra_Cannot upload":"no se puede cargar",ra_Categories:Het,"ra_Chained certificate":"certificado encadenado","ra_Change color theme":"Cambiar tema de color","ra_Changed from":"Cambiaron desde","ra_Channel → State":"Canal → Estado","ra_Check license":"Verificar licencia",ra_Checked:Uet,ra_Clear:Yet,"ra_Clear filter":"Filtro claro","ra_Clear icon":"Icono claro","ra_Clone current row":"Clonar fila actual",ra_Close:Vet,"ra_Collapse all nodes":"Contraer todos los nodos","ra_Collapse one step node":"Contraer un nivel",ra_Commercial:Get,ra_Configure:qet,"ra_Configure visible columns":"Configurar columnas visibles","ra_Confirm deletion of %s":"Confirmar la eliminación de %s",ra_Connected:Xet,ra_Copied:Jet,"ra_Copied %s":'Copiado "%s"',"ra_Copy content":"Copiar contenido",ra_Create:Zet,"ra_Create alias":"Crear alias","ra_Create folder":"Crear carpeta","ra_Create new folder in %s":"Crear nueva carpeta en %s",ra_Crop:Ket,"ra_Define CRON...":"Definir CRON...","ra_Define functions":"Definir funciones","ra_Define rooms":"Definir habitaciones","ra_Define schedule":"Definir horario","ra_Define schedule...":"Definir horario ...",ra_Del:Qet,ra_Delete:ett,"ra_Delete (no confirm for 5 mins)":"Eliminar (sin confirmar durante 5 minutos)","ra_Delete current row":"Eliminar fila actual","ra_Deselect all":"Deselecciona todo","ra_Device → Channel → State":"Dispositivo → Canal → Estado",ra_Discard:ttt,ra_Disconnected:rtt,"ra_Do not export values of states":"No exportar valores de estados.","ra_Do not use let's encrypt":"No use vamos a cifrar","ra_Double click to reset table layout":"Haga doble clic para restablecer el diseño de la tabla","ra_Drag 'n' drop some files here, or click to select files":"Arrastre y suelte algunos archivos aquí, o haga clic para seleccionar archivos","ra_Drop file here":"Suelta el archivo aquí","ra_Drop the files here...":"Suelta el archivo aquí ...","ra_Duplicate name":"Nombre duplicado","ra_Edit ACL":"Editar LCA","ra_Edit alias":"Editar alias","ra_Edit custom config":"Editar configuración personalizada","ra_Edit function":"Función de edición","ra_Edit object field":"Editar campo de objeto","ra_Edit role":"Editar rol","ra_Edit room":"Cuarto de edición","ra_Edit value":"Editar valor",ra_Error:ntt,"ra_Expand all nodes":"Expandir todos los nodos","ra_Expand one step node":"Expandir un nivel","ra_Export data to %s file":"Exportar datos al archivo %s","ra_Failed to open JSON File":"No se pudo abrir el archivo JSON","ra_Fallback custom certificates":"Certificados personalizados alternativos","ra_File is too big. Max %sk allowed. Try use SVG.":"El archivo es demasiado grande. Máximo de %sk permitido. Intenta usar SVG.",ra_Filter:att,"ra_Filter files":"Filtrar archivos","ra_Folder name":"Nombre de la carpeta","ra_Folder → Channel → State":"Carpeta → Canal → Estado","ra_Folder → Device → Channel → State":"Carpeta → Dispositivo → Canal → Estado","ra_Folder → State":"Carpeta → Estado","ra_Folders always first":"Carpetas siempre primero",ra_Friday:itt,"ra_Good luck":"Buena suerte","ra_Hide empty folders":"Ocultar carpetas vacías","ra_If no file will be created in the folder, it will disappear after the browser closed":"Si no se creará ningún archivo en la carpeta, desaparecerá después de que se cierre el navegador.","ra_Import data from %s file":"Importar datos del archivo %s","ra_Import from %s":"Importar desde %s","ra_Instance %s is alive":"Instancia %s está vivo","ra_Instance %s is not alive":"Instancia %s no está vivo","ra_Instance is not alive":"La instancia no está viva","ra_Invalid CRON":"CRON no válido","ra_Invalid JSON":"JSON no válido","ra_Invalid answer from server":"Respuesta inválida del servidor","ra_Invalid parent folder!":"Carpeta principal no válida.","ra_Invalid structure":"Estructura inválida","ra_JSON editor":"editor JSON","ra_Last change":"Ultimo cambio",ra_Latitude:ott,"ra_License %s":"Licencia %s","ra_License agreement":"Acuerdo de licencia","ra_License does not exist":"La licencia no existe","ra_License expired on %s":"La licencia venció el %s",'ra_License for other product "%s"':'Licencia para otro producto "%s"',"ra_License is for version %s, but required version is %s.":"La licencia es para la versión %s, pero la versión requerida es %s.","ra_License must be converted":"La licencia debe convertirse a una versión más reciente. Puedes hacerlo en tu perfil de iobroker.net.","ra_License not found in license manager. Do you want to read licenses from iobroker.net?":"Licencia no encontrada en el administrador de licencias. ¿Quieres actualizar las licencias de iobroker.net?","ra_Listen on all IPs":"Escuche en todas las IP","ra_Load configuration from file":"Cargar configuración desde archivo",ra_Longitude:stt,'ra_May not trigger "updateLicenses"':'No puede activar "updateLicenses"',ra_Message:ltt,ra_Monday:ctt,"ra_Move down":"Mover hacia abajo","ra_Move up":"Ascender",ra_Name:utt,"ra_No data found in file":"No se encontraron datos en el archivo","ra_No one license found in license manager":"No se encontró ninguna licencia en el administrador de licencias","ra_No response from the backend":"No hay respuesta del backend",'ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".':'Los no expertos pueden crear nuevos objetos solo en "0_userdata.0" o "alias.0".',"ra_Not a number":"No un número",ra_Objects:dtt,ra_Ok:ftt,"ra_On weekdays":"De lunes a viernes","ra_Only following structures of objects are available:":"Solo están disponibles las siguientes estructuras de objetos:","ra_Only selected":"Solo seleccionados","ra_Owner group":"Grupo propietario","ra_Owner user":"Usuario propietario","ra_Passwords are not equal!":"¡Las contraseñas no son iguales!","ra_Place your files here or click here to open the browse dialog":"Coloque sus archivos aquí o haga clic aquí para abrir el cuadro de diálogo de exploración","ra_Please confirm":"Por favor confirmar","ra_Please create license":"Por favor cree una licencia","ra_Please enter the license":"Por favor ingrese la licencia","ra_Please select file...":"Seleccione el archivo...","ra_Please select object ID...":"Por favor seleccione ID de objeto ...","ra_Port could be used by %s":"El puerto podría ser utilizado por %s","ra_Port is already used by %s":"El puerto ya está en uso por %s","ra_Private certificate":"certificado privado",ra_Product:htt,"ra_Public certificate":"Certificado público","ra_Quality code":"Calidad","ra_Refresh tree":"Actualizar árbol","ra_Reload files":"Recargar archivos",ra_Repeat:ptt,ra_Replace:mtt,"ra_Request timed out":"Tiempo de espera agotado","ra_Restrict to folder":"Restringir a carpeta",ra_Root:vtt,ra_Saturday:gtt,ra_Save:_tt,"ra_Save and close":"Guardar y cerrar","ra_Save configuration to file":"Guardar configuración en archivo","ra_Save objects tree as JSON file":"Guardar el árbol de objetos como archivo JSON","ra_Select all":"Seleccionar todo","ra_Select color":"Seleccionar el color","ra_Select predefined icon":"Seleccionar icono predefinido","ra_Select type of export":"Seleccione tipo de exportación",ra_Selected:ytt,"ra_Selected %s object(s)":"%s objetos seleccionados","ra_Serial number (UUID)":"Número de serie (UUID)",'ra_Serial number (UUID) "%s" in license is for other device.':'El número de serie (UUID) "%s" en la licencia es para otro dispositivo.',"ra_Show all folders":"Mostrar todas las carpetas","ra_Show lines between rows":"Mostrar líneas entre filas","ra_Show/Hide object descriptions":"Mostrar/ocultar descripciones de objetos","ra_Show/hide filter input":"Mostrar/ocultar entrada de filtro","ra_Some data are not stored. Discard?":"Algunos datos no se almacenan. ¿Desechar?",ra_States:btt,"ra_Suitable license not found in license manager":"Licencia adecuada no encontrada en el administrador de licencias",ra_Sunday:wtt,"ra_Suppress question for next %s minutes":"Suprimir pregunta durante los próximos %s minutos","ra_System language":"Lenguaje del sistema","ra_Take browser position":"Tomar posición desde el navegador","ra_Take position from system settings":"Tomar posición desde la configuración del sistema",'ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").':'Los expertos pueden crear objetos en todas partes excepto desde el segundo nivel (por ejemplo, "vis.0" o "javascript.0").',"ra_The page you are looking for was not found":"No se encontró la página que busca","ra_The schedule will be executed every minute. Are you sure?":"El cronograma se ejecutará cada minuto. ¿Estás seguro?","ra_The schedule will be executed every second. Are you sure?":"El cronograma se ejecutará cada segundo. ¿Estás seguro?",ra_Thursday:Stt,ra_Timestamp:xtt,"ra_Toggle expert mode":"Alternar modo experto","ra_Toggle the states view":"Alternar la vista de estados","ra_Toggle view mode":"Alternar modo de vista","ra_Too big":"Demasiado grande","ra_Too small":"Demasiado pequeña","ra_Transparent dialog":"Diálogo transparente",ra_Tuesday:Ctt,"ra_Unknown error":"Error desconocido","ra_Unknown error!":"¡Error desconocido!",ra_Update:Ttt,"ra_Upload file":"Subir archivo","ra_Use all available let's encrypt certificates":"Utilice todos los certificados let's encrypt disponibles","ra_Use iobroker.acme adapter for letsencrypt certificates":"Use el adaptador iobroker.acme para los certificados de letsencrypt","ra_Use system settings for position":"Usar la configuración del sistema para la posición","ra_Used system settings":"Configuraciones del sistema usadas","ra_User files":"Archivos de usuario",ra_ValidTill:ktt,ra_Value:Ett,ra_Version:Dtt,"ra_View file":"Ver archivo","ra_View: %s":"Ver: %s",ra_Wednesday:Mtt,ra_Width:Ott,ra_Yes:$tt,"ra_You can export all objects or just the selected branch.":"Puede exportar todos los objetos o solo la rama seleccionada.","ra_You can filter entries by entering here some text":"Puede filtrar las entradas ingresando aquí algún texto",ra___different__:Att,ra_aclEveryone_read_object:Ptt,ra_aclEveryone_read_state:Itt,ra_aclEveryone_write_object:Rtt,ra_aclEveryone_write_state:Ltt,ra_aclGroup_read_object:Ntt,ra_aclGroup_read_state:Ftt,ra_aclGroup_write_object:ztt,ra_aclGroup_write_state:Btt,ra_aclOwner_read_object:jtt,ra_aclOwner_read_state:Wtt,ra_aclOwner_write_object:Htt,ra_aclOwner_write_state:Utt,ra_buttons:Ytt,ra_changedFrom:Vtt,ra_close:Gtt,ra_create_boolean_state:qtt,ra_create_channel:Xtt,ra_create_device:Jtt,ra_create_number_state:Ztt,ra_create_state:Ktt,ra_create_string_state:Qtt,ra_daysShortText:ert,ra_dow_Fr:trt,ra_dow_Mo:rrt,ra_dow_Sa:nrt,ra_dow_Su:art,ra_dow_Th:irt,ra_dow_Tu:ort,ra_dow_We:srt,ra_expertMode:lrt,ra_fileType_all:crt,ra_fileType_audio:urt,ra_fileType_code:drt,ra_fileType_images:frt,ra_fileType_txt:hrt,ra_fileType_video:prt,"ra_fileType_video,":"Video",ra_filter_customs:mrt,ra_filter_customs_without:vrt,ra_filter_func:grt,ra_filter_id:_rt,ra_filter_name:yrt,ra_filter_role:brt,ra_filter_room:wrt,ra_filter_type:Srt,"ra_import data from %s file":"Importar datos del archivo %s",ra_invalidConfig:xrt,ra_lastChange:Crt,ra_locally:Trt,ra_month_Apr:krt,ra_month_Aug:Ert,ra_month_Dec:Drt,ra_month_Feb:Mrt,ra_month_Jan:Ort,ra_month_Jul:$rt,ra_month_Jun:Art,ra_month_Mai:Prt,ra_month_Mar:Irt,ra_month_Nov:Rrt,ra_month_Oct:Lrt,ra_month_Sep:Nrt,ra_months_Apr:Frt,ra_months_Aug:zrt,ra_months_Dec:Brt,ra_months_Feb:jrt,ra_months_Jan:Wrt,ra_months_Jul:Hrt,ra_months_Jun:Urt,ra_months_Mai:Yrt,ra_months_Mar:Vrt,ra_months_Nov:Grt,ra_months_Oct:qrt,ra_months_Sep:Xrt,ra_none:Jrt,ra_object_changed_by:Zrt,ra_object_changed_by_user:Krt,ra_otherConfig:Qrt,ra_qualityCode:ent,ra_repeat:tnt,ra_select_folder_hint:rnt,ra_state_changed_by:nnt,ra_state_changed_from:ant,ra_timestamp:int,ra_tooltip_ack:ont,ra_tooltip_comment:snt,ra_tooltip_copyState:lnt,ra_tooltip_customConfig:cnt,ra_tooltip_deleteObject:unt,ra_tooltip_editObject:dnt,ra_tooltip_editState:fnt,ra_tooltip_from:hnt,ra_tooltip_lc:pnt,ra_tooltip_quality:mnt,ra_tooltip_ts:vnt,ra_tooltip_user:gnt,ra_tooltip_value:_nt,"ra_use seconds":"usar segundos",ra_val:ynt,"ra_via internet":"vía Internet",ra_warning_every_minute:bnt,ra_warning_every_second:wnt,sc_cron:Snt,sc_date:xnt,sc_dates:Cnt,sc_dow:Tnt,sc_dows:knt,sc_every:Ent,sc_everyN_dates:Dnt,sc_everyN_dow:Mnt,sc_everyN_dows:Ont,sc_everyN_hours:$nt,sc_everyN_minutes:Ant,sc_everyN_months:Pnt,sc_everyN_seconds:Int,sc_every_dates:Rnt,sc_every_dow:Lnt,sc_every_dows:Nnt,sc_every_hours:Fnt,sc_every_minutes:znt,sc_every_months:Bnt,sc_every_seconds:jnt,sc_from:Wnt,sc_hours:Hnt,sc_interval:Unt,sc_intervalBetween:Ynt,sc_invalid_cron:Vnt,sc_minutes:Gnt,sc_months:qnt,sc_once:Xnt,sc_period:Jnt,sc_seconds:Znt,sc_simple:Knt,sc_specific:Qnt,sc_specific_dates:eat,sc_specific_dow:tat,sc_specific_dows:rat,sc_specific_hours:nat,sc_specific_minutes:aat,sc_specific_months:iat,sc_specific_seconds:oat,sc_time:sat,sc_to:lat,sc_wizard:cat,sch_all:uat,sch_astroDay:dat,sch_astroNight:fat,sch_astro_dawn:hat,sch_astro_dusk:pat,sch_astro_goldenHour:mat,sch_astro_goldenHourEnd:vat,sch_astro_nadir:gat,sch_astro_nauticalDawn:_at,sch_astro_nauticalDusk:yat,sch_astro_night:bat,sch_astro_nightEnd:wat,sch_astro_solarNoon:Sat,sch_astro_sunrise:xat,sch_astro_sunriseEnd:Cat,sch_astro_sunset:Tat,sch_astro_sunsetStart:kat,sch_at:Eat,sch_desc_atTime:Dat,sch_desc_everyDay:Mat,sch_desc_everyHour:Oat,sch_desc_everyMinute:$at,sch_desc_everyMonth:Aat,sch_desc_everyNDay:Pat,sch_desc_everyNHours:Iat,sch_desc_everyNMinutes:Rat,sch_desc_everyNMonths:Lat,sch_desc_everyNWeeks:Nat,sch_desc_everyNYears:Fat,sch_desc_everyWeek:zat,sch_desc_everyYear:Bat,sch_desc_intervalFromTo:jat,sch_desc_never:Wat,sch_desc_onDate:Hat,sch_desc_onDates:Uat,sch_desc_onEveryDate:Yat,sch_desc_onMonth:Vat,sch_desc_onMonths:Gat,sch_desc_onWeekday:qat,sch_desc_onWeekdays:Xat,sch_desc_onWeekends:Jat,sch_desc_onWorkdays:Zat,sch_desc_onceInPast:Kat,sch_desc_once_on:Qat,sch_desc_validFrom:eit,sch_desc_validFromTo:tit,sch_desc_validTo:rit,sch_every:nit,sch_exactTime:ait,sch_from:iit,sch_fromTo:oit,sch_intervalTime:sit,sch_invert:lit,sch_no_one:cit,sch_on:uit,sch_period:dit,sch_periodDaily:fit,sch_periodDates:hit,sch_periodDay:pit,sch_periodEvery:mit,sch_periodEveryDay:vit,sch_periodEveryMonth:git,sch_periodEveryWeek:_it,sch_periodEveryYear:yit,sch_periodHours:bit,sch_periodMinutes:wit,sch_periodMonth:Sit,sch_periodMonthly:xit,sch_periodOnce:Cit,sch_periodSpecificMonths:Tit,sch_periodWeek:kit,sch_periodWeekdays:Eit,sch_periodWeekend:Dit,sch_periodWeekly:Mit,sch_periodWorkdays:Oit,sch_periodYear:$it,sch_periodYearly:Ait,sch_specificTime:Pit,sch_time:Iit,sch_to:Rit,sch_valid:Lit,sch_validFrom:Nit,sch_validTo:Fit,sch_wholeDay:zit,sch_yearEveryMonth:Bit},Wit="Dodać",Hit="Anuluj",Uit="Kategorie",Yit="Sprawdzony",Vit="Kasować",Git="Blisko",qit="Handlowy",Xit="Konfiguruj",Jit="Połączony",Zit="Skopiowano",Kit="Stwórz",Qit="Przyciąć",eot="Delete",tot="Usunąć",rot="Wyrzucać",not="Niepowiązany",aot="Błąd",iot="Filtr",oot="Piątek",sot="Szerokość",lot="Długość geograficzna",cot="Wiadomość",uot="Poniedziałek",dot="Nazwa",fot="Obiekty",hot="Dobrze",pot="Produkt",mot="Powtarzać",vot="Zastępować",got="Korzeń",_ot="Sobota",yot="Zapisać",bot="Wybrany",wot="Stany",Sot="Niedziela",xot="Czwartek",Cot="Znak czasu",Tot="Wtorek",kot="Aktualizacja",Eot="Obowiązuje do",Dot="Wartość",Mot="Wersja",Oot="Środa",$ot="Szerokość",Aot="Tak",Pot="różne",Iot="Każdy może czytać obiekt",Rot="Każdy może czytać stan",Lot="Każdy może pisać przedmiot",Not="Każdy może pisać stan",Fot="Grupa może odczytać obiekt",zot="Grupa może odczytać stan",Bot="Grupa może pisać obiekt",jot="Grupa może pisać stan",Wot="Właściciel może czytać obiekt",Hot="Właściciel może odczytać stan",Uot="Właściciel może napisać obiekt",Yot="Właściciel może pisać stan",Vot="guziki",Got="Zmieniony z",qot="blisko",Xot="Utwórz stan logiczny",Jot="Utwórz kanał",Zot="Utwórz urządzenie",Kot="Utwórz stan liczbowy",Qot="Utwórz stan",est="Utwórz stan ciągu",tst="d.",rst="Ks",nst="Mo",ast="Sa",ist="Su",ost="Th",sst="Tu",lst="My",cst="Tryb ekspercki",ust="Wszystkie pliki",dst="Audio",fst="Kod/JSON",hst="Obrazy",pst="Tekst",mst="Wideo",vst="Ustawienia",gst="bez",_st="Funkcjonować",yst="ID",bst="Imię",wst="Rola",Sst="Sala",xst="Rodzaj",Cst="Nieprawidłowe ustawienia",Tst="Ostatnia zmiana",kst="lokalnie",Est="kwiecień",Dst="sierpień",Mst="grudzień",Ost="luty",$st="styczeń",Ast="lipiec",Pst="czerwiec",Ist="Mai",Rst="Zniszczyć",Lst="listopad",Nst="październik",Fst="wrzesień",zst="kwiecień",Bst="sierpień",jst="grudzień",Wst="luty",Hst="styczeń",Ust="lipiec",Yst="czerwiec",Vst="Mai",Gst="Zniszczyć",qst="listopad",Xst="październik",Jst="wrzesień",Zst="Żaden",Kst="Obiekt zmieniony przez",Qst="Obiekt ostatnio zmieniony o godz",elt="Ustawienia z innego adaptera %s",tlt="Kod jakości",rlt="powtarzać",nlt="Aby wybrać folder, wystarczy przytrzymać klawisz „shift”, klikając folder.",alt="Stan zmieniony przez",ilt="Obiekt zmieniony z",olt="Znak czasu",slt="Potwierdzon",llt="Komentarz",clt="Skopiuj wartość stanu",ult="Własne ustawienia",dlt="Usuń obiekt",flt="Edytuj obiekt",hlt="Edytuj wartość stanu",plt="Z",mlt="Ostatnia zmiana",vlt="Jakość",glt="Znak czasu",_lt="Użytkownik",ylt="Wartość",blt="Wartość",wlt="Ostrzeżenie: Zadanie CRON będzie uruchamiane co minutę w określonym przedziale czasowym!",Slt="Ostrzeżenie: Zadanie CRON będzie uruchamiane co sekundę w określonym przedziale czasowym!",xlt="CRON",Clt="Data",Tlt="Daktyle",klt="Dzień",Elt="Dzień tygodnia",Dlt="Każdy",Mlt="co N dni",Olt="w każdy N-ty dzień tygodnia",$lt="co N dnia tygodnia",Alt="co N godzin",Plt="co N minut",Ilt="co N miesięcy",Rlt="co N sekund",Llt="codziennie",Nlt="każdy dzień tygodnia",Flt="każdy dzień tygodnia",zlt="co godzinę",Blt="każda minuta",jlt="każdego miesiąca",Wlt="każda sekunda",Hlt="Od",Ult="godziny",Ylt="Interwał",Vlt="Interwał między",Glt="Nieprawidłowy CRON",qlt="Minuty",Xlt="miesięcy",Jlt="Pewnego razu",Zlt="Kropka",Klt="sekundy",Qlt="Prosty",ect="Określony czas",tct="konkretne daty",rct="określone dni tygodnia",nct="określony dzień tygodni",act="określone godziny",ict="określone minuty",oct="określone miesiące",sct="określone sekundy",lct="Czas",cct="Do",uct="Czarodziej",dct="wszystko",fct="Dzień Astro",hct="Noc Astro",pct="Świt",mct="Zmierzch",vct="złota godzina",gct="Koniec złotej godziny",_ct="Nadir",yct="Morski świt",bct="Morski zmierzch",wct="Noc",Sct="Koniec nocy",xct="Południe słoneczne",Cct="wschód słońca",Tct="Koniec wschodu słońca",kct="Zachód słońca",Ect="Początek zachodu słońca",Dct="w",Mct="na %s",Oct="codziennie",$ct="co godzinę",Act="każda minuta",Pct="każdego miesiąca",Ict="każdego dnia %s",Rct="co %s godzin",Lct="co %s minut",Nct="co %s miesięcy",Fct="co %s tygodni",zct="co %s lat",Bct="co tydzień",jct="każdego roku",Wct="od %s do %s",Hct="nigdy",Uct="na %s z %s",Yct="na %s i %s z",Vct="w każdą datę",Gct="%s",qct="%s i %s",Xct="na %s",Jct="na %s i %s",Zct="w weekendy",Kct="w dni robocze",Qct="nie będzie już wykonywany, ponieważ start jest w przeszłości",eut="na %s",tut="z %s",rut="Wykonaj od do",nut="do %s",aut="każdy",iut="Określony czas",out="od",sut="Od-do",lut="Czas przerwy",cut="odwracać",uut="Żaden",dut="na",fut="Kropka",hut="Codziennie",put="Daktyle",mut="Dzień",vut="Każdy",gut="Codziennie",_ut="Każdego miesiąca",yut="Co tydzień",but="Każdego roku",wut="godziny",Sut="Minuty",xut="miesiąc",Cut="Miesięczny",Tut="Pewnego razu",kut="Określone miesiące",Eut="Tydzień",Dut="Dni powszednie",Mut="Weekend",Out="Co tydzień",$ut="Dni robocze",Aut="Rok",Put="Rocznie",Iut="Określony czas",Rut="Czas",Lut="do",Nut="Ważny",Fut="od",zut="do",But="Cały dzień",jut="każdego miesiąca",Wut={"ra_%s links from aliases":"%s linków z aliasów","ra_%s object(s) processed":"Przetworzono %s obiektów","ra_%s was imported":"%s został zaimportowany","ra_Accept license":"Zaakceptuj licencję","ra_Add new child object to selected parent":"Dodaj nowy obiekt potomny do wybranego rodzica","ra_Add objects tree from JSON file":"Dodaj drzewo obiektów z pliku JSON","ra_Add row":"Dodaj wiersz","ra_Advanced options":"Zaawansowane opcje","ra_All items are filtered out":"Wszystkie pozycje są odfiltrowane","ra_All objects":"Wszystkie obiekty",ra_Append:Wit,"ra_Append %s entries or replace existing?":"Dołączyć wpisy %s czy zastąpić istniejące?","ra_Append or replace?":"Dołączyć czy zastąpić?","ra_Are you sure?":"Jesteś pewny?","ra_Auto (no custom columns)":"Auto (bez kolumn niestandardowych)","ra_Back to %s":"Powrót do %s","ra_Background image":"Zdjęcie w tle",ra_Cancel:Hit,"ra_Cannot add items with set filter":"Nie można dodać elementów z ustawionym filtrem","ra_Cannot decode license":"Nie można zdekodować licencji","ra_Cannot determine position: System settings are empty and GPS detection is disabled in browser":"Nie można określić pozycji: ustawienia systemu są puste, a wykrywanie GPS jest wyłączone w przeglądarce",'ra_Cannot find "%s"':"Nie można znaleźć „%s”",'ra_Cannot read "%s"':"Nie można odczytać „%s”","ra_Cannot read licenses: %s":"Nie można odczytać licencji: %s","ra_Cannot retrieve options, as instance is offline":"Nie można pobrać opcji, ponieważ instancja jest w trybie offline","ra_Cannot update attribute, because not found in the object":"Nie można zaktualizować atrybutu, ponieważ nie znaleziono go w obiekcie","ra_Cannot upload":"Nie można przesłać",ra_Categories:Uit,"ra_Chained certificate":"Certyfikat łańcuchowy","ra_Change color theme":"Zmień motyw kolorystyczny","ra_Changed from":"Zmieniony z","ra_Channel → State":"Kanał → Stan","ra_Check license":"Sprawdź licencję",ra_Checked:Yit,ra_Clear:Vit,"ra_Clear filter":"Czysty filtr","ra_Clear icon":"Wyczyść ikonę","ra_Clone current row":"Sklonuj bieżący wiersz",ra_Close:Git,"ra_Collapse all nodes":"Zwiń wszystkie węzły","ra_Collapse one step node":"Zwiń o jeden poziom",ra_Commercial:qit,ra_Configure:Xit,"ra_Configure visible columns":"Skonfiguruj widoczne kolumny","ra_Confirm deletion of %s":"Potwierdź usunięcie %s",ra_Connected:Jit,ra_Copied:Zit,"ra_Copied %s":'Skopiowano "%s"',"ra_Copy content":"Kopiuj zawartość",ra_Create:Kit,"ra_Create alias":"Utwórz alias","ra_Create folder":"Utwórz folder","ra_Create new folder in %s":"Utwórz nowy folder w %s",ra_Crop:Qit,"ra_Define CRON...":"Zdefiniuj CRON...","ra_Define functions":"Zdefiniuj funkcje","ra_Define rooms":"Zdefiniuj pokoje","ra_Define schedule":"Zdefiniuj harmonogram","ra_Define schedule...":"Zdefiniuj harmonogram ...",ra_Del:eot,ra_Delete:tot,"ra_Delete (no confirm for 5 mins)":"Usuń (bez potwierdzenia przez 5 minut)","ra_Delete current row":"Usuń bieżący wiersz","ra_Deselect all":"Odznacz wszystko","ra_Device → Channel → State":"Urządzenie → Kanał → Stan",ra_Discard:rot,ra_Disconnected:not,"ra_Do not export values of states":"Nie eksportuj wartości stanów","ra_Do not use let's encrypt":"Nie używaj zaszyfrujmy","ra_Double click to reset table layout":"Kliknij dwukrotnie, aby zresetować układ tabeli","ra_Drag 'n' drop some files here, or click to select files":"Przeciągnij i upuść kilka plików tutaj lub kliknij, aby wybrać pliki","ra_Drop file here":"Upuść plik tutaj","ra_Drop the files here...":"Upuść plik tutaj...","ra_Duplicate name":"Zduplikowana nazwa","ra_Edit ACL":"Edytuj listy ACL","ra_Edit alias":"Edytuj alias","ra_Edit custom config":"Edytuj konfigurację niestandardową","ra_Edit function":"Funkcja edycji","ra_Edit object field":"Edytuj pole obiektu","ra_Edit role":"Edytuj rolę","ra_Edit room":"Edytuj pokój","ra_Edit value":"Edytuj wartość",ra_Error:aot,"ra_Expand all nodes":"Rozwiń wszystkie węzły","ra_Expand one step node":"Rozwiń o jeden poziom","ra_Export data to %s file":"Eksportuj dane do pliku %s","ra_Failed to open JSON File":"Nie udało się otworzyć pliku JSON","ra_Fallback custom certificates":"Niestandardowe certyfikaty zastępcze","ra_File is too big. Max %sk allowed. Try use SVG.":"Plik jest za duży. Maksymalna dozwolona liczba %sk. Spróbuj użyć SVG.",ra_Filter:iot,"ra_Filter files":"Filtruj pliki","ra_Folder name":"Nazwa folderu","ra_Folder → Channel → State":"Folder → Kanał → Stan","ra_Folder → Device → Channel → State":"Folder → Urządzenie → Kanał → Stan","ra_Folder → State":"Folder → Stan","ra_Folders always first":"Foldery zawsze na pierwszym miejscu",ra_Friday:oot,"ra_Good luck":"Powodzenia","ra_Hide empty folders":"Ukryj puste foldery","ra_If no file will be created in the folder, it will disappear after the browser closed":"Jeśli w folderze nie zostanie utworzony żaden plik, zniknie on po zamknięciu przeglądarki","ra_Import data from %s file":"Importuj dane z pliku %s","ra_Import from %s":"Importuj z %s","ra_Instance %s is alive":"Instancja %s jest aktywna","ra_Instance %s is not alive":"Instancja TEKST nie jest aktywna","ra_Instance is not alive":"Instancja nie jest aktywna","ra_Invalid CRON":"Nieprawidłowy CRON","ra_Invalid JSON":"Nieprawidłowy JSON","ra_Invalid answer from server":"Nieprawidłowa odpowiedź z serwera","ra_Invalid parent folder!":"Nieprawidłowy folder nadrzędny!","ra_Invalid structure":"Nieprawidłowa struktura","ra_JSON editor":"Edytor JSON","ra_Last change":"Ostatnia zmiana",ra_Latitude:sot,"ra_License %s":"Licencja %s","ra_License agreement":"Umowa licencyjna","ra_License does not exist":"Licencja nie istnieje","ra_License expired on %s":"Licencja wygasła w dniu %s",'ra_License for other product "%s"':"Licencja na inny produkt „%s”","ra_License is for version %s, but required version is %s.":"Licencja dotyczy wersji %s, ale wymagana wersja to %s.","ra_License must be converted":"Licencja musi zostać przekonwertowana na nowszą wersję. Możesz to zrobić w swoim profilu iobroker.net.","ra_License not found in license manager. Do you want to read licenses from iobroker.net?":"Nie znaleziono licencji w menedżerze licencji. Chcesz zaktualizować licencje z iobroker.net?","ra_Listen on all IPs":"Słuchaj na wszystkich adresach IP","ra_Load configuration from file":"Załaduj konfigurację z pliku",ra_Longitude:lot,'ra_May not trigger "updateLicenses"':"Może nie uruchamiać „updateLicenses”",ra_Message:cot,ra_Monday:uot,"ra_Move down":"Padnij","ra_Move up":"Podnieść",ra_Name:dot,"ra_No data found in file":"Nie znaleziono danych w pliku","ra_No one license found in license manager":"Nie znaleziono licencji w menedżerze licencji","ra_No response from the backend":"Brak odpowiedzi z zaplecza",'ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".':"Osoby nie będące ekspertami mogą tworzyć nowe obiekty tylko w „0_userdata.0” lub „alias.0”.","ra_Not a number":"Nie numer",ra_Objects:fot,ra_Ok:hot,"ra_On weekdays":"W dni powszednie","ra_Only following structures of objects are available:":"Dostępne są tylko następujące struktury obiektów:","ra_Only selected":"Tylko wybrane","ra_Owner group":"Grupa właścicieli","ra_Owner user":"Właściciel użytkownika","ra_Passwords are not equal!":"Hasła nie są równe!","ra_Place your files here or click here to open the browse dialog":"Umieść swoje pliki tutaj lub kliknij tutaj, aby otworzyć okno dialogowe przeglądania","ra_Please confirm":"Proszę potwierdzić","ra_Please create license":"Utwórz licencję","ra_Please enter the license":"Proszę wprowadzić licencję","ra_Please select file...":"Wybierz plik...","ra_Please select object ID...":"Wybierz identyfikator obiektu ...","ra_Port could be used by %s":"Port może być używany przez %s","ra_Port is already used by %s":"Port jest już używany przez %s","ra_Private certificate":"Prywatny certyfikat",ra_Product:pot,"ra_Public certificate":"Certyfikat publiczny","ra_Quality code":"Jakości","ra_Refresh tree":"Odśwież drzewo","ra_Reload files":"Załaduj ponownie pliki",ra_Repeat:mot,ra_Replace:vot,"ra_Request timed out":"Upłynął limit czasu żądania","ra_Restrict to folder":"Ogranicz do folderu",ra_Root:got,ra_Saturday:_ot,ra_Save:yot,"ra_Save and close":"Zapisz i zamknij","ra_Save configuration to file":"Zapisz konfigurację do pliku","ra_Save objects tree as JSON file":"Zapisz drzewo obiektów jako plik JSON","ra_Select all":"Zaznacz wszystko","ra_Select color":"Wybierz kolor","ra_Select predefined icon":"Wybierz predefiniowaną ikonę","ra_Select type of export":"Wybierz rodzaj eksportu",ra_Selected:bot,"ra_Selected %s object(s)":"Wybrane obiekty %s","ra_Serial number (UUID)":"Numer seryjny (UUID)",'ra_Serial number (UUID) "%s" in license is for other device.':"Numer seryjny (UUID) „%s” w licencji dotyczy innego urządzenia.","ra_Show all folders":"Pokaż wszystkie foldery","ra_Show lines between rows":"Pokaż linie między rzędami","ra_Show/Hide object descriptions":"Pokaż/ukryj opisy obiektów","ra_Show/hide filter input":"Pokaż/ukryj wejście filtra","ra_Some data are not stored. Discard?":"Niektóre dane nie są przechowywane. Wyrzucać?",ra_States:wot,"ra_Suitable license not found in license manager":"Nie znaleziono odpowiedniej licencji w menedżerze licencji",ra_Sunday:Sot,"ra_Suppress question for next %s minutes":"Ukryj pytanie przez następne %s minut","ra_System language":"Język systemu","ra_Take browser position":"Zajmij pozycję z przeglądarki","ra_Take position from system settings":"Zajmij pozycję z ustawień systemowych",'ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").':"Eksperci mogą tworzyć obiekty wszędzie poza drugim poziomem (np. „Vis.0” lub „javascript.0”).","ra_The page you are looking for was not found":"Strona, której szukasz nie została znaleziona","ra_The schedule will be executed every minute. Are you sure?":"Harmonogram będzie wykonywany co minutę. Czy jesteś pewien?","ra_The schedule will be executed every second. Are you sure?":"Harmonogram będzie wykonywany co sekundę. Czy jesteś pewien?",ra_Thursday:xot,ra_Timestamp:Cot,"ra_Toggle expert mode":"Przełącz tryb eksperta","ra_Toggle the states view":"Przełącz widok stanów","ra_Toggle view mode":"Przełącz tryb widoku","ra_Too big":"Za duży","ra_Too small":"Za mały","ra_Transparent dialog":"Przejrzyste okno dialogowe",ra_Tuesday:Tot,"ra_Unknown error":"Nieznany błąd","ra_Unknown error!":"Nieznany błąd!",ra_Update:kot,"ra_Upload file":"Przesyłanie pliku","ra_Use all available let's encrypt certificates":"Użyj wszystkich dostępnych certyfikatów Let's Encrypt","ra_Use iobroker.acme adapter for letsencrypt certificates":"Użyj adaptera iobroker.acme dla certyfikatów letsencrypt","ra_Use system settings for position":"Użyj ustawień systemowych dla pozycji","ra_Used system settings":"Używane ustawienia systemowe","ra_User files":"Pliki użytkownika",ra_ValidTill:Eot,ra_Value:Dot,ra_Version:Mot,"ra_View file":"Zobaczyć plik","ra_View: %s":"Widok: %s",ra_Wednesday:Oot,ra_Width:$ot,ra_Yes:Aot,"ra_You can export all objects or just the selected branch.":"Możesz wyeksportować wszystkie obiekty lub tylko wybraną gałąź.","ra_You can filter entries by entering here some text":"Możesz filtrować wpisy, wpisując tutaj jakiś tekst",ra___different__:Pot,ra_aclEveryone_read_object:Iot,ra_aclEveryone_read_state:Rot,ra_aclEveryone_write_object:Lot,ra_aclEveryone_write_state:Not,ra_aclGroup_read_object:Fot,ra_aclGroup_read_state:zot,ra_aclGroup_write_object:Bot,ra_aclGroup_write_state:jot,ra_aclOwner_read_object:Wot,ra_aclOwner_read_state:Hot,ra_aclOwner_write_object:Uot,ra_aclOwner_write_state:Yot,ra_buttons:Vot,ra_changedFrom:Got,ra_close:qot,ra_create_boolean_state:Xot,ra_create_channel:Jot,ra_create_device:Zot,ra_create_number_state:Kot,ra_create_state:Qot,ra_create_string_state:est,ra_daysShortText:tst,ra_dow_Fr:rst,ra_dow_Mo:nst,ra_dow_Sa:ast,ra_dow_Su:ist,ra_dow_Th:ost,ra_dow_Tu:sst,ra_dow_We:lst,ra_expertMode:cst,ra_fileType_all:ust,ra_fileType_audio:dst,ra_fileType_code:fst,ra_fileType_images:hst,ra_fileType_txt:pst,ra_fileType_video:mst,"ra_fileType_video,":"Wideo",ra_filter_customs:vst,ra_filter_customs_without:gst,ra_filter_func:_st,ra_filter_id:yst,ra_filter_name:bst,ra_filter_role:wst,ra_filter_room:Sst,ra_filter_type:xst,"ra_import data from %s file":"Importuj dane z pliku %s",ra_invalidConfig:Cst,ra_lastChange:Tst,ra_locally:kst,ra_month_Apr:Est,ra_month_Aug:Dst,ra_month_Dec:Mst,ra_month_Feb:Ost,ra_month_Jan:$st,ra_month_Jul:Ast,ra_month_Jun:Pst,ra_month_Mai:Ist,ra_month_Mar:Rst,ra_month_Nov:Lst,ra_month_Oct:Nst,ra_month_Sep:Fst,ra_months_Apr:zst,ra_months_Aug:Bst,ra_months_Dec:jst,ra_months_Feb:Wst,ra_months_Jan:Hst,ra_months_Jul:Ust,ra_months_Jun:Yst,ra_months_Mai:Vst,ra_months_Mar:Gst,ra_months_Nov:qst,ra_months_Oct:Xst,ra_months_Sep:Jst,ra_none:Zst,ra_object_changed_by:Kst,ra_object_changed_by_user:Qst,ra_otherConfig:elt,ra_qualityCode:tlt,ra_repeat:rlt,ra_select_folder_hint:nlt,ra_state_changed_by:alt,ra_state_changed_from:ilt,ra_timestamp:olt,ra_tooltip_ack:slt,ra_tooltip_comment:llt,ra_tooltip_copyState:clt,ra_tooltip_customConfig:ult,ra_tooltip_deleteObject:dlt,ra_tooltip_editObject:flt,ra_tooltip_editState:hlt,ra_tooltip_from:plt,ra_tooltip_lc:mlt,ra_tooltip_quality:vlt,ra_tooltip_ts:glt,ra_tooltip_user:_lt,ra_tooltip_value:ylt,"ra_use seconds":"użyj sekund",ra_val:blt,"ra_via internet":"przez internet",ra_warning_every_minute:wlt,ra_warning_every_second:Slt,sc_cron:xlt,sc_date:Clt,sc_dates:Tlt,sc_dow:klt,sc_dows:Elt,sc_every:Dlt,sc_everyN_dates:Mlt,sc_everyN_dow:Olt,sc_everyN_dows:$lt,sc_everyN_hours:Alt,sc_everyN_minutes:Plt,sc_everyN_months:Ilt,sc_everyN_seconds:Rlt,sc_every_dates:Llt,sc_every_dow:Nlt,sc_every_dows:Flt,sc_every_hours:zlt,sc_every_minutes:Blt,sc_every_months:jlt,sc_every_seconds:Wlt,sc_from:Hlt,sc_hours:Ult,sc_interval:Ylt,sc_intervalBetween:Vlt,sc_invalid_cron:Glt,sc_minutes:qlt,sc_months:Xlt,sc_once:Jlt,sc_period:Zlt,sc_seconds:Klt,sc_simple:Qlt,sc_specific:ect,sc_specific_dates:tct,sc_specific_dow:rct,sc_specific_dows:nct,sc_specific_hours:act,sc_specific_minutes:ict,sc_specific_months:oct,sc_specific_seconds:sct,sc_time:lct,sc_to:cct,sc_wizard:uct,sch_all:dct,sch_astroDay:fct,sch_astroNight:hct,sch_astro_dawn:pct,sch_astro_dusk:mct,sch_astro_goldenHour:vct,sch_astro_goldenHourEnd:gct,sch_astro_nadir:_ct,sch_astro_nauticalDawn:yct,sch_astro_nauticalDusk:bct,sch_astro_night:wct,sch_astro_nightEnd:Sct,sch_astro_solarNoon:xct,sch_astro_sunrise:Cct,sch_astro_sunriseEnd:Tct,sch_astro_sunset:kct,sch_astro_sunsetStart:Ect,sch_at:Dct,sch_desc_atTime:Mct,sch_desc_everyDay:Oct,sch_desc_everyHour:$ct,sch_desc_everyMinute:Act,sch_desc_everyMonth:Pct,sch_desc_everyNDay:Ict,sch_desc_everyNHours:Rct,sch_desc_everyNMinutes:Lct,sch_desc_everyNMonths:Nct,sch_desc_everyNWeeks:Fct,sch_desc_everyNYears:zct,sch_desc_everyWeek:Bct,sch_desc_everyYear:jct,sch_desc_intervalFromTo:Wct,sch_desc_never:Hct,sch_desc_onDate:Uct,sch_desc_onDates:Yct,sch_desc_onEveryDate:Vct,sch_desc_onMonth:Gct,sch_desc_onMonths:qct,sch_desc_onWeekday:Xct,sch_desc_onWeekdays:Jct,sch_desc_onWeekends:Zct,sch_desc_onWorkdays:Kct,sch_desc_onceInPast:Qct,sch_desc_once_on:eut,sch_desc_validFrom:tut,sch_desc_validFromTo:rut,sch_desc_validTo:nut,sch_every:aut,sch_exactTime:iut,sch_from:out,sch_fromTo:sut,sch_intervalTime:lut,sch_invert:cut,sch_no_one:uut,sch_on:dut,sch_period:fut,sch_periodDaily:hut,sch_periodDates:put,sch_periodDay:mut,sch_periodEvery:vut,sch_periodEveryDay:gut,sch_periodEveryMonth:_ut,sch_periodEveryWeek:yut,sch_periodEveryYear:but,sch_periodHours:wut,sch_periodMinutes:Sut,sch_periodMonth:xut,sch_periodMonthly:Cut,sch_periodOnce:Tut,sch_periodSpecificMonths:kut,sch_periodWeek:Eut,sch_periodWeekdays:Dut,sch_periodWeekend:Mut,sch_periodWeekly:Out,sch_periodWorkdays:$ut,sch_periodYear:Aut,sch_periodYearly:Put,sch_specificTime:Iut,sch_time:Rut,sch_to:Lut,sch_valid:Nut,sch_validFrom:Fut,sch_validTo:zut,sch_wholeDay:But,sch_yearEveryMonth:jut},Hut="Додайте",Uut="Скасувати",Yut="Категорії",Vut="Перевірено",Gut="Видалити",qut="Закрити",Xut="Комерційний",Jut="Налаштувати",Zut="Підключено",Kut="Скопійовано",Qut="Створити",edt="Урожай",tdt="Delete",rdt="Видалити",ndt="Відкинути",adt="Відключено",idt="Помилка",odt="фільтр",sdt="П'ятниця",ldt="Широта",cdt="Довгота",udt="повідомлення",ddt="понеділок",fdt="Ім'я",hdt="Об'єкти",pdt="В порядку",mdt="Продукт",vdt="Повторіть",gdt="Замінити",_dt="Корінь",ydt="Субота",bdt="зберегти",wdt="Вибране",Sdt="держави",xdt="неділя",Cdt="четвер",Tdt="Мітка часу",kdt="вівторок",Edt="оновлення",Ddt="Дійсний до",Mdt="Значення",Odt="Версія",$dt="Середа",Adt="Ширина",Pdt="Так",Idt="інший",Rdt="Кожен може читати об'єкт",Ldt="Кожен може читати стан",Ndt="Кожен може написати об'єкт",Fdt="Кожен може написати стан",zdt="Група може читати об'єкт",Bdt="Група може читати стан",jdt="Група може писати об'єкт",Wdt="Група може писати стан",Hdt="Власник може читати об'єкт",Udt="Власник може читати стан",Ydt="Власник може написати об'єкт",Vdt="Власник може написати стан",Gdt="кнопки",qdt="Змінено з",Xdt="закрити",Jdt="Створіть логічний стан",Zdt="Створити канал",Kdt="Створити пристрій",Qdt="Створити номерний стан",eft="Створити состояние",tft="Створити рядковий стан",rft="днів",nft="О",aft="пн",ift="Sa",oft="Нд",sft="чт",lft="вт",cft="ми",uft="Експертний режим",dft="Всі файли",fft="Аудіо",hft="Код/JSON",pft="Зображення",mft="текст",vft="відео",gft="Налаштування",_ft="без",yft="функція",bft="ID",wft="Ім'я",Sft="Роль",xft="Кімната",Cft="Тип",Tft="Недійсні налаштування",kft="Остання зміна",Eft="локально",Dft="квіт",Mft="серп",Oft="груд",$ft="лютий",Aft="січня",Pft="лип",Ift="черв",Rft="травень",Lft="березень",Nft="Листопад",Fft="жовт",zft="вер",Bft="квіт",jft="серп",Wft="груд",Hft="лютий",Uft="січня",Yft="лип",Vft="черв",Gft="травень",qft="березень",Xft="Листопад",Jft="жовт",Zft="вер",Kft="немає",Qft="Об'єкт змінено",eht="Об'єкт востаннє змінено о",tht="Налаштування з іншого адаптера %s",rht="Код якості",nht="повторити",aht="Щоб вибрати папку, просто клацніть папку, утримуючи клавішу «Shift».",iht="Стан змінено на",oht="Об'єкт змінено з",sht="Мітка часу",lht="Визнано",cht="коментар",uht="Скопіюйте значення стану",dht="Спеціальні налаштування",fht="Видалити об'єкт",hht="Редагувати об'єкт",pht="Відредагуйте значення стану",mht="Від",vht="Востаннє змінено",ght="якість",_ht="Позначка часу",yht="Користувач",bht="Значення",wht="Значення",Sht="Попередження: завдання CRON виконуватиметься щохвилини протягом зазначеного періоду!",xht="Попередження: завдання CRON виконуватиметься кожну секунду протягом зазначеного періоду!",Cht="CRON",Tht="Дата",kht="дати",Eht="День",Dht="День тижня",Mht="кожен",Oht="кожні N днів",$ht="кожен N-й день тижня",Aht="кожні N днів тижня",Pht="кожні N годин",Iht="кожні N хвилин",Rht="кожні N місяців",Lht="кожні N секунд",Nht="кожен день",Fht="кожен день тижня",zht="кожен день тижня",Bht="щогодини",jht="кожну хвилину",Wht="щомісяця",Hht="кожна секунда",Uht="Від",Yht="години",Vht="Інтервал",Ght="Інтервал між",qht="Недійсний CRON",Xht="хвилин",Jht="місяців",Zht="Один раз",Kht="Крапка",Qht="секунд",ept="просто",tpt="Конкретний час",rpt="конкретні дати",npt="конкретний день (дні) тижня",apt="конкретний день тижня",ipt="конкретні години",opt="конкретні хвилини",spt="конкретні місяці",lpt="конкретні секунди",cpt="час",upt="до",dpt="майстер",fpt="все",hpt="Астродень",ppt="Астро ніч",mpt="Світанок",vpt="Сутінки",gpt="Золота година",_pt="Кінець золотої години",ypt="Надір",bpt="Морський світанок",wpt="Морські сутінки",Spt="ніч",xpt="Кінець ночі",Cpt="Сонячний полудень",Tpt="Схід сонця",kpt="Кінець сходу сонця",Ept="Захід сонця",Dpt="Початок заходу сонця",Mpt="в",Opt="в %s",$pt="кожен день",Apt="щогодини",Ppt="кожну хвилину",Ipt="щомісяця",Rpt="кожен %s день",Lpt="кожні %s годин",Npt="кожні %s хвилин",Fpt="кожні %s місяців",zpt="кожні %s тижнів",Bpt="кожні %s років",jpt="щотижня",Wpt="щороку",Hpt="від %s до %s",Upt="ніколи",Ypt="на %s з %s",Vpt="на %s і %s з",Gpt="на кожну дату",qpt="%s",Xpt="%s і %s",Jpt="на %s",Zpt="на %s і %s",Kpt="на вихідних",Qpt="в робочі дні",emt="більше не виконуватиметься, оскільки запуск у минулому",tmt="на %s",rmt="від %s",nmt="Виконати від до",amt="до %s",imt="кожен",omt="Конкретний час",smt="від",lmt="Від до",cmt="Час інтервалу",umt="інвертувати",dmt="немає",fmt="на",hmt="Крапка",pmt="Щодня",mmt="дати",vmt="День",gmt="кожен",_mt="Кожен день",ymt="Щомісяця",bmt="Щотижня",wmt="Щороку",Smt="години",xmt="хвилин",Cmt="місяць",Tmt="Щомісяця",kmt="Один раз",Emt="Конкретні місяці",Dmt="тиждень",Mmt="будні",Omt="Вихідні",$mt="Щотижня",Amt="робочі дні",Pmt="рік",Imt="щорічно",Rmt="Конкретний час",Lmt="час",Nmt="до",Fmt="Дійсний",zmt="від",Bmt="до",jmt="Цілий день",Wmt="щомісяця",Hmt={"ra_%s links from aliases":"%s посилань із псевдонімів","ra_%s object(s) processed":"Оброблено %s об’єктів","ra_%s was imported":"%s було імпортовано","ra_Accept license":"Прийняти ліцензію","ra_Add new child object to selected parent":"Додати новий дочірній об’єкт до вибраного батьківського","ra_Add objects tree from JSON file":"Додайте дерево об’єктів із файлу JSON","ra_Add row":"Додати рядок","ra_Advanced options":"Розширені опції","ra_All items are filtered out":"Усі елементи відфільтровано","ra_All objects":"Всі об'єкти",ra_Append:Hut,"ra_Append %s entries or replace existing?":"Додати %s записів чи замінити наявні?","ra_Append or replace?":"Додати чи замінити?","ra_Are you sure?":"Ти впевнений?","ra_Auto (no custom columns)":"Автоматично (без спеціальних стовпців)","ra_Back to %s":"Назад до %s","ra_Background image":"Фонове зображення",ra_Cancel:Uut,"ra_Cannot add items with set filter":"Неможливо додати елементи зі встановленим фільтром","ra_Cannot decode license":"Неможливо розшифрувати ліцензію","ra_Cannot determine position: System settings are empty and GPS detection is disabled in browser":"Неможливо визначити положення: системні налаштування порожні, а визначення GPS вимкнено в браузері",'ra_Cannot find "%s"':'Не вдається знайти "%s"','ra_Cannot read "%s"':'Неможливо прочитати "%s"',"ra_Cannot read licenses: %s":"Неможливо прочитати ліцензії: %s","ra_Cannot retrieve options, as instance is offline":"Неможливо отримати параметри, оскільки екземпляр офлайн","ra_Cannot update attribute, because not found in the object":"Неможливо оновити атрибут, оскільки його не знайдено в об’єкті","ra_Cannot upload":"Неможливо завантажити",ra_Categories:Yut,"ra_Chained certificate":"Прикутий сертифікат","ra_Change color theme":"Змінити кольорову тему","ra_Changed from":"Змінено з","ra_Channel → State":"Канал → Стан","ra_Check license":"Перевірити ліцензію",ra_Checked:Vut,ra_Clear:Gut,"ra_Clear filter":"Очистити фільтр","ra_Clear icon":"Очистити значок","ra_Clone current row":"Клонувати поточний рядок",ra_Close:qut,"ra_Collapse all nodes":"Згорнути всі вузли","ra_Collapse one step node":"Згорнути на один рівень",ra_Commercial:Xut,ra_Configure:Jut,"ra_Configure visible columns":"Налаштувати видимі стовпці","ra_Confirm deletion of %s":"Підтвердити видалення %s",ra_Connected:Zut,ra_Copied:Kut,"ra_Copied %s":'Скопійовано "%s"',"ra_Copy content":"Скопіюйте вміст",ra_Create:Qut,"ra_Create alias":"Створити псевдонім","ra_Create folder":"Створити папку","ra_Create new folder in %s":"Створіть нову папку в %s",ra_Crop:edt,"ra_Define CRON...":"Визначити CRON...","ra_Define functions":"Визначити функції","ra_Define rooms":"Визначте кімнати","ra_Define schedule":"Визначити розклад","ra_Define schedule...":"Визначити розклад...",ra_Del:tdt,ra_Delete:rdt,"ra_Delete (no confirm for 5 mins)":"Видалити (без підтвердження протягом 5 хвилин)","ra_Delete current row":"Видалити поточний рядок","ra_Deselect all":"Скасувати вибір усіх","ra_Device → Channel → State":"Пристрій → Канал → Стан",ra_Discard:ndt,ra_Disconnected:adt,"ra_Do not export values of states":"Не експортуйте значення станів","ra_Do not use let's encrypt":"Не використовуйте let's encrypt","ra_Double click to reset table layout":"Двічі клацніть, щоб скинути макет таблиці","ra_Drag 'n' drop some files here, or click to select files":"Перетягніть деякі файли сюди або натисніть, щоб вибрати файли","ra_Drop file here":"Перетягніть файл сюди","ra_Drop the files here...":"Перетягніть файл сюди...","ra_Duplicate name":"Повторюване ім'я","ra_Edit ACL":"Редагувати ACL","ra_Edit alias":"Редагувати псевдонім","ra_Edit custom config":"Редагувати спеціальну конфігурацію","ra_Edit function":"функція редагування","ra_Edit object field":"Поле редагування об'єкта","ra_Edit role":"Редагувати роль","ra_Edit room":"Редагувати кімнату","ra_Edit value":"Редагувати значення",ra_Error:idt,"ra_Expand all nodes":"Розгорнути всі вузли","ra_Expand one step node":"Розгорніть один рівень","ra_Export data to %s file":"Експортувати дані у файл %s","ra_Failed to open JSON File":"Не вдалося відкрити файл JSON","ra_Fallback custom certificates":"Запасні спеціальні сертифікати","ra_File is too big. Max %sk allowed. Try use SVG.":"Файл завеликий. Максимально дозволено %sk. Спробуйте використовувати SVG.",ra_Filter:odt,"ra_Filter files":"Фільтр файлів","ra_Folder name":"Назва папки","ra_Folder → Channel → State":"Папка → Канал → Стан","ra_Folder → Device → Channel → State":"Папка → Пристрій → Канал → Стан","ra_Folder → State":"Папка → Стан","ra_Folders always first":"Папки завжди першими",ra_Friday:sdt,"ra_Good luck":"Удачі","ra_Hide empty folders":"Приховати порожні папки","ra_If no file will be created in the folder, it will disappear after the browser closed":"Якщо в папці не буде створено файл, він зникне після закриття браузера","ra_Import data from %s file":"Імпортувати дані з файлу %s","ra_Import from %s":"Імпортувати з %s","ra_Instance %s is alive":"Примірник %s живий","ra_Instance %s is not alive":"Примірник %s не живий","ra_Instance is not alive":"Примірник не живий","ra_Invalid CRON":"Недійсний CRON","ra_Invalid JSON":"Недійсний JSON","ra_Invalid answer from server":"Недійсна відповідь від сервера","ra_Invalid parent folder!":"Недійсна батьківська папка!","ra_Invalid structure":"Недійсна структура","ra_JSON editor":"Редактор JSON","ra_Last change":"Остання зміна",ra_Latitude:ldt,"ra_License %s":"Ліцензія %s","ra_License agreement":"Ліцензійна угода","ra_License does not exist":"Ліцензії не існує","ra_License expired on %s":"Термін дії ліцензії закінчився %s",'ra_License for other product "%s"':'Ліцензія на інший продукт "%s"',"ra_License is for version %s, but required version is %s.":"Ліцензія для версії %s, але потрібна версія %s.","ra_License must be converted":"Ліцензію необхідно конвертувати до новішої версії. Ви можете зробити це у своєму профілі на iobroker.net.","ra_License not found in license manager. Do you want to read licenses from iobroker.net?":"Ліцензія не знайдена в менеджері ліцензій. Хочете оновити ліцензії з iobroker.net?","ra_Listen on all IPs":"Прослуховування на всіх IP","ra_Load configuration from file":"Завантажити конфігурацію з файлу",ra_Longitude:cdt,'ra_May not trigger "updateLicenses"':'Може не запускати "updateLicenses"',ra_Message:udt,ra_Monday:ddt,"ra_Move down":"Рухатися вниз","ra_Move up":"Рухатися вгору",ra_Name:fdt,"ra_No data found in file":"Немає даних у файлі","ra_No one license found in license manager":"У менеджері ліцензій не знайдено жодної ліцензії","ra_No response from the backend":"Немає відповіді від сервера",'ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".':"Неексперти можуть створювати нові об’єкти лише в «0_userdata.0» або «alias.0».","ra_Not a number":"Не номер",ra_Objects:hdt,ra_Ok:pdt,"ra_On weekdays":"В будні дні","ra_Only following structures of objects are available:":"Доступні тільки такі структури об'єктів:","ra_Only selected":"Тільки обрані","ra_Owner group":"Група власників","ra_Owner user":"Користувач-власник","ra_Passwords are not equal!":"Паролі не бувають рівними!","ra_Place your files here or click here to open the browse dialog":"Розмістіть свої файли тут або натисніть тут, щоб відкрити діалогове вікно перегляду","ra_Please confirm":"Будь-ласка підтвердіть","ra_Please create license":"Будь ласка, створіть ліцензію","ra_Please enter the license":"Будь ласка, введіть ліцензію","ra_Please select file...":"Виберіть файл...","ra_Please select object ID...":"Виберіть ідентифікатор об'єкта...","ra_Port could be used by %s":"Порт може використовуватися %s","ra_Port is already used by %s":"Порт уже використовується %s","ra_Private certificate":"Приватний сертифікат",ra_Product:mdt,"ra_Public certificate":"Публічний сертифікат","ra_Quality code":"якість","ra_Refresh tree":"Оновити дерево","ra_Reload files":"Перезавантажте файли",ra_Repeat:vdt,ra_Replace:gdt,"ra_Request timed out":"Час запиту вичерпано","ra_Restrict to folder":"Обмежити папкою",ra_Root:_dt,ra_Saturday:ydt,ra_Save:bdt,"ra_Save and close":"Зберегти та закрити","ra_Save configuration to file":"Зберегти конфігурацію у файл","ra_Save objects tree as JSON file":"Зберегти дерево об’єктів як файл JSON","ra_Select all":"Вибрати все","ra_Select color":"Виберіть колір","ra_Select predefined icon":"Виберіть попередньо визначений значок","ra_Select type of export":"Виберіть тип експорту",ra_Selected:wdt,"ra_Selected %s object(s)":"Вибрані об’єкти %s","ra_Serial number (UUID)":"Серійний номер (UUID)",'ra_Serial number (UUID) "%s" in license is for other device.':'Серійний номер (UUID) "%s" у ліцензії призначений для іншого пристрою.',"ra_Show all folders":"Показати всі папки","ra_Show lines between rows":"Показувати лінії між рядками","ra_Show/Hide object descriptions":"Показати/Сховати описи об’єктів","ra_Show/hide filter input":"Показати/сховати введення фільтра","ra_Some data are not stored. Discard?":"Деякі дані не зберігаються. Відкинути?",ra_States:Sdt,"ra_Suitable license not found in license manager":"Відповідна ліцензія не знайдена в менеджері ліцензій",ra_Sunday:xdt,"ra_Suppress question for next %s minutes":"Приховати запитання на наступні %s хвилин","ra_System language":"Системна мова","ra_Take browser position":"Займіть позицію з браузера","ra_Take position from system settings":"Займіть позицію в налаштуваннях системи",'ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").':"Експерти можуть створювати об’єкти всюди, крім другого рівня (наприклад, «vis.0» або «javascript.0»).","ra_The page you are looking for was not found":"Сторінка, яку ви шукаєте, не знайдена","ra_The schedule will be executed every minute. Are you sure?":"Розклад буде виконуватися щохвилини. Ви впевнені?","ra_The schedule will be executed every second. Are you sure?":"Розклад буде виконуватися щосекунди. Ви впевнені?",ra_Thursday:Cdt,ra_Timestamp:Tdt,"ra_Toggle expert mode":"Перемкнути експертний режим","ra_Toggle the states view":"Перемкнути перегляд штатів","ra_Toggle view mode":"Перемкнути режим перегляду","ra_Too big":"Занадто великий","ra_Too small":"Занадто малий","ra_Transparent dialog":"Прозорий діалог",ra_Tuesday:kdt,"ra_Unknown error":"Невідома помилка","ra_Unknown error!":"Невідома помилка!",ra_Update:Edt,"ra_Upload file":"Завантажити файл","ra_Use all available let's encrypt certificates":"Використовуйте всі доступні сертифікати let's encrypt","ra_Use iobroker.acme adapter for letsencrypt certificates":"Використовуйте адаптер iobroker.acme для сертифікатів letsencrypt","ra_Use system settings for position":"Використовуйте системні налаштування для позиції","ra_Used system settings":"Використані системні налаштування","ra_User files":"Файли користувача",ra_ValidTill:Ddt,ra_Value:Mdt,ra_Version:Odt,"ra_View file":"Переглянути файл","ra_View: %s":"Перегляд: %s",ra_Wednesday:$dt,ra_Width:Adt,ra_Yes:Pdt,"ra_You can export all objects or just the selected branch.":"Ви можете експортувати всі об’єкти або лише вибрану гілку.","ra_You can filter entries by entering here some text":"Ви можете фільтрувати записи, ввівши тут певний текст",ra___different__:Idt,ra_aclEveryone_read_object:Rdt,ra_aclEveryone_read_state:Ldt,ra_aclEveryone_write_object:Ndt,ra_aclEveryone_write_state:Fdt,ra_aclGroup_read_object:zdt,ra_aclGroup_read_state:Bdt,ra_aclGroup_write_object:jdt,ra_aclGroup_write_state:Wdt,ra_aclOwner_read_object:Hdt,ra_aclOwner_read_state:Udt,ra_aclOwner_write_object:Ydt,ra_aclOwner_write_state:Vdt,ra_buttons:Gdt,ra_changedFrom:qdt,ra_close:Xdt,ra_create_boolean_state:Jdt,ra_create_channel:Zdt,ra_create_device:Kdt,ra_create_number_state:Qdt,ra_create_state:eft,ra_create_string_state:tft,ra_daysShortText:rft,ra_dow_Fr:nft,ra_dow_Mo:aft,ra_dow_Sa:ift,ra_dow_Su:oft,ra_dow_Th:sft,ra_dow_Tu:lft,ra_dow_We:cft,ra_expertMode:uft,ra_fileType_all:dft,ra_fileType_audio:fft,ra_fileType_code:hft,ra_fileType_images:pft,ra_fileType_txt:mft,ra_fileType_video:vft,"ra_fileType_video,":"відео",ra_filter_customs:gft,ra_filter_customs_without:_ft,ra_filter_func:yft,ra_filter_id:bft,ra_filter_name:wft,ra_filter_role:Sft,ra_filter_room:xft,ra_filter_type:Cft,"ra_import data from %s file":"Імпортувати дані з файлу %s",ra_invalidConfig:Tft,ra_lastChange:kft,ra_locally:Eft,ra_month_Apr:Dft,ra_month_Aug:Mft,ra_month_Dec:Oft,ra_month_Feb:$ft,ra_month_Jan:Aft,ra_month_Jul:Pft,ra_month_Jun:Ift,ra_month_Mai:Rft,ra_month_Mar:Lft,ra_month_Nov:Nft,ra_month_Oct:Fft,ra_month_Sep:zft,ra_months_Apr:Bft,ra_months_Aug:jft,ra_months_Dec:Wft,ra_months_Feb:Hft,ra_months_Jan:Uft,ra_months_Jul:Yft,ra_months_Jun:Vft,ra_months_Mai:Gft,ra_months_Mar:qft,ra_months_Nov:Xft,ra_months_Oct:Jft,ra_months_Sep:Zft,ra_none:Kft,ra_object_changed_by:Qft,ra_object_changed_by_user:eht,ra_otherConfig:tht,ra_qualityCode:rht,ra_repeat:nht,ra_select_folder_hint:aht,ra_state_changed_by:iht,ra_state_changed_from:oht,ra_timestamp:sht,ra_tooltip_ack:lht,ra_tooltip_comment:cht,ra_tooltip_copyState:uht,ra_tooltip_customConfig:dht,ra_tooltip_deleteObject:fht,ra_tooltip_editObject:hht,ra_tooltip_editState:pht,ra_tooltip_from:mht,ra_tooltip_lc:vht,ra_tooltip_quality:ght,ra_tooltip_ts:_ht,ra_tooltip_user:yht,ra_tooltip_value:bht,"ra_use seconds":"використовуйте секунди",ra_val:wht,"ra_via internet":"через інтернет",ra_warning_every_minute:Sht,ra_warning_every_second:xht,sc_cron:Cht,sc_date:Tht,sc_dates:kht,sc_dow:Eht,sc_dows:Dht,sc_every:Mht,sc_everyN_dates:Oht,sc_everyN_dow:$ht,sc_everyN_dows:Aht,sc_everyN_hours:Pht,sc_everyN_minutes:Iht,sc_everyN_months:Rht,sc_everyN_seconds:Lht,sc_every_dates:Nht,sc_every_dow:Fht,sc_every_dows:zht,sc_every_hours:Bht,sc_every_minutes:jht,sc_every_months:Wht,sc_every_seconds:Hht,sc_from:Uht,sc_hours:Yht,sc_interval:Vht,sc_intervalBetween:Ght,sc_invalid_cron:qht,sc_minutes:Xht,sc_months:Jht,sc_once:Zht,sc_period:Kht,sc_seconds:Qht,sc_simple:ept,sc_specific:tpt,sc_specific_dates:rpt,sc_specific_dow:npt,sc_specific_dows:apt,sc_specific_hours:ipt,sc_specific_minutes:opt,sc_specific_months:spt,sc_specific_seconds:lpt,sc_time:cpt,sc_to:upt,sc_wizard:dpt,sch_all:fpt,sch_astroDay:hpt,sch_astroNight:ppt,sch_astro_dawn:mpt,sch_astro_dusk:vpt,sch_astro_goldenHour:gpt,sch_astro_goldenHourEnd:_pt,sch_astro_nadir:ypt,sch_astro_nauticalDawn:bpt,sch_astro_nauticalDusk:wpt,sch_astro_night:Spt,sch_astro_nightEnd:xpt,sch_astro_solarNoon:Cpt,sch_astro_sunrise:Tpt,sch_astro_sunriseEnd:kpt,sch_astro_sunset:Ept,sch_astro_sunsetStart:Dpt,sch_at:Mpt,sch_desc_atTime:Opt,sch_desc_everyDay:$pt,sch_desc_everyHour:Apt,sch_desc_everyMinute:Ppt,sch_desc_everyMonth:Ipt,sch_desc_everyNDay:Rpt,sch_desc_everyNHours:Lpt,sch_desc_everyNMinutes:Npt,sch_desc_everyNMonths:Fpt,sch_desc_everyNWeeks:zpt,sch_desc_everyNYears:Bpt,sch_desc_everyWeek:jpt,sch_desc_everyYear:Wpt,sch_desc_intervalFromTo:Hpt,sch_desc_never:Upt,sch_desc_onDate:Ypt,sch_desc_onDates:Vpt,sch_desc_onEveryDate:Gpt,sch_desc_onMonth:qpt,sch_desc_onMonths:Xpt,sch_desc_onWeekday:Jpt,sch_desc_onWeekdays:Zpt,sch_desc_onWeekends:Kpt,sch_desc_onWorkdays:Qpt,sch_desc_onceInPast:emt,sch_desc_once_on:tmt,sch_desc_validFrom:rmt,sch_desc_validFromTo:nmt,sch_desc_validTo:amt,sch_every:imt,sch_exactTime:omt,sch_from:smt,sch_fromTo:lmt,sch_intervalTime:cmt,sch_invert:umt,sch_no_one:dmt,sch_on:fmt,sch_period:hmt,sch_periodDaily:pmt,sch_periodDates:mmt,sch_periodDay:vmt,sch_periodEvery:gmt,sch_periodEveryDay:_mt,sch_periodEveryMonth:ymt,sch_periodEveryWeek:bmt,sch_periodEveryYear:wmt,sch_periodHours:Smt,sch_periodMinutes:xmt,sch_periodMonth:Cmt,sch_periodMonthly:Tmt,sch_periodOnce:kmt,sch_periodSpecificMonths:Emt,sch_periodWeek:Dmt,sch_periodWeekdays:Mmt,sch_periodWeekend:Omt,sch_periodWeekly:$mt,sch_periodWorkdays:Amt,sch_periodYear:Pmt,sch_periodYearly:Imt,sch_specificTime:Rmt,sch_time:Lmt,sch_to:Nmt,sch_valid:Fmt,sch_validFrom:zmt,sch_validTo:Bmt,sch_wholeDay:jmt,sch_yearEveryMonth:Wmt},Umt="附加",Ymt="取消",Vmt="类别",Gmt="勾选",qmt="删除",Xmt="关",Jmt="商业的",Zmt="配置",Kmt="连接的",Qmt="复制的",evt="创建",tvt="庄稼",rvt="Delete",nvt="删除",avt="丢弃",ivt="断开连接",ovt="错误",svt="筛选",lvt="星期五",cvt="纬度",uvt="经度",dvt="信息",fvt="周一",hvt="姓名",pvt="对象",mvt="好",vvt="产品",gvt="重复",_vt="代替",yvt="根",bvt="周六",wvt="保存",Svt="已选",xvt="状态",Cvt="星期日",Tvt="周四",kvt="时间戳记",Evt="周二",Dvt="更新资料",Mvt="有效期至",Ovt="值",$vt="版本",Avt="周三",Pvt="宽度",Ivt="是的",Rvt="不同的",Lvt="每个人都可以阅读对象",Nvt="每个人都可以阅读状态",Fvt="每个人都可以写对象",zvt="每个人都可以写状态",Bvt="组可以读取对象",jvt="群组可以读取状态",Wvt="组可以写对象",Hvt="组可以写状态",Uvt="所有者可以读取对象",Yvt="所有者可以读取状态",Vvt="所有者可以写对象",Gvt="所有者可以写状态",qvt="纽扣",Xvt="更改为",Jvt="关闭",Zvt="创建布尔状态",Kvt="创建频道",Qvt="创建设备",egt="创建号码状态",tgt="创建状态",rgt="创建字符串状态",ngt="天",agt="r",igt="莫",ogt="萨",sgt="苏",lgt="Th",cgt="Tu",ugt="我们",dgt="专家模式",fgt="所有文件",hgt="声音的",pgt="代码/JSON",mgt="图片",vgt="文本",ggt="视频",_gt="设定值",ygt="没有",bgt="功能",wgt="ID",Sgt="名称",xgt="角色",Cgt="房间",Tgt="类型",kgt="无效的设定",Egt="最后一次变更",Dgt="本地",Mgt="4月",Ogt="八月",$gt="十二月",Agt="二月",Pgt="简",Igt="七月",Rgt="君",Lgt="迈",Ngt="三月",Fgt="十一月",zgt="十月",Bgt="九月",jgt="4月",Wgt="八月",Hgt="十二月",Ugt="二月",Ygt="简",Vgt="七月",Ggt="君",qgt="迈",Xgt="三月",Jgt="十一月",Zgt="十月",Kgt="九月",Qgt="没有任何",e_t="物件变更者",t_t="对象上次更改时间为",r_t="来自其他适配器%s的设置",n_t="质量代码",a_t="重复",i_t="要选择文件夹,只需按住“shift”键单击文件夹即可。",o_t="状态由",s_t="对象已从更改",l_t="时间戳记",c_t="致谢国旗",u_t="评论",d_t="复制状态值",f_t="自定义设置",h_t="删除物件",p_t="编辑物件",m_t="编辑状态值",v_t="从",g_t="最后改变了",__t="质量",y_t="时间戳",b_t="用户",w_t="值",S_t="值",x_t="警告:CRON 作业将在指定期间内每分钟运行一次!",C_t="警告:CRON 作业将在指定期间内每秒运行一次!",T_t="周期任务",k_t="日期",E_t="日",D_t="天",M_t="星期",O_t="每",$_t="每N天",A_t="每周的第 N 天",P_t="每周N天",I_t="每N小时一次",R_t="每N分钟",L_t="每N个月",N_t="每N秒",F_t="每天",z_t="一周的每一天",B_t="一周的每一天",j_t="每小时",W_t="每分钟",H_t="每月",U_t="每秒",Y_t="从",V_t="小时",G_t="间隔",q_t="间隔时间",X_t="无效的 CRON",J_t="分钟",Z_t="月",K_t="一次",Q_t="周期",eyt="秒",tyt="简单模式",ryt="特定的时间",nyt="特定的日子",ayt="一周中的特定日子",iyt="特定的一周",oyt="特定的小时",syt="特定的分钟",lyt="特定的月份",cyt="特定的描述",uyt="时间",dyt="至",fyt="向导模式",hyt="全选",pyt="天文白天",myt="天文夜晚",vyt="黎明",gyt="黄昏",_yt="黄金时段",yyt="黄金时段结束",byt="天底",wyt="航海黎明",Syt="航海黄昏",xyt="夜晚",Cyt="夜晚结束",Tyt="正午",kyt="日出",Eyt="日出结束",Dyt="日落",Myt="日落开始",Oyt="在",$yt="的%s",Ayt="每天",Pyt="每小时",Iyt="每分钟",Ryt="每月",Lyt="每%s天",Nyt="每%s小时",Fyt="每%s分钟",zyt="每%s月",Byt="每%s周",jyt="每%s年",Wyt="每周",Hyt="每年",Uyt="从%s到%s",Yyt="决不",Vyt="在%s的%s上",Gyt="在%s和%s上",qyt="在每天",Xyt="%s",Jyt="%s和%s",Zyt="在%s上",Kyt="在%s和%s上",Qyt="在周末",e0t="在工作日",t0t="将不再执行,因为起始时间已经是过去的时间了。",r0t="在%s上",n0t="来自%s",a0t="从执行到",i0t="到%s",o0t="每",s0t="特定的时间",l0t="从",c0t="从到",u0t="间隔时间",d0t="倒置",f0t="取消全选",h0t="的",p0t="周期",m0t="每天",v0t="日期",g0t="天",_0t="每",y0t="每天",b0t="每月",w0t="每周",S0t="每年",x0t="小时",C0t="分钟",T0t="月",k0t="每月一次",E0t="一次",D0t="特定的月份",M0t="周",O0t="工作日",$0t="周末",A0t="每周",P0t="工作日",I0t="年",R0t="每年",L0t="特定的时间",N0t="时间",F0t="至",z0t="生效",B0t="从",j0t="至",W0t="一整天",H0t="每月",U0t={"ra_%s links from aliases":"来自别名的 %s 个链接","ra_%s object(s) processed":"已处理%s个对象","ra_%s was imported":"对象已导入","ra_Accept license":"接受许可","ra_Add new child object to selected parent":"将新的子对象添加到选定的父对象","ra_Add objects tree from JSON file":"从JSON文件添加对象树","ra_Add row":"添加行","ra_Advanced options":"高级选项","ra_All items are filtered out":"所有项目都被过滤掉","ra_All objects":"所有对象",ra_Append:Umt,"ra_Append %s entries or replace existing?":"追加 %s 条目还是替换现有条目?","ra_Append or replace?":"追加还是替换?","ra_Are you sure?":"你确定吗?","ra_Auto (no custom columns)":"自动(无自定义列)","ra_Back to %s":"返回“%s”","ra_Background image":"背景图像",ra_Cancel:Ymt,"ra_Cannot add items with set filter":"无法使用设置过滤器添加项目","ra_Cannot decode license":"无法解码许可证","ra_Cannot determine position: System settings are empty and GPS detection is disabled in browser":"无法确定位置:系统设置为空且浏览器中禁用了 GPS 检测",'ra_Cannot find "%s"':"找不到“%s”",'ra_Cannot read "%s"':"无法阅读“%s”","ra_Cannot read licenses: %s":"无法读取许可证:%s","ra_Cannot retrieve options, as instance is offline":"无法检索选项,因为实例处于脱机状态","ra_Cannot update attribute, because not found in the object":"无法更新属性,因为在对象中找不到","ra_Cannot upload":"无法上传",ra_Categories:Vmt,"ra_Chained certificate":"链式证书","ra_Change color theme":"更改颜色主题","ra_Changed from":"更改为","ra_Channel → State":"频道→状态","ra_Check license":"检查许可证",ra_Checked:Gmt,ra_Clear:qmt,"ra_Clear filter":"清除筛选","ra_Clear icon":"清除图标","ra_Clone current row":"克隆当前行",ra_Close:Xmt,"ra_Collapse all nodes":"收合所有节点","ra_Collapse one step node":"折叠一级",ra_Commercial:Jmt,ra_Configure:Zmt,"ra_Configure visible columns":"配置可见列","ra_Confirm deletion of %s":"确认删除%s",ra_Connected:Kmt,ra_Copied:Qmt,"ra_Copied %s":'复制的"%s"',"ra_Copy content":"复制内容",ra_Create:evt,"ra_Create alias":"创建别名","ra_Create folder":"创建文件夹","ra_Create new folder in %s":"在%s中创建新文件夹",ra_Crop:tvt,"ra_Define CRON...":"定义 CRON...","ra_Define functions":"定义功能","ra_Define rooms":"定义房间","ra_Define schedule":"定义时间表","ra_Define schedule...":"定义时间表...",ra_Del:rvt,ra_Delete:nvt,"ra_Delete (no confirm for 5 mins)":"删除(5分钟内未确认)","ra_Delete current row":"删除当前行","ra_Deselect all":"全部取消选择","ra_Device → Channel → State":"设备→频道→状态",ra_Discard:avt,ra_Disconnected:ivt,"ra_Do not export values of states":"不导出状态值","ra_Do not use let's encrypt":"不要使用让我们加密","ra_Double click to reset table layout":"双击重置表格布局","ra_Drag 'n' drop some files here, or click to select files":"将一些文件拖放到此处,或单击以选择文件","ra_Drop file here":"将档案放在这里","ra_Drop the files here...":"把文件放在这里...","ra_Duplicate name":"名称重复","ra_Edit ACL":"编辑访问控制列表","ra_Edit alias":"编辑别名","ra_Edit custom config":"编辑自定义配置","ra_Edit function":"编辑功能","ra_Edit object field":"编辑对象字段","ra_Edit role":"编辑角色","ra_Edit room":"编辑室","ra_Edit value":"编辑值",ra_Error:ovt,"ra_Expand all nodes":"展开所有节点","ra_Expand one step node":"扩大一级","ra_Export data to %s file":"将数据导出到 %s 文件","ra_Failed to open JSON File":"无法打开JSON文件","ra_Fallback custom certificates":"后备自定义证书","ra_File is too big. Max %sk allowed. Try use SVG.":"文件太大。允许的最大字节%s数。尝试使用 SVG。",ra_Filter:svt,"ra_Filter files":"过滤文件","ra_Folder name":"文件夹名称","ra_Folder → Channel → State":"文件夹→频道→状态","ra_Folder → Device → Channel → State":"文件夹→设备→频道→状态","ra_Folder → State":"文件夹→状态","ra_Folders always first":"资料夹永远优先",ra_Friday:lvt,"ra_Good luck":"祝你好运","ra_Hide empty folders":"隐藏空文件夹","ra_If no file will be created in the folder, it will disappear after the browser closed":"如果在该文件夹中未创建任何文件,则该文件将在浏览器关闭后消失","ra_Import data from %s file":"从 %s 文件导入数据","ra_Import from %s":"从 %s 导入","ra_Instance %s is alive":"实例 %s 是活动的","ra_Instance %s is not alive":"实例 %s 不存在","ra_Instance is not alive":"实例不存在","ra_Invalid CRON":"无效的 CRON","ra_Invalid JSON":"JSON 无效","ra_Invalid answer from server":"来自服务器的无效答案","ra_Invalid parent folder!":"父文件夹无效!","ra_Invalid structure":"结构无效","ra_JSON editor":"JSON 编辑器","ra_Last change":"最后一次变更",ra_Latitude:cvt,"ra_License %s":"许可证 %s","ra_License agreement":"许可协议","ra_License does not exist":"许可证不存在","ra_License expired on %s":"许可证已于 %s 过期",'ra_License for other product "%s"':"其他产品“%s”的许可证","ra_License is for version %s, but required version is %s.":"许可证适用于版本 %s,但所需版本为 %s。","ra_License must be converted":"许可证必须转换为更新版本。您可以在 iobroker.net 个人资料中执行此操作。","ra_License not found in license manager. Do you want to read licenses from iobroker.net?":"在许可证管理器中找不到许可证。您要从 iobroker.net 更新许可证吗?","ra_Listen on all IPs":"监听所有IP","ra_Load configuration from file":"从文件加载配置",ra_Longitude:uvt,'ra_May not trigger "updateLicenses"':"可能不会触发“updateLicenses”",ra_Message:dvt,ra_Monday:fvt,"ra_Move down":"下移","ra_Move up":"提升",ra_Name:hvt,"ra_No data found in file":"文件中未找到数据","ra_No one license found in license manager":"许可证管理器中未找到任何许可证","ra_No response from the backend":"后端无响应",'ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".':"非专家只能在“ 0_userdata.0”或“ alias.0”中创建新对象。","ra_Not a number":"不是数字",ra_Objects:pvt,ra_Ok:mvt,"ra_On weekdays":"在工作日","ra_Only following structures of objects are available:":"仅以下对象结构可用:","ra_Only selected":"只选择","ra_Owner group":"所有者组","ra_Owner user":"所有者用户","ra_Passwords are not equal!":"密码不相等!","ra_Place your files here or click here to open the browse dialog":"将文件放在此处或单击此处打开浏览对话框","ra_Please confirm":"请确认","ra_Please create license":"请创建许可证","ra_Please enter the license":"请输入许可证","ra_Please select file...":"请选择文件...","ra_Please select object ID...":"请选择对象ID ...","ra_Port could be used by %s":"%s 可以使用端口","ra_Port is already used by %s":"端口已被 %s 使用","ra_Private certificate":"私有证书",ra_Product:vvt,"ra_Public certificate":"公共证书","ra_Quality code":"质量代码","ra_Refresh tree":"刷新树","ra_Reload files":"重新载入文件",ra_Repeat:gvt,ra_Replace:_vt,"ra_Request timed out":"请求超时","ra_Restrict to folder":"限制到文件夹",ra_Root:yvt,ra_Saturday:bvt,ra_Save:wvt,"ra_Save and close":"保存并关闭","ra_Save configuration to file":"将配置保存到文件","ra_Save objects tree as JSON file":"将对象树另存为JSON文件","ra_Select all":"全选","ra_Select color":"选择颜色","ra_Select predefined icon":"选择预定义图标","ra_Select type of export":"选择导出类型",ra_Selected:Svt,"ra_Selected %s object(s)":"选定的 %s 个对象","ra_Serial number (UUID)":"序列号 (UUID)",'ra_Serial number (UUID) "%s" in license is for other device.':"许可证中的序列号 (UUID)“%s”用于其他设备。","ra_Show all folders":"显示所有文件夹","ra_Show lines between rows":"显示行之间的线","ra_Show/Hide object descriptions":"显示/隐藏对象描述","ra_Show/hide filter input":"显示/隐藏过滤器输入","ra_Some data are not stored. Discard?":"部分数据未存储。丢弃?",ra_States:xvt,"ra_Suitable license not found in license manager":"在许可证管理器中找不到合适的许可证",ra_Sunday:Cvt,"ra_Suppress question for next %s minutes":"在接下来的%s分钟内取消提问","ra_System language":"系统语言","ra_Take browser position":"从浏览器获取位置","ra_Take position from system settings":"从系统设置中获取位置",'ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").':"专家可以在任何地方创建对象,但要从第二层开始(例如“ vis.0”或“ javascript.0”)。","ra_The page you are looking for was not found":"未找到您要查找的页面","ra_The schedule will be executed every minute. Are you sure?":"该计划将每分钟执行一次。您确定吗?","ra_The schedule will be executed every second. Are you sure?":"该计划将每秒执行一次。你确定吗?",ra_Thursday:Tvt,ra_Timestamp:kvt,"ra_Toggle expert mode":"切换专家模式","ra_Toggle the states view":"切换状态视图","ra_Toggle view mode":"切换检视模式","ra_Too big":"太大","ra_Too small":"太小","ra_Transparent dialog":"透明对话框",ra_Tuesday:Evt,"ra_Unknown error":"未知错误","ra_Unknown error!":"未知错误!",ra_Update:Dvt,"ra_Upload file":"上传文件","ra_Use all available let's encrypt certificates":"使用所有可用的让我们加密证书","ra_Use iobroker.acme adapter for letsencrypt certificates":"使用 iobroker.acme 适配器获取 letsencrypt 证书","ra_Use system settings for position":"使用系统设置定位","ra_Used system settings":"使用的系统设置","ra_User files":"用户档案",ra_ValidTill:Mvt,ra_Value:Ovt,ra_Version:$vt,"ra_View file":"查看文件","ra_View: %s":"查看:%s",ra_Wednesday:Avt,ra_Width:Pvt,ra_Yes:Ivt,"ra_You can export all objects or just the selected branch.":"您可以导出所有对象或仅导出选定的分支。","ra_You can filter entries by entering here some text":"您可以通过在此处输入一些文本来过滤条目",ra___different__:Rvt,ra_aclEveryone_read_object:Lvt,ra_aclEveryone_read_state:Nvt,ra_aclEveryone_write_object:Fvt,ra_aclEveryone_write_state:zvt,ra_aclGroup_read_object:Bvt,ra_aclGroup_read_state:jvt,ra_aclGroup_write_object:Wvt,ra_aclGroup_write_state:Hvt,ra_aclOwner_read_object:Uvt,ra_aclOwner_read_state:Yvt,ra_aclOwner_write_object:Vvt,ra_aclOwner_write_state:Gvt,ra_buttons:qvt,ra_changedFrom:Xvt,ra_close:Jvt,ra_create_boolean_state:Zvt,ra_create_channel:Kvt,ra_create_device:Qvt,ra_create_number_state:egt,ra_create_state:tgt,ra_create_string_state:rgt,ra_daysShortText:ngt,ra_dow_Fr:agt,ra_dow_Mo:igt,ra_dow_Sa:ogt,ra_dow_Su:sgt,ra_dow_Th:lgt,ra_dow_Tu:cgt,ra_dow_We:ugt,ra_expertMode:dgt,ra_fileType_all:fgt,ra_fileType_audio:hgt,ra_fileType_code:pgt,ra_fileType_images:mgt,ra_fileType_txt:vgt,ra_fileType_video:ggt,"ra_fileType_video,":"视频",ra_filter_customs:_gt,ra_filter_customs_without:ygt,ra_filter_func:bgt,ra_filter_id:wgt,ra_filter_name:Sgt,ra_filter_role:xgt,ra_filter_room:Cgt,ra_filter_type:Tgt,"ra_import data from %s file":"从 %s 文件导入数据",ra_invalidConfig:kgt,ra_lastChange:Egt,ra_locally:Dgt,ra_month_Apr:Mgt,ra_month_Aug:Ogt,ra_month_Dec:$gt,ra_month_Feb:Agt,ra_month_Jan:Pgt,ra_month_Jul:Igt,ra_month_Jun:Rgt,ra_month_Mai:Lgt,ra_month_Mar:Ngt,ra_month_Nov:Fgt,ra_month_Oct:zgt,ra_month_Sep:Bgt,ra_months_Apr:jgt,ra_months_Aug:Wgt,ra_months_Dec:Hgt,ra_months_Feb:Ugt,ra_months_Jan:Ygt,ra_months_Jul:Vgt,ra_months_Jun:Ggt,ra_months_Mai:qgt,ra_months_Mar:Xgt,ra_months_Nov:Jgt,ra_months_Oct:Zgt,ra_months_Sep:Kgt,ra_none:Qgt,ra_object_changed_by:e_t,ra_object_changed_by_user:t_t,ra_otherConfig:r_t,ra_qualityCode:n_t,ra_repeat:a_t,ra_select_folder_hint:i_t,ra_state_changed_by:o_t,ra_state_changed_from:s_t,ra_timestamp:l_t,ra_tooltip_ack:c_t,ra_tooltip_comment:u_t,ra_tooltip_copyState:d_t,ra_tooltip_customConfig:f_t,ra_tooltip_deleteObject:h_t,ra_tooltip_editObject:p_t,ra_tooltip_editState:m_t,ra_tooltip_from:v_t,ra_tooltip_lc:g_t,ra_tooltip_quality:__t,ra_tooltip_ts:y_t,ra_tooltip_user:b_t,ra_tooltip_value:w_t,"ra_use seconds":"用秒",ra_val:S_t,"ra_via internet":"通过互联网",ra_warning_every_minute:x_t,ra_warning_every_second:C_t,sc_cron:T_t,sc_date:k_t,sc_dates:E_t,sc_dow:D_t,sc_dows:M_t,sc_every:O_t,sc_everyN_dates:$_t,sc_everyN_dow:A_t,sc_everyN_dows:P_t,sc_everyN_hours:I_t,sc_everyN_minutes:R_t,sc_everyN_months:L_t,sc_everyN_seconds:N_t,sc_every_dates:F_t,sc_every_dow:z_t,sc_every_dows:B_t,sc_every_hours:j_t,sc_every_minutes:W_t,sc_every_months:H_t,sc_every_seconds:U_t,sc_from:Y_t,sc_hours:V_t,sc_interval:G_t,sc_intervalBetween:q_t,sc_invalid_cron:X_t,sc_minutes:J_t,sc_months:Z_t,sc_once:K_t,sc_period:Q_t,sc_seconds:eyt,sc_simple:tyt,sc_specific:ryt,sc_specific_dates:nyt,sc_specific_dow:ayt,sc_specific_dows:iyt,sc_specific_hours:oyt,sc_specific_minutes:syt,sc_specific_months:lyt,sc_specific_seconds:cyt,sc_time:uyt,sc_to:dyt,sc_wizard:fyt,sch_all:hyt,sch_astroDay:pyt,sch_astroNight:myt,sch_astro_dawn:vyt,sch_astro_dusk:gyt,sch_astro_goldenHour:_yt,sch_astro_goldenHourEnd:yyt,sch_astro_nadir:byt,sch_astro_nauticalDawn:wyt,sch_astro_nauticalDusk:Syt,sch_astro_night:xyt,sch_astro_nightEnd:Cyt,sch_astro_solarNoon:Tyt,sch_astro_sunrise:kyt,sch_astro_sunriseEnd:Eyt,sch_astro_sunset:Dyt,sch_astro_sunsetStart:Myt,sch_at:Oyt,sch_desc_atTime:$yt,sch_desc_everyDay:Ayt,sch_desc_everyHour:Pyt,sch_desc_everyMinute:Iyt,sch_desc_everyMonth:Ryt,sch_desc_everyNDay:Lyt,sch_desc_everyNHours:Nyt,sch_desc_everyNMinutes:Fyt,sch_desc_everyNMonths:zyt,sch_desc_everyNWeeks:Byt,sch_desc_everyNYears:jyt,sch_desc_everyWeek:Wyt,sch_desc_everyYear:Hyt,sch_desc_intervalFromTo:Uyt,sch_desc_never:Yyt,sch_desc_onDate:Vyt,sch_desc_onDates:Gyt,sch_desc_onEveryDate:qyt,sch_desc_onMonth:Xyt,sch_desc_onMonths:Jyt,sch_desc_onWeekday:Zyt,sch_desc_onWeekdays:Kyt,sch_desc_onWeekends:Qyt,sch_desc_onWorkdays:e0t,sch_desc_onceInPast:t0t,sch_desc_once_on:r0t,sch_desc_validFrom:n0t,sch_desc_validFromTo:a0t,sch_desc_validTo:i0t,sch_every:o0t,sch_exactTime:s0t,sch_from:l0t,sch_fromTo:c0t,sch_intervalTime:u0t,sch_invert:d0t,sch_no_one:f0t,sch_on:h0t,sch_period:p0t,sch_periodDaily:m0t,sch_periodDates:v0t,sch_periodDay:g0t,sch_periodEvery:_0t,sch_periodEveryDay:y0t,sch_periodEveryMonth:b0t,sch_periodEveryWeek:w0t,sch_periodEveryYear:S0t,sch_periodHours:x0t,sch_periodMinutes:C0t,sch_periodMonth:T0t,sch_periodMonthly:k0t,sch_periodOnce:E0t,sch_periodSpecificMonths:D0t,sch_periodWeek:M0t,sch_periodWeekdays:O0t,sch_periodWeekend:$0t,sch_periodWeekly:A0t,sch_periodWorkdays:P0t,sch_periodYear:I0t,sch_periodYearly:R0t,sch_specificTime:L0t,sch_time:N0t,sch_to:F0t,sch_valid:z0t,sch_validFrom:B0t,sch_validTo:j0t,sch_wholeDay:W0t,sch_yearEveryMonth:H0t},Y0t="Export",V0t="Cancel",G0t="Close",q0t={"Save as image":"Save as image","Reset pan and zoom":"Reset pan and zoom","Save chart as svg":"Save chart as SVG","Unfortunately your browser does not support this feature":"Unfortunately your browser does not support this feature","Save chart as png":"Save chart as png","No data found":"No data found","Export raw data as CSV":"Export raw data as CSV","Select lines for export":"Select lines for export","Time format":"Time format","Browser format":"Browser time format","Time stamp in milliseconds":"Time stamp in milliseconds",Export:Y0t,Cancel:V0t,"Select lines":"Select lines","Select lines to show":"Select lines to show","Select all":"Select all",Close:G0t,"Unselect all":"Unselect all"},X0t="Export",J0t="Abbrechen",Z0t="Schließen",K0t={"Save as image":"Als Bild speichern","Reset pan and zoom":"Verschiebung und Zoomen zurücksetzen","Save chart as svg":"Diagramm als SVG speichern","Unfortunately your browser does not support this feature":"Leider unterstützt Ihr Browser diese Funktion nicht","Save chart as png":"Diagramm als PNG speichern","No data found":"Keine Daten gefunden","Export raw data as CSV":"Rohdaten als CSV exportieren","Select lines for export":"Wählen Sie Zeilen für den Export aus","Time format":"Zeitformat","Browser format":"Browser-Zeitformat","Time stamp in milliseconds":"Zeitstempel in Millisekunden",Export:X0t,Cancel:J0t,"Select lines":"Wählen Sie Zeilen aus","Select lines to show":"Wählen Sie die anzuzeigenden Linien aus","Select all":"Wählen Sie Alle",Close:Z0t,"Unselect all":"Alles wiederufen"},Q0t="Экспорт",ebt="Отмена",tbt="Закрыть",rbt={"Save as image":"Сохранить как изображение","Reset pan and zoom":"Сбросить сдвиг и масштабирование","Save chart as svg":"Сохранить график как SVG","Unfortunately your browser does not support this feature":"К сожалению, ваш браузер не поддерживает эту функцию","Save chart as png":"Сохранить диаграмму как png","No data found":"Данные не найдены","Export raw data as CSV":"Экспорт необработанных данных в формате CSV","Select lines for export":"Выбрать строки для экспорта","Time format":"Формат времени","Browser format":"Формат времени браузера","Time stamp in milliseconds":"Отметка времени в миллисекундах",Export:Q0t,Cancel:ebt,"Select lines":"Выберите строки","Select lines to show":"Выберите строки для отображения","Select all":"Выбрать все",Close:tbt,"Unselect all":"Снять все"},nbt="Exportar",abt="Cancelar",ibt="Fechar",obt={"Save as image":"Salvar como imagem","Reset pan and zoom":"Redefinir panorâmica e zoom","Save chart as svg":"Salvar gráfico como SVG","Unfortunately your browser does not support this feature":"Infelizmente, seu navegador não oferece suporte a esse recurso","Save chart as png":"Salvar gráfico como png","No data found":"Nenhum dado encontrado","Export raw data as CSV":"Exportar dados brutos como CSV","Select lines for export":"Selecione as linhas para exportação","Time format":"Formato de hora","Browser format":"Formato de hora do navegador","Time stamp in milliseconds":"Carimbo de hora em milissegundos",Export:nbt,Cancel:abt,"Select lines":"Selecione linhas","Select lines to show":"Selecione linhas para mostrar","Select all":"Selecionar tudo",Close:ibt,"Unselect all":"Desmarque todos"},sbt="Exporteren",lbt="Annuleren",cbt="Dichtbij",ubt={"Save as image":"Bewaar als afbeelding","Reset pan and zoom":"Stel pannen en zoomen opnieuw in","Save chart as svg":"Bewaar grafiek als SVG","Unfortunately your browser does not support this feature":"Helaas ondersteunt uw browser deze functie niet","Save chart as png":"Bewaar grafiek als png","No data found":"Geen data gevonden","Export raw data as CSV":"Exporteer onbewerkte gegevens als CSV","Select lines for export":"Selecteer regels voor export","Time format":"Tijd formaat","Browser format":"Browser tijdformaat","Time stamp in milliseconds":"Tijdstempel in milliseconden",Export:sbt,Cancel:lbt,"Select lines":"Selecteer lijnen","Select lines to show":"Selecteer lijnen om weer te geven","Select all":"Selecteer alles",Close:cbt,"Unselect all":"Deselecteer alles"},dbt="Exporter",fbt="Annuler",hbt="Fermer",pbt={"Save as image":"Enregistrer comme image","Reset pan and zoom":"Réinitialiser le panoramique et le zoom","Save chart as svg":"Enregistrer le graphique au format SVG","Unfortunately your browser does not support this feature":"Malheureusement, votre navigateur ne prend pas en charge cette fonctionnalité","Save chart as png":"Enregistrer le graphique au format png","No data found":"Aucune donnée disponible","Export raw data as CSV":"Exporter les données brutes au format CSV","Select lines for export":"Sélectionner les lignes à exporter","Time format":"Format de l'heure","Browser format":"Format d'heure du navigateur","Time stamp in milliseconds":"Horodatage en millisecondes",Export:dbt,Cancel:fbt,"Select lines":"Sélectionner des lignes","Select lines to show":"Sélectionnez les lignes à afficher","Select all":"Tout sélectionner",Close:hbt,"Unselect all":"Tout déselectionner"},mbt="Esportare",vbt="Annulla",gbt="Vicino",_bt={"Save as image":"Salva come immagine","Reset pan and zoom":"Reimposta panoramica e zoom","Save chart as svg":"Salva grafico come SVG","Unfortunately your browser does not support this feature":"Purtroppo il tuo browser non supporta questa funzionalità","Save chart as png":"Salva grafico come png","No data found":"Nessun dato trovato","Export raw data as CSV":"Esporta i dati grezzi come CSV","Select lines for export":"Seleziona le linee per l'esportazione","Time format":"Formato orario","Browser format":"Formato dell'ora del browser","Time stamp in milliseconds":"Timestamp in millisecondi",Export:mbt,Cancel:vbt,"Select lines":"Seleziona linee","Select lines to show":"Seleziona le righe da mostrare","Select all":"Seleziona tutto",Close:gbt,"Unselect all":"Deseleziona tutto"},ybt="Exportar",bbt="Cancelar",wbt="Cerca",Sbt={"Save as image":"Guardar como imagen","Reset pan and zoom":"Restablecer panorámica y zoom","Save chart as svg":"Guardar gráfico como SVG","Unfortunately your browser does not support this feature":"Lamentablemente, su navegador no es compatible con esta función.","Save chart as png":"Guardar gráfico como png","No data found":"Datos no encontrados","Export raw data as CSV":"Exportar datos sin procesar como CSV","Select lines for export":"Seleccionar líneas para exportar","Time format":"Formato de tiempo","Browser format":"formato de hora del navegador","Time stamp in milliseconds":"Marca de tiempo en milisegundos",Export:ybt,Cancel:bbt,"Select lines":"Seleccionar líneas","Select lines to show":"Seleccionar líneas para mostrar","Select all":"Seleccionar todo",Close:wbt,"Unselect all":"Deselecciona todo"},xbt="Eksport",Cbt="Anulować",Tbt="Zamknąć",kbt={"Save as image":"Zapisz jako obraz","Reset pan and zoom":"Zresetuj przesuwanie i powiększanie","Save chart as svg":"Zapisz wykres jako SVG","Unfortunately your browser does not support this feature":"Niestety Twoja przeglądarka nie obsługuje tej funkcji","Save chart as png":"Zapisz wykres jako png","No data found":"Nie znaleziono danych","Export raw data as CSV":"Eksportuj surowe dane jako CSV","Select lines for export":"Wybierz linie do eksportu","Time format":"Format czasu","Browser format":"Format czasu przeglądarki","Time stamp in milliseconds":"Znacznik czasu w milisekundach",Export:xbt,Cancel:Cbt,"Select lines":"Wybierz linie","Select lines to show":"Wybierz linie do pokazania","Select all":"Zaznacz wszystko",Close:Tbt,"Unselect all":"Odznacz wszystko"},Ebt="Експорт",Dbt="Скасувати",Mbt="Закрити",Obt={"No data found":"Даних не знайдено","Reset pan and zoom":"Скинути панорамування та масштабування","Save as image":"Зберегти як зображення","Save chart as png":"Зберегти діаграму як png","Save chart as svg":"Зберегти діаграму як SVG","Unfortunately your browser does not support this feature":"На жаль, ваш браузер не підтримує цю функцію","Export raw data as CSV":"Експорт необроблених даних як CSV","Select lines for export":"Виберіть рядки для експорту","Time format":"Формат часу","Browser format":"Формат часу браузера","Time stamp in milliseconds":"Мітка часу в мілісекундах",Export:Ebt,Cancel:Dbt,"Select lines":"Виберіть лінії","Select lines to show":"Виберіть рядки для показу","Select all":"Вибрати все",Close:Mbt,"Unselect all":"Скасувати вибір усіх"},$bt="出口",Abt="取消",Pbt="关闭",Ibt={"Save as image":"另存为图片","Reset pan and zoom":"重置平移和缩放","Save chart as svg":"将图表另存为SVG","Unfortunately your browser does not support this feature":"不幸的是,您的浏览器不支持此功能","Save chart as png":"将图表另存为png","No data found":"没有找到数据","Export raw data as CSV":"将原始数据导出为 CSV","Select lines for export":"选择要导出的行","Time format":"时间格式","Browser format":"浏览器时间格式","Time stamp in milliseconds":"以毫秒为单位的时间戳",Export:$bt,Cancel:Abt,"Select lines":"选择线路","Select lines to show":"选择要显示的行","Select all":"全选",Close:Pbt,"Unselect all":"全部取消选择"};function h7(t){t=(t||"").toString().replace(/^\?/,"");const e={};return t.split("&").forEach(r=>{if(r=r.trim(),r){const n=r.split("="),a=decodeURIComponent(n[0]).trim();if(n.length>1)if(e[a]=decodeURIComponent(n[1]),e[a]==="true")e[a]=!0;else if(e[a]==="false")e[a]=!1;else{const i=parseFloat(e[a]);i.toString()===e[a]&&(e[a]=i)}else e[a]=!0}}),e}function Xg(t){var r;const e=JSON.parse(JSON.stringify(t));if(t.lines&&(e.l=t.lines,delete e.lines),t._ids){const n=t._ids?t._ids.split(";"):[],a=t._colors?t._colors.split(";"):[],i=t._names?t._names.split(";"):[],o=t._units?t._units.split(";"):[];e.l=[];for(let s=0;s{this.lastHash!==window.location.hash&&(this.lastHash=window.location.hash,this.analyseAndLoadConfig())});de(this,"onPresetUpdate",(e,r)=>{e===this.preset&&(this.presetUpdateTimeout&&clearTimeout(this.presetUpdateTimeout),this.presetUpdateTimeout=setTimeout(()=>{this.presetUpdateTimeout=null;let n;r?n=Xg(r.native.data):n=Xg({}),JSON.stringify(n)!==JSON.stringify(this.config)&&(this.config=n,this.updateInterval&&clearInterval(this.updateInterval),this.updateInterval=null,this.config.live&&(!this.zoomData||!this.zoomData.stopLive)&&(this.updateInterval=setInterval(()=>this.readData(),this.config.live*1e3)),this.readData())},100))});de(this,"onStateChange",(e,r)=>{if(!e||!r||this.reading)return;this.debug&&console.log(`State update ${e} - ${r.val}`);let n=!1;for(let a=0;ac.ts-d.ts?-1:c.ts(a.toString().includes(Xs)&&this.onErrorFunc&&this.onErrorFunc(a),console.error(`Cannot read systemConfig: ${a.toString()}`),null)).then(a=>(this.systemConfig=a!=null&&a.common?a.common:{},this.defaultHistory=this.systemConfig.defaultHistory,this.analyseAndLoadConfig(r)))}async analyseAndLoadConfig(e){var r,n,a,i,o;if(e)typeof e=="string"?this.preset=e:this.config=Xg(e);else if(!this.serverSide){const s=h7(window.location.search);if(this.debug=s.debug===!0||s.debug==="true"||s.debug===1||s.debug==="1",s.preset&&typeof s.preset=="string")this.preset=s.preset;else{const l=h7((window.location.hash||"").toString().replace(/^#/,""));let c={};if(l.data&&typeof l.data=="string")try{c=JSON.parse(l.data)}catch{}if(s.data&&typeof s.data=="string")try{Object.assign(c,JSON.parse(s.data),!0)}catch{}l.preset?(this.preset=l.preset,(l.range||l.relativeEnd)&&(this.hash={range:l.range,relativeEnd:l.relativeEnd})):(l.noLoader!==void 0&&(c.noLoader=l.noLoader===!0||l.noLoader==="true"||l.noLoader===1||l.noLoader==="1"),s.noLoader!==void 0&&(c.noLoader=s.noLoader===!0||s.noLoader==="true"||s.noLoader===1||s.noLoader==="1"),this.config=Xg(c))}}if(this.seriesData=[],this.barData=[],this.barCategories=null,this.updateInterval&&(clearInterval(this.updateInterval),this.updateInterval=null),this.preset){(!this.preset.startsWith("echarts.")&&!this.preset.startsWith("flot.")||!this.preset.includes("."))&&(this.preset=`echarts.0.${this.preset}`);try{const s=await this.socket.getObject(this.preset);if(!((r=s==null?void 0:s.native)!=null&&r.data)||s.type!=="chart"){console.error(`[ChartModel] Invalid object ${this.preset}: ${JSON.stringify(s)}`);return}this.config=Xg(s.native.data),this.config.useComma=this.config.useComma===void 0?this.systemConfig.isFloatComma:this.config.useComma,this.config.lang=this.systemConfig.language,this.config.live=parseInt(this.config.live,10)||0,this.config.debug=this.debug,this.config.presetId=this.preset,(n=this.hash)!=null&&n.range&&(typeof this.hash.range=="string"&&!this.hash.range.includes("y")&&!this.hash.range.includes("m")?this.config.range=parseInt(this.hash.range,10):this.config.range=this.hash.range),(a=this.hash)!=null&&a.relativeEnd&&(this.config.relativeEnd=this.hash.relativeEnd),await this.readData(),!this.serverSide&&this.presetSubscribed!==this.preset&&(this.presetSubscribed&&await this.socket.unsubscribeObject(this.presetSubscribed,this.onPresetUpdate),this.presetSubscribed=this.preset,await this.socket.subscribeObject(this.preset,this.onPresetUpdate)),!this.serverSide&&this.config.live&&!((i=this.zoomData)!=null&&i.stopLive)&&(this.updateInterval=setInterval(()=>this.readData(),this.config.live*1e3))}catch(s){s===Xs&&this.onErrorFunc&&this.onErrorFunc(s),console.error(`Cannot read "${this.preset}": ${s}`)}}else this.config.useComma=this.config.useComma===void 0?this.systemConfig.isFloatComma===!0:this.config.useComma===!0,this.config.lang=this.systemConfig.language,this.config.live=parseInt(this.config.live,10)||0,this.config.debug=this.debug,await this.readData(),!this.serverSide&&this.config.live&&!((o=this.zoomData)!=null&&o.stopLive)&&(this.updateInterval=setInterval(()=>this.readData(),this.config.live*1e3))}setNewRange(e){var r;if(this.debug&&console.log(`[ChartModel] [${new Date().toISOString()}] setNewRange: ${JSON.stringify(e)}`),!e)this.zoomData&&(this.zoomData=null,this.readOnZoomTimeout&&clearTimeout(this.readOnZoomTimeout),this.readOnZoomTimeout=setTimeout(()=>{this.readOnZoomTimeout=null,this.config.live&&(!this.zoomData||!this.zoomData.stopLive)&&(console.log("Restore update"),this.updateInterval&&clearInterval(this.updateInterval),this.updateInterval=setInterval(()=>this.readData(),this.config.live*1e3)),this.readData()},this.updateTimeout));else if(e.stopLive)this.zoomData=this.zoomData||{},this.zoomData.stopLive=!0,this.updateInterval&&(console.log("Clear interval"),clearInterval(this.updateInterval),this.updateInterval=null);else{const n=(r=this.zoomData)==null?void 0:r.stopLive;n&&delete this.zoomData.stopLive,!this.zoomData||JSON.stringify(this.zoomData)!==JSON.stringify(e)?(this.zoomData=e,n&&(this.zoomData.stopLive=!0),this.readOnZoomTimeout&&clearTimeout(this.readOnZoomTimeout),this.readOnZoomTimeout=setTimeout(()=>{this.readOnZoomTimeout=null,this.readData()},this.updateTimeout)):n&&(this.zoomData.stopLive=!0)}}destroy(){this.subscribed&&(this.serverSide||this.subscribes.forEach(e=>this.socket.unsubscribeState(e,this.onStateChange)),this.subscribes=[],this.subscribed=!1),this.readOnZoomTimeout&&(clearTimeout(this.readOnZoomTimeout),this.readOnZoomTimeout=null),this.presetUpdateTimeout&&(clearTimeout(this.presetUpdateTimeout),this.presetUpdateTimeout=null),this.presetSubscribed&&(this.serverSide||this.socket.unsubscribeObject(this.presetSubscribed,this.onPresetUpdate),this.presetSubscribed=null),this.updateInterval&&(clearInterval(this.updateInterval),this.updateInterval=null),this.serverSide||this.onHashInstalled&&(window.removeEventListener("hashchange",this.onHashChange,!1),this.onHashInstalled=!1)}onUpdate(e){this.onUpdateFunc=e}onReading(e){this.onReadingFunc=e}onError(e){this.onErrorFunc=e}getConfig(){return this.config}getSystemConfig(){return this.systemConfig}setConfig(e){this.analyseAndLoadConfig(e)}increaseRegionForBar(e,r,n){this.config.aggregateBar=parseInt(this.config.aggregateBar,10)||0;let a=typeof r=="number"?r:r.getTime(),i=typeof e=="number"?e:e.getTime();if(this.config.aggregateBar||(a-i<=36e5*12?this.config.aggregateBar=15:a-i>=36e5*24*60?this.config.aggregateBar=43200:a-i>36e5*24*3?this.config.aggregateBar=1440:this.config.aggregateBar=60),n=n||{},this.config.aggregateBar===15){const o=new Date(i);o.setMinutes(Math.floor(o.getMinutes()/15)*15),this.config.postProcessing==="diff"&&o.setMinutes(o.getMinutes()-15),o.setSeconds(0),o.setMilliseconds(0),i=o.getTime();const s=new Date(a);s.setMinutes(Math.ceil(s.getMinutes()/15)*15),s.setSeconds(0),s.setMilliseconds(0),a=s.getTime(),n.count=Math.round((a-i)/9e5)}else if(this.config.aggregateBar===60){const o=new Date(i);o.setMinutes(0),o.setSeconds(0),o.setMilliseconds(0),this.config.postProcessing==="diff"&&o.setMinutes(o.getMinutes()-60),i=o.getTime();const s=new Date(a);s.setMinutes(60),s.setSeconds(0),s.setMilliseconds(0),a=s.getTime(),n.count=Math.round((a-i)/36e5)}else if(this.config.aggregateBar===1440){const o=new Date(i);o.setHours(0),o.setMinutes(0),o.setSeconds(0),o.setMilliseconds(0),this.config.postProcessing==="diff"&&o.setDate(o.getDate()-1),i=o.getTime();const s=new Date(a);s.setDate(s.getDate()+1),s.setHours(0),s.setMinutes(0),s.setSeconds(0),s.setMilliseconds(0),a=s.getTime(),n.count=Math.round((a-i)/864e5)}else if(this.config.aggregateBar===43200){const o=new Date(i);o.setDate(1),o.setHours(0),o.setMinutes(0),o.setSeconds(0),o.setMilliseconds(0),this.config.postProcessing==="diff"&&o.setDate(o.getDate()-30),i=o.getTime();const s=new Date(a);s.setDate(1),s.setHours(0),s.setMinutes(0),s.setMonth(s.getMonth()+1),s.setSeconds(0),s.setMilliseconds(0),a=s.getTime(),n.count=Math.round((a-i)/(864e5*30))}n.start=i,n.end=a}getStartStop(e,r){let n,a,i,o;if(this.config.l[e].offset=this.config.l[e].offset||0,typeof this.config.range=="string"&&this.config.range.includes("m")&&this.config.l.length>1){const s=parseInt(this.config.range,10)||1;for(let l=0;l1){const s=parseInt(this.config.range,10)||1;for(let l=0;lc+d,0);i[o]=l/s.length}else if(n==="min"){let l=s[0];for(let c=1;cl&&(l=s[c]);i[o]=l}else n==="total"?i[o]=s.reduce((l,c)=>l+c,0):i[o]=s[s.length-1]}if(a==="diff"){for(let o=e.length-1;o>0;o--)i[o-1]!==null&&i[o]!==null?i[o]-=i[o-1]:i[o]=0;i.splice(0,1),r.splice(0,1)}for(let o=0;os.push([]))}let c;if((u=r.convert)!=null&&u.trim()){if(!this.convertFunctions[r.convert.trim()]){let f=r.convert.trim();f.includes("return")||(f=`return ${f}`);try{c=new Function("val",f)}catch(p){console.error(`[ChartModel] Cannot parse convert function: ${p}`)}}c=this.convertFunctions[r.convert.trim()]}for(let f=0;f=n[f].ts&&n[f].tsthis.now)break;const v={value:[n[f].ts,p]};n[f].i&&(v.exact=!1),o.push(v)}}if(r.chartType!=="bar"&&r.chartType!=="polar"){let f=typeof a.end=="number"?a.end:a.end.getTime();const p=typeof a.start=="number"?a.start:a.start.getTime();if(f>this.now&&(f=this.now),o.length){o[0].value[0]>p&&o.unshift({value:[p,null],exact:!1});const v=o[o.length-1];v.value[0]v.value[0]>g.value[0]?1:v.value[0]c),s[0]){const c=Object.keys(s[0]);(!c.includes("val")||!c.includes("ts"))&&(c.includes("y")&&c.includes("t")?s=s.map(d=>({ts:d.t,val:d.y})):(c.includes("y")?s.forEach(d=>d.val=d.y):c.includes("value")?s.forEach(d=>d.val=d.value):c.includes("data")?s.forEach(d=>d.val=d.data):c.includes("v")&&s.forEach(d=>d.val=d.v),c.includes("t")?s.forEach(d=>d.ts=d.t):c.includes("time")?s.forEach(d=>d.ts=d.time):c.includes("date")&&s.forEach(d=>d.ts=d.date))),s[0].ts&&(typeof s[0].ts=="string"&&window.isFinite(s[0].ts)?s.forEach(d=>d.ts=parseInt(d.ts,10)):typeof s[0].ts=="string"&&new Date(s[0].ts).toString()!=="Invalid Date"&&s.forEach(d=>d.ts=new Date(d.ts).getTime()),typeof s[0].ts=="number"&&s[0].ts<9466812e5&&s.forEach(d=>d.ts*=1e3))}s.sort((c,d)=>c.ts-d.ts?-1:c.ts({ts:c.t,val:c.y})):(l.includes("y")?s.forEach(c=>c.val=c.y):l.includes("value")?s.forEach(c=>c.val=c.value):l.includes("data")?s.forEach(c=>c.val=c.data):l.includes("v")&&s.forEach(c=>c.val=c.v),l.includes("t")?s.forEach(c=>c.ts=c.t):l.includes("time")?s.forEach(c=>c.ts=c.time):l.includes("date")&&s.forEach(c=>c.ts=c.date))),s[0].ts&&(typeof s[0].ts=="string"&&window.isFinite(s[0].ts)?s.forEach(c=>c.ts=parseInt(c.ts,10)):typeof s[0].ts=="string"&&new Date(s[0].ts).toString()!=="Invalid Date"&&s.forEach(c=>c.ts=new Date(c.ts).getTime()),typeof s[0].ts=="number"&&s[0].ts<9466812e5&&s.forEach(c=>c.ts*=1e3))}return Array.isArray(s)||(s=[],console.warn("JSON is not an array")),s.sort((l,c)=>l.ts-c.ts?-1:l.ts(r.toString().includes(Xs)&&this.onErrorFunc&&this.onErrorFunc(r),console.error(`Cannot read "${e}": ${r.toString()}`),null))),this.objectPromises[e]}async _readOneLine(e){const r=this.config.l[e];try{const n=await this._readObject(r.id);if(n!=null&&n.common){const a=r.name||n.common.name;if(r.name=a&&typeof a=="object"?a[this.systemConfig.language]||a.en||r.id:a||"",r.unit=r.unit||(n.common.unit?n.common.unit.replace("�","°"):""),r.type=n.common.type,r.chartType==="auto"&&(r.chartType=n.common.type==="boolean"?"steps":"line",r.aggregate=n.common.type==="boolean"?"none":"minmax"),r.unit&&(r.falseText||r.trueText)&&delete r.unit,n.common.states&&!Array.isArray(n.common.states)&&r.states!==!1&&!n.common.unit){if(r.states?r.states=Object.assign(n.common.states,r.states):r.states=n.common.states,Object.keys(r.states).find(i=>i==="true"||i==="false")){const i={};Object.keys(r.states).forEach(o=>{i[o==="true"?1:o==="false"?0:o]=r.states[o]}),r.states=i}r.unit&&r.states&&delete r.unit}(r.commonYAxis||r.commonYAxis===0)&&(r.yaxe="off")}}catch(n){n===Xs&&this.onErrorFunc&&this.onErrorFunc(n),console.error(`[ChartModel] Cannot read object ${r.id}: ${n}`)}r.name=r.name||r.id||"",r.unit=r.unit||"",r.chartType==="auto"&&(r.chartType="line",r.aggregate="minmax"),await this.readOneChart(r.id,r.instance||this.defaultHistory,e)}async _readData(){var e;for(let r=0;rn.start&&i.unshift({value:[n.start,""]}),i[i.length-1].value[0]{r.chartType==="bar"?e[n]=this.barData[n]:e[n]=this.seriesData[n]}),this.onUpdateFunc(e,this.actualValues,this.barCategories)}static addTime(e,r,n){const a=new Date(e);return typeof r=="string"?r[1]==="m"||r[2]==="m"?(r=parseInt(r,10),a.setMonth(a.getMonth()-r),e=a.getTime()):r[1]==="y"||r[2]==="y"?(r=parseInt(r,10),a.setFullYear(a.getFullYear()-r),e=a.getTime()):(e=a.getTime(),n?e-=(parseInt(r,10)||0)*6e4:e-=(parseInt(r,10)||0)*1e3):(r=r||0,e=a.getTime(),n?e-=r*6e4:e-=r*1e3),e}async exportData(e,r,n){const a={};for(let i=0;i16777215&&(this.sessionId=1),this.config.l){this.reading=!0,this.onReadingFunc&&this.onReadingFunc(!0),this.seriesData=[],this.barData=[],this.barCategories=null,await this._readData();for(let e=0;e=0)&&Object.prototype.propertyIsEnumerable.call(t,n)&&(r[n]=t[n])}return r}function Nbt(t,e){if(t==null)return{};var r={};for(var n in t)if(Object.prototype.hasOwnProperty.call(t,n)){if(e.indexOf(n)>=0)continue;r[n]=t[n]}return r}function fx(){return fx=Object.assign?Object.assign.bind():function(t){for(var e=1;eE.createElement(e.tag,hx({key:r},e.attr),IJ(e.child)))}function wv(t){return e=>E.createElement(jbt,fx({attr:hx({},t.attr)},e),IJ(t.child))}function jbt(t){var e=r=>{var{attr:n,size:a,title:i}=t,o=Lbt(t,Rbt),s=a||r.size||"1em",l;return r.className&&(l=r.className),t.className&&(l=(l?l+" ":"")+t.className),E.createElement("svg",fx({stroke:"currentColor",fill:"currentColor",strokeWidth:"0"},r.attr,n,o,{className:l,style:hx(hx({color:t.color||r.color},r.style),t.style),height:s,width:s,xmlns:"http://www.w3.org/2000/svg"}),i&&E.createElement("title",null,i),t.children)};return p7!==void 0?E.createElement(p7.Consumer,null,r=>e(r)):e(PJ)}function Wbt(t){return wv({tag:"svg",attr:{viewBox:"0 0 448 512"},child:[{tag:"path",attr:{d:"M16 132h416c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H16C7.163 60 0 67.163 0 76v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z"},child:[]}]})(t)}function Hbt(t){return wv({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z"},child:[]}]})(t)}function Ubt(t){return wv({tag:"svg",attr:{viewBox:"0 0 448 512"},child:[{tag:"path",attr:{d:"M320 448v40c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V120c0-13.255 10.745-24 24-24h72v296c0 30.879 25.121 56 56 56h168zm0-344V0H152c-13.255 0-24 10.745-24 24v368c0 13.255 10.745 24 24 24h272c13.255 0 24-10.745 24-24V128H344c-13.2 0-24-10.8-24-24zm120.971-31.029L375.029 7.029A24 24 0 0 0 358.059 0H352v96h96v-6.059a24 24 0 0 0-7.029-16.97z"},child:[]}]})(t)}function Ybt(t){return wv({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M216 0h80c13.3 0 24 10.7 24 24v168h87.7c17.8 0 26.7 21.5 14.1 34.1L269.7 378.3c-7.5 7.5-19.8 7.5-27.3 0L90.1 226.1c-12.6-12.6-3.7-34.1 14.1-34.1H192V24c0-13.3 10.7-24 24-24zm296 376v112c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24V376c0-13.3 10.7-24 24-24h146.7l49 49c20.1 20.1 52.5 20.1 72.6 0l49-49H488c13.3 0 24 10.7 24 24zm-124 88c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20zm64 0c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20z"},child:[]}]})(t)}function Vbt(t){return wv({tag:"svg",attr:{viewBox:"0 0 576 512"},child:[{tag:"path",attr:{d:"M384 121.9c0-6.3-2.5-12.4-7-16.9L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128zM571 308l-95.7-96.4c-10.1-10.1-27.4-3-27.4 11.3V288h-64v64h64v65.2c0 14.3 17.3 21.4 27.4 11.3L571 332c6.6-6.6 6.6-17.4 0-24zm-379 28v-32c0-8.8 7.2-16 16-16h176V160H248c-13.2 0-24-10.8-24-24V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V352H208c-8.8 0-16-7.2-16-16z"},child:[]}]})(t)}function Gbt(t){return wv({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M256.455 8c66.269.119 126.437 26.233 170.859 68.685l35.715-35.715C478.149 25.851 504 36.559 504 57.941V192c0 13.255-10.745 24-24 24H345.941c-21.382 0-32.09-25.851-16.971-40.971l41.75-41.75c-30.864-28.899-70.801-44.907-113.23-45.273-92.398-.798-170.283 73.977-169.484 169.442C88.764 348.009 162.184 424 256 424c41.127 0 79.997-14.678 110.629-41.556 4.743-4.161 11.906-3.908 16.368.553l39.662 39.662c4.872 4.872 4.631 12.815-.482 17.433C378.202 479.813 319.926 504 256 504 119.034 504 8.001 392.967 8 256.002 7.999 119.193 119.646 7.755 256.455 8z"},child:[]}]})(t)}//! moment.js //! version : 2.30.1 //! authors : Tim Wood, Iskren Chernev, Moment.js contributors //! license : MIT @@ -606,4 +606,4 @@ yyyy`);var n=xo(e),a=r?"getUTC":"get",i=n[a+"FullYear"](),o=n[a+"Month"]()+1,s=n {a|${o.toString().padStart(2,"0")}.${(a.getMonth()+1).toString().padStart(2,"0")}.}`),this.lastFormattedTime=e,n){if(this.chart.withSeconds)return`${i+to(a.getHours())}:${to(a.getMinutes())}:${to(a.getSeconds())}${i?"{b|..}":""}`;if(this.chart.withTime)return`${i+to(a.getHours())}:${to(a.getMinutes())}${i?"{b|..}":""}`}if(this.chart.withSeconds)return`${to(a.getHours())}:${to(a.getMinutes())}:${to(a.getSeconds())}${i}`;if(this.chart.withTime)return`${to(a.getHours())}:${to(a.getMinutes())}${i}`}return`${to(o)}.${to(a.getMonth()+1)} ${a.getFullYear()}`}getInterpolatedValue(e,r,n,a){var s;const o=((s=this.option)==null?void 0:s.series)[e].data;if(!(o!=null&&o[0])||o[0].value[0]>r||o[o.length-1].value[0]u.chartType==="bar"||u.chartType==="polar");let s;const l=r.map((u,f)=>{var b;const p=this.config.l[f],v=e.find(w=>w.seriesIndex===f);if(o){if(!v)return null;let w;if(p.afterComma!==void 0){const x=10**p.afterComma;w=Math.round(v.value*x)/x}else w=v.value;return s=v.name,`
${p.name}:
${w}${p.unit||""}
`}let g;if(v&&(g={exact:v.data.exact!==void 0?v.data.exact:!0,val:v.value[1]}),g=g||this.getInterpolatedValue(f,n,p.type,i),!g||!g.exact&&this.config.hoverNoInterpolate)return"";const _=g.val===null?"null":this.yFormatter(g.val,f,!1,!g.exact,!0);return`
${u.name}:
${g.exact?"":"i "}${_}${g.val!==null?p.unit:""}
`});if(o){const u=this.config.timeFormat||"dd, MM Do YYYY, HH:mm",f=new Date(parseInt(s.substring(1),10));return`${this.moment(f).format(u)}
${l.filter(p=>p).join("
")}`}const c=this.config.timeFormat||"dd, MM Do YYYY, HH:mm:ss.SSS";return`${this.moment(a).format(c)}
${l.filter(u=>u).join("
")}`}getLegend(e){if(!this.config.legend||this.config.legend==="dialog")return;const r={data:this.config.l.map(n=>n.name),show:!0,left:this.config.legend==="nw"||this.config.legend==="sw"?this.chart.padLeft+1:void 0,right:this.config.legend==="ne"||this.config.legend==="se"?this.chart.padRight+1:void 0,top:this.config.legend==="nw"||this.config.legend==="ne"?this.chart.padTop+2:void 0,bottom:this.config.legend==="sw"||this.config.legend==="se"?this.chart.padBottom+2:void 0,backgroundColor:this.config.legBg||void 0,height:this.config.legendHeight||void 0,formatter:n=>{if(this.config.legActual&&e){for(let a=0;ar.selected[n.name]=n.hide!==!0),r}getTitle(){if(!this.config||!this.config.title)return;const e={};return(this.config.titlePos||"top:35;left:65").split(";").forEach(r=>{const n=r.split(":");e[n[0].trim()]=parseInt(n[1].trim(),10)}),{text:this.config.title,textStyle:{fontSize:this.config.titleSize?parseInt(this.config.titleSize,10):20,color:this.config.titleColor||(this.themeType==="light"?"#000":"#FFF")},textVerticalAlign:e.bottom?"bottom":"top",textAlign:e.left===50?"center":e.right===-5?"right":"left",top:e.top===35?5+this.chart.padTop:e.top===50?"50%":void 0,left:e.left===50?"50%":e.left===65?this.chart.padLeft:void 0,bottom:e.bottom?e.bottom>0?e.bottom+this.chart.padBottom-15:e.bottom:void 0,right:e.right===5?this.chart.padRight:void 0}}getOption(e,r,n,a){var u;r&&(this.config=JSON.parse(JSON.stringify(r)));const i=this.isTouch&&this.config.zoom;let o=this.config.theme;(!o||o==="default")&&(o=this.themeType==="light"?"roma":"dark-bold"),this.debug=(u=this.config)==null?void 0:u.debug,this.debug&&console.log(`[ChartView ] [${new Date().toISOString()}] ${JSON.stringify(this.config,null,2)}`);const s=this.getSeries(e,o);if(this.config.start){const f=parseInt(this.config.end,10);this.chart.xMaxp&&(this.chart.xMin=p)}this.chart.diff=this.chart.xMax-this.chart.xMin,this.chart.withTime=this.chart.diff<36e5*24*7,this.chart.withSeconds=this.chart.diff<6e4*30,this.config.y_labels_size=parseInt(this.config.y_labels_size,10)||12,this.config.x_labels_size=parseInt(this.config.x_labels_size,10)||12,this.config.legFontSize=parseInt(this.config.legFontSize,10)||12;const l=this.getYAxis(s),c=this.getXAxis(a),d={theme:o,backgroundColor:"transparent",animation:!this.config.noAnimation&&!this.config.noLoader,grid:{backgroundColor:this.config.bg_custom||"transparent",show:!!this.config.bg_custom,left:10,top:8,right:this.config.export===!0||this.config.export==="true"?30:0,bottom:this.compact?4:this.isXLabelHasBreak()?40:24,containLabel:this.config.autoGridPadding},tooltip:!this.compact&&this.config.hoverDetail?{trigger:"axis",formatter:f=>this.renderTooltip(f)}:void 0,axisPointer:this.compact&&this.config.hoverDetail?{animation:!0}:void 0,xAxis:c,yAxis:l,series:s,useCanvas:i};if(this.config.l.forEach((f,p)=>{f.aggregate==="current"&&(d.series[p].data=[n[p]])}),this.config.l.find(f=>f.chartType==="polar")){d.animation=!1,d.radar={shape:this.config.radarCircle==="circle"?"circle":void 0,indicator:[]};const f=[{type:"radar",data:[{value:[]}],lineStyle:{color:d.series[0].color},label:d.series[0].label}];d.series.forEach((p,v)=>{const g=this.config.l[v].max&&parseFloat(this.config.l[v].max)||void 0;d.radar.indicator.push({name:p.name+(g!==void 0?` (max ${this.yFormatter(g,v,!0)})`:""),max:g});let _;for(let b=p.data.length-1;b>=0;b--)if(p.data[b]!==void 0&&p.data[b]!==null){_=p.data[b];break}_!==void 0?f[0].data[0].value.push(_):f[0].data[0].value.push(0)}),d.series=f,delete d.xAxis,delete d.yAxis,delete d.grid}else if(this.getMarkings(d),!this.compact&&!this.config.autoGridPadding){const f=s;let p=0,v=0,g=0,_=0;f.forEach((b,w)=>{let x=d.yAxis[b.yAxisIndex];if(!x){const L=this.config.l[b.yAxisIndex]?this.config.l[b.yAxisIndex].commonYAxis:void 0;if(L!==void 0)x=d.yAxis[L];else if(this.config.l[w].chartType==="bar"){x={min:b.data[0],max:b.data[0]};for(let $=1;$x.max||x.max===null)&&(x.max=b.data[$]))}else{console.log(`Cannot find Y axis for line ${w}`);return}}const C=this.yFormatter(x.min,w,!0,!1,!0),M=this.yFormatter(!x.min&&x.max===x.min?.8:x.max,w,!0,!1,!0);c[0].position==="top"?_=this.isXLabelHasBreak()?40:24:c[0].position==="bottom"&&(g=this.isXLabelHasBreak()?40:24);const k=x.position;if(x.axisLabel&&x.axisLabel.color==="rgba(0,0,0,0)")return;const O=this.calcTextWidth(C,this.config.y_labels_size)+4;let R=this.calcTextWidth(M,this.config.y_labels_size)+4;if(b.states){let L="";Object.keys(b.states).forEach($=>{b.states[$].length>L.length&&(L=b.states[$])}),R=this.calcTextWidth(L,this.config.y_labels_size)+4}k!=="right"?(O>p&&(p=O),R>p&&(p=R)):(O>v&&(v=O),R>v&&(v=R))}),d.grid.left=p+10,d.grid.right=v+10+(this.config.export===!0||this.config.export==="true"?20:0),d.grid.right<=10&&(_||g)&&(d.grid.right=18),d.grid.left<=10&&(_||g)&&(d.grid.left=18),this.chart.padLeft=d.grid.left,this.chart.padRight=d.grid.right,_||(_=8),g||(g=8),d.grid.top=_,d.grid.bottom=g,this.chart.padTop=d.grid.top,this.chart.padBottom=d.grid.bottom}return d.legend=this.getLegend(n),d.title=this.getTitle(),!this.config.grid_color&&Array.isArray(d.yAxis)&&(d.yAxis.forEach(f=>f.splitLine&&delete f.splitLine.lineStyle),d.xAxis.forEach(f=>f.splitLine&&delete f.splitLine.lineStyle)),this.option=d,this.option}}var Vw={};oa([Ure,PNt]);const w5t={init:function(){return X5.apply(null,arguments)}};oa(BAt);const S5t=Object.freeze(Object.defineProperty({__proto__:null,Axis:J0,ChartView:ia,ComponentModel:Jt,ComponentView:Cn,List:gl,Model:$r,PRIORITY:V5,SeriesModel:Da,color:iK,connect:Mee,dataTool:Lee,default:w5t,dependencies:_ee,disConnect:Oee,disconnect:J5,dispose:$ee,env:xt,extendChartView:bte,extendComponentModel:gte,extendComponentView:_te,extendSeriesModel:yte,format:lte,getCoordinateSystemDimensions:Pee,getInstanceByDom:WT,getInstanceById:Aee,getMap:Ree,graphic:ste,helper:rte,init:X5,innerDrawElementOnCanvas:BT,matrix:YZ,number:ite,parseGeoJSON:Zx,parseGeoJson:Zx,registerAction:Ao,registerCoordinateSystem:Q5,registerLayout:e3,registerLoading:VT,registerLocale:OT,registerMap:r3,registerPostInit:Z5,registerPostUpdate:K5,registerPreprocessor:UT,registerProcessor:YT,registerTheme:HT,registerTransform:n3,registerUpdateLifecycle:q0,registerVisual:Bc,setCanvasCreator:Iee,setPlatformAPI:GN,throttle:Y0,time:ote,use:oa,util:cte,vector:WZ,version:gee,zrUtil:zZ,zrender:bK},Symbol.toStringTag,{value:"Module"})),sa=ER(S5t);var IV;function x5t(){return IV||(IV=1,function(t){(function(e,r){typeof t.nodeName!="string"?r(t,sa):r({},e.echarts)})(Vw,function(e,r){var n=function(o){typeof console<"u"&&console&&console.error&&console.error(o)};if(!r){n("ECharts is not Loaded");return}var a=["#f2385a","#f5a503","#4ad9d9","#f7879c","#c1d7a8","#4dffd2","#fccfd7","#d5f6f6"],i={color:a,title:{textStyle:{fontWeight:"normal",color:"#f2385a"}},visualMap:{color:["#f2385a","#f5a503"]},toolbox:{color:["#f2385a","#f2385a","#f2385a","#f2385a"]},tooltip:{backgroundColor:"rgba(0,0,0,0.5)",axisPointer:{type:"line",lineStyle:{color:"#f2385a",type:"dashed"},crossStyle:{color:"#f2385a"},shadowStyle:{color:"rgba(200,200,200,0.3)"}}},dataZoom:{dataBackgroundColor:"#eee",fillerColor:"rgba(200,200,200,0.2)",handleColor:"#f2385a"},timeline:{lineStyle:{color:"#f2385a"},controlStyle:{color:"#f2385a",borderColor:"#f2385a"}},candlestick:{itemStyle:{color:"#f2385a",color0:"#f5a503"},lineStyle:{width:1,color:"#f2385a",color0:"#f5a503"},areaStyle:{color:"#c1d7a8",color0:"#4ad9d9"}},map:{itemStyle:{color:"#f2385a"},areaStyle:{color:"#ddd"},label:{color:"#c12e34"}},graph:{itemStyle:{color:"#f2385a"},linkStyle:{color:"#f2385a"}},gauge:{axisLine:{lineStyle:{color:[[.2,"#f5a503"],[.8,"#f2385a"],[1,"#c1d7a8"]],width:8}}}};r.registerTheme("azul",i)})}(Vw)),Vw}x5t();var Gw={},RV;function C5t(){return RV||(RV=1,function(t){(function(e,r){typeof t.nodeName!="string"?r(t,sa):r({},e.echarts)})(Gw,function(e,r){var n=function(o){typeof console<"u"&&console&&console.error&&console.error(o)};if(!r){n("ECharts is not Loaded");return}var a=["#001727","#805500","#ffff00","#ffd11a","#f2d71f","#f2be19","#f3a81a","#fff5cc"],i={color:a,title:{textStyle:{fontWeight:"normal",color:"#001727"}},visualMap:{color:["#001727","#805500"]},toolbox:{color:["#001727","#001727","#001727","#001727"]},tooltip:{backgroundColor:"rgba(0,0,0,0.5)",axisPointer:{type:"line",lineStyle:{color:"#001727",type:"dashed"},crossStyle:{color:"#001727"},shadowStyle:{color:"rgba(200,200,200,0.3)"}}},dataZoom:{dataBackgroundColor:"#eee",fillerColor:"rgba(200,200,200,0.2)",handleColor:"#001727"},timeline:{lineStyle:{color:"#001727"},controlStyle:{color:"#001727",borderColor:"#001727"}},candlestick:{itemStyle:{color:"#f3a81a",color0:"#ffff00"},lineStyle:{width:1,color:"#ffff00",color0:"#f3a81a"},areaStyle:{color:"#805500",color0:"#ffff00"}},chord:{padding:4,itemStyle:{color:"#f3a81a",borderWidth:1,borderColor:"rgba(128, 128, 128, 0.5)"},lineStyle:{color:"rgba(128, 128, 128, 0.5)"},areaStyle:{color:"#805500"}},map:{itemStyle:{color:"#ffd11a"},areaStyle:{color:"#f2be19"},label:{color:"#ffd11a"}},graph:{itemStyle:{color:"#001727"},linkStyle:{color:"#001727"}},gauge:{axisLine:{lineStyle:{color:[[.2,"#f2d71f"],[.8,"#001727"],[1,"#ffff00"]],width:8}}}};r.registerTheme("bee-inspired",i)})}(Gw)),Gw}C5t();var qw={},LV;function T5t(){return LV||(LV=1,function(t){(function(e,r){typeof t.nodeName!="string"?r(t,sa):r({},e.echarts)})(qw,function(e,r){var n=function(o){typeof console<"u"&&console&&console.error&&console.error(o)};if(!r){n("ECharts is not Loaded");return}var a=["#1790cf","#1bb2d8","#99d2dd","#88b0bb","#1c7099","#038cc4","#75abd0","#afd6dd"],i={color:a,title:{textStyle:{fontWeight:"normal",color:"#1790cf"}},visualMap:{color:["#1790cf","#a2d4e6"]},toolbox:{color:["#1790cf","#1790cf","#1790cf","#1790cf"]},tooltip:{backgroundColor:"rgba(0,0,0,0.5)",axisPointer:{type:"line",lineStyle:{color:"#1790cf",type:"dashed"},crossStyle:{color:"#1790cf"},shadowStyle:{color:"rgba(200,200,200,0.3)"}}},dataZoom:{dataBackgroundColor:"#eee",fillerColor:"rgba(144,197,237,0.2)",handleColor:"#1790cf"},timeline:{lineStyle:{color:"#1790cfa"},controlStyle:{color:"#1790cf",borderColor:"#1790cf"}},candlestick:{itemStyle:{color:"#1bb2d8",color0:"#99d2dd"},lineStyle:{width:1,color:"#1c7099",color0:"#88b0bb"},areaStyle:{color:"#1790cf",color0:"#1bb2d8"}},chord:{padding:4,itemStyle:{color:"#1bb2d8",borderWidth:1,borderColor:"rgba(128, 128, 128, 0.5)"},lineStyle:{color:"rgba(128, 128, 128, 0.5)"},areaStyle:{color:"#1790cf"}},graph:{itemStyle:{color:"#1bb2d8"},linkStyle:{color:"#88b0bb"}},map:{itemStyle:{color:"#ddd"},areaStyle:{color:"99d2dd"},label:{color:"#c12e34"}},gauge:{axisLine:{lineStyle:{color:[[.2,"#1bb2d8"],[.8,"#1790cf"],[1,"#1c7099"]],width:8}}}};r.registerTheme("blue",i)})}(qw)),qw}T5t();var Xw={},NV;function k5t(){return NV||(NV=1,function(t){(function(e,r){typeof t.nodeName!="string"?r(t,sa):r({},e.echarts)})(Xw,function(e,r){var n=function(o){typeof console<"u"&&console&&console.error&&console.error(o)};if(!r){n("ECharts is not Loaded");return}var a=["#C1232B","#27727B","#FCCE10","#E87C25","#B5C334","#FE8463","#9BCA63","#FAD860","#F3A43B","#60C0DD","#D7504B","#C6E579","#F4E001","#F0805A","#26C0C0"],i={color:a,title:{textStyle:{fontWeight:"normal",color:"#27727B"}},visualMap:{color:["#C1232B","#FCCE10"]},toolbox:{iconStyle:{borderColor:a[0]}},tooltip:{backgroundColor:"rgba(50,50,50,0.5)",axisPointer:{type:"line",lineStyle:{color:"#27727B",type:"dashed"},crossStyle:{color:"#27727B"},shadowStyle:{color:"rgba(200,200,200,0.3)"}}},dataZoom:{dataBackgroundColor:"rgba(181,195,52,0.3)",fillerColor:"rgba(181,195,52,0.2)",handleColor:"#27727B"},categoryAxis:{axisLine:{lineStyle:{color:"#27727B"}},splitLine:{show:!1}},valueAxis:{axisLine:{show:!1},splitArea:{show:!1},splitLine:{lineStyle:{color:["#ccc"],type:"dashed"}}},timeline:{itemStyle:{color:"#27727B"},lineStyle:{color:"#27727B"},controlStyle:{color:"#27727B",borderColor:"#27727B"},symbol:"emptyCircle",symbolSize:3},line:{itemStyle:{borderWidth:2,borderColor:"#fff",lineStyle:{width:3}},emphasis:{itemStyle:{borderWidth:0}},symbol:"circle",symbolSize:3.5},candlestick:{itemStyle:{color:"#c1232b",color0:"#b5c334"},lineStyle:{width:1,color:"#c1232b",color0:"#b5c334"},areaStyle:{color:"#c1232b",color0:"#27727b"}},graph:{itemStyle:{color:"#c1232b"},linkStyle:{color:"#b5c334"}},map:{itemStyle:{color:"#f2385a",areaColor:"#ddd",borderColor:"#eee"},areaStyle:{color:"#fe994e"},label:{color:"#c1232b"}},gauge:{axisLine:{lineStyle:{color:[[.2,"#B5C334"],[.8,"#27727B"],[1,"#C1232B"]]}},axisTick:{splitNumber:2,length:5,lineStyle:{color:"#fff"}},axisLabel:{color:"#fff"},splitLine:{length:"5%",lineStyle:{color:"#fff"}},title:{offsetCenter:[0,-20]}}};r.registerTheme("infographic",i)})}(Xw)),Xw}k5t();var Jw={},FV;function E5t(){return FV||(FV=1,function(t){(function(e,r){typeof t.nodeName!="string"?r(t,sa):r({},e.echarts)})(Jw,function(e,r){var n=function(i){typeof console<"u"&&console&&console.error&&console.error(i)};if(!r){n("ECharts is not Loaded");return}var a=["#d87c7c","#919e8b","#d7ab82","#6e7074","#61a0a8","#efa18d","#787464","#cc7e63","#724e58","#4b565b"];r.registerTheme("vintage",{color:a,backgroundColor:"#fef8ef",graph:{color:a}})})}(Jw)),Jw}E5t();var Zw={},zV;function D5t(){return zV||(zV=1,function(t){(function(e,r){typeof t.nodeName!="string"?r(t,sa):r({},e.echarts)})(Zw,function(e,r){var n=function(c){typeof console<"u"&&console&&console.error&&console.error(c)};if(!r){n("ECharts is not Loaded");return}var a="#B9B8CE",i="#100C2A",o=function(){return{axisLine:{lineStyle:{color:a}},splitLine:{lineStyle:{color:"#484753"}},splitArea:{areaStyle:{color:["rgba(255,255,255,0.02)","rgba(255,255,255,0.05)"]}},minorSplitLine:{lineStyle:{color:"#20203B"}}}},s=["#4992ff","#7cffb2","#fddd60","#ff6e76","#58d9f9","#05c091","#ff8a45","#8d48e3","#dd79ff"],l={darkMode:!0,color:s,backgroundColor:i,axisPointer:{lineStyle:{color:"#817f91"},crossStyle:{color:"#817f91"},label:{color:"#fff"}},legend:{textStyle:{color:a}},textStyle:{color:a},title:{textStyle:{color:"#EEF1FA"},subtextStyle:{color:"#B9B8CE"}},toolbox:{iconStyle:{borderColor:a}},dataZoom:{borderColor:"#71708A",textStyle:{color:a},brushStyle:{color:"rgba(135,163,206,0.3)"},handleStyle:{color:"#353450",borderColor:"#C5CBE3"},moveHandleStyle:{color:"#B0B6C3",opacity:.3},fillerColor:"rgba(135,163,206,0.2)",emphasis:{handleStyle:{borderColor:"#91B7F2",color:"#4D587D"},moveHandleStyle:{color:"#636D9A",opacity:.7}},dataBackground:{lineStyle:{color:"#71708A",width:1},areaStyle:{color:"#71708A"}},selectedDataBackground:{lineStyle:{color:"#87A3CE"},areaStyle:{color:"#87A3CE"}}},visualMap:{textStyle:{color:a}},timeline:{lineStyle:{color:a},label:{color:a},controlStyle:{color:a,borderColor:a}},calendar:{itemStyle:{color:i},dayLabel:{color:a},monthLabel:{color:a},yearLabel:{color:a}},timeAxis:o(),logAxis:o(),valueAxis:o(),categoryAxis:o(),line:{symbol:"circle"},graph:{color:s},gauge:{title:{color:a}},candlestick:{itemStyle:{color:"#FD1050",color0:"#0CF49B",borderColor:"#FD1050",borderColor0:"#0CF49B"}}};l.categoryAxis.splitLine.show=!1,r.registerTheme("dark",l)})}(Zw)),Zw}D5t();var Kw={},BV;function M5t(){return BV||(BV=1,function(t){(function(e,r){typeof t.nodeName!="string"?r(t,sa):r({},e.echarts)})(Kw,function(e,r){var n=function(o){typeof console<"u"&&console&&console.error&&console.error(o)};if(!r){n("ECharts is not Loaded");return}var a=["#2ec7c9","#b6a2de","#5ab1ef","#ffb980","#d87a80","#8d98b3","#e5cf0d","#97b552","#95706d","#dc69aa","#07a2a4","#9a7fd1","#588dd5","#f5994e","#c05050","#59678c","#c9ab00","#7eb00a","#6f5553","#c14089"],i={color:a,title:{textStyle:{fontWeight:"normal",color:"#008acd"}},visualMap:{itemWidth:15,color:["#5ab1ef","#e0ffff"]},toolbox:{iconStyle:{borderColor:a[0]}},tooltip:{borderWidth:0,backgroundColor:"rgba(50,50,50,0.5)",textStyle:{color:"#FFF"},axisPointer:{type:"line",lineStyle:{color:"#008acd"},crossStyle:{color:"#008acd"},shadowStyle:{color:"rgba(200,200,200,0.2)"}}},dataZoom:{dataBackgroundColor:"#efefff",fillerColor:"rgba(182,162,222,0.2)",handleColor:"#008acd"},grid:{borderColor:"#eee"},categoryAxis:{axisLine:{lineStyle:{color:"#008acd"}},splitLine:{lineStyle:{color:["#eee"]}}},valueAxis:{axisLine:{lineStyle:{color:"#008acd"}},splitArea:{show:!0,areaStyle:{color:["rgba(250,250,250,0.1)","rgba(200,200,200,0.1)"]}},splitLine:{lineStyle:{color:["#eee"]}}},timeline:{lineStyle:{color:"#008acd"},controlStyle:{color:"#008acd",borderColor:"#008acd"},symbol:"emptyCircle",symbolSize:3},line:{smooth:!0,symbol:"emptyCircle",symbolSize:3},candlestick:{itemStyle:{color:"#d87a80",color0:"#2ec7c9"},lineStyle:{width:1,color:"#d87a80",color0:"#2ec7c9"},areaStyle:{color:"#2ec7c9",color0:"#b6a2de"}},scatter:{symbol:"circle",symbolSize:4},map:{itemStyle:{color:"#ddd"},areaStyle:{color:"#fe994e"},label:{color:"#d87a80"}},graph:{itemStyle:{color:"#d87a80"},linkStyle:{color:"#2ec7c9"}},gauge:{axisLine:{lineStyle:{color:[[.2,"#2ec7c9"],[.8,"#5ab1ef"],[1,"#d87a80"]],width:10}},axisTick:{splitNumber:10,length:15,lineStyle:{color:"auto"}},splitLine:{length:22,lineStyle:{color:"auto"}},pointer:{width:5}}};r.registerTheme("macarons",i)})}(Kw)),Kw}M5t();var Qw={},jV;function O5t(){return jV||(jV=1,function(t){(function(e,r){typeof t.nodeName!="string"?r(t,sa):r({},e.echarts)})(Qw,function(e,r){var n=function(o){typeof console<"u"&&console&&console.error&&console.error(o)};if(!r){n("ECharts is not Loaded");return}var a=["#c12e34","#e6b600","#0098d9","#2b821d","#005eaa","#339ca8","#cda819","#32a487"],i={color:a,title:{textStyle:{fontWeight:"normal"}},visualMap:{color:["#1790cf","#a2d4e6"]},toolbox:{iconStyle:{borderColor:"#06467c"}},tooltip:{backgroundColor:"rgba(0,0,0,0.6)"},dataZoom:{dataBackgroundColor:"#dedede",fillerColor:"rgba(154,217,247,0.2)",handleColor:"#005eaa"},timeline:{lineStyle:{color:"#005eaa"},controlStyle:{color:"#005eaa",borderColor:"#005eaa"}},candlestick:{itemStyle:{color:"#c12e34",color0:"#2b821d"},lineStyle:{width:1,color:"#c12e34",color0:"#2b821d"},areaStyle:{color:"#e6b600",color0:"#005eaa"}},graph:{itemStyle:{color:"#e6b600"},linkStyle:{color:"#005eaa"}},map:{itemStyle:{color:"#f2385a",borderColor:"#eee",areaColor:"#ddd"},areaStyle:{color:"#ddd"},label:{color:"#c12e34"}},gauge:{axisLine:{show:!0,lineStyle:{color:[[.2,"#2b821d"],[.8,"#005eaa"],[1,"#c12e34"]],width:5}},axisTick:{splitNumber:10,length:8,lineStyle:{color:"auto"}},axisLabel:{color:"auto"},splitLine:{length:12,lineStyle:{color:"auto"}},pointer:{length:"90%",width:3,color:"auto"},title:{color:"#333"},detail:{color:"auto"}}};r.registerTheme("shine",i)})}(Qw)),Qw}O5t();var eS={},WV;function $5t(){return WV||(WV=1,function(t){(function(e,r){typeof t.nodeName!="string"?r(t,sa):r({},e.echarts)})(eS,function(e,r){var n=function(o){typeof console<"u"&&console&&console.error&&console.error(o)};if(!r){n("ECharts is not Loaded");return}var a=["#E01F54","#001852","#f5e8c8","#b8d2c7","#c6b38e","#a4d8c2","#f3d999","#d3758f","#dcc392","#2e4783","#82b6e9","#ff6347","#a092f1","#0a915d","#eaf889","#6699FF","#ff6666","#3cb371","#d5b158","#38b6b6"],i={color:a,visualMap:{color:["#e01f54","#e7dbc3"],textStyle:{color:"#333"}},candlestick:{itemStyle:{color:"#e01f54",color0:"#001852"},lineStyle:{width:1,color:"#f5e8c8",color0:"#b8d2c7"},areaStyle:{color:"#a4d8c2",color0:"#f3d999"}},graph:{itemStyle:{color:"#a4d8c2"},linkStyle:{color:"#f3d999"}},gauge:{axisLine:{lineStyle:{color:[[.2,"#E01F54"],[.8,"#b8d2c7"],[1,"#001852"]],width:8}}}};r.registerTheme("roma",i)})}(eS)),eS}$5t();var tS={},HV;function A5t(){return HV||(HV=1,function(t){(function(e,r){typeof t.nodeName!="string"?r(t,sa):r({},e.echarts)})(tS,function(e,r){var n=function(o){typeof console<"u"&&console&&console.error&&console.error(o)};if(!r){n("ECharts is not Loaded");return}var a=["#3f7ea6","#993366","#408000","#8c6f56","#a65149","#731f17","#adc2eb","#d9c3b0"],i={color:a,title:{textStyle:{fontWeight:"normal",color:"#3f7ea6"}},visualMap:{color:["#3f7ea6","#993366"]},toolbox:{color:["#3f7ea6","#3f7ea6","#3f7ea6","#3f7ea6"]},tooltip:{backgroundColor:"rgba(0,0,0,0.5)",axisPointer:{type:"line",lineStyle:{color:"#3f7ea6",type:"dashed"},crossStyle:{color:"#3f7ea6"},shadowStyle:{color:"rgba(200,200,200,0.3)"}}},dataZoom:{dataBackgroundColor:"#eee",fillerColor:"rgba(200,200,200,0.2)",handleColor:"#3f7ea6"},timeline:{lineStyle:{color:"#3f7ea6"},controlStyle:{color:"#3f7ea6",borderColor:"#3f7ea6"}},candlestick:{itemStyle:{color:"#d9c3b0",color0:"#8c6f56"},lineStyle:{width:1,color:"#731f17",color0:"#a65149"},areaStyle:{color:"#3f7ea6",color0:"#993366"}},map:{itemStyle:{color:"#d9c3b0"},areaStyle:{color:"#ddd"},label:{color:"#c12e34"}},graph:{itemStyle:{color:"#993366"},linkStyle:{color:"#3f7ea6"}},gauge:{axisLine:{lineStyle:{color:[[.2,"#d9c3b0"],[.8,"#3f7ea6"],[1,"#731f17"]],width:8}}}};r.registerTheme("royal",i)})}(tS)),tS}A5t();var rS={},UV;function P5t(){return UV||(UV=1,function(t){(function(e,r){typeof t.nodeName!="string"?r(t,sa):r({},e.echarts)})(rS,function(e,r){var n=function(l){typeof console<"u"&&console&&console.error&&console.error(l)};if(!r){n("ECharts is not Loaded");return}var a="#eee",i=function(){return{axisLine:{lineStyle:{color:a}},axisTick:{lineStyle:{color:a}},axisLabel:{color:a},splitLine:{lineStyle:{type:"dashed",color:"#aaa"}},splitArea:{areaStyle:{color:a}}}},o=["#00305a","#004b8d","#0074d9","#4192d9","#7abaf2","#99cce6","#d6ebf5","#eeeeee"],s={color:o,backgroundColor:"#333",tooltip:{axisPointer:{lineStyle:{color:a},crossStyle:{color:a}}},legend:{textStyle:{color:a}},title:{textStyle:{color:a}},toolbox:{iconStyle:{borderColor:a}},dataZoom:{dataBackgroundColor:"#eee",fillerColor:"rgba(200,200,200,0.2)",handleColor:"#00305a"},timeline:{itemStyle:{color:o[1]},lineStyle:{color:a},controlStyle:{color:a,borderColor:a},label:{color:a}},timeAxis:i(),logAxis:i(),valueAxis:i(),categoryAxis:i(),line:{symbol:"circle"},graph:{color:o},gauge:{axisLine:{lineStyle:{color:[[.2,"#004b8d"],[.8,"#00305a"],[1,"#7abaf2"]],width:8}}}};s.categoryAxis.splitLine.show=!1,r.registerTheme("dark-blue",s)})}(rS)),rS}P5t();var nS={},YV;function I5t(){return YV||(YV=1,function(t){(function(e,r){typeof t.nodeName!="string"?r(t,sa):r({},e.echarts)})(nS,function(e,r){var n=function(o){typeof console<"u"&&console&&console.error&&console.error(o)};if(!r){n("ECharts is not Loaded");return}var a=["#4d4d4d","#3a5897","#007bb6","#7094db","#0080ff","#b3b3ff","#00bdec","#33ccff","#ccddff","#eeeeee"],i={color:a,title:{textStyle:{fontWeight:"normal",color:"#00aecd"}},visualMap:{color:["#00aecd","#a2d4e6"]},toolbox:{color:["#00aecd","#00aecd","#00aecd","#00aecd"]},tooltip:{backgroundColor:"rgba(0,0,0,0.5)",axisPointer:{type:"line",lineStyle:{color:"#00aecd",type:"dashed"},crossStyle:{color:"#00aecd"},shadowStyle:{color:"rgba(200,200,200,0.3)"}}},dataZoom:{dataBackgroundColor:"#eee",fillerColor:"rgba(144,197,237,0.2)",handleColor:"#00aecd"},timeline:{lineStyle:{color:"#00aecd"},controlStyle:{color:"#00aecd"},emphasis:{controlStyle:{color:"#00aecd"}}},candlestick:{itemStyle:{color:"#ddd",color0:"#eee"},lineStyle:{width:1,color:"#33ccff",color0:"#1bb4cf"},areaStyle:{color:"#7094db",color0:"#33ccff"}},chord:{padding:4,itemStyle:{color:"#7094db",borderWidth:1,borderColor:"rgba(128, 128, 128, 0.5)"},lineStyle:{color:"rgba(128, 128, 128, 0.5)"},areaStyle:{color:"#33ccff"}},graph:{itemStyle:{color:"#7094db"},linkStyle:{color:"#33ccff"}},map:{itemStyle:{color:"#7094db"},areaStyle:{color:"#33ccff"},label:{color:"#ddd"}},gauge:{axisLine:{lineStyle:{color:[[.2,"#dddddd"],[.8,"#00aecd"],[1,"#33ccff"]],width:8}}}};r.registerTheme("tech-blue",i)})}(nS)),nS}I5t();var aS={},VV;function R5t(){return VV||(VV=1,function(t){(function(e,r){typeof t.nodeName!="string"?r(t,sa):r({},e.echarts)})(aS,function(e,r){var n=function(o){typeof console<"u"&&console&&console.error&&console.error(o)};if(!r){n("ECharts is not Loaded");return}var a=["#d8361b","#f16b4c","#f7b4a9","#d26666","#99311c","#c42703","#d07e75"],i={color:a,title:{textStyle:{fontWeight:"normal",color:"#d8361b"}},visualMap:{color:["#d8361b","#ffd2d2"]},dataRange:{color:["#bd0707","#ffd2d2"]},toolbox:{color:["#d8361b","#d8361b","#d8361b","#d8361b"]},tooltip:{backgroundColor:"rgba(0,0,0,0.5)",axisPointer:{type:"line",lineStyle:{color:"#d8361b",type:"dashed"},crossStyle:{color:"#d8361b"},shadowStyle:{color:"rgba(200,200,200,0.3)"}}},dataZoom:{dataBackgroundColor:"#eee",fillerColor:"rgba(216,54,27,0.2)",handleColor:"#d8361b"},grid:{borderWidth:0},categoryAxis:{axisLine:{lineStyle:{color:"#d8361b"}},splitLine:{lineStyle:{color:["#eee"]}}},valueAxis:{axisLine:{lineStyle:{color:"#d8361b"}},splitArea:{show:!0,areaStyle:{color:["rgba(250,250,250,0.1)","rgba(200,200,200,0.1)"]}},splitLine:{lineStyle:{color:["#eee"]}}},timeline:{lineStyle:{color:"#d8361b"},controlStyle:{color:"#d8361b",borderColor:"#d8361b"}},candlestick:{itemStyle:{color:"#f16b4c",color0:"#f7b4a9"},lineStyle:{width:1,color:"#d8361b",color0:"#d26666"},areaStyle:{color:"#d8361b",color0:"#d07e75"}},graph:{itemStyle:{color:"#d07e75"},linkStyle:{color:"#d8361b"}},chord:{padding:4,itemStyle:{color:"#d07e75",borderWidth:1,borderColor:"rgba(128, 128, 128, 0.5)"},lineStyle:{color:"rgba(128, 128, 128, 0.5)"},areaStyle:{color:"#d8361b"}},map:{itemStyle:{color:"#d8361b"},areaStyle:{color:"#d07e75"},label:{color:"#c12e34"}},gauge:{axisLine:{lineStyle:{color:[[.2,"#f16b4c"],[.8,"#d8361b"],[1,"#99311c"]],width:8}}}};r.registerTheme("red",i)})}(aS)),aS}R5t();var iS={},GV;function L5t(){return GV||(GV=1,function(t){(function(e,r){typeof t.nodeName!="string"?r(t,sa):r({},e.echarts)})(iS,function(e,r){var n=function(o){typeof console<"u"&&console&&console.error&&console.error(o)};if(!r){n("ECharts is not Loaded");return}var a=["#8b1a2d","#a7314b","#e6004c","#ff8066","#8e5c4e","#ff1a66","#d6c582","#f0d4af"],i={color:a,title:{textStyle:{fontWeight:"normal",color:"#8b1a2d"}},visualMap:{color:["#8b1a2d","#a7314b"]},toolbox:{color:["#8b1a2d","#8b1a2d","#8b1a2d","#8b1a2d"]},tooltip:{backgroundColor:"rgba(0,0,0,0.5)",axisPointer:{type:"line",lineStyle:{color:"#8b1a2d",type:"dashed"},crossStyle:{color:"#8b1a2d"},shadowStyle:{color:"rgba(200,200,200,0.3)"}}},dataZoom:{dataBackgroundColor:"#eee",fillerColor:"rgba(200,200,200,0.2)",handleColor:"#8b1a2d"},timeline:{lineStyle:{color:"#8b1a2d"},controlStyle:{color:"#8b1a2d",borderColor:"#8b1a2d"}},candlestick:{itemStyle:{color:"#a7314b",color0:"#d6c582"},lineStyle:{width:1,color:"#8e5c4e",color0:"#f0d4af"},areaStyle:{color:"#8b1a2d",color0:"#ff8066"}},map:{itemStyle:{color:"#8b1a2d"},areaStyle:{color:"#ff8066"},label:{color:"#c12e34"}},graph:{itemStyle:{color:"#ff8066"},linkStyle:{color:"#8b1a2d"}},gauge:{axisLine:{lineStyle:{color:[[.2,"#a7314b"],[.8,"#8b1a2d"],[1,"#8e5c4e"]],width:8}}}};r.registerTheme("red-velvet",i)})}(iS)),iS}L5t();var oS={},qV;function N5t(){return qV||(qV=1,function(t){(function(e,r){typeof t.nodeName!="string"?r(t,sa):r({},e.echarts)})(oS,function(e,r){var n=function(o){typeof console<"u"&&console&&console.error&&console.error(o)};if(!r){n("ECharts is not Loaded");return}var a=["#408829","#68a54a","#a9cba2","#86b379","#397b29","#8abb6f","#759c6a","#bfd3b7"],i={color:a,title:{textStyle:{fontWeight:"normal",color:"#408829"}},visualMap:{color:["408829","#a9cba2"]},toolbox:{color:["#408829","#408829","#408829","#408829"]},tooltip:{backgroundColor:"rgba(0,0,0,0.5)",axisPointer:{type:"line",lineStyle:{color:"#408829",type:"dashed"},crossStyle:{color:"#408829"},shadowStyle:{color:"rgba(200,200,200,0.3)"}}},dataZoom:{dataBackgroundColor:"#eee",fillerColor:"rgba(64,136,41,0.2)",handleColor:"#408829"},grid:{borderWidth:0},categoryAxis:{axisLine:{lineStyle:{color:"#408829"}},splitLine:{lineStyle:{color:["#eee"]}}},valueAxis:{axisLine:{lineStyle:{color:"#408829"}},splitArea:{show:!0,areaStyle:{color:["rgba(250,250,250,0.1)","rgba(200,200,200,0.1)"]}},splitLine:{lineStyle:{color:["#eee"]}}},timeline:{lineStyle:{color:"#408829"},controlStyle:{color:"#408829",borderColor:"#408829"}},candlestick:{itemStyle:{color:"#68a54a",color0:"#a9cba2"},lineStyle:{width:1,color:"#408829",color0:"#86b379"},areaStyle:{color:"#408829",color0:"#bfd3b7"}},graph:{itemStyle:{color:"#bfd3b7"},linkStyle:{color:"#408829"}},chord:{padding:4,itemStyle:{color:"#bfd3b7",borderWidth:1,borderColor:"rgba(128, 128, 128, 0.5)"},lineStyle:{color:"rgba(128, 128, 128, 0.5)"},areaStyle:{color:"#408829"}},map:{itemStyle:{color:"#ddd"},areaStyle:{color:"#408829"},label:{color:"#000"}},gauge:{axisLine:{lineStyle:{color:[[.2,"#86b379"],[.8,"#68a54a"],[1,"#408829"]],width:8}}}};r.registerTheme("green",i)})}(oS)),oS}N5t();var sS={},XV;function F5t(){return XV||(XV=1,function(t){(function(e,r){typeof t.nodeName!="string"?r(t,sa):r({},e.echarts)})(sS,function(e,r){var n=function(o){typeof console<"u"&&console&&console.error&&console.error(o)};if(!r){n("ECharts is not Loaded");return}var a=["#757575","#c7c7c7","#dadada","#8b8b8b","#b5b5b5","#e9e9e9"],i={color:a,title:{textStyle:{fontWeight:"normal",color:"#757575"}},dataRange:{color:["#636363","#dcdcdc"]},toolbox:{color:["#757575","#757575","#757575","#757575"]},tooltip:{backgroundColor:"rgba(0,0,0,0.5)",axisPointer:{type:"line",lineStyle:{color:"#757575",type:"dashed"},crossStyle:{color:"#757575"},shadowStyle:{color:"rgba(200,200,200,0.3)"}}},dataZoom:{dataBackgroundColor:"#eee",fillerColor:"rgba(117,117,117,0.2)",handleColor:"#757575"},grid:{borderWidth:0},categoryAxis:{axisLine:{lineStyle:{color:"#757575"}},splitLine:{lineStyle:{color:["#eee"]}}},valueAxis:{axisLine:{lineStyle:{color:"#757575"}},splitArea:{show:!0,areaStyle:{color:["rgba(250,250,250,0.1)","rgba(200,200,200,0.1)"]}},splitLine:{lineStyle:{color:["#eee"]}}},timeline:{lineStyle:{color:"#757575"},controlStyle:{color:"#757575",borderColor:"#757575"}},candlestick:{itemStyle:{color:"#8b8b8b",color0:"#dadada"},lineStyle:{width:1,color:"#757575",color0:"#c7c7c7"},areaStyle:{color:"#757575",color0:"#e9e9e9"}},map:{itemStyle:{color:"#c7c7c7"},areaStyle:{color:"ddd"},label:{color:"#c12e34"}},graph:{itemStyle:{color:"#e9e9e9"},linkStyle:{color:"#757575"}},chord:{padding:4,itemStyle:{color:"#e9e9e9",borderWidth:1,borderColor:"rgba(128, 128, 128, 0.5)"},lineStyle:{color:"rgba(128, 128, 128, 0.5)"},areaStyle:{color:"#757575"}},gauge:{axisLine:{lineStyle:{color:[[.2,"#b5b5b5"],[.8,"#757575"],[1,"#5c5c5c"]],width:8}}}};r.registerTheme("gray",i)})}(sS)),sS}F5t();var lS={},JV;function z5t(){return JV||(JV=1,function(t){(function(e,r){typeof t.nodeName!="string"?r(t,sa):r({},e.echarts)})(lS,function(e,r){var n=function(l){typeof console<"u"&&console&&console.error&&console.error(l)};if(!r){n("ECharts is not Loaded");return}var a="#eee",i=function(){return{axisLine:{lineStyle:{color:a}},axisTick:{lineStyle:{color:a}},axisLabel:{color:a},splitLine:{lineStyle:{type:"dashed",color:"#aaa"}},splitArea:{areaStyle:{color:a}}}},o=["#458c6b","#f2da87","#d9a86c","#d94436","#a62424","#76bc9b","#cce6da","#eeeeee"],s={color:o,backgroundColor:"#333",tooltip:{axisPointer:{lineStyle:{color:a},crossStyle:{color:a}}},legend:{textStyle:{color:a}},title:{textStyle:{color:a}},toolbox:{iconStyle:{borderColor:a}},dataZoom:{dataBackgroundColor:"#eee",fillerColor:"rgba(200,200,200,0.2)",handleColor:"#458c6b"},timeline:{itemStyle:{color:o[1]},lineStyle:{color:a},controlStyle:{color:a,borderColor:a},label:{color:a}},timeAxis:i(),logAxis:i(),valueAxis:i(),categoryAxis:i(),line:{symbol:"circle"},graph:{color:o},gauge:{axisLine:{lineStyle:{color:[[.2,"#f2da87"],[.8,"#458c6b"],[1,"#a62424"]],width:8}}}};s.categoryAxis.splitLine.show=!1,r.registerTheme("dark-bold",s)})}(lS)),lS}z5t();oa([RY,oLt,DLt,uNt,ONt,FLt,qLt,eNt,TLt,RY,cPt,cIt,TPt,bIt,h5t,Ure]);const Mu={chart:{maxHeight:"100%",maxWidth:"100%",width:"100%",height:"100%",overflow:"hidden",position:"relative"},saveImageButton:{position:"absolute",top:40,right:5,width:20,height:20,zIndex:2,opacity:.7,cursor:"pointer"},exportDataButton:{position:"absolute",top:70,right:5,width:20,height:20,zIndex:2,opacity:.7,cursor:"pointer"},copyButton:{position:"absolute",top:100,right:5,width:20,height:20,zIndex:2,opacity:.7,cursor:"pointer"},resetButton:{position:"absolute",top:10,right:25,zIndex:2,opacity:.7},legendButton:{position:"absolute",top:10,left:30,zIndex:2,opacity:.7},resetButtonIcon:{paddingTop:6}};let ZV=null;function B5t(t,e,r){const a=(ZV||(ZV=document.createElement("canvas"))).getContext("2d");a.font=`${e||12}px ${r||"Microsoft YaHei"}`;const i=a.measureText(t);return Math.ceil(i.width)}class j5t extends E.Component{constructor(r){var n,a;super(r);de(this,"divRef");de(this,"echartsReact",null);de(this,"divResetButton");de(this,"selected",null);de(this,"lastIds");de(this,"chartOption");de(this,"resetZoomAndTiltTimer",null);de(this,"timerResize",null);de(this,"updatePropertiesTimeout",null);de(this,"updateDataTimer",null);de(this,"debug",!1);de(this,"mouseDown",!1);de(this,"option",null);de(this,"zr",null);de(this,"zrMousemove",!1);de(this,"zrIobInstalled",!1);de(this,"updateProperties",r=>{var n,a;if(this.updatePropertiesTimeout=null,this.echartsReact&&typeof this.echartsReact.getEchartsInstance=="function"){const i=this.echartsReact.getEchartsInstance(),o=((a=(n=r.config)==null?void 0:n.l)==null?void 0:a.map(l=>l.id))||[];o.sort();const s=JSON.stringify(o)!==JSON.stringify(this.lastIds);s&&(this.lastIds=o,i.clear()),this.option=this.chartOption.getOption(r.data,r.config,r.actualValues,r.categories),this.applySelected(),this.debug&&console.log(`[ChartView ] [${new Date().toISOString()}] updateProperties: {min: ${this.option.xAxis[0].min}, ${this.option.xAxis[0].max}}`);try{i.setOption(this.option,s)}catch{console.error(`Cannot apply options: ${JSON.stringify(this.option)}`)}}});de(this,"onResize",()=>{this.timerResize&&clearTimeout(this.timerResize),this.timerResize=setTimeout(()=>{this.timerResize=null,this.componentDidUpdate()})});de(this,"onMouseMove",r=>{if(this.mouseDown){this.divResetButton.current&&this.divResetButton.current.style.display!=="block"&&(this.divResetButton.current.style.display="block");const n=this.chartOption.getHelperChartData();if(r.shiftKey){n.yMoved=!0;const a=n.lastY-(r.offsetY-n.padTop);n.lastY=r.offsetY-n.padTop;const i=this.state.chartHeight-n.padTop-n.padBottom;let o,s;n._yAxis.forEach(l=>{s=l.max-l.min,o=a*s/i,l.min-=o,l.max-=o}),this.setNewYAxis(n._yAxis)}else{n.xMoved=!0;const a=n.lastX-(r.offsetX-n.padLeft);n.lastX=r.offsetX-n.padLeft;const i=n.xMax-n.xMin,o=this.state.chartWidth-n.padRight-n.padLeft,s=Math.round(a*i/o);n.xMin+=s,n.xMax+=s,this.setNewRange()}}});de(this,"onMouseDown",r=>{this.mouseDown=!0;const n=this.chartOption.getHelperChartData();n.lastX=r.offsetX,n.lastY=r.offsetY,n.yMoved=!1,n.xMoved=!1,n._yAxis=JSON.parse(JSON.stringify(n.yAxis)),this.zr&&!this.zrMousemove&&(this.zrMousemove=!0,this.zr.on("mousemove",this.onMouseMove)),this.props.config.live&&this.props.onRangeChange&&(console.log("Stop update"),this.props.onRangeChange({stopLive:!0}))});de(this,"onMouseUp",()=>{this.mouseDown=!1,this.chartOption.getHelperChartData().xMoved&&this.setNewRange(!0),this.zr&&this.zrMousemove&&(this.zrMousemove=!1,this.zr.off("mousemove",this.onMouseMove))});de(this,"onMouseWheel",r=>{const n=this.chartOption.getHelperChartData();if(r.shiftKey){const a=this.state.chartHeight-n.padBottom-n.padTop,o=(r.offsetY-n.padTop)/a,s=r.deltaY>0||r.deltaX>0?1.1:.9,l=JSON.parse(JSON.stringify(n.yAxis));n.yAxis.forEach(c=>{let d=c.max-c.min;const u=d;d*=s;const f=u-d;c.max+=f*(1-o),c.min-=f*o}),this.setNewYAxis(l)}else{let a=n.xMax-n.xMin;const i=this.state.chartWidth-n.padRight-n.padLeft,s=(r.offsetX-n.padLeft)/i,l=a,c=r.deltaY>0||r.deltaX>0?1.1:.9;a*=c;const d=l-a;n.xMax+=d*(1-s),n.xMin-=d*s,this.setNewRange(),this.updateDataTimer&&clearTimeout(this.updateDataTimer),this.updateDataTimer=setTimeout(()=>this.setNewRange(!0),1e3)}});de(this,"onTouchStart",r=>{this.mouseDown=!0;const n=r.touches||r.originalEvent.touches;if(n){r.preventDefault(),r.stopImmediatePropagation();const a=this.chartOption.getHelperChartData();a.lastX=n[n.length-1].pageX,n.length>1?a.lastWidth=Math.round(Math.abs(n[0].pageX-n[1].pageX)):a.lastWidth=null}});de(this,"onTouchEnd",r=>{this.mouseDown&&(r.stopImmediatePropagation(),r.preventDefault(),this.mouseDown=!1,this.setNewRange(!0))});de(this,"onTouchMove",r=>{const n=r.touches||r.originalEvent.touches;if(!n)return;const a=this.chartOption.getHelperChartData(),i=n[n.length-1].pageX-a.padLeft;if(this.mouseDown)if(r.preventDefault(),r.stopImmediatePropagation(),this.divResetButton.current&&this.divResetButton.current.style.display!=="block"&&(this.divResetButton.current.style.display="block"),n.length>1){console.log(`touch move: ${n.length}`);const o=Math.round(Math.abs(n[0].pageX-n[1].pageX));if(a.lastWidth!==null&&o!==a.lastWidth){let s=a.xMax-a.xMin;const l=this.state.chartWidth-a.padRight-a.padLeft,c=o>a.lastWidth?1.05:.95,u=(n[0].pageX>n[1].pageX?n[1].pageX-a.padLeft+o/2:n[0].pageX-a.padLeft+o/2)/l,f=s;s*=c;const p=f-s;console.log(`Move: ${Math.round(p/1e3)} => ${Math.round(p*u/1e3)} -- ${Math.round(p*(1-u)/1e3)}`),a.xMax+=p*(1-u),a.xMin-=p*u,a.xMax=Math.round(a.xMax),a.xMin=Math.round(a.xMin),this.setNewRange()}a.lastWidth=o}else{const o=a.lastX-i,s=a.xMax-a.xMin,l=this.state.chartWidth-a.padRight-a.padLeft,c=Math.round(o*s/l);a.xMin+=c,a.xMax+=c,this.setNewRange()}a.lastX=i});this.state={chartHeight:null,chartWidth:null,excluded:[],timeFormat:window.localStorage.getItem("Chart.timeFormat")||"locale",data:null,exporting:!1,showExportDataDialog:!1,showLegendDialog:!1},this.divRef=E.createRef(),this.divResetButton=E.createRef(),Ye.locale(te.getLanguage()),this.lastIds=((a=(n=this.props.config)==null?void 0:n.l)==null?void 0:a.map(i=>i.id))||[],this.lastIds.sort(),this.chartOption=new aC(Ye,this.props.themeType,B5t,void 0,this.props.compact)}componentDidMount(){window.addEventListener("resize",this.onResize)}componentWillUnmount(){this.resetZoomAndTiltTimer&&(clearTimeout(this.resetZoomAndTiltTimer),this.resetZoomAndTiltTimer=null),this.timerResize&&(clearTimeout(this.timerResize),this.timerResize=null),this.updatePropertiesTimeout&&(clearTimeout(this.updatePropertiesTimeout),this.updatePropertiesTimeout=null),this.updateDataTimer&&(clearTimeout(this.updateDataTimer),this.updateDataTimer=null),window.removeEventListener("resize",this.onResize)}UNSAFE_componentWillReceiveProps(r){r.data!==this.state.data&&(this.updatePropertiesTimeout&&clearTimeout(this.updatePropertiesTimeout),this.updatePropertiesTimeout=setTimeout(this.updateProperties,100,r))}setNewRange(r){var a;const n=this.chartOption.getHelperChartData();if(n.diff=n.xMax-n.xMin,n.withTime=n.diff<36e5*24*7,n.withSeconds=n.diff<6e4*30,console.log(`[ChartView ] [${new Date().toISOString()}] setNewRange: ${!!r}, {min: ${new Date(n.xMin).toString()}, max: ${new Date(n.xMax).toString()}}`),r)this.updateDataTimer&&(clearTimeout(this.updateDataTimer),this.updateDataTimer=null),this.props.onRangeChange&&this.props.onRangeChange({start:n.xMin,end:n.xMax}),this.props.config.resetZoom&&(this.resetZoomAndTiltTimer&&clearTimeout(this.resetZoomAndTiltTimer),this.resetZoomAndTiltTimer=setTimeout(()=>{this.resetZoomAndTiltTimer=null,this.divResetButton.current&&(this.divResetButton.current.style.display="none"),this.props.onRangeChange&&this.props.onRangeChange()},1e3*this.props.config.resetZoom));else{console.log(`[ChartView ] [${new Date().toISOString()}] setOption in setNewRange`),this.option.xAxis[0].min=n.xMin,this.option.xAxis[0].max=n.xMax;try{typeof((a=this.echartsReact)==null?void 0:a.getEchartsInstance)=="function"&&this.echartsReact.getEchartsInstance().setOption({xAxis:{min:n.xMin,max:n.xMax}})}catch{console.error(`Cannot apply options 1: ${JSON.stringify(this.option)}`)}}}setNewYAxis(r){var n;this.option.yAxis=r;try{typeof((n=this.echartsReact)==null?void 0:n.getEchartsInstance)=="function"&&this.echartsReact.getEchartsInstance().setOption({yAxis:r})}catch{console.error(`Cannot apply options 2: ${JSON.stringify(this.option)}`)}}installEventHandlers(){var a;this.zr=(a=this.echartsReact)!=null&&a.getEchartsInstance?this.echartsReact.getEchartsInstance().getZr():null;const r=this.divRef.current&&this.divRef.current.getElementsByClassName("echarts-for-react"),n=r==null?void 0:r[0];this.zr&&this.props.config.zoom&&!this.zrIobInstalled?(this.zrIobInstalled=!0,!this.option||!this.option.useCanvas?(this.zr.on("mousedown",this.onMouseDown),this.zr.on("mouseup",this.onMouseUp),this.zr.on("mousewheel",this.onMouseWheel)):n&&(n.addEventListener("touchstart",this.onTouchStart,!1),n.addEventListener("touchend",this.onTouchEnd,!1),n.addEventListener("touchmove",this.onTouchMove,!1))):this.zr&&!this.props.config.zoom&&this.zrIobInstalled&&(this.zrIobInstalled=!1,this.option||!this.option.useCanvas?(this.zr.off("mousedown",this.onMouseDown),this.zr.off("mouseup",this.onMouseUp),this.zr.off("mousewheel",this.onMouseWheel),this.zr&&this.zrMousemove&&(this.zrMousemove=!1,this.zr.off("mousemove",this.onMouseMove))):n&&(n.removeEventListener("touchstart",this.onTouchStart,!1),n.removeEventListener("touchend",this.onTouchEnd,!1),n.removeEventListener("touchmove",this.onTouchMove,!1)))}applySelected(){this.props.config.legend==="dialog"?(this.option.legend={data:this.props.config.l.map(r=>r.name),show:!1,selected:{}},this.props.config.l.forEach(r=>this.option.legend.selected[r.name]=!this.state.excluded.includes(r.id))):this.selected&&this.option.legend&&Object.keys(this.selected).forEach(r=>this.option.legend.selected[r]=this.selected[r])}renderChart(){if(this.props.data){this.option=this.option||this.chartOption.getOption(this.props.data,this.props.config,this.props.actualValues,this.props.categories);const r=!!this.props.config.l.find(n=>n.chartType==="bar"||n.chartType==="polar");return this.props.config.title?window.document.title=this.props.config.title:this.props.config.presetId&&(window.document.title=this.props.config.presetId),this.debug&&console.log(`[ChartView ] [${new Date().toISOString()}] render chart`),this.applySelected(),q.jsx(JCt,{ref:n=>{this.echartsReact=n},echarts:jAt,option:this.option,notMerge:!0,lazyUpdate:!0,theme:this.option.theme,style:{height:`${this.state.chartHeight}px`,width:"100%"},opts:this.option&&this.option.useCanvas?void 0:{renderer:"svg"},onEvents:{legendselectchanged:n=>{this.selected=JSON.parse(JSON.stringify(n.selected))},rendered:()=>!this.props.compact&&this.props.config.zoom&&!r&&this.installEventHandlers()}})}return q.jsx(bL,{})}componentDidUpdate(){if(this.divRef.current){const r=this.props.config.noBorder!=="noborder"&&parseFloat(this.props.config.border_width)||0,n=parseFloat(this.props.config.border_padding)||0,a=this.divRef.current.offsetHeight-(r+n)*2;if(this.state.chartHeight!==a){const i=this.divRef.current.offsetWidth-(r+n)*2;setTimeout(()=>this.setState({chartHeight:a,chartWidth:i}),10)}}}renderResetButton(){return q.jsx(_c,{ref:this.divResetButton,size:"small",color:"default",style:{...Mu.resetButton,display:"none"},title:te.t("Reset pan and zoom"),onClick:()=>{this.divResetButton.current&&(this.divResetButton.current.style.display="none"),this.props.onRangeChange&&this.props.onRangeChange()},children:q.jsx(Gbt,{style:Mu.resetButtonIcon})})}renderSaveImageButton(){return this.props.config.export?q.jsx(Ybt,{color:this.props.config.exportColor||"default",style:Mu.saveImageButton,title:this.option&&this.option.useCanvas?te.t("Save chart as png"):te.t("Save chart as svg"),onClick:()=>{var r,n;if(this.echartsReact&&typeof this.echartsReact.getEchartsInstance=="function"){let i=this.echartsReact.getEchartsInstance().getDataURL({pixelRatio:2,backgroundColor:this.props.config.window_bg||(this.props.themeType==="dark"?"#000":"#FFF")});if(!this.option||!this.option.useCanvas)try{const d=i.split(",");let u=decodeURIComponent(d[1]);u=u.replace('fill="none"',`fill="${this.props.config.window_bg||(this.props.themeType==="dark"?"#000":"#FFF")}"`),u=u.replace('fill="transparent"',`fill="${this.props.config.window_bg||(this.props.themeType==="dark"?"#000":"#FFF")}"`),i=`${d[0]},${encodeURIComponent(u)}`}catch(d){console.warn(`cannot attach background: ${d}`)}const o=document.createElement("a");document.body.appendChild(o),o.href=i,o.target="_self";let s;this.props.config.l.length===1?s=this.props.config.l[0].name:s="chart";const l=this.option,c=l==null?void 0:l.series;if((n=(r=c==null?void 0:c[0])==null?void 0:r.data)!=null&&n.length){const d=new Date(l.xAxis[0].max||c[0].data[c[0].data.length-1].value[0]);try{o.download=`${d.getFullYear()}_${(d.getMonth()+1).toString().padStart(2,"0")}_${d.getDate().toString().padStart(2,"0")}_${d.getHours().toString().padStart(2,"0")}_${d.getMinutes().toString().padStart(2,"0")}_${s}.${this.option&&this.option.useCanvas?"png":"svg"}`,o.click()}catch(u){console.error(`Cannot access download: ${u}`),window.alert(te.t("Unfortunately your browser does not support this feature"))}}else window.alert(te.t("No data found"))}}}):null}exportData(){const r=this.chartOption.getHelperChartData();this.setState({exporting:!0},()=>this.props.exportData(r.xMin,r.xMax,this.state.excluded).then(n=>{const a=document.createElement("a");document.body.appendChild(a);const i=["time"],o=[];Object.keys(n).forEach((u,f)=>{i.push(u),n[u].forEach(p=>{const v=[p.ts];v[f+1]=p.val,o.push(v)})}),o.sort((u,f)=>u[0]-f[0]);for(let u=0;u{let f;if(l==="iso")f=new Date(u.shift()).toISOString();else if(l==="locale"){const p=new Date(u.shift());f=`${p.toLocaleDateString()} ${p.toLocaleTimeString()}.${p.getMilliseconds().toString().padStart(3,"0")}`}else f=u.shift().toString();s.push(`${f};${u.join(";")}`)}),a.href=`data:text/plain;charset=utf-8,${i.join(";")} ${s.join(` -`)}`,a.target="_self";let c;this.props.config.l.length===1?c=this.props.config.l[0].name:c="chart";const d=new Date(r.xMin);try{a.download=`${d.getFullYear()}_${(d.getMonth()+1).toString().padStart(2,"0")}_${d.getDate().toString().padStart(2,"0")}_${d.getHours().toString().padStart(2,"0")}_${d.getMinutes().toString().padStart(2,"0")}_${c}.csv`,a.click()}catch(u){console.error(`Cannot access download: ${u}`),window.alert(te.t("Unfortunately your browser does not support this feature"))}this.setState({exporting:!1})}))}renderExportDataButton(){return this.props.config.exportData?q.jsx(Vbt,{color:this.props.config.exportDataColor||"default",style:{...Mu.exportDataButton,opacity:this.state.exporting?.5:1},title:te.t("Export raw data as CSV"),onClick:()=>{this.state.exporting||(this.props.config.l.length===1?this.exportData():this.setState({showExportDataDialog:!0}))}}):null}renderLegendDialog(){var r,n;return this.props.config.legend!=="dialog"?null:q.jsxs(q.Fragment,{children:[q.jsx(_c,{size:"small",color:"default",style:{...Mu.legendButton,left:((n=(r=this.option)==null?void 0:r.grid)==null?void 0:n.left)||0},title:te.t("Select lines"),onClick:()=>this.setState({showLegendDialog:!0}),children:q.jsx(Wbt,{style:Mu.resetButtonIcon})}),this.state.showLegendDialog?q.jsxs(ms,{open:!0,onClose:()=>this.setState({showLegendDialog:!1}),children:[q.jsx(_s,{children:te.t("Select lines to show")}),q.jsxs(gs,{children:[q.jsx(Xt,{control:q.jsx(Un,{checked:!this.state.excluded.length,indeterminate:this.state.excluded.length&&this.state.excluded.length!==this.props.config.l.length,onChange:()=>{this.state.excluded.length?this.setState({excluded:[]}):this.setState({excluded:this.props.config.l.map(a=>a.id)})}}),label:this.state.excluded.length!==this.props.config.l.length?te.t("Select all"):te.t("Unselect all")}),this.props.config.l.map((a,i)=>q.jsxs(tn,{onClick:()=>{const o=[...this.state.excluded],s=o.indexOf(a.id);s===-1?o.push(a.id):o.splice(s,1),this.setState({excluded:o})},children:[q.jsx(Un,{checked:!this.state.excluded.includes(a==null?void 0:a.id)}),q.jsxs("div",{children:[q.jsx("div",{children:(a==null?void 0:a.name)||(a==null?void 0:a.id)}),q.jsx("div",{style:{opacity:.7,fontStyle:"italic",fontSize:"smaller"},children:a!=null&&a.name?a==null?void 0:a.id:null})]})]},i))]}),q.jsx(vs,{children:q.jsx(Vr,{variant:"contained",color:"grey",onClick:()=>this.setState({showLegendDialog:!1}),startIcon:q.jsx("span",{style:{fontSize:14},children:"X"}),children:te.t("Close")})})]}):null]})}renderExportDataDialog(){return this.state.showExportDataDialog?q.jsxs(ms,{open:!0,onClose:()=>this.setState({showExportDataDialog:!1}),children:[q.jsx(_s,{children:te.t("Select lines for export")}),q.jsxs(gs,{children:[q.jsxs(Af,{fullWidth:!0,variant:"standard",children:[q.jsx(ty,{children:te.t("Time format")}),q.jsxs(ns,{value:this.state.timeFormat,onChange:r=>{window.localStorage.setItem("Chart.timeFormat",r.target.value),this.setState({timeFormat:r.target.value})},children:[q.jsx(tn,{value:"iso",children:"ISO"}),q.jsx(tn,{value:"locale",children:te.t("Browser format")}),q.jsx(tn,{value:"ts",children:te.t("Time stamp in milliseconds")})]})]}),q.jsx(Xt,{control:q.jsx(Un,{checked:!this.state.excluded.length,indeterminate:this.state.excluded.length&&this.state.excluded.length!==this.props.config.l.length,onChange:()=>{this.state.excluded.length?this.setState({excluded:[]}):this.setState({excluded:this.props.config.l.map(r=>r.id)})}}),label:this.state.excluded.length!==this.props.config.l.length?te.t("Select all"):te.t("Unselect all")}),this.props.config.l.map((r,n)=>q.jsxs(tn,{onClick:()=>{const a=[...this.state.excluded],i=a.indexOf(r.id);i===-1?a.push(r.id):a.splice(i,1),this.setState({excluded:a})},children:[q.jsx(Un,{checked:!this.state.excluded.includes(r==null?void 0:r.id)}),q.jsxs("div",{children:[q.jsx("div",{children:(r==null?void 0:r.name)||(r==null?void 0:r.id)}),q.jsx("div",{style:{opacity:.7,fontStyle:"italic",fontSize:"smaller"},children:r!=null&&r.name?r==null?void 0:r.id:null})]})]},n))]}),q.jsxs(vs,{children:[q.jsx(Vr,{variant:"contained",color:"primary",disabled:this.state.excluded.length===this.props.config.l.length,startIcon:q.jsx(Hbt,{}),onClick:()=>{this.setState({showExportDataDialog:!1}),this.exportData()},children:te.t("Export")}),q.jsx(Vr,{variant:"contained",color:"grey",onClick:()=>this.setState({showExportDataDialog:!1}),startIcon:q.jsx("span",{style:{fontSize:14},children:"X"}),children:te.t("Cancel")})]})]}):null}renderDevCopyButton(){return window.location.port==="3000"?q.jsx(Ubt,{color:"default",style:Mu.copyButton,title:"Copy option to clipboard",onClick:()=>tr.copyToClipboard(JSON.stringify(this.option,null,2))}):null}render(){this.divRef.current||setTimeout(()=>this.forceUpdate(),10);const r=this.props.config.noBorder!=="noborder"&&parseFloat(this.props.config.border_width)||0,n=parseFloat(this.props.config.border_padding)||0;return q.jsxs("div",{ref:this.divRef,style:{...Mu.chart,borderWidth:r,width:r||n?`calc(100% - ${(r+n)*2+1}px)`:"100%",height:r||n?`calc(100% - ${(r+n)*2}px)`:"100%",background:this.props.config.noBackground?void 0:this.props.config.window_bg||void 0,borderColor:this.props.config.noBorder!=="noborder"&&this.props.config.border_color||void 0,borderStyle:this.props.config.noBorder!=="noborder"&&r?this.props.config.border_style||"solid":"hidden",padding:n||0},children:[this.renderSaveImageButton(),this.renderExportDataDialog(),this.renderExportDataButton(),this.renderResetButton(),this.renderDevCopyButton(),this.state.chartHeight!==null?this.renderChart():null,this.option?this.renderLegendDialog():null]})}}const W5t=S0()(j5t),KV={root:{width:"100%",height:"100%",position:"relative"},progress:{position:"absolute",top:0,left:0,right:0,display:"block"}};class iC extends z.Component{constructor(r){super(r);de(this,"socket");de(this,"chartData");de(this,"inEdit");de(this,"divRef");de(this,"progressRef");de(this,"progressShown");de(this,"adminCorrectTimeout",null);de(this,"onReceiveMessage",r=>{if(r&&r.data!=="chartReady")try{const n=JSON.parse(r.data);this.chartData?this.chartData.setConfig(n):this.createChartData(n)}catch{console.log(`Cannot parse ${r.data}`)}});const n=iC.createTheme(),a=tr.parseQuery(window.location.search),i=tr.parseQuery((window.location.hash||"").replace(/^#/,""));this.state={connected:!1,seriesData:null,categories:null,actualValues:null,noLoader:!!a.noLoader||!!i.noLoader||!1,theme:n,themeType:iC.getThemeType(n),noBackground:!!a.noBG||!!i.noBG||!1,compact:!!a.compact||!!i.compact||!1,dataLoaded:!1},this.inEdit=a.edit==="1"||a.edit===1||a.edit===!0||a.edit==="true"||i.edit==="1"||i.edit===1||i.edit===!0||i.edit==="true",this.divRef=E.createRef(),this.progressRef=E.createRef(),this.progressShown=!0;const o={en:A$e,de:PLe,ru:IFe,pt:Rje,nl:LUe,fr:NXe,it:Bet,es:jit,pl:Wut,uk:Hmt,"zh-cn":U0t},s={en:q0t,de:K0t,ru:rbt,pt:obt,nl:ubt,fr:pbt,it:_bt,es:Sbt,pl:kbt,uk:Obt,"zh-cn":Ibt};Object.keys(o).forEach(l=>o[l]=Object.assign(o[l],s[l])),te.setTranslations(o),window.socketUrl&&window.socketUrl.startsWith(":")&&(window.socketUrl=`${window.location.protocol}//${window.location.hostname}${window.socketUrl}`),window.location.port==="8082"&&window.location.pathname.includes("/adapter/echarts/chart/")&&(this.adminCorrectTimeout=setTimeout(()=>{this.adminCorrectTimeout=null,window.location.href=window.location.href.replace("/adapter/echarts/chart/","/echarts/")},2e3)),this.socket=new Pu({name:window.adapterName,onProgress:l=>{l===al.CONNECTING?this.state.seriesData?(this.divRef.current&&(this.divRef.current.style.opacity="0.5"),this.progressRef.current&&(this.progressRef.current.style.display="block")):this.setState({connected:!1}):l===al.READY?(this.setState({connected:!0}),this.restoreAfterReconnection()):(this.setState({connected:!0}),this.restoreAfterReconnection())},onReady:()=>{if(this.adminCorrectTimeout&&(clearTimeout(this.adminCorrectTimeout),this.adminCorrectTimeout=null),te.setLanguage(this.socket.systemLang),this.inEdit){if(window.addEventListener("message",this.onReceiveMessage),window.self!==window.parent)try{window.parent.postMessage("chartReady","*")}catch(l){console.warn("Cannot send ready event to parent window"),console.error(l)}}else this.createChartData()},onError:l=>{console.error(l),this.showError(l)}})}restoreAfterReconnection(){this.divRef.current&&(this.divRef.current.style.opacity="1"),this.progressRef.current&&!this.progressShown&&(this.progressRef.current.style.display="none"),this.state.seriesData&&!this.state.seriesData.find(r=>r.length)&&this.chartData.setNewRange()}createChartData(r){this.chartData=new ti(this.socket,r,{compact:this.state.compact}),this.chartData.onError(n=>{n.toString().includes(cc.NOT_CONNECTED)?(this.divRef.current&&(this.divRef.current.style.opacity="0.5"),this.progressRef.current&&(this.progressRef.current.style.display="block")):this.showError(te.t(n.toString()))}),this.chartData.onReading(n=>this.showProgress(n)),this.chartData.onUpdate((n,a,i)=>{const o={connected:!0,dataLoaded:!0};n&&(o.seriesData=n,o.categories=i),a&&(o.actualValues=a),this.setState(o,()=>this.showProgress(!1))})}showProgress(r){this.progressShown=r,this.progressRef.current&&(this.progressRef.current.style.display=r?"block":"none")}componentWillUnmount(){this.inEdit&&window.removeEventListener("message",this.onReceiveMessage,!1),this.chartData&&this.chartData.destroy()}static createTheme(r){return r_e(tr.getThemeName(r))}static getThemeType(r){return r.palette.mode}showError(r){this.setState({errorText:r})}renderError(){return this.state.errorText?q.jsx(eX,{text:this.state.errorText,onClose:()=>this.setState({errorText:""})}):null}componentDidUpdate(){!this.progressShown&&this.progressRef.current&&this.progressRef.current.style.display!=="none"&&(this.progressRef.current.style.display="none")}render(){if(!this.state.connected||!this.state.seriesData)return this.state.noLoader?null:q.jsx(sz,{injectFirst:!0,children:q.jsx(Mz,{theme:this.state.theme,children:q.jsx(R_e,{themeType:this.state.themeType})})});const r=this.chartData.getConfig(),n=Ode(JSON.stringify((r&&r.l&&r.l.map(a=>a.id)||[]).sort())).toString();return this.state.seriesData&&r.debug&&console.log(`seriesData: ${JSON.stringify(this.state.seriesData)}`),q.jsx(sz,{injectFirst:!0,children:q.jsx(Mz,{theme:this.state.theme,children:q.jsxs("div",{ref:this.divRef,style:{...KV.root,width:r.width,height:r.height,background:this.state.noBackground||r.noBackground?void 0:this.state.theme.palette.background.default,color:this.state.theme.palette.text.primary},children:[q.jsx(bL,{ref:this.progressRef,style:KV.progress}),q.jsx(W5t,{socket:this.socket,t:te.t,noAnimation:this.state.noLoader,data:this.state.seriesData,actualValues:this.state.actualValues,categories:this.state.categories||[],config:r,compact:this.state.compact,lang:te.getLanguage(),themeType:this.state.themeType,onRangeChange:a=>this.chartData.setNewRange(a),exportData:(a,i,o)=>this.chartData.exportData(a,i,o)},n),this.renderError()]})})})}}const H5t=S0()(iC);window.location.hostname==="localhost"||window.location.hostname==="[::1]"||window.location.hostname.match(/^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/);function U5t(){"serviceWorker"in navigator&&navigator.serviceWorker.ready.then(t=>t.unregister())}const Y5t="echarts.index",V5t="1.9.5",G5t={"@types/crypto-js":"^4.2.2","@vitejs/plugin-react":"^4.3.4","crypto-js":"^4.2.0",echarts:"^5.6.0","echarts-for-react":"^3.0.2",moment:"^2.30.1","react-i18next":"^15.4.0","react-icons":"^5.4.0",typescript:"^5.7.2"},q5t=".",X5t="http://localhost:8081",J5t={start:"vite dev --config vite.config.mjs --host",build:"vite build --config vite.config.mjs",lint:"eslint -c eslint.config.mjs"},Z5t={extends:"react-app"},K5t=[">0.2%","not dead","not ie <= 11","not op_mini all"],Yre={name:Y5t,version:V5t,private:!0,dependencies:G5t,homepage:q5t,_proxy:X5t,scripts:J5t,eslintConfig:Z5t,browserslist:K5t};window.adapterName="echarts-show";window.sentryDSN="https://cf39325071144219aa91bb3510addcdf@sentry.iobroker.net/95";console.log(`iobroker.${window.adapterName}@${Yre.version}"`);window.location.host!=="localhost:3000"&&Gse({dsn:window.sentryDSN,release:`iobroker.${window.adapterName}@${Yre.version}`,integrations:[SG()],beforeSend(t){let e=!1;return t.exception&&t.exception.values&&t.exception.values[0]&&(t.exception.values[0].type==="NS_ERROR_FAILURE"||t.exception.values[0].value&&(t.exception.values[0].value.includes("Microsoft YaHei")||t.exception.values[0].value==="ResizeObserver loop completed with undelivered notifications."||t.exception.values[0].value==="undefined is not an object (evaluating 't.get')"||t.exception.values[0].value==="Cannot read property 'get' of undefined"||t.exception.values[0].value==="this.painter is null"||t.exception.values[0].value.includes("ioBroker is not connected")||t.exception.values[0].value==="Cannot read property 'getDisplayList' of null"))&&(e=!0),e?null:t}});const QV=document.getElementById("root");QV&&Rne.createRoot(QV).render(q.jsx(H5t,{}));U5t()});export default Q5t(); +`)}`,a.target="_self";let c;this.props.config.l.length===1?c=this.props.config.l[0].name:c="chart";const d=new Date(r.xMin);try{a.download=`${d.getFullYear()}_${(d.getMonth()+1).toString().padStart(2,"0")}_${d.getDate().toString().padStart(2,"0")}_${d.getHours().toString().padStart(2,"0")}_${d.getMinutes().toString().padStart(2,"0")}_${c}.csv`,a.click()}catch(u){console.error(`Cannot access download: ${u}`),window.alert(te.t("Unfortunately your browser does not support this feature"))}this.setState({exporting:!1})}))}renderExportDataButton(){return this.props.config.exportData?q.jsx(Vbt,{color:this.props.config.exportDataColor||"default",style:{...Mu.exportDataButton,opacity:this.state.exporting?.5:1},title:te.t("Export raw data as CSV"),onClick:()=>{this.state.exporting||(this.props.config.l.length===1?this.exportData():this.setState({showExportDataDialog:!0}))}}):null}renderLegendDialog(){var r,n;return this.props.config.legend!=="dialog"?null:q.jsxs(q.Fragment,{children:[q.jsx(_c,{size:"small",color:"default",style:{...Mu.legendButton,left:((n=(r=this.option)==null?void 0:r.grid)==null?void 0:n.left)||0},title:te.t("Select lines"),onClick:()=>this.setState({showLegendDialog:!0}),children:q.jsx(Wbt,{style:Mu.resetButtonIcon})}),this.state.showLegendDialog?q.jsxs(ms,{open:!0,onClose:()=>this.setState({showLegendDialog:!1}),children:[q.jsx(_s,{children:te.t("Select lines to show")}),q.jsxs(gs,{children:[q.jsx(Xt,{control:q.jsx(Un,{checked:!this.state.excluded.length,indeterminate:this.state.excluded.length&&this.state.excluded.length!==this.props.config.l.length,onChange:()=>{this.state.excluded.length?this.setState({excluded:[]}):this.setState({excluded:this.props.config.l.map(a=>a.id)})}}),label:this.state.excluded.length!==this.props.config.l.length?te.t("Select all"):te.t("Unselect all")}),this.props.config.l.map((a,i)=>q.jsxs(tn,{onClick:()=>{const o=[...this.state.excluded],s=o.indexOf(a.id);s===-1?o.push(a.id):o.splice(s,1),this.setState({excluded:o})},children:[q.jsx(Un,{checked:!this.state.excluded.includes(a==null?void 0:a.id)}),q.jsxs("div",{children:[q.jsx("div",{children:(a==null?void 0:a.name)||(a==null?void 0:a.id)}),q.jsx("div",{style:{opacity:.7,fontStyle:"italic",fontSize:"smaller"},children:a!=null&&a.name?a==null?void 0:a.id:null})]})]},i))]}),q.jsx(vs,{children:q.jsx(Vr,{variant:"contained",color:"grey",onClick:()=>this.setState({showLegendDialog:!1}),startIcon:q.jsx("span",{style:{fontSize:14},children:"X"}),children:te.t("Close")})})]}):null]})}renderExportDataDialog(){return this.state.showExportDataDialog?q.jsxs(ms,{open:!0,onClose:()=>this.setState({showExportDataDialog:!1}),children:[q.jsx(_s,{children:te.t("Select lines for export")}),q.jsxs(gs,{children:[q.jsxs(Af,{fullWidth:!0,variant:"standard",children:[q.jsx(ty,{children:te.t("Time format")}),q.jsxs(ns,{value:this.state.timeFormat,onChange:r=>{window.localStorage.setItem("Chart.timeFormat",r.target.value),this.setState({timeFormat:r.target.value})},children:[q.jsx(tn,{value:"iso",children:"ISO"}),q.jsx(tn,{value:"locale",children:te.t("Browser format")}),q.jsx(tn,{value:"ts",children:te.t("Time stamp in milliseconds")})]})]}),q.jsx(Xt,{control:q.jsx(Un,{checked:!this.state.excluded.length,indeterminate:this.state.excluded.length&&this.state.excluded.length!==this.props.config.l.length,onChange:()=>{this.state.excluded.length?this.setState({excluded:[]}):this.setState({excluded:this.props.config.l.map(r=>r.id)})}}),label:this.state.excluded.length!==this.props.config.l.length?te.t("Select all"):te.t("Unselect all")}),this.props.config.l.map((r,n)=>q.jsxs(tn,{onClick:()=>{const a=[...this.state.excluded],i=a.indexOf(r.id);i===-1?a.push(r.id):a.splice(i,1),this.setState({excluded:a})},children:[q.jsx(Un,{checked:!this.state.excluded.includes(r==null?void 0:r.id)}),q.jsxs("div",{children:[q.jsx("div",{children:(r==null?void 0:r.name)||(r==null?void 0:r.id)}),q.jsx("div",{style:{opacity:.7,fontStyle:"italic",fontSize:"smaller"},children:r!=null&&r.name?r==null?void 0:r.id:null})]})]},n))]}),q.jsxs(vs,{children:[q.jsx(Vr,{variant:"contained",color:"primary",disabled:this.state.excluded.length===this.props.config.l.length,startIcon:q.jsx(Hbt,{}),onClick:()=>{this.setState({showExportDataDialog:!1}),this.exportData()},children:te.t("Export")}),q.jsx(Vr,{variant:"contained",color:"grey",onClick:()=>this.setState({showExportDataDialog:!1}),startIcon:q.jsx("span",{style:{fontSize:14},children:"X"}),children:te.t("Cancel")})]})]}):null}renderDevCopyButton(){return window.location.port==="3000"?q.jsx(Ubt,{color:"default",style:Mu.copyButton,title:"Copy option to clipboard",onClick:()=>tr.copyToClipboard(JSON.stringify(this.option,null,2))}):null}render(){this.divRef.current||setTimeout(()=>this.forceUpdate(),10);const r=this.props.config.noBorder!=="noborder"&&parseFloat(this.props.config.border_width)||0,n=parseFloat(this.props.config.border_padding)||0;return q.jsxs("div",{ref:this.divRef,style:{...Mu.chart,borderWidth:r,width:r||n?`calc(100% - ${(r+n)*2+1}px)`:"100%",height:r||n?`calc(100% - ${(r+n)*2}px)`:"100%",background:this.props.config.noBackground?void 0:this.props.config.window_bg||void 0,borderColor:this.props.config.noBorder!=="noborder"&&this.props.config.border_color||void 0,borderStyle:this.props.config.noBorder!=="noborder"&&r?this.props.config.border_style||"solid":"hidden",padding:n||0},children:[this.renderSaveImageButton(),this.renderExportDataDialog(),this.renderExportDataButton(),this.renderResetButton(),this.renderDevCopyButton(),this.state.chartHeight!==null?this.renderChart():null,this.option?this.renderLegendDialog():null]})}}const W5t=S0()(j5t),KV={root:{width:"100%",height:"100%",position:"relative"},progress:{position:"absolute",top:0,left:0,right:0,display:"block"}};class iC extends z.Component{constructor(r){super(r);de(this,"socket");de(this,"chartData");de(this,"inEdit");de(this,"divRef");de(this,"progressRef");de(this,"progressShown");de(this,"adminCorrectTimeout",null);de(this,"onReceiveMessage",r=>{if(r&&r.data!=="chartReady")try{const n=JSON.parse(r.data);this.chartData?this.chartData.setConfig(n):this.createChartData(n)}catch{console.log(`Cannot parse ${r.data}`)}});const n=iC.createTheme(),a=tr.parseQuery(window.location.search),i=tr.parseQuery((window.location.hash||"").replace(/^#/,""));this.state={connected:!1,seriesData:null,categories:null,actualValues:null,noLoader:!!a.noLoader||!!i.noLoader||!1,theme:n,themeType:iC.getThemeType(n),noBackground:!!a.noBG||!!i.noBG||!1,compact:!!a.compact||!!i.compact||!1,dataLoaded:!1},this.inEdit=a.edit==="1"||a.edit===1||a.edit===!0||a.edit==="true"||i.edit==="1"||i.edit===1||i.edit===!0||i.edit==="true",this.divRef=E.createRef(),this.progressRef=E.createRef(),this.progressShown=!0;const o={en:A$e,de:PLe,ru:IFe,pt:Rje,nl:LUe,fr:NXe,it:Bet,es:jit,pl:Wut,uk:Hmt,"zh-cn":U0t},s={en:q0t,de:K0t,ru:rbt,pt:obt,nl:ubt,fr:pbt,it:_bt,es:Sbt,pl:kbt,uk:Obt,"zh-cn":Ibt};Object.keys(o).forEach(l=>o[l]=Object.assign(o[l],s[l])),te.setTranslations(o),window.socketUrl&&window.socketUrl.startsWith(":")&&(window.socketUrl=`${window.location.protocol}//${window.location.hostname}${window.socketUrl}`),window.location.port==="8082"&&window.location.pathname.includes("/adapter/echarts/chart/")&&(this.adminCorrectTimeout=setTimeout(()=>{this.adminCorrectTimeout=null,window.location.href=window.location.href.replace("/adapter/echarts/chart/","/echarts/")},2e3)),this.socket=new Pu({name:window.adapterName,onProgress:l=>{l===al.CONNECTING?this.state.seriesData?(this.divRef.current&&(this.divRef.current.style.opacity="0.5"),this.progressRef.current&&(this.progressRef.current.style.display="block")):this.setState({connected:!1}):l===al.READY?(this.setState({connected:!0}),this.restoreAfterReconnection()):(this.setState({connected:!0}),this.restoreAfterReconnection())},onReady:()=>{if(this.adminCorrectTimeout&&(clearTimeout(this.adminCorrectTimeout),this.adminCorrectTimeout=null),te.setLanguage(this.socket.systemLang),this.inEdit){if(window.addEventListener("message",this.onReceiveMessage),window.self!==window.parent)try{window.parent.postMessage("chartReady","*")}catch(l){console.warn("Cannot send ready event to parent window"),console.error(l)}}else this.createChartData()},onError:l=>{console.error(l),this.showError(l)}})}restoreAfterReconnection(){this.divRef.current&&(this.divRef.current.style.opacity="1"),this.progressRef.current&&!this.progressShown&&(this.progressRef.current.style.display="none"),this.state.seriesData&&!this.state.seriesData.find(r=>r.length)&&this.chartData.setNewRange()}createChartData(r){this.chartData=new ti(this.socket,r,{compact:this.state.compact}),this.chartData.onError(n=>{n.toString().includes(cc.NOT_CONNECTED)?(this.divRef.current&&(this.divRef.current.style.opacity="0.5"),this.progressRef.current&&(this.progressRef.current.style.display="block")):this.showError(te.t(n.toString()))}),this.chartData.onReading(n=>this.showProgress(n)),this.chartData.onUpdate((n,a,i)=>{const o={connected:!0,dataLoaded:!0};n&&(o.seriesData=n,o.categories=i),a&&(o.actualValues=a),this.setState(o,()=>this.showProgress(!1))})}showProgress(r){this.progressShown=r,this.progressRef.current&&(this.progressRef.current.style.display=r?"block":"none")}componentWillUnmount(){this.inEdit&&window.removeEventListener("message",this.onReceiveMessage,!1),this.chartData&&this.chartData.destroy()}static createTheme(r){return r_e(tr.getThemeName(r))}static getThemeType(r){return r.palette.mode}showError(r){this.setState({errorText:r})}renderError(){return this.state.errorText?q.jsx(eX,{text:this.state.errorText,onClose:()=>this.setState({errorText:""})}):null}componentDidUpdate(){!this.progressShown&&this.progressRef.current&&this.progressRef.current.style.display!=="none"&&(this.progressRef.current.style.display="none")}render(){var a;if(!this.state.connected||!this.state.seriesData)return this.state.noLoader?null:q.jsx(sz,{injectFirst:!0,children:q.jsx(Mz,{theme:this.state.theme,children:q.jsx(R_e,{themeType:this.state.themeType})})});const r=this.chartData.getConfig(),n=Ode(JSON.stringify((((a=r==null?void 0:r.l)==null?void 0:a.map(i=>i.id))||[]).sort())).toString();return this.state.seriesData&&r.debug&&console.log(`seriesData: ${JSON.stringify(this.state.seriesData)}`),q.jsx(sz,{injectFirst:!0,children:q.jsx(Mz,{theme:this.state.theme,children:q.jsxs("div",{ref:this.divRef,style:{...KV.root,width:r.width,height:r.height,background:this.state.noBackground||r.noBackground?void 0:this.state.theme.palette.background.default,color:this.state.theme.palette.text.primary},children:[q.jsx(bL,{ref:this.progressRef,style:KV.progress}),q.jsx(W5t,{socket:this.socket,t:te.t,noAnimation:this.state.noLoader,data:this.state.seriesData,actualValues:this.state.actualValues,categories:this.state.categories||[],config:r,compact:this.state.compact,lang:te.getLanguage(),themeType:this.state.themeType,onRangeChange:i=>this.chartData.setNewRange(i),exportData:(i,o,s)=>this.chartData.exportData(i,o,s)},n),this.renderError()]})})})}}const H5t=S0()(iC);window.location.hostname==="localhost"||window.location.hostname==="[::1]"||window.location.hostname.match(/^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/);function U5t(){"serviceWorker"in navigator&&navigator.serviceWorker.ready.then(t=>t.unregister())}const Y5t="echarts.index",V5t="1.9.5",G5t={"@types/crypto-js":"^4.2.2","@vitejs/plugin-react":"^4.3.4","crypto-js":"^4.2.0",echarts:"^5.6.0","echarts-for-react":"^3.0.2",moment:"^2.30.1","react-i18next":"^15.4.0","react-icons":"^5.4.0",typescript:"^5.7.2"},q5t=".",X5t="http://localhost:8081",J5t={start:"vite dev --config vite.config.mjs --host",build:"vite build --config vite.config.mjs",lint:"eslint -c eslint.config.mjs"},Z5t={extends:"react-app"},K5t=[">0.2%","not dead","not ie <= 11","not op_mini all"],Yre={name:Y5t,version:V5t,private:!0,dependencies:G5t,homepage:q5t,_proxy:X5t,scripts:J5t,eslintConfig:Z5t,browserslist:K5t};window.adapterName="echarts-show";window.sentryDSN="https://cf39325071144219aa91bb3510addcdf@sentry.iobroker.net/95";console.log(`iobroker.${window.adapterName}@${Yre.version}"`);window.location.host!=="localhost:3000"&&Gse({dsn:window.sentryDSN,release:`iobroker.${window.adapterName}@${Yre.version}`,integrations:[SG()],beforeSend(t){let e=!1;return t.exception&&t.exception.values&&t.exception.values[0]&&(t.exception.values[0].type==="NS_ERROR_FAILURE"||t.exception.values[0].value&&(t.exception.values[0].value.includes("Microsoft YaHei")||t.exception.values[0].value==="ResizeObserver loop completed with undelivered notifications."||t.exception.values[0].value==="undefined is not an object (evaluating 't.get')"||t.exception.values[0].value==="Cannot read property 'get' of undefined"||t.exception.values[0].value==="this.painter is null"||t.exception.values[0].value.includes("ioBroker is not connected")||t.exception.values[0].value==="Cannot read property 'getDisplayList' of null"))&&(e=!0),e?null:t}});const QV=document.getElementById("root");QV&&Rne.createRoot(QV).render(q.jsx(H5t,{}));U5t()});export default Q5t(); diff --git a/admin/chart/index.html b/admin/chart/index.html index cf2c10f9..cf87d827 100644 --- a/admin/chart/index.html +++ b/admin/chart/index.html @@ -34,18 +34,13 @@ }; script.src = parseInt(window.location.port) >= 3000 && parseInt(window.location.port) <= 3020 - ? window.location.protocol + - '//' + - (query.host || window.location.hostname) + - ':' + - (query.port || 8081) + - '/lib/js/socket.io.js' + ? `${window.location.protocol}//${query.host || window.location.hostname}:${query.port || 8081}/lib/js/socket.io.js` : '../../lib/js/socket.io.js'; document.head.appendChild(script); Echarts [ioBroker] - + diff --git a/admin/tab.html b/admin/tab.html index b09b141c..04738ede 100644 --- a/admin/tab.html +++ b/admin/tab.html @@ -45,7 +45,7 @@ document.head.appendChild(script); Echarts [ioBroker] - + diff --git a/build-backend/lib/ChartModel.js b/build-backend/lib/ChartModel.js index a9d187c9..5579c178 100644 --- a/build-backend/lib/ChartModel.js +++ b/build-backend/lib/ChartModel.js @@ -106,7 +106,8 @@ function normalizeConfig(config) { delete newConfig.m; } newConfig.marks = newConfig.marks || []; - if (!newConfig.l.length) { + if (!newConfig.l?.length) { + config.l = config.l || []; config.l.push({ id: '', unit: '' }); } // Set default values @@ -603,7 +604,9 @@ class ChartModel { } } } - else if (typeof this.config.range === 'string' && this.config.range.includes('y') && this.config.l.length > 1) { + else if (typeof this.config.range === 'string' && + this.config.range.includes('y') && + this.config.l.length > 1) { const yearRange = parseInt(this.config.range, 10) || 1; for (let a = 0; a < this.config.l.length; a++) { if (this.config.l[a].offset) { diff --git a/build-backend/lib/ChartModel.js.map b/build-backend/lib/ChartModel.js.map index dfae61af..8a835769 100644 --- a/build-backend/lib/ChartModel.js.map +++ b/build-backend/lib/ChartModel.js.map @@ -1 +1 @@ -{"version":3,"file":"ChartModel.js","sourceRoot":"","sources":["../../src/lib/ChartModel.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Connection } from '../types';\nimport type {\n ChartAggregateType,\n ChartMarkConfig,\n ChartType,\n ChartConfig,\n ChartRelativeEnd,\n ChartLineConfig,\n ChartRangeOptions,\n} from '../types';\n\n/*\nfunction deParam(params, coerce) {\n const obj = {};\n const coerceTypes = {'true': true, 'false': false, 'null': null};\n\n // Iterate over all name=value pairs.\n params.replace(/\\+/g, ' ').split('&').forEach(v => {\n const param = v.split('=');\n let key = decodeURIComponent(param[0]);\n let val;\n let i = 0;\n\n // If key is more complex than 'foo', like 'a[]' or 'a[b][c]', split it\n // into its component parts.\n let keys = key.split('][');\n let keysLast = keys.length - 1;\n\n // If the first keys part contains [ and the last ends with ], then []\n // are correctly balanced.\n if (/\\[/.test(keys[0]) && /]$/.test(keys[keysLast])) {\n // Remove the trailing ] from the last keys part.\n keys[keysLast] = keys[keysLast].replace(/]$/, '');\n\n // Split first keys part into two parts on the [ and add them back onto\n // the beginning of the keys array.\n keys = keys.shift().split('[').concat(keys);\n\n keysLast = keys.length - 1;\n } else {\n // Basic 'foo' style key.\n keysLast = 0;\n }\n\n // Are we dealing with a name=value pair, or just a name?\n if (param.length === 2) {\n val = decodeURIComponent(param[1]);\n\n // Coerce values.\n if (coerce) {\n val = val && !isNaN(val) && ((+val + '') === val) ? +val // number\n : val === 'undefined' ? undefined // undefined\n : coerceTypes[val] !== undefined ? coerceTypes[val] // true, false, null\n : val; // string\n }\n\n if (keysLast) {\n let cur = obj;\n // Complex key, build deep object structure based on a few rules:\n // * The 'cur' pointer starts at the object top-level.\n // * [] = array push (n is set to array length), [n] = array if n is\n // numeric, otherwise object.\n // * If at the last keys part, set the value.\n // * For each keys part, if the current level is undefined create an\n // object or array based on the type of the next keys part.\n // * Move the 'cur' pointer to the next level.\n // * Rinse & repeat.\n for (; i <= keysLast; i++) {\n key = keys[i] === '' ? cur.length : keys[i];\n cur = cur[key] = i < keysLast\n ? cur[key] || (keys[i + 1] && isNaN(keys[i + 1]) ? {} : [])\n : val;\n }\n\n } else {\n // Simple key, even simpler rules, since only scalars and shallow\n // arrays are allowed.\n\n if (Object.prototype.toString.call(obj[key]) === '[object Array]') {\n // val is already an array, so push on the next value.\n obj[key].push(val);\n } else if ({}.hasOwnProperty.call(obj, key)) {\n // val isn't an array, but since a second value has been specified,\n // convert val into an array.\n obj[key] = [obj[key], val];\n } else {\n // val is a scalar.\n obj[key] = val;\n }\n }\n } else if (key) {\n // No value was defined, so set something meaningful.\n obj[key] = coerce\n ? undefined\n : '';\n }\n });\n\n return obj;\n}\n*/\n\nexport type EchartsOneValue = { value: [number, number]; exact?: false };\ntype EchartsAnyValue = { value: [number, number | string | boolean]; exact?: false };\n\nexport type ChartLineConfigOld = {\n // @deprecated use chartType\n art?: ChartAggregateType;\n\n id: string;\n unit: string;\n\n offset?: number;\n name?: string;\n aggregate?: ChartAggregateType;\n color?: string;\n thickness?: number;\n shadowsize?: number;\n min?: number | '';\n max?: number | '';\n\n yOffset?: number;\n validTime?: number;\n chartType?: ChartType;\n\n instance?: string;\n};\n\nexport type ChartMarkConfigOld = {\n l: number; // lineId\n v: string | number; // upperValueOrId\n vl: string | number; // lowerValueOrId\n c: string; // color\n f: string | number; // fill\n t: number; // ol - line width\n s: number; // os - shadow\n d: string; // text - descriptions\n p: 'r' | 'l'; // textPosition\n py: number; // textOffset\n fc: string; // textColor\n fs: number; // textSize\n};\n\nexport type ChartConfigOld = {\n // @deprecated use \"l\"\n chartType?: 'auto' | 'bar' | 'polar' | 'line';\n // @deprecated use \"l\"\n instance?: string;\n // @deprecated use \"l\"\n lines?: ChartLineConfigOld[];\n // @deprecated use \"l\"\n _ids?: string;\n // @deprecated use \"l\"\n _colors?: string;\n // @deprecated use \"l\"\n _names?: string;\n // @deprecated use \"l\"\n strokeWidth?: number;\n // @deprecated use \"l\"\n min?: number;\n // @deprecated use \"l\"\n max?: number;\n // @deprecated use \"l\"\n _units?: string;\n // @deprecated use \"marks\"\n m: ChartMarkConfigOld[];\n\n aggregateType: 'step' | 'count';\n aggregateSpan: number;\n relativeEnd: 'now' | 'month' | 'year' | 'minute' | 'hour' | 'weekUsa' | 'weekEurope' | 'week2Usa' | 'week2Europe';\n\n l: ChartLineConfigOld[];\n marks: ChartMarkConfig[];\n\n width: string | number;\n height: string | number;\n timeFormat?: string;\n useComma: string | boolean;\n zoom: string | boolean;\n export: string | boolean;\n grid_hideX: string | boolean;\n grid_hideY: string | boolean;\n hoverDetail: string | boolean;\n noLoader: string | boolean;\n noedit: string | boolean;\n animation: string | number;\n afterComma?: string | number;\n timeType: 'relative' | 'static';\n xLabelShift: number | string;\n xLabelShiftMonth?: boolean;\n xLabelShiftYear?: boolean;\n};\n\nexport type LineSeries = EchartsOneValue[];\nexport type BarSeries = number[];\nexport type BarAndLineSeries = BarSeries | LineSeries;\n\nexport interface SeriesData extends Omit {\n // Name of state, like \"system.adapter.admin.0.memHeap\"\n id?: string;\n\n // All possible names for value (will be converted to val)\n y?: number;\n value?: number;\n data?: number;\n v?: number;\n\n // All possible names for timestamp (will be converted to ts)\n t?: number;\n time?: number;\n date?: number;\n\n /** Interpolated */\n i?: boolean;\n\n ack: boolean;\n\n /** Name of the adapter instance which set the value, e.g. \"system.adapter.web.0\" */\n from?: string;\n}\n\n/**\n * Parse a query string into its parts.\n * Copied from @iobroker/adapter-react-v5/Components/Utils\n */\nfunction parseQuery(query: string): Record {\n query = (query || '').toString().replace(/^\\?/, '');\n const result: Record = {};\n query.split('&').forEach(part => {\n part = part.trim();\n if (part) {\n const parts = part.split('=');\n const attr = decodeURIComponent(parts[0]).trim();\n if (parts.length > 1) {\n result[attr] = decodeURIComponent(parts[1]);\n if (result[attr] === 'true') {\n result[attr] = true;\n } else if (result[attr] === 'false') {\n result[attr] = false;\n } else {\n const f = parseFloat(result[attr] as unknown as string);\n if (f.toString() === result[attr]) {\n result[attr] = f;\n }\n }\n } else {\n result[attr] = true;\n }\n }\n });\n return result;\n}\n\n// Do not forget to change normalizeConfig in src/utils/flotConverter.js too\nfunction normalizeConfig(config: ChartConfigOld): ChartConfig {\n const newConfig: ChartConfig = JSON.parse(JSON.stringify(config));\n\n if (config.lines) {\n newConfig.l = config.lines as ChartLineConfig[];\n // @ts-expect-error delete old structure\n delete newConfig.lines;\n }\n\n if (config._ids) {\n const ids = config._ids ? config._ids.split(';') : [];\n const colors = config._colors ? config._colors.split(';') : [];\n const names = config._names ? config._names.split(';') : [];\n const units = config._units ? config._units.split(';') : [];\n newConfig.l = [];\n for (let i = 0; i < ids.length; i++) {\n newConfig.l.push({\n id: ids[i],\n offset: 0,\n name: names[i] || undefined,\n aggregate: 'none',\n color: colors[i] || 'blue',\n thickness: config.strokeWidth || 1,\n shadowsize: config.strokeWidth || 1,\n min: config.min || undefined,\n max: config.max || undefined,\n unit: units[i] || undefined,\n });\n }\n newConfig.aggregateType = 'step';\n newConfig.aggregateSpan = 300;\n newConfig.relativeEnd = 'now';\n }\n\n // convert art to aggregate (from flot)\n if (config.l) {\n for (let j = 0; j < config.l.length; j++) {\n if (config.l[j].art) {\n config.l[j].aggregate = config.l[j].art;\n delete config.l[j].art;\n }\n if (config.instance && !config.l[j].instance) {\n config.l[j].instance = config.instance;\n }\n config.l[j].yOffset = parseFloat(config.l[j].yOffset as unknown as string) || 0;\n config.l[j].offset = parseFloat(config.l[j].offset as unknown as string) || 0;\n config.l[j].validTime = parseFloat(config.l[j].validTime as unknown as string) || 0;\n config.l[j].chartType = config.l[j].chartType || config.chartType || 'auto';\n }\n }\n\n config.l = config.l || [];\n\n // convert marks\n if (config.m) {\n newConfig.marks = [];\n for (let j = 0; j < config.m.length; j++) {\n newConfig.marks[j] = {\n lineId: config.m[j].l,\n upperValueOrId: config.m[j].v,\n lowerValueOrId: config.m[j].vl,\n color: config.m[j].c,\n fill: parseFloat(config.m[j].f as string),\n ol: config.m[j].t,\n os: config.m[j].s,\n text: config.m[j].d,\n textPosition: config.m[j].p,\n textOffset: config.m[j].py,\n textColor: config.m[j].fc,\n textSize: config.m[j].fs,\n };\n }\n // @ts-expect-error delete old structure\n delete newConfig.m;\n }\n\n newConfig.marks = newConfig.marks || [];\n\n if (!newConfig.l.length) {\n config.l.push({ id: '', unit: '' });\n }\n\n // Set default values\n newConfig.width = config.width || '100%';\n newConfig.height = config.height || '100%';\n // if width or height does not have any units, add px to it\n if (parseFloat(newConfig.width as string).toString() === newConfig.width.toString().trim()) {\n newConfig.width += 'px';\n }\n if (parseFloat(newConfig.height as string).toString() === newConfig.height.toString().trim()) {\n newConfig.height += 'px';\n }\n\n newConfig.timeFormat = config.timeFormat || '';\n newConfig.useComma = config.useComma === 'true' || config.useComma === true;\n newConfig.zoom = config.zoom === 'true' || config.zoom === true;\n newConfig.export = config.export === 'true' || config.export === true;\n newConfig.grid_hideX = config.grid_hideX === 'true' || config.grid_hideX === true;\n newConfig.grid_hideY = config.grid_hideY === 'true' || config.grid_hideY === true;\n newConfig.hoverDetail = config.hoverDetail === 'true' || config.hoverDetail === true;\n newConfig.noLoader = config.noLoader === 'true' || config.noLoader === true;\n newConfig.noedit = config.noedit === 'true' || config.noedit === true;\n newConfig.animation = parseInt(config.animation as string, 10) || 0;\n newConfig.afterComma = config.afterComma === undefined ? 2 : parseInt(config.afterComma as string, 10);\n newConfig.timeType = config.timeType || 'relative';\n if (config.xLabelShift) {\n if (typeof config.xLabelShift === 'string' && config.xLabelShift.endsWith('m')) {\n newConfig.xLabelShift = parseInt(config.xLabelShift.substring(0, config.xLabelShift.length - 1), 10) || 0;\n newConfig.xLabelShiftMonth = true;\n } else if (typeof config.xLabelShift === 'string' && config.xLabelShift.endsWith('y')) {\n newConfig.xLabelShift = parseInt(config.xLabelShift.substring(0, config.xLabelShift.length - 1), 10) || 0;\n newConfig.xLabelShiftYear = true;\n } else {\n newConfig.xLabelShift = parseInt(config.xLabelShift as string, 10) || 0;\n }\n }\n\n return newConfig;\n}\n\nconst NOT_CONNECTED = 'notConnectedError';\n\nclass ChartModel {\n private readonly socket: Connection;\n private readonly updateTimeout: number;\n private readonly serverSide: boolean;\n // For line charts\n private seriesData: LineSeries[] = [];\n // For Bar or polar charts\n private barData: BarSeries[] = [];\n // Actual values for every line/bar. Only if config.legActual === true\n private readonly actualValues: (number | null | boolean | string)[] = [];\n private ticks: EchartsAnyValue[] = null;\n private reading: boolean = false;\n private subscribes: string[] = [];\n private sessionId: number = 1;\n // update interval by time\n private updateInterval: ReturnType | null = null;\n private presetUpdateTimeout: ReturnType | null = null;\n private readOnZoomTimeout: ReturnType | null = null;\n private subscribed: boolean = false;\n // Is preset subscribed yet or not\n private presetSubscribed: string = '';\n private defaultHistory: string = '';\n private onUpdateFunc:\n | ((\n seriesData: BarAndLineSeries[],\n actualValues?: (number | null | boolean | string)[],\n barCategories?: number[],\n ) => void)\n | null = null;\n private onReadingFunc: ((isReading: boolean) => void) | null = null;\n private onErrorFunc: ((error: Error) => void) | null = null;\n private objectPromises: Record> = {};\n private debug = false;\n private zoomData: { stopLive?: boolean; start?: number; end?: number } | null = null;\n private lastHash: string;\n private onHashInstalled: boolean = false;\n private systemConfig: ioBroker.SystemConfigCommon | null = null;\n private preset?: string;\n private config?: ChartConfig;\n private barCategories?: number[];\n private now: number = Date.now();\n private hash?: {\n range: ChartRangeOptions;\n relativeEnd: ChartRelativeEnd;\n };\n\n private convertFunctions: Record number> = {};\n\n constructor(\n socket: Connection,\n /** Config or preset ID */\n config: ChartConfigOld | string,\n options?: { updateTimeout?: number; serverSide?: boolean; compact?: boolean },\n ) {\n options = { updateTimeout: 300, ...(options || {}) };\n this.socket = socket;\n\n this.updateTimeout = options.updateTimeout || 300; // how often the new data will be requested by zoom and pan\n this.serverSide = options.serverSide || false; // if rendering is serverside\n\n if (!this.serverSide) {\n this.lastHash = window.location.hash;\n\n if (!config) {\n this.onHashInstalled = true;\n window.addEventListener('hashchange', this.onHashChange, false);\n }\n } // else node.js\n\n void this.socket\n .getSystemConfig()\n .catch((e: unknown): null => {\n if ((e as Error).toString().includes(NOT_CONNECTED) && this.onErrorFunc) {\n this.onErrorFunc(e as Error);\n }\n console.error(`Cannot read systemConfig: ${(e as Error).toString()}`);\n return null;\n })\n .then((systemConfig: ioBroker.SystemConfigObject): Promise => {\n this.systemConfig = systemConfig?.common ? systemConfig.common : ({} as ioBroker.SystemConfigCommon);\n this.defaultHistory = this.systemConfig.defaultHistory;\n return this.analyseAndLoadConfig(config);\n });\n }\n\n async analyseAndLoadConfig(config?: string | ChartConfigOld): Promise {\n if (config) {\n if (typeof config === 'string') {\n this.preset = config;\n } else {\n this.config = normalizeConfig(config);\n }\n } else if (!this.serverSide) {\n const query: Record = parseQuery(window.location.search); // Utils.parseQuery\n\n this.debug = query.debug === true || query.debug === 'true' || query.debug === 1 || query.debug === '1';\n\n if (query.preset && typeof query.preset === 'string') {\n this.preset = query.preset;\n } else {\n const hQuery: Record = parseQuery(\n (window.location.hash || '').toString().replace(/^#/, ''),\n ); // Utils.parseQuery\n let config: ChartConfigOld = {} as ChartConfigOld;\n\n if (hQuery.data && typeof hQuery.data === 'string') {\n try {\n config = JSON.parse(hQuery.data);\n } catch {\n // ignore\n }\n }\n if (query.data && typeof query.data === 'string') {\n try {\n Object.assign(config, JSON.parse(query.data), true);\n } catch {\n // ignore\n }\n }\n if (hQuery.preset) {\n this.preset = hQuery.preset as string;\n if (hQuery.range || hQuery.relativeEnd) {\n this.hash = {\n range: hQuery.range as ChartRangeOptions,\n relativeEnd: hQuery.relativeEnd as ChartRelativeEnd,\n };\n }\n } else {\n // search ID and range\n if (hQuery.noLoader !== undefined) {\n config.noLoader =\n hQuery.noLoader === true ||\n hQuery.noLoader === 'true' ||\n hQuery.noLoader === 1 ||\n hQuery.noLoader === '1';\n }\n if (query.noLoader !== undefined) {\n config.noLoader =\n query.noLoader === true ||\n query.noLoader === 'true' ||\n query.noLoader === 1 ||\n query.noLoader === '1';\n }\n this.config = normalizeConfig(config);\n // console.log(this.config);\n }\n }\n }\n\n this.seriesData = [];\n this.barData = [];\n this.barCategories = null;\n\n if (this.updateInterval) {\n clearInterval(this.updateInterval);\n this.updateInterval = null;\n }\n\n if (this.preset) {\n if (\n (!this.preset.startsWith('echarts.') && !this.preset.startsWith('flot.')) ||\n !this.preset.includes('.')\n ) {\n this.preset = `echarts.0.${this.preset}`;\n }\n\n try {\n const obj: ioBroker.ChartObject | null | undefined = (await this.socket.getObject(this.preset)) as\n | ioBroker.ChartObject\n | null\n | undefined;\n if (!obj?.native?.data || obj.type !== 'chart') {\n console.error(`[ChartModel] Invalid object ${this.preset}: ${JSON.stringify(obj)}`);\n return;\n }\n this.config = normalizeConfig(obj.native.data);\n this.config.useComma =\n this.config.useComma === undefined ? this.systemConfig.isFloatComma : this.config.useComma;\n this.config.lang = this.systemConfig.language;\n this.config.live = parseInt(this.config.live as unknown as string, 10) || 0;\n this.config.debug = this.debug;\n this.config.presetId = this.preset;\n\n if (this.hash?.range) {\n if (\n typeof this.hash.range === 'string' &&\n !this.hash.range.includes('y') &&\n !this.hash.range.includes('m')\n ) {\n this.config.range = parseInt(this.hash.range, 10);\n } else {\n this.config.range = this.hash.range;\n }\n }\n if (this.hash?.relativeEnd) {\n this.config.relativeEnd = this.hash.relativeEnd;\n }\n\n await this.readData();\n\n // subscribe on preset changes\n if (!this.serverSide && this.presetSubscribed !== this.preset) {\n this.presetSubscribed &&\n (await this.socket.unsubscribeObject(this.presetSubscribed, this.onPresetUpdate));\n this.presetSubscribed = this.preset;\n await this.socket.subscribeObject(this.preset, this.onPresetUpdate);\n }\n if (!this.serverSide && this.config.live && !this.zoomData?.stopLive) {\n this.updateInterval = setInterval(() => this.readData(), this.config.live * 1000);\n }\n } catch (e) {\n e === NOT_CONNECTED && this.onErrorFunc && this.onErrorFunc(e);\n console.error(`Cannot read \"${this.preset}\": ${e}`);\n }\n } else {\n this.config.useComma =\n this.config.useComma === undefined\n ? this.systemConfig.isFloatComma === true\n : this.config.useComma === true;\n this.config.lang = this.systemConfig.language;\n this.config.live = parseInt(this.config.live as unknown as string, 10) || 0;\n this.config.debug = this.debug;\n await this.readData();\n if (!this.serverSide && this.config.live && !this.zoomData?.stopLive) {\n this.updateInterval = setInterval(() => this.readData(), this.config.live * 1000);\n }\n }\n }\n\n onHashChange = (): void => {\n if (this.lastHash !== window.location.hash) {\n this.lastHash = window.location.hash;\n void this.analyseAndLoadConfig();\n }\n };\n\n onPresetUpdate = (id: string, obj: ioBroker.Object | null | undefined): void => {\n if (id !== this.preset) {\n return;\n }\n if (this.presetUpdateTimeout) {\n clearTimeout(this.presetUpdateTimeout);\n }\n this.presetUpdateTimeout = setTimeout(() => {\n this.presetUpdateTimeout = null;\n let newConfig;\n if (obj) {\n newConfig = normalizeConfig(obj.native.data);\n } else {\n newConfig = normalizeConfig({} as ChartConfigOld);\n }\n if (JSON.stringify(newConfig) !== JSON.stringify(this.config)) {\n this.config = newConfig;\n this.updateInterval && clearInterval(this.updateInterval);\n this.updateInterval = null;\n\n if (this.config.live && (!this.zoomData || !this.zoomData.stopLive)) {\n this.updateInterval = setInterval(() => this.readData(), this.config.live * 1000);\n }\n\n void this.readData();\n }\n }, 100);\n };\n\n setNewRange(options?: { stopLive?: boolean; start?: number; end?: number }): void {\n if (this.debug) {\n console.log(`[ChartModel] [${new Date().toISOString()}] setNewRange: ${JSON.stringify(options)}`);\n }\n\n if (!options) {\n if (this.zoomData) {\n this.zoomData = null;\n this.readOnZoomTimeout && clearTimeout(this.readOnZoomTimeout);\n this.readOnZoomTimeout = setTimeout(() => {\n this.readOnZoomTimeout = null;\n if (this.config.live && (!this.zoomData || !this.zoomData.stopLive)) {\n console.log('Restore update');\n this.updateInterval && clearInterval(this.updateInterval);\n this.updateInterval = setInterval(() => this.readData(), this.config.live * 1000);\n }\n void this.readData();\n }, this.updateTimeout);\n }\n } else if (options.stopLive) {\n this.zoomData = this.zoomData || {};\n this.zoomData.stopLive = true;\n if (this.updateInterval) {\n console.log('Clear interval');\n clearInterval(this.updateInterval);\n this.updateInterval = null;\n }\n } else {\n // options = {start, end}\n const stopLive = this.zoomData?.stopLive;\n if (stopLive) {\n delete this.zoomData.stopLive;\n }\n if (!this.zoomData || JSON.stringify(this.zoomData) !== JSON.stringify(options)) {\n this.zoomData = options;\n if (stopLive) {\n this.zoomData.stopLive = true;\n }\n this.readOnZoomTimeout && clearTimeout(this.readOnZoomTimeout);\n this.readOnZoomTimeout = setTimeout(() => {\n this.readOnZoomTimeout = null;\n void this.readData();\n }, this.updateTimeout);\n } else if (stopLive) {\n this.zoomData.stopLive = true;\n }\n }\n }\n\n destroy(): void {\n if (this.subscribed) {\n if (!this.serverSide) {\n this.subscribes.forEach(id => this.socket.unsubscribeState(id, this.onStateChange));\n }\n this.subscribes = [];\n this.subscribed = false;\n }\n if (this.readOnZoomTimeout) {\n clearTimeout(this.readOnZoomTimeout);\n this.readOnZoomTimeout = null;\n }\n if (this.presetUpdateTimeout) {\n clearTimeout(this.presetUpdateTimeout);\n this.presetUpdateTimeout = null;\n }\n if (this.presetSubscribed) {\n if (!this.serverSide) {\n void this.socket.unsubscribeObject(this.presetSubscribed, this.onPresetUpdate);\n }\n this.presetSubscribed = null;\n }\n if (this.updateInterval) {\n clearInterval(this.updateInterval);\n this.updateInterval = null;\n }\n if (!this.serverSide) {\n if (this.onHashInstalled) {\n window.removeEventListener('hashchange', this.onHashChange, false);\n this.onHashInstalled = false;\n }\n }\n }\n\n onUpdate(\n cb:\n | ((\n seriesData: BarAndLineSeries[],\n actualValues?: (number | null | boolean | string)[],\n barCategories?: number[],\n ) => void)\n | null,\n ): void {\n this.onUpdateFunc = cb;\n }\n\n onReading(cb: ((isReading: boolean) => void) | null): void {\n this.onReadingFunc = cb;\n }\n\n onError(cb: ((err: Error) => void) | null): void {\n this.onErrorFunc = cb;\n }\n\n getConfig(): ChartConfig {\n return this.config;\n }\n\n getSystemConfig(): ioBroker.SystemConfigCommon {\n return this.systemConfig;\n }\n\n setConfig(config: ChartConfig | ChartConfigOld): void {\n void this.analyseAndLoadConfig(config as ChartConfigOld);\n }\n\n increaseRegionForBar(start: number | Date, end: number | Date, option: ioBroker.GetHistoryOptions): void {\n this.config.aggregateBar = parseInt(this.config.aggregateBar as unknown as string, 10) || 0;\n let endTs = typeof end === 'number' ? end : end.getTime();\n let startTs = typeof start === 'number' ? start : start.getTime();\n\n // calculate count of intervals\n if (!this.config.aggregateBar) {\n if (endTs - startTs <= 3600000 * 12) {\n // less than 12 hours => 15 minutes\n this.config.aggregateBar = 15;\n } else if (endTs - startTs >= 3600000 * 24 * 60) {\n // more than 60 days => 1 month\n this.config.aggregateBar = 43200;\n } else if (endTs - startTs > 3600000 * 24 * 3) {\n // more than 3 days => 1 day\n this.config.aggregateBar = 1440;\n } else {\n // if (endTs - startTs > 3600000 * 12) { // more than 12 hours => 60 minutes\n this.config.aggregateBar = 60;\n }\n }\n\n option = option || ({} as ioBroker.GetHistoryOptions);\n\n if (this.config.aggregateBar === 15) {\n // align start and stop to 15 minutes\n const startDate = new Date(startTs);\n startDate.setMinutes(Math.floor(startDate.getMinutes() / 15) * 15);\n if (this.config.postProcessing === 'diff') {\n startDate.setMinutes(startDate.getMinutes() - 15);\n }\n startDate.setSeconds(0);\n startDate.setMilliseconds(0);\n startTs = startDate.getTime();\n\n const endDate = new Date(endTs);\n endDate.setMinutes(Math.ceil(endDate.getMinutes() / 15) * 15);\n endDate.setSeconds(0);\n endDate.setMilliseconds(0);\n endTs = endDate.getTime();\n option.count = Math.round((endTs - startTs) / 900000);\n } else if (this.config.aggregateBar === 60) {\n // align start and stop to 1 hour\n const startDate = new Date(startTs);\n startDate.setMinutes(0);\n startDate.setSeconds(0);\n startDate.setMilliseconds(0);\n if (this.config.postProcessing === 'diff') {\n startDate.setMinutes(startDate.getMinutes() - 60);\n }\n startTs = startDate.getTime();\n\n const endDate = new Date(endTs);\n endDate.setMinutes(60);\n endDate.setSeconds(0);\n endDate.setMilliseconds(0);\n endTs = endDate.getTime();\n option.count = Math.round((endTs - startTs) / 3600000);\n } else if (this.config.aggregateBar === 1440) {\n // align start and stop to 1 day\n const startDate = new Date(startTs);\n startDate.setHours(0);\n startDate.setMinutes(0);\n startDate.setSeconds(0);\n startDate.setMilliseconds(0);\n if (this.config.postProcessing === 'diff') {\n startDate.setDate(startDate.getDate() - 1);\n }\n startTs = startDate.getTime();\n\n const endDate = new Date(endTs);\n endDate.setDate(endDate.getDate() + 1);\n endDate.setHours(0);\n endDate.setMinutes(0);\n endDate.setSeconds(0);\n endDate.setMilliseconds(0);\n endTs = endDate.getTime();\n option.count = Math.round((endTs - startTs) / 86400000);\n } else if (this.config.aggregateBar === 43200) {\n // align start and stop to 1 month\n const startDate = new Date(startTs);\n startDate.setDate(1);\n startDate.setHours(0);\n startDate.setMinutes(0);\n startDate.setSeconds(0);\n startDate.setMilliseconds(0);\n if (this.config.postProcessing === 'diff') {\n startDate.setDate(startDate.getDate() - 30);\n }\n startTs = startDate.getTime();\n\n const endDate = new Date(endTs);\n endDate.setDate(1);\n endDate.setHours(0);\n endDate.setMinutes(0);\n endDate.setMonth(endDate.getMonth() + 1);\n endDate.setSeconds(0);\n endDate.setMilliseconds(0);\n endTs = endDate.getTime();\n option.count = Math.round((endTs - startTs) / (86400000 * 30)); // todo it must be variable as every month has different count of days\n }\n\n option.start = startTs;\n option.end = endTs;\n }\n\n getStartStop(index: number, step?: number): ioBroker.GetHistoryOptions {\n let option: ioBroker.GetHistoryOptions;\n let endTs: number;\n let startTs: number;\n let _nowTs: number;\n this.config.l[index].offset = this.config.l[index].offset || 0;\n\n // check config range\n if (typeof this.config.range === 'string' && this.config.range.includes('m') && this.config.l.length > 1) {\n const monthRange = parseInt(this.config.range as string, 10) || 1;\n for (let a = 0; a < this.config.l.length; a++) {\n if (this.config.l[a].offset) {\n // Check what the month has first index\n _nowTs = ChartModel.addTime(this.now, this.config.l[a].offset);\n const minusMonth = new Date(_nowTs);\n minusMonth.setMonth(minusMonth.getMonth() - monthRange);\n this.config.range = Math.floor((_nowTs - minusMonth.getTime()) / 60000);\n break;\n }\n }\n } else if (typeof this.config.range === 'string' && this.config.range.includes('y') && this.config.l.length > 1) {\n const yearRange = parseInt(this.config.range as string, 10) || 1;\n for (let a = 0; a < this.config.l.length; a++) {\n if (this.config.l[a].offset) {\n // Check what the month has first index\n _nowTs = ChartModel.addTime(this.now, this.config.l[a].offset);\n const minusYear = new Date(_nowTs);\n minusYear.setFullYear(minusYear.getFullYear() - yearRange);\n this.config.range = Math.floor((_nowTs - minusYear.getTime()) / 60000);\n break;\n }\n }\n }\n\n // todo: What about year?\n\n if (!step) {\n if (this.zoomData) {\n startTs = this.zoomData.start;\n endTs = this.zoomData.end;\n } else if (this.config.timeType === 'static') {\n let startTime: [number, number];\n let endTime: [number, number];\n if (this.config.start_time !== undefined) {\n startTime = this.config.start_time.split(':').map(Number) as [number, number];\n } else {\n startTime = [0, 0];\n }\n\n if (this.config.end_time !== undefined) {\n endTime = this.config.end_time.split(':').map(Number) as [number, number];\n } else {\n endTime = [24, 0];\n }\n\n // offset is in seconds\n const startDate = new Date(this.config.start).setHours(startTime[0], startTime[1]);\n const endDate = new Date(this.config.end).setHours(endTime[0], endTime[1]);\n\n startTs = ChartModel.addTime(startDate, this.config.l[index].offset);\n endTs = ChartModel.addTime(endDate, this.config.l[index].offset);\n } else {\n this.config.relativeEnd = this.config.relativeEnd || 'now';\n let _nowDate: Date;\n\n if (this.config.relativeEnd === 'now') {\n _nowDate = new Date(this.now);\n } else if (this.config.relativeEnd.includes('minute')) {\n const minutes = parseInt(this.config.relativeEnd, 10) || 1;\n _nowDate = new Date(this.now);\n _nowDate.setMinutes(Math.floor(_nowDate.getMinutes() / minutes) * minutes + minutes);\n _nowDate.setSeconds(0);\n _nowDate.setMilliseconds(0);\n } else if (this.config.relativeEnd.includes('hour')) {\n const hours = parseInt(this.config.relativeEnd, 10) || 1;\n _nowDate = new Date(this.now);\n _nowDate.setHours(Math.floor(_nowDate.getHours() / hours) * hours + hours);\n _nowDate.setMinutes(0);\n _nowDate.setSeconds(0);\n _nowDate.setMilliseconds(0);\n } else if (this.config.relativeEnd === 'today') {\n _nowDate = new Date(this.now);\n _nowDate.setDate(_nowDate.getDate() + 1);\n _nowDate.setHours(0);\n _nowDate.setMinutes(0);\n _nowDate.setSeconds(0);\n _nowDate.setMilliseconds(0);\n } else if (this.config.relativeEnd === 'weekUsa') {\n // const week = parseInt(config.relativeEnd, 10) || 1;\n _nowDate = new Date(this.now);\n _nowDate.setDate(_nowDate.getDate() - _nowDate.getDay() + 7);\n _nowDate.setHours(0);\n _nowDate.setMinutes(0);\n _nowDate.setSeconds(0);\n _nowDate.setMilliseconds(0);\n } else if (this.config.relativeEnd === 'weekEurope') {\n // const _week = parseInt(config.relativeEnd, 10) || 1;\n _nowDate = new Date(this.now);\n // If\n if (_nowDate.getDay() === 0) {\n _nowDate.setDate(_nowDate.getDate() + 1);\n } else {\n _nowDate.setDate(_nowDate.getDate() - _nowDate.getDay() + 8);\n }\n _nowDate.setHours(0);\n _nowDate.setMinutes(0);\n _nowDate.setSeconds(0);\n _nowDate.setMilliseconds(0);\n } else if (this.config.relativeEnd === 'week2Usa') {\n // const week = parseInt(config.relativeEnd, 10) || 1;\n _nowDate = new Date(this.now);\n _nowDate.setDate(_nowDate.getDate() - _nowDate.getDay() + 7);\n _nowDate.setDate(_nowDate.getDate() - 7);\n _nowDate.setHours(0);\n _nowDate.setMinutes(0);\n _nowDate.setSeconds(0);\n _nowDate.setMilliseconds(0);\n } else if (this.config.relativeEnd === 'week2Europe') {\n // const _week = parseInt(config.relativeEnd, 10) || 1;\n _nowDate = new Date(this.now);\n // If\n if (_nowDate.getDay() === 0) {\n _nowDate.setDate(_nowDate.getDate() + 1);\n } else {\n _nowDate.setDate(_nowDate.getDate() - _nowDate.getDay() + 8);\n }\n _nowDate.setDate(_nowDate.getDate() - 7);\n _nowDate.setHours(0);\n _nowDate.setMinutes(0);\n _nowDate.setSeconds(0);\n _nowDate.setMilliseconds(0);\n } else if (this.config.relativeEnd === 'month') {\n _nowDate = new Date(this.now);\n _nowDate.setMonth(_nowDate.getMonth() + 1);\n _nowDate.setDate(1);\n _nowDate.setHours(0);\n _nowDate.setMinutes(0);\n _nowDate.setSeconds(0);\n _nowDate.setMilliseconds(0);\n } else if (this.config.relativeEnd === 'year') {\n _nowDate = new Date(this.now);\n _nowDate.setFullYear(_nowDate.getFullYear() + 1);\n _nowDate.setMonth(0);\n _nowDate.setDate(1);\n _nowDate.setHours(0);\n _nowDate.setMinutes(0);\n _nowDate.setSeconds(0);\n _nowDate.setMilliseconds(0);\n }\n\n this.config.range = this.config.range || 30;\n\n endTs = ChartModel.addTime(_nowDate, this.config.l[index].offset);\n startTs = ChartModel.addTime(endTs, this.config.range, true);\n }\n\n const aggregate = this.config.l[index].aggregate || this.config.aggregate;\n if (aggregate === 'current') {\n throw new Error('Cannot use \"current\" aggregate for start/stop');\n }\n\n option = {\n start: startTs,\n end: endTs,\n ignoreNull:\n this.config.l[index].ignoreNull === undefined\n ? this.config.ignoreNull\n : this.config.l[index].ignoreNull,\n aggregate: aggregate || 'minmax',\n from: false,\n ack: false,\n q: false,\n addID: false,\n } as ioBroker.GetHistoryOptions;\n\n if (this.config.l[index].chartType === 'bar' || this.config.l[index].chartType === 'polar') {\n this.increaseRegionForBar(startTs, endTs, option);\n } else if (this.config.aggregateType === 'step') {\n option.step = this.config.aggregateSpan * 1000;\n } else if (this.config.aggregateType === 'count') {\n option.count = this.config.aggregateSpan || 300;\n }\n\n this.config.start = startTs;\n this.config.end = endTs;\n\n return option;\n }\n if (this.zoomData) {\n startTs = this.zoomData.start;\n endTs = this.zoomData.end;\n } else {\n endTs = ChartModel.addTime(this.now, this.config.l[index].offset);\n startTs = endTs - step;\n }\n\n option = {\n start: startTs,\n end: endTs,\n ignoreNull:\n this.config.l[index].ignoreNull === undefined\n ? this.config.ignoreNull\n : this.config.l[index].ignoreNull,\n aggregate:\n (this.config.l[index].aggregate as ioBroker.GetHistoryOptions['aggregate']) ||\n (this.config.aggregate as ioBroker.GetHistoryOptions['aggregate']) ||\n 'minmax',\n count: 1,\n from: false,\n ack: false,\n q: false,\n addId: false,\n };\n\n this.config.start = ChartModel.addTime(endTs, this.config.range, true);\n this.config.end = endTs;\n\n return option;\n }\n\n static postProcessing(\n series: BarSeries[],\n categories: number[],\n aggregate: ChartAggregateType,\n postProcessingMethod?: 'diff' | '',\n ): BarSeries {\n const barSeries: BarSeries = [];\n\n for (let i = 0; i < series.length; i++) {\n const interval = series[i];\n if (!interval.length) {\n barSeries[i] = null;\n } else if (interval.length === 1) {\n // sum all values\n barSeries[i] = interval[0];\n } else if (aggregate === 'average') {\n const sum = interval.reduce((a, b) => a + b, 0);\n barSeries[i] = sum / interval.length;\n } else if (aggregate === 'min') {\n let min = interval[0];\n for (let j = 1; j < interval.length; j++) {\n if (interval[j] < min) {\n min = interval[j];\n }\n }\n barSeries[i] = min;\n } else if (aggregate === 'max') {\n let max = interval[0];\n for (let j = 1; j < interval.length; j++) {\n if (interval[j] > max) {\n max = interval[j];\n }\n }\n barSeries[i] = max;\n } else if (aggregate === 'total') {\n barSeries[i] = interval.reduce((a, b) => a + b, 0);\n } else {\n barSeries[i] = interval[interval.length - 1];\n }\n }\n\n if (postProcessingMethod === 'diff') {\n for (let i = series.length - 1; i > 0; i--) {\n if (barSeries[i - 1] !== null && barSeries[i] !== null) {\n barSeries[i] -= barSeries[i - 1];\n } else {\n barSeries[i] = 0;\n }\n }\n barSeries.splice(0, 1);\n categories.splice(0, 1);\n }\n\n for (let i = 0; i < series.length; i++) {\n console.log(`${categories[i]}: ${barSeries[i]}`);\n }\n return barSeries;\n }\n\n static processOneValue(\n value: ioBroker.StateValue | undefined,\n convertFunc: ((val: number) => number) | undefined,\n yOffset: number,\n ): number | null {\n // Convert boolean values to numbers\n if (value === 'true' || value === true) {\n value = 1;\n } else if (value === 'false' || value === false) {\n value = 0;\n } else if (typeof value === 'string') {\n value = parseFloat(value as unknown as string);\n }\n\n if (convertFunc) {\n return value !== null ? convertFunc(value + yOffset) : null;\n }\n\n return value !== null ? value + yOffset : null;\n }\n\n processRawData(\n _id: string,\n line: ChartLineConfig,\n values: SeriesData[],\n option?: ioBroker.GetHistoryOptions,\n ): { seriesData?: LineSeries; barData?: BarSeries } {\n if (!option) {\n option = {\n start: values[0].ts,\n end: values[values.length - 1].ts,\n };\n\n if (line.chartType === 'bar' || line.chartType === 'polar') {\n this.increaseRegionForBar(option.start, option.end, option);\n }\n }\n\n const yOffset: number = line.yOffset || 0;\n\n const seriesData: LineSeries = [];\n // Collects for every time interval the values. Later it will be combined to number[]\n const _barSeries: number[][] = [];\n let barCategories = this.barCategories;\n\n // fill categories for bars\n if (line.chartType === 'bar') {\n if (!barCategories) {\n barCategories = [];\n this.barCategories = barCategories;\n const start = new Date(option.start);\n const end: number = typeof option.end === 'number' ? option.end : (option.end as Date).getTime();\n while (start.getTime() <= end) {\n barCategories.push(start.getTime());\n start.setMinutes(start.getMinutes() + this.config.aggregateBar);\n }\n }\n\n barCategories.forEach(() => _barSeries.push([]));\n }\n\n let convertFunc: ((val: number) => number) | undefined;\n if (line.convert?.trim()) {\n if (!this.convertFunctions[line.convert.trim()]) {\n let convert = line.convert.trim();\n if (!convert.includes('return')) {\n convert = `return ${convert}`;\n }\n try {\n convertFunc = new Function('val', convert) as (val: number) => number;\n } catch (e) {\n console.error(`[ChartModel] Cannot parse convert function: ${e}`);\n }\n }\n convertFunc = this.convertFunctions[line.convert.trim()];\n }\n\n for (let i = 0; i < values.length; i++) {\n const value: number | null = ChartModel.processOneValue(values[i].val, convertFunc, yOffset);\n\n if (line.chartType === 'bar') {\n // find category\n for (let c = 0; c < barCategories.length; c++) {\n if (\n barCategories[c] >= values[i].ts &&\n values[i].ts < barCategories[c] + this.config.aggregateBar * 60000\n ) {\n _barSeries[c].push(value);\n break;\n }\n }\n } else if (line.chartType !== 'polar') {\n if (line.noFuture && values[i].ts > this.now) {\n // todo: interpolate value\n break;\n }\n\n const dp: EchartsOneValue = { value: [values[i].ts, value] };\n\n // If value was interpolated by backend\n if (values[i].i) {\n dp.exact = false;\n }\n seriesData.push(dp);\n }\n }\n\n // add start and end\n if (line.chartType !== 'bar' && line.chartType !== 'polar') {\n let end: number = typeof option.end === 'number' ? option.end : (option.end as Date).getTime();\n const start: number = typeof option.start === 'number' ? option.start : (option.start as Date).getTime();\n // End cannot be in the future\n if (end > this.now) {\n end = this.now;\n }\n if (seriesData.length) {\n if (seriesData[0].value[0] > start) {\n seriesData.unshift({ value: [start, null], exact: false });\n }\n const last = seriesData[seriesData.length - 1];\n if (last.value[0] < end) {\n if (line.validTime) {\n // If the last value is not older than X seconds, assume it is still the same\n if (end - line.validTime * 1000 <= last.value[0]) {\n seriesData.push({ value: [end, last.value[1]], exact: false });\n } else {\n seriesData.push({ value: [end, null], exact: false });\n }\n } else {\n seriesData.push({ value: [end, null], exact: false });\n }\n }\n } else {\n seriesData.push({ value: [start, null], exact: false });\n seriesData.push({ value: [end, null], exact: false });\n }\n\n // TODO: May be not required?\n seriesData.sort((a, b) => (a.value[0] > b.value[0] ? 1 : a.value[0] < b.value[0] ? -1 : 0));\n\n // The next line is not required, as it is already done at the start\n return { seriesData };\n }\n\n // it is not the series, it is bar data\n const barData = ChartModel.postProcessing(_barSeries, barCategories, line.aggregate, line.postProcessing);\n return { barData };\n }\n\n async readOneChart(id: string, instance: string, index: number): Promise {\n const lineConfig = this.config.l[index];\n if (instance === 'json') {\n const state = await this.socket.getState(id);\n try {\n const valuesAny: SeriesData[] | { history: SeriesData[] } = JSON.parse(state?.val as string);\n let values: SeriesData[];\n if ((valuesAny as { history: SeriesData[] }).history) {\n values = (valuesAny as { history: SeriesData[] }).history;\n } else {\n values = valuesAny as SeriesData[];\n }\n if (!Array.isArray(values)) {\n values = [];\n console.warn('JSON is not an array');\n }\n\n values = values.filter(v => v);\n\n // convert alternative names to {ts, val}. Possible names for ts: t, time. Possible names for val: y, value\n if (values[0]) {\n const keys = Object.keys(values[0]);\n if (!keys.includes('val') || !keys.includes('ts')) {\n // If a format is [{t: 123, y: 1}, {t: 124, y: 2}] (e.g. from pvsolar\n if (keys.includes('y') && keys.includes('t')) {\n values = values.map(v => ({ ts: v.t, val: v.y }) as SeriesData);\n } else {\n if (keys.includes('y')) {\n values.forEach(v => (v.val = v.y));\n } else if (keys.includes('value')) {\n values.forEach(v => (v.val = v.value));\n } else if (keys.includes('data')) {\n values.forEach(v => (v.val = v.data));\n } else if (keys.includes('v')) {\n values.forEach(v => (v.val = v.v));\n }\n\n if (keys.includes('t')) {\n values.forEach(v => (v.ts = v.t));\n } else if (keys.includes('time')) {\n values.forEach(v => (v.ts = v.time));\n } else if (keys.includes('date')) {\n values.forEach(v => (v.ts = v.date));\n }\n }\n }\n\n // convert ts to number\n if (values[0].ts) {\n if (typeof values[0].ts === 'string' && window.isFinite(values[0].ts)) {\n values.forEach(v => (v.ts = parseInt(v.ts as unknown as string, 10)));\n } else if (\n typeof values[0].ts === 'string' &&\n new Date(values[0].ts).toString() !== 'Invalid Date'\n ) {\n values.forEach(v => (v.ts = new Date(v.ts).getTime()));\n }\n // no else\n if (typeof values[0].ts === 'number' && values[0].ts < 946681200000) {\n // new Date(2000,0,1).getTime() === 946681200000\n values.forEach(v => (v.ts *= 1000));\n }\n }\n }\n\n values.sort((a, b) => (a.ts - b.ts ? -1 : a.ts < b.ts ? 1 : 0));\n\n const result = this.processRawData(id, lineConfig, values);\n if (result.barData) {\n this.barData[index] = result.barData;\n } else {\n this.seriesData[index] = result.seriesData;\n }\n } catch (e) {\n console.error(`[ChartModel] Cannot parse values in JSON: ${e}`);\n }\n\n if (!this.serverSide && !this.subscribes.includes(id)) {\n this.subscribes.push(id);\n this.subscribed = true;\n void this.socket.subscribeState(id, this.onStateChange);\n }\n } else {\n const option = this.getStartStop(index);\n option.instance = instance;\n option.sessionId = this.sessionId;\n\n // console.log(JSON.stringify(option));\n if (this.debug) {\n console.log(`[ChartModel] ${new Date(option.start).toString()} - ${new Date(option.end).toString()}`);\n }\n\n if (lineConfig.aggregate !== 'current') {\n try {\n const res = await this.socket.getHistoryEx(id, option);\n if (this.sessionId && res.sessionId && res.sessionId !== this.sessionId) {\n console.warn(\n `[ChartModel] Ignore request with sessionId=${res.sessionId}, actual is ${this.sessionId}`,\n );\n return;\n }\n\n if (res?.values) {\n // option.ignoreNull = (config.l[index].ignoreNull === undefined) ? (config.ignoreNull === 'true' || config.ignoreNull === true) : (config.l[index].ignoreNull === 'true' || config.l[index].ignoreNull === true);\n const result = this.processRawData(id, lineConfig, res.values as SeriesData[], option);\n\n if (result.barData) {\n this.barData[index] = result.barData;\n } else {\n this.seriesData[index] = result.seriesData;\n }\n // free memory\n res.values = null;\n }\n } catch (err) {\n if (err === NOT_CONNECTED && this.onErrorFunc) {\n this.onErrorFunc(err);\n }\n console.error(`[ChartModel] ${err}`);\n }\n }\n\n if (\n (this.config.legActual && lineConfig.chartType !== 'bar' && lineConfig.chartType !== 'polar') ||\n lineConfig.aggregate === 'current'\n ) {\n // read current value\n try {\n const state = await this.socket.getState(id);\n this.actualValues[index] = ChartModel.processOneValue(\n state.val,\n this.convertFunctions[lineConfig.convert],\n lineConfig.yOffset || 0,\n );\n } catch (e) {\n console.warn(`Cannot read last value of \"${id}\": ${e}`);\n this.actualValues[index] = null;\n }\n\n if (!this.serverSide && !this.subscribes.includes(id)) {\n this.subscribes.push(id);\n this.subscribed = true;\n void this.socket.subscribeState(id, this.onStateChange);\n }\n }\n }\n }\n\n async readOneRawChart(id: string, instance: string, start: number, end: number): Promise {\n if (instance === 'json') {\n const state: ioBroker.State | null | undefined = await this.socket.getState(id);\n try {\n const valuesJson: SeriesData[] | { history: SeriesData[] } = JSON.parse(state?.val as string);\n let values: SeriesData[];\n if ((valuesJson as { history: SeriesData[] }).history) {\n values = (valuesJson as { history: SeriesData[] }).history;\n } else {\n values = valuesJson as SeriesData[];\n }\n\n // convert alternative names to {ts, val}. Possible names for ts: t, time. Possible names for val: y, value\n if (values[0]) {\n const keys = Object.keys(values[0]);\n if (!keys.includes('val') || !keys.includes('ts')) {\n // If format is [{t: 123, y: 1}, {t: 124, y: 2}] (e.g. from pvsolar\n if (keys.includes('y') && keys.includes('t')) {\n values = values.map(v => ({ ts: v.t, val: v.y }) as SeriesData);\n } else {\n if (keys.includes('y')) {\n values.forEach(v => (v.val = v.y));\n } else if (keys.includes('value')) {\n values.forEach(v => (v.val = v.value));\n } else if (keys.includes('data')) {\n values.forEach(v => (v.val = v.data));\n } else if (keys.includes('v')) {\n values.forEach(v => (v.val = v.v));\n }\n\n if (keys.includes('t')) {\n values.forEach(v => (v.ts = v.t));\n } else if (keys.includes('time')) {\n values.forEach(v => (v.ts = v.time));\n } else if (keys.includes('date')) {\n values.forEach(v => (v.ts = v.date));\n }\n }\n }\n\n // convert ts to number\n if (values[0].ts) {\n if (typeof values[0].ts === 'string' && window.isFinite(values[0].ts)) {\n values.forEach(v => (v.ts = parseInt(v.ts as unknown as string, 10)));\n } else if (\n typeof values[0].ts === 'string' &&\n new Date(values[0].ts).toString() !== 'Invalid Date'\n ) {\n values.forEach(v => (v.ts = new Date(v.ts).getTime()));\n }\n // no else\n if (typeof values[0].ts === 'number' && values[0].ts < 946681200000) {\n // new Date(2000,0,1).getTime() === 946681200000\n values.forEach(v => (v.ts *= 1000));\n }\n }\n }\n\n if (!Array.isArray(values)) {\n values = [];\n console.warn('JSON is not an array');\n }\n values.sort((a, b) => (a.ts - b.ts ? -1 : a.ts < b.ts ? 1 : 0));\n\n return values;\n } catch (e) {\n console.error(`[ChartModel] Cannot parse values in JSON: ${e}`);\n }\n } else {\n const option: ioBroker.GetHistoryOptions = {\n start,\n end,\n ignoreNull: false,\n aggregate: 'none',\n count: 2000,\n from: false,\n ack: false,\n q: false,\n addId: false,\n };\n\n option.instance = instance;\n option.sessionId = this.sessionId;\n\n if (this.debug) {\n console.log(`[ChartModel] ${new Date(option.start).toString()} - ${new Date(option.end).toString()}`);\n }\n\n try {\n const res = await this.socket.getHistoryEx(id, option);\n if (this.sessionId && res.sessionId && res.sessionId !== this.sessionId) {\n console.warn(\n `[ChartModel] Ignore request with sessionId=${res.sessionId}, actual is ${this.sessionId}`,\n );\n return null;\n }\n\n return res?.values;\n } catch (err) {\n err === NOT_CONNECTED && this.onErrorFunc && this.onErrorFunc(err);\n err && console.error(`[ChartModel] ${err}`);\n }\n }\n\n return null;\n }\n\n _readObject(id: string): Promise {\n if (!(this.objectPromises[id] instanceof Promise)) {\n this.objectPromises[id] = (this.socket.getObject(id) as Promise).catch(\n (e: unknown): null => {\n if ((e as Error).toString().includes(NOT_CONNECTED) && this.onErrorFunc) {\n this.onErrorFunc(e as Error);\n }\n console.error(`Cannot read \"${id}\": ${(e as Error).toString()}`);\n return null;\n },\n );\n }\n\n return this.objectPromises[id];\n }\n\n async _readOneLine(index: number): Promise {\n const lineConfig = this.config.l[index];\n try {\n const obj = await this._readObject(lineConfig.id);\n\n if (obj?.common) {\n const name: ioBroker.StringOrTranslated = lineConfig.name || obj.common.name;\n\n lineConfig.name =\n name && typeof name === 'object'\n ? name[this.systemConfig.language] || name.en || lineConfig.id\n : (name as string) || '';\n\n lineConfig.unit = lineConfig.unit || (obj.common.unit ? obj.common.unit.replace('�', '°') : '');\n\n lineConfig.type = obj.common.type;\n\n if (lineConfig.chartType === 'auto') {\n lineConfig.chartType = obj.common.type === 'boolean' ? 'steps' : 'line';\n lineConfig.aggregate = obj.common.type === 'boolean' ? 'none' : 'minmax';\n }\n\n // ignore unit if true/false text set\n if (lineConfig.unit && (lineConfig.falseText || lineConfig.trueText)) {\n delete lineConfig.unit;\n }\n\n // remember enum states\n if (\n obj.common.states &&\n !Array.isArray(obj.common.states) &&\n lineConfig.states !== false &&\n !obj.common.unit\n ) {\n if (lineConfig.states) {\n lineConfig.states = Object.assign(obj.common.states, lineConfig.states);\n } else {\n lineConfig.states = obj.common.states;\n }\n\n // if the states have true, false as text => convert it to 1, 0\n if (Object.keys(lineConfig.states).find(key => key === 'true' || key === 'false')) {\n const states: Record = {};\n Object.keys(lineConfig.states).forEach(key => {\n states[key === 'true' ? 1 : key === 'false' ? 0 : key] = (\n lineConfig.states as Record\n )[key];\n });\n lineConfig.states = states;\n }\n\n // ignore unit for enums text set\n if (lineConfig.unit && lineConfig.states) {\n delete lineConfig.unit;\n }\n }\n\n // set YAxis to 'off' if commonYAxis is set\n if (lineConfig.commonYAxis || lineConfig.commonYAxis === 0) {\n lineConfig.yaxe = 'off';\n }\n }\n } catch (e) {\n e === NOT_CONNECTED && this.onErrorFunc && this.onErrorFunc(e);\n console.error(`[ChartModel] Cannot read object ${lineConfig.id}: ${e}`);\n }\n\n lineConfig.name = lineConfig.name || lineConfig.id || '';\n lineConfig.unit = lineConfig.unit || '';\n if (lineConfig.chartType === 'auto') {\n lineConfig.chartType = 'line';\n lineConfig.aggregate = 'minmax';\n }\n\n await this.readOneChart(lineConfig.id, lineConfig.instance || this.defaultHistory, index);\n }\n\n async _readData(): Promise {\n for (let j = 0; j < this.config.l.length; j++) {\n if (this.config.l[j]) {\n this.seriesData.push([]);\n }\n if (this.config.l[j]?.id) {\n await this._readOneLine(j);\n }\n }\n }\n\n async readTicks(): Promise {\n if (this.config.ticks) {\n const index = 0;\n const option: ioBroker.GetHistoryOptions = JSON.parse(JSON.stringify(this.getStartStop(index)));\n option.instance = this.config.l[index].instance || this.defaultHistory;\n option.sessionId = this.sessionId;\n option.aggregate = 'none';\n\n if (this.debug) {\n console.log(\n `[ChartModel] Ticks: ${new Date(option.start).toString()} - ${new Date(option.end).toString()}`,\n );\n }\n\n try {\n const res = await this.socket.getHistoryEx(this.config.ticks, option);\n if (this.sessionId && res.sessionId && res.sessionId !== this.sessionId) {\n console.warn(\n `[ChartModel] Ignore request with sessionId=${res.sessionId}, actual is ${this.sessionId}`,\n );\n return;\n }\n\n const _series: EchartsAnyValue[] = this.ticks || [];\n if (res?.values) {\n if (this.ticks?.length) {\n this.ticks.splice(0, this.ticks.length);\n }\n\n const values = res.values;\n\n for (let i = 0; i < values.length; i++) {\n if (values[i].val !== null) {\n _series.push({ value: [values[i].ts, values[i].val] });\n }\n }\n\n // add start and end\n if (_series.length) {\n if (_series[0].value[0] > option.start) {\n _series.unshift({ value: [option.start, ''] });\n }\n if (_series[_series.length - 1].value[0] < option.end) {\n _series.push({ value: [option.end, ''] });\n }\n } else {\n _series.push({ value: [option.start, ''] });\n _series.push({ value: [option.end, ''] });\n }\n // free memory\n res.values = null;\n }\n\n this.ticks = _series;\n } catch (e) {\n e === NOT_CONNECTED && this.onErrorFunc && this.onErrorFunc(e);\n console.error(`[ChartModel] ${e}`);\n }\n }\n }\n\n /*\n readValue(id, index, cb) {\n this.socket.getState(id)\n .then(state => {\n if (state) {\n cb(index, parseFloat(state.val) || 0);\n } else {\n cb(index, 0);\n }\n })\n .catch(e => {\n e === NOT_CONNECTED && this.onErrorFunc && this.onErrorFunc(e);\n console.error(`[ChartModel] ${e}`);\n cb(index, 0);\n });\n }\n */\n\n async readMarkings(): Promise {\n if (!this.config.marks) {\n return;\n }\n // read markings\n for (let m = 0; m < this.config.marks.length; m++) {\n const mark = this.config.marks[m];\n // process upper ID\n if (\n mark.upperValueOrId &&\n typeof mark.upperValueOrId === 'string' &&\n mark.upperValueOrId.toString().includes('.') &&\n parseFloat(mark.upperValueOrId).toString() !== mark.upperValueOrId.toString().replace(/\\.0*$/, '')\n ) {\n /* if (!this.subscribes.includes(mark.upperValueOrId)) {\n this.subscribes.push(mark.upperValueOrId);\n } */\n try {\n const state = await this.socket.getState(mark.upperValueOrId);\n if (state && state.val !== undefined && state.val !== null) {\n mark.upperValue = parseFloat(state.val as string) || 0;\n } else {\n mark.upperValue = null;\n }\n } catch (e) {\n e === NOT_CONNECTED && this.onErrorFunc && this.onErrorFunc(e);\n console.error(`Cannot read marking ${mark.upperValueOrId}: ${e}`);\n }\n }\n\n // process lower ID\n if (\n mark.lowerValueOrId &&\n typeof mark.lowerValueOrId === 'string' &&\n mark.lowerValueOrId.includes('.') &&\n parseFloat(mark.lowerValueOrId).toString() !== mark.lowerValueOrId.replace(/\\.0*$/, '')\n ) {\n /* if (!this.subscribes.includes(mark.upperValueOrId)) {\n this.subscribes.push(mark.upperValueOrId);\n } */\n try {\n const state = await this.socket.getState(mark.lowerValueOrId);\n if (state && state.val !== undefined && state.val !== null) {\n mark.lowerValue = parseFloat(state.val as string) || 0;\n } else {\n mark.lowerValue = null;\n }\n } catch (e) {\n e === NOT_CONNECTED && this.onErrorFunc && this.onErrorFunc(e);\n console.error(`Cannot read marking ${mark.lowerValueOrId}: ${e}`);\n }\n }\n }\n }\n\n async subscribeAll(subscribes?: string[]): Promise {\n if (!this.serverSide && subscribes?.length) {\n for (let s = 0; s < subscribes.length; s++) {\n try {\n await this.socket.subscribeState(subscribes[s], this.onStateChange);\n } catch (e) {\n e === NOT_CONNECTED && this.onErrorFunc && this.onErrorFunc(e);\n console.error(`Cannot subscribe ${subscribes[s]}: ${e}`);\n }\n }\n }\n }\n\n updateData(): void {\n // combine seriesData and barData\n const updateData: BarAndLineSeries[] = [];\n this.config.l.forEach((line, index) => {\n if (line.chartType === 'bar') {\n updateData[index] = this.barData[index];\n } else {\n updateData[index] = this.seriesData[index];\n }\n });\n\n this.onUpdateFunc(updateData, this.actualValues, this.barCategories);\n }\n\n onStateChange = (id: string, state: ioBroker.State | null | undefined): void => {\n if (!id || !state || this.reading) {\n return;\n }\n\n if (this.debug) {\n console.log(`State update ${id} - ${state.val}`);\n }\n\n let changed = false;\n for (let index = 0; index < this.config.l.length; index++) {\n if (this.config.l[index].id === id) {\n // by update from json => update always all values\n if (this.config.l[index].instance === 'json') {\n try {\n const dataJson: SeriesData[] | { history: SeriesData[] } = JSON.parse(state?.val as string);\n let data: SeriesData[];\n if ((dataJson as { history: SeriesData[] }).history) {\n data = (dataJson as { history: SeriesData[] }).history;\n } else {\n data = dataJson as SeriesData[];\n }\n\n if (!Array.isArray(data)) {\n data = [];\n console.warn('JSON is not an array');\n }\n data.sort((a, b) => (a.ts - b.ts ? -1 : a.ts < b.ts ? 1 : 0));\n const result = this.processRawData(id, this.config.l[index], data);\n\n if (result.barData) {\n this.barData[index] = result.barData;\n } else {\n this.seriesData[index] = result.seriesData;\n }\n\n // take last value as actual value\n if (this.actualValues) {\n this.actualValues[index] = data[data.length - 1].val;\n }\n\n this.updateData();\n } catch (e) {\n console.error(`Cannot parse JSON: ${e}`);\n }\n\n return;\n }\n\n const value = ChartModel.processOneValue(\n state.val,\n this.convertFunctions[this.config.l[index].convert],\n this.config.l[index].yOffset || 0,\n );\n\n if (this.actualValues && this.actualValues[index] !== value) {\n this.actualValues[index] = value;\n changed = true;\n }\n break;\n }\n }\n changed && this.onUpdateFunc(null, this.actualValues);\n };\n\n static addTime(\n time: number | Date,\n offset: string | number,\n isOffsetInMinutes?: boolean,\n ): number {\n const date: Date = new Date(time);\n\n if (typeof offset === 'string') {\n if (offset[1] === 'm' || offset[2] === 'm') {\n offset = parseInt(offset, 10);\n date.setMonth(date.getMonth() - offset);\n time = date.getTime();\n } else if (offset[1] === 'y' || offset[2] === 'y') {\n offset = parseInt(offset, 10);\n date.setFullYear(date.getFullYear() - offset);\n time = date.getTime();\n } else {\n time = date.getTime();\n if (isOffsetInMinutes) {\n time -= (parseInt(offset, 10) || 0) * 60000;\n }else {\n time -= (parseInt(offset, 10) || 0) * 1000;\n }\n }\n } else {\n offset = offset || 0;\n time = date.getTime();\n if (isOffsetInMinutes) {\n time -= offset * 60000;\n } else {\n time -= offset * 1000;\n }\n }\n return time;\n }\n\n async exportData(from: number, to: number, excludes?: string[]): Promise<{ [objectId: string]: SeriesData[] }> {\n // read all raw data\n const result: { [objectId: string]: SeriesData[] } = {};\n for (let i = 0; i < this.config.l.length; i++) {\n if (excludes?.includes(this.config.l[i].id) || !this.config.l[i] || !this.config.l[i].id) {\n continue;\n }\n let data = await this.readOneRawChart(\n this.config.l[i].id,\n this.config.l[i].instance || this.defaultHistory,\n from,\n to,\n );\n let _from = data?.length ? data[data.length - 1].ts + 1 : 0;\n let values = data;\n while (values?.length === 2000) {\n values = await this.readOneRawChart(\n this.config.l[i].id,\n this.config.l[i].instance || this.defaultHistory,\n _from,\n to,\n );\n _from = values && values.length ? values[values.length - 1].ts + 1 : 0;\n data = data.concat(values);\n }\n if (values) {\n result[this.config.l[i].id] = values;\n }\n }\n\n return result;\n }\n\n async readData(): Promise {\n if (this.readOnZoomTimeout) {\n clearTimeout(this.readOnZoomTimeout);\n this.readOnZoomTimeout = null;\n }\n\n this.now = Date.now();\n console.log(`Read till ${new Date(this.now).toString()}`);\n this.sessionId = this.sessionId || 0;\n this.sessionId++;\n if (this.sessionId > 0xffffff) {\n this.sessionId = 1;\n }\n\n if (this.config.l) {\n this.reading = true;\n this.onReadingFunc && this.onReadingFunc(true);\n\n // todo\n // if (config.renderer === 'pie' || (config.renderer === 'bar' && config._ids.length > 1)) {\n //\n // seriesData = [[]];\n // for (const j = 0; j < config._ids.length; j++) {\n // readOneValue(config._ids[j], j, function (_id, _index, value) {\n // if (config.renderer === 'pie') {\n // seriesData[0][_index] = {label: config.l[_index].name, data: value};\n // } else {\n // seriesData[0][_index] = [config.l[_index].name, value];\n // }\n // if (_index === config._ids.length - 1) {\n // graphCreate(divId, );\n // }\n // });\n // }\n // } else {\n this.seriesData = [];\n this.barData = [];\n this.barCategories = null;\n\n await this._readData();\n // use units from common axis\n for (let i = 0; i < this.config.l.length; i++) {\n if (this.config.l[i].commonYAxis || this.config.l[i].commonYAxis === 0) {\n this.config.l[i].unit = this.config.l[this.config.l[i].commonYAxis].unit;\n }\n }\n\n await this.readTicks();\n await this.readMarkings();\n /* if (!this.subscribed) {\n this.subscribed = true;\n await this.subscribeAll(this.subscribes));\n } */\n this.reading = false;\n\n this.updateData();\n } else {\n this.onErrorFunc && this.onErrorFunc(new Error('No config provided'));\n this.onReadingFunc && this.onReadingFunc(false);\n this.reading = false;\n }\n }\n}\n\nexport default ChartModel;\n"]} \ No newline at end of file +{"version":3,"file":"ChartModel.js","sourceRoot":"","sources":["../../src/lib/ChartModel.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Connection } from '../types';\nimport type {\n ChartAggregateType,\n ChartMarkConfig,\n ChartType,\n ChartConfig,\n ChartRelativeEnd,\n ChartLineConfig,\n ChartRangeOptions,\n} from '../types';\n\n/*\nfunction deParam(params, coerce) {\n const obj = {};\n const coerceTypes = {'true': true, 'false': false, 'null': null};\n\n // Iterate over all name=value pairs.\n params.replace(/\\+/g, ' ').split('&').forEach(v => {\n const param = v.split('=');\n let key = decodeURIComponent(param[0]);\n let val;\n let i = 0;\n\n // If key is more complex than 'foo', like 'a[]' or 'a[b][c]', split it\n // into its component parts.\n let keys = key.split('][');\n let keysLast = keys.length - 1;\n\n // If the first keys part contains [ and the last ends with ], then []\n // are correctly balanced.\n if (/\\[/.test(keys[0]) && /]$/.test(keys[keysLast])) {\n // Remove the trailing ] from the last keys part.\n keys[keysLast] = keys[keysLast].replace(/]$/, '');\n\n // Split first keys part into two parts on the [ and add them back onto\n // the beginning of the keys array.\n keys = keys.shift().split('[').concat(keys);\n\n keysLast = keys.length - 1;\n } else {\n // Basic 'foo' style key.\n keysLast = 0;\n }\n\n // Are we dealing with a name=value pair, or just a name?\n if (param.length === 2) {\n val = decodeURIComponent(param[1]);\n\n // Coerce values.\n if (coerce) {\n val = val && !isNaN(val) && ((+val + '') === val) ? +val // number\n : val === 'undefined' ? undefined // undefined\n : coerceTypes[val] !== undefined ? coerceTypes[val] // true, false, null\n : val; // string\n }\n\n if (keysLast) {\n let cur = obj;\n // Complex key, build deep object structure based on a few rules:\n // * The 'cur' pointer starts at the object top-level.\n // * [] = array push (n is set to array length), [n] = array if n is\n // numeric, otherwise object.\n // * If at the last keys part, set the value.\n // * For each keys part, if the current level is undefined create an\n // object or array based on the type of the next keys part.\n // * Move the 'cur' pointer to the next level.\n // * Rinse & repeat.\n for (; i <= keysLast; i++) {\n key = keys[i] === '' ? cur.length : keys[i];\n cur = cur[key] = i < keysLast\n ? cur[key] || (keys[i + 1] && isNaN(keys[i + 1]) ? {} : [])\n : val;\n }\n\n } else {\n // Simple key, even simpler rules, since only scalars and shallow\n // arrays are allowed.\n\n if (Object.prototype.toString.call(obj[key]) === '[object Array]') {\n // val is already an array, so push on the next value.\n obj[key].push(val);\n } else if ({}.hasOwnProperty.call(obj, key)) {\n // val isn't an array, but since a second value has been specified,\n // convert val into an array.\n obj[key] = [obj[key], val];\n } else {\n // val is a scalar.\n obj[key] = val;\n }\n }\n } else if (key) {\n // No value was defined, so set something meaningful.\n obj[key] = coerce\n ? undefined\n : '';\n }\n });\n\n return obj;\n}\n*/\n\nexport type EchartsOneValue = { value: [number, number]; exact?: false };\ntype EchartsAnyValue = { value: [number, number | string | boolean]; exact?: false };\n\nexport type ChartLineConfigOld = {\n // @deprecated use chartType\n art?: ChartAggregateType;\n\n id: string;\n unit: string;\n\n offset?: number;\n name?: string;\n aggregate?: ChartAggregateType;\n color?: string;\n thickness?: number;\n shadowsize?: number;\n min?: number | '';\n max?: number | '';\n\n yOffset?: number;\n validTime?: number;\n chartType?: ChartType;\n\n instance?: string;\n};\n\nexport type ChartMarkConfigOld = {\n l: number; // lineId\n v: string | number; // upperValueOrId\n vl: string | number; // lowerValueOrId\n c: string; // color\n f: string | number; // fill\n t: number; // ol - line width\n s: number; // os - shadow\n d: string; // text - descriptions\n p: 'r' | 'l'; // textPosition\n py: number; // textOffset\n fc: string; // textColor\n fs: number; // textSize\n};\n\nexport type ChartConfigOld = {\n // @deprecated use \"l\"\n chartType?: 'auto' | 'bar' | 'polar' | 'line';\n // @deprecated use \"l\"\n instance?: string;\n // @deprecated use \"l\"\n lines?: ChartLineConfigOld[];\n // @deprecated use \"l\"\n _ids?: string;\n // @deprecated use \"l\"\n _colors?: string;\n // @deprecated use \"l\"\n _names?: string;\n // @deprecated use \"l\"\n strokeWidth?: number;\n // @deprecated use \"l\"\n min?: number;\n // @deprecated use \"l\"\n max?: number;\n // @deprecated use \"l\"\n _units?: string;\n // @deprecated use \"marks\"\n m: ChartMarkConfigOld[];\n\n aggregateType: 'step' | 'count';\n aggregateSpan: number;\n relativeEnd: 'now' | 'month' | 'year' | 'minute' | 'hour' | 'weekUsa' | 'weekEurope' | 'week2Usa' | 'week2Europe';\n\n l: ChartLineConfigOld[];\n marks: ChartMarkConfig[];\n\n width: string | number;\n height: string | number;\n timeFormat?: string;\n useComma: string | boolean;\n zoom: string | boolean;\n export: string | boolean;\n grid_hideX: string | boolean;\n grid_hideY: string | boolean;\n hoverDetail: string | boolean;\n noLoader: string | boolean;\n noedit: string | boolean;\n animation: string | number;\n afterComma?: string | number;\n timeType: 'relative' | 'static';\n xLabelShift: number | string;\n xLabelShiftMonth?: boolean;\n xLabelShiftYear?: boolean;\n};\n\nexport type LineSeries = EchartsOneValue[];\nexport type BarSeries = number[];\nexport type BarAndLineSeries = BarSeries | LineSeries;\n\nexport interface SeriesData extends Omit {\n // Name of state, like \"system.adapter.admin.0.memHeap\"\n id?: string;\n\n // All possible names for value (will be converted to val)\n y?: number;\n value?: number;\n data?: number;\n v?: number;\n\n // All possible names for timestamp (will be converted to ts)\n t?: number;\n time?: number;\n date?: number;\n\n /** Interpolated */\n i?: boolean;\n\n ack: boolean;\n\n /** Name of the adapter instance which set the value, e.g. \"system.adapter.web.0\" */\n from?: string;\n}\n\n/**\n * Parse a query string into its parts.\n * Copied from @iobroker/adapter-react-v5/Components/Utils\n */\nfunction parseQuery(query: string): Record {\n query = (query || '').toString().replace(/^\\?/, '');\n const result: Record = {};\n query.split('&').forEach(part => {\n part = part.trim();\n if (part) {\n const parts = part.split('=');\n const attr = decodeURIComponent(parts[0]).trim();\n if (parts.length > 1) {\n result[attr] = decodeURIComponent(parts[1]);\n if (result[attr] === 'true') {\n result[attr] = true;\n } else if (result[attr] === 'false') {\n result[attr] = false;\n } else {\n const f = parseFloat(result[attr] as unknown as string);\n if (f.toString() === result[attr]) {\n result[attr] = f;\n }\n }\n } else {\n result[attr] = true;\n }\n }\n });\n return result;\n}\n\n// Do not forget to change normalizeConfig in src/utils/flotConverter.js too\nfunction normalizeConfig(config: ChartConfigOld): ChartConfig {\n const newConfig: ChartConfig = JSON.parse(JSON.stringify(config));\n\n if (config.lines) {\n newConfig.l = config.lines as ChartLineConfig[];\n // @ts-expect-error delete old structure\n delete newConfig.lines;\n }\n\n if (config._ids) {\n const ids = config._ids ? config._ids.split(';') : [];\n const colors = config._colors ? config._colors.split(';') : [];\n const names = config._names ? config._names.split(';') : [];\n const units = config._units ? config._units.split(';') : [];\n newConfig.l = [];\n for (let i = 0; i < ids.length; i++) {\n newConfig.l.push({\n id: ids[i],\n offset: 0,\n name: names[i] || undefined,\n aggregate: 'none',\n color: colors[i] || 'blue',\n thickness: config.strokeWidth || 1,\n shadowsize: config.strokeWidth || 1,\n min: config.min || undefined,\n max: config.max || undefined,\n unit: units[i] || undefined,\n });\n }\n newConfig.aggregateType = 'step';\n newConfig.aggregateSpan = 300;\n newConfig.relativeEnd = 'now';\n }\n\n // convert art to aggregate (from flot)\n if (config.l) {\n for (let j = 0; j < config.l.length; j++) {\n if (config.l[j].art) {\n config.l[j].aggregate = config.l[j].art;\n delete config.l[j].art;\n }\n if (config.instance && !config.l[j].instance) {\n config.l[j].instance = config.instance;\n }\n config.l[j].yOffset = parseFloat(config.l[j].yOffset as unknown as string) || 0;\n config.l[j].offset = parseFloat(config.l[j].offset as unknown as string) || 0;\n config.l[j].validTime = parseFloat(config.l[j].validTime as unknown as string) || 0;\n config.l[j].chartType = config.l[j].chartType || config.chartType || 'auto';\n }\n }\n\n config.l = config.l || [];\n\n // convert marks\n if (config.m) {\n newConfig.marks = [];\n for (let j = 0; j < config.m.length; j++) {\n newConfig.marks[j] = {\n lineId: config.m[j].l,\n upperValueOrId: config.m[j].v,\n lowerValueOrId: config.m[j].vl,\n color: config.m[j].c,\n fill: parseFloat(config.m[j].f as string),\n ol: config.m[j].t,\n os: config.m[j].s,\n text: config.m[j].d,\n textPosition: config.m[j].p,\n textOffset: config.m[j].py,\n textColor: config.m[j].fc,\n textSize: config.m[j].fs,\n };\n }\n // @ts-expect-error delete old structure\n delete newConfig.m;\n }\n\n newConfig.marks = newConfig.marks || [];\n\n if (!newConfig.l?.length) {\n config.l = config.l || [];\n config.l.push({ id: '', unit: '' });\n }\n\n // Set default values\n newConfig.width = config.width || '100%';\n newConfig.height = config.height || '100%';\n // if width or height does not have any units, add px to it\n if (parseFloat(newConfig.width as string).toString() === newConfig.width.toString().trim()) {\n newConfig.width += 'px';\n }\n if (parseFloat(newConfig.height as string).toString() === newConfig.height.toString().trim()) {\n newConfig.height += 'px';\n }\n\n newConfig.timeFormat = config.timeFormat || '';\n newConfig.useComma = config.useComma === 'true' || config.useComma === true;\n newConfig.zoom = config.zoom === 'true' || config.zoom === true;\n newConfig.export = config.export === 'true' || config.export === true;\n newConfig.grid_hideX = config.grid_hideX === 'true' || config.grid_hideX === true;\n newConfig.grid_hideY = config.grid_hideY === 'true' || config.grid_hideY === true;\n newConfig.hoverDetail = config.hoverDetail === 'true' || config.hoverDetail === true;\n newConfig.noLoader = config.noLoader === 'true' || config.noLoader === true;\n newConfig.noedit = config.noedit === 'true' || config.noedit === true;\n newConfig.animation = parseInt(config.animation as string, 10) || 0;\n newConfig.afterComma = config.afterComma === undefined ? 2 : parseInt(config.afterComma as string, 10);\n newConfig.timeType = config.timeType || 'relative';\n if (config.xLabelShift) {\n if (typeof config.xLabelShift === 'string' && config.xLabelShift.endsWith('m')) {\n newConfig.xLabelShift = parseInt(config.xLabelShift.substring(0, config.xLabelShift.length - 1), 10) || 0;\n newConfig.xLabelShiftMonth = true;\n } else if (typeof config.xLabelShift === 'string' && config.xLabelShift.endsWith('y')) {\n newConfig.xLabelShift = parseInt(config.xLabelShift.substring(0, config.xLabelShift.length - 1), 10) || 0;\n newConfig.xLabelShiftYear = true;\n } else {\n newConfig.xLabelShift = parseInt(config.xLabelShift as string, 10) || 0;\n }\n }\n\n return newConfig;\n}\n\nconst NOT_CONNECTED = 'notConnectedError';\n\nclass ChartModel {\n private readonly socket: Connection;\n private readonly updateTimeout: number;\n private readonly serverSide: boolean;\n // For line charts\n private seriesData: LineSeries[] = [];\n // For Bar or polar charts\n private barData: BarSeries[] = [];\n // Actual values for every line/bar. Only if config.legActual === true\n private readonly actualValues: (number | null | boolean | string)[] = [];\n private ticks: EchartsAnyValue[] = null;\n private reading: boolean = false;\n private subscribes: string[] = [];\n private sessionId: number = 1;\n // update interval by time\n private updateInterval: ReturnType | null = null;\n private presetUpdateTimeout: ReturnType | null = null;\n private readOnZoomTimeout: ReturnType | null = null;\n private subscribed: boolean = false;\n // Is preset subscribed yet or not\n private presetSubscribed: string = '';\n private defaultHistory: string = '';\n private onUpdateFunc:\n | ((\n seriesData: BarAndLineSeries[],\n actualValues?: (number | null | boolean | string)[],\n barCategories?: number[],\n ) => void)\n | null = null;\n private onReadingFunc: ((isReading: boolean) => void) | null = null;\n private onErrorFunc: ((error: Error) => void) | null = null;\n private objectPromises: Record> = {};\n private debug = false;\n private zoomData: { stopLive?: boolean; start?: number; end?: number } | null = null;\n private lastHash: string;\n private onHashInstalled: boolean = false;\n private systemConfig: ioBroker.SystemConfigCommon | null = null;\n private preset?: string;\n private config?: ChartConfig;\n private barCategories?: number[];\n private now: number = Date.now();\n private hash?: {\n range: ChartRangeOptions;\n relativeEnd: ChartRelativeEnd;\n };\n\n private convertFunctions: Record number> = {};\n\n constructor(\n socket: Connection,\n /** Config or preset ID */\n config: ChartConfigOld | string,\n options?: { updateTimeout?: number; serverSide?: boolean; compact?: boolean },\n ) {\n options = { updateTimeout: 300, ...(options || {}) };\n this.socket = socket;\n\n this.updateTimeout = options.updateTimeout || 300; // how often the new data will be requested by zoom and pan\n this.serverSide = options.serverSide || false; // if rendering is serverside\n\n if (!this.serverSide) {\n this.lastHash = window.location.hash;\n\n if (!config) {\n this.onHashInstalled = true;\n window.addEventListener('hashchange', this.onHashChange, false);\n }\n } // else node.js\n\n void this.socket\n .getSystemConfig()\n .catch((e: unknown): null => {\n if ((e as Error).toString().includes(NOT_CONNECTED) && this.onErrorFunc) {\n this.onErrorFunc(e as Error);\n }\n console.error(`Cannot read systemConfig: ${(e as Error).toString()}`);\n return null;\n })\n .then((systemConfig: ioBroker.SystemConfigObject): Promise => {\n this.systemConfig = systemConfig?.common ? systemConfig.common : ({} as ioBroker.SystemConfigCommon);\n this.defaultHistory = this.systemConfig.defaultHistory;\n return this.analyseAndLoadConfig(config);\n });\n }\n\n async analyseAndLoadConfig(config?: string | ChartConfigOld): Promise {\n if (config) {\n if (typeof config === 'string') {\n this.preset = config;\n } else {\n this.config = normalizeConfig(config);\n }\n } else if (!this.serverSide) {\n const query: Record = parseQuery(window.location.search); // Utils.parseQuery\n\n this.debug = query.debug === true || query.debug === 'true' || query.debug === 1 || query.debug === '1';\n\n if (query.preset && typeof query.preset === 'string') {\n this.preset = query.preset;\n } else {\n const hQuery: Record = parseQuery(\n (window.location.hash || '').toString().replace(/^#/, ''),\n ); // Utils.parseQuery\n let config: ChartConfigOld = {} as ChartConfigOld;\n\n if (hQuery.data && typeof hQuery.data === 'string') {\n try {\n config = JSON.parse(hQuery.data);\n } catch {\n // ignore\n }\n }\n if (query.data && typeof query.data === 'string') {\n try {\n Object.assign(config, JSON.parse(query.data), true);\n } catch {\n // ignore\n }\n }\n if (hQuery.preset) {\n this.preset = hQuery.preset as string;\n if (hQuery.range || hQuery.relativeEnd) {\n this.hash = {\n range: hQuery.range as ChartRangeOptions,\n relativeEnd: hQuery.relativeEnd as ChartRelativeEnd,\n };\n }\n } else {\n // search ID and range\n if (hQuery.noLoader !== undefined) {\n config.noLoader =\n hQuery.noLoader === true ||\n hQuery.noLoader === 'true' ||\n hQuery.noLoader === 1 ||\n hQuery.noLoader === '1';\n }\n if (query.noLoader !== undefined) {\n config.noLoader =\n query.noLoader === true ||\n query.noLoader === 'true' ||\n query.noLoader === 1 ||\n query.noLoader === '1';\n }\n this.config = normalizeConfig(config);\n // console.log(this.config);\n }\n }\n }\n\n this.seriesData = [];\n this.barData = [];\n this.barCategories = null;\n\n if (this.updateInterval) {\n clearInterval(this.updateInterval);\n this.updateInterval = null;\n }\n\n if (this.preset) {\n if (\n (!this.preset.startsWith('echarts.') && !this.preset.startsWith('flot.')) ||\n !this.preset.includes('.')\n ) {\n this.preset = `echarts.0.${this.preset}`;\n }\n\n try {\n const obj: ioBroker.ChartObject | null | undefined = (await this.socket.getObject(this.preset)) as\n | ioBroker.ChartObject\n | null\n | undefined;\n if (!obj?.native?.data || obj.type !== 'chart') {\n console.error(`[ChartModel] Invalid object ${this.preset}: ${JSON.stringify(obj)}`);\n return;\n }\n this.config = normalizeConfig(obj.native.data);\n this.config.useComma =\n this.config.useComma === undefined ? this.systemConfig.isFloatComma : this.config.useComma;\n this.config.lang = this.systemConfig.language;\n this.config.live = parseInt(this.config.live as unknown as string, 10) || 0;\n this.config.debug = this.debug;\n this.config.presetId = this.preset;\n\n if (this.hash?.range) {\n if (\n typeof this.hash.range === 'string' &&\n !this.hash.range.includes('y') &&\n !this.hash.range.includes('m')\n ) {\n this.config.range = parseInt(this.hash.range, 10);\n } else {\n this.config.range = this.hash.range;\n }\n }\n if (this.hash?.relativeEnd) {\n this.config.relativeEnd = this.hash.relativeEnd;\n }\n\n await this.readData();\n\n // subscribe on preset changes\n if (!this.serverSide && this.presetSubscribed !== this.preset) {\n this.presetSubscribed &&\n (await this.socket.unsubscribeObject(this.presetSubscribed, this.onPresetUpdate));\n this.presetSubscribed = this.preset;\n await this.socket.subscribeObject(this.preset, this.onPresetUpdate);\n }\n if (!this.serverSide && this.config.live && !this.zoomData?.stopLive) {\n this.updateInterval = setInterval(() => this.readData(), this.config.live * 1000);\n }\n } catch (e) {\n e === NOT_CONNECTED && this.onErrorFunc && this.onErrorFunc(e);\n console.error(`Cannot read \"${this.preset}\": ${e}`);\n }\n } else {\n this.config.useComma =\n this.config.useComma === undefined\n ? this.systemConfig.isFloatComma === true\n : this.config.useComma === true;\n this.config.lang = this.systemConfig.language;\n this.config.live = parseInt(this.config.live as unknown as string, 10) || 0;\n this.config.debug = this.debug;\n await this.readData();\n if (!this.serverSide && this.config.live && !this.zoomData?.stopLive) {\n this.updateInterval = setInterval(() => this.readData(), this.config.live * 1000);\n }\n }\n }\n\n onHashChange = (): void => {\n if (this.lastHash !== window.location.hash) {\n this.lastHash = window.location.hash;\n void this.analyseAndLoadConfig();\n }\n };\n\n onPresetUpdate = (id: string, obj: ioBroker.Object | null | undefined): void => {\n if (id !== this.preset) {\n return;\n }\n if (this.presetUpdateTimeout) {\n clearTimeout(this.presetUpdateTimeout);\n }\n this.presetUpdateTimeout = setTimeout(() => {\n this.presetUpdateTimeout = null;\n let newConfig;\n if (obj) {\n newConfig = normalizeConfig(obj.native.data);\n } else {\n newConfig = normalizeConfig({} as ChartConfigOld);\n }\n if (JSON.stringify(newConfig) !== JSON.stringify(this.config)) {\n this.config = newConfig;\n this.updateInterval && clearInterval(this.updateInterval);\n this.updateInterval = null;\n\n if (this.config.live && (!this.zoomData || !this.zoomData.stopLive)) {\n this.updateInterval = setInterval(() => this.readData(), this.config.live * 1000);\n }\n\n void this.readData();\n }\n }, 100);\n };\n\n setNewRange(options?: { stopLive?: boolean; start?: number; end?: number }): void {\n if (this.debug) {\n console.log(`[ChartModel] [${new Date().toISOString()}] setNewRange: ${JSON.stringify(options)}`);\n }\n\n if (!options) {\n if (this.zoomData) {\n this.zoomData = null;\n this.readOnZoomTimeout && clearTimeout(this.readOnZoomTimeout);\n this.readOnZoomTimeout = setTimeout(() => {\n this.readOnZoomTimeout = null;\n if (this.config.live && (!this.zoomData || !this.zoomData.stopLive)) {\n console.log('Restore update');\n this.updateInterval && clearInterval(this.updateInterval);\n this.updateInterval = setInterval(() => this.readData(), this.config.live * 1000);\n }\n void this.readData();\n }, this.updateTimeout);\n }\n } else if (options.stopLive) {\n this.zoomData = this.zoomData || {};\n this.zoomData.stopLive = true;\n if (this.updateInterval) {\n console.log('Clear interval');\n clearInterval(this.updateInterval);\n this.updateInterval = null;\n }\n } else {\n // options = {start, end}\n const stopLive = this.zoomData?.stopLive;\n if (stopLive) {\n delete this.zoomData.stopLive;\n }\n if (!this.zoomData || JSON.stringify(this.zoomData) !== JSON.stringify(options)) {\n this.zoomData = options;\n if (stopLive) {\n this.zoomData.stopLive = true;\n }\n this.readOnZoomTimeout && clearTimeout(this.readOnZoomTimeout);\n this.readOnZoomTimeout = setTimeout(() => {\n this.readOnZoomTimeout = null;\n void this.readData();\n }, this.updateTimeout);\n } else if (stopLive) {\n this.zoomData.stopLive = true;\n }\n }\n }\n\n destroy(): void {\n if (this.subscribed) {\n if (!this.serverSide) {\n this.subscribes.forEach(id => this.socket.unsubscribeState(id, this.onStateChange));\n }\n this.subscribes = [];\n this.subscribed = false;\n }\n if (this.readOnZoomTimeout) {\n clearTimeout(this.readOnZoomTimeout);\n this.readOnZoomTimeout = null;\n }\n if (this.presetUpdateTimeout) {\n clearTimeout(this.presetUpdateTimeout);\n this.presetUpdateTimeout = null;\n }\n if (this.presetSubscribed) {\n if (!this.serverSide) {\n void this.socket.unsubscribeObject(this.presetSubscribed, this.onPresetUpdate);\n }\n this.presetSubscribed = null;\n }\n if (this.updateInterval) {\n clearInterval(this.updateInterval);\n this.updateInterval = null;\n }\n if (!this.serverSide) {\n if (this.onHashInstalled) {\n window.removeEventListener('hashchange', this.onHashChange, false);\n this.onHashInstalled = false;\n }\n }\n }\n\n onUpdate(\n cb:\n | ((\n seriesData: BarAndLineSeries[],\n actualValues?: (number | null | boolean | string)[],\n barCategories?: number[],\n ) => void)\n | null,\n ): void {\n this.onUpdateFunc = cb;\n }\n\n onReading(cb: ((isReading: boolean) => void) | null): void {\n this.onReadingFunc = cb;\n }\n\n onError(cb: ((err: Error) => void) | null): void {\n this.onErrorFunc = cb;\n }\n\n getConfig(): ChartConfig {\n return this.config;\n }\n\n getSystemConfig(): ioBroker.SystemConfigCommon {\n return this.systemConfig;\n }\n\n setConfig(config: ChartConfig | ChartConfigOld): void {\n void this.analyseAndLoadConfig(config as ChartConfigOld);\n }\n\n increaseRegionForBar(start: number | Date, end: number | Date, option: ioBroker.GetHistoryOptions): void {\n this.config.aggregateBar = parseInt(this.config.aggregateBar as unknown as string, 10) || 0;\n let endTs = typeof end === 'number' ? end : end.getTime();\n let startTs = typeof start === 'number' ? start : start.getTime();\n\n // calculate count of intervals\n if (!this.config.aggregateBar) {\n if (endTs - startTs <= 3600000 * 12) {\n // less than 12 hours => 15 minutes\n this.config.aggregateBar = 15;\n } else if (endTs - startTs >= 3600000 * 24 * 60) {\n // more than 60 days => 1 month\n this.config.aggregateBar = 43200;\n } else if (endTs - startTs > 3600000 * 24 * 3) {\n // more than 3 days => 1 day\n this.config.aggregateBar = 1440;\n } else {\n // if (endTs - startTs > 3600000 * 12) { // more than 12 hours => 60 minutes\n this.config.aggregateBar = 60;\n }\n }\n\n option = option || ({} as ioBroker.GetHistoryOptions);\n\n if (this.config.aggregateBar === 15) {\n // align start and stop to 15 minutes\n const startDate = new Date(startTs);\n startDate.setMinutes(Math.floor(startDate.getMinutes() / 15) * 15);\n if (this.config.postProcessing === 'diff') {\n startDate.setMinutes(startDate.getMinutes() - 15);\n }\n startDate.setSeconds(0);\n startDate.setMilliseconds(0);\n startTs = startDate.getTime();\n\n const endDate = new Date(endTs);\n endDate.setMinutes(Math.ceil(endDate.getMinutes() / 15) * 15);\n endDate.setSeconds(0);\n endDate.setMilliseconds(0);\n endTs = endDate.getTime();\n option.count = Math.round((endTs - startTs) / 900000);\n } else if (this.config.aggregateBar === 60) {\n // align start and stop to 1 hour\n const startDate = new Date(startTs);\n startDate.setMinutes(0);\n startDate.setSeconds(0);\n startDate.setMilliseconds(0);\n if (this.config.postProcessing === 'diff') {\n startDate.setMinutes(startDate.getMinutes() - 60);\n }\n startTs = startDate.getTime();\n\n const endDate = new Date(endTs);\n endDate.setMinutes(60);\n endDate.setSeconds(0);\n endDate.setMilliseconds(0);\n endTs = endDate.getTime();\n option.count = Math.round((endTs - startTs) / 3600000);\n } else if (this.config.aggregateBar === 1440) {\n // align start and stop to 1 day\n const startDate = new Date(startTs);\n startDate.setHours(0);\n startDate.setMinutes(0);\n startDate.setSeconds(0);\n startDate.setMilliseconds(0);\n if (this.config.postProcessing === 'diff') {\n startDate.setDate(startDate.getDate() - 1);\n }\n startTs = startDate.getTime();\n\n const endDate = new Date(endTs);\n endDate.setDate(endDate.getDate() + 1);\n endDate.setHours(0);\n endDate.setMinutes(0);\n endDate.setSeconds(0);\n endDate.setMilliseconds(0);\n endTs = endDate.getTime();\n option.count = Math.round((endTs - startTs) / 86400000);\n } else if (this.config.aggregateBar === 43200) {\n // align start and stop to 1 month\n const startDate = new Date(startTs);\n startDate.setDate(1);\n startDate.setHours(0);\n startDate.setMinutes(0);\n startDate.setSeconds(0);\n startDate.setMilliseconds(0);\n if (this.config.postProcessing === 'diff') {\n startDate.setDate(startDate.getDate() - 30);\n }\n startTs = startDate.getTime();\n\n const endDate = new Date(endTs);\n endDate.setDate(1);\n endDate.setHours(0);\n endDate.setMinutes(0);\n endDate.setMonth(endDate.getMonth() + 1);\n endDate.setSeconds(0);\n endDate.setMilliseconds(0);\n endTs = endDate.getTime();\n option.count = Math.round((endTs - startTs) / (86400000 * 30)); // todo it must be variable as every month has different count of days\n }\n\n option.start = startTs;\n option.end = endTs;\n }\n\n getStartStop(index: number, step?: number): ioBroker.GetHistoryOptions {\n let option: ioBroker.GetHistoryOptions;\n let endTs: number;\n let startTs: number;\n let _nowTs: number;\n this.config.l[index].offset = this.config.l[index].offset || 0;\n\n // check config range\n if (typeof this.config.range === 'string' && this.config.range.includes('m') && this.config.l.length > 1) {\n const monthRange = parseInt(this.config.range as string, 10) || 1;\n for (let a = 0; a < this.config.l.length; a++) {\n if (this.config.l[a].offset) {\n // Check what the month has first index\n _nowTs = ChartModel.addTime(this.now, this.config.l[a].offset);\n const minusMonth = new Date(_nowTs);\n minusMonth.setMonth(minusMonth.getMonth() - monthRange);\n this.config.range = Math.floor((_nowTs - minusMonth.getTime()) / 60000);\n break;\n }\n }\n } else if (\n typeof this.config.range === 'string' &&\n this.config.range.includes('y') &&\n this.config.l.length > 1\n ) {\n const yearRange = parseInt(this.config.range as string, 10) || 1;\n for (let a = 0; a < this.config.l.length; a++) {\n if (this.config.l[a].offset) {\n // Check what the month has first index\n _nowTs = ChartModel.addTime(this.now, this.config.l[a].offset);\n const minusYear = new Date(_nowTs);\n minusYear.setFullYear(minusYear.getFullYear() - yearRange);\n this.config.range = Math.floor((_nowTs - minusYear.getTime()) / 60000);\n break;\n }\n }\n }\n\n // todo: What about year?\n\n if (!step) {\n if (this.zoomData) {\n startTs = this.zoomData.start;\n endTs = this.zoomData.end;\n } else if (this.config.timeType === 'static') {\n let startTime: [number, number];\n let endTime: [number, number];\n if (this.config.start_time !== undefined) {\n startTime = this.config.start_time.split(':').map(Number) as [number, number];\n } else {\n startTime = [0, 0];\n }\n\n if (this.config.end_time !== undefined) {\n endTime = this.config.end_time.split(':').map(Number) as [number, number];\n } else {\n endTime = [24, 0];\n }\n\n // offset is in seconds\n const startDate = new Date(this.config.start).setHours(startTime[0], startTime[1]);\n const endDate = new Date(this.config.end).setHours(endTime[0], endTime[1]);\n\n startTs = ChartModel.addTime(startDate, this.config.l[index].offset);\n endTs = ChartModel.addTime(endDate, this.config.l[index].offset);\n } else {\n this.config.relativeEnd = this.config.relativeEnd || 'now';\n let _nowDate: Date;\n\n if (this.config.relativeEnd === 'now') {\n _nowDate = new Date(this.now);\n } else if (this.config.relativeEnd.includes('minute')) {\n const minutes = parseInt(this.config.relativeEnd, 10) || 1;\n _nowDate = new Date(this.now);\n _nowDate.setMinutes(Math.floor(_nowDate.getMinutes() / minutes) * minutes + minutes);\n _nowDate.setSeconds(0);\n _nowDate.setMilliseconds(0);\n } else if (this.config.relativeEnd.includes('hour')) {\n const hours = parseInt(this.config.relativeEnd, 10) || 1;\n _nowDate = new Date(this.now);\n _nowDate.setHours(Math.floor(_nowDate.getHours() / hours) * hours + hours);\n _nowDate.setMinutes(0);\n _nowDate.setSeconds(0);\n _nowDate.setMilliseconds(0);\n } else if (this.config.relativeEnd === 'today') {\n _nowDate = new Date(this.now);\n _nowDate.setDate(_nowDate.getDate() + 1);\n _nowDate.setHours(0);\n _nowDate.setMinutes(0);\n _nowDate.setSeconds(0);\n _nowDate.setMilliseconds(0);\n } else if (this.config.relativeEnd === 'weekUsa') {\n // const week = parseInt(config.relativeEnd, 10) || 1;\n _nowDate = new Date(this.now);\n _nowDate.setDate(_nowDate.getDate() - _nowDate.getDay() + 7);\n _nowDate.setHours(0);\n _nowDate.setMinutes(0);\n _nowDate.setSeconds(0);\n _nowDate.setMilliseconds(0);\n } else if (this.config.relativeEnd === 'weekEurope') {\n // const _week = parseInt(config.relativeEnd, 10) || 1;\n _nowDate = new Date(this.now);\n // If\n if (_nowDate.getDay() === 0) {\n _nowDate.setDate(_nowDate.getDate() + 1);\n } else {\n _nowDate.setDate(_nowDate.getDate() - _nowDate.getDay() + 8);\n }\n _nowDate.setHours(0);\n _nowDate.setMinutes(0);\n _nowDate.setSeconds(0);\n _nowDate.setMilliseconds(0);\n } else if (this.config.relativeEnd === 'week2Usa') {\n // const week = parseInt(config.relativeEnd, 10) || 1;\n _nowDate = new Date(this.now);\n _nowDate.setDate(_nowDate.getDate() - _nowDate.getDay() + 7);\n _nowDate.setDate(_nowDate.getDate() - 7);\n _nowDate.setHours(0);\n _nowDate.setMinutes(0);\n _nowDate.setSeconds(0);\n _nowDate.setMilliseconds(0);\n } else if (this.config.relativeEnd === 'week2Europe') {\n // const _week = parseInt(config.relativeEnd, 10) || 1;\n _nowDate = new Date(this.now);\n // If\n if (_nowDate.getDay() === 0) {\n _nowDate.setDate(_nowDate.getDate() + 1);\n } else {\n _nowDate.setDate(_nowDate.getDate() - _nowDate.getDay() + 8);\n }\n _nowDate.setDate(_nowDate.getDate() - 7);\n _nowDate.setHours(0);\n _nowDate.setMinutes(0);\n _nowDate.setSeconds(0);\n _nowDate.setMilliseconds(0);\n } else if (this.config.relativeEnd === 'month') {\n _nowDate = new Date(this.now);\n _nowDate.setMonth(_nowDate.getMonth() + 1);\n _nowDate.setDate(1);\n _nowDate.setHours(0);\n _nowDate.setMinutes(0);\n _nowDate.setSeconds(0);\n _nowDate.setMilliseconds(0);\n } else if (this.config.relativeEnd === 'year') {\n _nowDate = new Date(this.now);\n _nowDate.setFullYear(_nowDate.getFullYear() + 1);\n _nowDate.setMonth(0);\n _nowDate.setDate(1);\n _nowDate.setHours(0);\n _nowDate.setMinutes(0);\n _nowDate.setSeconds(0);\n _nowDate.setMilliseconds(0);\n }\n\n this.config.range = this.config.range || 30;\n\n endTs = ChartModel.addTime(_nowDate, this.config.l[index].offset);\n startTs = ChartModel.addTime(endTs, this.config.range, true);\n }\n\n const aggregate = this.config.l[index].aggregate || this.config.aggregate;\n if (aggregate === 'current') {\n throw new Error('Cannot use \"current\" aggregate for start/stop');\n }\n\n option = {\n start: startTs,\n end: endTs,\n ignoreNull:\n this.config.l[index].ignoreNull === undefined\n ? this.config.ignoreNull\n : this.config.l[index].ignoreNull,\n aggregate: aggregate || 'minmax',\n from: false,\n ack: false,\n q: false,\n addID: false,\n } as ioBroker.GetHistoryOptions;\n\n if (this.config.l[index].chartType === 'bar' || this.config.l[index].chartType === 'polar') {\n this.increaseRegionForBar(startTs, endTs, option);\n } else if (this.config.aggregateType === 'step') {\n option.step = this.config.aggregateSpan * 1000;\n } else if (this.config.aggregateType === 'count') {\n option.count = this.config.aggregateSpan || 300;\n }\n\n this.config.start = startTs;\n this.config.end = endTs;\n\n return option;\n }\n if (this.zoomData) {\n startTs = this.zoomData.start;\n endTs = this.zoomData.end;\n } else {\n endTs = ChartModel.addTime(this.now, this.config.l[index].offset);\n startTs = endTs - step;\n }\n\n option = {\n start: startTs,\n end: endTs,\n ignoreNull:\n this.config.l[index].ignoreNull === undefined\n ? this.config.ignoreNull\n : this.config.l[index].ignoreNull,\n aggregate:\n (this.config.l[index].aggregate as ioBroker.GetHistoryOptions['aggregate']) ||\n (this.config.aggregate as ioBroker.GetHistoryOptions['aggregate']) ||\n 'minmax',\n count: 1,\n from: false,\n ack: false,\n q: false,\n addId: false,\n };\n\n this.config.start = ChartModel.addTime(endTs, this.config.range, true);\n this.config.end = endTs;\n\n return option;\n }\n\n static postProcessing(\n series: BarSeries[],\n categories: number[],\n aggregate: ChartAggregateType,\n postProcessingMethod?: 'diff' | '',\n ): BarSeries {\n const barSeries: BarSeries = [];\n\n for (let i = 0; i < series.length; i++) {\n const interval = series[i];\n if (!interval.length) {\n barSeries[i] = null;\n } else if (interval.length === 1) {\n // sum all values\n barSeries[i] = interval[0];\n } else if (aggregate === 'average') {\n const sum = interval.reduce((a, b) => a + b, 0);\n barSeries[i] = sum / interval.length;\n } else if (aggregate === 'min') {\n let min = interval[0];\n for (let j = 1; j < interval.length; j++) {\n if (interval[j] < min) {\n min = interval[j];\n }\n }\n barSeries[i] = min;\n } else if (aggregate === 'max') {\n let max = interval[0];\n for (let j = 1; j < interval.length; j++) {\n if (interval[j] > max) {\n max = interval[j];\n }\n }\n barSeries[i] = max;\n } else if (aggregate === 'total') {\n barSeries[i] = interval.reduce((a, b) => a + b, 0);\n } else {\n barSeries[i] = interval[interval.length - 1];\n }\n }\n\n if (postProcessingMethod === 'diff') {\n for (let i = series.length - 1; i > 0; i--) {\n if (barSeries[i - 1] !== null && barSeries[i] !== null) {\n barSeries[i] -= barSeries[i - 1];\n } else {\n barSeries[i] = 0;\n }\n }\n barSeries.splice(0, 1);\n categories.splice(0, 1);\n }\n\n for (let i = 0; i < series.length; i++) {\n console.log(`${categories[i]}: ${barSeries[i]}`);\n }\n return barSeries;\n }\n\n static processOneValue(\n value: ioBroker.StateValue | undefined,\n convertFunc: ((val: number) => number) | undefined,\n yOffset: number,\n ): number | null {\n // Convert boolean values to numbers\n if (value === 'true' || value === true) {\n value = 1;\n } else if (value === 'false' || value === false) {\n value = 0;\n } else if (typeof value === 'string') {\n value = parseFloat(value as unknown as string);\n }\n\n if (convertFunc) {\n return value !== null ? convertFunc(value + yOffset) : null;\n }\n\n return value !== null ? value + yOffset : null;\n }\n\n processRawData(\n _id: string,\n line: ChartLineConfig,\n values: SeriesData[],\n option?: ioBroker.GetHistoryOptions,\n ): { seriesData?: LineSeries; barData?: BarSeries } {\n if (!option) {\n option = {\n start: values[0].ts,\n end: values[values.length - 1].ts,\n };\n\n if (line.chartType === 'bar' || line.chartType === 'polar') {\n this.increaseRegionForBar(option.start, option.end, option);\n }\n }\n\n const yOffset: number = line.yOffset || 0;\n\n const seriesData: LineSeries = [];\n // Collects for every time interval the values. Later it will be combined to number[]\n const _barSeries: number[][] = [];\n let barCategories = this.barCategories;\n\n // fill categories for bars\n if (line.chartType === 'bar') {\n if (!barCategories) {\n barCategories = [];\n this.barCategories = barCategories;\n const start = new Date(option.start);\n const end: number = typeof option.end === 'number' ? option.end : (option.end as Date).getTime();\n while (start.getTime() <= end) {\n barCategories.push(start.getTime());\n start.setMinutes(start.getMinutes() + this.config.aggregateBar);\n }\n }\n\n barCategories.forEach(() => _barSeries.push([]));\n }\n\n let convertFunc: ((val: number) => number) | undefined;\n if (line.convert?.trim()) {\n if (!this.convertFunctions[line.convert.trim()]) {\n let convert = line.convert.trim();\n if (!convert.includes('return')) {\n convert = `return ${convert}`;\n }\n try {\n convertFunc = new Function('val', convert) as (val: number) => number;\n } catch (e) {\n console.error(`[ChartModel] Cannot parse convert function: ${e}`);\n }\n }\n convertFunc = this.convertFunctions[line.convert.trim()];\n }\n\n for (let i = 0; i < values.length; i++) {\n const value: number | null = ChartModel.processOneValue(values[i].val, convertFunc, yOffset);\n\n if (line.chartType === 'bar') {\n // find category\n for (let c = 0; c < barCategories.length; c++) {\n if (\n barCategories[c] >= values[i].ts &&\n values[i].ts < barCategories[c] + this.config.aggregateBar * 60000\n ) {\n _barSeries[c].push(value);\n break;\n }\n }\n } else if (line.chartType !== 'polar') {\n if (line.noFuture && values[i].ts > this.now) {\n // todo: interpolate value\n break;\n }\n\n const dp: EchartsOneValue = { value: [values[i].ts, value] };\n\n // If value was interpolated by backend\n if (values[i].i) {\n dp.exact = false;\n }\n seriesData.push(dp);\n }\n }\n\n // add start and end\n if (line.chartType !== 'bar' && line.chartType !== 'polar') {\n let end: number = typeof option.end === 'number' ? option.end : (option.end as Date).getTime();\n const start: number = typeof option.start === 'number' ? option.start : (option.start as Date).getTime();\n // End cannot be in the future\n if (end > this.now) {\n end = this.now;\n }\n if (seriesData.length) {\n if (seriesData[0].value[0] > start) {\n seriesData.unshift({ value: [start, null], exact: false });\n }\n const last = seriesData[seriesData.length - 1];\n if (last.value[0] < end) {\n if (line.validTime) {\n // If the last value is not older than X seconds, assume it is still the same\n if (end - line.validTime * 1000 <= last.value[0]) {\n seriesData.push({ value: [end, last.value[1]], exact: false });\n } else {\n seriesData.push({ value: [end, null], exact: false });\n }\n } else {\n seriesData.push({ value: [end, null], exact: false });\n }\n }\n } else {\n seriesData.push({ value: [start, null], exact: false });\n seriesData.push({ value: [end, null], exact: false });\n }\n\n // TODO: May be not required?\n seriesData.sort((a, b) => (a.value[0] > b.value[0] ? 1 : a.value[0] < b.value[0] ? -1 : 0));\n\n // The next line is not required, as it is already done at the start\n return { seriesData };\n }\n\n // it is not the series, it is bar data\n const barData = ChartModel.postProcessing(_barSeries, barCategories, line.aggregate, line.postProcessing);\n return { barData };\n }\n\n async readOneChart(id: string, instance: string, index: number): Promise {\n const lineConfig = this.config.l[index];\n if (instance === 'json') {\n const state = await this.socket.getState(id);\n try {\n const valuesAny: SeriesData[] | { history: SeriesData[] } = JSON.parse(state?.val as string);\n let values: SeriesData[];\n if ((valuesAny as { history: SeriesData[] }).history) {\n values = (valuesAny as { history: SeriesData[] }).history;\n } else {\n values = valuesAny as SeriesData[];\n }\n if (!Array.isArray(values)) {\n values = [];\n console.warn('JSON is not an array');\n }\n\n values = values.filter(v => v);\n\n // convert alternative names to {ts, val}. Possible names for ts: t, time. Possible names for val: y, value\n if (values[0]) {\n const keys = Object.keys(values[0]);\n if (!keys.includes('val') || !keys.includes('ts')) {\n // If a format is [{t: 123, y: 1}, {t: 124, y: 2}] (e.g. from pvsolar\n if (keys.includes('y') && keys.includes('t')) {\n values = values.map(v => ({ ts: v.t, val: v.y }) as SeriesData);\n } else {\n if (keys.includes('y')) {\n values.forEach(v => (v.val = v.y));\n } else if (keys.includes('value')) {\n values.forEach(v => (v.val = v.value));\n } else if (keys.includes('data')) {\n values.forEach(v => (v.val = v.data));\n } else if (keys.includes('v')) {\n values.forEach(v => (v.val = v.v));\n }\n\n if (keys.includes('t')) {\n values.forEach(v => (v.ts = v.t));\n } else if (keys.includes('time')) {\n values.forEach(v => (v.ts = v.time));\n } else if (keys.includes('date')) {\n values.forEach(v => (v.ts = v.date));\n }\n }\n }\n\n // convert ts to number\n if (values[0].ts) {\n if (typeof values[0].ts === 'string' && window.isFinite(values[0].ts)) {\n values.forEach(v => (v.ts = parseInt(v.ts as unknown as string, 10)));\n } else if (\n typeof values[0].ts === 'string' &&\n new Date(values[0].ts).toString() !== 'Invalid Date'\n ) {\n values.forEach(v => (v.ts = new Date(v.ts).getTime()));\n }\n // no else\n if (typeof values[0].ts === 'number' && values[0].ts < 946681200000) {\n // new Date(2000,0,1).getTime() === 946681200000\n values.forEach(v => (v.ts *= 1000));\n }\n }\n }\n\n values.sort((a, b) => (a.ts - b.ts ? -1 : a.ts < b.ts ? 1 : 0));\n\n const result = this.processRawData(id, lineConfig, values);\n if (result.barData) {\n this.barData[index] = result.barData;\n } else {\n this.seriesData[index] = result.seriesData;\n }\n } catch (e) {\n console.error(`[ChartModel] Cannot parse values in JSON: ${e}`);\n }\n\n if (!this.serverSide && !this.subscribes.includes(id)) {\n this.subscribes.push(id);\n this.subscribed = true;\n void this.socket.subscribeState(id, this.onStateChange);\n }\n } else {\n const option = this.getStartStop(index);\n option.instance = instance;\n option.sessionId = this.sessionId;\n\n // console.log(JSON.stringify(option));\n if (this.debug) {\n console.log(`[ChartModel] ${new Date(option.start).toString()} - ${new Date(option.end).toString()}`);\n }\n\n if (lineConfig.aggregate !== 'current') {\n try {\n const res = await this.socket.getHistoryEx(id, option);\n if (this.sessionId && res.sessionId && res.sessionId !== this.sessionId) {\n console.warn(\n `[ChartModel] Ignore request with sessionId=${res.sessionId}, actual is ${this.sessionId}`,\n );\n return;\n }\n\n if (res?.values) {\n // option.ignoreNull = (config.l[index].ignoreNull === undefined) ? (config.ignoreNull === 'true' || config.ignoreNull === true) : (config.l[index].ignoreNull === 'true' || config.l[index].ignoreNull === true);\n const result = this.processRawData(id, lineConfig, res.values as SeriesData[], option);\n\n if (result.barData) {\n this.barData[index] = result.barData;\n } else {\n this.seriesData[index] = result.seriesData;\n }\n // free memory\n res.values = null;\n }\n } catch (err) {\n if (err === NOT_CONNECTED && this.onErrorFunc) {\n this.onErrorFunc(err);\n }\n console.error(`[ChartModel] ${err}`);\n }\n }\n\n if (\n (this.config.legActual && lineConfig.chartType !== 'bar' && lineConfig.chartType !== 'polar') ||\n lineConfig.aggregate === 'current'\n ) {\n // read current value\n try {\n const state = await this.socket.getState(id);\n this.actualValues[index] = ChartModel.processOneValue(\n state.val,\n this.convertFunctions[lineConfig.convert],\n lineConfig.yOffset || 0,\n );\n } catch (e) {\n console.warn(`Cannot read last value of \"${id}\": ${e}`);\n this.actualValues[index] = null;\n }\n\n if (!this.serverSide && !this.subscribes.includes(id)) {\n this.subscribes.push(id);\n this.subscribed = true;\n void this.socket.subscribeState(id, this.onStateChange);\n }\n }\n }\n }\n\n async readOneRawChart(id: string, instance: string, start: number, end: number): Promise {\n if (instance === 'json') {\n const state: ioBroker.State | null | undefined = await this.socket.getState(id);\n try {\n const valuesJson: SeriesData[] | { history: SeriesData[] } = JSON.parse(state?.val as string);\n let values: SeriesData[];\n if ((valuesJson as { history: SeriesData[] }).history) {\n values = (valuesJson as { history: SeriesData[] }).history;\n } else {\n values = valuesJson as SeriesData[];\n }\n\n // convert alternative names to {ts, val}. Possible names for ts: t, time. Possible names for val: y, value\n if (values[0]) {\n const keys = Object.keys(values[0]);\n if (!keys.includes('val') || !keys.includes('ts')) {\n // If format is [{t: 123, y: 1}, {t: 124, y: 2}] (e.g. from pvsolar\n if (keys.includes('y') && keys.includes('t')) {\n values = values.map(v => ({ ts: v.t, val: v.y }) as SeriesData);\n } else {\n if (keys.includes('y')) {\n values.forEach(v => (v.val = v.y));\n } else if (keys.includes('value')) {\n values.forEach(v => (v.val = v.value));\n } else if (keys.includes('data')) {\n values.forEach(v => (v.val = v.data));\n } else if (keys.includes('v')) {\n values.forEach(v => (v.val = v.v));\n }\n\n if (keys.includes('t')) {\n values.forEach(v => (v.ts = v.t));\n } else if (keys.includes('time')) {\n values.forEach(v => (v.ts = v.time));\n } else if (keys.includes('date')) {\n values.forEach(v => (v.ts = v.date));\n }\n }\n }\n\n // convert ts to number\n if (values[0].ts) {\n if (typeof values[0].ts === 'string' && window.isFinite(values[0].ts)) {\n values.forEach(v => (v.ts = parseInt(v.ts as unknown as string, 10)));\n } else if (\n typeof values[0].ts === 'string' &&\n new Date(values[0].ts).toString() !== 'Invalid Date'\n ) {\n values.forEach(v => (v.ts = new Date(v.ts).getTime()));\n }\n // no else\n if (typeof values[0].ts === 'number' && values[0].ts < 946681200000) {\n // new Date(2000,0,1).getTime() === 946681200000\n values.forEach(v => (v.ts *= 1000));\n }\n }\n }\n\n if (!Array.isArray(values)) {\n values = [];\n console.warn('JSON is not an array');\n }\n values.sort((a, b) => (a.ts - b.ts ? -1 : a.ts < b.ts ? 1 : 0));\n\n return values;\n } catch (e) {\n console.error(`[ChartModel] Cannot parse values in JSON: ${e}`);\n }\n } else {\n const option: ioBroker.GetHistoryOptions = {\n start,\n end,\n ignoreNull: false,\n aggregate: 'none',\n count: 2000,\n from: false,\n ack: false,\n q: false,\n addId: false,\n };\n\n option.instance = instance;\n option.sessionId = this.sessionId;\n\n if (this.debug) {\n console.log(`[ChartModel] ${new Date(option.start).toString()} - ${new Date(option.end).toString()}`);\n }\n\n try {\n const res = await this.socket.getHistoryEx(id, option);\n if (this.sessionId && res.sessionId && res.sessionId !== this.sessionId) {\n console.warn(\n `[ChartModel] Ignore request with sessionId=${res.sessionId}, actual is ${this.sessionId}`,\n );\n return null;\n }\n\n return res?.values;\n } catch (err) {\n err === NOT_CONNECTED && this.onErrorFunc && this.onErrorFunc(err);\n err && console.error(`[ChartModel] ${err}`);\n }\n }\n\n return null;\n }\n\n _readObject(id: string): Promise {\n if (!(this.objectPromises[id] instanceof Promise)) {\n this.objectPromises[id] = (this.socket.getObject(id) as Promise).catch(\n (e: unknown): null => {\n if ((e as Error).toString().includes(NOT_CONNECTED) && this.onErrorFunc) {\n this.onErrorFunc(e as Error);\n }\n console.error(`Cannot read \"${id}\": ${(e as Error).toString()}`);\n return null;\n },\n );\n }\n\n return this.objectPromises[id];\n }\n\n async _readOneLine(index: number): Promise {\n const lineConfig = this.config.l[index];\n try {\n const obj = await this._readObject(lineConfig.id);\n\n if (obj?.common) {\n const name: ioBroker.StringOrTranslated = lineConfig.name || obj.common.name;\n\n lineConfig.name =\n name && typeof name === 'object'\n ? name[this.systemConfig.language] || name.en || lineConfig.id\n : (name as string) || '';\n\n lineConfig.unit = lineConfig.unit || (obj.common.unit ? obj.common.unit.replace('�', '°') : '');\n\n lineConfig.type = obj.common.type;\n\n if (lineConfig.chartType === 'auto') {\n lineConfig.chartType = obj.common.type === 'boolean' ? 'steps' : 'line';\n lineConfig.aggregate = obj.common.type === 'boolean' ? 'none' : 'minmax';\n }\n\n // ignore unit if true/false text set\n if (lineConfig.unit && (lineConfig.falseText || lineConfig.trueText)) {\n delete lineConfig.unit;\n }\n\n // remember enum states\n if (\n obj.common.states &&\n !Array.isArray(obj.common.states) &&\n lineConfig.states !== false &&\n !obj.common.unit\n ) {\n if (lineConfig.states) {\n lineConfig.states = Object.assign(obj.common.states, lineConfig.states);\n } else {\n lineConfig.states = obj.common.states;\n }\n\n // if the states have true, false as text => convert it to 1, 0\n if (Object.keys(lineConfig.states).find(key => key === 'true' || key === 'false')) {\n const states: Record = {};\n Object.keys(lineConfig.states).forEach(key => {\n states[key === 'true' ? 1 : key === 'false' ? 0 : key] = (\n lineConfig.states as Record\n )[key];\n });\n lineConfig.states = states;\n }\n\n // ignore unit for enums text set\n if (lineConfig.unit && lineConfig.states) {\n delete lineConfig.unit;\n }\n }\n\n // set YAxis to 'off' if commonYAxis is set\n if (lineConfig.commonYAxis || lineConfig.commonYAxis === 0) {\n lineConfig.yaxe = 'off';\n }\n }\n } catch (e) {\n e === NOT_CONNECTED && this.onErrorFunc && this.onErrorFunc(e);\n console.error(`[ChartModel] Cannot read object ${lineConfig.id}: ${e}`);\n }\n\n lineConfig.name = lineConfig.name || lineConfig.id || '';\n lineConfig.unit = lineConfig.unit || '';\n if (lineConfig.chartType === 'auto') {\n lineConfig.chartType = 'line';\n lineConfig.aggregate = 'minmax';\n }\n\n await this.readOneChart(lineConfig.id, lineConfig.instance || this.defaultHistory, index);\n }\n\n async _readData(): Promise {\n for (let j = 0; j < this.config.l.length; j++) {\n if (this.config.l[j]) {\n this.seriesData.push([]);\n }\n if (this.config.l[j]?.id) {\n await this._readOneLine(j);\n }\n }\n }\n\n async readTicks(): Promise {\n if (this.config.ticks) {\n const index = 0;\n const option: ioBroker.GetHistoryOptions = JSON.parse(JSON.stringify(this.getStartStop(index)));\n option.instance = this.config.l[index].instance || this.defaultHistory;\n option.sessionId = this.sessionId;\n option.aggregate = 'none';\n\n if (this.debug) {\n console.log(\n `[ChartModel] Ticks: ${new Date(option.start).toString()} - ${new Date(option.end).toString()}`,\n );\n }\n\n try {\n const res = await this.socket.getHistoryEx(this.config.ticks, option);\n if (this.sessionId && res.sessionId && res.sessionId !== this.sessionId) {\n console.warn(\n `[ChartModel] Ignore request with sessionId=${res.sessionId}, actual is ${this.sessionId}`,\n );\n return;\n }\n\n const _series: EchartsAnyValue[] = this.ticks || [];\n if (res?.values) {\n if (this.ticks?.length) {\n this.ticks.splice(0, this.ticks.length);\n }\n\n const values = res.values;\n\n for (let i = 0; i < values.length; i++) {\n if (values[i].val !== null) {\n _series.push({ value: [values[i].ts, values[i].val] });\n }\n }\n\n // add start and end\n if (_series.length) {\n if (_series[0].value[0] > option.start) {\n _series.unshift({ value: [option.start, ''] });\n }\n if (_series[_series.length - 1].value[0] < option.end) {\n _series.push({ value: [option.end, ''] });\n }\n } else {\n _series.push({ value: [option.start, ''] });\n _series.push({ value: [option.end, ''] });\n }\n // free memory\n res.values = null;\n }\n\n this.ticks = _series;\n } catch (e) {\n e === NOT_CONNECTED && this.onErrorFunc && this.onErrorFunc(e);\n console.error(`[ChartModel] ${e}`);\n }\n }\n }\n\n /*\n readValue(id, index, cb) {\n this.socket.getState(id)\n .then(state => {\n if (state) {\n cb(index, parseFloat(state.val) || 0);\n } else {\n cb(index, 0);\n }\n })\n .catch(e => {\n e === NOT_CONNECTED && this.onErrorFunc && this.onErrorFunc(e);\n console.error(`[ChartModel] ${e}`);\n cb(index, 0);\n });\n }\n */\n\n async readMarkings(): Promise {\n if (!this.config.marks) {\n return;\n }\n // read markings\n for (let m = 0; m < this.config.marks.length; m++) {\n const mark = this.config.marks[m];\n // process upper ID\n if (\n mark.upperValueOrId &&\n typeof mark.upperValueOrId === 'string' &&\n mark.upperValueOrId.toString().includes('.') &&\n parseFloat(mark.upperValueOrId).toString() !== mark.upperValueOrId.toString().replace(/\\.0*$/, '')\n ) {\n /* if (!this.subscribes.includes(mark.upperValueOrId)) {\n this.subscribes.push(mark.upperValueOrId);\n } */\n try {\n const state = await this.socket.getState(mark.upperValueOrId);\n if (state && state.val !== undefined && state.val !== null) {\n mark.upperValue = parseFloat(state.val as string) || 0;\n } else {\n mark.upperValue = null;\n }\n } catch (e) {\n e === NOT_CONNECTED && this.onErrorFunc && this.onErrorFunc(e);\n console.error(`Cannot read marking ${mark.upperValueOrId}: ${e}`);\n }\n }\n\n // process lower ID\n if (\n mark.lowerValueOrId &&\n typeof mark.lowerValueOrId === 'string' &&\n mark.lowerValueOrId.includes('.') &&\n parseFloat(mark.lowerValueOrId).toString() !== mark.lowerValueOrId.replace(/\\.0*$/, '')\n ) {\n /* if (!this.subscribes.includes(mark.upperValueOrId)) {\n this.subscribes.push(mark.upperValueOrId);\n } */\n try {\n const state = await this.socket.getState(mark.lowerValueOrId);\n if (state && state.val !== undefined && state.val !== null) {\n mark.lowerValue = parseFloat(state.val as string) || 0;\n } else {\n mark.lowerValue = null;\n }\n } catch (e) {\n e === NOT_CONNECTED && this.onErrorFunc && this.onErrorFunc(e);\n console.error(`Cannot read marking ${mark.lowerValueOrId}: ${e}`);\n }\n }\n }\n }\n\n async subscribeAll(subscribes?: string[]): Promise {\n if (!this.serverSide && subscribes?.length) {\n for (let s = 0; s < subscribes.length; s++) {\n try {\n await this.socket.subscribeState(subscribes[s], this.onStateChange);\n } catch (e) {\n e === NOT_CONNECTED && this.onErrorFunc && this.onErrorFunc(e);\n console.error(`Cannot subscribe ${subscribes[s]}: ${e}`);\n }\n }\n }\n }\n\n updateData(): void {\n // combine seriesData and barData\n const updateData: BarAndLineSeries[] = [];\n this.config.l.forEach((line, index) => {\n if (line.chartType === 'bar') {\n updateData[index] = this.barData[index];\n } else {\n updateData[index] = this.seriesData[index];\n }\n });\n\n this.onUpdateFunc(updateData, this.actualValues, this.barCategories);\n }\n\n onStateChange = (id: string, state: ioBroker.State | null | undefined): void => {\n if (!id || !state || this.reading) {\n return;\n }\n\n if (this.debug) {\n console.log(`State update ${id} - ${state.val}`);\n }\n\n let changed = false;\n for (let index = 0; index < this.config.l.length; index++) {\n if (this.config.l[index].id === id) {\n // by update from json => update always all values\n if (this.config.l[index].instance === 'json') {\n try {\n const dataJson: SeriesData[] | { history: SeriesData[] } = JSON.parse(state?.val as string);\n let data: SeriesData[];\n if ((dataJson as { history: SeriesData[] }).history) {\n data = (dataJson as { history: SeriesData[] }).history;\n } else {\n data = dataJson as SeriesData[];\n }\n\n if (!Array.isArray(data)) {\n data = [];\n console.warn('JSON is not an array');\n }\n data.sort((a, b) => (a.ts - b.ts ? -1 : a.ts < b.ts ? 1 : 0));\n const result = this.processRawData(id, this.config.l[index], data);\n\n if (result.barData) {\n this.barData[index] = result.barData;\n } else {\n this.seriesData[index] = result.seriesData;\n }\n\n // take last value as actual value\n if (this.actualValues) {\n this.actualValues[index] = data[data.length - 1].val;\n }\n\n this.updateData();\n } catch (e) {\n console.error(`Cannot parse JSON: ${e}`);\n }\n\n return;\n }\n\n const value = ChartModel.processOneValue(\n state.val,\n this.convertFunctions[this.config.l[index].convert],\n this.config.l[index].yOffset || 0,\n );\n\n if (this.actualValues && this.actualValues[index] !== value) {\n this.actualValues[index] = value;\n changed = true;\n }\n break;\n }\n }\n changed && this.onUpdateFunc(null, this.actualValues);\n };\n\n static addTime(time: number | Date, offset: string | number, isOffsetInMinutes?: boolean): number {\n const date: Date = new Date(time);\n\n if (typeof offset === 'string') {\n if (offset[1] === 'm' || offset[2] === 'm') {\n offset = parseInt(offset, 10);\n date.setMonth(date.getMonth() - offset);\n time = date.getTime();\n } else if (offset[1] === 'y' || offset[2] === 'y') {\n offset = parseInt(offset, 10);\n date.setFullYear(date.getFullYear() - offset);\n time = date.getTime();\n } else {\n time = date.getTime();\n if (isOffsetInMinutes) {\n time -= (parseInt(offset, 10) || 0) * 60000;\n } else {\n time -= (parseInt(offset, 10) || 0) * 1000;\n }\n }\n } else {\n offset = offset || 0;\n time = date.getTime();\n if (isOffsetInMinutes) {\n time -= offset * 60000;\n } else {\n time -= offset * 1000;\n }\n }\n return time;\n }\n\n async exportData(from: number, to: number, excludes?: string[]): Promise<{ [objectId: string]: SeriesData[] }> {\n // read all raw data\n const result: { [objectId: string]: SeriesData[] } = {};\n for (let i = 0; i < this.config.l.length; i++) {\n if (excludes?.includes(this.config.l[i].id) || !this.config.l[i] || !this.config.l[i].id) {\n continue;\n }\n let data = await this.readOneRawChart(\n this.config.l[i].id,\n this.config.l[i].instance || this.defaultHistory,\n from,\n to,\n );\n let _from = data?.length ? data[data.length - 1].ts + 1 : 0;\n let values = data;\n while (values?.length === 2000) {\n values = await this.readOneRawChart(\n this.config.l[i].id,\n this.config.l[i].instance || this.defaultHistory,\n _from,\n to,\n );\n _from = values && values.length ? values[values.length - 1].ts + 1 : 0;\n data = data.concat(values);\n }\n if (values) {\n result[this.config.l[i].id] = values;\n }\n }\n\n return result;\n }\n\n async readData(): Promise {\n if (this.readOnZoomTimeout) {\n clearTimeout(this.readOnZoomTimeout);\n this.readOnZoomTimeout = null;\n }\n\n this.now = Date.now();\n console.log(`Read till ${new Date(this.now).toString()}`);\n this.sessionId = this.sessionId || 0;\n this.sessionId++;\n if (this.sessionId > 0xffffff) {\n this.sessionId = 1;\n }\n\n if (this.config.l) {\n this.reading = true;\n this.onReadingFunc && this.onReadingFunc(true);\n\n // todo\n // if (config.renderer === 'pie' || (config.renderer === 'bar' && config._ids.length > 1)) {\n //\n // seriesData = [[]];\n // for (const j = 0; j < config._ids.length; j++) {\n // readOneValue(config._ids[j], j, function (_id, _index, value) {\n // if (config.renderer === 'pie') {\n // seriesData[0][_index] = {label: config.l[_index].name, data: value};\n // } else {\n // seriesData[0][_index] = [config.l[_index].name, value];\n // }\n // if (_index === config._ids.length - 1) {\n // graphCreate(divId, );\n // }\n // });\n // }\n // } else {\n this.seriesData = [];\n this.barData = [];\n this.barCategories = null;\n\n await this._readData();\n // use units from common axis\n for (let i = 0; i < this.config.l.length; i++) {\n if (this.config.l[i].commonYAxis || this.config.l[i].commonYAxis === 0) {\n this.config.l[i].unit = this.config.l[this.config.l[i].commonYAxis].unit;\n }\n }\n\n await this.readTicks();\n await this.readMarkings();\n /* if (!this.subscribed) {\n this.subscribed = true;\n await this.subscribeAll(this.subscribes));\n } */\n this.reading = false;\n\n this.updateData();\n } else {\n this.onErrorFunc && this.onErrorFunc(new Error('No config provided'));\n this.onReadingFunc && this.onReadingFunc(false);\n this.reading = false;\n }\n }\n}\n\nexport default ChartModel;\n"]} \ No newline at end of file diff --git a/src/lib/ChartModel.ts b/src/lib/ChartModel.ts index 23e697de..07d2b49a 100644 --- a/src/lib/ChartModel.ts +++ b/src/lib/ChartModel.ts @@ -330,7 +330,8 @@ function normalizeConfig(config: ChartConfigOld): ChartConfig { newConfig.marks = newConfig.marks || []; - if (!newConfig.l.length) { + if (!newConfig.l?.length) { + config.l = config.l || []; config.l.push({ id: '', unit: '' }); } @@ -880,7 +881,11 @@ class ChartModel { break; } } - } else if (typeof this.config.range === 'string' && this.config.range.includes('y') && this.config.l.length > 1) { + } else if ( + typeof this.config.range === 'string' && + this.config.range.includes('y') && + this.config.l.length > 1 + ) { const yearRange = parseInt(this.config.range as string, 10) || 1; for (let a = 0; a < this.config.l.length; a++) { if (this.config.l[a].offset) { @@ -1873,11 +1878,7 @@ class ChartModel { changed && this.onUpdateFunc(null, this.actualValues); }; - static addTime( - time: number | Date, - offset: string | number, - isOffsetInMinutes?: boolean, - ): number { + static addTime(time: number | Date, offset: string | number, isOffsetInMinutes?: boolean): number { const date: Date = new Date(time); if (typeof offset === 'string') { @@ -1893,7 +1894,7 @@ class ChartModel { time = date.getTime(); if (isOffsetInMinutes) { time -= (parseInt(offset, 10) || 0) * 60000; - }else { + } else { time -= (parseInt(offset, 10) || 0) * 1000; } } diff --git a/www/assets/index-CEGXPVnF.js b/www/assets/index-C-7EcNoE.js similarity index 98% rename from www/assets/index-CEGXPVnF.js rename to www/assets/index-C-7EcNoE.js index 0335517b..e044b096 100644 --- a/www/assets/index-CEGXPVnF.js +++ b/www/assets/index-C-7EcNoE.js @@ -516,7 +516,7 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho * * Date: 2024-04-21T07:43:05.335Z */function J9(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(t,a).enumerable})),r.push.apply(r,n)}return r}function vJ(t){for(var e=1;et.length)&&(e=t.length);for(var r=0,n=new Array(e);r
',Kke=Number.isNaN||yl.isNaN;function ir(t){return typeof t=="number"&&!Kke(t)}var c7=function(e){return e>0&&e<1/0};function DO(t){return typeof t>"u"}function ch(t){return DP(t)==="object"&&t!==null}var Qke=Object.prototype.hasOwnProperty;function xm(t){if(!ch(t))return!1;try{var e=t.constructor,r=e.prototype;return e&&r&&Qke.call(r,"isPrototypeOf")}catch{return!1}}function ni(t){return typeof t=="function"}var e2e=Array.prototype.slice;function kJ(t){return Array.from?Array.from(t):e2e.call(t)}function Dn(t,e){return t&&ni(e)&&(Array.isArray(t)||ir(t.length)?kJ(t).forEach(function(r,n){e.call(t,r,n,t)}):ch(t)&&Object.keys(t).forEach(function(r){e.call(t,t[r],r,t)})),t}var nn=Object.assign||function(e){for(var r=arguments.length,n=new Array(r>1?r-1:0),a=1;a0&&n.forEach(function(i){ch(i)&&Object.keys(i).forEach(function(o){e[o]=i[o]})}),e},t2e=/\.\d*(?:0|9){12}\d*$/;function Pm(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1e11;return t2e.test(t)?Math.round(t*e)/e:t}var r2e=/^width|height|left|top|marginLeft|marginTop$/;function Lu(t,e){var r=t.style;Dn(e,function(n,a){r2e.test(a)&&ir(n)&&(n="".concat(n,"px")),r[a]=n})}function n2e(t,e){return t.classList?t.classList.contains(e):t.className.indexOf(e)>-1}function Vn(t,e){if(e){if(ir(t.length)){Dn(t,function(n){Vn(n,e)});return}if(t.classList){t.classList.add(e);return}var r=t.className.trim();r?r.indexOf(e)<0&&(t.className="".concat(r," ").concat(e)):t.className=e}}function ml(t,e){if(e){if(ir(t.length)){Dn(t,function(r){ml(r,e)});return}if(t.classList){t.classList.remove(e);return}t.className.indexOf(e)>=0&&(t.className=t.className.replace(e,""))}}function Cm(t,e,r){if(e){if(ir(t.length)){Dn(t,function(n){Cm(n,e,r)});return}r?Vn(t,e):ml(t,e)}}var a2e=/([a-z\d])([A-Z])/g;function wN(t){return t.replace(a2e,"$1-$2").toLowerCase()}function NP(t,e){return ch(t[e])?t[e]:t.dataset?t.dataset[e]:t.getAttribute("data-".concat(wN(e)))}function Oy(t,e,r){ch(r)?t[e]=r:t.dataset?t.dataset[e]=r:t.setAttribute("data-".concat(wN(e)),r)}function i2e(t,e){if(ch(t[e]))try{delete t[e]}catch{t[e]=void 0}else if(t.dataset)try{delete t.dataset[e]}catch{t.dataset[e]=void 0}else t.removeAttribute("data-".concat(wN(e)))}var EJ=/\s\s*/,DJ=function(){var t=!1;if(QC){var e=!1,r=function(){},n=Object.defineProperty({},"once",{get:function(){return t=!0,e},set:function(i){e=i}});yl.addEventListener("test",r,n),yl.removeEventListener("test",r,n)}return t}();function qo(t,e,r){var n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{},a=r;e.trim().split(EJ).forEach(function(i){if(!DJ){var o=t.listeners;o&&o[i]&&o[i][r]&&(a=o[i][r],delete o[i][r],Object.keys(o[i]).length===0&&delete o[i],Object.keys(o).length===0&&delete t.listeners)}t.removeEventListener(i,a,n)})}function ro(t,e,r){var n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{},a=r;e.trim().split(EJ).forEach(function(i){if(n.once&&!DJ){var o=t.listeners,s=o===void 0?{}:o;a=function(){delete s[i][r],t.removeEventListener(i,a,n);for(var c=arguments.length,d=new Array(c),u=0;uMath.abs(r)&&(r=f)})}),r}function J1(t,e){var r=t.pageX,n=t.pageY,a={endX:r,endY:n};return e?a:vJ({startX:r,startY:n},a)}function l2e(t){var e=0,r=0,n=0;return Dn(t,function(a){var i=a.startX,o=a.startY;e+=i,r+=o,n+=1}),e/=n,r/=n,{pageX:e,pageY:r}}function Nu(t){var e=t.aspectRatio,r=t.height,n=t.width,a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"contain",i=c7(n),o=c7(r);if(i&&o){var s=r*e;a==="contain"&&s>n||a==="cover"&&s90?{width:l,height:s}:{width:s,height:l}}function u2e(t,e,r,n){var a=e.aspectRatio,i=e.naturalWidth,o=e.naturalHeight,s=e.rotate,l=s===void 0?0:s,c=e.scaleX,d=c===void 0?1:c,u=e.scaleY,f=u===void 0?1:u,p=r.aspectRatio,v=r.naturalWidth,g=r.naturalHeight,_=n.fillColor,b=_===void 0?"transparent":_,w=n.imageSmoothingEnabled,x=w===void 0?!0:w,C=n.imageSmoothingQuality,M=C===void 0?"low":C,k=n.maxWidth,O=k===void 0?1/0:k,R=n.maxHeight,L=R===void 0?1/0:R,$=n.minWidth,N=$===void 0?0:$,W=n.minHeight,j=W===void 0?0:W,Y=document.createElement("canvas"),V=Y.getContext("2d"),J=Nu({aspectRatio:p,width:O,height:L}),ie=Nu({aspectRatio:p,width:N,height:j},"cover"),K=Math.min(J.width,Math.max(ie.width,v)),Q=Math.min(J.height,Math.max(ie.height,g)),oe=Nu({aspectRatio:a,width:O,height:L}),H=Nu({aspectRatio:a,width:N,height:j},"cover"),X=Math.min(oe.width,Math.max(H.width,i)),ae=Math.min(oe.height,Math.max(H.height,o)),re=[-X/2,-ae/2,X,ae];return Y.width=Pm(K),Y.height=Pm(Q),V.fillStyle=b,V.fillRect(0,0,K,Q),V.save(),V.translate(K/2,Q/2),V.rotate(l*Math.PI/180),V.scale(d,f),V.imageSmoothingEnabled=x,V.imageSmoothingQuality=M,V.drawImage.apply(V,[t].concat(_J(re.map(function(le){return Math.floor(Pm(le))})))),V.restore(),Y}var OJ=String.fromCharCode;function d2e(t,e,r){var n="";r+=e;for(var a=e;a0;)r.push(OJ.apply(null,kJ(a.subarray(0,n)))),a=a.subarray(n);return"data:".concat(e,";base64,").concat(btoa(r.join("")))}function m2e(t){var e=new DataView(t),r;try{var n,a,i;if(e.getUint8(0)===255&&e.getUint8(1)===216)for(var o=e.byteLength,s=2;s+1=8&&(i=c+u)}}}if(i){var f=e.getUint16(i,n),p,v;for(v=0;v=0?i:CJ),height:Math.max(n.offsetHeight,o>=0?o:TJ)};this.containerData=s,Lu(a,{width:s.width,height:s.height}),Vn(e,ai),ml(a,ai)},initCanvas:function(){var e=this.containerData,r=this.imageData,n=this.options.viewMode,a=Math.abs(r.rotate)%180===90,i=a?r.naturalHeight:r.naturalWidth,o=a?r.naturalWidth:r.naturalHeight,s=i/o,l=e.width,c=e.height;e.height*s>e.width?n===3?l=e.height*s:c=e.width/s:n===3?c=e.width/s:l=e.height*s;var d={aspectRatio:s,naturalWidth:i,naturalHeight:o,width:l,height:c};this.canvasData=d,this.limited=n===1||n===2,this.limitCanvas(!0,!0),d.width=Math.min(Math.max(d.width,d.minWidth),d.maxWidth),d.height=Math.min(Math.max(d.height,d.minHeight),d.maxHeight),d.left=(e.width-d.width)/2,d.top=(e.height-d.height)/2,d.oldLeft=d.left,d.oldTop=d.top,this.initialCanvasData=nn({},d)},limitCanvas:function(e,r){var n=this.options,a=this.containerData,i=this.canvasData,o=this.cropBoxData,s=n.viewMode,l=i.aspectRatio,c=this.cropped&&o;if(e){var d=Number(n.minCanvasWidth)||0,u=Number(n.minCanvasHeight)||0;s>1?(d=Math.max(d,a.width),u=Math.max(u,a.height),s===3&&(u*l>d?d=u*l:u=d/l)):s>0&&(d?d=Math.max(d,c?o.width:0):u?u=Math.max(u,c?o.height:0):c&&(d=o.width,u=o.height,u*l>d?d=u*l:u=d/l));var f=Nu({aspectRatio:l,width:d,height:u});d=f.width,u=f.height,i.minWidth=d,i.minHeight=u,i.maxWidth=1/0,i.maxHeight=1/0}if(r)if(s>(c?0:1)){var p=a.width-i.width,v=a.height-i.height;i.minLeft=Math.min(0,p),i.minTop=Math.min(0,v),i.maxLeft=Math.max(0,p),i.maxTop=Math.max(0,v),c&&this.limited&&(i.minLeft=Math.min(o.left,o.left+(o.width-i.width)),i.minTop=Math.min(o.top,o.top+(o.height-i.height)),i.maxLeft=o.left,i.maxTop=o.top,s===2&&(i.width>=a.width&&(i.minLeft=Math.min(0,p),i.maxLeft=Math.max(0,p)),i.height>=a.height&&(i.minTop=Math.min(0,v),i.maxTop=Math.max(0,v))))}else i.minLeft=-i.width,i.minTop=-i.height,i.maxLeft=a.width,i.maxTop=a.height},renderCanvas:function(e,r){var n=this.canvasData,a=this.imageData;if(r){var i=c2e({width:a.naturalWidth*Math.abs(a.scaleX||1),height:a.naturalHeight*Math.abs(a.scaleY||1),degree:a.rotate||0}),o=i.width,s=i.height,l=n.width*(o/n.naturalWidth),c=n.height*(s/n.naturalHeight);n.left-=(l-n.width)/2,n.top-=(c-n.height)/2,n.width=l,n.height=c,n.aspectRatio=o/s,n.naturalWidth=o,n.naturalHeight=s,this.limitCanvas(!0,!1)}(n.width>n.maxWidth||n.widthn.maxHeight||n.heightr.width?i.height=i.width/n:i.width=i.height*n),this.cropBoxData=i,this.limitCropBox(!0,!0),i.width=Math.min(Math.max(i.width,i.minWidth),i.maxWidth),i.height=Math.min(Math.max(i.height,i.minHeight),i.maxHeight),i.width=Math.max(i.minWidth,i.width*a),i.height=Math.max(i.minHeight,i.height*a),i.left=r.left+(r.width-i.width)/2,i.top=r.top+(r.height-i.height)/2,i.oldLeft=i.left,i.oldTop=i.top,this.initialCropBoxData=nn({},i)},limitCropBox:function(e,r){var n=this.options,a=this.containerData,i=this.canvasData,o=this.cropBoxData,s=this.limited,l=n.aspectRatio;if(e){var c=Number(n.minCropBoxWidth)||0,d=Number(n.minCropBoxHeight)||0,u=s?Math.min(a.width,i.width,i.width+i.left,a.width-i.left):a.width,f=s?Math.min(a.height,i.height,i.height+i.top,a.height-i.top):a.height;c=Math.min(c,a.width),d=Math.min(d,a.height),l&&(c&&d?d*l>c?d=c/l:c=d*l:c?d=c/l:d&&(c=d*l),f*l>u?f=u/l:u=f*l),o.minWidth=Math.min(c,u),o.minHeight=Math.min(d,f),o.maxWidth=u,o.maxHeight=f}r&&(s?(o.minLeft=Math.max(0,i.left),o.minTop=Math.max(0,i.top),o.maxLeft=Math.min(a.width,i.left+i.width)-o.width,o.maxTop=Math.min(a.height,i.top+i.height)-o.height):(o.minLeft=0,o.minTop=0,o.maxLeft=a.width-o.width,o.maxTop=a.height-o.height))},renderCropBox:function(){var e=this.options,r=this.containerData,n=this.cropBoxData;(n.width>n.maxWidth||n.widthn.maxHeight||n.height=r.width&&n.height>=r.height?bJ:yN),Lu(this.cropBox,nn({width:n.width,height:n.height},ny({translateX:n.left,translateY:n.top}))),this.cropped&&this.limited&&this.limitCanvas(!0,!0),this.disabled||this.output()},output:function(){this.preview(),Im(this.element,AP,this.getData())}},_2e={initPreview:function(){var e=this.element,r=this.crossOrigin,n=this.options.preview,a=r?this.crossOriginUrl:this.url,i=e.alt||"The image to preview",o=document.createElement("img");if(r&&(o.crossOrigin=r),o.src=a,o.alt=i,this.viewBox.appendChild(o),this.viewBoxImage=o,!!n){var s=n;typeof n=="string"?s=e.ownerDocument.querySelectorAll(n):n.querySelector&&(s=[n]),this.previews=s,Dn(s,function(l){var c=document.createElement("img");Oy(l,X1,{width:l.offsetWidth,height:l.offsetHeight,html:l.innerHTML}),r&&(c.crossOrigin=r),c.src=a,c.alt=i,c.style.cssText='display:block;width:100%;height:auto;min-width:0!important;min-height:0!important;max-width:none!important;max-height:none!important;image-orientation:0deg!important;"',l.innerHTML="",l.appendChild(c)})}},resetPreview:function(){Dn(this.previews,function(e){var r=NP(e,X1);Lu(e,{width:r.width,height:r.height}),e.innerHTML=r.html,i2e(e,X1)})},preview:function(){var e=this.imageData,r=this.canvasData,n=this.cropBoxData,a=n.width,i=n.height,o=e.width,s=e.height,l=n.left-r.left-e.left,c=n.top-r.top-e.top;!this.cropped||this.disabled||(Lu(this.viewBoxImage,nn({width:o,height:s},ny(nn({translateX:-l,translateY:-c},e)))),Dn(this.previews,function(d){var u=NP(d,X1),f=u.width,p=u.height,v=f,g=p,_=1;a&&(_=f/a,g=i*_),i&&g>p&&(_=p/i,v=a*_,g=p),Lu(d,{width:v,height:g}),Lu(d.getElementsByTagName("img")[0],nn({width:o*_,height:s*_},ny(nn({translateX:-l*_,translateY:-c*_},e))))}))}},y2e={bind:function(){var e=this.element,r=this.options,n=this.cropper;ni(r.cropstart)&&ro(e,RP,r.cropstart),ni(r.cropmove)&&ro(e,IP,r.cropmove),ni(r.cropend)&&ro(e,PP,r.cropend),ni(r.crop)&&ro(e,AP,r.crop),ni(r.zoom)&&ro(e,LP,r.zoom),ro(n,t7,this.onCropStart=this.cropStart.bind(this)),r.zoomable&&r.zoomOnWheel&&ro(n,o7,this.onWheel=this.wheel.bind(this),{passive:!1,capture:!0}),r.toggleDragModeOnDblclick&&ro(n,e7,this.onDblclick=this.dblclick.bind(this)),ro(e.ownerDocument,r7,this.onCropMove=this.cropMove.bind(this)),ro(e.ownerDocument,n7,this.onCropEnd=this.cropEnd.bind(this)),r.responsive&&ro(window,i7,this.onResize=this.resize.bind(this))},unbind:function(){var e=this.element,r=this.options,n=this.cropper;ni(r.cropstart)&&qo(e,RP,r.cropstart),ni(r.cropmove)&&qo(e,IP,r.cropmove),ni(r.cropend)&&qo(e,PP,r.cropend),ni(r.crop)&&qo(e,AP,r.crop),ni(r.zoom)&&qo(e,LP,r.zoom),qo(n,t7,this.onCropStart),r.zoomable&&r.zoomOnWheel&&qo(n,o7,this.onWheel,{passive:!1,capture:!0}),r.toggleDragModeOnDblclick&&qo(n,e7,this.onDblclick),qo(e.ownerDocument,r7,this.onCropMove),qo(e.ownerDocument,n7,this.onCropEnd),r.responsive&&qo(window,i7,this.onResize)}},b2e={resize:function(){if(!this.disabled){var e=this.options,r=this.container,n=this.containerData,a=r.offsetWidth/n.width,i=r.offsetHeight/n.height,o=Math.abs(a-1)>Math.abs(i-1)?a:i;if(o!==1){var s,l;e.restore&&(s=this.getCanvasData(),l=this.getCropBoxData()),this.render(),e.restore&&(this.setCanvasData(Dn(s,function(c,d){s[d]=c*o})),this.setCropBoxData(Dn(l,function(c,d){l[d]=c*o})))}}},dblclick:function(){this.disabled||this.options.dragMode===xJ||this.setDragMode(n2e(this.dragBox,OP)?SJ:bN)},wheel:function(e){var r=this,n=Number(this.options.wheelZoomRatio)||.1,a=1;this.disabled||(e.preventDefault(),!this.wheeling&&(this.wheeling=!0,setTimeout(function(){r.wheeling=!1},50),e.deltaY?a=e.deltaY>0?1:-1:e.wheelDelta?a=-e.wheelDelta/120:e.detail&&(a=e.detail>0?1:-1),this.zoom(-a*n,e)))},cropStart:function(e){var r=e.buttons,n=e.button;if(!(this.disabled||(e.type==="mousedown"||e.type==="pointerdown"&&e.pointerType==="mouse")&&(ir(r)&&r!==1||ir(n)&&n!==0||e.ctrlKey))){var a=this.options,i=this.pointers,o;e.changedTouches?Dn(e.changedTouches,function(s){i[s.identifier]=J1(s)}):i[e.pointerId||0]=J1(e),Object.keys(i).length>1&&a.zoomable&&a.zoomOnTouch?o=wJ:o=NP(e.target,My),Gke.test(o)&&Im(this.element,RP,{originalEvent:e,action:o})!==!1&&(e.preventDefault(),this.action=o,this.cropping=!1,o===yJ&&(this.cropping=!0,Vn(this.dragBox,dx)))}},cropMove:function(e){var r=this.action;if(!(this.disabled||!r)){var n=this.pointers;e.preventDefault(),Im(this.element,IP,{originalEvent:e,action:r})!==!1&&(e.changedTouches?Dn(e.changedTouches,function(a){nn(n[a.identifier]||{},J1(a,!0))}):nn(n[e.pointerId||0]||{},J1(e,!0)),this.change(e))}},cropEnd:function(e){if(!this.disabled){var r=this.action,n=this.pointers;e.changedTouches?Dn(e.changedTouches,function(a){delete n[a.identifier]}):delete n[e.pointerId||0],r&&(e.preventDefault(),Object.keys(n).length||(this.action=""),this.cropping&&(this.cropping=!1,Cm(this.dragBox,dx,this.cropped&&this.options.modal)),Im(this.element,PP,{originalEvent:e,action:r}))}}},w2e={change:function(e){var r=this.options,n=this.canvasData,a=this.containerData,i=this.cropBoxData,o=this.pointers,s=this.action,l=r.aspectRatio,c=i.left,d=i.top,u=i.width,f=i.height,p=c+u,v=d+f,g=0,_=0,b=a.width,w=a.height,x=!0,C;!l&&e.shiftKey&&(l=u&&f?u/f:1),this.limited&&(g=i.minLeft,_=i.minTop,b=g+Math.min(a.width,n.width,n.left+n.width),w=_+Math.min(a.height,n.height,n.top+n.height));var M=o[Object.keys(o)[0]],k={x:M.endX-M.startX,y:M.endY-M.startY},O=function(L){switch(L){case ef:p+k.x>b&&(k.x=b-p);break;case tf:c+k.xw&&(k.y=w-v);break}};switch(s){case yN:c+=k.x,d+=k.y;break;case ef:if(k.x>=0&&(p>=b||l&&(d<=_||v>=w))){x=!1;break}O(ef),u+=k.x,u<0&&(s=tf,u=-u,c-=u),l&&(f=u/l,d+=(i.height-f)/2);break;case yu:if(k.y<=0&&(d<=_||l&&(c<=g||p>=b))){x=!1;break}O(yu),f-=k.y,d+=k.y,f<0&&(s=Pp,f=-f,d-=f),l&&(u=f*l,c+=(i.width-u)/2);break;case tf:if(k.x<=0&&(c<=g||l&&(d<=_||v>=w))){x=!1;break}O(tf),u-=k.x,c+=k.x,u<0&&(s=ef,u=-u,c-=u),l&&(f=u/l,d+=(i.height-f)/2);break;case Pp:if(k.y>=0&&(v>=w||l&&(c<=g||p>=b))){x=!1;break}O(Pp),f+=k.y,f<0&&(s=yu,f=-f,d-=f),l&&(u=f*l,c+=(i.width-u)/2);break;case Yg:if(l){if(k.y<=0&&(d<=_||p>=b)){x=!1;break}O(yu),f-=k.y,d+=k.y,u=f*l}else O(yu),O(ef),k.x>=0?p_&&(f-=k.y,d+=k.y):(f-=k.y,d+=k.y);u<0&&f<0?(s=qg,f=-f,u=-u,d-=f,c-=u):u<0?(s=Vg,u=-u,c-=u):f<0&&(s=Gg,f=-f,d-=f);break;case Vg:if(l){if(k.y<=0&&(d<=_||c<=g)){x=!1;break}O(yu),f-=k.y,d+=k.y,u=f*l,c+=i.width-u}else O(yu),O(tf),k.x<=0?c>g?(u-=k.x,c+=k.x):k.y<=0&&d<=_&&(x=!1):(u-=k.x,c+=k.x),k.y<=0?d>_&&(f-=k.y,d+=k.y):(f-=k.y,d+=k.y);u<0&&f<0?(s=Gg,f=-f,u=-u,d-=f,c-=u):u<0?(s=Yg,u=-u,c-=u):f<0&&(s=qg,f=-f,d-=f);break;case qg:if(l){if(k.x<=0&&(c<=g||v>=w)){x=!1;break}O(tf),u-=k.x,c+=k.x,f=u/l}else O(Pp),O(tf),k.x<=0?c>g?(u-=k.x,c+=k.x):k.y>=0&&v>=w&&(x=!1):(u-=k.x,c+=k.x),k.y>=0?v=0&&(p>=b||v>=w)){x=!1;break}O(ef),u+=k.x,f=u/l}else O(Pp),O(ef),k.x>=0?p=0&&v>=w&&(x=!1):u+=k.x,k.y>=0?v0?s=k.y>0?Gg:Yg:k.x<0&&(c-=u,s=k.y>0?qg:Vg),k.y<0&&(d-=f),this.cropped||(ml(this.cropBox,ai),this.cropped=!0,this.limited&&this.limitCropBox(!0,!0));break}x&&(i.width=u,i.height=f,i.left=c,i.top=d,this.action=s,this.renderCropBox()),Dn(o,function(R){R.startX=R.endX,R.startY=R.endY})}},S2e={crop:function(){return this.ready&&!this.cropped&&!this.disabled&&(this.cropped=!0,this.limitCropBox(!0,!0),this.options.modal&&Vn(this.dragBox,dx),ml(this.cropBox,ai),this.setCropBoxData(this.initialCropBoxData)),this},reset:function(){return this.ready&&!this.disabled&&(this.imageData=nn({},this.initialImageData),this.canvasData=nn({},this.initialCanvasData),this.cropBoxData=nn({},this.initialCropBoxData),this.renderCanvas(),this.cropped&&this.renderCropBox()),this},clear:function(){return this.cropped&&!this.disabled&&(nn(this.cropBoxData,{left:0,top:0,width:0,height:0}),this.cropped=!1,this.renderCropBox(),this.limitCanvas(!0,!0),this.renderCanvas(),ml(this.dragBox,dx),Vn(this.cropBox,ai)),this},replace:function(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;return!this.disabled&&e&&(this.isImg&&(this.element.src=e),r?(this.url=e,this.image.src=e,this.ready&&(this.viewBoxImage.src=e,Dn(this.previews,function(n){n.getElementsByTagName("img")[0].src=e}))):(this.isImg&&(this.replaced=!0),this.options.data=null,this.uncreate(),this.load(e))),this},enable:function(){return this.ready&&this.disabled&&(this.disabled=!1,ml(this.cropper,K9)),this},disable:function(){return this.ready&&!this.disabled&&(this.disabled=!0,Vn(this.cropper,K9)),this},destroy:function(){var e=this.element;return e[Qr]?(e[Qr]=void 0,this.isImg&&this.replaced&&(e.src=this.originalUrl),this.uncreate(),this):this},move:function(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:e,n=this.canvasData,a=n.left,i=n.top;return this.moveTo(DO(e)?e:a+Number(e),DO(r)?r:i+Number(r))},moveTo:function(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:e,n=this.canvasData,a=!1;return e=Number(e),r=Number(r),this.ready&&!this.disabled&&this.options.movable&&(ir(e)&&(n.left=e,a=!0),ir(r)&&(n.top=r,a=!0),a&&this.renderCanvas(!0)),this},zoom:function(e,r){var n=this.canvasData;return e=Number(e),e<0?e=1/(1-e):e=1+e,this.zoomTo(n.width*e/n.naturalWidth,null,r)},zoomTo:function(e,r,n){var a=this.options,i=this.canvasData,o=i.width,s=i.height,l=i.naturalWidth,c=i.naturalHeight;if(e=Number(e),e>=0&&this.ready&&!this.disabled&&a.zoomable){var d=l*e,u=c*e;if(Im(this.element,LP,{ratio:e,oldRatio:o/l,originalEvent:n})===!1)return this;if(n){var f=this.pointers,p=MJ(this.cropper),v=f&&Object.keys(f).length?l2e(f):{pageX:n.pageX,pageY:n.pageY};i.left-=(d-o)*((v.pageX-p.left-i.left)/o),i.top-=(u-s)*((v.pageY-p.top-i.top)/s)}else xm(r)&&ir(r.x)&&ir(r.y)?(i.left-=(d-o)*((r.x-i.left)/o),i.top-=(u-s)*((r.y-i.top)/s)):(i.left-=(d-o)/2,i.top-=(u-s)/2);i.width=d,i.height=u,this.renderCanvas(!0)}return this},rotate:function(e){return this.rotateTo((this.imageData.rotate||0)+Number(e))},rotateTo:function(e){return e=Number(e),ir(e)&&this.ready&&!this.disabled&&this.options.rotatable&&(this.imageData.rotate=e%360,this.renderCanvas(!0,!0)),this},scaleX:function(e){var r=this.imageData.scaleY;return this.scale(e,ir(r)?r:1)},scaleY:function(e){var r=this.imageData.scaleX;return this.scale(ir(r)?r:1,e)},scale:function(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:e,n=this.imageData,a=!1;return e=Number(e),r=Number(r),this.ready&&!this.disabled&&this.options.scalable&&(ir(e)&&(n.scaleX=e,a=!0),ir(r)&&(n.scaleY=r,a=!0),a&&this.renderCanvas(!0,!0)),this},getData:function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1,r=this.options,n=this.imageData,a=this.canvasData,i=this.cropBoxData,o;if(this.ready&&this.cropped){o={x:i.left-a.left,y:i.top-a.top,width:i.width,height:i.height};var s=n.width/n.naturalWidth;if(Dn(o,function(d,u){o[u]=d/s}),e){var l=Math.round(o.y+o.height),c=Math.round(o.x+o.width);o.x=Math.round(o.x),o.y=Math.round(o.y),o.width=c-o.x,o.height=l-o.y}}else o={x:0,y:0,width:0,height:0};return r.rotatable&&(o.rotate=n.rotate||0),r.scalable&&(o.scaleX=n.scaleX||1,o.scaleY=n.scaleY||1),o},setData:function(e){var r=this.options,n=this.imageData,a=this.canvasData,i={};if(this.ready&&!this.disabled&&xm(e)){var o=!1;r.rotatable&&ir(e.rotate)&&e.rotate!==n.rotate&&(n.rotate=e.rotate,o=!0),r.scalable&&(ir(e.scaleX)&&e.scaleX!==n.scaleX&&(n.scaleX=e.scaleX,o=!0),ir(e.scaleY)&&e.scaleY!==n.scaleY&&(n.scaleY=e.scaleY,o=!0)),o&&this.renderCanvas(!0,!0);var s=n.width/n.naturalWidth;ir(e.x)&&(i.left=e.x*s+a.left),ir(e.y)&&(i.top=e.y*s+a.top),ir(e.width)&&(i.width=e.width*s),ir(e.height)&&(i.height=e.height*s),this.setCropBoxData(i)}return this},getContainerData:function(){return this.ready?nn({},this.containerData):{}},getImageData:function(){return this.sized?nn({},this.imageData):{}},getCanvasData:function(){var e=this.canvasData,r={};return this.ready&&Dn(["left","top","width","height","naturalWidth","naturalHeight"],function(n){r[n]=e[n]}),r},setCanvasData:function(e){var r=this.canvasData,n=r.aspectRatio;return this.ready&&!this.disabled&&xm(e)&&(ir(e.left)&&(r.left=e.left),ir(e.top)&&(r.top=e.top),ir(e.width)?(r.width=e.width,r.height=e.width/n):ir(e.height)&&(r.height=e.height,r.width=e.height*n),this.renderCanvas(!0)),this},getCropBoxData:function(){var e=this.cropBoxData,r;return this.ready&&this.cropped&&(r={left:e.left,top:e.top,width:e.width,height:e.height}),r||{}},setCropBoxData:function(e){var r=this.cropBoxData,n=this.options.aspectRatio,a,i;return this.ready&&this.cropped&&!this.disabled&&xm(e)&&(ir(e.left)&&(r.left=e.left),ir(e.top)&&(r.top=e.top),ir(e.width)&&e.width!==r.width&&(a=!0,r.width=e.width),ir(e.height)&&e.height!==r.height&&(i=!0,r.height=e.height),n&&(a?r.height=r.width/n:i&&(r.width=r.height*n)),this.renderCropBox()),this},getCroppedCanvas:function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(!this.ready||!window.HTMLCanvasElement)return null;var r=this.canvasData,n=u2e(this.image,this.imageData,r,e);if(!this.cropped)return n;var a=this.getData(e.rounded),i=a.x,o=a.y,s=a.width,l=a.height,c=n.width/Math.floor(r.naturalWidth);c!==1&&(i*=c,o*=c,s*=c,l*=c);var d=s/l,u=Nu({aspectRatio:d,width:e.maxWidth||1/0,height:e.maxHeight||1/0}),f=Nu({aspectRatio:d,width:e.minWidth||0,height:e.minHeight||0},"cover"),p=Nu({aspectRatio:d,width:e.width||(c!==1?n.width:s),height:e.height||(c!==1?n.height:l)}),v=p.width,g=p.height;v=Math.min(u.width,Math.max(f.width,v)),g=Math.min(u.height,Math.max(f.height,g));var _=document.createElement("canvas"),b=_.getContext("2d");_.width=Pm(v),_.height=Pm(g),b.fillStyle=e.fillColor||"transparent",b.fillRect(0,0,v,g);var w=e.imageSmoothingEnabled,x=w===void 0?!0:w,C=e.imageSmoothingQuality;b.imageSmoothingEnabled=x,C&&(b.imageSmoothingQuality=C);var M=n.width,k=n.height,O=i,R=o,L,$,N,W,j,Y;O<=-s||O>M?(O=0,L=0,N=0,j=0):O<=0?(N=-O,O=0,L=Math.min(M,s+O),j=L):O<=M&&(N=0,L=Math.min(s,M-O),j=L),L<=0||R<=-l||R>k?(R=0,$=0,W=0,Y=0):R<=0?(W=-R,R=0,$=Math.min(k,l+R),Y=$):R<=k&&(W=0,$=Math.min(l,k-R),Y=$);var V=[O,R,L,$];if(j>0&&Y>0){var J=v/s;V.push(N*J,W*J,j*J,Y*J)}return b.drawImage.apply(b,[n].concat(_J(V.map(function(ie){return Math.floor(Pm(ie))})))),_},setAspectRatio:function(e){var r=this.options;return!this.disabled&&!DO(e)&&(r.aspectRatio=Math.max(0,e)||NaN,this.ready&&(this.initCropBox(),this.cropped&&this.renderCropBox())),this},setDragMode:function(e){var r=this.options,n=this.dragBox,a=this.face;if(this.ready&&!this.disabled){var i=e===bN,o=r.movable&&e===SJ;e=i||o?e:xJ,r.dragMode=e,Oy(n,My,e),Cm(n,OP,i),Cm(n,$P,o),r.cropBoxMovable||(Oy(a,My,e),Cm(a,OP,i),Cm(a,$P,o))}return this}},x2e=yl.Cropper,$J=function(){function t(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(Lke(this,t),!e||!Jke.test(e.tagName))throw new Error("The first argument is required and must be an or element.");this.element=e,this.options=nn({},l7,xm(r)&&r),this.cropped=!1,this.disabled=!1,this.pointers={},this.ready=!1,this.reloading=!1,this.replaced=!1,this.sized=!1,this.sizing=!1,this.init()}return Nke(t,[{key:"init",value:function(){var r=this.element,n=r.tagName.toLowerCase(),a;if(!r[Qr]){if(r[Qr]=this,n==="img"){if(this.isImg=!0,a=r.getAttribute("src")||"",this.originalUrl=a,!a)return;a=r.src}else n==="canvas"&&window.HTMLCanvasElement&&(a=r.toDataURL());this.load(a)}}},{key:"load",value:function(r){var n=this;if(r){this.url=r,this.imageData={};var a=this.element,i=this.options;if(!i.rotatable&&!i.scalable&&(i.checkOrientation=!1),!i.checkOrientation||!window.ArrayBuffer){this.clone();return}if(qke.test(r)){Xke.test(r)?this.read(h2e(r)):this.clone();return}var o=new XMLHttpRequest,s=this.clone.bind(this);this.reloading=!0,this.xhr=o,o.onabort=s,o.onerror=s,o.ontimeout=s,o.onprogress=function(){o.getResponseHeader("content-type")!==s7&&o.abort()},o.onload=function(){n.read(o.response)},o.onloadend=function(){n.reloading=!1,n.xhr=null},i.checkCrossOrigin&&u7(r)&&a.crossOrigin&&(r=d7(r)),o.open("GET",r,!0),o.responseType="arraybuffer",o.withCredentials=a.crossOrigin==="use-credentials",o.send()}}},{key:"read",value:function(r){var n=this.options,a=this.imageData,i=m2e(r),o=0,s=1,l=1;if(i>1){this.url=p2e(r,s7);var c=v2e(i);o=c.rotate,s=c.scaleX,l=c.scaleY}n.rotatable&&(a.rotate=o),n.scalable&&(a.scaleX=s,a.scaleY=l),this.clone()}},{key:"clone",value:function(){var r=this.element,n=this.url,a=r.crossOrigin,i=n;this.options.checkCrossOrigin&&u7(n)&&(a||(a="anonymous"),i=d7(n)),this.crossOrigin=a,this.crossOriginUrl=i;var o=document.createElement("img");a&&(o.crossOrigin=a),o.src=i||n,o.alt=r.alt||"The image to crop",this.image=o,o.onload=this.start.bind(this),o.onerror=this.stop.bind(this),Vn(o,Q9),r.parentNode.insertBefore(o,r.nextSibling)}},{key:"start",value:function(){var r=this,n=this.image;n.onload=null,n.onerror=null,this.sizing=!0;var a=yl.navigator&&/(?:iPad|iPhone|iPod).*?AppleWebKit/i.test(yl.navigator.userAgent),i=function(c,d){nn(r.imageData,{naturalWidth:c,naturalHeight:d,aspectRatio:c/d}),r.initialImageData=nn({},r.imageData),r.sizing=!1,r.sized=!0,r.build()};if(n.naturalWidth&&!a){i(n.naturalWidth,n.naturalHeight);return}var o=document.createElement("img"),s=document.body||document.documentElement;this.sizingImage=o,o.onload=function(){i(o.width,o.height),a||s.removeChild(o)},o.src=n.src,a||(o.style.cssText="left:0;max-height:none!important;max-width:none!important;min-height:0!important;min-width:0!important;opacity:0;position:absolute;top:0;z-index:-1;",s.appendChild(o))}},{key:"stop",value:function(){var r=this.image;r.onload=null,r.onerror=null,r.parentNode.removeChild(r),this.image=null}},{key:"build",value:function(){if(!(!this.sized||this.ready)){var r=this.element,n=this.options,a=this.image,i=r.parentNode,o=document.createElement("div");o.innerHTML=Zke;var s=o.querySelector(".".concat(Qr,"-container")),l=s.querySelector(".".concat(Qr,"-canvas")),c=s.querySelector(".".concat(Qr,"-drag-box")),d=s.querySelector(".".concat(Qr,"-crop-box")),u=d.querySelector(".".concat(Qr,"-face"));this.container=i,this.cropper=s,this.canvas=l,this.dragBox=c,this.cropBox=d,this.viewBox=s.querySelector(".".concat(Qr,"-view-box")),this.face=u,l.appendChild(a),Vn(r,ai),i.insertBefore(s,r.nextSibling),ml(a,Q9),this.initPreview(),this.bind(),n.initialAspectRatio=Math.max(0,n.initialAspectRatio)||NaN,n.aspectRatio=Math.max(0,n.aspectRatio)||NaN,n.viewMode=Math.max(0,Math.min(3,Math.round(n.viewMode)))||0,Vn(d,ai),n.guides||Vn(d.getElementsByClassName("".concat(Qr,"-dashed")),ai),n.center||Vn(d.getElementsByClassName("".concat(Qr,"-center")),ai),n.background&&Vn(s,"".concat(Qr,"-bg")),n.highlight||Vn(u,Hke),n.cropBoxMovable&&(Vn(u,$P),Oy(u,My,yN)),n.cropBoxResizable||(Vn(d.getElementsByClassName("".concat(Qr,"-line")),ai),Vn(d.getElementsByClassName("".concat(Qr,"-point")),ai)),this.render(),this.ready=!0,this.setDragMode(n.dragMode),n.autoCrop&&this.crop(),this.setData(n.data),ni(n.ready)&&ro(r,a7,n.ready,{once:!0}),Im(r,a7)}}},{key:"unbuild",value:function(){if(this.ready){this.ready=!1,this.unbind(),this.resetPreview();var r=this.cropper.parentNode;r&&r.removeChild(this.cropper),ml(this.element,ai)}}},{key:"uncreate",value:function(){this.ready?(this.unbuild(),this.ready=!1,this.cropped=!1):this.sizing?(this.sizingImage.onload=null,this.sizing=!1,this.sized=!1):this.reloading?(this.xhr.onabort=null,this.xhr.abort()):this.image&&this.stop()}}],[{key:"noConflict",value:function(){return window.Cropper=x2e,t}},{key:"setDefaults",value:function(r){nn(l7,xm(r)&&r)}}])}();nn($J.prototype,g2e,_2e,y2e,b2e,w2e,S2e);var If=function(){return If=Object.assign||function(t){for(var e,r=1,n=arguments.length;r0&&R.zoomTo(ie)}(O.currentTarget.cropper,x),_&&_(O)}}));b&&b(k)}return function(){var O,R;(R=(O=C.current)===null||O===void 0?void 0:O.cropper)===null||R===void 0||R.destroy()}},[C]);var M=function(k){return C2e.reduce(function(O,R){var L=O,$=R;return L[$],OO(L,[typeof $=="symbol"?$:$+""])},k)}(If(If({},w),{crossOrigin:l,src:i,alt:g}));return E.createElement("div",{style:o,className:s},E.createElement("img",If({},M,{style:T2e,ref:C})))});const bu={mainDiv:{width:"100%",height:"100%",overflow:"auto"},formControl:{margin:0,minWidth:120},formControlMarginRight:{marginRight:5},formControlPaddingTop:{paddingTop:6.2}},k2e={once:"once",interval:"interval",intervalBetween:"intervalBetween",specific:"specific"},ya={seconds:"seconds",minutes:"minutes"},f7=["ra_Sunday","ra_Monday","ra_Tuesday","ra_Wednesday","ra_Thursday","ra_Friday","ra_Saturday","ra_Sunday"];function il(t){return t<10?`0${t}`:`${t}`}const E2e={mode:"interval",interval:{period:1,unit:ya.minutes}};function bS(t){if(t==="*")return[0,1,2,3,4,5,6];const e=t.split(","),r=[];return e.forEach(n=>{const a=n.split("-");if(a.length===2){const i=parseInt(a[0],10),o=parseInt(a[1],10);for(let s=i;s<=o;s++)r.includes(s===7?0:s)||r.push(s===7?0:s)}else{n==="7"&&(n="0");const i=parseInt(n,10);r.includes(i)||r.push(i)}}),r.sort(),r}function AJ(t,e){t=t.replace(/['"]/g,"").trim();const r=t.split(" ");let n,a=null;return r.length===6?n={seconds:r[0]||"*",minutes:r[1]||"*",hours:r[2]||"*",date:r[3]||"*",months:r[4]||"*",dow:r[5]||"*"}:n={seconds:null,minutes:r[0]||"*",hours:r[1]||"*",date:r[2]||"*",months:r[3]||"*",dow:r[4]||"*"},n.seconds===null&&n.minutes==="*"&&n.hours==="*"&&n.date==="*"&&n.months==="*"&&(n.dow==="*"||e)&&(a={mode:"interval",interval:{period:1,unit:ya.minutes}}),n.seconds==="*"&&n.minutes==="*"&&n.hours==="*"&&n.date==="*"&&n.months==="*"&&(n.dow==="*"||e)?a={mode:"interval",interval:{period:1,unit:ya.seconds}}:n.seconds===null&&n.minutes.includes("/")&&n.hours==="*"&&n.date==="*"&&n.months==="*"&&(n.dow==="*"||e)?a={mode:"interval",interval:{period:parseInt(n.minutes.split("/")[1],10),unit:ya.minutes}}:n.seconds!==null&&n.seconds.includes("/")&&n.minutes==="*"&&n.hours==="*"&&n.date==="*"&&n.months==="*"&&(n.dow==="*"||e)?a={mode:"interval",interval:{period:parseInt(n.seconds.split("/")[1],10),unit:ya.seconds}}:n.seconds!==null&&n.seconds.includes("/")&&n.minutes==="*"&&n.hours.includes("-")&&n.date==="*"&&n.months==="*"&&(n.dow==="*"||e)?a={mode:"intervalBetween",intervalBetween:{period:parseInt(n.seconds.split("/")[1],10),unit:ya.seconds,timeFrom:parseInt(n.hours.split("-")[0],10),timeTo:parseInt(n.hours.split("-")[1],10),weekdays:bS(n.dow)}}:n.seconds===null&&n.minutes.includes("/")&&n.hours.includes("-")&&n.date==="*"&&n.months==="*"&&(n.dow==="*"||e)?a={mode:"intervalBetween",intervalBetween:{period:parseInt(n.minutes.split("/")[1],10),unit:ya.minutes,timeFrom:parseInt(n.hours.split("-")[0],10),timeTo:parseInt(n.hours.split("-")[1],10),weekdays:bS(n.dow)}}:n.seconds===null&&parseInt(n.minutes,10).toString()===n.minutes&&parseInt(n.hours,10).toString()===n.hours&&n.date==="*"&&n.months==="*"&&(n.dow==="*"||e)?a={mode:"specific",specific:{time:`${il(parseInt(n.hours,10))}:${il(parseInt(n.minutes,10))}`,weekdays:bS(n.dow)}}:n.seconds===null&&parseInt(n.minutes,10).toString()===n.minutes&&parseInt(n.hours,10).toString()===n.hours&&parseInt(n.date,10).toString()===n.date&&parseInt(n.months,10).toString()===n.months&&(n.dow==="*"||e)&&(a={mode:"once",once:{time:`${il(parseInt(n.hours,10))}:${il(parseInt(n.minutes,10))}`,date:`${il(parseInt(n.date,10))}.${il(parseInt(n.months,10))}`}}),a}class $y extends E.Component{constructor(e){super(e);let r=typeof e.cronExpression=="string"?e.cronExpression.replace(/^["']/,"").replace(/["']\n?$/,""):"";r[0]==="{"&&(r="");const n=AJ(r||"* * * * *",!0)||E2e;this.state={extended:!1,cron:$y.state2cron(n),mode:"interval",once:{time:"00:00",date:""},interval:{period:1,unit:ya.minutes},intervalBetween:{period:1,unit:ya.minutes,timeFrom:0,timeTo:23,weekdays:[0,1,2,3,4,5,6]},specific:{time:"00:00",weekdays:[0,1,2,3,4,5,6]}},Object.assign(this.state,n),this.state.cron!==e.cronExpression&&setTimeout(()=>e.onChange&&e.onChange(this.state.cron),100)}static periodArray2text(e,r=7){if(r=r||7,e.length===r)return"*";const n=[];let a=null,i=null;if(!e.length)return"_";for(let o=0;o60&&(n.period=60),n.period!==void 0&&n.period<1&&(n.period=1),n.minutes!==void 0&&n.minutes!==null&&n.minutes>60&&(n.minutes=60),n.minutes!==void 0&&n.minutes!==null&&n.minutes<1&&(n.minutes=1),n.hours!==void 0&&n.hours!==null&&n.hours>24&&(n.hours=24),n.hours!==void 0&&n.hours!==null&&n.hours<1&&(n.hours=1),e.extended)r=`${n.minutes!==void 0&&n.minutes!==null&&n.minutes>1?`*/${n.minutes}`:"*"} ${n.hours!==void 0&&n.hours!==null&&n.hours>1?`*/${n.hours}`:"*"} * * *`;else switch(n.unit){case ya.seconds:r=`${n.period>1?`*/${n.period}`:"*"} * * * * *`;break;case ya.minutes:r=`${n.period>1?`*/${n.period}`:"*"} * * * *`;break}}else if(e.mode==="intervalBetween"){const n=e.intervalBetween||{period:1,unit:ya.minutes,timeFrom:0,timeTo:24,weekdays:[0,1,2,3,4,5,6]};let a;switch(n.timeFrom=n.timeFrom||0,n.timeTo=n.timeTo===void 0?24:n.timeTo,n.timeFrom!==0&&n.timeTo===24&&(n.timeTo=23),n.timeFrom===0&&n.timeTo===24?a="*":a=n.timeFrom!==n.timeTo?`${n.timeFrom}-${n.timeTo}`:"*",n.period>60&&(n.period=60),n.period<1&&(n.period=1),n.unit=n.unit||ya.minutes,n.unit){case ya.seconds:r=`${n.period>1?`*/${n.period}`:"*"} * ${a} * * ${this.periodArray2text(n.weekdays)}`;break;case ya.minutes:r=`${n.period>1?`*/${n.period}`:"*"} ${a} * * ${this.periodArray2text(n.weekdays)}`;break}}else if(e.mode==="specific"){const n=e.specific||{time:"00:00",weekdays:[0,1,2,3,4,5,6]},a=(n.time||"00:00").split(":");let i=parseInt(a[1],10)||0;i>59&&(i=59),i<0&&(i=0);let o=parseInt(a[0],10)||0;o>23&&(o=59),o<0&&(o=0),r=`${i} ${o} * * ${this.periodArray2text(n.weekdays||[])}`}else if(e.mode==="once"){const n=e.once||{time:"00:00",date:""};n.date||(n.date=`${new Date().getDate()}.${il(new Date().getMonth()+1)}`);const a=(n.time||"00:00").split(":"),i=n.date.split(".");let o=parseInt(a[1],10)||0;o>59&&(o=59),o<0&&(o=0);let s=parseInt(a[0],10)||0;s>23&&(s=59),s<0&&(s=0);let l=parseInt(i[0],10)||1;l>31&&(l=31),l<1&&(s=1);let c=parseInt(i[1],10)||1;c>12&&(c=12),c<1&&(c=1),r=`${o} ${s} ${l} ${c} *`}return r}recalcCron(){this.onChange($y.state2cron(this.state))}getControlsWeekdaysElements(e){const r=e==="intervalBetween"?this.state.intervalBetween:this.state.specific;return E.createElement("div",{key:"weekdays",style:{paddingLeft:8,width:"calc(100% - 8px)",maxWidth:600}},E.createElement("h5",null,te.t("ra_On weekdays")),[1,2,3,4,5,6,0].map(n=>E.createElement(Xt,{key:f7[n],control:E.createElement(Un,{checked:r.weekdays.includes(n),onChange:a=>{const i=JSON.parse(JSON.stringify(this.state[e])),o=i.weekdays.indexOf(n);a.target.checked?o===-1&&i.weekdays.push(n):o!==-1&&i.weekdays.splice(o,1),i.weekdays.sort(),e==="intervalBetween"?this.setState({intervalBetween:i},()=>this.recalcCron()):this.setState({specific:i},()=>this.recalcCron())},value:n.toString()}),label:te.t(f7[n])})))}getControlsPeriodElements(e){const r=e==="interval"?this.state.interval:this.state.intervalBetween;return this.state.extended?E.createElement("div",{key:"period",style:{paddingLeft:8,display:"inline-block"}},E.createElement("h5",{style:{marginBottom:5}},te.t("sc_period")),E.createElement(Sa,{variant:"standard",style:{marginTop:0,marginBottom:0,verticalAlign:"bottom"},key:"value",label:te.t("sc_minutes"),value:r.minutes,onChange:n=>{const a=JSON.parse(JSON.stringify(this.state[e]));a.minutes=parseInt(n.target.value,10),a.minutes<1&&(a.minutes=1),e==="interval"?this.setState({interval:a},()=>this.recalcCron()):this.setState({intervalBetween:a},()=>this.recalcCron())},slotProps:{htmlInput:{min:1,max:60},inputLabel:{shrink:!0}},type:"number",margin:"normal"}),E.createElement(Sa,{variant:"standard",style:{marginTop:0,marginBottom:0,verticalAlign:"bottom"},key:"value",label:te.t("sc_hours"),value:r.hours,onChange:n=>{const a=JSON.parse(JSON.stringify(this.state[e]));a.hours=parseInt(n.target.value,10),a.hours<1&&(a.hours=1),e==="interval"?this.setState({interval:a},()=>this.recalcCron()):this.setState({intervalBetween:a},()=>this.recalcCron())},slotProps:{htmlInput:{min:1,max:24},inputLabel:{shrink:!0}},type:"number",margin:"normal"})):E.createElement("div",{key:"period",style:{paddingLeft:8,display:"inline-block"}},E.createElement("h5",{style:{marginBottom:5}},te.t("sc_period")),E.createElement(Sa,{variant:"standard",style:{marginTop:0,marginBottom:0,verticalAlign:"bottom"},key:"value",label:te.t("sc_every"),value:r.period,onChange:n=>{const a=JSON.parse(JSON.stringify(this.state[e]));a.period=parseInt(n.target.value,10),a.period<1&&(a.period=1),e==="interval"?this.setState({interval:a},()=>this.recalcCron()):this.setState({intervalBetween:a},()=>this.recalcCron())},slotProps:{htmlInput:{min:1,max:60},inputLabel:{shrink:!0}},type:"number",margin:"normal"}),E.createElement(ns,{variant:"standard",style:{verticalAlign:"bottom"},value:r.unit,onChange:n=>{const a=JSON.parse(JSON.stringify(this.state[e]));a.unit=n.target.value,e==="interval"?this.setState({interval:a},()=>this.recalcCron()):this.setState({intervalBetween:a},()=>this.recalcCron())}},E.createElement(tn,{value:"seconds"},te.t("sc_seconds")),")",E.createElement(tn,{value:"minutes"},te.t("sc_minutes")),")"))}getControlsTime(e){const r=e==="once"?this.state.once:this.state.specific;return E.createElement(Af,{variant:"standard",sx:{...bu.formControl,"&.MuiFormControl-root":bu.formControlMarginRight}},E.createElement(Sa,{variant:"standard",key:"at",label:te.t("sc_time"),value:r.time,type:"time",sx:n=>({'& input[type="time"]::-webkit-calendar-picker-indicator':{filter:n.palette.mode==="dark"?"invert(80%)":void 0}}),onChange:n=>{const a=JSON.parse(JSON.stringify(this.state[e]));a.time=n.target.value,e==="once"?this.setState({once:a},()=>this.recalcCron()):this.setState({specific:a},()=>this.recalcCron())},slotProps:{inputLabel:{shrink:!0}},margin:"normal"}))}getControlsDate(){const e=this.state.once;if(!e.date){const r=new Date;e.date=`${r.getDate()}.${il(r.getMonth()+1)}`}return E.createElement(Af,{variant:"standard",style:bu.formControl},E.createElement(Sa,{variant:"standard",key:"date",label:te.t("sc_date"),value:e.date,type:"text",slotProps:{htmlInput:{style:bu.formControlPaddingTop},inputLabel:{shrink:!0}},onChange:r=>{const n=JSON.parse(JSON.stringify(this.state.once));n.date=r.target.value,this.setState({once:n},()=>this.recalcCron())},margin:"normal"}))}getOnceElements(){return E.createElement("div",{style:{marginLeft:8}},this.getControlsTime("once"),this.getControlsDate())}getIntervalElements(){return this.getControlsPeriodElements("interval")}getIntervalBetweenElements(){const e=this.state.intervalBetween;return[this.getControlsPeriodElements("intervalBetween"),E.createElement("div",{key:"between",style:{paddingLeft:8,display:"inline-block",verticalAlign:"top"}},E.createElement("h5",{style:{marginBottom:5}},te.t("sc_hours")),E.createElement(Af,{variant:"standard",style:bu.formControl},E.createElement(ty,{shrink:!0,htmlFor:"age-label-placeholder"},te.t("sc_from")),E.createElement(ns,{variant:"standard",style:{width:100},value:e.timeFrom,onChange:r=>{const n=JSON.parse(JSON.stringify(this.state.intervalBetween));n.timeFrom=parseInt(r.target.value,10),n.timeTo===24&&(n.timeTo=23),this.setState({intervalBetween:n},()=>this.recalcCron())}},[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23].map(r=>E.createElement(tn,{key:`B_${r}`,value:r},`${il(r)}:00`)))),E.createElement(Af,{variant:"standard",style:bu.formControl},E.createElement(ty,{shrink:!0,htmlFor:"age-label-placeholder"},te.t("sc_to")),E.createElement(ns,{variant:"standard",style:{width:100},value:e.timeTo,onChange:r=>{const n=JSON.parse(JSON.stringify(this.state.intervalBetween));n.timeTo=parseInt(r.target.value,10),this.setState({intervalBetween:n},()=>this.recalcCron())}},[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23].map(r=>E.createElement(tn,{key:`A_${r}`,value:r},`${il(r)}:00`)),!e.timeFrom&&E.createElement(tn,{value:24},"00:00")))),this.getControlsWeekdaysElements("intervalBetween")]}getSpecificTimeElements(){return[E.createElement("div",{key:"time",style:{marginLeft:8}},this.getControlsTime("specific")),this.getControlsWeekdaysElements("specific")]}onModeChange(e){e!==this.state.mode&&this.setState({mode:e},()=>this.recalcCron())}onChange(e){e!==this.state.cron&&(this.setState({cron:e}),this.props.onChange&&this.props.onChange(e))}render(){return E.createElement("div",{style:bu.mainDiv},E.createElement("div",{style:{paddingLeft:8,width:"calc(100% - 8px)"}},E.createElement(Sa,{variant:"standard",style:{width:"100%"},value:this.state.cron,disabled:!0,error:this.state.cron.includes("_")})),E.createElement("div",{style:{paddingLeft:8,width:"calc(100% - 8px)",height:60}},this.state.cron.includes("_")?te.t("sc_invalid_cron"):tJ(this.state.cron,this.props.language||"en")),E.createElement("div",null,E.createElement(Af,{variant:"standard",style:{...bu.formControl,marginLeft:8,marginTop:8}},E.createElement(ty,null,te.t("ra_Repeat")),E.createElement(ns,{variant:"standard",value:this.state.mode,onChange:e=>this.onModeChange(e.target.value),inputProps:{name:"mode",id:"mode"}},E.createElement(tn,{value:"once"},te.t("sc_once")),E.createElement(tn,{value:"interval"},te.t("sc_interval")),E.createElement(tn,{value:"intervalBetween"},te.t("sc_intervalBetween")),E.createElement(tn,{value:"specific"},te.t("sc_specific"))))),this.state.mode===k2e.once&&this.getOnceElements(),this.state.mode==="interval"&&this.getIntervalElements(),this.state.mode==="intervalBetween"&&this.getIntervalBetweenElements(),this.state.mode==="specific"&&this.getSpecificTimeElements())}}const D2e={headerID:{fontWeight:"bold",fontStyle:"italic"},radio:{display:"inline-block"},dialogPaper:{height:"calc(100% - 96px)"}};class i3t extends E.Component{constructor(e){super(e);let r;this.props.cron&&typeof this.props.cron=="string"&&this.props.cron.replace(/^["']/,"")[0]!=="{"?r=this.props.cron.replace(/['"]/g,"").trim():(r=this.props.cron||"{}",typeof r=="string"&&(r=r.replace(/^["']/,"").replace(/["']\n?$/,""))),this.state={showWarning:"",cron:r}}handleCancel(){this.props.onClose()}handleOk(e){if(!e){const r=Ru.cron2state(this.state.cron);if(r.seconds==="*"||r.seconds==="*/1"){this.setState({showWarning:"everySecond"});return}if(r.minutes==="*"||r.minutes==="*/1"){this.setState({showWarning:"everyMinute"});return}}this.props.onOk(this.state.cron),this.props.onClose()}renderWarningDialog(){return this.state.showWarning?E.createElement(W_e,{title:te.t("ra_Please confirm"),text:te.t(this.state.showWarning==="everySecond"?"ra_The schedule will be executed every second. Are you sure?":"ra_The schedule will be executed every minute. Are you sure?"),onClose:e=>this.setState({showWarning:""},()=>{e&&this.handleOk(!0)})}):null}handleClear(){this.props.onOk(!1),this.props.onClose()}render(){return E.createElement(ms,{onClose:()=>{},maxWidth:"md",fullWidth:!0,sx:{"& .MuiDialog-paper":D2e.dialogPaper},open:!0,"aria-labelledby":"cron-dialog-title"},this.renderWarningDialog(),E.createElement(_s,{id:"cron-dialog-title"},this.props.title||te.t("ra_Define schedule...")),E.createElement(gs,{style:{height:"100%",overflow:"hidden"}},E.createElement(Ru,{cronExpression:this.state.cron,onChange:e=>this.setState({cron:e}),language:te.getLanguage()})),E.createElement(vs,null,!!this.props.clearButton&&E.createElement(Vr,{color:"grey",variant:"contained",onClick:()=>this.handleClear(),startIcon:E.createElement(_S,null)},this.props.clear||te.t("ra_Clear")),E.createElement(Vr,{variant:"contained",onClick:()=>this.handleOk(),color:"primary",startIcon:E.createElement(Ch,null)},this.props.ok||te.t("ra_Ok")),E.createElement(Vr,{color:"grey",variant:"contained",onClick:()=>this.handleCancel(),startIcon:E.createElement(LC,null)},this.props.cancel||te.t("ra_Cancel"))))}}const M2e={dialogPaper:{height:"calc(100% - 96px)"}};class o3t extends E.Component{constructor(e){super(e);let r;this.props.cron&&typeof this.props.cron=="string"&&this.props.cron.replace(/^["']/,"")[0]!=="{"?r=this.props.cron.replace(/['"]/g,"").trim():(r=this.props.cron||"{}",typeof r=="string"&&(r=r.replace(/^["']/,"").replace(/["']\n?$/,""))),this.state={cron:r,mode:this.props.simple?"simple":this.props.complex?"complex":(typeof r=="object"||r[0]==="{")&&!this.props.noWizard?"wizard":AJ(this.props.cron||"* * * * *")?"simple":"complex"}}handleCancel(){this.props.onClose()}handleOk(){this.props.onOk(this.state.cron),this.props.onClose()}setMode(e){this.setState({mode:e})}render(){return E.createElement(ms,{onClose:()=>{},maxWidth:"md",fullWidth:!0,sx:{"& .MuiDialog-paper":M2e.dialogPaper},open:!0,"aria-labelledby":"cron-dialog-title"},E.createElement(_s,{id:"cron-dialog-title"},this.props.title||te.t("ra_Define schedule...")),E.createElement(gs,{style:{height:"100%",overflow:"hidden"}},this.props.simple&&this.props.complex||!this.props.simple&&!this.props.complex?E.createElement("div",null,!this.props.simple&&!this.props.complex&&!this.props.noWizard&&E.createElement(E.Fragment,null,E.createElement(Yr,{key:"wizard",checked:this.state.mode==="wizard",onChange:()=>this.setMode("wizard")}),E.createElement("label",{onClick:()=>this.setMode("wizard"),style:this.state.mode!=="wizard"?{color:"lightgrey"}:{}},te.t("sc_wizard"))),(!this.props.simple&&!this.props.complex||this.props.simple)&&E.createElement(E.Fragment,null,E.createElement(Yr,{key:"simple",checked:this.state.mode==="simple",onChange:()=>this.setMode("simple")}),E.createElement("label",{onClick:()=>this.setMode("simple"),style:this.state.mode!=="simple"?{color:"lightgrey"}:{}},te.t("sc_simple"))),(!this.props.simple&&!this.props.complex||this.props.complex)&&E.createElement(E.Fragment,null,E.createElement(Yr,{key:"complex",checked:this.state.mode==="complex",onChange:()=>this.setMode("complex")}),E.createElement("label",{onClick:()=>this.setMode("complex"),style:this.state.mode!=="complex"?{color:"lightgrey"}:{}},te.t("sc_cron")))):null,this.state.mode==="simple"&&E.createElement($y,{cronExpression:this.state.cron,onChange:e=>this.setState({cron:e}),language:te.getLanguage()}),this.state.mode==="wizard"&&E.createElement(ea,{theme:this.props.theme,schedule:this.state.cron,onChange:e=>this.setState({cron:e})}),this.state.mode==="complex"&&E.createElement(Ru,{cronExpression:this.state.cron,onChange:e=>this.setState({cron:e}),language:te.getLanguage()})),E.createElement(vs,null,E.createElement(Vr,{variant:"contained",onClick:()=>this.handleOk(),color:"primary",startIcon:E.createElement(Ch,null)},this.props.ok||te.t("ra_Ok")),E.createElement(Vr,{variant:"contained",onClick:()=>this.handleCancel(),color:"grey",startIcon:E.createElement(LC,null)},this.props.cancel||te.t("ra_Cancel"))))}}const rf={headerID:{fontWeight:"bold",fontStyle:"italic"},dialog:{height:"95%"},dialogMobile:{padding:"4px",width:"100%",maxWidth:"100%",maxHeight:"calc(100% - 16px)",height:"100%"},content:{height:"100%",overflow:"hidden"},contentMobile:{padding:"8px 4px"},titleRoot:{whiteSpace:"nowrap",width:"calc(100% - 72px)",overflow:"hidden",display:"inline-block",textOverflow:"ellipsis"}};class s3t extends E.Component{constructor(r){super(r);de(this,"dialogName");de(this,"filters");this.dialogName=this.props.dialogName||"default",this.dialogName=`SelectFile.${this.dialogName}`;const n=(window._localStorage||window.localStorage).getItem(this.dialogName)||"{}";try{this.filters=JSON.parse(n)}catch{this.filters={}}r.filters&&(this.filters={...this.filters,...r.filters});let a=this.props.selected||[];typeof a!="object"?a=[a]:a=[...a],a=a.filter(i=>i),this.state={selected:a}}handleCancel(){this.props.onClose()}handleOk(){this.props.onOk(this.props.multiSelect||!Array.isArray(this.state.selected)?this.state.selected:this.state.selected[0]||""),this.props.onClose()}render(){let r;return this.state.selected.length?!Array.isArray(this.state.selected)||this.state.selected.length===1?r=[E.createElement("span",{key:"selected"},te.t("ra_Selected")," "),E.createElement("span",{key:"id",style:rf.headerID},this.state.selected)]:r=[E.createElement("span",{key:"selected"},te.t("ra_Selected")," "),E.createElement("span",{key:"id",style:rf.headerID},te.t("%s items",this.state.selected.length))]:r=this.props.title||te.t("ra_Please select file..."),E.createElement(ms,{onClose:()=>{},maxWidth:!1,sx:{"& .MuiDialog-paper":{...rf.dialog,...rf.dialogMobile}},fullWidth:!0,open:!0,"aria-labelledby":"ar_dialog_selectfile_title"},E.createElement(_s,{id:"ar_dialog_selectfile_title",sx:{"&.MuiDialogTitle-root":rf.titleRoot}},r),E.createElement(gs,{style:{...rf.content,...rf.contentMobile}},E.createElement(Eke,{ready:!0,imagePrefix:this.props.imagePrefix||this.props.prefix||"../",allowUpload:!!this.props.allowUpload,allowDownload:this.props.allowDownload!==!1,allowCreateFolder:!!this.props.allowCreateFolder,allowDelete:!!this.props.allowDelete,allowView:this.props.allowView!==!1,showViewTypeButton:this.props.showViewTypeButton!==!1,showToolbar:this.props.showToolbar!==!1,limitPath:this.props.limitPath,filterFiles:this.props.filterFiles,filterByType:this.props.filterByType,selected:this.props.selected,restrictToFolder:this.props.restrictToFolder,allowNonRestricted:this.props.allowNonRestricted,onSelect:(n,a,i)=>{this.setState({selected:Array.isArray(n)?n:[n]},()=>a&&(!this.props.selectOnlyFolders||i)&&this.handleOk())},t:this.props.t||te.t,lang:this.props.lang||te.getLanguage(),socket:this.props.socket,themeType:this.props.themeType,themeName:this.props.themeName,theme:this.props.theme,showExpertButton:this.props.showExpertButton,expertMode:this.props.expertMode,showTypeSelector:this.props.showTypeSelector})),E.createElement(vs,null,E.createElement(Vr,{variant:"contained",onClick:()=>this.handleOk(),startIcon:E.createElement(Ch,null),disabled:!this.state.selected.length,color:"primary"},this.props.ok||te.t("ra_Ok")),E.createElement(Vr,{color:"grey",variant:"contained",onClick:()=>this.handleCancel(),startIcon:E.createElement(LC,null)},this.props.cancel||te.t("ra_Cancel"))))}}const O2e={dialogPaper:{height:"calc(100% - 96px)"}};class l3t extends E.Component{constructor(e){super(e);let r;this.props.cron&&typeof this.props.cron=="string"&&this.props.cron.replace(/^["']/,"")[0]!=="{"?r=this.props.cron.replace(/['"]/g,"").trim():(r=this.props.cron||"{}",typeof r=="string"&&(r=r.replace(/^["']/,"").replace(/["']\n?$/,""))),this.state={cron:r}}handleCancel(){this.props.onClose()}handleOk(){this.props.onOk(this.state.cron),this.props.onClose()}render(){return E.createElement(ms,{onClose:()=>{},maxWidth:"md",fullWidth:!0,sx:{"& .MuiDialog-paper":O2e.dialogPaper},open:!0,"aria-labelledby":"cron-dialog-title"},E.createElement(_s,{id:"cron-dialog-title"},this.props.title||te.t("ra_Define CRON...")),E.createElement(gs,{style:{height:"100%",overflow:"hidden"}},E.createElement($y,{cronExpression:this.state.cron,onChange:e=>this.setState({cron:e}),language:te.getLanguage()})),E.createElement(vs,null,E.createElement(Vr,{variant:"contained",disabled:!this.state.cron||this.state.cron.includes("_"),onClick:()=>this.handleOk(),color:"primary",startIcon:E.createElement(Ch,null)},this.props.ok||te.t("ra_Ok")),E.createElement(Vr,{variant:"contained",onClick:()=>this.handleCancel(),color:"grey",startIcon:E.createElement(LC,null)},this.props.cancel||te.t("ra_Cancel"))))}}const $2e="Append",A2e="Cancel",P2e="Categories",I2e="Checked",R2e="Delete",L2e="Close",N2e="Commercial",F2e="Configure",z2e="Connected",B2e="Copied",j2e="Create",W2e="Crop",H2e="Delete",U2e="Delete",Y2e="Discard",V2e="Disconnected",G2e="Error",q2e="Filter",X2e="Friday",J2e="Latitude",Z2e="Expires in",K2e="Longitude",Q2e="Message",eEe="Monday",tEe="Name",rEe="Objects",nEe="Ok",aEe="Product",iEe="Repeat",oEe="Replace",sEe="Root",lEe="Saturday",cEe="Save",uEe="Selected",dEe="States",fEe="Sunday",hEe="Thursday",pEe="Timestamp",mEe="Tuesday",vEe="Update",gEe="Valid till",_Ee="Value",yEe="Version",bEe="Wednesday",wEe="Width",SEe="Yes",xEe="different",CEe="Everyone can read object",TEe="Everyone can read state",kEe="Everyone can write object",EEe="Everyone can write state",DEe="Group can read object",MEe="Group can read state",OEe="Group can write object",$Ee="Group can write state",AEe="Owner can read object",PEe="Owner can read state",IEe="Owner can write object",REe="Owner can write state",LEe="Buttons",NEe="Changed from",FEe="close",zEe="Create boolean state",BEe="Create channel",jEe="Create device",WEe="Create number state",HEe="Create state",UEe="Create string state",YEe="days",VEe="Fr",GEe="Mo",qEe="Sa",XEe="Su",JEe="Th",ZEe="Tu",KEe="We",QEe="Expert mode",eDe="All files",tDe="Audio",rDe="Code/JSON",nDe="Images",aDe="Text",iDe="Video",oDe="Settings",sDe="without",lDe="Function",cDe="ID",uDe="Name",dDe="Role",fDe="Room",hDe="Type",pDe="Invalid settings",mDe="Last change",vDe="locally",gDe="Apr",_De="Aug",yDe="Dec",bDe="Feb",wDe="Jan",SDe="Jul",xDe="Jun",CDe="Mai",TDe="Mar",kDe="Nov",EDe="Oct",DDe="Sep",MDe="Apr",ODe="Aug",$De="Dec",ADe="Feb",PDe="Jan",IDe="Jul",RDe="Jun",LDe="Mai",NDe="Mar",FDe="Nov",zDe="Oct",BDe="Sep",jDe="none",WDe="Object changed by",HDe="Object last changed at",UDe="Settings from other adapter %s",YDe="Quality code",VDe="repeat",GDe='To select folder, just hold the key "shift" by clicking the folder.',qDe="State changed by",XDe="Object changed from",JDe="Timestamp",ZDe="Acknowledged",KDe="Comment",QDe="Copy the state value",eMe="Custom settings",tMe="Delete object",rMe="Edit object",nMe="Edit the state value",aMe="From",iMe="Last changed",oMe="Quality",sMe="Time stamp",lMe="User",cMe="Value",uMe="Value",dMe="Warning: The CRON job will run every minute during the specified period!",fMe="Warning: The CRON job will run every second during the specified period!",hMe="CRON",pMe="Date",mMe="Dates",vMe="Day",gMe="Day of week",_Me="Every",yMe="every N days",bMe="every Nth day of the week",wMe="every N day of week",SMe="every N hours",xMe="every N minutes",CMe="every N months",TMe="every N seconds",kMe="every day",EMe="every day of the week",DMe="every day of the week",MMe="every hour",OMe="every minute",$Me="every month",AMe="every second",PMe="From",IMe="Hours",RMe="Interval",LMe="Interval between",NMe="Invalid CRON",FMe="Minutes",zMe="months",BMe="Once",jMe="Period",WMe="Seconds",HMe="Simple",UMe="Specific time",YMe="specific dates",VMe="specific day(s) of the week",GMe="specific day of weeks",qMe="specific hours",XMe="specific minutes",JMe="specific months",ZMe="specific seconds",KMe="Time",QMe="To",eOe="Wizard",tOe="all",rOe="Astro day",nOe="Astro night",aOe="Dawn",iOe="Dusk",oOe="Golden hour",sOe="Golden hour end",lOe="Nadir",cOe="Nautical dawn",uOe="Nautical dusk",dOe="Night",fOe="Night end",hOe="Solar noon",pOe="Sunrise",mOe="Sunrise end",vOe="Sunset",gOe="Sunset start",_Oe="at",yOe="at %s",bOe="every day",wOe="every hour",SOe="every minute",xOe="every month",COe="every %s day",TOe="every %s hours",kOe="every %s minutes",EOe="every %s months",DOe="every %s weeks",MOe="every %s years",OOe="every week",$Oe="every year",AOe="from %s to %s",POe="never",IOe="on %s of %s",ROe="on %s and %s of",LOe="on every date of",NOe="%s",FOe="%s and %s",zOe="on %s",BOe="on %s and %s",jOe="on weekends",WOe="on working days",HOe="will ne be not executed any more, because start is in the past",UOe="on %s",YOe="from %s",VOe="Execute from to",GOe="to %s",qOe="every",XOe="Specific time",JOe="from",ZOe="From-to",KOe="Interval time",QOe="invert",e$e="none",t$e="on",r$e="Period",n$e="Daily",a$e="Dates",i$e="Day",o$e="Every",s$e="Every day",l$e="Every month",c$e="Every week",u$e="Every year",d$e="Hours",f$e="Minutes",h$e="month",p$e="Monthly",m$e="Once",v$e="Specific months",g$e="Week",_$e="Weekdays",y$e="Weekend",b$e="Weekly",w$e="Workdays",S$e="Year",x$e="Yearly",C$e="Specific time",T$e="Time",k$e="to",E$e="Valid",D$e="from",M$e="to",O$e="Whole day",$$e="every month",A$e={"ra_%s links from aliases":"%s links from aliases","ra_%s object(s) processed":"%s object(s) processed","ra_%s was imported":"%s was imported","ra_Accept license":"Accept license","ra_Add new child object to selected parent":"Add new child object to selected parent","ra_Add objects tree from JSON file":"Add objects tree from JSON file","ra_Add row":"Add row","ra_Advanced options":"Advanced options","ra_All items are filtered out":"All items are filtered out","ra_All objects":"All objects",ra_Append:$2e,"ra_Append %s entries or replace existing?":"Append %s entries or replace existing?","ra_Append or replace?":"Append or replace?","ra_Are you sure?":"Are you sure?","ra_Auto (no custom columns)":"Auto (no custom columns)","ra_Back to %s":"Back to %s","ra_Background image":"Background image",ra_Cancel:A2e,"ra_Cannot add items with set filter":"Cannot add items with set filter","ra_Cannot decode license":"Cannot decode license","ra_Cannot determine position: System settings are empty and GPS detection is disabled in browser":"Cannot determine position: System settings are empty and GPS detection is disabled in browser",'ra_Cannot find "%s"':'Cannot find "%s"','ra_Cannot read "%s"':'Cannot read "%s"',"ra_Cannot read licenses: %s":"Cannot read licenses: %s","ra_Cannot retrieve options, as instance is offline":"Cannot retrieve options, as instance is offline","ra_Cannot update attribute, because not found in the object":"Cannot update attribute, because not found in the object","ra_Cannot upload":"Cannot upload",ra_Categories:P2e,"ra_Chained certificate":"Chained certificate","ra_Change color theme":"Change color theme","ra_Changed from":"Changed from","ra_Channel → State":"Channel → State","ra_Check license":"Check license",ra_Checked:I2e,ra_Clear:R2e,"ra_Clear filter":"Clear filter","ra_Clear icon":"Clear icon","ra_Clone current row":"Clone current row",ra_Close:L2e,"ra_Collapse all nodes":"Collapse all nodes","ra_Collapse one step node":"Collapse one level",ra_Commercial:N2e,ra_Configure:F2e,"ra_Configure visible columns":"Configure visible columns","ra_Confirm deletion of %s":"Confirm deletion of %s",ra_Connected:z2e,ra_Copied:B2e,"ra_Copied %s":'Copied "%s"',"ra_Copy content":"Copy content",ra_Create:j2e,"ra_Create alias":"Create alias","ra_Create folder":"Create folder","ra_Create new folder in %s":"Create new folder in %s",ra_Crop:W2e,"ra_Define CRON...":"Define CRON...","ra_Define functions":"Define functions","ra_Define rooms":"Define rooms","ra_Define schedule":"Define schedule","ra_Define schedule...":"Define schedule...",ra_Del:H2e,ra_Delete:U2e,"ra_Delete (no confirm for 5 mins)":"Delete (no confirm for 5 mins)","ra_Delete current row":"Delete current row","ra_Deselect all":"Unselect all","ra_Device → Channel → State":"Device → Channel → State",ra_Discard:Y2e,ra_Disconnected:V2e,"ra_Do not export values of states":"Do not export values of states","ra_Do not use let's encrypt":"Do not use let's encrypt","ra_Double click to reset table layout":"Double click to reset table layout","ra_Drag 'n' drop some files here, or click to select files":"Drag 'n' drop some files here, or click to select files","ra_Drop file here":"Drop file here","ra_Drop the files here...":"Drop the file here...","ra_Duplicate name":"Duplicate name","ra_Edit ACL":"Edit ACL","ra_Edit alias":"Edit alias","ra_Edit custom config":"Edit custom config","ra_Edit function":"Edit function","ra_Edit object field":"Edit object field","ra_Edit role":"Edit role","ra_Edit room":"Edit room","ra_Edit value":"Edit value",ra_Error:G2e,"ra_Expand all nodes":"Expand all nodes","ra_Expand one step node":"Expand one level","ra_Export data to %s file":"Export data to %s file","ra_Failed to open JSON File":"Failed to open JSON File","ra_Fallback custom certificates":"Fallback custom certificates","ra_File is too big. Max %sk allowed. Try use SVG.":"File is too big. Max %sk allowed. Try use SVG.",ra_Filter:q2e,"ra_Filter files":"Filter files","ra_Folder name":"Folder name","ra_Folder → Channel → State":"Folder → Channel → State","ra_Folder → Device → Channel → State":"Folder → Device → Channel → State","ra_Folder → State":"Folder → State","ra_Folders always first":"Folders always first",ra_Friday:X2e,"ra_Good luck":"Good luck","ra_Hide empty folders":"Hide empty folders","ra_If no file will be created in the folder, it will disappear after the browser closed":"If no file will be created in the folder, it will disappear after the browser closed","ra_Import data from %s file":"Import data from %s file","ra_Import from %s":"Import from %s","ra_Instance %s is alive":"Instance %s is alive","ra_Instance %s is not alive":"Instance %s is not alive","ra_Instance is not alive":"Instance is not alive","ra_Invalid CRON":"Invalid CRON","ra_Invalid JSON":"Invalid JSON","ra_Invalid answer from server":"Invalid answer from server","ra_Invalid parent folder!":"Invalid parent folder!","ra_Invalid structure":"Invalid structure","ra_JSON editor":"JSON editor","ra_Last change":"Last change",ra_Latitude:J2e,"ra_License %s":"License %s","ra_License agreement":"License agreement","ra_License does not exist":"License does not exist",ra_tooltip_expire:Z2e,"ra_License expired on %s":"License expired on %s",'ra_License for other product "%s"':'License for other product "%s"',"ra_License is for version %s, but required version is %s.":"License is for version %s, but required version is %s.","ra_License must be converted":"License must be converted to newer version. You can do it in your iobroker.net profile.","ra_License not found in license manager. Do you want to read licenses from iobroker.net?":"License not found in the license manager. Do you want to update licenses from iobroker.net?","ra_Listen on all IPs":"Listen on all IPs","ra_Load configuration from file":"Load configuration from file",ra_Longitude:K2e,'ra_May not trigger "updateLicenses"':'May not trigger "updateLicenses"',ra_Message:Q2e,ra_Monday:eEe,"ra_Move down":"Move down","ra_Move up":"Move up",ra_Name:tEe,"ra_No data found in file":"No data found in file","ra_No one license found in license manager":"No one license found in license manager","ra_No response from the backend":"No response from the backend",'ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".':'Non-experts may create new objects only in "0_userdata.0" or "alias.0".',"ra_Not a number":"Not a number",ra_Objects:rEe,ra_Ok:nEe,"ra_On weekdays":"On weekdays","ra_Only following structures of objects are available:":"Only following structures of objects are available:","ra_Only selected":"Only selected","ra_Owner group":"Owner group","ra_Owner user":"Owner user","ra_Passwords are not equal!":"Passwords are not equal!","ra_Place your files here or click here to open the browse dialog":"Place your files here or click here to open the browse dialog","ra_Please confirm":"Please confirm","ra_Please create license":"Please create license","ra_Please enter the license":"Please enter the license","ra_Please select file...":"Please select file...","ra_Please select object ID...":"Please select object ID...","ra_Port could be used by %s":"Port could be used by %s","ra_Port is already used by %s":"Port is already used by %s","ra_Private certificate":"Private certificate",ra_Product:aEe,"ra_Public certificate":"Public certificate","ra_Quality code":"Quality","ra_Refresh tree":"Refresh tree","ra_Reload files":"Reload files",ra_Repeat:iEe,ra_Replace:oEe,"ra_Request timed out":"Request timed out","ra_Restrict to folder":"Restrict to folder",ra_Root:sEe,ra_Saturday:lEe,ra_Save:cEe,"ra_Save and close":"Save and close","ra_Save configuration to file":"Save configuration to file","ra_Save objects tree as JSON file":"Save objects tree as JSON file","ra_Select all":"Select all","ra_Select color":"Select color","ra_Select predefined icon":"Select predefined icon","ra_Select type of export":"Select type of export",ra_Selected:uEe,"ra_Selected %s object(s)":"Selected %s object(s)","ra_Serial number (UUID)":"Serial number (UUID)",'ra_Serial number (UUID) "%s" in license is for other device.':'Serial number (UUID) "%s" in license is for other device.',"ra_Show all folders":"Show all folders","ra_Show lines between rows":"Show lines between rows","ra_Show/Hide object descriptions":"Show/Hide object descriptions","ra_Show/hide filter input":"Show/hide filter input","ra_Some data are not stored. Discard?":"Some data are not stored. Discard?",ra_States:dEe,"ra_Suitable license not found in license manager":"Suitable license not found in license manager",ra_Sunday:fEe,"ra_Suppress question for next %s minutes":"Suppress question for next %s minutes","ra_System language":"System language","ra_Take browser position":"Take position from browser","ra_Take position from system settings":"Take position from system settings",'ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").':'The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").',"ra_The page you are looking for was not found":"The page you are looking for was not found","ra_The schedule will be executed every minute. Are you sure?":"The schedule will be executed every minute. Are you sure?","ra_The schedule will be executed every second. Are you sure?":"The schedule will be executed every second. Are you sure?",ra_Thursday:hEe,ra_Timestamp:pEe,"ra_Toggle expert mode":"Toggle expert mode","ra_Toggle the states view":"Toggle the states view","ra_Toggle view mode":"Toggle view mode","ra_Too big":"Too big","ra_Too small":"Too small","ra_Transparent dialog":"Transparent dialog",ra_Tuesday:mEe,"ra_Unknown error":"Unknown error","ra_Unknown error!":"Unknown error!",ra_Update:vEe,"ra_Upload file":"Upload file","ra_Use all available let's encrypt certificates":"Use all available let's encrypt certificates","ra_Use iobroker.acme adapter for letsencrypt certificates":"Use iobroker.acme adapter for letsencrypt certificates","ra_Use system settings for position":"Use system settings for position","ra_Used system settings":"Used system settings","ra_User files":"User files",ra_ValidTill:gEe,ra_Value:_Ee,ra_Version:yEe,"ra_View file":"View file","ra_View: %s":"View: %s",ra_Wednesday:bEe,ra_Width:wEe,ra_Yes:SEe,"ra_You can export all objects or just the selected branch.":"You can export all objects or just the selected branch.","ra_You can filter entries by entering here some text":"You can filter entries by entering here some text",ra___different__:xEe,ra_aclEveryone_read_object:CEe,ra_aclEveryone_read_state:TEe,ra_aclEveryone_write_object:kEe,ra_aclEveryone_write_state:EEe,ra_aclGroup_read_object:DEe,ra_aclGroup_read_state:MEe,ra_aclGroup_write_object:OEe,ra_aclGroup_write_state:$Ee,ra_aclOwner_read_object:AEe,ra_aclOwner_read_state:PEe,ra_aclOwner_write_object:IEe,ra_aclOwner_write_state:REe,ra_buttons:LEe,ra_changedFrom:NEe,ra_close:FEe,ra_create_boolean_state:zEe,ra_create_channel:BEe,ra_create_device:jEe,ra_create_number_state:WEe,ra_create_state:HEe,ra_create_string_state:UEe,ra_daysShortText:YEe,ra_dow_Fr:VEe,ra_dow_Mo:GEe,ra_dow_Sa:qEe,ra_dow_Su:XEe,ra_dow_Th:JEe,ra_dow_Tu:ZEe,ra_dow_We:KEe,ra_expertMode:QEe,ra_fileType_all:eDe,ra_fileType_audio:tDe,ra_fileType_code:rDe,ra_fileType_images:nDe,ra_fileType_txt:aDe,ra_fileType_video:iDe,"ra_fileType_video,":"Video",ra_filter_customs:oDe,ra_filter_customs_without:sDe,ra_filter_func:lDe,ra_filter_id:cDe,ra_filter_name:uDe,ra_filter_role:dDe,ra_filter_room:fDe,ra_filter_type:hDe,"ra_import data from %s file":"Import data from %s file",ra_invalidConfig:pDe,ra_lastChange:mDe,ra_locally:vDe,ra_month_Apr:gDe,ra_month_Aug:_De,ra_month_Dec:yDe,ra_month_Feb:bDe,ra_month_Jan:wDe,ra_month_Jul:SDe,ra_month_Jun:xDe,ra_month_Mai:CDe,ra_month_Mar:TDe,ra_month_Nov:kDe,ra_month_Oct:EDe,ra_month_Sep:DDe,ra_months_Apr:MDe,ra_months_Aug:ODe,ra_months_Dec:$De,ra_months_Feb:ADe,ra_months_Jan:PDe,ra_months_Jul:IDe,ra_months_Jun:RDe,ra_months_Mai:LDe,ra_months_Mar:NDe,ra_months_Nov:FDe,ra_months_Oct:zDe,ra_months_Sep:BDe,ra_none:jDe,ra_object_changed_by:WDe,ra_object_changed_by_user:HDe,ra_otherConfig:UDe,ra_qualityCode:YDe,ra_repeat:VDe,ra_select_folder_hint:GDe,ra_state_changed_by:qDe,ra_state_changed_from:XDe,ra_timestamp:JDe,ra_tooltip_ack:ZDe,ra_tooltip_comment:KDe,ra_tooltip_copyState:QDe,ra_tooltip_customConfig:eMe,ra_tooltip_deleteObject:tMe,ra_tooltip_editObject:rMe,ra_tooltip_editState:nMe,ra_tooltip_from:aMe,ra_tooltip_lc:iMe,ra_tooltip_quality:oMe,ra_tooltip_ts:sMe,ra_tooltip_user:lMe,ra_tooltip_value:cMe,"ra_use seconds":"use seconds",ra_val:uMe,"ra_via internet":"via internet",ra_warning_every_minute:dMe,ra_warning_every_second:fMe,sc_cron:hMe,sc_date:pMe,sc_dates:mMe,sc_dow:vMe,sc_dows:gMe,sc_every:_Me,sc_everyN_dates:yMe,sc_everyN_dow:bMe,sc_everyN_dows:wMe,sc_everyN_hours:SMe,sc_everyN_minutes:xMe,sc_everyN_months:CMe,sc_everyN_seconds:TMe,sc_every_dates:kMe,sc_every_dow:EMe,sc_every_dows:DMe,sc_every_hours:MMe,sc_every_minutes:OMe,sc_every_months:$Me,sc_every_seconds:AMe,sc_from:PMe,sc_hours:IMe,sc_interval:RMe,sc_intervalBetween:LMe,sc_invalid_cron:NMe,sc_minutes:FMe,sc_months:zMe,sc_once:BMe,sc_period:jMe,sc_seconds:WMe,sc_simple:HMe,sc_specific:UMe,sc_specific_dates:YMe,sc_specific_dow:VMe,sc_specific_dows:GMe,sc_specific_hours:qMe,sc_specific_minutes:XMe,sc_specific_months:JMe,sc_specific_seconds:ZMe,sc_time:KMe,sc_to:QMe,sc_wizard:eOe,sch_all:tOe,sch_astroDay:rOe,sch_astroNight:nOe,sch_astro_dawn:aOe,sch_astro_dusk:iOe,sch_astro_goldenHour:oOe,sch_astro_goldenHourEnd:sOe,sch_astro_nadir:lOe,sch_astro_nauticalDawn:cOe,sch_astro_nauticalDusk:uOe,sch_astro_night:dOe,sch_astro_nightEnd:fOe,sch_astro_solarNoon:hOe,sch_astro_sunrise:pOe,sch_astro_sunriseEnd:mOe,sch_astro_sunset:vOe,sch_astro_sunsetStart:gOe,sch_at:_Oe,sch_desc_atTime:yOe,sch_desc_everyDay:bOe,sch_desc_everyHour:wOe,sch_desc_everyMinute:SOe,sch_desc_everyMonth:xOe,sch_desc_everyNDay:COe,sch_desc_everyNHours:TOe,sch_desc_everyNMinutes:kOe,sch_desc_everyNMonths:EOe,sch_desc_everyNWeeks:DOe,sch_desc_everyNYears:MOe,sch_desc_everyWeek:OOe,sch_desc_everyYear:$Oe,sch_desc_intervalFromTo:AOe,sch_desc_never:POe,sch_desc_onDate:IOe,sch_desc_onDates:ROe,sch_desc_onEveryDate:LOe,sch_desc_onMonth:NOe,sch_desc_onMonths:FOe,sch_desc_onWeekday:zOe,sch_desc_onWeekdays:BOe,sch_desc_onWeekends:jOe,sch_desc_onWorkdays:WOe,sch_desc_onceInPast:HOe,sch_desc_once_on:UOe,sch_desc_validFrom:YOe,sch_desc_validFromTo:VOe,sch_desc_validTo:GOe,sch_every:qOe,sch_exactTime:XOe,sch_from:JOe,sch_fromTo:ZOe,sch_intervalTime:KOe,sch_invert:QOe,sch_no_one:e$e,sch_on:t$e,sch_period:r$e,sch_periodDaily:n$e,sch_periodDates:a$e,sch_periodDay:i$e,sch_periodEvery:o$e,sch_periodEveryDay:s$e,sch_periodEveryMonth:l$e,sch_periodEveryWeek:c$e,sch_periodEveryYear:u$e,sch_periodHours:d$e,sch_periodMinutes:f$e,sch_periodMonth:h$e,sch_periodMonthly:p$e,sch_periodOnce:m$e,sch_periodSpecificMonths:v$e,sch_periodWeek:g$e,sch_periodWeekdays:_$e,sch_periodWeekend:y$e,sch_periodWeekly:b$e,sch_periodWorkdays:w$e,sch_periodYear:S$e,sch_periodYearly:x$e,sch_specificTime:C$e,sch_time:T$e,sch_to:k$e,sch_valid:E$e,sch_validFrom:D$e,sch_validTo:M$e,sch_wholeDay:O$e,sch_yearEveryMonth:$$e},P$e="Anhängen",I$e="Abbrechen",R$e="Kategorien",L$e="Geprüft",N$e="Löschen",F$e="Schließen",z$e="Kommerziell",B$e="Konfigurieren",j$e="Verbunden",W$e="Kopiert",H$e="Erstellen",U$e="Ernte",Y$e="Entf",V$e="Löschen",G$e="Verwerfen",q$e="Getrennt",X$e="Fehler",J$e="Filter",Z$e="Freitag",K$e="Breite",Q$e="Längengrad",eAe="Meldung",tAe="Montag",rAe="Name",nAe="Objekte",aAe="OK",iAe="Produkt",oAe="Wiederholen",sAe="Ersetzen",lAe="Anfang",cAe="Samstag",uAe="Speichern",dAe="Ausgewählt",fAe="Zustände",hAe="Sonntag",pAe="Donnerstag",mAe="Zeitstempel",vAe="Dienstag",gAe="Aktualisieren",_Ae="Gültig bis",yAe="Wert",bAe="Ausführung",wAe="Mittwoch",SAe="Breite",xAe="Ja",CAe="unterschiedlich",TAe="Jeder kann Objekt lesen",kAe="Jeder kann Zustand lesen",EAe="Jeder kann ein Objekt schreiben",DAe="Jeder kann Zustand schreiben",MAe="Gruppe kann Objekt lesen",OAe="Gruppe kann Status lesen",$Ae="Gruppe kann Objekt schreiben",AAe="Gruppe kann Status schreiben",PAe="Besitzer kann Objekt lesen",IAe="Besitzer kann Zustand lesen",RAe="Besitzer kann Objekt schreiben",LAe="Besitzer kann Zustand schreiben",NAe="Tasten",FAe="Geändert von",zAe="Schließen",BAe="Booleschen Zustand erstellen",jAe="Kanal erstellen",WAe="Gerät erstellen",HAe="Nummern-Zustand erstellen",UAe="Zustand erstellen",YAe="String-Zustand erstellen",VAe="T.",GAe="Fr",qAe="Mo",XAe="Sa",JAe="So",ZAe="Do",KAe="Di",QAe="Mi",ePe="Expertenmodus",tPe="Alle Dateien",rPe="Audio",nPe="Code/JSON",aPe="Bilder",iPe="Text",oPe="Video",sPe="Einstellungen",lPe="ohne",cPe="Funktion",uPe="ID",dPe="Name",fPe="Rolle",hPe="Raum",pPe="Typ",mPe="Ungültige Einstellungen",vPe="Letzte Änderung",gPe="örtlich",_Pe="Apr",yPe="Aug",bPe="Dez",wPe="Feb",SPe="Jan",xPe="Jul",CPe="Jun",TPe="Mai",kPe="Mär",EPe="Nov",DPe="Okt",MPe="Sep",OPe="Apr",$Pe="Aug",APe="Dez",PPe="Feb",IPe="Jan",RPe="Jul",LPe="Jun",NPe="Mai",FPe="Mär",zPe="Nov",BPe="Okt",jPe="Sep",WPe="kein",HPe="Objekt geändert von",UPe="Objekt zuletzt geändert um",YPe="Einstellungen von anderen Adaptern %s",VPe="Qualitätscode",GPe="wiederholen",qPe='Um einen Ordner auszuwählen, halten Sie einfach die Taste "Shift" gedrückt, indem Sie auf den Ordner klicken.',XPe="Zustand geändert durch",JPe="Objekt geändert von",ZPe="Zeitstempel",KPe="Bestätigt",QPe="Kommentar",eIe="Statuswert kopieren",tIe="Benutzerdefinierte Einstellungen",rIe="Objekt löschen",nIe="Objekt bearbeiten",aIe="Statuswert bearbeiten",iIe="Von",oIe="Zuletzt geändert",sIe="Qualität",lIe="Zeitstempel",cIe="Benutzer",uIe="Wert",dIe="Wert",fIe="Achtung: Der CRON-Job wird im angegebenen Zeitraum jede Minute ausgeführt!",hIe="Achtung: Der CRON-Job wird im angegebenen Zeitraum jede Sekunde ausgeführt!",pIe="CRON",mIe="Datum",vIe="Tage",gIe="Tag",_Ie="Wochentage",yIe="Jeden",bIe="alle N Tage",wIe="jeden x-ten Tag der Woche",SIe="alle N Wochentage",xIe="alle N Stunden",CIe="alle N Minuten",TIe="alle N Monate",kIe="alle N Sekunden",EIe="jeden Tag",DIe="jeden Tag der Woche",MIe="jeden Tag der Woche",OIe="jede Stunde",$Ie="jede Minute",AIe="jeden Monat",PIe="jede Sekunde",IIe="Von",RIe="Stunden",LIe="Intervall",NIe="Intervall zwischen",FIe="Ungültiger CRON",zIe="Minuten",BIe="Monate",jIe="Einmal",WIe="Zeitraum",HIe="Sekunden",UIe="Einfach",YIe="Bestimmte Zeit",VIe="bestimmte Tage",GIe="bestimmte(r) Tag(e) der Woche",qIe="bestimmten Wochentag",XIe="bestimmte Stunden",JIe="bestimmte Minuten",ZIe="bestimmte Monate",KIe="bestimmte Sekunden",QIe="Zeit",eRe="Bis",tRe="Wizard",rRe="alle",nRe="Astronomischer Tag",aRe="Astronomische Nacht",iRe="Morgendämmerung",oRe="Abenddämmerung",sRe="Goldene Stunde",lRe="Goldene Stundenende",cRe="Nadir",uRe="Nautische Morgendämmerung",dRe="Nautische Abenddämmerung",fRe="Nacht",hRe="Nachtende",pRe="Sonnenmittag",mRe="Sonnenaufgang",vRe="Sonnenaufgangende",gRe="Sonnenuntergang",_Re="Sonnenuntergangstart",yRe="am",bRe="um %s",wRe="jeden Tag",SRe="jede Stunde",xRe="jede Minute",CRe="jeden Monat",TRe="jeden %s Tag",kRe="alle %s Stunden",ERe="alle %s Minuten",DRe="alle %s Monate",MRe="alle %s Wochen",ORe="alle %s Jahre",$Re="jede Woche",ARe="jedes Jahr",PRe="von %s bis %s",IRe="noch nie",RRe="am %s von %s",LRe="am %s und %s von",NRe="an jedem Datum von",FRe="%s",zRe="%s und %s",BRe="auf %s",jRe="auf %s und %s",WRe="an Wochenenden",HRe="an Werktagen",URe="wird nicht mehr ausgeführt, weil der Start in der Vergangenheit ist",YRe="auf %s",VRe="von %s",GRe="Ausführen von bis",qRe="bis %s",XRe="jeden",JRe="Bestimmte Zeit",ZRe="von",KRe="Von bis",QRe="Zeitintervall",eLe="umkehren",tLe="keiner",rLe="am",nLe="Zeitraum",aLe="Täglich",iLe="Daten",oLe="Tag",sLe="Jeden",lLe="Jeden Tag",cLe="Jeden Monat",uLe="Jede Woche",dLe="Jedes Jahr",fLe="Stunden",hLe="Minuten",pLe="Monat",mLe="Monatlich",vLe="Einmal",gLe="Bestimmte Monate",_Le="Woche",yLe="Wochentage",bLe="Wochenende",wLe="Wöchentlich",SLe="Arbeitstage",xLe="Jahr",CLe="Jährlich",TLe="Bestimmte Zeit",kLe="Zeit",ELe="zu",DLe="Gültigkeit",MLe="von",OLe="bis",$Le="Ganzer Tag",ALe="jeden Monat",PLe={"ra_%s links from aliases":"%s Links von Aliasen","ra_%s object(s) processed":"%s Objekt(e) verarbeitet","ra_%s was imported":"%s wurde importiert","ra_Accept license":"Lizenz akzeptieren","ra_Add new child object to selected parent":"Dem ausgewählten übergeordneten Objekt ein neues untergeordnetes Objekt hinzufügen","ra_Add objects tree from JSON file":"Objektbaum aus JSON-Datei hinzufügen","ra_Add row":"Zeile hinzufügen","ra_Advanced options":"Erweiterte Optionen","ra_All items are filtered out":"Alle Elemente sind herausgefiltert","ra_All objects":"Alle Objekte",ra_Append:P$e,"ra_Append %s entries or replace existing?":"%s Einträge anhängen oder vorhandene ersetzen?","ra_Append or replace?":"Anhängen oder ersetzen?","ra_Are you sure?":"Bist du sicher?","ra_Auto (no custom columns)":"Auto (keine benutzerdefinierten Spalten)","ra_Back to %s":"Zurück zu %s","ra_Background image":"Hintergrundbild",ra_Cancel:I$e,"ra_Cannot add items with set filter":"Elemente mit festgelegtem Filter können nicht hinzugefügt werden","ra_Cannot decode license":"Lizenz kann nicht entschlüsselt werden","ra_Cannot determine position: System settings are empty and GPS detection is disabled in browser":"Position kann nicht bestimmt werden: Die Systemeinstellungen sind leer und die GPS-Erkennung ist im Browser deaktiviert",'ra_Cannot find "%s"':'Kann "%s" nicht finden','ra_Cannot read "%s"':'"%s" kann nicht gelesen werden',"ra_Cannot read licenses: %s":"Lizenzen können nicht gelesen werden: %s","ra_Cannot retrieve options, as instance is offline":"Optionen können nicht abgerufen werden, da die Instanz offline ist","ra_Cannot update attribute, because not found in the object":"Attribut kann nicht aktualisiert werden, da es nicht im Objekt gefunden wurde","ra_Cannot upload":"Kann nicht hochladen",ra_Categories:R$e,"ra_Chained certificate":"Chained Zertifikat","ra_Change color theme":"Farbthema ändern","ra_Changed from":"Geändert von","ra_Channel → State":"Kanal → Zustand","ra_Check license":"Lizenz prüfen",ra_Checked:L$e,ra_Clear:N$e,"ra_Clear filter":"Filter löschen","ra_Clear icon":"Symbol löschen","ra_Clone current row":"Aktuelle Zeile klonen",ra_Close:F$e,"ra_Collapse all nodes":"Alle Knoten zuklappen","ra_Collapse one step node":"Eine Ebene zuklappen",ra_Commercial:z$e,ra_Configure:B$e,"ra_Configure visible columns":"Spalten Konfigurieren","ra_Confirm deletion of %s":"Das Löschen von %s bestätigen",ra_Connected:j$e,ra_Copied:W$e,"ra_Copied %s":'"%s" kopiert',"ra_Copy content":"Inhalte kopieren",ra_Create:H$e,"ra_Create alias":"Alias erstellen","ra_Create folder":"Ordner erstellen","ra_Create new folder in %s":'Neuen Ordner in "%s" erstellen',ra_Crop:U$e,"ra_Define CRON...":"Definieren Sie CRON ...","ra_Define functions":"Funktionen definieren","ra_Define rooms":"Räume definieren","ra_Define schedule":"Zeitplan definieren","ra_Define schedule...":"Zeitplan definieren ...",ra_Del:Y$e,ra_Delete:V$e,"ra_Delete (no confirm for 5 mins)":"Löschen (keine Bestätigung für 5 Minuten)","ra_Delete current row":"Aktuelle Zeile löschen","ra_Deselect all":"Alles abwählen","ra_Device → Channel → State":"Gerät → Kanal → Zustand",ra_Discard:G$e,ra_Disconnected:q$e,"ra_Do not export values of states":"Keine Zustandswerte exportieren","ra_Do not use let's encrypt":"Let's encrypt nicht verwenden","ra_Double click to reset table layout":"Doppelklicken, um das Tabellenlayout zurückzusetzen","ra_Drag 'n' drop some files here, or click to select files":"Die Datei hierher ziehen und ablegen, oder klicken, um die Datei auszuwählen","ra_Drop file here":"Datei hier ablegen","ra_Drop the files here...":"Datei hier ablegen...","ra_Duplicate name":"Doppelter Name","ra_Edit ACL":"ACL bearbeiten","ra_Edit alias":"Alias bearbeiten","ra_Edit custom config":"Bearbeite Benutzerdefinierte Konfiguration","ra_Edit function":"Funktion bearbeiten","ra_Edit object field":"Objektfeld bearbeiten","ra_Edit role":"Rolle bearbeiten","ra_Edit room":"Raum bearbeiten","ra_Edit value":"Wert bearbeiten",ra_Error:X$e,"ra_Expand all nodes":"Alle Knoten aufklappen","ra_Expand one step node":"Eine Ebene aufklappen","ra_Export data to %s file":"Daten in %s-Datei exportieren","ra_Failed to open JSON File":"Fehler beim Öffnen der JSON-Datei","ra_Fallback custom certificates":"Benutzerdefinierte Fallback-Zertifikate","ra_File is too big. Max %sk allowed. Try use SVG.":"Datei ist zu groß. Max %sk erlaubt. Versuchen Sie, SVG zu verwenden.",ra_Filter:J$e,"ra_Filter files":"Dateien filtern","ra_Folder name":"Ordnernamen","ra_Folder → Channel → State":"Ordner → Kanal → Zustand","ra_Folder → Device → Channel → State":"Ordner → Gerät → Kanal → Zustand","ra_Folder → State":"Ordner → Zustand","ra_Folders always first":"Ordner immer zuerst",ra_Friday:Z$e,"ra_Good luck":"Viel Glück","ra_Hide empty folders":"Leere Ordner ausblenden","ra_If no file will be created in the folder, it will disappear after the browser closed":"Wenn im Ordner keine Datei erstellt wird, verschwindet dieser nach dem Schließen des Browsers","ra_Import data from %s file":"Daten aus %s-Datei importieren","ra_Import from %s":"Von %s importieren","ra_Instance %s is alive":"Instanz %s ist aktiv","ra_Instance %s is not alive":"Instanz %s ist nicht aktiv","ra_Instance is not alive":"Instanz ist nicht am Leben","ra_Invalid CRON":"Ungültiger CRON","ra_Invalid JSON":"Ungültiges JSON","ra_Invalid answer from server":"Ungültige Antwort vom Server","ra_Invalid parent folder!":"Ungültiger übergeordneter Ordner!","ra_Invalid structure":"Ungültige Struktur","ra_JSON editor":"JSON-Editor","ra_Last change":"Letzte Änderung",ra_Latitude:K$e,"ra_License %s":"Lizenz %s","ra_License agreement":"Lizenzvereinbarung","ra_License does not exist":"Lizenz existiert nicht","ra_License expired on %s":"Lizenz am %s abgelaufen",'ra_License for other product "%s"':"Lizenz für anderes Produkt „%s“","ra_License is for version %s, but required version is %s.":"Lizenz ist für Version %s, aber erforderliche Version ist %s.","ra_License must be converted":"Die Lizenz muss auf eine neuere Version konvertiert werden. Sie können dies in Ihrem iobroker.net-Profil tun.","ra_License not found in license manager. Do you want to read licenses from iobroker.net?":"Lizenz im Lizenzmanager nicht gefunden. Möchten Sie Lizenzen von iobroker.net aktualisieren?","ra_Listen on all IPs":"Zugriff von allen IPs zulassen","ra_Load configuration from file":"Konfiguration aus Datei laden",ra_Longitude:Q$e,'ra_May not trigger "updateLicenses"':"Löst möglicherweise nicht „updateLicenses“ aus",ra_Message:eAe,ra_Monday:tAe,"ra_Move down":"Nach unten","ra_Move up":"Nach oben",ra_Name:rAe,"ra_No data found in file":"Keine Daten in der Datei gefunden","ra_No one license found in license manager":"Im Lizenzmanager wurde keine Lizenz gefunden","ra_No response from the backend":"Keine Antwort vom Backend",'ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".':'Nicht-Experten dürfen neue Objekte nur in "0_userdata.0" oder "alias.0" erstellen.',"ra_Not a number":"Keine Nummer",ra_Objects:nAe,ra_Ok:aAe,"ra_On weekdays":"An Wochentagen","ra_Only following structures of objects are available:":"Es stehen nur folgende Objektstrukturen zur Verfügung:","ra_Only selected":"Nur ausgewählt","ra_Owner group":"Besitzergruppe","ra_Owner user":"Besitzer Benutzer","ra_Passwords are not equal!":"Passwörter sind nicht gleich!","ra_Place your files here or click here to open the browse dialog":"Die Dateien hier platzieren oder hier klicken, um den Suchdialog zu öffnen","ra_Please confirm":"Bitte bestätigen","ra_Please create license":"Bitte erstellen Sie eine Lizenz","ra_Please enter the license":"Bitte die Lizenz eingeben","ra_Please select file...":"Bitte Datei auswählen...","ra_Please select object ID...":"Bitte Objekt-ID auswählen...","ra_Port could be used by %s":"Port könnte von %s verwendet werden","ra_Port is already used by %s":"Port wird bereits von %s verwendet","ra_Private certificate":"Privates Zertifikat",ra_Product:iAe,"ra_Public certificate":"Öffentliches Zertifikat","ra_Quality code":"Qualität","ra_Refresh tree":"Baum aktualisieren","ra_Reload files":"Dateien neu laden",ra_Repeat:oAe,ra_Replace:sAe,"ra_Request timed out":"Zeitüberschreitung der Anforderung","ra_Restrict to folder":"Auf Ordner beschränken",ra_Root:lAe,ra_Saturday:cAe,ra_Save:uAe,"ra_Save and close":"Speichern und schließen","ra_Save configuration to file":"Konfiguration in Datei speichern","ra_Save objects tree as JSON file":"Objektbaum als JSON-Datei speichern","ra_Select all":"Alle auswählen","ra_Select color":"Wähle Farbe","ra_Select predefined icon":"Vordefiniertes Symbol auswählen","ra_Select type of export":"Die Art des Exports auswählen ",ra_Selected:dAe,"ra_Selected %s object(s)":"Ausgewählt %s Objekt(en)","ra_Serial number (UUID)":"Seriennummer (UUID)",'ra_Serial number (UUID) "%s" in license is for other device.':"Seriennummer (UUID) „%s“ in der Lizenz gilt für ein anderes Gerät.","ra_Show all folders":"Alle Ordner anzeigen","ra_Show lines between rows":"Linien zwischen Zeilen anzeigen","ra_Show/Hide object descriptions":"Objektbeschreibungen ein-/ausblenden","ra_Show/hide filter input":"Filtereingabe ein-/ausblenden","ra_Some data are not stored. Discard?":"Einige Daten werden nicht gespeichert. Verwerfen?",ra_States:fAe,"ra_Suitable license not found in license manager":"Passende Lizenz im Lizenzmanager nicht gefunden",ra_Sunday:hAe,"ra_Suppress question for next %s minutes":"Frage für die nächsten %s Minuten unterdrücken","ra_System language":"Systemsprache","ra_Take browser position":"Position vom Browser einnehmen","ra_Take position from system settings":"Position aus den Systemeinstellungen übernehmen",'ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").':'Die Experten können Objekte überall erstellen, außer auf der zweiten Ebene (z. B. "vis.0" oder "javascript.0").',"ra_The page you are looking for was not found":"Die gesuchte Seite wurde nicht gefunden","ra_The schedule will be executed every minute. Are you sure?":"Der Zeitplan wird jede Minute ausgeführt. Sind Sie sicher?","ra_The schedule will be executed every second. Are you sure?":"Der Zeitplan wird jede Sekunde ausgeführt. Sind Sie sicher?",ra_Thursday:pAe,ra_Timestamp:mAe,"ra_Toggle expert mode":"Expertenmodus umschalten","ra_Toggle the states view":"Statusansicht umschalten","ra_Toggle view mode":"Ansichtsmodus umschalten","ra_Too big":"Zu groß","ra_Too small":"Zu klein","ra_Transparent dialog":"Transparenter Dialog",ra_Tuesday:vAe,"ra_Unknown error":"Unbekannter Fehler","ra_Unknown error!":"Unbekannter Fehler!",ra_Update:gAe,"ra_Upload file":"Datei hochladen","ra_Use all available let's encrypt certificates":"Alle verfügbaren Zertifikate von Let's encrypt benutzen","ra_Use iobroker.acme adapter for letsencrypt certificates":"ioBroker.acme-Adapter für letsencrypt-Zertifikate verwenden","ra_Use system settings for position":"Systemeinstellungen für die Position verwenden","ra_Used system settings":"Systemeinstellungen","ra_User files":"Benutzerdaten",ra_ValidTill:_Ae,ra_Value:yAe,ra_Version:bAe,"ra_View file":"Datei ansehen","ra_View: %s":"Anschauen: %s",ra_Wednesday:wAe,ra_Width:SAe,ra_Yes:xAe,"ra_You can export all objects or just the selected branch.":"Sie können alle Objekte oder nur den ausgewählten Zweig exportieren.","ra_You can filter entries by entering here some text":"Sie können Einträge filtern, indem Sie hier Text eingeben",ra___different__:CAe,ra_aclEveryone_read_object:TAe,ra_aclEveryone_read_state:kAe,ra_aclEveryone_write_object:EAe,ra_aclEveryone_write_state:DAe,ra_aclGroup_read_object:MAe,ra_aclGroup_read_state:OAe,ra_aclGroup_write_object:$Ae,ra_aclGroup_write_state:AAe,ra_aclOwner_read_object:PAe,ra_aclOwner_read_state:IAe,ra_aclOwner_write_object:RAe,ra_aclOwner_write_state:LAe,ra_buttons:NAe,ra_changedFrom:FAe,ra_close:zAe,ra_create_boolean_state:BAe,ra_create_channel:jAe,ra_create_device:WAe,ra_create_number_state:HAe,ra_create_state:UAe,ra_create_string_state:YAe,ra_daysShortText:VAe,ra_dow_Fr:GAe,ra_dow_Mo:qAe,ra_dow_Sa:XAe,ra_dow_Su:JAe,ra_dow_Th:ZAe,ra_dow_Tu:KAe,ra_dow_We:QAe,ra_expertMode:ePe,ra_fileType_all:tPe,ra_fileType_audio:rPe,ra_fileType_code:nPe,ra_fileType_images:aPe,ra_fileType_txt:iPe,ra_fileType_video:oPe,"ra_fileType_video,":"Video",ra_filter_customs:sPe,ra_filter_customs_without:lPe,ra_filter_func:cPe,ra_filter_id:uPe,ra_filter_name:dPe,ra_filter_role:fPe,ra_filter_room:hPe,ra_filter_type:pPe,"ra_import data from %s file":"Daten aus %s-Datei importieren",ra_invalidConfig:mPe,ra_lastChange:vPe,ra_locally:gPe,ra_month_Apr:_Pe,ra_month_Aug:yPe,ra_month_Dec:bPe,ra_month_Feb:wPe,ra_month_Jan:SPe,ra_month_Jul:xPe,ra_month_Jun:CPe,ra_month_Mai:TPe,ra_month_Mar:kPe,ra_month_Nov:EPe,ra_month_Oct:DPe,ra_month_Sep:MPe,ra_months_Apr:OPe,ra_months_Aug:$Pe,ra_months_Dec:APe,ra_months_Feb:PPe,ra_months_Jan:IPe,ra_months_Jul:RPe,ra_months_Jun:LPe,ra_months_Mai:NPe,ra_months_Mar:FPe,ra_months_Nov:zPe,ra_months_Oct:BPe,ra_months_Sep:jPe,ra_none:WPe,ra_object_changed_by:HPe,ra_object_changed_by_user:UPe,ra_otherConfig:YPe,ra_qualityCode:VPe,ra_repeat:GPe,ra_select_folder_hint:qPe,ra_state_changed_by:XPe,ra_state_changed_from:JPe,ra_timestamp:ZPe,ra_tooltip_ack:KPe,ra_tooltip_comment:QPe,ra_tooltip_copyState:eIe,ra_tooltip_customConfig:tIe,ra_tooltip_deleteObject:rIe,ra_tooltip_editObject:nIe,ra_tooltip_editState:aIe,ra_tooltip_from:iIe,ra_tooltip_lc:oIe,ra_tooltip_quality:sIe,ra_tooltip_ts:lIe,ra_tooltip_user:cIe,ra_tooltip_value:uIe,"ra_use seconds":"Sekunden benutzen",ra_val:dIe,"ra_via internet":"übers Internet",ra_warning_every_minute:fIe,ra_warning_every_second:hIe,sc_cron:pIe,sc_date:mIe,sc_dates:vIe,sc_dow:gIe,sc_dows:_Ie,sc_every:yIe,sc_everyN_dates:bIe,sc_everyN_dow:wIe,sc_everyN_dows:SIe,sc_everyN_hours:xIe,sc_everyN_minutes:CIe,sc_everyN_months:TIe,sc_everyN_seconds:kIe,sc_every_dates:EIe,sc_every_dow:DIe,sc_every_dows:MIe,sc_every_hours:OIe,sc_every_minutes:$Ie,sc_every_months:AIe,sc_every_seconds:PIe,sc_from:IIe,sc_hours:RIe,sc_interval:LIe,sc_intervalBetween:NIe,sc_invalid_cron:FIe,sc_minutes:zIe,sc_months:BIe,sc_once:jIe,sc_period:WIe,sc_seconds:HIe,sc_simple:UIe,sc_specific:YIe,sc_specific_dates:VIe,sc_specific_dow:GIe,sc_specific_dows:qIe,sc_specific_hours:XIe,sc_specific_minutes:JIe,sc_specific_months:ZIe,sc_specific_seconds:KIe,sc_time:QIe,sc_to:eRe,sc_wizard:tRe,sch_all:rRe,sch_astroDay:nRe,sch_astroNight:aRe,sch_astro_dawn:iRe,sch_astro_dusk:oRe,sch_astro_goldenHour:sRe,sch_astro_goldenHourEnd:lRe,sch_astro_nadir:cRe,sch_astro_nauticalDawn:uRe,sch_astro_nauticalDusk:dRe,sch_astro_night:fRe,sch_astro_nightEnd:hRe,sch_astro_solarNoon:pRe,sch_astro_sunrise:mRe,sch_astro_sunriseEnd:vRe,sch_astro_sunset:gRe,sch_astro_sunsetStart:_Re,sch_at:yRe,sch_desc_atTime:bRe,sch_desc_everyDay:wRe,sch_desc_everyHour:SRe,sch_desc_everyMinute:xRe,sch_desc_everyMonth:CRe,sch_desc_everyNDay:TRe,sch_desc_everyNHours:kRe,sch_desc_everyNMinutes:ERe,sch_desc_everyNMonths:DRe,sch_desc_everyNWeeks:MRe,sch_desc_everyNYears:ORe,sch_desc_everyWeek:$Re,sch_desc_everyYear:ARe,sch_desc_intervalFromTo:PRe,sch_desc_never:IRe,sch_desc_onDate:RRe,sch_desc_onDates:LRe,sch_desc_onEveryDate:NRe,sch_desc_onMonth:FRe,sch_desc_onMonths:zRe,sch_desc_onWeekday:BRe,sch_desc_onWeekdays:jRe,sch_desc_onWeekends:WRe,sch_desc_onWorkdays:HRe,sch_desc_onceInPast:URe,sch_desc_once_on:YRe,sch_desc_validFrom:VRe,sch_desc_validFromTo:GRe,sch_desc_validTo:qRe,sch_every:XRe,sch_exactTime:JRe,sch_from:ZRe,sch_fromTo:KRe,sch_intervalTime:QRe,sch_invert:eLe,sch_no_one:tLe,sch_on:rLe,sch_period:nLe,sch_periodDaily:aLe,sch_periodDates:iLe,sch_periodDay:oLe,sch_periodEvery:sLe,sch_periodEveryDay:lLe,sch_periodEveryMonth:cLe,sch_periodEveryWeek:uLe,sch_periodEveryYear:dLe,sch_periodHours:fLe,sch_periodMinutes:hLe,sch_periodMonth:pLe,sch_periodMonthly:mLe,sch_periodOnce:vLe,sch_periodSpecificMonths:gLe,sch_periodWeek:_Le,sch_periodWeekdays:yLe,sch_periodWeekend:bLe,sch_periodWeekly:wLe,sch_periodWorkdays:SLe,sch_periodYear:xLe,sch_periodYearly:CLe,sch_specificTime:TLe,sch_time:kLe,sch_to:ELe,sch_valid:DLe,sch_validFrom:MLe,sch_validTo:OLe,sch_wholeDay:$Le,sch_yearEveryMonth:ALe},ILe="Добавить",RLe="Отмена",LLe="Категории",NLe="Проверено",FLe="Удалить",zLe="Закрыть",BLe="Коммерческая",jLe="Настроить",WLe="Соединение установлено",HLe="скопировано",ULe="Создать",YLe="Обрезать",VLe="Delete",GLe="Удалить",qLe="Отказаться",XLe="Отключено",JLe="Ошибка",ZLe="Фильтр",KLe="Пятница",QLe="Широта",eNe="Долгота",tNe="Сообщение",rNe="Понедельник",nNe="Имя",aNe="Объекты",iNe="Ok",oNe="Продукт",sNe="Повторение",lNe="Заменять",cNe="Начало",uNe="Суббота",dNe="Сохранить",fNe="выбранный",hNe="Состояния",pNe="Воскресенье",mNe="Четверг",vNe="Времени",gNe="Вторник",_Ne="Обновить",yNe="Годен до",bNe="Значение",wNe="Версия",SNe="Среда",xNe="Ширина",CNe="Да",TNe="разное",kNe="Каждый может читать объект",ENe="Каждый может читать состояние",DNe="Каждый может написать объект",MNe="Каждый может написать состояние",ONe="Группа может читать объект",$Ne="Группа может читать состояние",ANe="Группа может писать объект",PNe="Группа может записывать состояние",INe="Владелец может читать объект",RNe="Владелец может читать состояние",LNe="Владелец может писать объект",NNe="Владелец может писать состояние",FNe="Кнопки",zNe="Изменено с",BNe="Закрыть",jNe="Создать логическое состояние",WNe="Создать канал",HNe="Создать устройство",UNe="Создать состояние номера",YNe="Создать состояние",VNe="Создать состояние строки",GNe="д.",qNe="Пт",XNe="Пн",JNe="Сб",ZNe="Вс",KNe="Чт",QNe="Вт",e5e="Ср",t5e="Экспертный режим",r5e="Все файлы",n5e="Аудио",a5e="Код/JSON",i5e="Картинки",o5e="Текст",s5e="видео",l5e="настройки",c5e="без",u5e="функция",d5e="ID",f5e="Имя",h5e="роль",p5e="комната",m5e="Тип",v5e="Неверные настройки",g5e="Последнее изменение",_5e="локально",y5e="Апр",b5e="Авг",w5e="Дек",S5e="Фев",x5e="Янв",C5e="Июл",T5e="Июн",k5e="Май",E5e="Мрт",D5e="Ноя",M5e="Окт",O5e="Сен",$5e="Апр",A5e="Авг",P5e="Дек",I5e="Фев",R5e="Янв",L5e="Июнь",N5e="Июль",F5e="Май",z5e="Март",B5e="Ноя",j5e="Окт",W5e="Сен",H5e="ничего",U5e="Объект изменен",Y5e="Последний раз объект изменен в",V5e="Настройки из другого адаптера %s",G5e="Код качества",q5e="повтор",X5e="Чтобы выбрать папку, просто удерживайте клавишу «Shift», щелкнув папку.",J5e="Состояние изменено",Z5e="Объект изменен с",K5e="Отметка времени",Q5e="Подтверждено",e3e="Комментарий",t3e="Скопируйте значение состояния",r3e="Пользовательские настройки",n3e="Удалить объект",a3e="Редактировать объект",i3e="Изменить значение состояния",o3e="От",s3e="Последнее изменение",l3e="Качество",c3e="Отметка времени",u3e="пользователь",d3e="Значение",f3e="Значение",h3e="Внимание: задание CRON будет запускаться каждую минуту в течение указанного периода!",p3e="Внимание: задание CRON будет выполняться каждую секунду в течение указанного периода!",m3e="CRON",v3e="Дата",g3e="Даты",_3e="День",y3e="День недели",b3e="каждый(ую/ые)",w3e="каждый N день",S3e="каждый N-й день недели",x3e="каждый N день недели",C3e="каждые N часов",T3e="каждые N минут",k3e="каждые N месяцев",E3e="каждые N секунд",D3e="каждый день",M3e="Каждый день недели",O3e="каждый день недели",$3e="каждый час",A3e="каждую минуту",P3e="каждый месяц",I3e="каждую секунду",R3e="От",L3e="часы",N3e="Интервал",F3e="Интервал между",z3e="Неверный CRON",B3e="минуты",j3e="Месяцы",W3e="один раз",H3e="Период",U3e="секунды",Y3e="Просто",V3e="Конкретное время",G3e="конкретные даты",q3e="конкретный день(а) недели",X3e="конкретный день недели",J3e="конкретные часы",Z3e="конкретные минуты",K3e="конкретные месяцы",Q3e="конкретные секунды",e4e="Время",t4e="До",r4e="Форма",n4e="все",a4e="днём",i4e="ночью",o4e="Рассвет",s4e="Сумерки",l4e="Золотой час",c4e="Конец золотого часа",u4e="Надир",d4e="Морской рассвет",f4e="Морские сумерки",h4e="Ночь",p4e="Конец ночи",m4e="Солнечный полдень",v4e="Восход",g4e="Восход солнца",_4e="Заход солнца",y4e="Начало заката",b4e="дата",w4e="в %s",S4e="каждый день",x4e="каждый час",C4e="каждую минуту",T4e="каждый месяц",k4e="каждый %s день",E4e="каждый %s часов",D4e="каждые %s минут",M4e="каждые %s месяцев",O4e="каждые %s недель",$4e="каждые %s лет",A4e="каждую неделю",P4e="каждый год",I4e="от %s до %s",R4e="никогда",L4e="%s %s",N4e="%s и %s",F4e="в каждый день",z4e="%s",B4e="%s и %s",j4e="%s",W4e="%s и %s",H4e="на выходных",U4e="в рабочие дни",Y4e="не будет больше выполняться, потому что начало в прошлом",V4e="%s",G4e="%s",q4e="Выполнить с",X4e="%s",J4e="каждый",Z4e="Конкретное время",K4e="от",Q4e="От и до",eFe="Интервал времени",tFe="инвертировать",rFe="никакой",nFe="на",aFe="период",iFe="Ежедневно",oFe="Даты",sFe="День",lFe="каждый",cFe="Каждый день",uFe="Каждый месяц",dFe="Каждую неделю",fFe="Каждый год",hFe="часов",pFe="минут",mFe="месяц",vFe="ежемесячно",gFe="однажды",_Fe="Конкретные месяцы",yFe="Неделю",bFe="Будние дни",wFe="выходные",SFe="еженедельно",xFe="Рабочие дни",CFe="Год",TFe="каждый год",kFe="Конкретное время",EFe="Время",DFe="в",MFe="действительный",OFe="от",$Fe="в",AFe="Весь день",PFe="каждый месяц",IFe={"ra_%s links from aliases":"%s ссылок из псевдонимов","ra_%s object(s) processed":"Объектов обработано: %s","ra_%s was imported":"%s был импортирован","ra_Accept license":"Принять лицензию","ra_Add new child object to selected parent":"Добавить новый дочерний объект к выбранному родительскому объекту","ra_Add objects tree from JSON file":"Добавить дерево объектов из файла JSON","ra_Add row":"Добавить ряд","ra_Advanced options":"Расширенные настройки","ra_All items are filtered out":"Все элементы отфильтрованы","ra_All objects":"Все объекты",ra_Append:ILe,"ra_Append %s entries or replace existing?":"Добавить записи %s или заменить существующие?","ra_Append or replace?":"Дополнить или заменить?","ra_Are you sure?":"Вы уверены?","ra_Auto (no custom columns)":"Авто (без настраиваемых столбцов)","ra_Back to %s":"Вернуться к %s","ra_Background image":"Фоновая картинка",ra_Cancel:RLe,"ra_Cannot add items with set filter":"Невозможно добавить элементы с установленным фильтром","ra_Cannot decode license":"Не могу декодировать лицензию","ra_Cannot determine position: System settings are empty and GPS detection is disabled in browser":"Невозможно определить местоположение: системные настройки пусты, а обнаружение GPS отключено в браузере.",'ra_Cannot find "%s"':'Не могу найти "%s"','ra_Cannot read "%s"':'Не могу прочитать "%s"',"ra_Cannot read licenses: %s":"Невозможно прочитать лицензии: %s","ra_Cannot retrieve options, as instance is offline":"Невозможно получить параметры, так как экземпляр находится в автономном режиме.","ra_Cannot update attribute, because not found in the object":"Невозможно обновить атрибут, потому что он не найден в объекте","ra_Cannot upload":"Невозможно загрузить",ra_Categories:LLe,"ra_Chained certificate":"Chained сертификат","ra_Change color theme":"Изменить цветовую тему","ra_Changed from":"Изменено","ra_Channel → State":"Канал → Состояние","ra_Check license":"Проверить лицензию",ra_Checked:NLe,ra_Clear:FLe,"ra_Clear filter":"Очистить фильтр","ra_Clear icon":"Очистить значок","ra_Clone current row":"Клонировать текущую строку",ra_Close:zLe,"ra_Collapse all nodes":"Свернуть все узлы","ra_Collapse one step node":"Свернуть один уровень",ra_Commercial:BLe,ra_Configure:jLe,"ra_Configure visible columns":"Настроить видимые столбцы","ra_Confirm deletion of %s":"Подтвердите удаление %s",ra_Connected:WLe,ra_Copied:HLe,"ra_Copied %s":'Скопировано "%s"',"ra_Copy content":"Копировать содержимое",ra_Create:ULe,"ra_Create alias":"Создать псевдоним","ra_Create folder":"Создать папку","ra_Create new folder in %s":"Создать новую папку в %s",ra_Crop:YLe,"ra_Define CRON...":"Определите CRON...","ra_Define functions":"Задать функции","ra_Define rooms":"Задать комнаты","ra_Define schedule":"Задать расписание","ra_Define schedule...":"Определить расписание ...",ra_Del:VLe,ra_Delete:GLe,"ra_Delete (no confirm for 5 mins)":"Удалить (без подтверждения в течение 5 минут)","ra_Delete current row":"Удалить текущую строку","ra_Deselect all":"Убрать выбор везде","ra_Device → Channel → State":"Устройство → Канал → Состояние",ra_Discard:qLe,ra_Disconnected:XLe,"ra_Do not export values of states":"Не экспортировать значения состояний","ra_Do not use let's encrypt":"Не использовать Let’s Encrypt","ra_Double click to reset table layout":"Дважды щелкните, чтобы сбросить макет таблицы","ra_Drag 'n' drop some files here, or click to select files":"Перетащите сюда несколько файлов или щелкните, чтобы выбрать файлы","ra_Drop file here":"Перетащите файл сюда","ra_Drop the files here...":"Перетащите файл сюда ...","ra_Duplicate name":"Повторяющееся имя","ra_Edit ACL":"Изменить ACL-список","ra_Edit alias":"Изменить псевдоним","ra_Edit custom config":"Редактировать настраиваемую конфигурацию","ra_Edit function":"Изменить функцию","ra_Edit object field":"Поле редактирования объекта","ra_Edit role":"Изменить роль","ra_Edit room":"Редактировать комнату","ra_Edit value":"Изменить значение",ra_Error:JLe,"ra_Expand all nodes":"Развернуть все узлы","ra_Expand one step node":"Открыть один уровень","ra_Export data to %s file":"Экспорт данных в файл %s","ra_Failed to open JSON File":"Не удалось открыть файл JSON","ra_Fallback custom certificates":"Резервные пользовательские сертификаты","ra_File is too big. Max %sk allowed. Try use SVG.":"Файл слишком большой. Разрешено максимальное количество %sk. Попробуйте использовать SVG.",ra_Filter:ZLe,"ra_Filter files":"Фильтровать файлы","ra_Folder name":"Имя папки","ra_Folder → Channel → State":"Папка → Канал → Состояние","ra_Folder → Device → Channel → State":"Папка → Устройство → Канал → Состояние","ra_Folder → State":"Папка → Состояние","ra_Folders always first":"Папки всегда на первом месте",ra_Friday:KLe,"ra_Good luck":"Удачи","ra_Hide empty folders":"Скрыть пустые папки","ra_If no file will be created in the folder, it will disappear after the browser closed":"Если в папке не будет создан файл, он исчезнет после закрытия браузера.","ra_Import data from %s file":"Импорт данных из файла %s","ra_Import from %s":"Импорт из %s","ra_Instance %s is alive":"Экземпляр %s работает","ra_Instance %s is not alive":"Экземпляр %s не работает","ra_Instance is not alive":"Экземпляр не живой","ra_Invalid CRON":"Неверный CRON","ra_Invalid JSON":"Неверный JSON","ra_Invalid answer from server":"Неверный ответ от сервера","ra_Invalid parent folder!":"Неверная родительская папка!","ra_Invalid structure":"Неверная структура","ra_JSON editor":"Редактор JSON","ra_Last change":"Последнее изменение",ra_Latitude:QLe,"ra_License %s":"Лицензия %s","ra_License agreement":"Лицензионное соглашение","ra_License does not exist":"Лицензия не существует","ra_License expired on %s":"Срок действия лицензии истек %s",'ra_License for other product "%s"':'Лицензия на другой продукт "%s"',"ra_License is for version %s, but required version is %s.":"Лицензия предназначена для версии %s, но необходима версия %s.","ra_License must be converted":"Лицензия должна быть преобразована в более новую версию. Вы можете сделать это в своем профиле на iobroker.net.","ra_License not found in license manager. Do you want to read licenses from iobroker.net?":"Лицензия не найдена в диспетчере лицензий. Вы хотите обновить лицензии от iobroker.net?","ra_Listen on all IPs":"Слушать на всех IP","ra_Load configuration from file":"Загрузить конфигурацию из файла",ra_Longitude:eNe,'ra_May not trigger "updateLicenses"':"Не может запускать «updateLicenses»",ra_Message:tNe,ra_Monday:rNe,"ra_Move down":"Вниз","ra_Move up":"Вверх",ra_Name:nNe,"ra_No data found in file":"Данные в файле не найдены","ra_No one license found in license manager":"В менеджере лицензий не найдена ни одна лицензия","ra_No response from the backend":"Нет ответа от бэкэнда",'ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".':"Не-эксперты могут создавать новые объекты только в «0_userdata.0» или «alias.0».","ra_Not a number":"Не число",ra_Objects:aNe,ra_Ok:iNe,"ra_On weekdays":"На выходных","ra_Only following structures of objects are available:":"Доступны только следующие структуры объектов:","ra_Only selected":"Только выбранные","ra_Owner group":"Группа владельцев","ra_Owner user":"Пользователь-владелец","ra_Passwords are not equal!":"Пароли не равны!","ra_Place your files here or click here to open the browse dialog":"Поместите свои файлы сюда или щелкните здесь, чтобы открыть диалоговое окно выбора","ra_Please confirm":"Пожалуйста подтвердите","ra_Please create license":"Пожалуйста, создайте лицензию","ra_Please enter the license":"Пожалуйста, введите лицензию","ra_Please select file...":"Пожалуйста, выберите файл...","ra_Please select object ID...":"Пожалуйста, выберите идентификатор объекта ...","ra_Port could be used by %s":"Порт может использоваться %s","ra_Port is already used by %s":"Порт уже используется %s","ra_Private certificate":"Частный сертификат",ra_Product:oNe,"ra_Public certificate":"Публичный сертификат","ra_Quality code":"Валидность","ra_Refresh tree":"Обновить дерево","ra_Reload files":"Обновить",ra_Repeat:sNe,ra_Replace:lNe,"ra_Request timed out":"Истекло время запроса","ra_Restrict to folder":"Ограничить папкой",ra_Root:cNe,ra_Saturday:uNe,ra_Save:dNe,"ra_Save and close":"Сохранить и закрыть","ra_Save configuration to file":"Сохранить конфигурацию в файл","ra_Save objects tree as JSON file":"Сохранить дерево объектов как файл JSON","ra_Select all":"Выбрать все","ra_Select color":"Выберите цвет","ra_Select predefined icon":"Выберите предопределенный значок","ra_Select type of export":"Выберите тип экспорта",ra_Selected:fNe,"ra_Selected %s object(s)":"Объектов: %s","ra_Serial number (UUID)":"Серийный номер (UUID)",'ra_Serial number (UUID) "%s" in license is for other device.':"Серийный номер (UUID) «%s» в лицензии предназначен для другого устройства.","ra_Show all folders":"Показать все папки","ra_Show lines between rows":"Показать линии между строками","ra_Show/Hide object descriptions":"Показать/скрыть описания объектов","ra_Show/hide filter input":"Показать/скрыть ввод фильтра","ra_Some data are not stored. Discard?":"Некоторые данные не сохранились. Отказаться?",ra_States:hNe,"ra_Suitable license not found in license manager":"Подходящая лицензия не найдена в менеджере лицензий",ra_Sunday:pNe,"ra_Suppress question for next %s minutes":"Скрыть вопрос на следующие %s минут(ы)","ra_System language":"Язык системы","ra_Take browser position":"Взять позицию из браузера","ra_Take position from system settings":"Занять позицию из системных настроек",'ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").':"Эксперты могут создавать объекты везде, кроме второго уровня (например, «vis.0» или «javascript.0»).","ra_The page you are looking for was not found":"Страница, которую вы ищете, не найдена","ra_The schedule will be executed every minute. Are you sure?":"Расписание будет выполняться каждую минуту. Вы уверены?","ra_The schedule will be executed every second. Are you sure?":"Расписание будет выполняться каждую секунду. Вы уверены?",ra_Thursday:mNe,ra_Timestamp:vNe,"ra_Toggle expert mode":"Переключить экспертный режим","ra_Toggle the states view":"Переключить режим просмотра состояний","ra_Toggle view mode":"Переключить режим просмотра","ra_Too big":"Слишком большое","ra_Too small":"Слишком маленькое","ra_Transparent dialog":"Прозрачный диалог",ra_Tuesday:gNe,"ra_Unknown error":"Неизвестная ошибка","ra_Unknown error!":"Неизвестная ошибка!",ra_Update:_Ne,"ra_Upload file":"Загрузить файл","ra_Use all available let's encrypt certificates":"Использовать все доступные сертификаты Let’s encrypt","ra_Use iobroker.acme adapter for letsencrypt certificates":"Используйте адаптер iobroker.acme для сертификатов letsencrypt","ra_Use system settings for position":"Использовать системные настройки для позиции","ra_Used system settings":"Системные настройки","ra_User files":"Файлы пользователя",ra_ValidTill:yNe,ra_Value:bNe,ra_Version:wNe,"ra_View file":"Посмотреть файл","ra_View: %s":"Просмотр: %s",ra_Wednesday:SNe,ra_Width:xNe,ra_Yes:CNe,"ra_You can export all objects or just the selected branch.":"Вы можете экспортировать все объекты или только выбранную ветвь.","ra_You can filter entries by entering here some text":"Вы можете отфильтровать записи, введя здесь текст",ra___different__:TNe,ra_aclEveryone_read_object:kNe,ra_aclEveryone_read_state:ENe,ra_aclEveryone_write_object:DNe,ra_aclEveryone_write_state:MNe,ra_aclGroup_read_object:ONe,ra_aclGroup_read_state:$Ne,ra_aclGroup_write_object:ANe,ra_aclGroup_write_state:PNe,ra_aclOwner_read_object:INe,ra_aclOwner_read_state:RNe,ra_aclOwner_write_object:LNe,ra_aclOwner_write_state:NNe,ra_buttons:FNe,ra_changedFrom:zNe,ra_close:BNe,ra_create_boolean_state:jNe,ra_create_channel:WNe,ra_create_device:HNe,ra_create_number_state:UNe,ra_create_state:YNe,ra_create_string_state:VNe,ra_daysShortText:GNe,ra_dow_Fr:qNe,ra_dow_Mo:XNe,ra_dow_Sa:JNe,ra_dow_Su:ZNe,ra_dow_Th:KNe,ra_dow_Tu:QNe,ra_dow_We:e5e,ra_expertMode:t5e,ra_fileType_all:r5e,ra_fileType_audio:n5e,ra_fileType_code:a5e,ra_fileType_images:i5e,ra_fileType_txt:o5e,ra_fileType_video:s5e,"ra_fileType_video,":"видео",ra_filter_customs:l5e,ra_filter_customs_without:c5e,ra_filter_func:u5e,ra_filter_id:d5e,ra_filter_name:f5e,ra_filter_role:h5e,ra_filter_room:p5e,ra_filter_type:m5e,"ra_import data from %s file":"Импортировать данные из файла %s",ra_invalidConfig:v5e,ra_lastChange:g5e,ra_locally:_5e,ra_month_Apr:y5e,ra_month_Aug:b5e,ra_month_Dec:w5e,ra_month_Feb:S5e,ra_month_Jan:x5e,ra_month_Jul:C5e,ra_month_Jun:T5e,ra_month_Mai:k5e,ra_month_Mar:E5e,ra_month_Nov:D5e,ra_month_Oct:M5e,ra_month_Sep:O5e,ra_months_Apr:$5e,ra_months_Aug:A5e,ra_months_Dec:P5e,ra_months_Feb:I5e,ra_months_Jan:R5e,ra_months_Jul:L5e,ra_months_Jun:N5e,ra_months_Mai:F5e,ra_months_Mar:z5e,ra_months_Nov:B5e,ra_months_Oct:j5e,ra_months_Sep:W5e,ra_none:H5e,ra_object_changed_by:U5e,ra_object_changed_by_user:Y5e,ra_otherConfig:V5e,ra_qualityCode:G5e,ra_repeat:q5e,ra_select_folder_hint:X5e,ra_state_changed_by:J5e,ra_state_changed_from:Z5e,ra_timestamp:K5e,ra_tooltip_ack:Q5e,ra_tooltip_comment:e3e,ra_tooltip_copyState:t3e,ra_tooltip_customConfig:r3e,ra_tooltip_deleteObject:n3e,ra_tooltip_editObject:a3e,ra_tooltip_editState:i3e,ra_tooltip_from:o3e,ra_tooltip_lc:s3e,ra_tooltip_quality:l3e,ra_tooltip_ts:c3e,ra_tooltip_user:u3e,ra_tooltip_value:d3e,"ra_use seconds":"секунды",ra_val:f3e,"ra_via internet":"через интернет",ra_warning_every_minute:h3e,ra_warning_every_second:p3e,sc_cron:m3e,sc_date:v3e,sc_dates:g3e,sc_dow:_3e,sc_dows:y3e,sc_every:b3e,sc_everyN_dates:w3e,sc_everyN_dow:S3e,sc_everyN_dows:x3e,sc_everyN_hours:C3e,sc_everyN_minutes:T3e,sc_everyN_months:k3e,sc_everyN_seconds:E3e,sc_every_dates:D3e,sc_every_dow:M3e,sc_every_dows:O3e,sc_every_hours:$3e,sc_every_minutes:A3e,sc_every_months:P3e,sc_every_seconds:I3e,sc_from:R3e,sc_hours:L3e,sc_interval:N3e,sc_intervalBetween:F3e,sc_invalid_cron:z3e,sc_minutes:B3e,sc_months:j3e,sc_once:W3e,sc_period:H3e,sc_seconds:U3e,sc_simple:Y3e,sc_specific:V3e,sc_specific_dates:G3e,sc_specific_dow:q3e,sc_specific_dows:X3e,sc_specific_hours:J3e,sc_specific_minutes:Z3e,sc_specific_months:K3e,sc_specific_seconds:Q3e,sc_time:e4e,sc_to:t4e,sc_wizard:r4e,sch_all:n4e,sch_astroDay:a4e,sch_astroNight:i4e,sch_astro_dawn:o4e,sch_astro_dusk:s4e,sch_astro_goldenHour:l4e,sch_astro_goldenHourEnd:c4e,sch_astro_nadir:u4e,sch_astro_nauticalDawn:d4e,sch_astro_nauticalDusk:f4e,sch_astro_night:h4e,sch_astro_nightEnd:p4e,sch_astro_solarNoon:m4e,sch_astro_sunrise:v4e,sch_astro_sunriseEnd:g4e,sch_astro_sunset:_4e,sch_astro_sunsetStart:y4e,sch_at:b4e,sch_desc_atTime:w4e,sch_desc_everyDay:S4e,sch_desc_everyHour:x4e,sch_desc_everyMinute:C4e,sch_desc_everyMonth:T4e,sch_desc_everyNDay:k4e,sch_desc_everyNHours:E4e,sch_desc_everyNMinutes:D4e,sch_desc_everyNMonths:M4e,sch_desc_everyNWeeks:O4e,sch_desc_everyNYears:$4e,sch_desc_everyWeek:A4e,sch_desc_everyYear:P4e,sch_desc_intervalFromTo:I4e,sch_desc_never:R4e,sch_desc_onDate:L4e,sch_desc_onDates:N4e,sch_desc_onEveryDate:F4e,sch_desc_onMonth:z4e,sch_desc_onMonths:B4e,sch_desc_onWeekday:j4e,sch_desc_onWeekdays:W4e,sch_desc_onWeekends:H4e,sch_desc_onWorkdays:U4e,sch_desc_onceInPast:Y4e,sch_desc_once_on:V4e,sch_desc_validFrom:G4e,sch_desc_validFromTo:q4e,sch_desc_validTo:X4e,sch_every:J4e,sch_exactTime:Z4e,sch_from:K4e,sch_fromTo:Q4e,sch_intervalTime:eFe,sch_invert:tFe,sch_no_one:rFe,sch_on:nFe,sch_period:aFe,sch_periodDaily:iFe,sch_periodDates:oFe,sch_periodDay:sFe,sch_periodEvery:lFe,sch_periodEveryDay:cFe,sch_periodEveryMonth:uFe,sch_periodEveryWeek:dFe,sch_periodEveryYear:fFe,sch_periodHours:hFe,sch_periodMinutes:pFe,sch_periodMonth:mFe,sch_periodMonthly:vFe,sch_periodOnce:gFe,sch_periodSpecificMonths:_Fe,sch_periodWeek:yFe,sch_periodWeekdays:bFe,sch_periodWeekend:wFe,sch_periodWeekly:SFe,sch_periodWorkdays:xFe,sch_periodYear:CFe,sch_periodYearly:TFe,sch_specificTime:kFe,sch_time:EFe,sch_to:DFe,sch_valid:MFe,sch_validFrom:OFe,sch_validTo:$Fe,sch_wholeDay:AFe,sch_yearEveryMonth:PFe},RFe="Acrescentar",LFe="Cancelar",NFe="Categorias",FFe="Verificado",zFe="Excluir",BFe="Perto",jFe="Comercial",WFe="Configurar",HFe="Conectado",UFe="Copiado",YFe="Crio",VFe="Colheita",GFe="Delete",qFe="Excluir",XFe="Descartar",JFe="Desconectado",ZFe="Erro",KFe="Filtro",QFe="Sexta-feira",eze="Latitude",tze="Longitude",rze="mensagem",nze="Segunda-feira",aze="Nome",ize="Objetos",oze="Está bem",sze="produtos",lze="Repita",cze="Substituir",uze="Raiz",dze="Sábado",fze="Salve ",hze="Selecionado",pze="Estados",mze="Domingo",vze="Quinta-feira",gze="Timestamp",_ze="Terça-feira",yze="Atualizar",bze="Válida até",wze="Valor",Sze="Versão",xze="Quarta-feira",Cze="Largura",Tze="Sim",kze="diferente",Eze="Todos podem ler objetos",Dze="Todos podem ler o estado",Mze="Todos podem escrever objetos",Oze="Todos podem escrever o estado",$ze="O grupo pode ler o objeto",Aze="O grupo pode ler o estado",Pze="O grupo pode escrever o objeto",Ize="O grupo pode escrever o estado",Rze="O proprietário pode ler o objeto",Lze="O proprietário pode ler o estado",Nze="O proprietário pode escrever o objeto",Fze="O proprietário pode escrever o estado",zze="Botões",Bze="Mudou de",jze="fechar",Wze="Criar estado booleano",Hze="Criar canal",Uze="Criar dispositivo",Yze="Criar estado numérico",Vze="Criar estado",Gze="Criar estado de string",qze="d.",Xze="Fr",Jze="Mo",Zze="Sa",Kze="Su",Qze="º",e6e="Tu",t6e="Nós",r6e="Modo especialista",n6e="Todos os arquivos",a6e="áudio",i6e="Código/JSON",o6e="Imagens",s6e="Texto",l6e="Vídeo",c6e="Configurações",u6e="sem",d6e="Função",f6e="ID",h6e="Nome",p6e="Papel (Função)",m6e="Quarto",v6e="Tipo",g6e="Configurações inválidas",_6e="Última mudança",y6e="localmente",b6e="abril",w6e="agosto",S6e="dezembro",x6e="fevereiro",C6e="janeiro",T6e="julho",k6e="junho",E6e="Mai",D6e="março",M6e="novembro",O6e="outubro",$6e="setembro",A6e="abril",P6e="agosto",I6e="dezembro",R6e="fevereiro",L6e="janeiro",N6e="julho",F6e="junho",z6e="Mai",B6e="março",j6e="novembro",W6e="outubro",H6e="setembro",U6e="Nenhum",Y6e="Objeto alterado por",V6e="Objeto alterado pela última vez em",G6e="Configurações de outro adaptador %s",q6e="Código de qualidade",X6e="repetir",J6e='Para selecionar a pasta, basta segurar a tecla "shift" clicando na pasta.',Z6e="Estado alterado por",K6e="Objeto alterado de",Q6e="Timestamp",e8e="Confirmado",t8e="Comente",r8e="Copie o valor do estado",n8e="Opções customizadas",a8e="Excluir objeto",i8e="Editar objeto",o8e="Edite o valor do estado",s8e="De",l8e="Última alteração",c8e="Qualidade",u8e="Timestamp",d8e="Usuário",f8e="Valor",h8e="Valor",p8e="Aviso: O trabalho CRON será executado a cada minuto durante o período especificado!",m8e="Aviso: O trabalho CRON será executado a cada segundo durante o período especificado!",v8e="CRON",g8e="Data",_8e="Dias",y8e="Dia",b8e="Dia da semana",w8e="todos",S8e="a cada N dias",x8e="todo enésimo dia da semana",C8e="todos os N dias da semana",T8e="a cada N horas",k8e="a cada N minutos",E8e="a cada N meses",D8e="a cada N segundos",M8e="todo dia",O8e="todos os dias da semana",$8e="todos os dias da semana",A8e="toda hora",P8e="todo minuto",I8e="todo mês",R8e="todo segundo",L8e="de",N8e="horas",F8e="intervalo",z8e="intervalo entre",B8e="CRON inválido",j8e="minutos",W8e="meses",H8e="uma vez",U8e="período",Y8e="segundos",V8e="simples",G8e="tempo específico",q8e="datas específicas",X8e="dia(s) específico(s) da semana",J8e="dia específico de semanas",Z8e="horas específicas",K8e="minutos específicos",Q8e="meses específicos",eBe="segundos específicos",tBe="tempo",rBe="para",nBe="assistente",aBe="tudo",iBe="dia astral",oBe="noite astral",sBe="amanhecer",lBe="anoitecer",cBe="hora dourada",uBe="Fim da hora dourada",dBe="nadir",fBe="Amanhecer náutico",hBe="Anoitecer náutico",pBe="noite",mBe="fim da noite",vBe="meio-dia solar",gBe="nascer do sol",_Be="fim do nascer do sol",yBe="pôr do sol",bBe="início do pôr do sol",wBe="às",SBe="em %s",xBe="todo dia",CBe="toda hora",TBe="todo minuto",kBe="todo mês",EBe="a cada %s dias",DBe="a cada %s horas",MBe="a cada %s minutos",OBe="a cada %s meses",$Be="a cada %s semanas",ABe="a cada %s anos",PBe="toda semana",IBe="todo ano",RBe="de %s para %s",LBe="nunca",NBe="em %s de %s",FBe="em %s e %s de",zBe="em toda data de",BBe="%s",jBe="%s e %s",WBe="em %s",HBe="em %s e %s",UBe="nos fins de semana",YBe="em dias úteis",VBe="não será mais executado, porque o começo está no passado",GBe="em %s",qBe="de %s",XBe="Executar de até",JBe="até %s",ZBe="cada",KBe="tempo específico",QBe="de",eje="de a´t",tje="tempo de intervalo",rje="invertido",nje="nenhum",aje="em",ije="período",oje="diariamente",sje="datas",lje="dia",cje="todos",uje="todo dia",dje="todo mês",fje="toda semana",hje="todo ano",pje="horas",mje="minutos",vje="mês",gje="por mês",_je="uma vez",yje="meses específicos",bje="semana",wje="dias úteis",Sje="final de semana",xje="semanal",Cje="dias úteis",Tje="ano",kje="anual",Eje="tempo específico",Dje="tempo",Mje="para",Oje="válido",$je="de",Aje="para",Pje="dia inteiro",Ije="todo mês",Rje={"ra_%s links from aliases":"%s links de aliases","ra_%s object(s) processed":"%s objeto(s) processado(s)","ra_%s was imported":"%s foi importado","ra_Accept license":"Aceitar licença","ra_Add new child object to selected parent":"Adicionar novo objeto filho ao pai selecionado","ra_Add objects tree from JSON file":"Adicionar árvore de objetos do arquivo JSON","ra_Add row":"Adicionar linha","ra_Advanced options":"Opções avançadas","ra_All items are filtered out":"Todos os itens são filtrados","ra_All objects":"Todos os objetos",ra_Append:RFe,"ra_Append %s entries or replace existing?":"Acrescentar %s entradas ou substituir as existentes?","ra_Append or replace?":"Acrescentar ou substituir?","ra_Are you sure?":"Você tem certeza?","ra_Auto (no custom columns)":"Auto (sem colunas personalizadas)","ra_Back to %s":"Voltar para %s","ra_Background image":"Imagem de fundo",ra_Cancel:LFe,"ra_Cannot add items with set filter":"Não é possível adicionar itens com filtro definido","ra_Cannot decode license":"Não é possível decodificar a licença","ra_Cannot determine position: System settings are empty and GPS detection is disabled in browser":"Não é possível determinar a posição: as configurações do sistema estão vazias e a detecção de GPS está desativada no navegador",'ra_Cannot find "%s"':'Não foi possível encontrar "%s"','ra_Cannot read "%s"':'Não é possível ler "%s"',"ra_Cannot read licenses: %s":"Não é possível ler licenças: %s","ra_Cannot retrieve options, as instance is offline":"Não é possível recuperar opções, pois a instância está off-line","ra_Cannot update attribute, because not found in the object":"Não é possível atualizar o atributo, porque não foi encontrado no objeto","ra_Cannot upload":"Não é possível fazer upload",ra_Categories:NFe,"ra_Chained certificate":"certificado encadeado","ra_Change color theme":"Alterar tema de cores","ra_Changed from":"Mudou de","ra_Channel → State":"Canal → Estado","ra_Check license":"Verifique a licença",ra_Checked:FFe,ra_Clear:zFe,"ra_Clear filter":"Filtro limpo","ra_Clear icon":"Ícone de limpeza","ra_Clone current row":"Clonar linha atual",ra_Close:BFe,"ra_Collapse all nodes":"Recolher todos os nós","ra_Collapse one step node":"Recolher um nível",ra_Commercial:jFe,ra_Configure:WFe,"ra_Configure visible columns":"Configurar colunas visíveis","ra_Confirm deletion of %s":"Confirme a exclusão de %s",ra_Connected:HFe,ra_Copied:UFe,"ra_Copied %s":'"%s" copiado',"ra_Copy content":"Copiar conteúdo",ra_Create:YFe,"ra_Create alias":"Criar alias","ra_Create folder":"Criar pasta","ra_Create new folder in %s":"Crie uma nova pasta em %s",ra_Crop:VFe,"ra_Define CRON...":"Defina CRON...","ra_Define functions":"Definir funções","ra_Define rooms":"Definir quartos","ra_Define schedule":"Definir cronograma","ra_Define schedule...":"Definir programação ...",ra_Del:GFe,ra_Delete:qFe,"ra_Delete (no confirm for 5 mins)":"Excluir (sem confirmação por 5 minutos)","ra_Delete current row":"Excluir linha atual","ra_Deselect all":"Desmarque todos","ra_Device → Channel → State":"Dispositivo → Canal → Estado",ra_Discard:XFe,ra_Disconnected:JFe,"ra_Do not export values of states":"Não exporte valores de estados","ra_Do not use let's encrypt":"Não use vamos criptografar","ra_Double click to reset table layout":"Clique duas vezes para redefinir o layout da tabela","ra_Drag 'n' drop some files here, or click to select files":"Arraste e solte alguns arquivos aqui ou clique para selecionar arquivos","ra_Drop file here":"Solte o arquivo aqui","ra_Drop the files here...":"Solte o arquivo aqui ...","ra_Duplicate name":"Nome duplicado","ra_Edit ACL":"Editar ACL","ra_Edit alias":"Editar alias","ra_Edit custom config":"Editar configuração personalizada","ra_Edit function":"Função de edição","ra_Edit object field":"Editar campo de objeto","ra_Edit role":"Editar papel","ra_Edit room":"Sala de edição","ra_Edit value":"Editar valor",ra_Error:ZFe,"ra_Expand all nodes":"Expanda todos os nós","ra_Expand one step node":"Expanda um nível","ra_Export data to %s file":"Exportar dados para o arquivo %s","ra_Failed to open JSON File":"Falha ao abrir arquivo JSON","ra_Fallback custom certificates":"Certificados personalizados alternativos","ra_File is too big. Max %sk allowed. Try use SVG.":"O arquivo é muito grande. Max %sk permitido. Tente usar SVG.",ra_Filter:KFe,"ra_Filter files":"Filtrar arquivos","ra_Folder name":"Nome da pasta","ra_Folder → Channel → State":"Pasta → Canal → Estado","ra_Folder → Device → Channel → State":"Pasta → Dispositivo → Canal → Estado","ra_Folder → State":"Pasta → Estado","ra_Folders always first":"Pastas sempre primeiro",ra_Friday:QFe,"ra_Good luck":"Boa sorte","ra_Hide empty folders":"Esconder pastas vazias","ra_If no file will be created in the folder, it will disappear after the browser closed":"Se nenhum arquivo for criado na pasta, ele desaparecerá depois que o navegador for fechado","ra_Import data from %s file":"Importar dados do arquivo %s","ra_Import from %s":"Importar de %s","ra_Instance %s is alive":"O %s da instância está ativo","ra_Instance %s is not alive":"O %s da instância não está ativo","ra_Instance is not alive":"A instância não está ativa","ra_Invalid CRON":"CRON inválido","ra_Invalid JSON":"JSON inválido","ra_Invalid answer from server":"Resposta inválida do servidor","ra_Invalid parent folder!":"Pasta pai inválida!","ra_Invalid structure":"Estrutura inválida","ra_JSON editor":"Editor JSON","ra_Last change":"Última mudança",ra_Latitude:eze,"ra_License %s":"Licença %s","ra_License agreement":"Contrato de licença","ra_License does not exist":"A licença não existe","ra_License expired on %s":"A licença expirou em %s",'ra_License for other product "%s"':'Licença para outro produto "%s"',"ra_License is for version %s, but required version is %s.":"A licença é para a versão %s, mas a versão necessária é %s.","ra_License must be converted":"A licença deve ser convertida para uma versão mais recente. Você pode fazê-lo em seu perfil iobroker.net.","ra_License not found in license manager. Do you want to read licenses from iobroker.net?":"Licença não encontrada no gerenciador de licenças. Deseja atualizar as licenças do iobroker.net?","ra_Listen on all IPs":"Ouça em todos os IPs","ra_Load configuration from file":"Carregar configuração do arquivo",ra_Longitude:tze,'ra_May not trigger "updateLicenses"':'Pode não acionar "updateLicenses"',ra_Message:rze,ra_Monday:nze,"ra_Move down":"Mover para baixo","ra_Move up":"Subir",ra_Name:aze,"ra_No data found in file":"Nenhum dado encontrado no arquivo","ra_No one license found in license manager":"Nenhuma licença encontrada no gerenciador de licenças","ra_No response from the backend":"Nenhuma resposta do backend",'ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".':'Os não especialistas podem criar novos objetos apenas em "0_userdata.0" ou "alias.0".',"ra_Not a number":"Não é um número",ra_Objects:ize,ra_Ok:oze,"ra_On weekdays":"Nos dias úteis","ra_Only following structures of objects are available:":"Apenas as seguintes estruturas de objetos estão disponíveis:","ra_Only selected":"Apenas selecionado","ra_Owner group":"Grupo proprietário","ra_Owner user":"Usuário proprietário","ra_Passwords are not equal!":"As senhas não são iguais!","ra_Place your files here or click here to open the browse dialog":"Coloque seus arquivos aqui ou clique aqui para abrir a janela de navegação","ra_Please confirm":"Por favor confirme","ra_Please create license":"Crie uma licença","ra_Please enter the license":"Por favor, insira a licença","ra_Please select file...":"Selecione o arquivo...","ra_Please select object ID...":"Selecione o ID do objeto ...","ra_Port could be used by %s":"A porta pode ser usada por %s","ra_Port is already used by %s":"A porta já está sendo usada por %s","ra_Private certificate":"certificado privado",ra_Product:sze,"ra_Public certificate":"certificado público","ra_Quality code":"Qualidade","ra_Refresh tree":"Atualizar árvore","ra_Reload files":"Recarregar arquivos",ra_Repeat:lze,ra_Replace:cze,"ra_Request timed out":"Solicitação expirou","ra_Restrict to folder":"Restringir à pasta",ra_Root:uze,ra_Saturday:dze,ra_Save:fze,"ra_Save and close":"Salvar e fechar","ra_Save configuration to file":"Salvar configuração em arquivo","ra_Save objects tree as JSON file":"Salvar árvore de objetos como arquivo JSON","ra_Select all":"Selecionar tudo","ra_Select color":"Selecione a cor","ra_Select predefined icon":"Selecione o ícone predefinido","ra_Select type of export":"Selecione o tipo de exportação",ra_Selected:hze,"ra_Selected %s object(s)":"%s objeto(s) selecionado(s)","ra_Serial number (UUID)":"Número de série (UUID)",'ra_Serial number (UUID) "%s" in license is for other device.':'O número de série (UUID) "%s" na licença é para outro dispositivo.',"ra_Show all folders":"Mostrar todas as pastas","ra_Show lines between rows":"Mostrar linhas entre as linhas","ra_Show/Hide object descriptions":"Mostrar/ocultar descrições de objetos","ra_Show/hide filter input":"Mostrar/ocultar entrada de filtro","ra_Some data are not stored. Discard?":"Alguns dados não são armazenados. Descartar?",ra_States:pze,"ra_Suitable license not found in license manager":"Licença adequada não encontrada no gerenciador de licenças",ra_Sunday:mze,"ra_Suppress question for next %s minutes":"Suprimir pergunta nos próximos %s minutos","ra_System language":"Idioma do sistema","ra_Take browser position":"Tomar posição do navegador","ra_Take position from system settings":"Tomar posição a partir das configurações do sistema",'ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").':'Os especialistas podem criar objetos em qualquer lugar, exceto no segundo nível (por exemplo, "vis.0" ou "javascript.0").',"ra_The page you are looking for was not found":"A página que você está procurando não foi encontrada","ra_The schedule will be executed every minute. Are you sure?":"O agendamento será executado a cada minuto. Tem certeza?","ra_The schedule will be executed every second. Are you sure?":"O agendamento será executado a cada segundo. Tem certeza?",ra_Thursday:vze,ra_Timestamp:gze,"ra_Toggle expert mode":"Alternar modo especialista","ra_Toggle the states view":"Alternar a visualização dos estados","ra_Toggle view mode":"Alternar modo de visualização","ra_Too big":"Muito grande","ra_Too small":"Muito pequeno","ra_Transparent dialog":"Diálogo transparente",ra_Tuesday:_ze,"ra_Unknown error":"Erro desconhecido","ra_Unknown error!":"Erro desconhecido!",ra_Update:yze,"ra_Upload file":"Subir arquivo","ra_Use all available let's encrypt certificates":"Use todos os certificados disponíveis vamos criptografar","ra_Use iobroker.acme adapter for letsencrypt certificates":"Use o adaptador iobroker.acme para certificados letsencrypt","ra_Use system settings for position":"Use as configurações do sistema para a posição","ra_Used system settings":"Configurações do sistema usadas","ra_User files":"Arquivos do usuário",ra_ValidTill:bze,ra_Value:wze,ra_Version:Sze,"ra_View file":"Visualizar arquivo","ra_View: %s":"Visualizar: %s",ra_Wednesday:xze,ra_Width:Cze,ra_Yes:Tze,"ra_You can export all objects or just the selected branch.":"Você pode exportar todos os objetos ou apenas a ramificação selecionada.","ra_You can filter entries by entering here some text":"Você pode filtrar as entradas digitando aqui algum texto",ra___different__:kze,ra_aclEveryone_read_object:Eze,ra_aclEveryone_read_state:Dze,ra_aclEveryone_write_object:Mze,ra_aclEveryone_write_state:Oze,ra_aclGroup_read_object:$ze,ra_aclGroup_read_state:Aze,ra_aclGroup_write_object:Pze,ra_aclGroup_write_state:Ize,ra_aclOwner_read_object:Rze,ra_aclOwner_read_state:Lze,ra_aclOwner_write_object:Nze,ra_aclOwner_write_state:Fze,ra_buttons:zze,ra_changedFrom:Bze,ra_close:jze,ra_create_boolean_state:Wze,ra_create_channel:Hze,ra_create_device:Uze,ra_create_number_state:Yze,ra_create_state:Vze,ra_create_string_state:Gze,ra_daysShortText:qze,ra_dow_Fr:Xze,ra_dow_Mo:Jze,ra_dow_Sa:Zze,ra_dow_Su:Kze,ra_dow_Th:Qze,ra_dow_Tu:e6e,ra_dow_We:t6e,ra_expertMode:r6e,ra_fileType_all:n6e,ra_fileType_audio:a6e,ra_fileType_code:i6e,ra_fileType_images:o6e,ra_fileType_txt:s6e,ra_fileType_video:l6e,"ra_fileType_video,":"Vídeo",ra_filter_customs:c6e,ra_filter_customs_without:u6e,ra_filter_func:d6e,ra_filter_id:f6e,ra_filter_name:h6e,ra_filter_role:p6e,ra_filter_room:m6e,ra_filter_type:v6e,"ra_import data from %s file":"Importar dados do arquivo %s",ra_invalidConfig:g6e,ra_lastChange:_6e,ra_locally:y6e,ra_month_Apr:b6e,ra_month_Aug:w6e,ra_month_Dec:S6e,ra_month_Feb:x6e,ra_month_Jan:C6e,ra_month_Jul:T6e,ra_month_Jun:k6e,ra_month_Mai:E6e,ra_month_Mar:D6e,ra_month_Nov:M6e,ra_month_Oct:O6e,ra_month_Sep:$6e,ra_months_Apr:A6e,ra_months_Aug:P6e,ra_months_Dec:I6e,ra_months_Feb:R6e,ra_months_Jan:L6e,ra_months_Jul:N6e,ra_months_Jun:F6e,ra_months_Mai:z6e,ra_months_Mar:B6e,ra_months_Nov:j6e,ra_months_Oct:W6e,ra_months_Sep:H6e,ra_none:U6e,ra_object_changed_by:Y6e,ra_object_changed_by_user:V6e,ra_otherConfig:G6e,ra_qualityCode:q6e,ra_repeat:X6e,ra_select_folder_hint:J6e,ra_state_changed_by:Z6e,ra_state_changed_from:K6e,ra_timestamp:Q6e,ra_tooltip_ack:e8e,ra_tooltip_comment:t8e,ra_tooltip_copyState:r8e,ra_tooltip_customConfig:n8e,ra_tooltip_deleteObject:a8e,ra_tooltip_editObject:i8e,ra_tooltip_editState:o8e,ra_tooltip_from:s8e,ra_tooltip_lc:l8e,ra_tooltip_quality:c8e,ra_tooltip_ts:u8e,ra_tooltip_user:d8e,ra_tooltip_value:f8e,"ra_use seconds":"use segundos",ra_val:h8e,"ra_via internet":"via internet",ra_warning_every_minute:p8e,ra_warning_every_second:m8e,sc_cron:v8e,sc_date:g8e,sc_dates:_8e,sc_dow:y8e,sc_dows:b8e,sc_every:w8e,sc_everyN_dates:S8e,sc_everyN_dow:x8e,sc_everyN_dows:C8e,sc_everyN_hours:T8e,sc_everyN_minutes:k8e,sc_everyN_months:E8e,sc_everyN_seconds:D8e,sc_every_dates:M8e,sc_every_dow:O8e,sc_every_dows:$8e,sc_every_hours:A8e,sc_every_minutes:P8e,sc_every_months:I8e,sc_every_seconds:R8e,sc_from:L8e,sc_hours:N8e,sc_interval:F8e,sc_intervalBetween:z8e,sc_invalid_cron:B8e,sc_minutes:j8e,sc_months:W8e,sc_once:H8e,sc_period:U8e,sc_seconds:Y8e,sc_simple:V8e,sc_specific:G8e,sc_specific_dates:q8e,sc_specific_dow:X8e,sc_specific_dows:J8e,sc_specific_hours:Z8e,sc_specific_minutes:K8e,sc_specific_months:Q8e,sc_specific_seconds:eBe,sc_time:tBe,sc_to:rBe,sc_wizard:nBe,sch_all:aBe,sch_astroDay:iBe,sch_astroNight:oBe,sch_astro_dawn:sBe,sch_astro_dusk:lBe,sch_astro_goldenHour:cBe,sch_astro_goldenHourEnd:uBe,sch_astro_nadir:dBe,sch_astro_nauticalDawn:fBe,sch_astro_nauticalDusk:hBe,sch_astro_night:pBe,sch_astro_nightEnd:mBe,sch_astro_solarNoon:vBe,sch_astro_sunrise:gBe,sch_astro_sunriseEnd:_Be,sch_astro_sunset:yBe,sch_astro_sunsetStart:bBe,sch_at:wBe,sch_desc_atTime:SBe,sch_desc_everyDay:xBe,sch_desc_everyHour:CBe,sch_desc_everyMinute:TBe,sch_desc_everyMonth:kBe,sch_desc_everyNDay:EBe,sch_desc_everyNHours:DBe,sch_desc_everyNMinutes:MBe,sch_desc_everyNMonths:OBe,sch_desc_everyNWeeks:$Be,sch_desc_everyNYears:ABe,sch_desc_everyWeek:PBe,sch_desc_everyYear:IBe,sch_desc_intervalFromTo:RBe,sch_desc_never:LBe,sch_desc_onDate:NBe,sch_desc_onDates:FBe,sch_desc_onEveryDate:zBe,sch_desc_onMonth:BBe,sch_desc_onMonths:jBe,sch_desc_onWeekday:WBe,sch_desc_onWeekdays:HBe,sch_desc_onWeekends:UBe,sch_desc_onWorkdays:YBe,sch_desc_onceInPast:VBe,sch_desc_once_on:GBe,sch_desc_validFrom:qBe,sch_desc_validFromTo:XBe,sch_desc_validTo:JBe,sch_every:ZBe,sch_exactTime:KBe,sch_from:QBe,sch_fromTo:eje,sch_intervalTime:tje,sch_invert:rje,sch_no_one:nje,sch_on:aje,sch_period:ije,sch_periodDaily:oje,sch_periodDates:sje,sch_periodDay:lje,sch_periodEvery:cje,sch_periodEveryDay:uje,sch_periodEveryMonth:dje,sch_periodEveryWeek:fje,sch_periodEveryYear:hje,sch_periodHours:pje,sch_periodMinutes:mje,sch_periodMonth:vje,sch_periodMonthly:gje,sch_periodOnce:_je,sch_periodSpecificMonths:yje,sch_periodWeek:bje,sch_periodWeekdays:wje,sch_periodWeekend:Sje,sch_periodWeekly:xje,sch_periodWorkdays:Cje,sch_periodYear:Tje,sch_periodYearly:kje,sch_specificTime:Eje,sch_time:Dje,sch_to:Mje,sch_valid:Oje,sch_validFrom:$je,sch_validTo:Aje,sch_wholeDay:Pje,sch_yearEveryMonth:Ije},Lje="toevoegen",Nje="Annuleer",Fje="Categorieën",zje="Gecontroleerd",Bje="Verwijderen",jje="Dichtbij",Wje="Reclame",Hje="Configureren",Uje="Verbonden",Yje="Gekopieerd",Vje="Creëer",Gje="Bijsnijden",qje="Delete",Xje="Verwijderen",Jje="Weggooien",Zje="Verbinding verbroken",Kje="Fout",Qje="Filter",e9e="Vrijdag",t9e="Breedtegraad",r9e="Lengtegraad",n9e="Bericht",a9e="Maandag",i9e="Naam",o9e="Voorwerpen",s9e="OK",l9e="Product",c9e="Herhaling",u9e="Vervangen",d9e="Wortel",f9e="Zaterdag",h9e="Sparen",p9e="Geselecteerd",m9e="Staten",v9e="Zondag",g9e="Donderdag",_9e="Tijdstempel",y9e="Dinsdag",b9e="Bijwerken",w9e="Geldig tot",S9e="Waarde",x9e="Versie",C9e="Woensdag",T9e="Breedte",k9e="Ja",E9e="verschillend",D9e="Iedereen kan object lezen",M9e="Iedereen kan staat lezen",O9e="Iedereen kan object schrijven",$9e="Iedereen kan staat schrijven",A9e="Groep kan object lezen",P9e="Groep kan status lezen",I9e="Groep kan object schrijven",R9e="Groep kan staat schrijven",L9e="Eigenaar kan object lezen",N9e="Eigenaar kan staat lezen",F9e="Eigenaar kan object schrijven",z9e="Eigenaar kan staat schrijven",B9e="Toetsen",j9e="Veranderd van",W9e="dichtbij",H9e="Creëer een Booleaanse status",U9e="Kanaal maken",Y9e="Apparaat maken",V9e="Nummerstatus maken",G9e="Staat creëren",q9e="Tekenreeksstatus maken",X9e="d.",J9e="Fr",Z9e="Mo",K9e="Za",Q9e="Zo",e7e="Th",t7e="Tu",r7e="Wij",n7e="Expert modus",a7e="Alle bestanden",i7e="Audio",o7e="Code/JSON",s7e="Afbeeldingen",l7e="Tekst",c7e="Video",u7e="Instellingen",d7e="zonder",f7e="Functie",h7e="ID",p7e="Naam",m7e="Rol",v7e="Kamer",g7e="Type",_7e="Ongeldige instellingen",y7e="Laatste wijziging",b7e="plaatselijk",w7e="april",S7e="aug",x7e="dec",C7e="februari",T7e="jan",k7e="jul",E7e="juni",D7e="Mei",M7e="mrt",O7e="nov",$7e="Okt",A7e="sept",P7e="april",I7e="aug",R7e="dec",L7e="februari",N7e="jan",F7e="jul",z7e="juni",B7e="Mei",j7e="mrt",W7e="nov",H7e="Okt",U7e="sept",Y7e="geen",V7e="Object veranderd door",G7e="Object voor het laatst gewijzigd om",q7e="Instellingen van andere adapter %s",X7e="Kwaliteitscode",J7e="herhalen",Z7e='Om een map te selecteren, houdt u gewoon de toets "shift" ingedrukt door op de map te klikken.',K7e="Staat veranderd door",Q7e="Object veranderd van",eWe="Tijdstempel",tWe="Erkende vlag",rWe="Opmerking",nWe="Kopieer de statuswaarde",aWe="Aangepaste instellingen",iWe="Object verwijderen",oWe="Object bewerken",sWe="Bewerk de statuswaarde",lWe="Van",cWe="Laatst gewijzigd",uWe="Kwaliteit",dWe="Tijdstempel",fWe="Gebruiker",hWe="Waarde",pWe="Waarde",mWe="Waarschuwing: De CRON-taak wordt elke minuut uitgevoerd gedurende de opgegeven periode!",vWe="Waarschuwing: De CRON-taak wordt elke seconde uitgevoerd gedurende de opgegeven periode!",gWe="CRON",_We="Datum",yWe="data",bWe="Dag",wWe="Dag van de week",SWe="elk",xWe="elke N dagen",CWe="elke N-de dag van de week",TWe="elke N dag van de week",kWe="elke N uur",EWe="elke N minuten",DWe="elke N maanden",MWe="elke N seconden",OWe="elke dag",$We="elke dag van de week",AWe="elke dag van de week",PWe="elk uur",IWe="elke minuut",RWe="elke maand",LWe="elke seconde",NWe="Van",FWe="uren",zWe="Interval",BWe="Interval tussen",jWe="Ongeldige CRON",WWe="Notulen",HWe="maanden",UWe="Een keer",YWe="Periode",VWe="seconden",GWe="Gemakkelijk",qWe="Specifieke tijd",XWe="specifieke data",JWe="specifieke dag(en) van de week",ZWe="specifieke dag van weken",KWe="specifieke uren",QWe="specifieke minuten",eHe="specifieke maanden",tHe="specifieke seconden",rHe="Tijd",nHe="Naar",aHe="tovenaar",iHe="allemaal",oHe="Astro-dag",sHe="Astro-nacht",lHe="Dageraad",cHe="Schemer",uHe="gouden uur",dHe="Gouden uur einde",fHe="Nadir",hHe="Nautische dageraad",pHe="Nautische schemering",mHe="Nacht",vHe="Nacht einde",gHe="Zonne middag",_He="zonsopkomst",yHe="Sunrise einde",bHe="Zonsondergang",wHe="Zonsondergang start",SHe="Bij",xHe="op %s",CHe="elke dag",THe="elk uur",kHe="elke minuut",EHe="elke maand",DHe="elke %s dag",MHe="elke %s uur",OHe="elke %s minuten",$He="elke %s maanden",AHe="elke %s weken",PHe="elke %s jaar",IHe="elke week",RHe="elk jaar",LHe="van %s tot %s",NHe="nooit",FHe="op %s van %s",zHe="op %s en %s van",BHe="op elke datum van",jHe="%s",WHe="%s en %s",HHe="op %s",UHe="op %s en %s",YHe="in het weekend",VHe="op werkdagen",GHe="zal niet meer worden uitgevoerd, omdat start verleden tijd is",qHe="op %s",XHe="van %s",JHe="Uitvoeren van tot",ZHe="tot %s",KHe="elk",QHe="Specifieke tijd",eUe="van",tUe="Van naar",rUe="Interval tijd",nUe="omkeren",aUe="geen",iUe="Aan",oUe="Periode",sUe="Dagelijks",lUe="data",cUe="Dag",uUe="elk",dUe="Elke dag",fUe="Elke maand",hUe="Elke week",pUe="Elk jaar",mUe="uren",vUe="Notulen",gUe="maand",_Ue="Maandelijks",yUe="Een keer",bUe="Specifieke maanden",wUe="Week",SUe="Doordeweekse dagen",xUe="Weekend",CUe="Wekelijks",TUe="werkdagen",kUe="Jaar",EUe="jaar-",DUe="Specifieke tijd",MUe="Tijd",OUe="naar",$Ue="Geldig",AUe="van",PUe="naar",IUe="Hele dag",RUe="elke maand",LUe={"ra_%s links from aliases":"%s links van aliassen","ra_%s object(s) processed":"%s object(en) verwerkt","ra_%s was imported":"%s is geïmporteerd","ra_Accept license":"Accepteer licentie","ra_Add new child object to selected parent":"Voeg een nieuw kindobject toe aan het geselecteerde bovenliggende object","ra_Add objects tree from JSON file":"Objectenboom toevoegen vanuit JSON-bestand","ra_Add row":"Voeg een rij toe","ra_Advanced options":"Geavanceerde mogelijkheden","ra_All items are filtered out":"Alle items zijn uitgefilterd","ra_All objects":"Alle objecten",ra_Append:Lje,"ra_Append %s entries or replace existing?":"%s ingangen toevoegen of bestaande vervangen?","ra_Append or replace?":"Toevoegen of vervangen?","ra_Are you sure?":"Weet je het zeker?","ra_Auto (no custom columns)":"Auto (geen aangepaste kolommen)","ra_Back to %s":"Terug naar %s","ra_Background image":"Achtergrond afbeelding",ra_Cancel:Nje,"ra_Cannot add items with set filter":"Kan geen items toevoegen met ingestelde filter","ra_Cannot decode license":"Kan licentie niet decoderen","ra_Cannot determine position: System settings are empty and GPS detection is disabled in browser":"Kan positie niet bepalen: systeeminstellingen zijn leeg en GPS-detectie is uitgeschakeld in browser",'ra_Cannot find "%s"':'Kan "%s" niet vinden','ra_Cannot read "%s"':'Kan "%s" niet lezen',"ra_Cannot read licenses: %s":"Kan licenties niet lezen: %s","ra_Cannot retrieve options, as instance is offline":"Kan opties niet ophalen, omdat instantie offline is","ra_Cannot update attribute, because not found in the object":"Kan kenmerk niet bijwerken, omdat het niet in het object is gevonden","ra_Cannot upload":"Kan niet uploaden",ra_Categories:Fje,"ra_Chained certificate":"Geketend certificaat","ra_Change color theme":"Kleurthema wijzigen","ra_Changed from":"Veranderd van","ra_Channel → State":"Kanaal → Staat","ra_Check license":"Licentie controleren",ra_Checked:zje,ra_Clear:Bje,"ra_Clear filter":"Filter wissen","ra_Clear icon":"Pictogram wissen","ra_Clone current row":"Kloon de huidige rij",ra_Close:jje,"ra_Collapse all nodes":"Vouw alle knooppunten samen","ra_Collapse one step node":"Eén niveau samenvouwen",ra_Commercial:Wje,ra_Configure:Hje,"ra_Configure visible columns":"Configureer zichtbare kolommen","ra_Confirm deletion of %s":"Bevestig het verwijderen van %s",ra_Connected:Uje,ra_Copied:Yje,"ra_Copied %s":'"%s" gekopieerd',"ra_Copy content":"Inhoud kopiëren",ra_Create:Vje,"ra_Create alias":"Alias maken","ra_Create folder":"Map aanmaken","ra_Create new folder in %s":"Maak een nieuwe map in %s",ra_Crop:Gje,"ra_Define CRON...":"Definieer CRON...","ra_Define functions":"Definieer functies","ra_Define rooms":"Definieer kamers","ra_Define schedule":"Definieer schema","ra_Define schedule...":"Schema definiëren ...",ra_Del:qje,ra_Delete:Xje,"ra_Delete (no confirm for 5 mins)":"Verwijderen (geen bevestiging gedurende 5 minuten)","ra_Delete current row":"Huidige rij verwijderen","ra_Deselect all":"Deselecteer alles","ra_Device → Channel → State":"Apparaat → Kanaal → Staat",ra_Discard:Jje,ra_Disconnected:Zje,"ra_Do not export values of states":"Exporteer geen waarden van staten","ra_Do not use let's encrypt":"Gebruik geen let's encrypt","ra_Double click to reset table layout":"Dubbelklik om de tafelindeling te resetten","ra_Drag 'n' drop some files here, or click to select files":"Sleep enkele bestanden hierheen, of klik om bestanden te selecteren","ra_Drop file here":"Zet het bestand hier neer","ra_Drop the files here...":"Zet het bestand hier neer...","ra_Duplicate name":"Dubbele naam","ra_Edit ACL":"ACL bewerken","ra_Edit alias":"Alias bewerken","ra_Edit custom config":"Bewerk aangepaste config","ra_Edit function":"Bewerkingsfunctie","ra_Edit object field":"Bewerk objectveld","ra_Edit role":"Rol bewerken","ra_Edit room":"Kamer bewerken","ra_Edit value":"Waarde bewerken",ra_Error:Kje,"ra_Expand all nodes":"Vouw alle knooppunten uit","ra_Expand one step node":"Vouw een niveau uit","ra_Export data to %s file":"Exporteer gegevens naar %s bestand","ra_Failed to open JSON File":"JSON-bestand kan niet worden geopend","ra_Fallback custom certificates":"Fallback aangepaste certificaten","ra_File is too big. Max %sk allowed. Try use SVG.":"Bestand is te groot. Max. %sk toegestaan. Probeer SVG te gebruiken.",ra_Filter:Qje,"ra_Filter files":"Bestanden filteren","ra_Folder name":"Naam van de map","ra_Folder → Channel → State":"Map → Kanaal → Staat","ra_Folder → Device → Channel → State":"Map → Apparaat → Kanaal → Staat","ra_Folder → State":"Map → Staat","ra_Folders always first":"Mappen altijd eerst",ra_Friday:e9e,"ra_Good luck":"Veel geluk","ra_Hide empty folders":"Verberg lege mappen","ra_If no file will be created in the folder, it will disappear after the browser closed":"Als er geen bestand in de map wordt gemaakt, verdwijnt het nadat de browser is gesloten","ra_Import data from %s file":"Importeer gegevens uit %s bestand","ra_Import from %s":"Importeren uit %s","ra_Instance %s is alive":"Instantie %s leeft","ra_Instance %s is not alive":"Instantie %s is niet actief","ra_Instance is not alive":"Instantie leeft niet","ra_Invalid CRON":"Ongeldige CRON","ra_Invalid JSON":"Ongeldige JSON","ra_Invalid answer from server":"Ongeldig antwoord van de server","ra_Invalid parent folder!":"Ongeldige bovenliggende map!","ra_Invalid structure":"Ongeldige structuur","ra_JSON editor":"JSON-editor","ra_Last change":"Laatste wijziging",ra_Latitude:t9e,"ra_License %s":"Licentie %s","ra_License agreement":"Licentieovereenkomst","ra_License does not exist":"Licentie bestaat niet","ra_License expired on %s":"Licentie verlopen op %s",'ra_License for other product "%s"':'Licentie voor ander product "%s"',"ra_License is for version %s, but required version is %s.":"Licentie is voor versie %s, maar vereiste versie is %s.","ra_License must be converted":"Licentie moet worden omgezet naar nieuwere versie. U kunt dit doen in uw iobroker.net-profiel.","ra_License not found in license manager. Do you want to read licenses from iobroker.net?":"Licentie niet gevonden in licentiebeheer. Wilt u licenties van iobroker.net bijwerken?","ra_Listen on all IPs":"Luister op alle IP's","ra_Load configuration from file":"Laad configuratie uit bestand",ra_Longitude:r9e,'ra_May not trigger "updateLicenses"':'Activeert mogelijk niet "updateLicenses"',ra_Message:n9e,ra_Monday:a9e,"ra_Move down":"Naar beneden verplaatsen","ra_Move up":"Omhoog gaan",ra_Name:i9e,"ra_No data found in file":"Geen gegevens gevonden in bestand","ra_No one license found in license manager":"Geen enkele licentie gevonden in licentiebeheer","ra_No response from the backend":"Geen reactie van de backend",'ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".':'Niet-experts mogen alleen nieuwe objecten maken in "0_userdata.0" of "alias.0".',"ra_Not a number":"Geen nummer",ra_Objects:o9e,ra_Ok:s9e,"ra_On weekdays":"Op weekdagen","ra_Only following structures of objects are available:":"Alleen de volgende structuren van objecten zijn beschikbaar:","ra_Only selected":"Alleen geselecteerd","ra_Owner group":"Eigenaarsgroep","ra_Owner user":"Eigenaar gebruiker","ra_Passwords are not equal!":"Wachtwoorden zijn niet gelijk!","ra_Place your files here or click here to open the browse dialog":"Plaats uw bestanden hier of klik hier om het bladervenster te openen","ra_Please confirm":"Bevestig alstublieft","ra_Please create license":"Maak een licentie aan","ra_Please enter the license":"Voer de licentie in","ra_Please select file...":"Selecteer bestand...","ra_Please select object ID...":"Selecteer object-ID ...","ra_Port could be used by %s":"Poort kan worden gebruikt door %s","ra_Port is already used by %s":"Poort wordt al gebruikt door %s","ra_Private certificate":"Privé certificaat",ra_Product:l9e,"ra_Public certificate":"Openbaar certificaat","ra_Quality code":"Kwaliteit","ra_Refresh tree":"Vernieuw de boom","ra_Reload files":"Laad bestanden opnieuw",ra_Repeat:c9e,ra_Replace:u9e,"ra_Request timed out":"Verzoek verlopen","ra_Restrict to folder":"Beperken tot map",ra_Root:d9e,ra_Saturday:f9e,ra_Save:h9e,"ra_Save and close":"Opslaan en afsluiten","ra_Save configuration to file":"Sla de configuratie op in een bestand","ra_Save objects tree as JSON file":"Sla de objectenboom op als JSON-bestand","ra_Select all":"Selecteer alles","ra_Select color":"Selecteer kleur","ra_Select predefined icon":"Selecteer voorgedefinieerd pictogram","ra_Select type of export":"Selecteer het type export",ra_Selected:p9e,"ra_Selected %s object(s)":"Geselecteerde %s object(en)","ra_Serial number (UUID)":"Serienummer (UUID)",'ra_Serial number (UUID) "%s" in license is for other device.':'Serienummer (UUID) "%s" in licentie is voor ander apparaat.',"ra_Show all folders":"Toon alle mappen","ra_Show lines between rows":"Toon lijnen tussen rijen","ra_Show/Hide object descriptions":"Toon/verberg objectbeschrijvingen","ra_Show/hide filter input":"Filterinvoer weergeven/verbergen","ra_Some data are not stored. Discard?":"Sommige gegevens worden niet opgeslagen. Weggooien?",ra_States:m9e,"ra_Suitable license not found in license manager":"Geschikte licentie niet gevonden in licentiebeheer",ra_Sunday:v9e,"ra_Suppress question for next %s minutes":"Vraag de volgende %s minuten onderdrukken","ra_System language":"Systeemtaal","ra_Take browser position":"Positie innemen vanuit de browser","ra_Take position from system settings":"Neem positie over van systeeminstellingen",'ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").':'De experts kunnen overal objecten maken, behalve vanaf het tweede niveau (bijv. "Vis.0" of "javascript.0").',"ra_The page you are looking for was not found":"De pagina die u zoekt is niet gevonden","ra_The schedule will be executed every minute. Are you sure?":"Het schema wordt elke minuut uitgevoerd. Weet u het zeker?","ra_The schedule will be executed every second. Are you sure?":"Het schema wordt elke seconde uitgevoerd. Weet je het zeker?",ra_Thursday:g9e,ra_Timestamp:_9e,"ra_Toggle expert mode":"Schakel tussen expertmodus","ra_Toggle the states view":"Schakel de statusweergave in of uit","ra_Toggle view mode":"Schakelen tussen weergavemodus","ra_Too big":"Te groot","ra_Too small":"Te klein","ra_Transparent dialog":"Transparant dialoogvenster",ra_Tuesday:y9e,"ra_Unknown error":"Onbekende fout","ra_Unknown error!":"Onbekende fout!",ra_Update:b9e,"ra_Upload file":"Upload bestand","ra_Use all available let's encrypt certificates":"Gebruik alle beschikbare Let's Encrypt-certificaten","ra_Use iobroker.acme adapter for letsencrypt certificates":"Gebruik de iobroker.acme-adapter voor letsencrypt-certificaten","ra_Use system settings for position":"Gebruik systeeminstellingen voor positie","ra_Used system settings":"Gebruikte systeeminstellingen","ra_User files":"Gebruikersbestanden",ra_ValidTill:w9e,ra_Value:S9e,ra_Version:x9e,"ra_View file":"Bestand bekijken","ra_View: %s":"Bekijk: %s",ra_Wednesday:C9e,ra_Width:T9e,ra_Yes:k9e,"ra_You can export all objects or just the selected branch.":"U kunt alle objecten of alleen de geselecteerde tak exporteren.","ra_You can filter entries by entering here some text":"U kunt items filteren door hier wat tekst in te voeren",ra___different__:E9e,ra_aclEveryone_read_object:D9e,ra_aclEveryone_read_state:M9e,ra_aclEveryone_write_object:O9e,ra_aclEveryone_write_state:$9e,ra_aclGroup_read_object:A9e,ra_aclGroup_read_state:P9e,ra_aclGroup_write_object:I9e,ra_aclGroup_write_state:R9e,ra_aclOwner_read_object:L9e,ra_aclOwner_read_state:N9e,ra_aclOwner_write_object:F9e,ra_aclOwner_write_state:z9e,ra_buttons:B9e,ra_changedFrom:j9e,ra_close:W9e,ra_create_boolean_state:H9e,ra_create_channel:U9e,ra_create_device:Y9e,ra_create_number_state:V9e,ra_create_state:G9e,ra_create_string_state:q9e,ra_daysShortText:X9e,ra_dow_Fr:J9e,ra_dow_Mo:Z9e,ra_dow_Sa:K9e,ra_dow_Su:Q9e,ra_dow_Th:e7e,ra_dow_Tu:t7e,ra_dow_We:r7e,ra_expertMode:n7e,ra_fileType_all:a7e,ra_fileType_audio:i7e,ra_fileType_code:o7e,ra_fileType_images:s7e,ra_fileType_txt:l7e,ra_fileType_video:c7e,"ra_fileType_video,":"Video",ra_filter_customs:u7e,ra_filter_customs_without:d7e,ra_filter_func:f7e,ra_filter_id:h7e,ra_filter_name:p7e,ra_filter_role:m7e,ra_filter_room:v7e,ra_filter_type:g7e,"ra_import data from %s file":"Importeer gegevens uit %s bestand",ra_invalidConfig:_7e,ra_lastChange:y7e,ra_locally:b7e,ra_month_Apr:w7e,ra_month_Aug:S7e,ra_month_Dec:x7e,ra_month_Feb:C7e,ra_month_Jan:T7e,ra_month_Jul:k7e,ra_month_Jun:E7e,ra_month_Mai:D7e,ra_month_Mar:M7e,ra_month_Nov:O7e,ra_month_Oct:$7e,ra_month_Sep:A7e,ra_months_Apr:P7e,ra_months_Aug:I7e,ra_months_Dec:R7e,ra_months_Feb:L7e,ra_months_Jan:N7e,ra_months_Jul:F7e,ra_months_Jun:z7e,ra_months_Mai:B7e,ra_months_Mar:j7e,ra_months_Nov:W7e,ra_months_Oct:H7e,ra_months_Sep:U7e,ra_none:Y7e,ra_object_changed_by:V7e,ra_object_changed_by_user:G7e,ra_otherConfig:q7e,ra_qualityCode:X7e,ra_repeat:J7e,ra_select_folder_hint:Z7e,ra_state_changed_by:K7e,ra_state_changed_from:Q7e,ra_timestamp:eWe,ra_tooltip_ack:tWe,ra_tooltip_comment:rWe,ra_tooltip_copyState:nWe,ra_tooltip_customConfig:aWe,ra_tooltip_deleteObject:iWe,ra_tooltip_editObject:oWe,ra_tooltip_editState:sWe,ra_tooltip_from:lWe,ra_tooltip_lc:cWe,ra_tooltip_quality:uWe,ra_tooltip_ts:dWe,ra_tooltip_user:fWe,ra_tooltip_value:hWe,"ra_use seconds":"gebruik seconden",ra_val:pWe,"ra_via internet":"via internet",ra_warning_every_minute:mWe,ra_warning_every_second:vWe,sc_cron:gWe,sc_date:_We,sc_dates:yWe,sc_dow:bWe,sc_dows:wWe,sc_every:SWe,sc_everyN_dates:xWe,sc_everyN_dow:CWe,sc_everyN_dows:TWe,sc_everyN_hours:kWe,sc_everyN_minutes:EWe,sc_everyN_months:DWe,sc_everyN_seconds:MWe,sc_every_dates:OWe,sc_every_dow:$We,sc_every_dows:AWe,sc_every_hours:PWe,sc_every_minutes:IWe,sc_every_months:RWe,sc_every_seconds:LWe,sc_from:NWe,sc_hours:FWe,sc_interval:zWe,sc_intervalBetween:BWe,sc_invalid_cron:jWe,sc_minutes:WWe,sc_months:HWe,sc_once:UWe,sc_period:YWe,sc_seconds:VWe,sc_simple:GWe,sc_specific:qWe,sc_specific_dates:XWe,sc_specific_dow:JWe,sc_specific_dows:ZWe,sc_specific_hours:KWe,sc_specific_minutes:QWe,sc_specific_months:eHe,sc_specific_seconds:tHe,sc_time:rHe,sc_to:nHe,sc_wizard:aHe,sch_all:iHe,sch_astroDay:oHe,sch_astroNight:sHe,sch_astro_dawn:lHe,sch_astro_dusk:cHe,sch_astro_goldenHour:uHe,sch_astro_goldenHourEnd:dHe,sch_astro_nadir:fHe,sch_astro_nauticalDawn:hHe,sch_astro_nauticalDusk:pHe,sch_astro_night:mHe,sch_astro_nightEnd:vHe,sch_astro_solarNoon:gHe,sch_astro_sunrise:_He,sch_astro_sunriseEnd:yHe,sch_astro_sunset:bHe,sch_astro_sunsetStart:wHe,sch_at:SHe,sch_desc_atTime:xHe,sch_desc_everyDay:CHe,sch_desc_everyHour:THe,sch_desc_everyMinute:kHe,sch_desc_everyMonth:EHe,sch_desc_everyNDay:DHe,sch_desc_everyNHours:MHe,sch_desc_everyNMinutes:OHe,sch_desc_everyNMonths:$He,sch_desc_everyNWeeks:AHe,sch_desc_everyNYears:PHe,sch_desc_everyWeek:IHe,sch_desc_everyYear:RHe,sch_desc_intervalFromTo:LHe,sch_desc_never:NHe,sch_desc_onDate:FHe,sch_desc_onDates:zHe,sch_desc_onEveryDate:BHe,sch_desc_onMonth:jHe,sch_desc_onMonths:WHe,sch_desc_onWeekday:HHe,sch_desc_onWeekdays:UHe,sch_desc_onWeekends:YHe,sch_desc_onWorkdays:VHe,sch_desc_onceInPast:GHe,sch_desc_once_on:qHe,sch_desc_validFrom:XHe,sch_desc_validFromTo:JHe,sch_desc_validTo:ZHe,sch_every:KHe,sch_exactTime:QHe,sch_from:eUe,sch_fromTo:tUe,sch_intervalTime:rUe,sch_invert:nUe,sch_no_one:aUe,sch_on:iUe,sch_period:oUe,sch_periodDaily:sUe,sch_periodDates:lUe,sch_periodDay:cUe,sch_periodEvery:uUe,sch_periodEveryDay:dUe,sch_periodEveryMonth:fUe,sch_periodEveryWeek:hUe,sch_periodEveryYear:pUe,sch_periodHours:mUe,sch_periodMinutes:vUe,sch_periodMonth:gUe,sch_periodMonthly:_Ue,sch_periodOnce:yUe,sch_periodSpecificMonths:bUe,sch_periodWeek:wUe,sch_periodWeekdays:SUe,sch_periodWeekend:xUe,sch_periodWeekly:CUe,sch_periodWorkdays:TUe,sch_periodYear:kUe,sch_periodYearly:EUe,sch_specificTime:DUe,sch_time:MUe,sch_to:OUe,sch_valid:$Ue,sch_validFrom:AUe,sch_validTo:PUe,sch_wholeDay:IUe,sch_yearEveryMonth:RUe},NUe="Ajouter",FUe="Annuler",zUe="Catégories",BUe="Vérifié",jUe="Effacer",WUe="Fermer",HUe="Commercial",UUe="Configurer",YUe="Lié",VUe="Copié",GUe="Créer",qUe="Recadrer",XUe="Delete",JUe="Supprimer",ZUe="Jeter",KUe="Débranché",QUe="Erreur",eYe="Filtre",tYe="Vendredi",rYe="Latitude",nYe="Longitude",aYe="Message",iYe="Lundi",oYe="Nom",sYe="Objets",lYe="D'accord",cYe="Produit",uYe="Répéter",dYe="Remplacer",fYe="Racine",hYe="Samedi",pYe="sauver",mYe="Choisi",vYe="États",gYe="Dimanche",_Ye="Jeudi",yYe="Horodatage",bYe="Mardi",wYe="Mise à jour",SYe="Valable jusqu'au",xYe="Valeur",CYe="Version",TYe="Mercredi",kYe="Largeur",EYe="Oui",DYe="différent",MYe="Tout le monde peut lire un objet",OYe="Tout le monde peut lire l'état",$Ye="Tout le monde peut écrire un objet",AYe="Tout le monde peut écrire l'état",PYe="Le groupe peut lire l'objet",IYe="Le groupe peut lire l'état",RYe="Le groupe peut écrire un objet",LYe="Le groupe peut écrire l'état",NYe="Le propriétaire peut lire l'objet",FYe="Le propriétaire peut lire l'état",zYe="Le propriétaire peut écrire un objet",BYe="Le propriétaire peut écrire l'état",jYe="Boutons",WYe="Changé de",HYe="Fermer",UYe="Créer un état booléen",YYe="Créer une chaîne",VYe="Créer un appareil",GYe="Créer un état de numéro",qYe="Créer un état",XYe="Créer un état de chaîne",JYe="j.",ZYe="Fr",KYe="Mo",QYe="Sa",eVe="Su",tVe="Th",rVe="Tu",nVe="Nous",aVe="Mode expert",iVe="Tous les fichiers",oVe="l'audio",sVe="Code/JSON",lVe="Images",cVe="Texte",uVe="Vidéo",dVe="Paramètres",fVe="sans",hVe="Une fonction",pVe="ID",mVe="Prénom",vVe="Rôle",gVe="Pièce",_Ve="Type",yVe="Paramètres invalides",bVe="Dernier changement",wVe="localement",SVe="Avr",xVe="Août",CVe="Déc",TVe="Fév",kVe="Jan",EVe="Juil",DVe="Juin",MVe="Mai",OVe="Mar",$Ve="Nov",AVe="Oct",PVe="Sep",IVe="Avr",RVe="Août",LVe="Déc",NVe="Fév",FVe="Jan",zVe="Juil",BVe="Juin",jVe="Mai",WVe="Mar",HVe="Nov",UVe="Oct",YVe="Sep",VVe="rien",GVe="Objet modifié par",qVe="Objet modifié pour la dernière fois à",XVe="Paramètres d'un autre adaptateur %s",JVe="Code de qualité",ZVe="répéter",KVe='Pour sélectionner un dossier, maintenez simplement la touche "shift" enfoncée en cliquant sur le dossier.',QVe="État modifié par",eGe="Objet changé de",tGe="Horodatage",rGe="Drapeau reconnu",nGe="Commentaire",aGe="Copiez la valeur d'état",iGe="Paramètres personnalisés",oGe="Supprimer un objet",sGe="Modifier l'objet",lGe="Modifier la valeur d'état",cGe="De",uGe="Dernière modification",dGe="Qualité",fGe="Horodatage",hGe="Utilisateur",pGe="Valeur",mGe="Valeur",vGe="Attention : la tâche CRON s’exécutera toutes les minutes pendant la période spécifiée !",gGe="Attention : la tâche CRON s’exécutera toutes les secondes pendant la période spécifiée !",_Ge="CRON",yGe="Date",bGe="Rendez-vous",wGe="Jour",SGe="Jour de la semaine",xGe="Chaque",CGe="tous les N jours",TGe="chaque Nième jour de la semaine",kGe="tous les N jours de la semaine",EGe="toutes les N heures",DGe="toutes les N minutes",MGe="tous les N mois",OGe="toutes les N secondes",$Ge="tous les jours",AGe="Chaque jour de la semaine",PGe="Chaque jour de la semaine",IGe="Toutes les heures",RGe="chaque minute",LGe="chaque mois",NGe="chaque seconde",FGe="De",zGe="Heures",BGe="Intervalle",jGe="Intervalle entre",WGe="CRON non valide",HGe="Minutes",UGe="mois",YGe="Une fois que",VGe="Période",GGe="Secondes",qGe="Facile",XGe="Temps spécifique",JGe="dates spécifiques",ZGe="jour(s) spécifique(s) de la semaine",KGe="jour spécifique de semaines",QGe="heures spécifiques",eqe="minutes spécifiques",tqe="mois spécifiques",rqe="secondes spécifiques",nqe="Temps",aqe="À",iqe="sorcier",oqe="tout",sqe="Journée astronomique",lqe="Nuit astronomique",cqe="Aube",uqe="Crépuscule",dqe="Heure d'or",fqe="Fin de l'heure d'or",hqe="Nadir",pqe="Aube nautique",mqe="Crépuscule nautique",vqe="Nuit",gqe="Fin de nuit",_qe="Midi solaire",yqe="lever du soleil",bqe="Fin du lever du soleil",wqe="Le coucher du soleil",Sqe="Coucher du soleil",xqe="à",Cqe="à %s",Tqe="tous les jours",kqe="Toutes les heures",Eqe="chaque minute",Dqe="chaque mois",Mqe="chaque %s jour",Oqe="chaque %s heures",$qe="toutes les %s minutes",Aqe="tous les %s mois",Pqe="chaque %s semaines",Iqe="tous les %s ans",Rqe="toutes les semaines",Lqe="chaque année",Nqe="de %s à %s",Fqe="jamais",zqe="sur %s de %s",Bqe="sur %s et %s de",jqe="à chaque date de",Wqe="%s",Hqe="%s et %s",Uqe="sur %s",Yqe="sur %s et %s",Vqe="les weekends",Gqe="les jours ouvrables",qqe="ne sera plus exécuté, car start est dans le passé",Xqe="sur %s",Jqe="de %s",Zqe="Exécuter de à",Kqe="à %s",Qqe="chaque",eXe="Temps spécifique",tXe="de",rXe="De à",nXe="Temps d'interval",aXe="inverser",iXe="aucun",oXe="sur",sXe="Période",lXe="du quotidien",cXe="Rendez-vous",uXe="journée",dXe="Chaque",fXe="Tous les jours",hXe="Chaque mois",pXe="Toutes les semaines",mXe="Chaque année",vXe="Heures",gXe="Minutes",_Xe="mois",yXe="Mensuel",bXe="Une fois que",wXe="Mois spécifiques",SXe="La semaine",xXe="Jours de la semaine",CXe="Weekend",TXe="Hebdomadaire",kXe="Jours ouvrables",EXe="Année",DXe="Annuel",MXe="Temps spécifique",OXe="Temps",$Xe="à",AXe="Valide",PXe="de",IXe="à",RXe="Toute la journée",LXe="chaque mois",NXe={"ra_%s links from aliases":"%s liens provenant d'alias","ra_%s object(s) processed":"%s objet(s) traité(s)","ra_%s was imported":"%s a été importé","ra_Accept license":"Accepter la licence","ra_Add new child object to selected parent":"Ajouter un nouvel objet enfant au parent sélectionné","ra_Add objects tree from JSON file":"Ajouter une arborescence d'objets à partir d'un fichier JSON","ra_Add row":"Ajouter une rangée","ra_Advanced options":"Options avancées","ra_All items are filtered out":"Tous les éléments sont filtrés","ra_All objects":"Tous les objets",ra_Append:NUe,"ra_Append %s entries or replace existing?":"Ajouter %s entrées ou remplacer l'existant ?","ra_Append or replace?":"Ajouter ou remplacer ?","ra_Are you sure?":"Êtes-vous sûr?","ra_Auto (no custom columns)":"Auto (pas de colonnes personnalisées)","ra_Back to %s":"Retour à %s","ra_Background image":"Image de fond",ra_Cancel:FUe,"ra_Cannot add items with set filter":"Impossible d'ajouter des éléments avec le filtre défini","ra_Cannot decode license":"Impossible de décoder la licence","ra_Cannot determine position: System settings are empty and GPS detection is disabled in browser":"Impossible de déterminer la position : les paramètres système sont vides et la détection GPS est désactivée dans le navigateur",'ra_Cannot find "%s"':'Impossible de trouver "%s"','ra_Cannot read "%s"':'Impossible de lire "%s"',"ra_Cannot read licenses: %s":"Impossible de lire les licences : %s","ra_Cannot retrieve options, as instance is offline":"Impossible de récupérer les options, car l'instance est hors ligne","ra_Cannot update attribute, because not found in the object":"Impossible de mettre à jour l'attribut, car il est introuvable dans l'objet","ra_Cannot upload":"Impossible de télécharger",ra_Categories:zUe,"ra_Chained certificate":"Certificat chaîné","ra_Change color theme":"Changer le thème de couleur","ra_Changed from":"Changé de","ra_Channel → State":"Canal → État","ra_Check license":"Vérifier la licence",ra_Checked:BUe,ra_Clear:jUe,"ra_Clear filter":"Effacer le filtre","ra_Clear icon":"Effacer l'icône","ra_Clone current row":"Cloner la ligne actuelle",ra_Close:WUe,"ra_Collapse all nodes":"Réduire tous les nœuds","ra_Collapse one step node":"Réduire d'un niveau",ra_Commercial:HUe,ra_Configure:UUe,"ra_Configure visible columns":"Configurer les colonnes visibles","ra_Confirm deletion of %s":"Confirmer la suppression de %s",ra_Connected:YUe,ra_Copied:VUe,"ra_Copied %s":'"%s" copié',"ra_Copy content":"Copier le contenu",ra_Create:GUe,"ra_Create alias":"Créer un alias","ra_Create folder":"Créer le dossier","ra_Create new folder in %s":"Créer un nouveau dossier dans %s",ra_Crop:qUe,"ra_Define CRON...":"Définir CRON...","ra_Define functions":"Définir des fonctions","ra_Define rooms":"Définir des pièces","ra_Define schedule":"Définir le calendrier","ra_Define schedule...":"Définir le calendrier ...",ra_Del:XUe,ra_Delete:JUe,"ra_Delete (no confirm for 5 mins)":"Supprimer (pas de confirmation pendant 5 minutes)","ra_Delete current row":"Supprimer la ligne actuelle","ra_Deselect all":"Tout déselectionner","ra_Device → Channel → State":"Appareil → Canal → État",ra_Discard:ZUe,ra_Disconnected:KUe,"ra_Do not export values of states":"Ne pas exporter les valeurs des états","ra_Do not use let's encrypt":"Ne pas utiliser let's encrypt","ra_Double click to reset table layout":"Double-cliquez pour réinitialiser la disposition du tableau","ra_Drag 'n' drop some files here, or click to select files":"Glissez-déposez des fichiers ici, ou cliquez pour sélectionner des fichiers","ra_Drop file here":"Déposer le fichier ici","ra_Drop the files here...":"Déposez le fichier ici...","ra_Duplicate name":"Nom en double","ra_Edit ACL":"Modifier la LCA","ra_Edit alias":"Modifier l'alias","ra_Edit custom config":"Modifier la configuration personnalisée","ra_Edit function":"Fonction d'édition","ra_Edit object field":"Modifier le champ d'objet","ra_Edit role":"Modifier le rôle","ra_Edit room":"Modifier la salle","ra_Edit value":"Modifier la valeur",ra_Error:QUe,"ra_Expand all nodes":"Développer tous les nœuds","ra_Expand one step node":"Développer un niveau","ra_Export data to %s file":"Exporter les données vers le fichier %s","ra_Failed to open JSON File":"Échec de l'ouverture du fichier JSON","ra_Fallback custom certificates":"Certificats personnalisés de secours","ra_File is too big. Max %sk allowed. Try use SVG.":"Le fichier est trop volumineux. Max %sk autorisé. Essayez d'utiliser SVG.",ra_Filter:eYe,"ra_Filter files":"Filtrer les fichiers","ra_Folder name":"Nom de dossier","ra_Folder → Channel → State":"Dossier → Chaîne → État","ra_Folder → Device → Channel → State":"Dossier → Appareil → Canal → État","ra_Folder → State":"Dossier → État","ra_Folders always first":"Les dossiers toujours en premier",ra_Friday:tYe,"ra_Good luck":"Bonne chance","ra_Hide empty folders":"Masquer les dossiers vides","ra_If no file will be created in the folder, it will disappear after the browser closed":"Si aucun fichier ne sera créé dans le dossier, il disparaîtra après la fermeture du navigateur","ra_Import data from %s file":"Importer des données à partir du fichier %s","ra_Import from %s":"Importer depuis %s","ra_Instance %s is alive":"L'instance %s est active","ra_Instance %s is not alive":"L'instance %s n'est pas active","ra_Instance is not alive":"L'instance n'est pas active","ra_Invalid CRON":"CRON invalide","ra_Invalid JSON":"JSON invalide","ra_Invalid answer from server":"Réponse invalide du serveur","ra_Invalid parent folder!":"Dossier parent non valide!","ra_Invalid structure":"Structure invalide","ra_JSON editor":"Éditeur JSON","ra_Last change":"Dernier changement",ra_Latitude:rYe,"ra_License %s":"Licence %s","ra_License agreement":"Accord de licence","ra_License does not exist":"La licence n'existe pas","ra_License expired on %s":"Licence expirée le %s",'ra_License for other product "%s"':'Licence pour un autre produit "%s"',"ra_License is for version %s, but required version is %s.":"La licence est pour la version %s, mais la version requise est %s.","ra_License must be converted":"La licence doit être convertie en une version plus récente. Vous pouvez le faire dans votre profil iobroker.net.","ra_License not found in license manager. Do you want to read licenses from iobroker.net?":"Licence introuvable dans le gestionnaire de licences. Voulez-vous mettre à jour les licences depuis iobroker.net ?","ra_Listen on all IPs":"Écoutez sur toutes les adresses IP","ra_Load configuration from file":"Charger la configuration à partir du fichier",ra_Longitude:nYe,'ra_May not trigger "updateLicenses"':'Peut ne pas déclencher "updateLicences"',ra_Message:aYe,ra_Monday:iYe,"ra_Move down":"Descendre","ra_Move up":"Déplacer vers le haut",ra_Name:oYe,"ra_No data found in file":"Aucune donnée trouvée dans le fichier","ra_No one license found in license manager":"Aucune licence trouvée dans le gestionnaire de licences","ra_No response from the backend":"Aucune réponse du backend",'ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".':'Les non-experts ne peuvent créer de nouveaux objets que dans "0_userdata.0" ou "alias.0".',"ra_Not a number":"Pas un numéro",ra_Objects:sYe,ra_Ok:lYe,"ra_On weekdays":"En semaine","ra_Only following structures of objects are available:":"Seules les structures d'objets suivantes sont disponibles:","ra_Only selected":"Uniquement sélectionné","ra_Owner group":"Groupe propriétaire","ra_Owner user":"Utilisateur propriétaire","ra_Passwords are not equal!":"Les mots de passe ne sont pas égaux !","ra_Place your files here or click here to open the browse dialog":"Placez vos fichiers ici ou cliquez ici pour ouvrir la boîte de dialogue de navigation","ra_Please confirm":"Veuillez confirmer","ra_Please create license":"Veuillez créer une licence","ra_Please enter the license":"Veuillez entrer la licence","ra_Please select file...":"Veuillez sélectionner le fichier...","ra_Please select object ID...":"Veuillez sélectionner l'ID d'objet ...","ra_Port could be used by %s":"Le port pourrait être utilisé par %s","ra_Port is already used by %s":"Le port est déjà utilisé par %s","ra_Private certificate":"Certificat privé",ra_Product:cYe,"ra_Public certificate":"Certificat public","ra_Quality code":"Qualité","ra_Refresh tree":"Rafraîchir l'arborescence","ra_Reload files":"Recharger les fichiers",ra_Repeat:uYe,ra_Replace:dYe,"ra_Request timed out":"La demande a expiré","ra_Restrict to folder":"Restreindre au dossier",ra_Root:fYe,ra_Saturday:hYe,ra_Save:pYe,"ra_Save and close":"Sauver et fermer","ra_Save configuration to file":"Enregistrer la configuration dans un fichier","ra_Save objects tree as JSON file":"Enregistrer l'arborescence des objets en tant que fichier JSON","ra_Select all":"Tout sélectionner","ra_Select color":"Choisissez la couleur","ra_Select predefined icon":"Sélectionnez l'icône prédéfinie","ra_Select type of export":"Sélectionnez le type d'exportation",ra_Selected:mYe,"ra_Selected %s object(s)":"Objet(s) %s sélectionné(s)","ra_Serial number (UUID)":"Numéro de série (UUID)",'ra_Serial number (UUID) "%s" in license is for other device.':'Le numéro de série (UUID) "%s" dans la licence est pour un autre appareil.',"ra_Show all folders":"Afficher tous les dossiers","ra_Show lines between rows":"Afficher les lignes entre les lignes","ra_Show/Hide object descriptions":"Afficher/Masquer les descriptions d'objets","ra_Show/hide filter input":"Afficher/masquer l'entrée de filtre","ra_Some data are not stored. Discard?":"Certaines données ne sont pas stockées. Jeter?",ra_States:vYe,"ra_Suitable license not found in license manager":"Licence appropriée introuvable dans le gestionnaire de licences",ra_Sunday:gYe,"ra_Suppress question for next %s minutes":"Supprimer la question pour les %s prochaines minutes","ra_System language":"Langue du système","ra_Take browser position":"Prendre position depuis le navigateur","ra_Take position from system settings":"Prendre position à partir des paramètres système",'ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").':'Les experts peuvent créer des objets partout mais à partir du deuxième niveau (par exemple "vis.0" ou "javascript.0").',"ra_The page you are looking for was not found":"La page que vous recherchez n'a pas été trouvée","ra_The schedule will be executed every minute. Are you sure?":"Le planning sera exécuté toutes les minutes. Êtes-vous sûr ?","ra_The schedule will be executed every second. Are you sure?":"Le planning sera exécuté toutes les secondes. Êtes-vous sûr ?",ra_Thursday:_Ye,ra_Timestamp:yYe,"ra_Toggle expert mode":"Basculer en mode expert","ra_Toggle the states view":"Basculer la vue des états","ra_Toggle view mode":"Basculer le mode d'affichage","ra_Too big":"Trop grand","ra_Too small":"Trop petit","ra_Transparent dialog":"Dialogue transparent",ra_Tuesday:bYe,"ra_Unknown error":"Erreur inconnue","ra_Unknown error!":"Erreur inconnue!",ra_Update:wYe,"ra_Upload file":"Téléverser un fichier","ra_Use all available let's encrypt certificates":"Utilisez tous les certificats let's encrypt disponibles","ra_Use iobroker.acme adapter for letsencrypt certificates":"Utiliser l'adaptateur iobroker.acme pour les certificats Letsencrypt","ra_Use system settings for position":"Utiliser les paramètres système pour la position","ra_Used system settings":"Paramètres système utilisés","ra_User files":"Fichiers utilisateurs",ra_ValidTill:SYe,ra_Value:xYe,ra_Version:CYe,"ra_View file":"Voir la fiche","ra_View: %s":"Affichage : %s",ra_Wednesday:TYe,ra_Width:kYe,ra_Yes:EYe,"ra_You can export all objects or just the selected branch.":"Vous pouvez exporter tous les objets ou uniquement la branche sélectionnée.","ra_You can filter entries by entering here some text":"Vous pouvez filtrer les entrées en saisissant ici du texte",ra___different__:DYe,ra_aclEveryone_read_object:MYe,ra_aclEveryone_read_state:OYe,ra_aclEveryone_write_object:$Ye,ra_aclEveryone_write_state:AYe,ra_aclGroup_read_object:PYe,ra_aclGroup_read_state:IYe,ra_aclGroup_write_object:RYe,ra_aclGroup_write_state:LYe,ra_aclOwner_read_object:NYe,ra_aclOwner_read_state:FYe,ra_aclOwner_write_object:zYe,ra_aclOwner_write_state:BYe,ra_buttons:jYe,ra_changedFrom:WYe,ra_close:HYe,ra_create_boolean_state:UYe,ra_create_channel:YYe,ra_create_device:VYe,ra_create_number_state:GYe,ra_create_state:qYe,ra_create_string_state:XYe,ra_daysShortText:JYe,ra_dow_Fr:ZYe,ra_dow_Mo:KYe,ra_dow_Sa:QYe,ra_dow_Su:eVe,ra_dow_Th:tVe,ra_dow_Tu:rVe,ra_dow_We:nVe,ra_expertMode:aVe,ra_fileType_all:iVe,ra_fileType_audio:oVe,ra_fileType_code:sVe,ra_fileType_images:lVe,ra_fileType_txt:cVe,ra_fileType_video:uVe,"ra_fileType_video,":"Vidéo",ra_filter_customs:dVe,ra_filter_customs_without:fVe,ra_filter_func:hVe,ra_filter_id:pVe,ra_filter_name:mVe,ra_filter_role:vVe,ra_filter_room:gVe,ra_filter_type:_Ve,"ra_import data from %s file":"Importer des données à partir du fichier %s",ra_invalidConfig:yVe,ra_lastChange:bVe,ra_locally:wVe,ra_month_Apr:SVe,ra_month_Aug:xVe,ra_month_Dec:CVe,ra_month_Feb:TVe,ra_month_Jan:kVe,ra_month_Jul:EVe,ra_month_Jun:DVe,ra_month_Mai:MVe,ra_month_Mar:OVe,ra_month_Nov:$Ve,ra_month_Oct:AVe,ra_month_Sep:PVe,ra_months_Apr:IVe,ra_months_Aug:RVe,ra_months_Dec:LVe,ra_months_Feb:NVe,ra_months_Jan:FVe,ra_months_Jul:zVe,ra_months_Jun:BVe,ra_months_Mai:jVe,ra_months_Mar:WVe,ra_months_Nov:HVe,ra_months_Oct:UVe,ra_months_Sep:YVe,ra_none:VVe,ra_object_changed_by:GVe,ra_object_changed_by_user:qVe,ra_otherConfig:XVe,ra_qualityCode:JVe,ra_repeat:ZVe,ra_select_folder_hint:KVe,ra_state_changed_by:QVe,ra_state_changed_from:eGe,ra_timestamp:tGe,ra_tooltip_ack:rGe,ra_tooltip_comment:nGe,ra_tooltip_copyState:aGe,ra_tooltip_customConfig:iGe,ra_tooltip_deleteObject:oGe,ra_tooltip_editObject:sGe,ra_tooltip_editState:lGe,ra_tooltip_from:cGe,ra_tooltip_lc:uGe,ra_tooltip_quality:dGe,ra_tooltip_ts:fGe,ra_tooltip_user:hGe,ra_tooltip_value:pGe,"ra_use seconds":"utiliser les secondes",ra_val:mGe,"ra_via internet":"par Internet",ra_warning_every_minute:vGe,ra_warning_every_second:gGe,sc_cron:_Ge,sc_date:yGe,sc_dates:bGe,sc_dow:wGe,sc_dows:SGe,sc_every:xGe,sc_everyN_dates:CGe,sc_everyN_dow:TGe,sc_everyN_dows:kGe,sc_everyN_hours:EGe,sc_everyN_minutes:DGe,sc_everyN_months:MGe,sc_everyN_seconds:OGe,sc_every_dates:$Ge,sc_every_dow:AGe,sc_every_dows:PGe,sc_every_hours:IGe,sc_every_minutes:RGe,sc_every_months:LGe,sc_every_seconds:NGe,sc_from:FGe,sc_hours:zGe,sc_interval:BGe,sc_intervalBetween:jGe,sc_invalid_cron:WGe,sc_minutes:HGe,sc_months:UGe,sc_once:YGe,sc_period:VGe,sc_seconds:GGe,sc_simple:qGe,sc_specific:XGe,sc_specific_dates:JGe,sc_specific_dow:ZGe,sc_specific_dows:KGe,sc_specific_hours:QGe,sc_specific_minutes:eqe,sc_specific_months:tqe,sc_specific_seconds:rqe,sc_time:nqe,sc_to:aqe,sc_wizard:iqe,sch_all:oqe,sch_astroDay:sqe,sch_astroNight:lqe,sch_astro_dawn:cqe,sch_astro_dusk:uqe,sch_astro_goldenHour:dqe,sch_astro_goldenHourEnd:fqe,sch_astro_nadir:hqe,sch_astro_nauticalDawn:pqe,sch_astro_nauticalDusk:mqe,sch_astro_night:vqe,sch_astro_nightEnd:gqe,sch_astro_solarNoon:_qe,sch_astro_sunrise:yqe,sch_astro_sunriseEnd:bqe,sch_astro_sunset:wqe,sch_astro_sunsetStart:Sqe,sch_at:xqe,sch_desc_atTime:Cqe,sch_desc_everyDay:Tqe,sch_desc_everyHour:kqe,sch_desc_everyMinute:Eqe,sch_desc_everyMonth:Dqe,sch_desc_everyNDay:Mqe,sch_desc_everyNHours:Oqe,sch_desc_everyNMinutes:$qe,sch_desc_everyNMonths:Aqe,sch_desc_everyNWeeks:Pqe,sch_desc_everyNYears:Iqe,sch_desc_everyWeek:Rqe,sch_desc_everyYear:Lqe,sch_desc_intervalFromTo:Nqe,sch_desc_never:Fqe,sch_desc_onDate:zqe,sch_desc_onDates:Bqe,sch_desc_onEveryDate:jqe,sch_desc_onMonth:Wqe,sch_desc_onMonths:Hqe,sch_desc_onWeekday:Uqe,sch_desc_onWeekdays:Yqe,sch_desc_onWeekends:Vqe,sch_desc_onWorkdays:Gqe,sch_desc_onceInPast:qqe,sch_desc_once_on:Xqe,sch_desc_validFrom:Jqe,sch_desc_validFromTo:Zqe,sch_desc_validTo:Kqe,sch_every:Qqe,sch_exactTime:eXe,sch_from:tXe,sch_fromTo:rXe,sch_intervalTime:nXe,sch_invert:aXe,sch_no_one:iXe,sch_on:oXe,sch_period:sXe,sch_periodDaily:lXe,sch_periodDates:cXe,sch_periodDay:uXe,sch_periodEvery:dXe,sch_periodEveryDay:fXe,sch_periodEveryMonth:hXe,sch_periodEveryWeek:pXe,sch_periodEveryYear:mXe,sch_periodHours:vXe,sch_periodMinutes:gXe,sch_periodMonth:_Xe,sch_periodMonthly:yXe,sch_periodOnce:bXe,sch_periodSpecificMonths:wXe,sch_periodWeek:SXe,sch_periodWeekdays:xXe,sch_periodWeekend:CXe,sch_periodWeekly:TXe,sch_periodWorkdays:kXe,sch_periodYear:EXe,sch_periodYearly:DXe,sch_specificTime:MXe,sch_time:OXe,sch_to:$Xe,sch_valid:AXe,sch_validFrom:PXe,sch_validTo:IXe,sch_wholeDay:RXe,sch_yearEveryMonth:LXe},FXe="Aggiungere",zXe="Annulla",BXe="Categorie",jXe="Controllato",WXe="Elimina",HXe="Vicino",UXe="Commerciale",YXe="Configura",VXe="Collegato",GXe="Copiato",qXe="Creare",XXe="Raccolto",JXe="Delete",ZXe="Elimina",KXe="Scartare",QXe="Disconnesso",eJe="Errore",tJe="Filtro",rJe="Venerdì",nJe="Latitudine",aJe="Longitudine",iJe="Messaggio",oJe="Lunedi",sJe="Nome",lJe="Oggetti",cJe="Ok",uJe="Prodotto",dJe="Ripetere",fJe="Sostituire",hJe="Radice",pJe="Sabato",mJe="Salva",vJe="Selezionato",gJe="stati",_Je="Domenica",yJe="Giovedì",bJe="Timestamp",wJe="Martedì",SJe="Aggiornare",xJe="Valido fino a",CJe="Valore",TJe="Versione",kJe="Mercoledì",EJe="Larghezza",DJe="SÌ",MJe="diverso",OJe="Tutti possono leggere gli oggetti",$Je="Tutti possono leggere lo stato",AJe="Tutti possono scrivere oggetti",PJe="Tutti possono scrivere stato",IJe="Il gruppo può leggere l'oggetto",RJe="Il gruppo può leggere lo stato",LJe="Il gruppo può scrivere l'oggetto",NJe="Il gruppo può scrivere lo stato",FJe="Il proprietario può leggere l'oggetto",zJe="Il proprietario può leggere lo stato",BJe="Il proprietario può scrivere l'oggetto",jJe="Il proprietario può scrivere lo stato",WJe="Bottoni",HJe="Cambiato da",UJe="vicino",YJe="Crea uno stato booleano",VJe="Crea canale",GJe="Crea dispositivo",qJe="Crea lo stato del numero",XJe="Crea stato",JJe="Crea lo stato della stringa",ZJe="g.",KJe="fr",QJe="momento",eZe="Sa",tZe="su",rZe="th",nZe="Tu",aZe="Noi",iZe="Modalità esperto",oZe="Tutti i files",sZe="Audio",lZe="Codice/JSON",cZe="immagini",uZe="Testo",dZe="video",fZe="impostazioni",hZe="senza",pZe="Funzione",mZe="ID",vZe="Nome",gZe="Ruolo",_Ze="Camera",yZe="genere",bZe="Impostazioni non valide",wZe="Ultima modifica",SZe="localmente",xZe="apr",CZe="agosto",TZe="Dic",kZe="febbraio",EZe="gen",DZe="lug",MZe="giu",OZe="Mai",$Ze="marzo",AZe="nov",PZe="ottobre",IZe="Sett",RZe="apr",LZe="agosto",NZe="Dic",FZe="febbraio",zZe="gen",BZe="lug",jZe="giu",WZe="Mai",HZe="marzo",UZe="nov",YZe="ottobre",VZe="Sett",GZe="nessuna",qZe="Oggetto modificato da",XZe="L'oggetto è stato modificato l'ultima volta alle",JZe="Impostazioni dall'altro adattatore %s",ZZe="Codice di qualità",KZe="ripetere",QZe='Per selezionare la cartella, basta tenere premuto il tasto "shift" facendo clic sulla cartella.',eKe="Stato cambiato da",tKe="Oggetto cambiato da",rKe="Timestamp",nKe="Bandiera riconosciuta",aKe="Commento",iKe="Copia il valore dello stato",oKe="Impostazioni personalizzate",sKe="Elimina oggetto",lKe="Modifica oggetto",cKe="Modifica il valore dello stato",uKe="A partire dal",dKe="Ultima modifica",fKe="Qualità",hKe="Data e ora",pKe="Utente",mKe="Valore",vKe="Valore",gKe="Attenzione: il processo CRON verrà eseguito ogni minuto durante il periodo specificato!",_Ke="Attenzione: il processo CRON verrà eseguito ogni secondo durante il periodo specificato!",yKe="CRON",bKe="Data",wKe="Date",SKe="Giorno",xKe="Giorno della settimana",CKe="Ogni",TKe="ogni N giorni",kKe="ogni Nesimo giorno della settimana",EKe="ogni N giorno della settimana",DKe="ogni N ore",MKe="ogni N minuti",OKe="ogni N mesi",$Ke="ogni N secondi",AKe="ogni giorno",PKe="Tutti i giorni della settimana",IKe="Tutti i giorni della settimana",RKe="ogni ora",LKe="ogni minuto",NKe="ogni mese",FKe="ogni secondo",zKe="A partire dal",BKe="Ore",jKe="Intervallo",WKe="Intervallo tra",HKe="CRON non valido",UKe="Minuti",YKe="mesi",VKe="Una volta",GKe="Periodo",qKe="secondi",XKe="Semplice",JKe="Orario preciso",ZKe="date specifiche",KKe="giorno/i specifico/i della settimana",QKe="giorno specifico delle settimane",eQe="orari specifici",tQe="minuti specifici",rQe="mesi specifici",nQe="secondi specifici",aQe="Tempo",iQe="Per",oQe="procedura guidata",sQe="tutti",lQe="Astro day",cQe="Astro night",uQe="Alba",dQe="Crepuscolo",fQe="Ora d'oro",hQe="Fine dell'ora d'oro",pQe="Nadir",mQe="Alba nautica",vQe="Crepuscolo nautico",gQe="Notte",_Qe="Fine della notte",yQe="Mezzogiorno solare",bQe="Alba",wQe="Fine dell'alba",SQe="Tramonto",xQe="Inizio del tramonto",CQe="a",TQe="a %s",kQe="ogni giorno",EQe="ogni ora",DQe="ogni minuto",MQe="ogni mese",OQe="ogni %s giorno",$Qe="ogni %s ore",AQe="ogni %s minuti",PQe="ogni %s mesi",IQe="ogni %s settimane",RQe="ogni %s anni",LQe="ogni settimana",NQe="ogni anno",FQe="da %s a %s",zQe="mai",BQe="su %s di %s",jQe="su %s e %s di",WQe="in ogni data di",HQe="%s",UQe="%s e %s",YQe="su %s",VQe="su %s e %s",GQe="nei finesettimana",qQe="nei giorni lavorativi",XQe="non verrà più eseguito, perché start è nel passato",JQe="su %s",ZQe="da %s",KQe="Eseguire da a",QQe="a %s",eet="ogni",tet="Orario preciso",ret="a partire dal",net="Da A",aet="Intervallo di tempo",iet="invertire",oet="nessuna",set="sopra",cet="Periodo",uet="Quotidiano",det="Date",fet="Giorno",het="Ogni",pet="Ogni giorno",met="Ogni mese",vet="Ogni settimana",get="Ogni anno",_et="Ore",yet="Minuti",bet="mese",wet="Mensile",xet="Una volta",Cet="Mesi specifici",Tet="Settimana",ket="Giorni della settimana",Eet="Fine settimana",Det="settimanalmente",Met="giorni feriali",Oet="Anno",$et="Annuale",Aet="Orario preciso",Pet="Tempo",Iet="per",Ret="Valido",Let="a partire dal",Net="per",Fet="Giorno intero",zet="ogni mese",Bet={"ra_%s links from aliases":"%s link da alias","ra_%s object(s) processed":"%s oggetti elaborati","ra_%s was imported":"%s è stato importato","ra_Accept license":"Accetta licenza","ra_Add new child object to selected parent":"Aggiungi un nuovo oggetto figlio al genitore selezionato","ra_Add objects tree from JSON file":"Aggiungi l'albero degli oggetti dal file JSON","ra_Add row":"Aggiungi riga","ra_Advanced options":"Opzioni avanzate","ra_All items are filtered out":"Tutti gli elementi vengono filtrati","ra_All objects":"Tutti gli oggetti",ra_Append:FXe,"ra_Append %s entries or replace existing?":"Aggiungi %s voci o sostituisci quelle esistenti?","ra_Append or replace?":"Aggiungere o sostituire?","ra_Are you sure?":"Sei sicuro?","ra_Auto (no custom columns)":"Auto (nessuna colonna personalizzata)","ra_Back to %s":"Torna a %s","ra_Background image":"Immagine di sfondo",ra_Cancel:zXe,"ra_Cannot add items with set filter":"Impossibile aggiungere elementi con il filtro impostato","ra_Cannot decode license":"Impossibile decodificare la licenza","ra_Cannot determine position: System settings are empty and GPS detection is disabled in browser":"Impossibile determinare la posizione: le impostazioni di sistema sono vuote e il rilevamento GPS è disabilitato nel browser",'ra_Cannot find "%s"':'Impossibile trovare "%s"','ra_Cannot read "%s"':'Impossibile leggere "%s"',"ra_Cannot read licenses: %s":"Impossibile leggere le licenze: %s","ra_Cannot retrieve options, as instance is offline":"Impossibile recuperare le opzioni, poiché l'istanza è offline","ra_Cannot update attribute, because not found in the object":"Impossibile aggiornare l'attributo, perché non trovato nell'oggetto","ra_Cannot upload":"Impossibile caricare",ra_Categories:BXe,"ra_Chained certificate":"Certificato incatenato","ra_Change color theme":"Cambia tema colore","ra_Changed from":"Cambiato da","ra_Channel → State":"Canale → Stato","ra_Check license":"Controlla la licenza",ra_Checked:jXe,ra_Clear:WXe,"ra_Clear filter":"Filtro pulito","ra_Clear icon":"Cancella icona","ra_Clone current row":"Clona riga corrente",ra_Close:HXe,"ra_Collapse all nodes":"Comprimi tutti i nodi","ra_Collapse one step node":"Comprimi un livello",ra_Commercial:UXe,ra_Configure:YXe,"ra_Configure visible columns":"Configura colonne visibili","ra_Confirm deletion of %s":"Conferma l'eliminazione di %s",ra_Connected:VXe,ra_Copied:GXe,"ra_Copied %s":'"%s" copiato',"ra_Copy content":"Copia contenuto",ra_Create:qXe,"ra_Create alias":"Crea alias","ra_Create folder":"Creare una cartella","ra_Create new folder in %s":"Crea nuova cartella in %s",ra_Crop:XXe,"ra_Define CRON...":"Definisci CRON...","ra_Define functions":"Definire le funzioni","ra_Define rooms":"Definisci le stanze","ra_Define schedule":"Definisci programma","ra_Define schedule...":"Definisci pianificazione ...",ra_Del:JXe,ra_Delete:ZXe,"ra_Delete (no confirm for 5 mins)":"Elimina (nessuna conferma per 5 minuti)","ra_Delete current row":"Elimina la riga corrente","ra_Deselect all":"Deseleziona tutto","ra_Device → Channel → State":"Dispositivo → Canale → Stato",ra_Discard:KXe,ra_Disconnected:QXe,"ra_Do not export values of states":"Non esportare i valori degli stati","ra_Do not use let's encrypt":"Non utilizzare crittografiamo","ra_Double click to reset table layout":"Fare doppio clic per ripristinare il layout della tabella","ra_Drag 'n' drop some files here, or click to select files":"Trascina e rilascia alcuni file qui o fai clic per selezionare i file","ra_Drop file here":"Trascina il file qui","ra_Drop the files here...":"Trascina qui il file...","ra_Duplicate name":"Nome duplicato","ra_Edit ACL":"Modifica ACL","ra_Edit alias":"Modifica alias","ra_Edit custom config":"Modifica configurazione personalizzata","ra_Edit function":"Funzione di modifica","ra_Edit object field":"Modifica campo oggetto","ra_Edit role":"Modifica ruolo","ra_Edit room":"Modifica stanza","ra_Edit value":"Modifica valore",ra_Error:eJe,"ra_Expand all nodes":"Espandi tutti i nodi","ra_Expand one step node":"Espandi un livello","ra_Export data to %s file":"Esporta i dati nel file %s","ra_Failed to open JSON File":"Impossibile aprire il file JSON","ra_Fallback custom certificates":"Certificati personalizzati di fallback","ra_File is too big. Max %sk allowed. Try use SVG.":"Il file è troppo grande. Max %sk consentito. Prova a usare SVG.",ra_Filter:tJe,"ra_Filter files":"Filtra i file","ra_Folder name":"Nome della cartella","ra_Folder → Channel → State":"Cartella → Canale → Stato","ra_Folder → Device → Channel → State":"Cartella → Dispositivo → Canale → Stato","ra_Folder → State":"Cartella → Stato","ra_Folders always first":"Le cartelle sono sempre al primo posto",ra_Friday:rJe,"ra_Good luck":"Buona fortuna","ra_Hide empty folders":"Nascondi cartelle vuote","ra_If no file will be created in the folder, it will disappear after the browser closed":"Se nessun file verrà creato nella cartella, scomparirà dopo la chiusura del browser","ra_Import data from %s file":"Importa i dati dal file %s","ra_Import from %s":"Importa da %s","ra_Instance %s is alive":"Il %s dell'istanza è vivo","ra_Instance %s is not alive":"Il TESTO dell'istanza non è vivo","ra_Instance is not alive":"L'istanza non è viva","ra_Invalid CRON":"CRON non valido","ra_Invalid JSON":"JSON non valido","ra_Invalid answer from server":"Risposta non valida dal server","ra_Invalid parent folder!":"Cartella principale non valida!","ra_Invalid structure":"Struttura non valida","ra_JSON editor":"Editor JSON","ra_Last change":"Ultima modifica",ra_Latitude:nJe,"ra_License %s":"Licenza %s","ra_License agreement":"Contratto di licenza","ra_License does not exist":"La licenza non esiste","ra_License expired on %s":"Licenza scaduta il %s",'ra_License for other product "%s"':'Licenza per altro prodotto "%s"',"ra_License is for version %s, but required version is %s.":"La licenza è per la versione %s, ma la versione richiesta è %s.","ra_License must be converted":"La licenza deve essere convertita in una versione più recente. Puoi farlo nel tuo profilo iobroker.net.","ra_License not found in license manager. Do you want to read licenses from iobroker.net?":"Licenza non trovata nel gestore delle licenze. Vuoi aggiornare le licenze da iobroker.net?","ra_Listen on all IPs":"Ascolta su tutti gli IP","ra_Load configuration from file":"Carica la configurazione dal file",ra_Longitude:aJe,'ra_May not trigger "updateLicenses"':'Potrebbe non attivare "updateLicenses"',ra_Message:iJe,ra_Monday:oJe,"ra_Move down":"Abbassati","ra_Move up":"Andare avanti",ra_Name:sJe,"ra_No data found in file":"Nessun dato trovato nel file","ra_No one license found in license manager":"Nessuna licenza trovata nel gestore delle licenze","ra_No response from the backend":"Nessuna risposta dal backend",'ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".':'I non esperti possono creare nuovi oggetti solo in "0_userdata.0" o "alias.0".',"ra_Not a number":"Non un numero",ra_Objects:lJe,ra_Ok:cJe,"ra_On weekdays":"Nei giorni della settimana","ra_Only following structures of objects are available:":"Sono disponibili solo le seguenti strutture di oggetti:","ra_Only selected":"Solo selezionato","ra_Owner group":"Gruppo di proprietari","ra_Owner user":"Utente proprietario","ra_Passwords are not equal!":"Le password non sono uguali!","ra_Place your files here or click here to open the browse dialog":"Posiziona i file qui o fai clic qui per aprire la finestra di dialogo Sfoglia","ra_Please confirm":"Si prega di confermare","ra_Please create license":"Si prega di creare la licenza","ra_Please enter the license":"Inserisci la licenza","ra_Please select file...":"Si prega di selezionare il file...","ra_Please select object ID...":"Seleziona l'ID oggetto ...","ra_Port could be used by %s":"La porta potrebbe essere utilizzata da %s","ra_Port is already used by %s":"La porta è già utilizzata da %s","ra_Private certificate":"Certificato privato",ra_Product:uJe,"ra_Public certificate":"Certificato pubblico","ra_Quality code":"Qualità","ra_Refresh tree":"Aggiorna l'albero","ra_Reload files":"Ricarica i file",ra_Repeat:dJe,ra_Replace:fJe,"ra_Request timed out":"Tempo scaduto per la richiesta","ra_Restrict to folder":"Limita alla cartella",ra_Root:hJe,ra_Saturday:pJe,ra_Save:mJe,"ra_Save and close":"Salva e chiudi","ra_Save configuration to file":"Salva la configurazione su file","ra_Save objects tree as JSON file":"Salva l'albero degli oggetti come file JSON","ra_Select all":"Seleziona tutto","ra_Select color":"Seleziona il colore","ra_Select predefined icon":"Seleziona l'icona predefinita","ra_Select type of export":"Seleziona il tipo di esportazione",ra_Selected:vJe,"ra_Selected %s object(s)":"%s oggetto/i selezionato/i","ra_Serial number (UUID)":"Numero di serie (UUID)",'ra_Serial number (UUID) "%s" in license is for other device.':'Il numero di serie (UUID) "%s" nella licenza è per un altro dispositivo.',"ra_Show all folders":"Mostra tutte le cartelle","ra_Show lines between rows":"Mostra linee tra le righe","ra_Show/Hide object descriptions":"Mostra/Nascondi le descrizioni degli oggetti","ra_Show/hide filter input":"Mostra/nascondi input filtro","ra_Some data are not stored. Discard?":"Alcuni dati non vengono memorizzati. Scartare?",ra_States:gJe,"ra_Suitable license not found in license manager":"Licenza adatta non trovata nel gestore delle licenze",ra_Sunday:_Je,"ra_Suppress question for next %s minutes":"Sopprimi la domanda per i prossimi %s minuti","ra_System language":"Linguaggio di sistema","ra_Take browser position":"Prendi posizione dal browser","ra_Take position from system settings":"Prendi posizione dalle impostazioni di sistema",'ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").':'Gli esperti possono creare oggetti ovunque ma dal secondo livello (es. "Vis.0" o "javascript.0").',"ra_The page you are looking for was not found":"La pagina che stai cercando non è stata trovata","ra_The schedule will be executed every minute. Are you sure?":"La pianificazione verrà eseguita ogni minuto. Sei sicuro?","ra_The schedule will be executed every second. Are you sure?":"La pianificazione verrà eseguita ogni secondo. Sei sicuro?",ra_Thursday:yJe,ra_Timestamp:bJe,"ra_Toggle expert mode":"Attiva / disattiva la modalità esperto","ra_Toggle the states view":"Attiva o disattiva la visualizzazione degli stati","ra_Toggle view mode":"Attiva / disattiva la modalità di visualizzazione","ra_Too big":"Troppo grande","ra_Too small":"Troppo piccolo","ra_Transparent dialog":"Finestra di dialogo trasparente",ra_Tuesday:wJe,"ra_Unknown error":"Errore sconosciuto","ra_Unknown error!":"Errore sconosciuto!",ra_Update:SJe,"ra_Upload file":"Caricare un file","ra_Use all available let's encrypt certificates":"Usa tutti i certificati Let's Encrypt disponibili","ra_Use iobroker.acme adapter for letsencrypt certificates":"Utilizzare l'adattatore iobroker.acme per i certificati letsencrypt","ra_Use system settings for position":"Usa le impostazioni di sistema per la posizione","ra_Used system settings":"Impostazioni di sistema utilizzate","ra_User files":"File utente",ra_ValidTill:xJe,ra_Value:CJe,ra_Version:TJe,"ra_View file":"Vedi il file","ra_View: %s":"Visualizza: %s",ra_Wednesday:kJe,ra_Width:EJe,ra_Yes:DJe,"ra_You can export all objects or just the selected branch.":"Puoi esportare tutti gli oggetti o solo il ramo selezionato.","ra_You can filter entries by entering here some text":"Puoi filtrare le voci inserendo qui del testo",ra___different__:MJe,ra_aclEveryone_read_object:OJe,ra_aclEveryone_read_state:$Je,ra_aclEveryone_write_object:AJe,ra_aclEveryone_write_state:PJe,ra_aclGroup_read_object:IJe,ra_aclGroup_read_state:RJe,ra_aclGroup_write_object:LJe,ra_aclGroup_write_state:NJe,ra_aclOwner_read_object:FJe,ra_aclOwner_read_state:zJe,ra_aclOwner_write_object:BJe,ra_aclOwner_write_state:jJe,ra_buttons:WJe,ra_changedFrom:HJe,ra_close:UJe,ra_create_boolean_state:YJe,ra_create_channel:VJe,ra_create_device:GJe,ra_create_number_state:qJe,ra_create_state:XJe,ra_create_string_state:JJe,ra_daysShortText:ZJe,ra_dow_Fr:KJe,ra_dow_Mo:QJe,ra_dow_Sa:eZe,ra_dow_Su:tZe,ra_dow_Th:rZe,ra_dow_Tu:nZe,ra_dow_We:aZe,ra_expertMode:iZe,ra_fileType_all:oZe,ra_fileType_audio:sZe,ra_fileType_code:lZe,ra_fileType_images:cZe,ra_fileType_txt:uZe,ra_fileType_video:dZe,"ra_fileType_video,":"video",ra_filter_customs:fZe,ra_filter_customs_without:hZe,ra_filter_func:pZe,ra_filter_id:mZe,ra_filter_name:vZe,ra_filter_role:gZe,ra_filter_room:_Ze,ra_filter_type:yZe,"ra_import data from %s file":"Importa dati dal file %s",ra_invalidConfig:bZe,ra_lastChange:wZe,ra_locally:SZe,ra_month_Apr:xZe,ra_month_Aug:CZe,ra_month_Dec:TZe,ra_month_Feb:kZe,ra_month_Jan:EZe,ra_month_Jul:DZe,ra_month_Jun:MZe,ra_month_Mai:OZe,ra_month_Mar:$Ze,ra_month_Nov:AZe,ra_month_Oct:PZe,ra_month_Sep:IZe,ra_months_Apr:RZe,ra_months_Aug:LZe,ra_months_Dec:NZe,ra_months_Feb:FZe,ra_months_Jan:zZe,ra_months_Jul:BZe,ra_months_Jun:jZe,ra_months_Mai:WZe,ra_months_Mar:HZe,ra_months_Nov:UZe,ra_months_Oct:YZe,ra_months_Sep:VZe,ra_none:GZe,ra_object_changed_by:qZe,ra_object_changed_by_user:XZe,ra_otherConfig:JZe,ra_qualityCode:ZZe,ra_repeat:KZe,ra_select_folder_hint:QZe,ra_state_changed_by:eKe,ra_state_changed_from:tKe,ra_timestamp:rKe,ra_tooltip_ack:nKe,ra_tooltip_comment:aKe,ra_tooltip_copyState:iKe,ra_tooltip_customConfig:oKe,ra_tooltip_deleteObject:sKe,ra_tooltip_editObject:lKe,ra_tooltip_editState:cKe,ra_tooltip_from:uKe,ra_tooltip_lc:dKe,ra_tooltip_quality:fKe,ra_tooltip_ts:hKe,ra_tooltip_user:pKe,ra_tooltip_value:mKe,"ra_use seconds":"usa i secondi",ra_val:vKe,"ra_via internet":"attraverso internet",ra_warning_every_minute:gKe,ra_warning_every_second:_Ke,sc_cron:yKe,sc_date:bKe,sc_dates:wKe,sc_dow:SKe,sc_dows:xKe,sc_every:CKe,sc_everyN_dates:TKe,sc_everyN_dow:kKe,sc_everyN_dows:EKe,sc_everyN_hours:DKe,sc_everyN_minutes:MKe,sc_everyN_months:OKe,sc_everyN_seconds:$Ke,sc_every_dates:AKe,sc_every_dow:PKe,sc_every_dows:IKe,sc_every_hours:RKe,sc_every_minutes:LKe,sc_every_months:NKe,sc_every_seconds:FKe,sc_from:zKe,sc_hours:BKe,sc_interval:jKe,sc_intervalBetween:WKe,sc_invalid_cron:HKe,sc_minutes:UKe,sc_months:YKe,sc_once:VKe,sc_period:GKe,sc_seconds:qKe,sc_simple:XKe,sc_specific:JKe,sc_specific_dates:ZKe,sc_specific_dow:KKe,sc_specific_dows:QKe,sc_specific_hours:eQe,sc_specific_minutes:tQe,sc_specific_months:rQe,sc_specific_seconds:nQe,sc_time:aQe,sc_to:iQe,sc_wizard:oQe,sch_all:sQe,sch_astroDay:lQe,sch_astroNight:cQe,sch_astro_dawn:uQe,sch_astro_dusk:dQe,sch_astro_goldenHour:fQe,sch_astro_goldenHourEnd:hQe,sch_astro_nadir:pQe,sch_astro_nauticalDawn:mQe,sch_astro_nauticalDusk:vQe,sch_astro_night:gQe,sch_astro_nightEnd:_Qe,sch_astro_solarNoon:yQe,sch_astro_sunrise:bQe,sch_astro_sunriseEnd:wQe,sch_astro_sunset:SQe,sch_astro_sunsetStart:xQe,sch_at:CQe,sch_desc_atTime:TQe,sch_desc_everyDay:kQe,sch_desc_everyHour:EQe,sch_desc_everyMinute:DQe,sch_desc_everyMonth:MQe,sch_desc_everyNDay:OQe,sch_desc_everyNHours:$Qe,sch_desc_everyNMinutes:AQe,sch_desc_everyNMonths:PQe,sch_desc_everyNWeeks:IQe,sch_desc_everyNYears:RQe,sch_desc_everyWeek:LQe,sch_desc_everyYear:NQe,sch_desc_intervalFromTo:FQe,sch_desc_never:zQe,sch_desc_onDate:BQe,sch_desc_onDates:jQe,sch_desc_onEveryDate:WQe,sch_desc_onMonth:HQe,sch_desc_onMonths:UQe,sch_desc_onWeekday:YQe,sch_desc_onWeekdays:VQe,sch_desc_onWeekends:GQe,sch_desc_onWorkdays:qQe,sch_desc_onceInPast:XQe,sch_desc_once_on:JQe,sch_desc_validFrom:ZQe,sch_desc_validFromTo:KQe,sch_desc_validTo:QQe,sch_every:eet,sch_exactTime:tet,sch_from:ret,sch_fromTo:net,sch_intervalTime:aet,sch_invert:iet,sch_no_one:oet,sch_on:set,sch_period:cet,sch_periodDaily:uet,sch_periodDates:det,sch_periodDay:fet,sch_periodEvery:het,sch_periodEveryDay:pet,sch_periodEveryMonth:met,sch_periodEveryWeek:vet,sch_periodEveryYear:get,sch_periodHours:_et,sch_periodMinutes:yet,sch_periodMonth:bet,sch_periodMonthly:wet,sch_periodOnce:xet,sch_periodSpecificMonths:Cet,sch_periodWeek:Tet,sch_periodWeekdays:ket,sch_periodWeekend:Eet,sch_periodWeekly:Det,sch_periodWorkdays:Met,sch_periodYear:Oet,sch_periodYearly:$et,sch_specificTime:Aet,sch_time:Pet,sch_to:Iet,sch_valid:Ret,sch_validFrom:Let,sch_validTo:Net,sch_wholeDay:Fet,sch_yearEveryMonth:zet},jet="Adjuntar",Wet="Cancelar",Het="Categorías",Uet="Comprobado",Yet="Borrar",Vet="Cerca",Get="Comercial",qet="Configurar",Xet="Conectado",Jet="Copiado",Zet="Crear",Ket="Cultivo",Qet="Delete",ett="Eliminar",ttt="Desechar",rtt="Desconectado",ntt="Error",att="Filtrar",itt="Viernes",ott="Latitud",stt="Longitud",ltt="Mensaje",ctt="Lunes",utt="Nombre",dtt="Objetos",ftt="Okay",htt="Producto",ptt="Repetir",mtt="Reemplazar",vtt="Raíz",gtt="Sábado",_tt="Salvar",ytt="Seleccionado",btt="Estados",wtt="Domingo",Stt="Jueves",xtt="Marca de tiempo",Ctt="Martes",Ttt="Actualizar",ktt="Válida hasta",Ett="Valor",Dtt="Versión",Mtt="Miércoles",Ott="Anchura",$tt="Sí",Att="diferente",Ptt="Todo el mundo puede leer el objeto",Itt="Todos pueden leer el estado",Rtt="Todos pueden escribir objetos",Ltt="Todos pueden escribir el estado",Ntt="El grupo puede leer el objeto",Ftt="El grupo puede leer el estado",ztt="El grupo puede escribir un objeto",Btt="El grupo puede escribir el estado",jtt="El propietario puede leer el objeto",Wtt="El propietario puede leer el estado",Htt="El propietario puede escribir el objeto",Utt="El propietario puede escribir el estado",Ytt="Botones",Vtt="Cambiaron desde",Gtt="cerrar",qtt="Crear estado booleano",Xtt="Crear canal",Jtt="Crear dispositivo",Ztt="Crear estado numérico",Ktt="Crear estado",Qtt="Crear estado de cadena",ert="d.",trt="Fr",rrt="Mes",nrt="Sa",art="Su",irt="Th",ort="Tu",srt="Nosotros",lrt="Modo experto",crt="Todos los archivos",urt="Audio",drt="Código/JSON",frt="Imágenes",hrt="Texto",prt="Video",mrt="Configuraciones",vrt="sin",grt="Función",_rt="ID",yrt="Nombre",brt="Papel",wrt="Habitación",Srt="Tipo",xrt="Configuraciones inválidas",Crt="Ultimo cambio",Trt="en la zona",krt="Abr",Ert="Ago",Drt="Dic",Mrt="Feb",Ort="Ene",$rt="Jul",Art="Jun",Prt="Mai",Irt="Mar",Rrt="Nov",Lrt="Oct",Nrt="Sep",Frt="Abr",zrt="Ago",Brt="Dic",jrt="Feb",Wrt="Ene",Hrt="Jul",Urt="Jun",Yrt="Mai",Vrt="Mar",Grt="Nov",qrt="Oct",Xrt="Sep",Jrt="ninguno",Zrt="Objeto cambiado por",Krt="Objeto cambiado por última vez a las",Qrt="Configuraciones de otro adaptador %s",ent="Código de calidad",tnt="repetir",rnt='Para seleccionar la carpeta, simplemente mantenga presionada la tecla "shift" haciendo clic en la carpeta.',nnt="Estado cambiado por",ant="Objeto cambiado de",int="Marca de tiempo",ont="Bandera reconocida",snt="Comentario",lnt="Copie el valor del estado",cnt="Ajustes personalizados",unt="Eliminar objeto",dnt="Editar objeto",fnt="Edite el valor del estado",hnt="Desde",pnt="Último cambio",mnt="Calidad",vnt="Sello de tiempo",gnt="Usuario",_nt="Valor",ynt="Valor",bnt="Advertencia: ¡El trabajo CRON se ejecutará cada minuto durante el período especificado!",wnt="Advertencia: ¡El trabajo CRON se ejecutará cada segundo durante el período especificado!",Snt="CRON",xnt="Fecha",Cnt="fechas",Tnt="Día",knt="Día de la semana",Ent="Cada",Dnt="cada N días",Mnt="cada enésimo día de la semana",Ont="cada N día de la semana",$nt="cada N horas",Ant="cada N minutos",Pnt="cada N meses",Int="cada N segundos",Rnt="cada día",Lnt="Cada día de la semana",Nnt="Cada día de la semana",Fnt="cada hora",znt="cada minuto",Bnt="cada mes",jnt="cada segundo",Wnt="De",Hnt="Horas",Unt="Intervalo",Ynt="Intervalo entre",Vnt="CRON no válido",Gnt="Minutos",qnt="meses",Xnt="Una vez",Jnt="Período",Znt="Segundos",Knt="Sencillo",Qnt="Tiempo específico",eat="fechas especificas",tat="día(s) específico(s) de la semana",rat="día específico de semanas",nat="horas específicas",aat="minutos específicos",iat="meses específicos",oat="segundos específicos",sat="Hora",lat="A",cat="Mago",uat="todas",dat="Día astro",fat="Noche astro",hat="Amanecer",pat="Oscuridad",mat="hora dorada",vat="Fin de la hora dorada",gat="Nadir",_at="Amanecer náutico",yat="Anochecer náutico",bat="Noche",wat="Fin de la noche",Sat="Mediodía solar",xat="amanecer",Cat="Fin del amanecer",Tat="Puesta de sol",kat="Puesta de sol",Eat="a",Dat="en %s",Mat="cada día",Oat="cada hora",$at="cada minuto",Aat="cada mes",Pat="cada %s días",Iat="cada %s horas",Rat="cada %s minutos",Lat="cada %s meses",Nat="cada %s semanas",Fat="cada %s años",zat="cada semana",Bat="todos los años",jat="de %s a %s",Wat="Nunca",Hat="en %s de %s",Uat="en %s y %s de",Yat="en cada fecha de",Vat="%s",Gat="%s y %s",qat="en %s",Xat="en %s y %s",Jat="en los fines de semana",Zat="en días laborables",Kat="ya no se ejecutará más, porque el inicio está en el pasado",Qat="en %s",eit="de %s",tit="Ejecutar desde hasta",rit="a %s",nit="cada",ait="Tiempo específico",iit="de",oit="De-a",sit="Tiempo de intervalo",lit="invertir; poner boca abajo o en la posición opuesta, orden o arreglo; Boca abajo",cit="ninguna",uit="en",dit="Período",fit="Diario",hit="fechas",pit="Día",mit="Cada",vit="Cada día",git="Cada mes",_it="Cada semana",yit="Todos los años",bit="Horas",wit="Minutos",Sit="mes",xit="Mensual",Cit="Una vez",Tit="Meses específicos",kit="Semana",Eit="Días laborables",Dit="Fin de semana",Mit="Semanal",Oit="Días laborables",$it="Año",Ait="Anual",Pit="Tiempo específico",Iit="Hora",Rit="a",Lit="Válido",Nit="de",Fit="a",zit="Todo el dia",Bit="cada mes",jit={"ra_%s links from aliases":"%s enlaces de alias","ra_%s object(s) processed":"%s objeto(s) procesados","ra_%s was imported":"%s fue importado","ra_Accept license":"Aceptar licencia","ra_Add new child object to selected parent":"Agregar nuevo objeto hijo al padre seleccionado","ra_Add objects tree from JSON file":"Agregar árbol de objetos desde el archivo JSON","ra_Add row":"Añadir fila","ra_Advanced options":"Opciones avanzadas","ra_All items are filtered out":"Todos los elementos se filtran","ra_All objects":"Todos los objetos",ra_Append:jet,"ra_Append %s entries or replace existing?":"¿Agregar %s entradas o reemplazar las existentes?","ra_Append or replace?":"¿Agregar o reemplazar?","ra_Are you sure?":"¿Estás seguro?","ra_Auto (no custom columns)":"Automático (sin columnas personalizadas)","ra_Back to %s":"Volver a %s","ra_Background image":"Imagen de fondo",ra_Cancel:Wet,"ra_Cannot add items with set filter":"No se pueden agregar elementos con el filtro establecido","ra_Cannot decode license":"No se puede decodificar la licencia","ra_Cannot determine position: System settings are empty and GPS detection is disabled in browser":"No se puede determinar la posición: la configuración del sistema está vacía y la detección de GPS está deshabilitada en el navegador",'ra_Cannot find "%s"':'No se puede encontrar "%s"','ra_Cannot read "%s"':'No se puede leer "%s"',"ra_Cannot read licenses: %s":"No se pueden leer licencias: %s","ra_Cannot retrieve options, as instance is offline":"No se pueden recuperar las opciones, ya que la instancia está fuera de línea","ra_Cannot update attribute, because not found in the object":"No se puede actualizar el atributo porque no se encuentra en el objeto","ra_Cannot upload":"no se puede cargar",ra_Categories:Het,"ra_Chained certificate":"certificado encadenado","ra_Change color theme":"Cambiar tema de color","ra_Changed from":"Cambiaron desde","ra_Channel → State":"Canal → Estado","ra_Check license":"Verificar licencia",ra_Checked:Uet,ra_Clear:Yet,"ra_Clear filter":"Filtro claro","ra_Clear icon":"Icono claro","ra_Clone current row":"Clonar fila actual",ra_Close:Vet,"ra_Collapse all nodes":"Contraer todos los nodos","ra_Collapse one step node":"Contraer un nivel",ra_Commercial:Get,ra_Configure:qet,"ra_Configure visible columns":"Configurar columnas visibles","ra_Confirm deletion of %s":"Confirmar la eliminación de %s",ra_Connected:Xet,ra_Copied:Jet,"ra_Copied %s":'Copiado "%s"',"ra_Copy content":"Copiar contenido",ra_Create:Zet,"ra_Create alias":"Crear alias","ra_Create folder":"Crear carpeta","ra_Create new folder in %s":"Crear nueva carpeta en %s",ra_Crop:Ket,"ra_Define CRON...":"Definir CRON...","ra_Define functions":"Definir funciones","ra_Define rooms":"Definir habitaciones","ra_Define schedule":"Definir horario","ra_Define schedule...":"Definir horario ...",ra_Del:Qet,ra_Delete:ett,"ra_Delete (no confirm for 5 mins)":"Eliminar (sin confirmar durante 5 minutos)","ra_Delete current row":"Eliminar fila actual","ra_Deselect all":"Deselecciona todo","ra_Device → Channel → State":"Dispositivo → Canal → Estado",ra_Discard:ttt,ra_Disconnected:rtt,"ra_Do not export values of states":"No exportar valores de estados.","ra_Do not use let's encrypt":"No use vamos a cifrar","ra_Double click to reset table layout":"Haga doble clic para restablecer el diseño de la tabla","ra_Drag 'n' drop some files here, or click to select files":"Arrastre y suelte algunos archivos aquí, o haga clic para seleccionar archivos","ra_Drop file here":"Suelta el archivo aquí","ra_Drop the files here...":"Suelta el archivo aquí ...","ra_Duplicate name":"Nombre duplicado","ra_Edit ACL":"Editar LCA","ra_Edit alias":"Editar alias","ra_Edit custom config":"Editar configuración personalizada","ra_Edit function":"Función de edición","ra_Edit object field":"Editar campo de objeto","ra_Edit role":"Editar rol","ra_Edit room":"Cuarto de edición","ra_Edit value":"Editar valor",ra_Error:ntt,"ra_Expand all nodes":"Expandir todos los nodos","ra_Expand one step node":"Expandir un nivel","ra_Export data to %s file":"Exportar datos al archivo %s","ra_Failed to open JSON File":"No se pudo abrir el archivo JSON","ra_Fallback custom certificates":"Certificados personalizados alternativos","ra_File is too big. Max %sk allowed. Try use SVG.":"El archivo es demasiado grande. Máximo de %sk permitido. Intenta usar SVG.",ra_Filter:att,"ra_Filter files":"Filtrar archivos","ra_Folder name":"Nombre de la carpeta","ra_Folder → Channel → State":"Carpeta → Canal → Estado","ra_Folder → Device → Channel → State":"Carpeta → Dispositivo → Canal → Estado","ra_Folder → State":"Carpeta → Estado","ra_Folders always first":"Carpetas siempre primero",ra_Friday:itt,"ra_Good luck":"Buena suerte","ra_Hide empty folders":"Ocultar carpetas vacías","ra_If no file will be created in the folder, it will disappear after the browser closed":"Si no se creará ningún archivo en la carpeta, desaparecerá después de que se cierre el navegador.","ra_Import data from %s file":"Importar datos del archivo %s","ra_Import from %s":"Importar desde %s","ra_Instance %s is alive":"Instancia %s está vivo","ra_Instance %s is not alive":"Instancia %s no está vivo","ra_Instance is not alive":"La instancia no está viva","ra_Invalid CRON":"CRON no válido","ra_Invalid JSON":"JSON no válido","ra_Invalid answer from server":"Respuesta inválida del servidor","ra_Invalid parent folder!":"Carpeta principal no válida.","ra_Invalid structure":"Estructura inválida","ra_JSON editor":"editor JSON","ra_Last change":"Ultimo cambio",ra_Latitude:ott,"ra_License %s":"Licencia %s","ra_License agreement":"Acuerdo de licencia","ra_License does not exist":"La licencia no existe","ra_License expired on %s":"La licencia venció el %s",'ra_License for other product "%s"':'Licencia para otro producto "%s"',"ra_License is for version %s, but required version is %s.":"La licencia es para la versión %s, pero la versión requerida es %s.","ra_License must be converted":"La licencia debe convertirse a una versión más reciente. Puedes hacerlo en tu perfil de iobroker.net.","ra_License not found in license manager. Do you want to read licenses from iobroker.net?":"Licencia no encontrada en el administrador de licencias. ¿Quieres actualizar las licencias de iobroker.net?","ra_Listen on all IPs":"Escuche en todas las IP","ra_Load configuration from file":"Cargar configuración desde archivo",ra_Longitude:stt,'ra_May not trigger "updateLicenses"':'No puede activar "updateLicenses"',ra_Message:ltt,ra_Monday:ctt,"ra_Move down":"Mover hacia abajo","ra_Move up":"Ascender",ra_Name:utt,"ra_No data found in file":"No se encontraron datos en el archivo","ra_No one license found in license manager":"No se encontró ninguna licencia en el administrador de licencias","ra_No response from the backend":"No hay respuesta del backend",'ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".':'Los no expertos pueden crear nuevos objetos solo en "0_userdata.0" o "alias.0".',"ra_Not a number":"No un número",ra_Objects:dtt,ra_Ok:ftt,"ra_On weekdays":"De lunes a viernes","ra_Only following structures of objects are available:":"Solo están disponibles las siguientes estructuras de objetos:","ra_Only selected":"Solo seleccionados","ra_Owner group":"Grupo propietario","ra_Owner user":"Usuario propietario","ra_Passwords are not equal!":"¡Las contraseñas no son iguales!","ra_Place your files here or click here to open the browse dialog":"Coloque sus archivos aquí o haga clic aquí para abrir el cuadro de diálogo de exploración","ra_Please confirm":"Por favor confirmar","ra_Please create license":"Por favor cree una licencia","ra_Please enter the license":"Por favor ingrese la licencia","ra_Please select file...":"Seleccione el archivo...","ra_Please select object ID...":"Por favor seleccione ID de objeto ...","ra_Port could be used by %s":"El puerto podría ser utilizado por %s","ra_Port is already used by %s":"El puerto ya está en uso por %s","ra_Private certificate":"certificado privado",ra_Product:htt,"ra_Public certificate":"Certificado público","ra_Quality code":"Calidad","ra_Refresh tree":"Actualizar árbol","ra_Reload files":"Recargar archivos",ra_Repeat:ptt,ra_Replace:mtt,"ra_Request timed out":"Tiempo de espera agotado","ra_Restrict to folder":"Restringir a carpeta",ra_Root:vtt,ra_Saturday:gtt,ra_Save:_tt,"ra_Save and close":"Guardar y cerrar","ra_Save configuration to file":"Guardar configuración en archivo","ra_Save objects tree as JSON file":"Guardar el árbol de objetos como archivo JSON","ra_Select all":"Seleccionar todo","ra_Select color":"Seleccionar el color","ra_Select predefined icon":"Seleccionar icono predefinido","ra_Select type of export":"Seleccione tipo de exportación",ra_Selected:ytt,"ra_Selected %s object(s)":"%s objetos seleccionados","ra_Serial number (UUID)":"Número de serie (UUID)",'ra_Serial number (UUID) "%s" in license is for other device.':'El número de serie (UUID) "%s" en la licencia es para otro dispositivo.',"ra_Show all folders":"Mostrar todas las carpetas","ra_Show lines between rows":"Mostrar líneas entre filas","ra_Show/Hide object descriptions":"Mostrar/ocultar descripciones de objetos","ra_Show/hide filter input":"Mostrar/ocultar entrada de filtro","ra_Some data are not stored. Discard?":"Algunos datos no se almacenan. ¿Desechar?",ra_States:btt,"ra_Suitable license not found in license manager":"Licencia adecuada no encontrada en el administrador de licencias",ra_Sunday:wtt,"ra_Suppress question for next %s minutes":"Suprimir pregunta durante los próximos %s minutos","ra_System language":"Lenguaje del sistema","ra_Take browser position":"Tomar posición desde el navegador","ra_Take position from system settings":"Tomar posición desde la configuración del sistema",'ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").':'Los expertos pueden crear objetos en todas partes excepto desde el segundo nivel (por ejemplo, "vis.0" o "javascript.0").',"ra_The page you are looking for was not found":"No se encontró la página que busca","ra_The schedule will be executed every minute. Are you sure?":"El cronograma se ejecutará cada minuto. ¿Estás seguro?","ra_The schedule will be executed every second. Are you sure?":"El cronograma se ejecutará cada segundo. ¿Estás seguro?",ra_Thursday:Stt,ra_Timestamp:xtt,"ra_Toggle expert mode":"Alternar modo experto","ra_Toggle the states view":"Alternar la vista de estados","ra_Toggle view mode":"Alternar modo de vista","ra_Too big":"Demasiado grande","ra_Too small":"Demasiado pequeña","ra_Transparent dialog":"Diálogo transparente",ra_Tuesday:Ctt,"ra_Unknown error":"Error desconocido","ra_Unknown error!":"¡Error desconocido!",ra_Update:Ttt,"ra_Upload file":"Subir archivo","ra_Use all available let's encrypt certificates":"Utilice todos los certificados let's encrypt disponibles","ra_Use iobroker.acme adapter for letsencrypt certificates":"Use el adaptador iobroker.acme para los certificados de letsencrypt","ra_Use system settings for position":"Usar la configuración del sistema para la posición","ra_Used system settings":"Configuraciones del sistema usadas","ra_User files":"Archivos de usuario",ra_ValidTill:ktt,ra_Value:Ett,ra_Version:Dtt,"ra_View file":"Ver archivo","ra_View: %s":"Ver: %s",ra_Wednesday:Mtt,ra_Width:Ott,ra_Yes:$tt,"ra_You can export all objects or just the selected branch.":"Puede exportar todos los objetos o solo la rama seleccionada.","ra_You can filter entries by entering here some text":"Puede filtrar las entradas ingresando aquí algún texto",ra___different__:Att,ra_aclEveryone_read_object:Ptt,ra_aclEveryone_read_state:Itt,ra_aclEveryone_write_object:Rtt,ra_aclEveryone_write_state:Ltt,ra_aclGroup_read_object:Ntt,ra_aclGroup_read_state:Ftt,ra_aclGroup_write_object:ztt,ra_aclGroup_write_state:Btt,ra_aclOwner_read_object:jtt,ra_aclOwner_read_state:Wtt,ra_aclOwner_write_object:Htt,ra_aclOwner_write_state:Utt,ra_buttons:Ytt,ra_changedFrom:Vtt,ra_close:Gtt,ra_create_boolean_state:qtt,ra_create_channel:Xtt,ra_create_device:Jtt,ra_create_number_state:Ztt,ra_create_state:Ktt,ra_create_string_state:Qtt,ra_daysShortText:ert,ra_dow_Fr:trt,ra_dow_Mo:rrt,ra_dow_Sa:nrt,ra_dow_Su:art,ra_dow_Th:irt,ra_dow_Tu:ort,ra_dow_We:srt,ra_expertMode:lrt,ra_fileType_all:crt,ra_fileType_audio:urt,ra_fileType_code:drt,ra_fileType_images:frt,ra_fileType_txt:hrt,ra_fileType_video:prt,"ra_fileType_video,":"Video",ra_filter_customs:mrt,ra_filter_customs_without:vrt,ra_filter_func:grt,ra_filter_id:_rt,ra_filter_name:yrt,ra_filter_role:brt,ra_filter_room:wrt,ra_filter_type:Srt,"ra_import data from %s file":"Importar datos del archivo %s",ra_invalidConfig:xrt,ra_lastChange:Crt,ra_locally:Trt,ra_month_Apr:krt,ra_month_Aug:Ert,ra_month_Dec:Drt,ra_month_Feb:Mrt,ra_month_Jan:Ort,ra_month_Jul:$rt,ra_month_Jun:Art,ra_month_Mai:Prt,ra_month_Mar:Irt,ra_month_Nov:Rrt,ra_month_Oct:Lrt,ra_month_Sep:Nrt,ra_months_Apr:Frt,ra_months_Aug:zrt,ra_months_Dec:Brt,ra_months_Feb:jrt,ra_months_Jan:Wrt,ra_months_Jul:Hrt,ra_months_Jun:Urt,ra_months_Mai:Yrt,ra_months_Mar:Vrt,ra_months_Nov:Grt,ra_months_Oct:qrt,ra_months_Sep:Xrt,ra_none:Jrt,ra_object_changed_by:Zrt,ra_object_changed_by_user:Krt,ra_otherConfig:Qrt,ra_qualityCode:ent,ra_repeat:tnt,ra_select_folder_hint:rnt,ra_state_changed_by:nnt,ra_state_changed_from:ant,ra_timestamp:int,ra_tooltip_ack:ont,ra_tooltip_comment:snt,ra_tooltip_copyState:lnt,ra_tooltip_customConfig:cnt,ra_tooltip_deleteObject:unt,ra_tooltip_editObject:dnt,ra_tooltip_editState:fnt,ra_tooltip_from:hnt,ra_tooltip_lc:pnt,ra_tooltip_quality:mnt,ra_tooltip_ts:vnt,ra_tooltip_user:gnt,ra_tooltip_value:_nt,"ra_use seconds":"usar segundos",ra_val:ynt,"ra_via internet":"vía Internet",ra_warning_every_minute:bnt,ra_warning_every_second:wnt,sc_cron:Snt,sc_date:xnt,sc_dates:Cnt,sc_dow:Tnt,sc_dows:knt,sc_every:Ent,sc_everyN_dates:Dnt,sc_everyN_dow:Mnt,sc_everyN_dows:Ont,sc_everyN_hours:$nt,sc_everyN_minutes:Ant,sc_everyN_months:Pnt,sc_everyN_seconds:Int,sc_every_dates:Rnt,sc_every_dow:Lnt,sc_every_dows:Nnt,sc_every_hours:Fnt,sc_every_minutes:znt,sc_every_months:Bnt,sc_every_seconds:jnt,sc_from:Wnt,sc_hours:Hnt,sc_interval:Unt,sc_intervalBetween:Ynt,sc_invalid_cron:Vnt,sc_minutes:Gnt,sc_months:qnt,sc_once:Xnt,sc_period:Jnt,sc_seconds:Znt,sc_simple:Knt,sc_specific:Qnt,sc_specific_dates:eat,sc_specific_dow:tat,sc_specific_dows:rat,sc_specific_hours:nat,sc_specific_minutes:aat,sc_specific_months:iat,sc_specific_seconds:oat,sc_time:sat,sc_to:lat,sc_wizard:cat,sch_all:uat,sch_astroDay:dat,sch_astroNight:fat,sch_astro_dawn:hat,sch_astro_dusk:pat,sch_astro_goldenHour:mat,sch_astro_goldenHourEnd:vat,sch_astro_nadir:gat,sch_astro_nauticalDawn:_at,sch_astro_nauticalDusk:yat,sch_astro_night:bat,sch_astro_nightEnd:wat,sch_astro_solarNoon:Sat,sch_astro_sunrise:xat,sch_astro_sunriseEnd:Cat,sch_astro_sunset:Tat,sch_astro_sunsetStart:kat,sch_at:Eat,sch_desc_atTime:Dat,sch_desc_everyDay:Mat,sch_desc_everyHour:Oat,sch_desc_everyMinute:$at,sch_desc_everyMonth:Aat,sch_desc_everyNDay:Pat,sch_desc_everyNHours:Iat,sch_desc_everyNMinutes:Rat,sch_desc_everyNMonths:Lat,sch_desc_everyNWeeks:Nat,sch_desc_everyNYears:Fat,sch_desc_everyWeek:zat,sch_desc_everyYear:Bat,sch_desc_intervalFromTo:jat,sch_desc_never:Wat,sch_desc_onDate:Hat,sch_desc_onDates:Uat,sch_desc_onEveryDate:Yat,sch_desc_onMonth:Vat,sch_desc_onMonths:Gat,sch_desc_onWeekday:qat,sch_desc_onWeekdays:Xat,sch_desc_onWeekends:Jat,sch_desc_onWorkdays:Zat,sch_desc_onceInPast:Kat,sch_desc_once_on:Qat,sch_desc_validFrom:eit,sch_desc_validFromTo:tit,sch_desc_validTo:rit,sch_every:nit,sch_exactTime:ait,sch_from:iit,sch_fromTo:oit,sch_intervalTime:sit,sch_invert:lit,sch_no_one:cit,sch_on:uit,sch_period:dit,sch_periodDaily:fit,sch_periodDates:hit,sch_periodDay:pit,sch_periodEvery:mit,sch_periodEveryDay:vit,sch_periodEveryMonth:git,sch_periodEveryWeek:_it,sch_periodEveryYear:yit,sch_periodHours:bit,sch_periodMinutes:wit,sch_periodMonth:Sit,sch_periodMonthly:xit,sch_periodOnce:Cit,sch_periodSpecificMonths:Tit,sch_periodWeek:kit,sch_periodWeekdays:Eit,sch_periodWeekend:Dit,sch_periodWeekly:Mit,sch_periodWorkdays:Oit,sch_periodYear:$it,sch_periodYearly:Ait,sch_specificTime:Pit,sch_time:Iit,sch_to:Rit,sch_valid:Lit,sch_validFrom:Nit,sch_validTo:Fit,sch_wholeDay:zit,sch_yearEveryMonth:Bit},Wit="Dodać",Hit="Anuluj",Uit="Kategorie",Yit="Sprawdzony",Vit="Kasować",Git="Blisko",qit="Handlowy",Xit="Konfiguruj",Jit="Połączony",Zit="Skopiowano",Kit="Stwórz",Qit="Przyciąć",eot="Delete",tot="Usunąć",rot="Wyrzucać",not="Niepowiązany",aot="Błąd",iot="Filtr",oot="Piątek",sot="Szerokość",lot="Długość geograficzna",cot="Wiadomość",uot="Poniedziałek",dot="Nazwa",fot="Obiekty",hot="Dobrze",pot="Produkt",mot="Powtarzać",vot="Zastępować",got="Korzeń",_ot="Sobota",yot="Zapisać",bot="Wybrany",wot="Stany",Sot="Niedziela",xot="Czwartek",Cot="Znak czasu",Tot="Wtorek",kot="Aktualizacja",Eot="Obowiązuje do",Dot="Wartość",Mot="Wersja",Oot="Środa",$ot="Szerokość",Aot="Tak",Pot="różne",Iot="Każdy może czytać obiekt",Rot="Każdy może czytać stan",Lot="Każdy może pisać przedmiot",Not="Każdy może pisać stan",Fot="Grupa może odczytać obiekt",zot="Grupa może odczytać stan",Bot="Grupa może pisać obiekt",jot="Grupa może pisać stan",Wot="Właściciel może czytać obiekt",Hot="Właściciel może odczytać stan",Uot="Właściciel może napisać obiekt",Yot="Właściciel może pisać stan",Vot="guziki",Got="Zmieniony z",qot="blisko",Xot="Utwórz stan logiczny",Jot="Utwórz kanał",Zot="Utwórz urządzenie",Kot="Utwórz stan liczbowy",Qot="Utwórz stan",est="Utwórz stan ciągu",tst="d.",rst="Ks",nst="Mo",ast="Sa",ist="Su",ost="Th",sst="Tu",lst="My",cst="Tryb ekspercki",ust="Wszystkie pliki",dst="Audio",fst="Kod/JSON",hst="Obrazy",pst="Tekst",mst="Wideo",vst="Ustawienia",gst="bez",_st="Funkcjonować",yst="ID",bst="Imię",wst="Rola",Sst="Sala",xst="Rodzaj",Cst="Nieprawidłowe ustawienia",Tst="Ostatnia zmiana",kst="lokalnie",Est="kwiecień",Dst="sierpień",Mst="grudzień",Ost="luty",$st="styczeń",Ast="lipiec",Pst="czerwiec",Ist="Mai",Rst="Zniszczyć",Lst="listopad",Nst="październik",Fst="wrzesień",zst="kwiecień",Bst="sierpień",jst="grudzień",Wst="luty",Hst="styczeń",Ust="lipiec",Yst="czerwiec",Vst="Mai",Gst="Zniszczyć",qst="listopad",Xst="październik",Jst="wrzesień",Zst="Żaden",Kst="Obiekt zmieniony przez",Qst="Obiekt ostatnio zmieniony o godz",elt="Ustawienia z innego adaptera %s",tlt="Kod jakości",rlt="powtarzać",nlt="Aby wybrać folder, wystarczy przytrzymać klawisz „shift”, klikając folder.",alt="Stan zmieniony przez",ilt="Obiekt zmieniony z",olt="Znak czasu",slt="Potwierdzon",llt="Komentarz",clt="Skopiuj wartość stanu",ult="Własne ustawienia",dlt="Usuń obiekt",flt="Edytuj obiekt",hlt="Edytuj wartość stanu",plt="Z",mlt="Ostatnia zmiana",vlt="Jakość",glt="Znak czasu",_lt="Użytkownik",ylt="Wartość",blt="Wartość",wlt="Ostrzeżenie: Zadanie CRON będzie uruchamiane co minutę w określonym przedziale czasowym!",Slt="Ostrzeżenie: Zadanie CRON będzie uruchamiane co sekundę w określonym przedziale czasowym!",xlt="CRON",Clt="Data",Tlt="Daktyle",klt="Dzień",Elt="Dzień tygodnia",Dlt="Każdy",Mlt="co N dni",Olt="w każdy N-ty dzień tygodnia",$lt="co N dnia tygodnia",Alt="co N godzin",Plt="co N minut",Ilt="co N miesięcy",Rlt="co N sekund",Llt="codziennie",Nlt="każdy dzień tygodnia",Flt="każdy dzień tygodnia",zlt="co godzinę",Blt="każda minuta",jlt="każdego miesiąca",Wlt="każda sekunda",Hlt="Od",Ult="godziny",Ylt="Interwał",Vlt="Interwał między",Glt="Nieprawidłowy CRON",qlt="Minuty",Xlt="miesięcy",Jlt="Pewnego razu",Zlt="Kropka",Klt="sekundy",Qlt="Prosty",ect="Określony czas",tct="konkretne daty",rct="określone dni tygodnia",nct="określony dzień tygodni",act="określone godziny",ict="określone minuty",oct="określone miesiące",sct="określone sekundy",lct="Czas",cct="Do",uct="Czarodziej",dct="wszystko",fct="Dzień Astro",hct="Noc Astro",pct="Świt",mct="Zmierzch",vct="złota godzina",gct="Koniec złotej godziny",_ct="Nadir",yct="Morski świt",bct="Morski zmierzch",wct="Noc",Sct="Koniec nocy",xct="Południe słoneczne",Cct="wschód słońca",Tct="Koniec wschodu słońca",kct="Zachód słońca",Ect="Początek zachodu słońca",Dct="w",Mct="na %s",Oct="codziennie",$ct="co godzinę",Act="każda minuta",Pct="każdego miesiąca",Ict="każdego dnia %s",Rct="co %s godzin",Lct="co %s minut",Nct="co %s miesięcy",Fct="co %s tygodni",zct="co %s lat",Bct="co tydzień",jct="każdego roku",Wct="od %s do %s",Hct="nigdy",Uct="na %s z %s",Yct="na %s i %s z",Vct="w każdą datę",Gct="%s",qct="%s i %s",Xct="na %s",Jct="na %s i %s",Zct="w weekendy",Kct="w dni robocze",Qct="nie będzie już wykonywany, ponieważ start jest w przeszłości",eut="na %s",tut="z %s",rut="Wykonaj od do",nut="do %s",aut="każdy",iut="Określony czas",out="od",sut="Od-do",lut="Czas przerwy",cut="odwracać",uut="Żaden",dut="na",fut="Kropka",hut="Codziennie",put="Daktyle",mut="Dzień",vut="Każdy",gut="Codziennie",_ut="Każdego miesiąca",yut="Co tydzień",but="Każdego roku",wut="godziny",Sut="Minuty",xut="miesiąc",Cut="Miesięczny",Tut="Pewnego razu",kut="Określone miesiące",Eut="Tydzień",Dut="Dni powszednie",Mut="Weekend",Out="Co tydzień",$ut="Dni robocze",Aut="Rok",Put="Rocznie",Iut="Określony czas",Rut="Czas",Lut="do",Nut="Ważny",Fut="od",zut="do",But="Cały dzień",jut="każdego miesiąca",Wut={"ra_%s links from aliases":"%s linków z aliasów","ra_%s object(s) processed":"Przetworzono %s obiektów","ra_%s was imported":"%s został zaimportowany","ra_Accept license":"Zaakceptuj licencję","ra_Add new child object to selected parent":"Dodaj nowy obiekt potomny do wybranego rodzica","ra_Add objects tree from JSON file":"Dodaj drzewo obiektów z pliku JSON","ra_Add row":"Dodaj wiersz","ra_Advanced options":"Zaawansowane opcje","ra_All items are filtered out":"Wszystkie pozycje są odfiltrowane","ra_All objects":"Wszystkie obiekty",ra_Append:Wit,"ra_Append %s entries or replace existing?":"Dołączyć wpisy %s czy zastąpić istniejące?","ra_Append or replace?":"Dołączyć czy zastąpić?","ra_Are you sure?":"Jesteś pewny?","ra_Auto (no custom columns)":"Auto (bez kolumn niestandardowych)","ra_Back to %s":"Powrót do %s","ra_Background image":"Zdjęcie w tle",ra_Cancel:Hit,"ra_Cannot add items with set filter":"Nie można dodać elementów z ustawionym filtrem","ra_Cannot decode license":"Nie można zdekodować licencji","ra_Cannot determine position: System settings are empty and GPS detection is disabled in browser":"Nie można określić pozycji: ustawienia systemu są puste, a wykrywanie GPS jest wyłączone w przeglądarce",'ra_Cannot find "%s"':"Nie można znaleźć „%s”",'ra_Cannot read "%s"':"Nie można odczytać „%s”","ra_Cannot read licenses: %s":"Nie można odczytać licencji: %s","ra_Cannot retrieve options, as instance is offline":"Nie można pobrać opcji, ponieważ instancja jest w trybie offline","ra_Cannot update attribute, because not found in the object":"Nie można zaktualizować atrybutu, ponieważ nie znaleziono go w obiekcie","ra_Cannot upload":"Nie można przesłać",ra_Categories:Uit,"ra_Chained certificate":"Certyfikat łańcuchowy","ra_Change color theme":"Zmień motyw kolorystyczny","ra_Changed from":"Zmieniony z","ra_Channel → State":"Kanał → Stan","ra_Check license":"Sprawdź licencję",ra_Checked:Yit,ra_Clear:Vit,"ra_Clear filter":"Czysty filtr","ra_Clear icon":"Wyczyść ikonę","ra_Clone current row":"Sklonuj bieżący wiersz",ra_Close:Git,"ra_Collapse all nodes":"Zwiń wszystkie węzły","ra_Collapse one step node":"Zwiń o jeden poziom",ra_Commercial:qit,ra_Configure:Xit,"ra_Configure visible columns":"Skonfiguruj widoczne kolumny","ra_Confirm deletion of %s":"Potwierdź usunięcie %s",ra_Connected:Jit,ra_Copied:Zit,"ra_Copied %s":'Skopiowano "%s"',"ra_Copy content":"Kopiuj zawartość",ra_Create:Kit,"ra_Create alias":"Utwórz alias","ra_Create folder":"Utwórz folder","ra_Create new folder in %s":"Utwórz nowy folder w %s",ra_Crop:Qit,"ra_Define CRON...":"Zdefiniuj CRON...","ra_Define functions":"Zdefiniuj funkcje","ra_Define rooms":"Zdefiniuj pokoje","ra_Define schedule":"Zdefiniuj harmonogram","ra_Define schedule...":"Zdefiniuj harmonogram ...",ra_Del:eot,ra_Delete:tot,"ra_Delete (no confirm for 5 mins)":"Usuń (bez potwierdzenia przez 5 minut)","ra_Delete current row":"Usuń bieżący wiersz","ra_Deselect all":"Odznacz wszystko","ra_Device → Channel → State":"Urządzenie → Kanał → Stan",ra_Discard:rot,ra_Disconnected:not,"ra_Do not export values of states":"Nie eksportuj wartości stanów","ra_Do not use let's encrypt":"Nie używaj zaszyfrujmy","ra_Double click to reset table layout":"Kliknij dwukrotnie, aby zresetować układ tabeli","ra_Drag 'n' drop some files here, or click to select files":"Przeciągnij i upuść kilka plików tutaj lub kliknij, aby wybrać pliki","ra_Drop file here":"Upuść plik tutaj","ra_Drop the files here...":"Upuść plik tutaj...","ra_Duplicate name":"Zduplikowana nazwa","ra_Edit ACL":"Edytuj listy ACL","ra_Edit alias":"Edytuj alias","ra_Edit custom config":"Edytuj konfigurację niestandardową","ra_Edit function":"Funkcja edycji","ra_Edit object field":"Edytuj pole obiektu","ra_Edit role":"Edytuj rolę","ra_Edit room":"Edytuj pokój","ra_Edit value":"Edytuj wartość",ra_Error:aot,"ra_Expand all nodes":"Rozwiń wszystkie węzły","ra_Expand one step node":"Rozwiń o jeden poziom","ra_Export data to %s file":"Eksportuj dane do pliku %s","ra_Failed to open JSON File":"Nie udało się otworzyć pliku JSON","ra_Fallback custom certificates":"Niestandardowe certyfikaty zastępcze","ra_File is too big. Max %sk allowed. Try use SVG.":"Plik jest za duży. Maksymalna dozwolona liczba %sk. Spróbuj użyć SVG.",ra_Filter:iot,"ra_Filter files":"Filtruj pliki","ra_Folder name":"Nazwa folderu","ra_Folder → Channel → State":"Folder → Kanał → Stan","ra_Folder → Device → Channel → State":"Folder → Urządzenie → Kanał → Stan","ra_Folder → State":"Folder → Stan","ra_Folders always first":"Foldery zawsze na pierwszym miejscu",ra_Friday:oot,"ra_Good luck":"Powodzenia","ra_Hide empty folders":"Ukryj puste foldery","ra_If no file will be created in the folder, it will disappear after the browser closed":"Jeśli w folderze nie zostanie utworzony żaden plik, zniknie on po zamknięciu przeglądarki","ra_Import data from %s file":"Importuj dane z pliku %s","ra_Import from %s":"Importuj z %s","ra_Instance %s is alive":"Instancja %s jest aktywna","ra_Instance %s is not alive":"Instancja TEKST nie jest aktywna","ra_Instance is not alive":"Instancja nie jest aktywna","ra_Invalid CRON":"Nieprawidłowy CRON","ra_Invalid JSON":"Nieprawidłowy JSON","ra_Invalid answer from server":"Nieprawidłowa odpowiedź z serwera","ra_Invalid parent folder!":"Nieprawidłowy folder nadrzędny!","ra_Invalid structure":"Nieprawidłowa struktura","ra_JSON editor":"Edytor JSON","ra_Last change":"Ostatnia zmiana",ra_Latitude:sot,"ra_License %s":"Licencja %s","ra_License agreement":"Umowa licencyjna","ra_License does not exist":"Licencja nie istnieje","ra_License expired on %s":"Licencja wygasła w dniu %s",'ra_License for other product "%s"':"Licencja na inny produkt „%s”","ra_License is for version %s, but required version is %s.":"Licencja dotyczy wersji %s, ale wymagana wersja to %s.","ra_License must be converted":"Licencja musi zostać przekonwertowana na nowszą wersję. Możesz to zrobić w swoim profilu iobroker.net.","ra_License not found in license manager. Do you want to read licenses from iobroker.net?":"Nie znaleziono licencji w menedżerze licencji. Chcesz zaktualizować licencje z iobroker.net?","ra_Listen on all IPs":"Słuchaj na wszystkich adresach IP","ra_Load configuration from file":"Załaduj konfigurację z pliku",ra_Longitude:lot,'ra_May not trigger "updateLicenses"':"Może nie uruchamiać „updateLicenses”",ra_Message:cot,ra_Monday:uot,"ra_Move down":"Padnij","ra_Move up":"Podnieść",ra_Name:dot,"ra_No data found in file":"Nie znaleziono danych w pliku","ra_No one license found in license manager":"Nie znaleziono licencji w menedżerze licencji","ra_No response from the backend":"Brak odpowiedzi z zaplecza",'ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".':"Osoby nie będące ekspertami mogą tworzyć nowe obiekty tylko w „0_userdata.0” lub „alias.0”.","ra_Not a number":"Nie numer",ra_Objects:fot,ra_Ok:hot,"ra_On weekdays":"W dni powszednie","ra_Only following structures of objects are available:":"Dostępne są tylko następujące struktury obiektów:","ra_Only selected":"Tylko wybrane","ra_Owner group":"Grupa właścicieli","ra_Owner user":"Właściciel użytkownika","ra_Passwords are not equal!":"Hasła nie są równe!","ra_Place your files here or click here to open the browse dialog":"Umieść swoje pliki tutaj lub kliknij tutaj, aby otworzyć okno dialogowe przeglądania","ra_Please confirm":"Proszę potwierdzić","ra_Please create license":"Utwórz licencję","ra_Please enter the license":"Proszę wprowadzić licencję","ra_Please select file...":"Wybierz plik...","ra_Please select object ID...":"Wybierz identyfikator obiektu ...","ra_Port could be used by %s":"Port może być używany przez %s","ra_Port is already used by %s":"Port jest już używany przez %s","ra_Private certificate":"Prywatny certyfikat",ra_Product:pot,"ra_Public certificate":"Certyfikat publiczny","ra_Quality code":"Jakości","ra_Refresh tree":"Odśwież drzewo","ra_Reload files":"Załaduj ponownie pliki",ra_Repeat:mot,ra_Replace:vot,"ra_Request timed out":"Upłynął limit czasu żądania","ra_Restrict to folder":"Ogranicz do folderu",ra_Root:got,ra_Saturday:_ot,ra_Save:yot,"ra_Save and close":"Zapisz i zamknij","ra_Save configuration to file":"Zapisz konfigurację do pliku","ra_Save objects tree as JSON file":"Zapisz drzewo obiektów jako plik JSON","ra_Select all":"Zaznacz wszystko","ra_Select color":"Wybierz kolor","ra_Select predefined icon":"Wybierz predefiniowaną ikonę","ra_Select type of export":"Wybierz rodzaj eksportu",ra_Selected:bot,"ra_Selected %s object(s)":"Wybrane obiekty %s","ra_Serial number (UUID)":"Numer seryjny (UUID)",'ra_Serial number (UUID) "%s" in license is for other device.':"Numer seryjny (UUID) „%s” w licencji dotyczy innego urządzenia.","ra_Show all folders":"Pokaż wszystkie foldery","ra_Show lines between rows":"Pokaż linie między rzędami","ra_Show/Hide object descriptions":"Pokaż/ukryj opisy obiektów","ra_Show/hide filter input":"Pokaż/ukryj wejście filtra","ra_Some data are not stored. Discard?":"Niektóre dane nie są przechowywane. Wyrzucać?",ra_States:wot,"ra_Suitable license not found in license manager":"Nie znaleziono odpowiedniej licencji w menedżerze licencji",ra_Sunday:Sot,"ra_Suppress question for next %s minutes":"Ukryj pytanie przez następne %s minut","ra_System language":"Język systemu","ra_Take browser position":"Zajmij pozycję z przeglądarki","ra_Take position from system settings":"Zajmij pozycję z ustawień systemowych",'ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").':"Eksperci mogą tworzyć obiekty wszędzie poza drugim poziomem (np. „Vis.0” lub „javascript.0”).","ra_The page you are looking for was not found":"Strona, której szukasz nie została znaleziona","ra_The schedule will be executed every minute. Are you sure?":"Harmonogram będzie wykonywany co minutę. Czy jesteś pewien?","ra_The schedule will be executed every second. Are you sure?":"Harmonogram będzie wykonywany co sekundę. Czy jesteś pewien?",ra_Thursday:xot,ra_Timestamp:Cot,"ra_Toggle expert mode":"Przełącz tryb eksperta","ra_Toggle the states view":"Przełącz widok stanów","ra_Toggle view mode":"Przełącz tryb widoku","ra_Too big":"Za duży","ra_Too small":"Za mały","ra_Transparent dialog":"Przejrzyste okno dialogowe",ra_Tuesday:Tot,"ra_Unknown error":"Nieznany błąd","ra_Unknown error!":"Nieznany błąd!",ra_Update:kot,"ra_Upload file":"Przesyłanie pliku","ra_Use all available let's encrypt certificates":"Użyj wszystkich dostępnych certyfikatów Let's Encrypt","ra_Use iobroker.acme adapter for letsencrypt certificates":"Użyj adaptera iobroker.acme dla certyfikatów letsencrypt","ra_Use system settings for position":"Użyj ustawień systemowych dla pozycji","ra_Used system settings":"Używane ustawienia systemowe","ra_User files":"Pliki użytkownika",ra_ValidTill:Eot,ra_Value:Dot,ra_Version:Mot,"ra_View file":"Zobaczyć plik","ra_View: %s":"Widok: %s",ra_Wednesday:Oot,ra_Width:$ot,ra_Yes:Aot,"ra_You can export all objects or just the selected branch.":"Możesz wyeksportować wszystkie obiekty lub tylko wybraną gałąź.","ra_You can filter entries by entering here some text":"Możesz filtrować wpisy, wpisując tutaj jakiś tekst",ra___different__:Pot,ra_aclEveryone_read_object:Iot,ra_aclEveryone_read_state:Rot,ra_aclEveryone_write_object:Lot,ra_aclEveryone_write_state:Not,ra_aclGroup_read_object:Fot,ra_aclGroup_read_state:zot,ra_aclGroup_write_object:Bot,ra_aclGroup_write_state:jot,ra_aclOwner_read_object:Wot,ra_aclOwner_read_state:Hot,ra_aclOwner_write_object:Uot,ra_aclOwner_write_state:Yot,ra_buttons:Vot,ra_changedFrom:Got,ra_close:qot,ra_create_boolean_state:Xot,ra_create_channel:Jot,ra_create_device:Zot,ra_create_number_state:Kot,ra_create_state:Qot,ra_create_string_state:est,ra_daysShortText:tst,ra_dow_Fr:rst,ra_dow_Mo:nst,ra_dow_Sa:ast,ra_dow_Su:ist,ra_dow_Th:ost,ra_dow_Tu:sst,ra_dow_We:lst,ra_expertMode:cst,ra_fileType_all:ust,ra_fileType_audio:dst,ra_fileType_code:fst,ra_fileType_images:hst,ra_fileType_txt:pst,ra_fileType_video:mst,"ra_fileType_video,":"Wideo",ra_filter_customs:vst,ra_filter_customs_without:gst,ra_filter_func:_st,ra_filter_id:yst,ra_filter_name:bst,ra_filter_role:wst,ra_filter_room:Sst,ra_filter_type:xst,"ra_import data from %s file":"Importuj dane z pliku %s",ra_invalidConfig:Cst,ra_lastChange:Tst,ra_locally:kst,ra_month_Apr:Est,ra_month_Aug:Dst,ra_month_Dec:Mst,ra_month_Feb:Ost,ra_month_Jan:$st,ra_month_Jul:Ast,ra_month_Jun:Pst,ra_month_Mai:Ist,ra_month_Mar:Rst,ra_month_Nov:Lst,ra_month_Oct:Nst,ra_month_Sep:Fst,ra_months_Apr:zst,ra_months_Aug:Bst,ra_months_Dec:jst,ra_months_Feb:Wst,ra_months_Jan:Hst,ra_months_Jul:Ust,ra_months_Jun:Yst,ra_months_Mai:Vst,ra_months_Mar:Gst,ra_months_Nov:qst,ra_months_Oct:Xst,ra_months_Sep:Jst,ra_none:Zst,ra_object_changed_by:Kst,ra_object_changed_by_user:Qst,ra_otherConfig:elt,ra_qualityCode:tlt,ra_repeat:rlt,ra_select_folder_hint:nlt,ra_state_changed_by:alt,ra_state_changed_from:ilt,ra_timestamp:olt,ra_tooltip_ack:slt,ra_tooltip_comment:llt,ra_tooltip_copyState:clt,ra_tooltip_customConfig:ult,ra_tooltip_deleteObject:dlt,ra_tooltip_editObject:flt,ra_tooltip_editState:hlt,ra_tooltip_from:plt,ra_tooltip_lc:mlt,ra_tooltip_quality:vlt,ra_tooltip_ts:glt,ra_tooltip_user:_lt,ra_tooltip_value:ylt,"ra_use seconds":"użyj sekund",ra_val:blt,"ra_via internet":"przez internet",ra_warning_every_minute:wlt,ra_warning_every_second:Slt,sc_cron:xlt,sc_date:Clt,sc_dates:Tlt,sc_dow:klt,sc_dows:Elt,sc_every:Dlt,sc_everyN_dates:Mlt,sc_everyN_dow:Olt,sc_everyN_dows:$lt,sc_everyN_hours:Alt,sc_everyN_minutes:Plt,sc_everyN_months:Ilt,sc_everyN_seconds:Rlt,sc_every_dates:Llt,sc_every_dow:Nlt,sc_every_dows:Flt,sc_every_hours:zlt,sc_every_minutes:Blt,sc_every_months:jlt,sc_every_seconds:Wlt,sc_from:Hlt,sc_hours:Ult,sc_interval:Ylt,sc_intervalBetween:Vlt,sc_invalid_cron:Glt,sc_minutes:qlt,sc_months:Xlt,sc_once:Jlt,sc_period:Zlt,sc_seconds:Klt,sc_simple:Qlt,sc_specific:ect,sc_specific_dates:tct,sc_specific_dow:rct,sc_specific_dows:nct,sc_specific_hours:act,sc_specific_minutes:ict,sc_specific_months:oct,sc_specific_seconds:sct,sc_time:lct,sc_to:cct,sc_wizard:uct,sch_all:dct,sch_astroDay:fct,sch_astroNight:hct,sch_astro_dawn:pct,sch_astro_dusk:mct,sch_astro_goldenHour:vct,sch_astro_goldenHourEnd:gct,sch_astro_nadir:_ct,sch_astro_nauticalDawn:yct,sch_astro_nauticalDusk:bct,sch_astro_night:wct,sch_astro_nightEnd:Sct,sch_astro_solarNoon:xct,sch_astro_sunrise:Cct,sch_astro_sunriseEnd:Tct,sch_astro_sunset:kct,sch_astro_sunsetStart:Ect,sch_at:Dct,sch_desc_atTime:Mct,sch_desc_everyDay:Oct,sch_desc_everyHour:$ct,sch_desc_everyMinute:Act,sch_desc_everyMonth:Pct,sch_desc_everyNDay:Ict,sch_desc_everyNHours:Rct,sch_desc_everyNMinutes:Lct,sch_desc_everyNMonths:Nct,sch_desc_everyNWeeks:Fct,sch_desc_everyNYears:zct,sch_desc_everyWeek:Bct,sch_desc_everyYear:jct,sch_desc_intervalFromTo:Wct,sch_desc_never:Hct,sch_desc_onDate:Uct,sch_desc_onDates:Yct,sch_desc_onEveryDate:Vct,sch_desc_onMonth:Gct,sch_desc_onMonths:qct,sch_desc_onWeekday:Xct,sch_desc_onWeekdays:Jct,sch_desc_onWeekends:Zct,sch_desc_onWorkdays:Kct,sch_desc_onceInPast:Qct,sch_desc_once_on:eut,sch_desc_validFrom:tut,sch_desc_validFromTo:rut,sch_desc_validTo:nut,sch_every:aut,sch_exactTime:iut,sch_from:out,sch_fromTo:sut,sch_intervalTime:lut,sch_invert:cut,sch_no_one:uut,sch_on:dut,sch_period:fut,sch_periodDaily:hut,sch_periodDates:put,sch_periodDay:mut,sch_periodEvery:vut,sch_periodEveryDay:gut,sch_periodEveryMonth:_ut,sch_periodEveryWeek:yut,sch_periodEveryYear:but,sch_periodHours:wut,sch_periodMinutes:Sut,sch_periodMonth:xut,sch_periodMonthly:Cut,sch_periodOnce:Tut,sch_periodSpecificMonths:kut,sch_periodWeek:Eut,sch_periodWeekdays:Dut,sch_periodWeekend:Mut,sch_periodWeekly:Out,sch_periodWorkdays:$ut,sch_periodYear:Aut,sch_periodYearly:Put,sch_specificTime:Iut,sch_time:Rut,sch_to:Lut,sch_valid:Nut,sch_validFrom:Fut,sch_validTo:zut,sch_wholeDay:But,sch_yearEveryMonth:jut},Hut="Додайте",Uut="Скасувати",Yut="Категорії",Vut="Перевірено",Gut="Видалити",qut="Закрити",Xut="Комерційний",Jut="Налаштувати",Zut="Підключено",Kut="Скопійовано",Qut="Створити",edt="Урожай",tdt="Delete",rdt="Видалити",ndt="Відкинути",adt="Відключено",idt="Помилка",odt="фільтр",sdt="П'ятниця",ldt="Широта",cdt="Довгота",udt="повідомлення",ddt="понеділок",fdt="Ім'я",hdt="Об'єкти",pdt="В порядку",mdt="Продукт",vdt="Повторіть",gdt="Замінити",_dt="Корінь",ydt="Субота",bdt="зберегти",wdt="Вибране",Sdt="держави",xdt="неділя",Cdt="четвер",Tdt="Мітка часу",kdt="вівторок",Edt="оновлення",Ddt="Дійсний до",Mdt="Значення",Odt="Версія",$dt="Середа",Adt="Ширина",Pdt="Так",Idt="інший",Rdt="Кожен може читати об'єкт",Ldt="Кожен може читати стан",Ndt="Кожен може написати об'єкт",Fdt="Кожен може написати стан",zdt="Група може читати об'єкт",Bdt="Група може читати стан",jdt="Група може писати об'єкт",Wdt="Група може писати стан",Hdt="Власник може читати об'єкт",Udt="Власник може читати стан",Ydt="Власник може написати об'єкт",Vdt="Власник може написати стан",Gdt="кнопки",qdt="Змінено з",Xdt="закрити",Jdt="Створіть логічний стан",Zdt="Створити канал",Kdt="Створити пристрій",Qdt="Створити номерний стан",eft="Створити состояние",tft="Створити рядковий стан",rft="днів",nft="О",aft="пн",ift="Sa",oft="Нд",sft="чт",lft="вт",cft="ми",uft="Експертний режим",dft="Всі файли",fft="Аудіо",hft="Код/JSON",pft="Зображення",mft="текст",vft="відео",gft="Налаштування",_ft="без",yft="функція",bft="ID",wft="Ім'я",Sft="Роль",xft="Кімната",Cft="Тип",Tft="Недійсні налаштування",kft="Остання зміна",Eft="локально",Dft="квіт",Mft="серп",Oft="груд",$ft="лютий",Aft="січня",Pft="лип",Ift="черв",Rft="травень",Lft="березень",Nft="Листопад",Fft="жовт",zft="вер",Bft="квіт",jft="серп",Wft="груд",Hft="лютий",Uft="січня",Yft="лип",Vft="черв",Gft="травень",qft="березень",Xft="Листопад",Jft="жовт",Zft="вер",Kft="немає",Qft="Об'єкт змінено",eht="Об'єкт востаннє змінено о",tht="Налаштування з іншого адаптера %s",rht="Код якості",nht="повторити",aht="Щоб вибрати папку, просто клацніть папку, утримуючи клавішу «Shift».",iht="Стан змінено на",oht="Об'єкт змінено з",sht="Мітка часу",lht="Визнано",cht="коментар",uht="Скопіюйте значення стану",dht="Спеціальні налаштування",fht="Видалити об'єкт",hht="Редагувати об'єкт",pht="Відредагуйте значення стану",mht="Від",vht="Востаннє змінено",ght="якість",_ht="Позначка часу",yht="Користувач",bht="Значення",wht="Значення",Sht="Попередження: завдання CRON виконуватиметься щохвилини протягом зазначеного періоду!",xht="Попередження: завдання CRON виконуватиметься кожну секунду протягом зазначеного періоду!",Cht="CRON",Tht="Дата",kht="дати",Eht="День",Dht="День тижня",Mht="кожен",Oht="кожні N днів",$ht="кожен N-й день тижня",Aht="кожні N днів тижня",Pht="кожні N годин",Iht="кожні N хвилин",Rht="кожні N місяців",Lht="кожні N секунд",Nht="кожен день",Fht="кожен день тижня",zht="кожен день тижня",Bht="щогодини",jht="кожну хвилину",Wht="щомісяця",Hht="кожна секунда",Uht="Від",Yht="години",Vht="Інтервал",Ght="Інтервал між",qht="Недійсний CRON",Xht="хвилин",Jht="місяців",Zht="Один раз",Kht="Крапка",Qht="секунд",ept="просто",tpt="Конкретний час",rpt="конкретні дати",npt="конкретний день (дні) тижня",apt="конкретний день тижня",ipt="конкретні години",opt="конкретні хвилини",spt="конкретні місяці",lpt="конкретні секунди",cpt="час",upt="до",dpt="майстер",fpt="все",hpt="Астродень",ppt="Астро ніч",mpt="Світанок",vpt="Сутінки",gpt="Золота година",_pt="Кінець золотої години",ypt="Надір",bpt="Морський світанок",wpt="Морські сутінки",Spt="ніч",xpt="Кінець ночі",Cpt="Сонячний полудень",Tpt="Схід сонця",kpt="Кінець сходу сонця",Ept="Захід сонця",Dpt="Початок заходу сонця",Mpt="в",Opt="в %s",$pt="кожен день",Apt="щогодини",Ppt="кожну хвилину",Ipt="щомісяця",Rpt="кожен %s день",Lpt="кожні %s годин",Npt="кожні %s хвилин",Fpt="кожні %s місяців",zpt="кожні %s тижнів",Bpt="кожні %s років",jpt="щотижня",Wpt="щороку",Hpt="від %s до %s",Upt="ніколи",Ypt="на %s з %s",Vpt="на %s і %s з",Gpt="на кожну дату",qpt="%s",Xpt="%s і %s",Jpt="на %s",Zpt="на %s і %s",Kpt="на вихідних",Qpt="в робочі дні",emt="більше не виконуватиметься, оскільки запуск у минулому",tmt="на %s",rmt="від %s",nmt="Виконати від до",amt="до %s",imt="кожен",omt="Конкретний час",smt="від",lmt="Від до",cmt="Час інтервалу",umt="інвертувати",dmt="немає",fmt="на",hmt="Крапка",pmt="Щодня",mmt="дати",vmt="День",gmt="кожен",_mt="Кожен день",ymt="Щомісяця",bmt="Щотижня",wmt="Щороку",Smt="години",xmt="хвилин",Cmt="місяць",Tmt="Щомісяця",kmt="Один раз",Emt="Конкретні місяці",Dmt="тиждень",Mmt="будні",Omt="Вихідні",$mt="Щотижня",Amt="робочі дні",Pmt="рік",Imt="щорічно",Rmt="Конкретний час",Lmt="час",Nmt="до",Fmt="Дійсний",zmt="від",Bmt="до",jmt="Цілий день",Wmt="щомісяця",Hmt={"ra_%s links from aliases":"%s посилань із псевдонімів","ra_%s object(s) processed":"Оброблено %s об’єктів","ra_%s was imported":"%s було імпортовано","ra_Accept license":"Прийняти ліцензію","ra_Add new child object to selected parent":"Додати новий дочірній об’єкт до вибраного батьківського","ra_Add objects tree from JSON file":"Додайте дерево об’єктів із файлу JSON","ra_Add row":"Додати рядок","ra_Advanced options":"Розширені опції","ra_All items are filtered out":"Усі елементи відфільтровано","ra_All objects":"Всі об'єкти",ra_Append:Hut,"ra_Append %s entries or replace existing?":"Додати %s записів чи замінити наявні?","ra_Append or replace?":"Додати чи замінити?","ra_Are you sure?":"Ти впевнений?","ra_Auto (no custom columns)":"Автоматично (без спеціальних стовпців)","ra_Back to %s":"Назад до %s","ra_Background image":"Фонове зображення",ra_Cancel:Uut,"ra_Cannot add items with set filter":"Неможливо додати елементи зі встановленим фільтром","ra_Cannot decode license":"Неможливо розшифрувати ліцензію","ra_Cannot determine position: System settings are empty and GPS detection is disabled in browser":"Неможливо визначити положення: системні налаштування порожні, а визначення GPS вимкнено в браузері",'ra_Cannot find "%s"':'Не вдається знайти "%s"','ra_Cannot read "%s"':'Неможливо прочитати "%s"',"ra_Cannot read licenses: %s":"Неможливо прочитати ліцензії: %s","ra_Cannot retrieve options, as instance is offline":"Неможливо отримати параметри, оскільки екземпляр офлайн","ra_Cannot update attribute, because not found in the object":"Неможливо оновити атрибут, оскільки його не знайдено в об’єкті","ra_Cannot upload":"Неможливо завантажити",ra_Categories:Yut,"ra_Chained certificate":"Прикутий сертифікат","ra_Change color theme":"Змінити кольорову тему","ra_Changed from":"Змінено з","ra_Channel → State":"Канал → Стан","ra_Check license":"Перевірити ліцензію",ra_Checked:Vut,ra_Clear:Gut,"ra_Clear filter":"Очистити фільтр","ra_Clear icon":"Очистити значок","ra_Clone current row":"Клонувати поточний рядок",ra_Close:qut,"ra_Collapse all nodes":"Згорнути всі вузли","ra_Collapse one step node":"Згорнути на один рівень",ra_Commercial:Xut,ra_Configure:Jut,"ra_Configure visible columns":"Налаштувати видимі стовпці","ra_Confirm deletion of %s":"Підтвердити видалення %s",ra_Connected:Zut,ra_Copied:Kut,"ra_Copied %s":'Скопійовано "%s"',"ra_Copy content":"Скопіюйте вміст",ra_Create:Qut,"ra_Create alias":"Створити псевдонім","ra_Create folder":"Створити папку","ra_Create new folder in %s":"Створіть нову папку в %s",ra_Crop:edt,"ra_Define CRON...":"Визначити CRON...","ra_Define functions":"Визначити функції","ra_Define rooms":"Визначте кімнати","ra_Define schedule":"Визначити розклад","ra_Define schedule...":"Визначити розклад...",ra_Del:tdt,ra_Delete:rdt,"ra_Delete (no confirm for 5 mins)":"Видалити (без підтвердження протягом 5 хвилин)","ra_Delete current row":"Видалити поточний рядок","ra_Deselect all":"Скасувати вибір усіх","ra_Device → Channel → State":"Пристрій → Канал → Стан",ra_Discard:ndt,ra_Disconnected:adt,"ra_Do not export values of states":"Не експортуйте значення станів","ra_Do not use let's encrypt":"Не використовуйте let's encrypt","ra_Double click to reset table layout":"Двічі клацніть, щоб скинути макет таблиці","ra_Drag 'n' drop some files here, or click to select files":"Перетягніть деякі файли сюди або натисніть, щоб вибрати файли","ra_Drop file here":"Перетягніть файл сюди","ra_Drop the files here...":"Перетягніть файл сюди...","ra_Duplicate name":"Повторюване ім'я","ra_Edit ACL":"Редагувати ACL","ra_Edit alias":"Редагувати псевдонім","ra_Edit custom config":"Редагувати спеціальну конфігурацію","ra_Edit function":"функція редагування","ra_Edit object field":"Поле редагування об'єкта","ra_Edit role":"Редагувати роль","ra_Edit room":"Редагувати кімнату","ra_Edit value":"Редагувати значення",ra_Error:idt,"ra_Expand all nodes":"Розгорнути всі вузли","ra_Expand one step node":"Розгорніть один рівень","ra_Export data to %s file":"Експортувати дані у файл %s","ra_Failed to open JSON File":"Не вдалося відкрити файл JSON","ra_Fallback custom certificates":"Запасні спеціальні сертифікати","ra_File is too big. Max %sk allowed. Try use SVG.":"Файл завеликий. Максимально дозволено %sk. Спробуйте використовувати SVG.",ra_Filter:odt,"ra_Filter files":"Фільтр файлів","ra_Folder name":"Назва папки","ra_Folder → Channel → State":"Папка → Канал → Стан","ra_Folder → Device → Channel → State":"Папка → Пристрій → Канал → Стан","ra_Folder → State":"Папка → Стан","ra_Folders always first":"Папки завжди першими",ra_Friday:sdt,"ra_Good luck":"Удачі","ra_Hide empty folders":"Приховати порожні папки","ra_If no file will be created in the folder, it will disappear after the browser closed":"Якщо в папці не буде створено файл, він зникне після закриття браузера","ra_Import data from %s file":"Імпортувати дані з файлу %s","ra_Import from %s":"Імпортувати з %s","ra_Instance %s is alive":"Примірник %s живий","ra_Instance %s is not alive":"Примірник %s не живий","ra_Instance is not alive":"Примірник не живий","ra_Invalid CRON":"Недійсний CRON","ra_Invalid JSON":"Недійсний JSON","ra_Invalid answer from server":"Недійсна відповідь від сервера","ra_Invalid parent folder!":"Недійсна батьківська папка!","ra_Invalid structure":"Недійсна структура","ra_JSON editor":"Редактор JSON","ra_Last change":"Остання зміна",ra_Latitude:ldt,"ra_License %s":"Ліцензія %s","ra_License agreement":"Ліцензійна угода","ra_License does not exist":"Ліцензії не існує","ra_License expired on %s":"Термін дії ліцензії закінчився %s",'ra_License for other product "%s"':'Ліцензія на інший продукт "%s"',"ra_License is for version %s, but required version is %s.":"Ліцензія для версії %s, але потрібна версія %s.","ra_License must be converted":"Ліцензію необхідно конвертувати до новішої версії. Ви можете зробити це у своєму профілі на iobroker.net.","ra_License not found in license manager. Do you want to read licenses from iobroker.net?":"Ліцензія не знайдена в менеджері ліцензій. Хочете оновити ліцензії з iobroker.net?","ra_Listen on all IPs":"Прослуховування на всіх IP","ra_Load configuration from file":"Завантажити конфігурацію з файлу",ra_Longitude:cdt,'ra_May not trigger "updateLicenses"':'Може не запускати "updateLicenses"',ra_Message:udt,ra_Monday:ddt,"ra_Move down":"Рухатися вниз","ra_Move up":"Рухатися вгору",ra_Name:fdt,"ra_No data found in file":"Немає даних у файлі","ra_No one license found in license manager":"У менеджері ліцензій не знайдено жодної ліцензії","ra_No response from the backend":"Немає відповіді від сервера",'ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".':"Неексперти можуть створювати нові об’єкти лише в «0_userdata.0» або «alias.0».","ra_Not a number":"Не номер",ra_Objects:hdt,ra_Ok:pdt,"ra_On weekdays":"В будні дні","ra_Only following structures of objects are available:":"Доступні тільки такі структури об'єктів:","ra_Only selected":"Тільки обрані","ra_Owner group":"Група власників","ra_Owner user":"Користувач-власник","ra_Passwords are not equal!":"Паролі не бувають рівними!","ra_Place your files here or click here to open the browse dialog":"Розмістіть свої файли тут або натисніть тут, щоб відкрити діалогове вікно перегляду","ra_Please confirm":"Будь-ласка підтвердіть","ra_Please create license":"Будь ласка, створіть ліцензію","ra_Please enter the license":"Будь ласка, введіть ліцензію","ra_Please select file...":"Виберіть файл...","ra_Please select object ID...":"Виберіть ідентифікатор об'єкта...","ra_Port could be used by %s":"Порт може використовуватися %s","ra_Port is already used by %s":"Порт уже використовується %s","ra_Private certificate":"Приватний сертифікат",ra_Product:mdt,"ra_Public certificate":"Публічний сертифікат","ra_Quality code":"якість","ra_Refresh tree":"Оновити дерево","ra_Reload files":"Перезавантажте файли",ra_Repeat:vdt,ra_Replace:gdt,"ra_Request timed out":"Час запиту вичерпано","ra_Restrict to folder":"Обмежити папкою",ra_Root:_dt,ra_Saturday:ydt,ra_Save:bdt,"ra_Save and close":"Зберегти та закрити","ra_Save configuration to file":"Зберегти конфігурацію у файл","ra_Save objects tree as JSON file":"Зберегти дерево об’єктів як файл JSON","ra_Select all":"Вибрати все","ra_Select color":"Виберіть колір","ra_Select predefined icon":"Виберіть попередньо визначений значок","ra_Select type of export":"Виберіть тип експорту",ra_Selected:wdt,"ra_Selected %s object(s)":"Вибрані об’єкти %s","ra_Serial number (UUID)":"Серійний номер (UUID)",'ra_Serial number (UUID) "%s" in license is for other device.':'Серійний номер (UUID) "%s" у ліцензії призначений для іншого пристрою.',"ra_Show all folders":"Показати всі папки","ra_Show lines between rows":"Показувати лінії між рядками","ra_Show/Hide object descriptions":"Показати/Сховати описи об’єктів","ra_Show/hide filter input":"Показати/сховати введення фільтра","ra_Some data are not stored. Discard?":"Деякі дані не зберігаються. Відкинути?",ra_States:Sdt,"ra_Suitable license not found in license manager":"Відповідна ліцензія не знайдена в менеджері ліцензій",ra_Sunday:xdt,"ra_Suppress question for next %s minutes":"Приховати запитання на наступні %s хвилин","ra_System language":"Системна мова","ra_Take browser position":"Займіть позицію з браузера","ra_Take position from system settings":"Займіть позицію в налаштуваннях системи",'ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").':"Експерти можуть створювати об’єкти всюди, крім другого рівня (наприклад, «vis.0» або «javascript.0»).","ra_The page you are looking for was not found":"Сторінка, яку ви шукаєте, не знайдена","ra_The schedule will be executed every minute. Are you sure?":"Розклад буде виконуватися щохвилини. Ви впевнені?","ra_The schedule will be executed every second. Are you sure?":"Розклад буде виконуватися щосекунди. Ви впевнені?",ra_Thursday:Cdt,ra_Timestamp:Tdt,"ra_Toggle expert mode":"Перемкнути експертний режим","ra_Toggle the states view":"Перемкнути перегляд штатів","ra_Toggle view mode":"Перемкнути режим перегляду","ra_Too big":"Занадто великий","ra_Too small":"Занадто малий","ra_Transparent dialog":"Прозорий діалог",ra_Tuesday:kdt,"ra_Unknown error":"Невідома помилка","ra_Unknown error!":"Невідома помилка!",ra_Update:Edt,"ra_Upload file":"Завантажити файл","ra_Use all available let's encrypt certificates":"Використовуйте всі доступні сертифікати let's encrypt","ra_Use iobroker.acme adapter for letsencrypt certificates":"Використовуйте адаптер iobroker.acme для сертифікатів letsencrypt","ra_Use system settings for position":"Використовуйте системні налаштування для позиції","ra_Used system settings":"Використані системні налаштування","ra_User files":"Файли користувача",ra_ValidTill:Ddt,ra_Value:Mdt,ra_Version:Odt,"ra_View file":"Переглянути файл","ra_View: %s":"Перегляд: %s",ra_Wednesday:$dt,ra_Width:Adt,ra_Yes:Pdt,"ra_You can export all objects or just the selected branch.":"Ви можете експортувати всі об’єкти або лише вибрану гілку.","ra_You can filter entries by entering here some text":"Ви можете фільтрувати записи, ввівши тут певний текст",ra___different__:Idt,ra_aclEveryone_read_object:Rdt,ra_aclEveryone_read_state:Ldt,ra_aclEveryone_write_object:Ndt,ra_aclEveryone_write_state:Fdt,ra_aclGroup_read_object:zdt,ra_aclGroup_read_state:Bdt,ra_aclGroup_write_object:jdt,ra_aclGroup_write_state:Wdt,ra_aclOwner_read_object:Hdt,ra_aclOwner_read_state:Udt,ra_aclOwner_write_object:Ydt,ra_aclOwner_write_state:Vdt,ra_buttons:Gdt,ra_changedFrom:qdt,ra_close:Xdt,ra_create_boolean_state:Jdt,ra_create_channel:Zdt,ra_create_device:Kdt,ra_create_number_state:Qdt,ra_create_state:eft,ra_create_string_state:tft,ra_daysShortText:rft,ra_dow_Fr:nft,ra_dow_Mo:aft,ra_dow_Sa:ift,ra_dow_Su:oft,ra_dow_Th:sft,ra_dow_Tu:lft,ra_dow_We:cft,ra_expertMode:uft,ra_fileType_all:dft,ra_fileType_audio:fft,ra_fileType_code:hft,ra_fileType_images:pft,ra_fileType_txt:mft,ra_fileType_video:vft,"ra_fileType_video,":"відео",ra_filter_customs:gft,ra_filter_customs_without:_ft,ra_filter_func:yft,ra_filter_id:bft,ra_filter_name:wft,ra_filter_role:Sft,ra_filter_room:xft,ra_filter_type:Cft,"ra_import data from %s file":"Імпортувати дані з файлу %s",ra_invalidConfig:Tft,ra_lastChange:kft,ra_locally:Eft,ra_month_Apr:Dft,ra_month_Aug:Mft,ra_month_Dec:Oft,ra_month_Feb:$ft,ra_month_Jan:Aft,ra_month_Jul:Pft,ra_month_Jun:Ift,ra_month_Mai:Rft,ra_month_Mar:Lft,ra_month_Nov:Nft,ra_month_Oct:Fft,ra_month_Sep:zft,ra_months_Apr:Bft,ra_months_Aug:jft,ra_months_Dec:Wft,ra_months_Feb:Hft,ra_months_Jan:Uft,ra_months_Jul:Yft,ra_months_Jun:Vft,ra_months_Mai:Gft,ra_months_Mar:qft,ra_months_Nov:Xft,ra_months_Oct:Jft,ra_months_Sep:Zft,ra_none:Kft,ra_object_changed_by:Qft,ra_object_changed_by_user:eht,ra_otherConfig:tht,ra_qualityCode:rht,ra_repeat:nht,ra_select_folder_hint:aht,ra_state_changed_by:iht,ra_state_changed_from:oht,ra_timestamp:sht,ra_tooltip_ack:lht,ra_tooltip_comment:cht,ra_tooltip_copyState:uht,ra_tooltip_customConfig:dht,ra_tooltip_deleteObject:fht,ra_tooltip_editObject:hht,ra_tooltip_editState:pht,ra_tooltip_from:mht,ra_tooltip_lc:vht,ra_tooltip_quality:ght,ra_tooltip_ts:_ht,ra_tooltip_user:yht,ra_tooltip_value:bht,"ra_use seconds":"використовуйте секунди",ra_val:wht,"ra_via internet":"через інтернет",ra_warning_every_minute:Sht,ra_warning_every_second:xht,sc_cron:Cht,sc_date:Tht,sc_dates:kht,sc_dow:Eht,sc_dows:Dht,sc_every:Mht,sc_everyN_dates:Oht,sc_everyN_dow:$ht,sc_everyN_dows:Aht,sc_everyN_hours:Pht,sc_everyN_minutes:Iht,sc_everyN_months:Rht,sc_everyN_seconds:Lht,sc_every_dates:Nht,sc_every_dow:Fht,sc_every_dows:zht,sc_every_hours:Bht,sc_every_minutes:jht,sc_every_months:Wht,sc_every_seconds:Hht,sc_from:Uht,sc_hours:Yht,sc_interval:Vht,sc_intervalBetween:Ght,sc_invalid_cron:qht,sc_minutes:Xht,sc_months:Jht,sc_once:Zht,sc_period:Kht,sc_seconds:Qht,sc_simple:ept,sc_specific:tpt,sc_specific_dates:rpt,sc_specific_dow:npt,sc_specific_dows:apt,sc_specific_hours:ipt,sc_specific_minutes:opt,sc_specific_months:spt,sc_specific_seconds:lpt,sc_time:cpt,sc_to:upt,sc_wizard:dpt,sch_all:fpt,sch_astroDay:hpt,sch_astroNight:ppt,sch_astro_dawn:mpt,sch_astro_dusk:vpt,sch_astro_goldenHour:gpt,sch_astro_goldenHourEnd:_pt,sch_astro_nadir:ypt,sch_astro_nauticalDawn:bpt,sch_astro_nauticalDusk:wpt,sch_astro_night:Spt,sch_astro_nightEnd:xpt,sch_astro_solarNoon:Cpt,sch_astro_sunrise:Tpt,sch_astro_sunriseEnd:kpt,sch_astro_sunset:Ept,sch_astro_sunsetStart:Dpt,sch_at:Mpt,sch_desc_atTime:Opt,sch_desc_everyDay:$pt,sch_desc_everyHour:Apt,sch_desc_everyMinute:Ppt,sch_desc_everyMonth:Ipt,sch_desc_everyNDay:Rpt,sch_desc_everyNHours:Lpt,sch_desc_everyNMinutes:Npt,sch_desc_everyNMonths:Fpt,sch_desc_everyNWeeks:zpt,sch_desc_everyNYears:Bpt,sch_desc_everyWeek:jpt,sch_desc_everyYear:Wpt,sch_desc_intervalFromTo:Hpt,sch_desc_never:Upt,sch_desc_onDate:Ypt,sch_desc_onDates:Vpt,sch_desc_onEveryDate:Gpt,sch_desc_onMonth:qpt,sch_desc_onMonths:Xpt,sch_desc_onWeekday:Jpt,sch_desc_onWeekdays:Zpt,sch_desc_onWeekends:Kpt,sch_desc_onWorkdays:Qpt,sch_desc_onceInPast:emt,sch_desc_once_on:tmt,sch_desc_validFrom:rmt,sch_desc_validFromTo:nmt,sch_desc_validTo:amt,sch_every:imt,sch_exactTime:omt,sch_from:smt,sch_fromTo:lmt,sch_intervalTime:cmt,sch_invert:umt,sch_no_one:dmt,sch_on:fmt,sch_period:hmt,sch_periodDaily:pmt,sch_periodDates:mmt,sch_periodDay:vmt,sch_periodEvery:gmt,sch_periodEveryDay:_mt,sch_periodEveryMonth:ymt,sch_periodEveryWeek:bmt,sch_periodEveryYear:wmt,sch_periodHours:Smt,sch_periodMinutes:xmt,sch_periodMonth:Cmt,sch_periodMonthly:Tmt,sch_periodOnce:kmt,sch_periodSpecificMonths:Emt,sch_periodWeek:Dmt,sch_periodWeekdays:Mmt,sch_periodWeekend:Omt,sch_periodWeekly:$mt,sch_periodWorkdays:Amt,sch_periodYear:Pmt,sch_periodYearly:Imt,sch_specificTime:Rmt,sch_time:Lmt,sch_to:Nmt,sch_valid:Fmt,sch_validFrom:zmt,sch_validTo:Bmt,sch_wholeDay:jmt,sch_yearEveryMonth:Wmt},Umt="附加",Ymt="取消",Vmt="类别",Gmt="勾选",qmt="删除",Xmt="关",Jmt="商业的",Zmt="配置",Kmt="连接的",Qmt="复制的",evt="创建",tvt="庄稼",rvt="Delete",nvt="删除",avt="丢弃",ivt="断开连接",ovt="错误",svt="筛选",lvt="星期五",cvt="纬度",uvt="经度",dvt="信息",fvt="周一",hvt="姓名",pvt="对象",mvt="好",vvt="产品",gvt="重复",_vt="代替",yvt="根",bvt="周六",wvt="保存",Svt="已选",xvt="状态",Cvt="星期日",Tvt="周四",kvt="时间戳记",Evt="周二",Dvt="更新资料",Mvt="有效期至",Ovt="值",$vt="版本",Avt="周三",Pvt="宽度",Ivt="是的",Rvt="不同的",Lvt="每个人都可以阅读对象",Nvt="每个人都可以阅读状态",Fvt="每个人都可以写对象",zvt="每个人都可以写状态",Bvt="组可以读取对象",jvt="群组可以读取状态",Wvt="组可以写对象",Hvt="组可以写状态",Uvt="所有者可以读取对象",Yvt="所有者可以读取状态",Vvt="所有者可以写对象",Gvt="所有者可以写状态",qvt="纽扣",Xvt="更改为",Jvt="关闭",Zvt="创建布尔状态",Kvt="创建频道",Qvt="创建设备",egt="创建号码状态",tgt="创建状态",rgt="创建字符串状态",ngt="天",agt="r",igt="莫",ogt="萨",sgt="苏",lgt="Th",cgt="Tu",ugt="我们",dgt="专家模式",fgt="所有文件",hgt="声音的",pgt="代码/JSON",mgt="图片",vgt="文本",ggt="视频",_gt="设定值",ygt="没有",bgt="功能",wgt="ID",Sgt="名称",xgt="角色",Cgt="房间",Tgt="类型",kgt="无效的设定",Egt="最后一次变更",Dgt="本地",Mgt="4月",Ogt="八月",$gt="十二月",Agt="二月",Pgt="简",Igt="七月",Rgt="君",Lgt="迈",Ngt="三月",Fgt="十一月",zgt="十月",Bgt="九月",jgt="4月",Wgt="八月",Hgt="十二月",Ugt="二月",Ygt="简",Vgt="七月",Ggt="君",qgt="迈",Xgt="三月",Jgt="十一月",Zgt="十月",Kgt="九月",Qgt="没有任何",e_t="物件变更者",t_t="对象上次更改时间为",r_t="来自其他适配器%s的设置",n_t="质量代码",a_t="重复",i_t="要选择文件夹,只需按住“shift”键单击文件夹即可。",o_t="状态由",s_t="对象已从更改",l_t="时间戳记",c_t="致谢国旗",u_t="评论",d_t="复制状态值",f_t="自定义设置",h_t="删除物件",p_t="编辑物件",m_t="编辑状态值",v_t="从",g_t="最后改变了",__t="质量",y_t="时间戳",b_t="用户",w_t="值",S_t="值",x_t="警告:CRON 作业将在指定期间内每分钟运行一次!",C_t="警告:CRON 作业将在指定期间内每秒运行一次!",T_t="周期任务",k_t="日期",E_t="日",D_t="天",M_t="星期",O_t="每",$_t="每N天",A_t="每周的第 N 天",P_t="每周N天",I_t="每N小时一次",R_t="每N分钟",L_t="每N个月",N_t="每N秒",F_t="每天",z_t="一周的每一天",B_t="一周的每一天",j_t="每小时",W_t="每分钟",H_t="每月",U_t="每秒",Y_t="从",V_t="小时",G_t="间隔",q_t="间隔时间",X_t="无效的 CRON",J_t="分钟",Z_t="月",K_t="一次",Q_t="周期",eyt="秒",tyt="简单模式",ryt="特定的时间",nyt="特定的日子",ayt="一周中的特定日子",iyt="特定的一周",oyt="特定的小时",syt="特定的分钟",lyt="特定的月份",cyt="特定的描述",uyt="时间",dyt="至",fyt="向导模式",hyt="全选",pyt="天文白天",myt="天文夜晚",vyt="黎明",gyt="黄昏",_yt="黄金时段",yyt="黄金时段结束",byt="天底",wyt="航海黎明",Syt="航海黄昏",xyt="夜晚",Cyt="夜晚结束",Tyt="正午",kyt="日出",Eyt="日出结束",Dyt="日落",Myt="日落开始",Oyt="在",$yt="的%s",Ayt="每天",Pyt="每小时",Iyt="每分钟",Ryt="每月",Lyt="每%s天",Nyt="每%s小时",Fyt="每%s分钟",zyt="每%s月",Byt="每%s周",jyt="每%s年",Wyt="每周",Hyt="每年",Uyt="从%s到%s",Yyt="决不",Vyt="在%s的%s上",Gyt="在%s和%s上",qyt="在每天",Xyt="%s",Jyt="%s和%s",Zyt="在%s上",Kyt="在%s和%s上",Qyt="在周末",e0t="在工作日",t0t="将不再执行,因为起始时间已经是过去的时间了。",r0t="在%s上",n0t="来自%s",a0t="从执行到",i0t="到%s",o0t="每",s0t="特定的时间",l0t="从",c0t="从到",u0t="间隔时间",d0t="倒置",f0t="取消全选",h0t="的",p0t="周期",m0t="每天",v0t="日期",g0t="天",_0t="每",y0t="每天",b0t="每月",w0t="每周",S0t="每年",x0t="小时",C0t="分钟",T0t="月",k0t="每月一次",E0t="一次",D0t="特定的月份",M0t="周",O0t="工作日",$0t="周末",A0t="每周",P0t="工作日",I0t="年",R0t="每年",L0t="特定的时间",N0t="时间",F0t="至",z0t="生效",B0t="从",j0t="至",W0t="一整天",H0t="每月",U0t={"ra_%s links from aliases":"来自别名的 %s 个链接","ra_%s object(s) processed":"已处理%s个对象","ra_%s was imported":"对象已导入","ra_Accept license":"接受许可","ra_Add new child object to selected parent":"将新的子对象添加到选定的父对象","ra_Add objects tree from JSON file":"从JSON文件添加对象树","ra_Add row":"添加行","ra_Advanced options":"高级选项","ra_All items are filtered out":"所有项目都被过滤掉","ra_All objects":"所有对象",ra_Append:Umt,"ra_Append %s entries or replace existing?":"追加 %s 条目还是替换现有条目?","ra_Append or replace?":"追加还是替换?","ra_Are you sure?":"你确定吗?","ra_Auto (no custom columns)":"自动(无自定义列)","ra_Back to %s":"返回“%s”","ra_Background image":"背景图像",ra_Cancel:Ymt,"ra_Cannot add items with set filter":"无法使用设置过滤器添加项目","ra_Cannot decode license":"无法解码许可证","ra_Cannot determine position: System settings are empty and GPS detection is disabled in browser":"无法确定位置:系统设置为空且浏览器中禁用了 GPS 检测",'ra_Cannot find "%s"':"找不到“%s”",'ra_Cannot read "%s"':"无法阅读“%s”","ra_Cannot read licenses: %s":"无法读取许可证:%s","ra_Cannot retrieve options, as instance is offline":"无法检索选项,因为实例处于脱机状态","ra_Cannot update attribute, because not found in the object":"无法更新属性,因为在对象中找不到","ra_Cannot upload":"无法上传",ra_Categories:Vmt,"ra_Chained certificate":"链式证书","ra_Change color theme":"更改颜色主题","ra_Changed from":"更改为","ra_Channel → State":"频道→状态","ra_Check license":"检查许可证",ra_Checked:Gmt,ra_Clear:qmt,"ra_Clear filter":"清除筛选","ra_Clear icon":"清除图标","ra_Clone current row":"克隆当前行",ra_Close:Xmt,"ra_Collapse all nodes":"收合所有节点","ra_Collapse one step node":"折叠一级",ra_Commercial:Jmt,ra_Configure:Zmt,"ra_Configure visible columns":"配置可见列","ra_Confirm deletion of %s":"确认删除%s",ra_Connected:Kmt,ra_Copied:Qmt,"ra_Copied %s":'复制的"%s"',"ra_Copy content":"复制内容",ra_Create:evt,"ra_Create alias":"创建别名","ra_Create folder":"创建文件夹","ra_Create new folder in %s":"在%s中创建新文件夹",ra_Crop:tvt,"ra_Define CRON...":"定义 CRON...","ra_Define functions":"定义功能","ra_Define rooms":"定义房间","ra_Define schedule":"定义时间表","ra_Define schedule...":"定义时间表...",ra_Del:rvt,ra_Delete:nvt,"ra_Delete (no confirm for 5 mins)":"删除(5分钟内未确认)","ra_Delete current row":"删除当前行","ra_Deselect all":"全部取消选择","ra_Device → Channel → State":"设备→频道→状态",ra_Discard:avt,ra_Disconnected:ivt,"ra_Do not export values of states":"不导出状态值","ra_Do not use let's encrypt":"不要使用让我们加密","ra_Double click to reset table layout":"双击重置表格布局","ra_Drag 'n' drop some files here, or click to select files":"将一些文件拖放到此处,或单击以选择文件","ra_Drop file here":"将档案放在这里","ra_Drop the files here...":"把文件放在这里...","ra_Duplicate name":"名称重复","ra_Edit ACL":"编辑访问控制列表","ra_Edit alias":"编辑别名","ra_Edit custom config":"编辑自定义配置","ra_Edit function":"编辑功能","ra_Edit object field":"编辑对象字段","ra_Edit role":"编辑角色","ra_Edit room":"编辑室","ra_Edit value":"编辑值",ra_Error:ovt,"ra_Expand all nodes":"展开所有节点","ra_Expand one step node":"扩大一级","ra_Export data to %s file":"将数据导出到 %s 文件","ra_Failed to open JSON File":"无法打开JSON文件","ra_Fallback custom certificates":"后备自定义证书","ra_File is too big. Max %sk allowed. Try use SVG.":"文件太大。允许的最大字节%s数。尝试使用 SVG。",ra_Filter:svt,"ra_Filter files":"过滤文件","ra_Folder name":"文件夹名称","ra_Folder → Channel → State":"文件夹→频道→状态","ra_Folder → Device → Channel → State":"文件夹→设备→频道→状态","ra_Folder → State":"文件夹→状态","ra_Folders always first":"资料夹永远优先",ra_Friday:lvt,"ra_Good luck":"祝你好运","ra_Hide empty folders":"隐藏空文件夹","ra_If no file will be created in the folder, it will disappear after the browser closed":"如果在该文件夹中未创建任何文件,则该文件将在浏览器关闭后消失","ra_Import data from %s file":"从 %s 文件导入数据","ra_Import from %s":"从 %s 导入","ra_Instance %s is alive":"实例 %s 是活动的","ra_Instance %s is not alive":"实例 %s 不存在","ra_Instance is not alive":"实例不存在","ra_Invalid CRON":"无效的 CRON","ra_Invalid JSON":"JSON 无效","ra_Invalid answer from server":"来自服务器的无效答案","ra_Invalid parent folder!":"父文件夹无效!","ra_Invalid structure":"结构无效","ra_JSON editor":"JSON 编辑器","ra_Last change":"最后一次变更",ra_Latitude:cvt,"ra_License %s":"许可证 %s","ra_License agreement":"许可协议","ra_License does not exist":"许可证不存在","ra_License expired on %s":"许可证已于 %s 过期",'ra_License for other product "%s"':"其他产品“%s”的许可证","ra_License is for version %s, but required version is %s.":"许可证适用于版本 %s,但所需版本为 %s。","ra_License must be converted":"许可证必须转换为更新版本。您可以在 iobroker.net 个人资料中执行此操作。","ra_License not found in license manager. Do you want to read licenses from iobroker.net?":"在许可证管理器中找不到许可证。您要从 iobroker.net 更新许可证吗?","ra_Listen on all IPs":"监听所有IP","ra_Load configuration from file":"从文件加载配置",ra_Longitude:uvt,'ra_May not trigger "updateLicenses"':"可能不会触发“updateLicenses”",ra_Message:dvt,ra_Monday:fvt,"ra_Move down":"下移","ra_Move up":"提升",ra_Name:hvt,"ra_No data found in file":"文件中未找到数据","ra_No one license found in license manager":"许可证管理器中未找到任何许可证","ra_No response from the backend":"后端无响应",'ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".':"非专家只能在“ 0_userdata.0”或“ alias.0”中创建新对象。","ra_Not a number":"不是数字",ra_Objects:pvt,ra_Ok:mvt,"ra_On weekdays":"在工作日","ra_Only following structures of objects are available:":"仅以下对象结构可用:","ra_Only selected":"只选择","ra_Owner group":"所有者组","ra_Owner user":"所有者用户","ra_Passwords are not equal!":"密码不相等!","ra_Place your files here or click here to open the browse dialog":"将文件放在此处或单击此处打开浏览对话框","ra_Please confirm":"请确认","ra_Please create license":"请创建许可证","ra_Please enter the license":"请输入许可证","ra_Please select file...":"请选择文件...","ra_Please select object ID...":"请选择对象ID ...","ra_Port could be used by %s":"%s 可以使用端口","ra_Port is already used by %s":"端口已被 %s 使用","ra_Private certificate":"私有证书",ra_Product:vvt,"ra_Public certificate":"公共证书","ra_Quality code":"质量代码","ra_Refresh tree":"刷新树","ra_Reload files":"重新载入文件",ra_Repeat:gvt,ra_Replace:_vt,"ra_Request timed out":"请求超时","ra_Restrict to folder":"限制到文件夹",ra_Root:yvt,ra_Saturday:bvt,ra_Save:wvt,"ra_Save and close":"保存并关闭","ra_Save configuration to file":"将配置保存到文件","ra_Save objects tree as JSON file":"将对象树另存为JSON文件","ra_Select all":"全选","ra_Select color":"选择颜色","ra_Select predefined icon":"选择预定义图标","ra_Select type of export":"选择导出类型",ra_Selected:Svt,"ra_Selected %s object(s)":"选定的 %s 个对象","ra_Serial number (UUID)":"序列号 (UUID)",'ra_Serial number (UUID) "%s" in license is for other device.':"许可证中的序列号 (UUID)“%s”用于其他设备。","ra_Show all folders":"显示所有文件夹","ra_Show lines between rows":"显示行之间的线","ra_Show/Hide object descriptions":"显示/隐藏对象描述","ra_Show/hide filter input":"显示/隐藏过滤器输入","ra_Some data are not stored. Discard?":"部分数据未存储。丢弃?",ra_States:xvt,"ra_Suitable license not found in license manager":"在许可证管理器中找不到合适的许可证",ra_Sunday:Cvt,"ra_Suppress question for next %s minutes":"在接下来的%s分钟内取消提问","ra_System language":"系统语言","ra_Take browser position":"从浏览器获取位置","ra_Take position from system settings":"从系统设置中获取位置",'ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").':"专家可以在任何地方创建对象,但要从第二层开始(例如“ vis.0”或“ javascript.0”)。","ra_The page you are looking for was not found":"未找到您要查找的页面","ra_The schedule will be executed every minute. Are you sure?":"该计划将每分钟执行一次。您确定吗?","ra_The schedule will be executed every second. Are you sure?":"该计划将每秒执行一次。你确定吗?",ra_Thursday:Tvt,ra_Timestamp:kvt,"ra_Toggle expert mode":"切换专家模式","ra_Toggle the states view":"切换状态视图","ra_Toggle view mode":"切换检视模式","ra_Too big":"太大","ra_Too small":"太小","ra_Transparent dialog":"透明对话框",ra_Tuesday:Evt,"ra_Unknown error":"未知错误","ra_Unknown error!":"未知错误!",ra_Update:Dvt,"ra_Upload file":"上传文件","ra_Use all available let's encrypt certificates":"使用所有可用的让我们加密证书","ra_Use iobroker.acme adapter for letsencrypt certificates":"使用 iobroker.acme 适配器获取 letsencrypt 证书","ra_Use system settings for position":"使用系统设置定位","ra_Used system settings":"使用的系统设置","ra_User files":"用户档案",ra_ValidTill:Mvt,ra_Value:Ovt,ra_Version:$vt,"ra_View file":"查看文件","ra_View: %s":"查看:%s",ra_Wednesday:Avt,ra_Width:Pvt,ra_Yes:Ivt,"ra_You can export all objects or just the selected branch.":"您可以导出所有对象或仅导出选定的分支。","ra_You can filter entries by entering here some text":"您可以通过在此处输入一些文本来过滤条目",ra___different__:Rvt,ra_aclEveryone_read_object:Lvt,ra_aclEveryone_read_state:Nvt,ra_aclEveryone_write_object:Fvt,ra_aclEveryone_write_state:zvt,ra_aclGroup_read_object:Bvt,ra_aclGroup_read_state:jvt,ra_aclGroup_write_object:Wvt,ra_aclGroup_write_state:Hvt,ra_aclOwner_read_object:Uvt,ra_aclOwner_read_state:Yvt,ra_aclOwner_write_object:Vvt,ra_aclOwner_write_state:Gvt,ra_buttons:qvt,ra_changedFrom:Xvt,ra_close:Jvt,ra_create_boolean_state:Zvt,ra_create_channel:Kvt,ra_create_device:Qvt,ra_create_number_state:egt,ra_create_state:tgt,ra_create_string_state:rgt,ra_daysShortText:ngt,ra_dow_Fr:agt,ra_dow_Mo:igt,ra_dow_Sa:ogt,ra_dow_Su:sgt,ra_dow_Th:lgt,ra_dow_Tu:cgt,ra_dow_We:ugt,ra_expertMode:dgt,ra_fileType_all:fgt,ra_fileType_audio:hgt,ra_fileType_code:pgt,ra_fileType_images:mgt,ra_fileType_txt:vgt,ra_fileType_video:ggt,"ra_fileType_video,":"视频",ra_filter_customs:_gt,ra_filter_customs_without:ygt,ra_filter_func:bgt,ra_filter_id:wgt,ra_filter_name:Sgt,ra_filter_role:xgt,ra_filter_room:Cgt,ra_filter_type:Tgt,"ra_import data from %s file":"从 %s 文件导入数据",ra_invalidConfig:kgt,ra_lastChange:Egt,ra_locally:Dgt,ra_month_Apr:Mgt,ra_month_Aug:Ogt,ra_month_Dec:$gt,ra_month_Feb:Agt,ra_month_Jan:Pgt,ra_month_Jul:Igt,ra_month_Jun:Rgt,ra_month_Mai:Lgt,ra_month_Mar:Ngt,ra_month_Nov:Fgt,ra_month_Oct:zgt,ra_month_Sep:Bgt,ra_months_Apr:jgt,ra_months_Aug:Wgt,ra_months_Dec:Hgt,ra_months_Feb:Ugt,ra_months_Jan:Ygt,ra_months_Jul:Vgt,ra_months_Jun:Ggt,ra_months_Mai:qgt,ra_months_Mar:Xgt,ra_months_Nov:Jgt,ra_months_Oct:Zgt,ra_months_Sep:Kgt,ra_none:Qgt,ra_object_changed_by:e_t,ra_object_changed_by_user:t_t,ra_otherConfig:r_t,ra_qualityCode:n_t,ra_repeat:a_t,ra_select_folder_hint:i_t,ra_state_changed_by:o_t,ra_state_changed_from:s_t,ra_timestamp:l_t,ra_tooltip_ack:c_t,ra_tooltip_comment:u_t,ra_tooltip_copyState:d_t,ra_tooltip_customConfig:f_t,ra_tooltip_deleteObject:h_t,ra_tooltip_editObject:p_t,ra_tooltip_editState:m_t,ra_tooltip_from:v_t,ra_tooltip_lc:g_t,ra_tooltip_quality:__t,ra_tooltip_ts:y_t,ra_tooltip_user:b_t,ra_tooltip_value:w_t,"ra_use seconds":"用秒",ra_val:S_t,"ra_via internet":"通过互联网",ra_warning_every_minute:x_t,ra_warning_every_second:C_t,sc_cron:T_t,sc_date:k_t,sc_dates:E_t,sc_dow:D_t,sc_dows:M_t,sc_every:O_t,sc_everyN_dates:$_t,sc_everyN_dow:A_t,sc_everyN_dows:P_t,sc_everyN_hours:I_t,sc_everyN_minutes:R_t,sc_everyN_months:L_t,sc_everyN_seconds:N_t,sc_every_dates:F_t,sc_every_dow:z_t,sc_every_dows:B_t,sc_every_hours:j_t,sc_every_minutes:W_t,sc_every_months:H_t,sc_every_seconds:U_t,sc_from:Y_t,sc_hours:V_t,sc_interval:G_t,sc_intervalBetween:q_t,sc_invalid_cron:X_t,sc_minutes:J_t,sc_months:Z_t,sc_once:K_t,sc_period:Q_t,sc_seconds:eyt,sc_simple:tyt,sc_specific:ryt,sc_specific_dates:nyt,sc_specific_dow:ayt,sc_specific_dows:iyt,sc_specific_hours:oyt,sc_specific_minutes:syt,sc_specific_months:lyt,sc_specific_seconds:cyt,sc_time:uyt,sc_to:dyt,sc_wizard:fyt,sch_all:hyt,sch_astroDay:pyt,sch_astroNight:myt,sch_astro_dawn:vyt,sch_astro_dusk:gyt,sch_astro_goldenHour:_yt,sch_astro_goldenHourEnd:yyt,sch_astro_nadir:byt,sch_astro_nauticalDawn:wyt,sch_astro_nauticalDusk:Syt,sch_astro_night:xyt,sch_astro_nightEnd:Cyt,sch_astro_solarNoon:Tyt,sch_astro_sunrise:kyt,sch_astro_sunriseEnd:Eyt,sch_astro_sunset:Dyt,sch_astro_sunsetStart:Myt,sch_at:Oyt,sch_desc_atTime:$yt,sch_desc_everyDay:Ayt,sch_desc_everyHour:Pyt,sch_desc_everyMinute:Iyt,sch_desc_everyMonth:Ryt,sch_desc_everyNDay:Lyt,sch_desc_everyNHours:Nyt,sch_desc_everyNMinutes:Fyt,sch_desc_everyNMonths:zyt,sch_desc_everyNWeeks:Byt,sch_desc_everyNYears:jyt,sch_desc_everyWeek:Wyt,sch_desc_everyYear:Hyt,sch_desc_intervalFromTo:Uyt,sch_desc_never:Yyt,sch_desc_onDate:Vyt,sch_desc_onDates:Gyt,sch_desc_onEveryDate:qyt,sch_desc_onMonth:Xyt,sch_desc_onMonths:Jyt,sch_desc_onWeekday:Zyt,sch_desc_onWeekdays:Kyt,sch_desc_onWeekends:Qyt,sch_desc_onWorkdays:e0t,sch_desc_onceInPast:t0t,sch_desc_once_on:r0t,sch_desc_validFrom:n0t,sch_desc_validFromTo:a0t,sch_desc_validTo:i0t,sch_every:o0t,sch_exactTime:s0t,sch_from:l0t,sch_fromTo:c0t,sch_intervalTime:u0t,sch_invert:d0t,sch_no_one:f0t,sch_on:h0t,sch_period:p0t,sch_periodDaily:m0t,sch_periodDates:v0t,sch_periodDay:g0t,sch_periodEvery:_0t,sch_periodEveryDay:y0t,sch_periodEveryMonth:b0t,sch_periodEveryWeek:w0t,sch_periodEveryYear:S0t,sch_periodHours:x0t,sch_periodMinutes:C0t,sch_periodMonth:T0t,sch_periodMonthly:k0t,sch_periodOnce:E0t,sch_periodSpecificMonths:D0t,sch_periodWeek:M0t,sch_periodWeekdays:O0t,sch_periodWeekend:$0t,sch_periodWeekly:A0t,sch_periodWorkdays:P0t,sch_periodYear:I0t,sch_periodYearly:R0t,sch_specificTime:L0t,sch_time:N0t,sch_to:F0t,sch_valid:z0t,sch_validFrom:B0t,sch_validTo:j0t,sch_wholeDay:W0t,sch_yearEveryMonth:H0t},Y0t="Export",V0t="Cancel",G0t="Close",q0t={"Save as image":"Save as image","Reset pan and zoom":"Reset pan and zoom","Save chart as svg":"Save chart as SVG","Unfortunately your browser does not support this feature":"Unfortunately your browser does not support this feature","Save chart as png":"Save chart as png","No data found":"No data found","Export raw data as CSV":"Export raw data as CSV","Select lines for export":"Select lines for export","Time format":"Time format","Browser format":"Browser time format","Time stamp in milliseconds":"Time stamp in milliseconds",Export:Y0t,Cancel:V0t,"Select lines":"Select lines","Select lines to show":"Select lines to show","Select all":"Select all",Close:G0t,"Unselect all":"Unselect all"},X0t="Export",J0t="Abbrechen",Z0t="Schließen",K0t={"Save as image":"Als Bild speichern","Reset pan and zoom":"Verschiebung und Zoomen zurücksetzen","Save chart as svg":"Diagramm als SVG speichern","Unfortunately your browser does not support this feature":"Leider unterstützt Ihr Browser diese Funktion nicht","Save chart as png":"Diagramm als PNG speichern","No data found":"Keine Daten gefunden","Export raw data as CSV":"Rohdaten als CSV exportieren","Select lines for export":"Wählen Sie Zeilen für den Export aus","Time format":"Zeitformat","Browser format":"Browser-Zeitformat","Time stamp in milliseconds":"Zeitstempel in Millisekunden",Export:X0t,Cancel:J0t,"Select lines":"Wählen Sie Zeilen aus","Select lines to show":"Wählen Sie die anzuzeigenden Linien aus","Select all":"Wählen Sie Alle",Close:Z0t,"Unselect all":"Alles wiederufen"},Q0t="Экспорт",ebt="Отмена",tbt="Закрыть",rbt={"Save as image":"Сохранить как изображение","Reset pan and zoom":"Сбросить сдвиг и масштабирование","Save chart as svg":"Сохранить график как SVG","Unfortunately your browser does not support this feature":"К сожалению, ваш браузер не поддерживает эту функцию","Save chart as png":"Сохранить диаграмму как png","No data found":"Данные не найдены","Export raw data as CSV":"Экспорт необработанных данных в формате CSV","Select lines for export":"Выбрать строки для экспорта","Time format":"Формат времени","Browser format":"Формат времени браузера","Time stamp in milliseconds":"Отметка времени в миллисекундах",Export:Q0t,Cancel:ebt,"Select lines":"Выберите строки","Select lines to show":"Выберите строки для отображения","Select all":"Выбрать все",Close:tbt,"Unselect all":"Снять все"},nbt="Exportar",abt="Cancelar",ibt="Fechar",obt={"Save as image":"Salvar como imagem","Reset pan and zoom":"Redefinir panorâmica e zoom","Save chart as svg":"Salvar gráfico como SVG","Unfortunately your browser does not support this feature":"Infelizmente, seu navegador não oferece suporte a esse recurso","Save chart as png":"Salvar gráfico como png","No data found":"Nenhum dado encontrado","Export raw data as CSV":"Exportar dados brutos como CSV","Select lines for export":"Selecione as linhas para exportação","Time format":"Formato de hora","Browser format":"Formato de hora do navegador","Time stamp in milliseconds":"Carimbo de hora em milissegundos",Export:nbt,Cancel:abt,"Select lines":"Selecione linhas","Select lines to show":"Selecione linhas para mostrar","Select all":"Selecionar tudo",Close:ibt,"Unselect all":"Desmarque todos"},sbt="Exporteren",lbt="Annuleren",cbt="Dichtbij",ubt={"Save as image":"Bewaar als afbeelding","Reset pan and zoom":"Stel pannen en zoomen opnieuw in","Save chart as svg":"Bewaar grafiek als SVG","Unfortunately your browser does not support this feature":"Helaas ondersteunt uw browser deze functie niet","Save chart as png":"Bewaar grafiek als png","No data found":"Geen data gevonden","Export raw data as CSV":"Exporteer onbewerkte gegevens als CSV","Select lines for export":"Selecteer regels voor export","Time format":"Tijd formaat","Browser format":"Browser tijdformaat","Time stamp in milliseconds":"Tijdstempel in milliseconden",Export:sbt,Cancel:lbt,"Select lines":"Selecteer lijnen","Select lines to show":"Selecteer lijnen om weer te geven","Select all":"Selecteer alles",Close:cbt,"Unselect all":"Deselecteer alles"},dbt="Exporter",fbt="Annuler",hbt="Fermer",pbt={"Save as image":"Enregistrer comme image","Reset pan and zoom":"Réinitialiser le panoramique et le zoom","Save chart as svg":"Enregistrer le graphique au format SVG","Unfortunately your browser does not support this feature":"Malheureusement, votre navigateur ne prend pas en charge cette fonctionnalité","Save chart as png":"Enregistrer le graphique au format png","No data found":"Aucune donnée disponible","Export raw data as CSV":"Exporter les données brutes au format CSV","Select lines for export":"Sélectionner les lignes à exporter","Time format":"Format de l'heure","Browser format":"Format d'heure du navigateur","Time stamp in milliseconds":"Horodatage en millisecondes",Export:dbt,Cancel:fbt,"Select lines":"Sélectionner des lignes","Select lines to show":"Sélectionnez les lignes à afficher","Select all":"Tout sélectionner",Close:hbt,"Unselect all":"Tout déselectionner"},mbt="Esportare",vbt="Annulla",gbt="Vicino",_bt={"Save as image":"Salva come immagine","Reset pan and zoom":"Reimposta panoramica e zoom","Save chart as svg":"Salva grafico come SVG","Unfortunately your browser does not support this feature":"Purtroppo il tuo browser non supporta questa funzionalità","Save chart as png":"Salva grafico come png","No data found":"Nessun dato trovato","Export raw data as CSV":"Esporta i dati grezzi come CSV","Select lines for export":"Seleziona le linee per l'esportazione","Time format":"Formato orario","Browser format":"Formato dell'ora del browser","Time stamp in milliseconds":"Timestamp in millisecondi",Export:mbt,Cancel:vbt,"Select lines":"Seleziona linee","Select lines to show":"Seleziona le righe da mostrare","Select all":"Seleziona tutto",Close:gbt,"Unselect all":"Deseleziona tutto"},ybt="Exportar",bbt="Cancelar",wbt="Cerca",Sbt={"Save as image":"Guardar como imagen","Reset pan and zoom":"Restablecer panorámica y zoom","Save chart as svg":"Guardar gráfico como SVG","Unfortunately your browser does not support this feature":"Lamentablemente, su navegador no es compatible con esta función.","Save chart as png":"Guardar gráfico como png","No data found":"Datos no encontrados","Export raw data as CSV":"Exportar datos sin procesar como CSV","Select lines for export":"Seleccionar líneas para exportar","Time format":"Formato de tiempo","Browser format":"formato de hora del navegador","Time stamp in milliseconds":"Marca de tiempo en milisegundos",Export:ybt,Cancel:bbt,"Select lines":"Seleccionar líneas","Select lines to show":"Seleccionar líneas para mostrar","Select all":"Seleccionar todo",Close:wbt,"Unselect all":"Deselecciona todo"},xbt="Eksport",Cbt="Anulować",Tbt="Zamknąć",kbt={"Save as image":"Zapisz jako obraz","Reset pan and zoom":"Zresetuj przesuwanie i powiększanie","Save chart as svg":"Zapisz wykres jako SVG","Unfortunately your browser does not support this feature":"Niestety Twoja przeglądarka nie obsługuje tej funkcji","Save chart as png":"Zapisz wykres jako png","No data found":"Nie znaleziono danych","Export raw data as CSV":"Eksportuj surowe dane jako CSV","Select lines for export":"Wybierz linie do eksportu","Time format":"Format czasu","Browser format":"Format czasu przeglądarki","Time stamp in milliseconds":"Znacznik czasu w milisekundach",Export:xbt,Cancel:Cbt,"Select lines":"Wybierz linie","Select lines to show":"Wybierz linie do pokazania","Select all":"Zaznacz wszystko",Close:Tbt,"Unselect all":"Odznacz wszystko"},Ebt="Експорт",Dbt="Скасувати",Mbt="Закрити",Obt={"No data found":"Даних не знайдено","Reset pan and zoom":"Скинути панорамування та масштабування","Save as image":"Зберегти як зображення","Save chart as png":"Зберегти діаграму як png","Save chart as svg":"Зберегти діаграму як SVG","Unfortunately your browser does not support this feature":"На жаль, ваш браузер не підтримує цю функцію","Export raw data as CSV":"Експорт необроблених даних як CSV","Select lines for export":"Виберіть рядки для експорту","Time format":"Формат часу","Browser format":"Формат часу браузера","Time stamp in milliseconds":"Мітка часу в мілісекундах",Export:Ebt,Cancel:Dbt,"Select lines":"Виберіть лінії","Select lines to show":"Виберіть рядки для показу","Select all":"Вибрати все",Close:Mbt,"Unselect all":"Скасувати вибір усіх"},$bt="出口",Abt="取消",Pbt="关闭",Ibt={"Save as image":"另存为图片","Reset pan and zoom":"重置平移和缩放","Save chart as svg":"将图表另存为SVG","Unfortunately your browser does not support this feature":"不幸的是,您的浏览器不支持此功能","Save chart as png":"将图表另存为png","No data found":"没有找到数据","Export raw data as CSV":"将原始数据导出为 CSV","Select lines for export":"选择要导出的行","Time format":"时间格式","Browser format":"浏览器时间格式","Time stamp in milliseconds":"以毫秒为单位的时间戳",Export:$bt,Cancel:Abt,"Select lines":"选择线路","Select lines to show":"选择要显示的行","Select all":"全选",Close:Pbt,"Unselect all":"全部取消选择"};function h7(t){t=(t||"").toString().replace(/^\?/,"");const e={};return t.split("&").forEach(r=>{if(r=r.trim(),r){const n=r.split("="),a=decodeURIComponent(n[0]).trim();if(n.length>1)if(e[a]=decodeURIComponent(n[1]),e[a]==="true")e[a]=!0;else if(e[a]==="false")e[a]=!1;else{const i=parseFloat(e[a]);i.toString()===e[a]&&(e[a]=i)}else e[a]=!0}}),e}function Xg(t){const e=JSON.parse(JSON.stringify(t));if(t.lines&&(e.l=t.lines,delete e.lines),t._ids){const r=t._ids?t._ids.split(";"):[],n=t._colors?t._colors.split(";"):[],a=t._names?t._names.split(";"):[],i=t._units?t._units.split(";"):[];e.l=[];for(let o=0;o{this.lastHash!==window.location.hash&&(this.lastHash=window.location.hash,this.analyseAndLoadConfig())});de(this,"onPresetUpdate",(e,r)=>{e===this.preset&&(this.presetUpdateTimeout&&clearTimeout(this.presetUpdateTimeout),this.presetUpdateTimeout=setTimeout(()=>{this.presetUpdateTimeout=null;let n;r?n=Xg(r.native.data):n=Xg({}),JSON.stringify(n)!==JSON.stringify(this.config)&&(this.config=n,this.updateInterval&&clearInterval(this.updateInterval),this.updateInterval=null,this.config.live&&(!this.zoomData||!this.zoomData.stopLive)&&(this.updateInterval=setInterval(()=>this.readData(),this.config.live*1e3)),this.readData())},100))});de(this,"onStateChange",(e,r)=>{if(!e||!r||this.reading)return;this.debug&&console.log(`State update ${e} - ${r.val}`);let n=!1;for(let a=0;ac.ts-d.ts?-1:c.ts(a.toString().includes(Xs)&&this.onErrorFunc&&this.onErrorFunc(a),console.error(`Cannot read systemConfig: ${a.toString()}`),null)).then(a=>(this.systemConfig=a!=null&&a.common?a.common:{},this.defaultHistory=this.systemConfig.defaultHistory,this.analyseAndLoadConfig(r)))}async analyseAndLoadConfig(e){var r,n,a,i,o;if(e)typeof e=="string"?this.preset=e:this.config=Xg(e);else if(!this.serverSide){const s=h7(window.location.search);if(this.debug=s.debug===!0||s.debug==="true"||s.debug===1||s.debug==="1",s.preset&&typeof s.preset=="string")this.preset=s.preset;else{const l=h7((window.location.hash||"").toString().replace(/^#/,""));let c={};if(l.data&&typeof l.data=="string")try{c=JSON.parse(l.data)}catch{}if(s.data&&typeof s.data=="string")try{Object.assign(c,JSON.parse(s.data),!0)}catch{}l.preset?(this.preset=l.preset,(l.range||l.relativeEnd)&&(this.hash={range:l.range,relativeEnd:l.relativeEnd})):(l.noLoader!==void 0&&(c.noLoader=l.noLoader===!0||l.noLoader==="true"||l.noLoader===1||l.noLoader==="1"),s.noLoader!==void 0&&(c.noLoader=s.noLoader===!0||s.noLoader==="true"||s.noLoader===1||s.noLoader==="1"),this.config=Xg(c))}}if(this.seriesData=[],this.barData=[],this.barCategories=null,this.updateInterval&&(clearInterval(this.updateInterval),this.updateInterval=null),this.preset){(!this.preset.startsWith("echarts.")&&!this.preset.startsWith("flot.")||!this.preset.includes("."))&&(this.preset=`echarts.0.${this.preset}`);try{const s=await this.socket.getObject(this.preset);if(!((r=s==null?void 0:s.native)!=null&&r.data)||s.type!=="chart"){console.error(`[ChartModel] Invalid object ${this.preset}: ${JSON.stringify(s)}`);return}this.config=Xg(s.native.data),this.config.useComma=this.config.useComma===void 0?this.systemConfig.isFloatComma:this.config.useComma,this.config.lang=this.systemConfig.language,this.config.live=parseInt(this.config.live,10)||0,this.config.debug=this.debug,this.config.presetId=this.preset,(n=this.hash)!=null&&n.range&&(typeof this.hash.range=="string"&&!this.hash.range.includes("y")&&!this.hash.range.includes("m")?this.config.range=parseInt(this.hash.range,10):this.config.range=this.hash.range),(a=this.hash)!=null&&a.relativeEnd&&(this.config.relativeEnd=this.hash.relativeEnd),await this.readData(),!this.serverSide&&this.presetSubscribed!==this.preset&&(this.presetSubscribed&&await this.socket.unsubscribeObject(this.presetSubscribed,this.onPresetUpdate),this.presetSubscribed=this.preset,await this.socket.subscribeObject(this.preset,this.onPresetUpdate)),!this.serverSide&&this.config.live&&!((i=this.zoomData)!=null&&i.stopLive)&&(this.updateInterval=setInterval(()=>this.readData(),this.config.live*1e3))}catch(s){s===Xs&&this.onErrorFunc&&this.onErrorFunc(s),console.error(`Cannot read "${this.preset}": ${s}`)}}else this.config.useComma=this.config.useComma===void 0?this.systemConfig.isFloatComma===!0:this.config.useComma===!0,this.config.lang=this.systemConfig.language,this.config.live=parseInt(this.config.live,10)||0,this.config.debug=this.debug,await this.readData(),!this.serverSide&&this.config.live&&!((o=this.zoomData)!=null&&o.stopLive)&&(this.updateInterval=setInterval(()=>this.readData(),this.config.live*1e3))}setNewRange(e){var r;if(this.debug&&console.log(`[ChartModel] [${new Date().toISOString()}] setNewRange: ${JSON.stringify(e)}`),!e)this.zoomData&&(this.zoomData=null,this.readOnZoomTimeout&&clearTimeout(this.readOnZoomTimeout),this.readOnZoomTimeout=setTimeout(()=>{this.readOnZoomTimeout=null,this.config.live&&(!this.zoomData||!this.zoomData.stopLive)&&(console.log("Restore update"),this.updateInterval&&clearInterval(this.updateInterval),this.updateInterval=setInterval(()=>this.readData(),this.config.live*1e3)),this.readData()},this.updateTimeout));else if(e.stopLive)this.zoomData=this.zoomData||{},this.zoomData.stopLive=!0,this.updateInterval&&(console.log("Clear interval"),clearInterval(this.updateInterval),this.updateInterval=null);else{const n=(r=this.zoomData)==null?void 0:r.stopLive;n&&delete this.zoomData.stopLive,!this.zoomData||JSON.stringify(this.zoomData)!==JSON.stringify(e)?(this.zoomData=e,n&&(this.zoomData.stopLive=!0),this.readOnZoomTimeout&&clearTimeout(this.readOnZoomTimeout),this.readOnZoomTimeout=setTimeout(()=>{this.readOnZoomTimeout=null,this.readData()},this.updateTimeout)):n&&(this.zoomData.stopLive=!0)}}destroy(){this.subscribed&&(this.serverSide||this.subscribes.forEach(e=>this.socket.unsubscribeState(e,this.onStateChange)),this.subscribes=[],this.subscribed=!1),this.readOnZoomTimeout&&(clearTimeout(this.readOnZoomTimeout),this.readOnZoomTimeout=null),this.presetUpdateTimeout&&(clearTimeout(this.presetUpdateTimeout),this.presetUpdateTimeout=null),this.presetSubscribed&&(this.serverSide||this.socket.unsubscribeObject(this.presetSubscribed,this.onPresetUpdate),this.presetSubscribed=null),this.updateInterval&&(clearInterval(this.updateInterval),this.updateInterval=null),this.serverSide||this.onHashInstalled&&(window.removeEventListener("hashchange",this.onHashChange,!1),this.onHashInstalled=!1)}onUpdate(e){this.onUpdateFunc=e}onReading(e){this.onReadingFunc=e}onError(e){this.onErrorFunc=e}getConfig(){return this.config}getSystemConfig(){return this.systemConfig}setConfig(e){this.analyseAndLoadConfig(e)}increaseRegionForBar(e,r,n){this.config.aggregateBar=parseInt(this.config.aggregateBar,10)||0;let a=typeof r=="number"?r:r.getTime(),i=typeof e=="number"?e:e.getTime();if(this.config.aggregateBar||(a-i<=36e5*12?this.config.aggregateBar=15:a-i>=36e5*24*60?this.config.aggregateBar=43200:a-i>36e5*24*3?this.config.aggregateBar=1440:this.config.aggregateBar=60),n=n||{},this.config.aggregateBar===15){const o=new Date(i);o.setMinutes(Math.floor(o.getMinutes()/15)*15),this.config.postProcessing==="diff"&&o.setMinutes(o.getMinutes()-15),o.setSeconds(0),o.setMilliseconds(0),i=o.getTime();const s=new Date(a);s.setMinutes(Math.ceil(s.getMinutes()/15)*15),s.setSeconds(0),s.setMilliseconds(0),a=s.getTime(),n.count=Math.round((a-i)/9e5)}else if(this.config.aggregateBar===60){const o=new Date(i);o.setMinutes(0),o.setSeconds(0),o.setMilliseconds(0),this.config.postProcessing==="diff"&&o.setMinutes(o.getMinutes()-60),i=o.getTime();const s=new Date(a);s.setMinutes(60),s.setSeconds(0),s.setMilliseconds(0),a=s.getTime(),n.count=Math.round((a-i)/36e5)}else if(this.config.aggregateBar===1440){const o=new Date(i);o.setHours(0),o.setMinutes(0),o.setSeconds(0),o.setMilliseconds(0),this.config.postProcessing==="diff"&&o.setDate(o.getDate()-1),i=o.getTime();const s=new Date(a);s.setDate(s.getDate()+1),s.setHours(0),s.setMinutes(0),s.setSeconds(0),s.setMilliseconds(0),a=s.getTime(),n.count=Math.round((a-i)/864e5)}else if(this.config.aggregateBar===43200){const o=new Date(i);o.setDate(1),o.setHours(0),o.setMinutes(0),o.setSeconds(0),o.setMilliseconds(0),this.config.postProcessing==="diff"&&o.setDate(o.getDate()-30),i=o.getTime();const s=new Date(a);s.setDate(1),s.setHours(0),s.setMinutes(0),s.setMonth(s.getMonth()+1),s.setSeconds(0),s.setMilliseconds(0),a=s.getTime(),n.count=Math.round((a-i)/(864e5*30))}n.start=i,n.end=a}getStartStop(e,r){let n,a,i,o;if(this.config.l[e].offset=this.config.l[e].offset||0,typeof this.config.range=="string"&&this.config.range.includes("m")&&this.config.l.length>1){const s=parseInt(this.config.range,10)||1;for(let l=0;l1){const s=parseInt(this.config.range,10)||1;for(let l=0;lc+d,0);i[o]=l/s.length}else if(n==="min"){let l=s[0];for(let c=1;cl&&(l=s[c]);i[o]=l}else n==="total"?i[o]=s.reduce((l,c)=>l+c,0):i[o]=s[s.length-1]}if(a==="diff"){for(let o=e.length-1;o>0;o--)i[o-1]!==null&&i[o]!==null?i[o]-=i[o-1]:i[o]=0;i.splice(0,1),r.splice(0,1)}for(let o=0;os.push([]))}let c;if((u=r.convert)!=null&&u.trim()){if(!this.convertFunctions[r.convert.trim()]){let f=r.convert.trim();f.includes("return")||(f=`return ${f}`);try{c=new Function("val",f)}catch(p){console.error(`[ChartModel] Cannot parse convert function: ${p}`)}}c=this.convertFunctions[r.convert.trim()]}for(let f=0;f=n[f].ts&&n[f].tsthis.now)break;const v={value:[n[f].ts,p]};n[f].i&&(v.exact=!1),o.push(v)}}if(r.chartType!=="bar"&&r.chartType!=="polar"){let f=typeof a.end=="number"?a.end:a.end.getTime();const p=typeof a.start=="number"?a.start:a.start.getTime();if(f>this.now&&(f=this.now),o.length){o[0].value[0]>p&&o.unshift({value:[p,null],exact:!1});const v=o[o.length-1];v.value[0]v.value[0]>g.value[0]?1:v.value[0]c),s[0]){const c=Object.keys(s[0]);(!c.includes("val")||!c.includes("ts"))&&(c.includes("y")&&c.includes("t")?s=s.map(d=>({ts:d.t,val:d.y})):(c.includes("y")?s.forEach(d=>d.val=d.y):c.includes("value")?s.forEach(d=>d.val=d.value):c.includes("data")?s.forEach(d=>d.val=d.data):c.includes("v")&&s.forEach(d=>d.val=d.v),c.includes("t")?s.forEach(d=>d.ts=d.t):c.includes("time")?s.forEach(d=>d.ts=d.time):c.includes("date")&&s.forEach(d=>d.ts=d.date))),s[0].ts&&(typeof s[0].ts=="string"&&window.isFinite(s[0].ts)?s.forEach(d=>d.ts=parseInt(d.ts,10)):typeof s[0].ts=="string"&&new Date(s[0].ts).toString()!=="Invalid Date"&&s.forEach(d=>d.ts=new Date(d.ts).getTime()),typeof s[0].ts=="number"&&s[0].ts<9466812e5&&s.forEach(d=>d.ts*=1e3))}s.sort((c,d)=>c.ts-d.ts?-1:c.ts({ts:c.t,val:c.y})):(l.includes("y")?s.forEach(c=>c.val=c.y):l.includes("value")?s.forEach(c=>c.val=c.value):l.includes("data")?s.forEach(c=>c.val=c.data):l.includes("v")&&s.forEach(c=>c.val=c.v),l.includes("t")?s.forEach(c=>c.ts=c.t):l.includes("time")?s.forEach(c=>c.ts=c.time):l.includes("date")&&s.forEach(c=>c.ts=c.date))),s[0].ts&&(typeof s[0].ts=="string"&&window.isFinite(s[0].ts)?s.forEach(c=>c.ts=parseInt(c.ts,10)):typeof s[0].ts=="string"&&new Date(s[0].ts).toString()!=="Invalid Date"&&s.forEach(c=>c.ts=new Date(c.ts).getTime()),typeof s[0].ts=="number"&&s[0].ts<9466812e5&&s.forEach(c=>c.ts*=1e3))}return Array.isArray(s)||(s=[],console.warn("JSON is not an array")),s.sort((l,c)=>l.ts-c.ts?-1:l.ts(r.toString().includes(Xs)&&this.onErrorFunc&&this.onErrorFunc(r),console.error(`Cannot read "${e}": ${r.toString()}`),null))),this.objectPromises[e]}async _readOneLine(e){const r=this.config.l[e];try{const n=await this._readObject(r.id);if(n!=null&&n.common){const a=r.name||n.common.name;if(r.name=a&&typeof a=="object"?a[this.systemConfig.language]||a.en||r.id:a||"",r.unit=r.unit||(n.common.unit?n.common.unit.replace("�","°"):""),r.type=n.common.type,r.chartType==="auto"&&(r.chartType=n.common.type==="boolean"?"steps":"line",r.aggregate=n.common.type==="boolean"?"none":"minmax"),r.unit&&(r.falseText||r.trueText)&&delete r.unit,n.common.states&&!Array.isArray(n.common.states)&&r.states!==!1&&!n.common.unit){if(r.states?r.states=Object.assign(n.common.states,r.states):r.states=n.common.states,Object.keys(r.states).find(i=>i==="true"||i==="false")){const i={};Object.keys(r.states).forEach(o=>{i[o==="true"?1:o==="false"?0:o]=r.states[o]}),r.states=i}r.unit&&r.states&&delete r.unit}(r.commonYAxis||r.commonYAxis===0)&&(r.yaxe="off")}}catch(n){n===Xs&&this.onErrorFunc&&this.onErrorFunc(n),console.error(`[ChartModel] Cannot read object ${r.id}: ${n}`)}r.name=r.name||r.id||"",r.unit=r.unit||"",r.chartType==="auto"&&(r.chartType="line",r.aggregate="minmax"),await this.readOneChart(r.id,r.instance||this.defaultHistory,e)}async _readData(){var e;for(let r=0;rn.start&&i.unshift({value:[n.start,""]}),i[i.length-1].value[0]{r.chartType==="bar"?e[n]=this.barData[n]:e[n]=this.seriesData[n]}),this.onUpdateFunc(e,this.actualValues,this.barCategories)}static addTime(e,r,n){const a=new Date(e);return typeof r=="string"?r[1]==="m"||r[2]==="m"?(r=parseInt(r,10),a.setMonth(a.getMonth()-r),e=a.getTime()):r[1]==="y"||r[2]==="y"?(r=parseInt(r,10),a.setFullYear(a.getFullYear()-r),e=a.getTime()):(e=a.getTime(),n?e-=(parseInt(r,10)||0)*6e4:e-=(parseInt(r,10)||0)*1e3):(r=r||0,e=a.getTime(),n?e-=r*6e4:e-=r*1e3),e}async exportData(e,r,n){const a={};for(let i=0;i16777215&&(this.sessionId=1),this.config.l){this.reading=!0,this.onReadingFunc&&this.onReadingFunc(!0),this.seriesData=[],this.barData=[],this.barCategories=null,await this._readData();for(let e=0;e=0)&&Object.prototype.propertyIsEnumerable.call(t,n)&&(r[n]=t[n])}return r}function Nbt(t,e){if(t==null)return{};var r={};for(var n in t)if(Object.prototype.hasOwnProperty.call(t,n)){if(e.indexOf(n)>=0)continue;r[n]=t[n]}return r}function fx(){return fx=Object.assign?Object.assign.bind():function(t){for(var e=1;eE.createElement(e.tag,hx({key:r},e.attr),IJ(e.child)))}function wv(t){return e=>E.createElement(jbt,fx({attr:hx({},t.attr)},e),IJ(t.child))}function jbt(t){var e=r=>{var{attr:n,size:a,title:i}=t,o=Lbt(t,Rbt),s=a||r.size||"1em",l;return r.className&&(l=r.className),t.className&&(l=(l?l+" ":"")+t.className),E.createElement("svg",fx({stroke:"currentColor",fill:"currentColor",strokeWidth:"0"},r.attr,n,o,{className:l,style:hx(hx({color:t.color||r.color},r.style),t.style),height:s,width:s,xmlns:"http://www.w3.org/2000/svg"}),i&&E.createElement("title",null,i),t.children)};return p7!==void 0?E.createElement(p7.Consumer,null,r=>e(r)):e(PJ)}function Wbt(t){return wv({tag:"svg",attr:{viewBox:"0 0 448 512"},child:[{tag:"path",attr:{d:"M16 132h416c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H16C7.163 60 0 67.163 0 76v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z"},child:[]}]})(t)}function Hbt(t){return wv({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z"},child:[]}]})(t)}function Ubt(t){return wv({tag:"svg",attr:{viewBox:"0 0 448 512"},child:[{tag:"path",attr:{d:"M320 448v40c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V120c0-13.255 10.745-24 24-24h72v296c0 30.879 25.121 56 56 56h168zm0-344V0H152c-13.255 0-24 10.745-24 24v368c0 13.255 10.745 24 24 24h272c13.255 0 24-10.745 24-24V128H344c-13.2 0-24-10.8-24-24zm120.971-31.029L375.029 7.029A24 24 0 0 0 358.059 0H352v96h96v-6.059a24 24 0 0 0-7.029-16.97z"},child:[]}]})(t)}function Ybt(t){return wv({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M216 0h80c13.3 0 24 10.7 24 24v168h87.7c17.8 0 26.7 21.5 14.1 34.1L269.7 378.3c-7.5 7.5-19.8 7.5-27.3 0L90.1 226.1c-12.6-12.6-3.7-34.1 14.1-34.1H192V24c0-13.3 10.7-24 24-24zm296 376v112c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24V376c0-13.3 10.7-24 24-24h146.7l49 49c20.1 20.1 52.5 20.1 72.6 0l49-49H488c13.3 0 24 10.7 24 24zm-124 88c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20zm64 0c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20z"},child:[]}]})(t)}function Vbt(t){return wv({tag:"svg",attr:{viewBox:"0 0 576 512"},child:[{tag:"path",attr:{d:"M384 121.9c0-6.3-2.5-12.4-7-16.9L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128zM571 308l-95.7-96.4c-10.1-10.1-27.4-3-27.4 11.3V288h-64v64h64v65.2c0 14.3 17.3 21.4 27.4 11.3L571 332c6.6-6.6 6.6-17.4 0-24zm-379 28v-32c0-8.8 7.2-16 16-16h176V160H248c-13.2 0-24-10.8-24-24V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V352H208c-8.8 0-16-7.2-16-16z"},child:[]}]})(t)}function Gbt(t){return wv({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M256.455 8c66.269.119 126.437 26.233 170.859 68.685l35.715-35.715C478.149 25.851 504 36.559 504 57.941V192c0 13.255-10.745 24-24 24H345.941c-21.382 0-32.09-25.851-16.971-40.971l41.75-41.75c-30.864-28.899-70.801-44.907-113.23-45.273-92.398-.798-170.283 73.977-169.484 169.442C88.764 348.009 162.184 424 256 424c41.127 0 79.997-14.678 110.629-41.556 4.743-4.161 11.906-3.908 16.368.553l39.662 39.662c4.872 4.872 4.631 12.815-.482 17.433C378.202 479.813 319.926 504 256 504 119.034 504 8.001 392.967 8 256.002 7.999 119.193 119.646 7.755 256.455 8z"},child:[]}]})(t)}//! moment.js +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var QC=typeof window<"u"&&typeof window.document<"u",yl=QC?window:{},gN=QC&&yl.document.documentElement?"ontouchstart"in yl.document.documentElement:!1,_N=QC?"PointerEvent"in yl:!1,Qr="cropper",yN="all",yJ="crop",bJ="move",wJ="zoom",ef="e",tf="w",Pp="s",yu="n",Yg="ne",Vg="nw",Gg="se",qg="sw",OP="".concat(Qr,"-crop"),K9="".concat(Qr,"-disabled"),ai="".concat(Qr,"-hidden"),Q9="".concat(Qr,"-hide"),Hke="".concat(Qr,"-invisible"),dx="".concat(Qr,"-modal"),$P="".concat(Qr,"-move"),My="".concat(Qr,"Action"),X1="".concat(Qr,"Preview"),bN="crop",SJ="move",xJ="none",AP="crop",PP="cropend",IP="cropmove",RP="cropstart",e7="dblclick",Uke=gN?"touchstart":"mousedown",Yke=gN?"touchmove":"mousemove",Vke=gN?"touchend touchcancel":"mouseup",t7=_N?"pointerdown":Uke,r7=_N?"pointermove":Yke,n7=_N?"pointerup pointercancel":Vke,a7="ready",i7="resize",o7="wheel",LP="zoom",s7="image/jpeg",Gke=/^e|w|s|n|se|sw|ne|nw|all|crop|move|zoom$/,qke=/^data:/,Xke=/^data:image\/jpeg;base64,/,Jke=/^img|canvas$/i,CJ=200,TJ=100,l7={viewMode:0,dragMode:bN,initialAspectRatio:NaN,aspectRatio:NaN,data:null,preview:"",responsive:!0,restore:!0,checkCrossOrigin:!0,checkOrientation:!0,modal:!0,guides:!0,center:!0,highlight:!0,background:!0,autoCrop:!0,autoCropArea:.8,movable:!0,rotatable:!0,scalable:!0,zoomable:!0,zoomOnTouch:!0,zoomOnWheel:!0,wheelZoomRatio:.1,cropBoxMovable:!0,cropBoxResizable:!0,toggleDragModeOnDblclick:!0,minCanvasWidth:0,minCanvasHeight:0,minCropBoxWidth:0,minCropBoxHeight:0,minContainerWidth:CJ,minContainerHeight:TJ,ready:null,cropstart:null,cropmove:null,cropend:null,crop:null,zoom:null},Zke='
',Kke=Number.isNaN||yl.isNaN;function ir(t){return typeof t=="number"&&!Kke(t)}var c7=function(e){return e>0&&e<1/0};function DO(t){return typeof t>"u"}function ch(t){return DP(t)==="object"&&t!==null}var Qke=Object.prototype.hasOwnProperty;function xm(t){if(!ch(t))return!1;try{var e=t.constructor,r=e.prototype;return e&&r&&Qke.call(r,"isPrototypeOf")}catch{return!1}}function ni(t){return typeof t=="function"}var e2e=Array.prototype.slice;function kJ(t){return Array.from?Array.from(t):e2e.call(t)}function Dn(t,e){return t&&ni(e)&&(Array.isArray(t)||ir(t.length)?kJ(t).forEach(function(r,n){e.call(t,r,n,t)}):ch(t)&&Object.keys(t).forEach(function(r){e.call(t,t[r],r,t)})),t}var nn=Object.assign||function(e){for(var r=arguments.length,n=new Array(r>1?r-1:0),a=1;a0&&n.forEach(function(i){ch(i)&&Object.keys(i).forEach(function(o){e[o]=i[o]})}),e},t2e=/\.\d*(?:0|9){12}\d*$/;function Pm(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1e11;return t2e.test(t)?Math.round(t*e)/e:t}var r2e=/^width|height|left|top|marginLeft|marginTop$/;function Lu(t,e){var r=t.style;Dn(e,function(n,a){r2e.test(a)&&ir(n)&&(n="".concat(n,"px")),r[a]=n})}function n2e(t,e){return t.classList?t.classList.contains(e):t.className.indexOf(e)>-1}function Vn(t,e){if(e){if(ir(t.length)){Dn(t,function(n){Vn(n,e)});return}if(t.classList){t.classList.add(e);return}var r=t.className.trim();r?r.indexOf(e)<0&&(t.className="".concat(r," ").concat(e)):t.className=e}}function ml(t,e){if(e){if(ir(t.length)){Dn(t,function(r){ml(r,e)});return}if(t.classList){t.classList.remove(e);return}t.className.indexOf(e)>=0&&(t.className=t.className.replace(e,""))}}function Cm(t,e,r){if(e){if(ir(t.length)){Dn(t,function(n){Cm(n,e,r)});return}r?Vn(t,e):ml(t,e)}}var a2e=/([a-z\d])([A-Z])/g;function wN(t){return t.replace(a2e,"$1-$2").toLowerCase()}function NP(t,e){return ch(t[e])?t[e]:t.dataset?t.dataset[e]:t.getAttribute("data-".concat(wN(e)))}function Oy(t,e,r){ch(r)?t[e]=r:t.dataset?t.dataset[e]=r:t.setAttribute("data-".concat(wN(e)),r)}function i2e(t,e){if(ch(t[e]))try{delete t[e]}catch{t[e]=void 0}else if(t.dataset)try{delete t.dataset[e]}catch{t.dataset[e]=void 0}else t.removeAttribute("data-".concat(wN(e)))}var EJ=/\s\s*/,DJ=function(){var t=!1;if(QC){var e=!1,r=function(){},n=Object.defineProperty({},"once",{get:function(){return t=!0,e},set:function(i){e=i}});yl.addEventListener("test",r,n),yl.removeEventListener("test",r,n)}return t}();function qo(t,e,r){var n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{},a=r;e.trim().split(EJ).forEach(function(i){if(!DJ){var o=t.listeners;o&&o[i]&&o[i][r]&&(a=o[i][r],delete o[i][r],Object.keys(o[i]).length===0&&delete o[i],Object.keys(o).length===0&&delete t.listeners)}t.removeEventListener(i,a,n)})}function ro(t,e,r){var n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{},a=r;e.trim().split(EJ).forEach(function(i){if(n.once&&!DJ){var o=t.listeners,s=o===void 0?{}:o;a=function(){delete s[i][r],t.removeEventListener(i,a,n);for(var c=arguments.length,d=new Array(c),u=0;uMath.abs(r)&&(r=f)})}),r}function J1(t,e){var r=t.pageX,n=t.pageY,a={endX:r,endY:n};return e?a:vJ({startX:r,startY:n},a)}function l2e(t){var e=0,r=0,n=0;return Dn(t,function(a){var i=a.startX,o=a.startY;e+=i,r+=o,n+=1}),e/=n,r/=n,{pageX:e,pageY:r}}function Nu(t){var e=t.aspectRatio,r=t.height,n=t.width,a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"contain",i=c7(n),o=c7(r);if(i&&o){var s=r*e;a==="contain"&&s>n||a==="cover"&&s90?{width:l,height:s}:{width:s,height:l}}function u2e(t,e,r,n){var a=e.aspectRatio,i=e.naturalWidth,o=e.naturalHeight,s=e.rotate,l=s===void 0?0:s,c=e.scaleX,d=c===void 0?1:c,u=e.scaleY,f=u===void 0?1:u,p=r.aspectRatio,v=r.naturalWidth,g=r.naturalHeight,_=n.fillColor,b=_===void 0?"transparent":_,w=n.imageSmoothingEnabled,x=w===void 0?!0:w,C=n.imageSmoothingQuality,M=C===void 0?"low":C,k=n.maxWidth,O=k===void 0?1/0:k,R=n.maxHeight,L=R===void 0?1/0:R,$=n.minWidth,N=$===void 0?0:$,W=n.minHeight,j=W===void 0?0:W,Y=document.createElement("canvas"),V=Y.getContext("2d"),J=Nu({aspectRatio:p,width:O,height:L}),ie=Nu({aspectRatio:p,width:N,height:j},"cover"),K=Math.min(J.width,Math.max(ie.width,v)),Q=Math.min(J.height,Math.max(ie.height,g)),oe=Nu({aspectRatio:a,width:O,height:L}),H=Nu({aspectRatio:a,width:N,height:j},"cover"),X=Math.min(oe.width,Math.max(H.width,i)),ae=Math.min(oe.height,Math.max(H.height,o)),re=[-X/2,-ae/2,X,ae];return Y.width=Pm(K),Y.height=Pm(Q),V.fillStyle=b,V.fillRect(0,0,K,Q),V.save(),V.translate(K/2,Q/2),V.rotate(l*Math.PI/180),V.scale(d,f),V.imageSmoothingEnabled=x,V.imageSmoothingQuality=M,V.drawImage.apply(V,[t].concat(_J(re.map(function(le){return Math.floor(Pm(le))})))),V.restore(),Y}var OJ=String.fromCharCode;function d2e(t,e,r){var n="";r+=e;for(var a=e;a0;)r.push(OJ.apply(null,kJ(a.subarray(0,n)))),a=a.subarray(n);return"data:".concat(e,";base64,").concat(btoa(r.join("")))}function m2e(t){var e=new DataView(t),r;try{var n,a,i;if(e.getUint8(0)===255&&e.getUint8(1)===216)for(var o=e.byteLength,s=2;s+1=8&&(i=c+u)}}}if(i){var f=e.getUint16(i,n),p,v;for(v=0;v=0?i:CJ),height:Math.max(n.offsetHeight,o>=0?o:TJ)};this.containerData=s,Lu(a,{width:s.width,height:s.height}),Vn(e,ai),ml(a,ai)},initCanvas:function(){var e=this.containerData,r=this.imageData,n=this.options.viewMode,a=Math.abs(r.rotate)%180===90,i=a?r.naturalHeight:r.naturalWidth,o=a?r.naturalWidth:r.naturalHeight,s=i/o,l=e.width,c=e.height;e.height*s>e.width?n===3?l=e.height*s:c=e.width/s:n===3?c=e.width/s:l=e.height*s;var d={aspectRatio:s,naturalWidth:i,naturalHeight:o,width:l,height:c};this.canvasData=d,this.limited=n===1||n===2,this.limitCanvas(!0,!0),d.width=Math.min(Math.max(d.width,d.minWidth),d.maxWidth),d.height=Math.min(Math.max(d.height,d.minHeight),d.maxHeight),d.left=(e.width-d.width)/2,d.top=(e.height-d.height)/2,d.oldLeft=d.left,d.oldTop=d.top,this.initialCanvasData=nn({},d)},limitCanvas:function(e,r){var n=this.options,a=this.containerData,i=this.canvasData,o=this.cropBoxData,s=n.viewMode,l=i.aspectRatio,c=this.cropped&&o;if(e){var d=Number(n.minCanvasWidth)||0,u=Number(n.minCanvasHeight)||0;s>1?(d=Math.max(d,a.width),u=Math.max(u,a.height),s===3&&(u*l>d?d=u*l:u=d/l)):s>0&&(d?d=Math.max(d,c?o.width:0):u?u=Math.max(u,c?o.height:0):c&&(d=o.width,u=o.height,u*l>d?d=u*l:u=d/l));var f=Nu({aspectRatio:l,width:d,height:u});d=f.width,u=f.height,i.minWidth=d,i.minHeight=u,i.maxWidth=1/0,i.maxHeight=1/0}if(r)if(s>(c?0:1)){var p=a.width-i.width,v=a.height-i.height;i.minLeft=Math.min(0,p),i.minTop=Math.min(0,v),i.maxLeft=Math.max(0,p),i.maxTop=Math.max(0,v),c&&this.limited&&(i.minLeft=Math.min(o.left,o.left+(o.width-i.width)),i.minTop=Math.min(o.top,o.top+(o.height-i.height)),i.maxLeft=o.left,i.maxTop=o.top,s===2&&(i.width>=a.width&&(i.minLeft=Math.min(0,p),i.maxLeft=Math.max(0,p)),i.height>=a.height&&(i.minTop=Math.min(0,v),i.maxTop=Math.max(0,v))))}else i.minLeft=-i.width,i.minTop=-i.height,i.maxLeft=a.width,i.maxTop=a.height},renderCanvas:function(e,r){var n=this.canvasData,a=this.imageData;if(r){var i=c2e({width:a.naturalWidth*Math.abs(a.scaleX||1),height:a.naturalHeight*Math.abs(a.scaleY||1),degree:a.rotate||0}),o=i.width,s=i.height,l=n.width*(o/n.naturalWidth),c=n.height*(s/n.naturalHeight);n.left-=(l-n.width)/2,n.top-=(c-n.height)/2,n.width=l,n.height=c,n.aspectRatio=o/s,n.naturalWidth=o,n.naturalHeight=s,this.limitCanvas(!0,!1)}(n.width>n.maxWidth||n.widthn.maxHeight||n.heightr.width?i.height=i.width/n:i.width=i.height*n),this.cropBoxData=i,this.limitCropBox(!0,!0),i.width=Math.min(Math.max(i.width,i.minWidth),i.maxWidth),i.height=Math.min(Math.max(i.height,i.minHeight),i.maxHeight),i.width=Math.max(i.minWidth,i.width*a),i.height=Math.max(i.minHeight,i.height*a),i.left=r.left+(r.width-i.width)/2,i.top=r.top+(r.height-i.height)/2,i.oldLeft=i.left,i.oldTop=i.top,this.initialCropBoxData=nn({},i)},limitCropBox:function(e,r){var n=this.options,a=this.containerData,i=this.canvasData,o=this.cropBoxData,s=this.limited,l=n.aspectRatio;if(e){var c=Number(n.minCropBoxWidth)||0,d=Number(n.minCropBoxHeight)||0,u=s?Math.min(a.width,i.width,i.width+i.left,a.width-i.left):a.width,f=s?Math.min(a.height,i.height,i.height+i.top,a.height-i.top):a.height;c=Math.min(c,a.width),d=Math.min(d,a.height),l&&(c&&d?d*l>c?d=c/l:c=d*l:c?d=c/l:d&&(c=d*l),f*l>u?f=u/l:u=f*l),o.minWidth=Math.min(c,u),o.minHeight=Math.min(d,f),o.maxWidth=u,o.maxHeight=f}r&&(s?(o.minLeft=Math.max(0,i.left),o.minTop=Math.max(0,i.top),o.maxLeft=Math.min(a.width,i.left+i.width)-o.width,o.maxTop=Math.min(a.height,i.top+i.height)-o.height):(o.minLeft=0,o.minTop=0,o.maxLeft=a.width-o.width,o.maxTop=a.height-o.height))},renderCropBox:function(){var e=this.options,r=this.containerData,n=this.cropBoxData;(n.width>n.maxWidth||n.widthn.maxHeight||n.height=r.width&&n.height>=r.height?bJ:yN),Lu(this.cropBox,nn({width:n.width,height:n.height},ny({translateX:n.left,translateY:n.top}))),this.cropped&&this.limited&&this.limitCanvas(!0,!0),this.disabled||this.output()},output:function(){this.preview(),Im(this.element,AP,this.getData())}},_2e={initPreview:function(){var e=this.element,r=this.crossOrigin,n=this.options.preview,a=r?this.crossOriginUrl:this.url,i=e.alt||"The image to preview",o=document.createElement("img");if(r&&(o.crossOrigin=r),o.src=a,o.alt=i,this.viewBox.appendChild(o),this.viewBoxImage=o,!!n){var s=n;typeof n=="string"?s=e.ownerDocument.querySelectorAll(n):n.querySelector&&(s=[n]),this.previews=s,Dn(s,function(l){var c=document.createElement("img");Oy(l,X1,{width:l.offsetWidth,height:l.offsetHeight,html:l.innerHTML}),r&&(c.crossOrigin=r),c.src=a,c.alt=i,c.style.cssText='display:block;width:100%;height:auto;min-width:0!important;min-height:0!important;max-width:none!important;max-height:none!important;image-orientation:0deg!important;"',l.innerHTML="",l.appendChild(c)})}},resetPreview:function(){Dn(this.previews,function(e){var r=NP(e,X1);Lu(e,{width:r.width,height:r.height}),e.innerHTML=r.html,i2e(e,X1)})},preview:function(){var e=this.imageData,r=this.canvasData,n=this.cropBoxData,a=n.width,i=n.height,o=e.width,s=e.height,l=n.left-r.left-e.left,c=n.top-r.top-e.top;!this.cropped||this.disabled||(Lu(this.viewBoxImage,nn({width:o,height:s},ny(nn({translateX:-l,translateY:-c},e)))),Dn(this.previews,function(d){var u=NP(d,X1),f=u.width,p=u.height,v=f,g=p,_=1;a&&(_=f/a,g=i*_),i&&g>p&&(_=p/i,v=a*_,g=p),Lu(d,{width:v,height:g}),Lu(d.getElementsByTagName("img")[0],nn({width:o*_,height:s*_},ny(nn({translateX:-l*_,translateY:-c*_},e))))}))}},y2e={bind:function(){var e=this.element,r=this.options,n=this.cropper;ni(r.cropstart)&&ro(e,RP,r.cropstart),ni(r.cropmove)&&ro(e,IP,r.cropmove),ni(r.cropend)&&ro(e,PP,r.cropend),ni(r.crop)&&ro(e,AP,r.crop),ni(r.zoom)&&ro(e,LP,r.zoom),ro(n,t7,this.onCropStart=this.cropStart.bind(this)),r.zoomable&&r.zoomOnWheel&&ro(n,o7,this.onWheel=this.wheel.bind(this),{passive:!1,capture:!0}),r.toggleDragModeOnDblclick&&ro(n,e7,this.onDblclick=this.dblclick.bind(this)),ro(e.ownerDocument,r7,this.onCropMove=this.cropMove.bind(this)),ro(e.ownerDocument,n7,this.onCropEnd=this.cropEnd.bind(this)),r.responsive&&ro(window,i7,this.onResize=this.resize.bind(this))},unbind:function(){var e=this.element,r=this.options,n=this.cropper;ni(r.cropstart)&&qo(e,RP,r.cropstart),ni(r.cropmove)&&qo(e,IP,r.cropmove),ni(r.cropend)&&qo(e,PP,r.cropend),ni(r.crop)&&qo(e,AP,r.crop),ni(r.zoom)&&qo(e,LP,r.zoom),qo(n,t7,this.onCropStart),r.zoomable&&r.zoomOnWheel&&qo(n,o7,this.onWheel,{passive:!1,capture:!0}),r.toggleDragModeOnDblclick&&qo(n,e7,this.onDblclick),qo(e.ownerDocument,r7,this.onCropMove),qo(e.ownerDocument,n7,this.onCropEnd),r.responsive&&qo(window,i7,this.onResize)}},b2e={resize:function(){if(!this.disabled){var e=this.options,r=this.container,n=this.containerData,a=r.offsetWidth/n.width,i=r.offsetHeight/n.height,o=Math.abs(a-1)>Math.abs(i-1)?a:i;if(o!==1){var s,l;e.restore&&(s=this.getCanvasData(),l=this.getCropBoxData()),this.render(),e.restore&&(this.setCanvasData(Dn(s,function(c,d){s[d]=c*o})),this.setCropBoxData(Dn(l,function(c,d){l[d]=c*o})))}}},dblclick:function(){this.disabled||this.options.dragMode===xJ||this.setDragMode(n2e(this.dragBox,OP)?SJ:bN)},wheel:function(e){var r=this,n=Number(this.options.wheelZoomRatio)||.1,a=1;this.disabled||(e.preventDefault(),!this.wheeling&&(this.wheeling=!0,setTimeout(function(){r.wheeling=!1},50),e.deltaY?a=e.deltaY>0?1:-1:e.wheelDelta?a=-e.wheelDelta/120:e.detail&&(a=e.detail>0?1:-1),this.zoom(-a*n,e)))},cropStart:function(e){var r=e.buttons,n=e.button;if(!(this.disabled||(e.type==="mousedown"||e.type==="pointerdown"&&e.pointerType==="mouse")&&(ir(r)&&r!==1||ir(n)&&n!==0||e.ctrlKey))){var a=this.options,i=this.pointers,o;e.changedTouches?Dn(e.changedTouches,function(s){i[s.identifier]=J1(s)}):i[e.pointerId||0]=J1(e),Object.keys(i).length>1&&a.zoomable&&a.zoomOnTouch?o=wJ:o=NP(e.target,My),Gke.test(o)&&Im(this.element,RP,{originalEvent:e,action:o})!==!1&&(e.preventDefault(),this.action=o,this.cropping=!1,o===yJ&&(this.cropping=!0,Vn(this.dragBox,dx)))}},cropMove:function(e){var r=this.action;if(!(this.disabled||!r)){var n=this.pointers;e.preventDefault(),Im(this.element,IP,{originalEvent:e,action:r})!==!1&&(e.changedTouches?Dn(e.changedTouches,function(a){nn(n[a.identifier]||{},J1(a,!0))}):nn(n[e.pointerId||0]||{},J1(e,!0)),this.change(e))}},cropEnd:function(e){if(!this.disabled){var r=this.action,n=this.pointers;e.changedTouches?Dn(e.changedTouches,function(a){delete n[a.identifier]}):delete n[e.pointerId||0],r&&(e.preventDefault(),Object.keys(n).length||(this.action=""),this.cropping&&(this.cropping=!1,Cm(this.dragBox,dx,this.cropped&&this.options.modal)),Im(this.element,PP,{originalEvent:e,action:r}))}}},w2e={change:function(e){var r=this.options,n=this.canvasData,a=this.containerData,i=this.cropBoxData,o=this.pointers,s=this.action,l=r.aspectRatio,c=i.left,d=i.top,u=i.width,f=i.height,p=c+u,v=d+f,g=0,_=0,b=a.width,w=a.height,x=!0,C;!l&&e.shiftKey&&(l=u&&f?u/f:1),this.limited&&(g=i.minLeft,_=i.minTop,b=g+Math.min(a.width,n.width,n.left+n.width),w=_+Math.min(a.height,n.height,n.top+n.height));var M=o[Object.keys(o)[0]],k={x:M.endX-M.startX,y:M.endY-M.startY},O=function(L){switch(L){case ef:p+k.x>b&&(k.x=b-p);break;case tf:c+k.xw&&(k.y=w-v);break}};switch(s){case yN:c+=k.x,d+=k.y;break;case ef:if(k.x>=0&&(p>=b||l&&(d<=_||v>=w))){x=!1;break}O(ef),u+=k.x,u<0&&(s=tf,u=-u,c-=u),l&&(f=u/l,d+=(i.height-f)/2);break;case yu:if(k.y<=0&&(d<=_||l&&(c<=g||p>=b))){x=!1;break}O(yu),f-=k.y,d+=k.y,f<0&&(s=Pp,f=-f,d-=f),l&&(u=f*l,c+=(i.width-u)/2);break;case tf:if(k.x<=0&&(c<=g||l&&(d<=_||v>=w))){x=!1;break}O(tf),u-=k.x,c+=k.x,u<0&&(s=ef,u=-u,c-=u),l&&(f=u/l,d+=(i.height-f)/2);break;case Pp:if(k.y>=0&&(v>=w||l&&(c<=g||p>=b))){x=!1;break}O(Pp),f+=k.y,f<0&&(s=yu,f=-f,d-=f),l&&(u=f*l,c+=(i.width-u)/2);break;case Yg:if(l){if(k.y<=0&&(d<=_||p>=b)){x=!1;break}O(yu),f-=k.y,d+=k.y,u=f*l}else O(yu),O(ef),k.x>=0?p_&&(f-=k.y,d+=k.y):(f-=k.y,d+=k.y);u<0&&f<0?(s=qg,f=-f,u=-u,d-=f,c-=u):u<0?(s=Vg,u=-u,c-=u):f<0&&(s=Gg,f=-f,d-=f);break;case Vg:if(l){if(k.y<=0&&(d<=_||c<=g)){x=!1;break}O(yu),f-=k.y,d+=k.y,u=f*l,c+=i.width-u}else O(yu),O(tf),k.x<=0?c>g?(u-=k.x,c+=k.x):k.y<=0&&d<=_&&(x=!1):(u-=k.x,c+=k.x),k.y<=0?d>_&&(f-=k.y,d+=k.y):(f-=k.y,d+=k.y);u<0&&f<0?(s=Gg,f=-f,u=-u,d-=f,c-=u):u<0?(s=Yg,u=-u,c-=u):f<0&&(s=qg,f=-f,d-=f);break;case qg:if(l){if(k.x<=0&&(c<=g||v>=w)){x=!1;break}O(tf),u-=k.x,c+=k.x,f=u/l}else O(Pp),O(tf),k.x<=0?c>g?(u-=k.x,c+=k.x):k.y>=0&&v>=w&&(x=!1):(u-=k.x,c+=k.x),k.y>=0?v=0&&(p>=b||v>=w)){x=!1;break}O(ef),u+=k.x,f=u/l}else O(Pp),O(ef),k.x>=0?p=0&&v>=w&&(x=!1):u+=k.x,k.y>=0?v0?s=k.y>0?Gg:Yg:k.x<0&&(c-=u,s=k.y>0?qg:Vg),k.y<0&&(d-=f),this.cropped||(ml(this.cropBox,ai),this.cropped=!0,this.limited&&this.limitCropBox(!0,!0));break}x&&(i.width=u,i.height=f,i.left=c,i.top=d,this.action=s,this.renderCropBox()),Dn(o,function(R){R.startX=R.endX,R.startY=R.endY})}},S2e={crop:function(){return this.ready&&!this.cropped&&!this.disabled&&(this.cropped=!0,this.limitCropBox(!0,!0),this.options.modal&&Vn(this.dragBox,dx),ml(this.cropBox,ai),this.setCropBoxData(this.initialCropBoxData)),this},reset:function(){return this.ready&&!this.disabled&&(this.imageData=nn({},this.initialImageData),this.canvasData=nn({},this.initialCanvasData),this.cropBoxData=nn({},this.initialCropBoxData),this.renderCanvas(),this.cropped&&this.renderCropBox()),this},clear:function(){return this.cropped&&!this.disabled&&(nn(this.cropBoxData,{left:0,top:0,width:0,height:0}),this.cropped=!1,this.renderCropBox(),this.limitCanvas(!0,!0),this.renderCanvas(),ml(this.dragBox,dx),Vn(this.cropBox,ai)),this},replace:function(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;return!this.disabled&&e&&(this.isImg&&(this.element.src=e),r?(this.url=e,this.image.src=e,this.ready&&(this.viewBoxImage.src=e,Dn(this.previews,function(n){n.getElementsByTagName("img")[0].src=e}))):(this.isImg&&(this.replaced=!0),this.options.data=null,this.uncreate(),this.load(e))),this},enable:function(){return this.ready&&this.disabled&&(this.disabled=!1,ml(this.cropper,K9)),this},disable:function(){return this.ready&&!this.disabled&&(this.disabled=!0,Vn(this.cropper,K9)),this},destroy:function(){var e=this.element;return e[Qr]?(e[Qr]=void 0,this.isImg&&this.replaced&&(e.src=this.originalUrl),this.uncreate(),this):this},move:function(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:e,n=this.canvasData,a=n.left,i=n.top;return this.moveTo(DO(e)?e:a+Number(e),DO(r)?r:i+Number(r))},moveTo:function(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:e,n=this.canvasData,a=!1;return e=Number(e),r=Number(r),this.ready&&!this.disabled&&this.options.movable&&(ir(e)&&(n.left=e,a=!0),ir(r)&&(n.top=r,a=!0),a&&this.renderCanvas(!0)),this},zoom:function(e,r){var n=this.canvasData;return e=Number(e),e<0?e=1/(1-e):e=1+e,this.zoomTo(n.width*e/n.naturalWidth,null,r)},zoomTo:function(e,r,n){var a=this.options,i=this.canvasData,o=i.width,s=i.height,l=i.naturalWidth,c=i.naturalHeight;if(e=Number(e),e>=0&&this.ready&&!this.disabled&&a.zoomable){var d=l*e,u=c*e;if(Im(this.element,LP,{ratio:e,oldRatio:o/l,originalEvent:n})===!1)return this;if(n){var f=this.pointers,p=MJ(this.cropper),v=f&&Object.keys(f).length?l2e(f):{pageX:n.pageX,pageY:n.pageY};i.left-=(d-o)*((v.pageX-p.left-i.left)/o),i.top-=(u-s)*((v.pageY-p.top-i.top)/s)}else xm(r)&&ir(r.x)&&ir(r.y)?(i.left-=(d-o)*((r.x-i.left)/o),i.top-=(u-s)*((r.y-i.top)/s)):(i.left-=(d-o)/2,i.top-=(u-s)/2);i.width=d,i.height=u,this.renderCanvas(!0)}return this},rotate:function(e){return this.rotateTo((this.imageData.rotate||0)+Number(e))},rotateTo:function(e){return e=Number(e),ir(e)&&this.ready&&!this.disabled&&this.options.rotatable&&(this.imageData.rotate=e%360,this.renderCanvas(!0,!0)),this},scaleX:function(e){var r=this.imageData.scaleY;return this.scale(e,ir(r)?r:1)},scaleY:function(e){var r=this.imageData.scaleX;return this.scale(ir(r)?r:1,e)},scale:function(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:e,n=this.imageData,a=!1;return e=Number(e),r=Number(r),this.ready&&!this.disabled&&this.options.scalable&&(ir(e)&&(n.scaleX=e,a=!0),ir(r)&&(n.scaleY=r,a=!0),a&&this.renderCanvas(!0,!0)),this},getData:function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1,r=this.options,n=this.imageData,a=this.canvasData,i=this.cropBoxData,o;if(this.ready&&this.cropped){o={x:i.left-a.left,y:i.top-a.top,width:i.width,height:i.height};var s=n.width/n.naturalWidth;if(Dn(o,function(d,u){o[u]=d/s}),e){var l=Math.round(o.y+o.height),c=Math.round(o.x+o.width);o.x=Math.round(o.x),o.y=Math.round(o.y),o.width=c-o.x,o.height=l-o.y}}else o={x:0,y:0,width:0,height:0};return r.rotatable&&(o.rotate=n.rotate||0),r.scalable&&(o.scaleX=n.scaleX||1,o.scaleY=n.scaleY||1),o},setData:function(e){var r=this.options,n=this.imageData,a=this.canvasData,i={};if(this.ready&&!this.disabled&&xm(e)){var o=!1;r.rotatable&&ir(e.rotate)&&e.rotate!==n.rotate&&(n.rotate=e.rotate,o=!0),r.scalable&&(ir(e.scaleX)&&e.scaleX!==n.scaleX&&(n.scaleX=e.scaleX,o=!0),ir(e.scaleY)&&e.scaleY!==n.scaleY&&(n.scaleY=e.scaleY,o=!0)),o&&this.renderCanvas(!0,!0);var s=n.width/n.naturalWidth;ir(e.x)&&(i.left=e.x*s+a.left),ir(e.y)&&(i.top=e.y*s+a.top),ir(e.width)&&(i.width=e.width*s),ir(e.height)&&(i.height=e.height*s),this.setCropBoxData(i)}return this},getContainerData:function(){return this.ready?nn({},this.containerData):{}},getImageData:function(){return this.sized?nn({},this.imageData):{}},getCanvasData:function(){var e=this.canvasData,r={};return this.ready&&Dn(["left","top","width","height","naturalWidth","naturalHeight"],function(n){r[n]=e[n]}),r},setCanvasData:function(e){var r=this.canvasData,n=r.aspectRatio;return this.ready&&!this.disabled&&xm(e)&&(ir(e.left)&&(r.left=e.left),ir(e.top)&&(r.top=e.top),ir(e.width)?(r.width=e.width,r.height=e.width/n):ir(e.height)&&(r.height=e.height,r.width=e.height*n),this.renderCanvas(!0)),this},getCropBoxData:function(){var e=this.cropBoxData,r;return this.ready&&this.cropped&&(r={left:e.left,top:e.top,width:e.width,height:e.height}),r||{}},setCropBoxData:function(e){var r=this.cropBoxData,n=this.options.aspectRatio,a,i;return this.ready&&this.cropped&&!this.disabled&&xm(e)&&(ir(e.left)&&(r.left=e.left),ir(e.top)&&(r.top=e.top),ir(e.width)&&e.width!==r.width&&(a=!0,r.width=e.width),ir(e.height)&&e.height!==r.height&&(i=!0,r.height=e.height),n&&(a?r.height=r.width/n:i&&(r.width=r.height*n)),this.renderCropBox()),this},getCroppedCanvas:function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(!this.ready||!window.HTMLCanvasElement)return null;var r=this.canvasData,n=u2e(this.image,this.imageData,r,e);if(!this.cropped)return n;var a=this.getData(e.rounded),i=a.x,o=a.y,s=a.width,l=a.height,c=n.width/Math.floor(r.naturalWidth);c!==1&&(i*=c,o*=c,s*=c,l*=c);var d=s/l,u=Nu({aspectRatio:d,width:e.maxWidth||1/0,height:e.maxHeight||1/0}),f=Nu({aspectRatio:d,width:e.minWidth||0,height:e.minHeight||0},"cover"),p=Nu({aspectRatio:d,width:e.width||(c!==1?n.width:s),height:e.height||(c!==1?n.height:l)}),v=p.width,g=p.height;v=Math.min(u.width,Math.max(f.width,v)),g=Math.min(u.height,Math.max(f.height,g));var _=document.createElement("canvas"),b=_.getContext("2d");_.width=Pm(v),_.height=Pm(g),b.fillStyle=e.fillColor||"transparent",b.fillRect(0,0,v,g);var w=e.imageSmoothingEnabled,x=w===void 0?!0:w,C=e.imageSmoothingQuality;b.imageSmoothingEnabled=x,C&&(b.imageSmoothingQuality=C);var M=n.width,k=n.height,O=i,R=o,L,$,N,W,j,Y;O<=-s||O>M?(O=0,L=0,N=0,j=0):O<=0?(N=-O,O=0,L=Math.min(M,s+O),j=L):O<=M&&(N=0,L=Math.min(s,M-O),j=L),L<=0||R<=-l||R>k?(R=0,$=0,W=0,Y=0):R<=0?(W=-R,R=0,$=Math.min(k,l+R),Y=$):R<=k&&(W=0,$=Math.min(l,k-R),Y=$);var V=[O,R,L,$];if(j>0&&Y>0){var J=v/s;V.push(N*J,W*J,j*J,Y*J)}return b.drawImage.apply(b,[n].concat(_J(V.map(function(ie){return Math.floor(Pm(ie))})))),_},setAspectRatio:function(e){var r=this.options;return!this.disabled&&!DO(e)&&(r.aspectRatio=Math.max(0,e)||NaN,this.ready&&(this.initCropBox(),this.cropped&&this.renderCropBox())),this},setDragMode:function(e){var r=this.options,n=this.dragBox,a=this.face;if(this.ready&&!this.disabled){var i=e===bN,o=r.movable&&e===SJ;e=i||o?e:xJ,r.dragMode=e,Oy(n,My,e),Cm(n,OP,i),Cm(n,$P,o),r.cropBoxMovable||(Oy(a,My,e),Cm(a,OP,i),Cm(a,$P,o))}return this}},x2e=yl.Cropper,$J=function(){function t(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(Lke(this,t),!e||!Jke.test(e.tagName))throw new Error("The first argument is required and must be an or element.");this.element=e,this.options=nn({},l7,xm(r)&&r),this.cropped=!1,this.disabled=!1,this.pointers={},this.ready=!1,this.reloading=!1,this.replaced=!1,this.sized=!1,this.sizing=!1,this.init()}return Nke(t,[{key:"init",value:function(){var r=this.element,n=r.tagName.toLowerCase(),a;if(!r[Qr]){if(r[Qr]=this,n==="img"){if(this.isImg=!0,a=r.getAttribute("src")||"",this.originalUrl=a,!a)return;a=r.src}else n==="canvas"&&window.HTMLCanvasElement&&(a=r.toDataURL());this.load(a)}}},{key:"load",value:function(r){var n=this;if(r){this.url=r,this.imageData={};var a=this.element,i=this.options;if(!i.rotatable&&!i.scalable&&(i.checkOrientation=!1),!i.checkOrientation||!window.ArrayBuffer){this.clone();return}if(qke.test(r)){Xke.test(r)?this.read(h2e(r)):this.clone();return}var o=new XMLHttpRequest,s=this.clone.bind(this);this.reloading=!0,this.xhr=o,o.onabort=s,o.onerror=s,o.ontimeout=s,o.onprogress=function(){o.getResponseHeader("content-type")!==s7&&o.abort()},o.onload=function(){n.read(o.response)},o.onloadend=function(){n.reloading=!1,n.xhr=null},i.checkCrossOrigin&&u7(r)&&a.crossOrigin&&(r=d7(r)),o.open("GET",r,!0),o.responseType="arraybuffer",o.withCredentials=a.crossOrigin==="use-credentials",o.send()}}},{key:"read",value:function(r){var n=this.options,a=this.imageData,i=m2e(r),o=0,s=1,l=1;if(i>1){this.url=p2e(r,s7);var c=v2e(i);o=c.rotate,s=c.scaleX,l=c.scaleY}n.rotatable&&(a.rotate=o),n.scalable&&(a.scaleX=s,a.scaleY=l),this.clone()}},{key:"clone",value:function(){var r=this.element,n=this.url,a=r.crossOrigin,i=n;this.options.checkCrossOrigin&&u7(n)&&(a||(a="anonymous"),i=d7(n)),this.crossOrigin=a,this.crossOriginUrl=i;var o=document.createElement("img");a&&(o.crossOrigin=a),o.src=i||n,o.alt=r.alt||"The image to crop",this.image=o,o.onload=this.start.bind(this),o.onerror=this.stop.bind(this),Vn(o,Q9),r.parentNode.insertBefore(o,r.nextSibling)}},{key:"start",value:function(){var r=this,n=this.image;n.onload=null,n.onerror=null,this.sizing=!0;var a=yl.navigator&&/(?:iPad|iPhone|iPod).*?AppleWebKit/i.test(yl.navigator.userAgent),i=function(c,d){nn(r.imageData,{naturalWidth:c,naturalHeight:d,aspectRatio:c/d}),r.initialImageData=nn({},r.imageData),r.sizing=!1,r.sized=!0,r.build()};if(n.naturalWidth&&!a){i(n.naturalWidth,n.naturalHeight);return}var o=document.createElement("img"),s=document.body||document.documentElement;this.sizingImage=o,o.onload=function(){i(o.width,o.height),a||s.removeChild(o)},o.src=n.src,a||(o.style.cssText="left:0;max-height:none!important;max-width:none!important;min-height:0!important;min-width:0!important;opacity:0;position:absolute;top:0;z-index:-1;",s.appendChild(o))}},{key:"stop",value:function(){var r=this.image;r.onload=null,r.onerror=null,r.parentNode.removeChild(r),this.image=null}},{key:"build",value:function(){if(!(!this.sized||this.ready)){var r=this.element,n=this.options,a=this.image,i=r.parentNode,o=document.createElement("div");o.innerHTML=Zke;var s=o.querySelector(".".concat(Qr,"-container")),l=s.querySelector(".".concat(Qr,"-canvas")),c=s.querySelector(".".concat(Qr,"-drag-box")),d=s.querySelector(".".concat(Qr,"-crop-box")),u=d.querySelector(".".concat(Qr,"-face"));this.container=i,this.cropper=s,this.canvas=l,this.dragBox=c,this.cropBox=d,this.viewBox=s.querySelector(".".concat(Qr,"-view-box")),this.face=u,l.appendChild(a),Vn(r,ai),i.insertBefore(s,r.nextSibling),ml(a,Q9),this.initPreview(),this.bind(),n.initialAspectRatio=Math.max(0,n.initialAspectRatio)||NaN,n.aspectRatio=Math.max(0,n.aspectRatio)||NaN,n.viewMode=Math.max(0,Math.min(3,Math.round(n.viewMode)))||0,Vn(d,ai),n.guides||Vn(d.getElementsByClassName("".concat(Qr,"-dashed")),ai),n.center||Vn(d.getElementsByClassName("".concat(Qr,"-center")),ai),n.background&&Vn(s,"".concat(Qr,"-bg")),n.highlight||Vn(u,Hke),n.cropBoxMovable&&(Vn(u,$P),Oy(u,My,yN)),n.cropBoxResizable||(Vn(d.getElementsByClassName("".concat(Qr,"-line")),ai),Vn(d.getElementsByClassName("".concat(Qr,"-point")),ai)),this.render(),this.ready=!0,this.setDragMode(n.dragMode),n.autoCrop&&this.crop(),this.setData(n.data),ni(n.ready)&&ro(r,a7,n.ready,{once:!0}),Im(r,a7)}}},{key:"unbuild",value:function(){if(this.ready){this.ready=!1,this.unbind(),this.resetPreview();var r=this.cropper.parentNode;r&&r.removeChild(this.cropper),ml(this.element,ai)}}},{key:"uncreate",value:function(){this.ready?(this.unbuild(),this.ready=!1,this.cropped=!1):this.sizing?(this.sizingImage.onload=null,this.sizing=!1,this.sized=!1):this.reloading?(this.xhr.onabort=null,this.xhr.abort()):this.image&&this.stop()}}],[{key:"noConflict",value:function(){return window.Cropper=x2e,t}},{key:"setDefaults",value:function(r){nn(l7,xm(r)&&r)}}])}();nn($J.prototype,g2e,_2e,y2e,b2e,w2e,S2e);var If=function(){return If=Object.assign||function(t){for(var e,r=1,n=arguments.length;r0&&R.zoomTo(ie)}(O.currentTarget.cropper,x),_&&_(O)}}));b&&b(k)}return function(){var O,R;(R=(O=C.current)===null||O===void 0?void 0:O.cropper)===null||R===void 0||R.destroy()}},[C]);var M=function(k){return C2e.reduce(function(O,R){var L=O,$=R;return L[$],OO(L,[typeof $=="symbol"?$:$+""])},k)}(If(If({},w),{crossOrigin:l,src:i,alt:g}));return E.createElement("div",{style:o,className:s},E.createElement("img",If({},M,{style:T2e,ref:C})))});const bu={mainDiv:{width:"100%",height:"100%",overflow:"auto"},formControl:{margin:0,minWidth:120},formControlMarginRight:{marginRight:5},formControlPaddingTop:{paddingTop:6.2}},k2e={once:"once",interval:"interval",intervalBetween:"intervalBetween",specific:"specific"},ya={seconds:"seconds",minutes:"minutes"},f7=["ra_Sunday","ra_Monday","ra_Tuesday","ra_Wednesday","ra_Thursday","ra_Friday","ra_Saturday","ra_Sunday"];function il(t){return t<10?`0${t}`:`${t}`}const E2e={mode:"interval",interval:{period:1,unit:ya.minutes}};function bS(t){if(t==="*")return[0,1,2,3,4,5,6];const e=t.split(","),r=[];return e.forEach(n=>{const a=n.split("-");if(a.length===2){const i=parseInt(a[0],10),o=parseInt(a[1],10);for(let s=i;s<=o;s++)r.includes(s===7?0:s)||r.push(s===7?0:s)}else{n==="7"&&(n="0");const i=parseInt(n,10);r.includes(i)||r.push(i)}}),r.sort(),r}function AJ(t,e){t=t.replace(/['"]/g,"").trim();const r=t.split(" ");let n,a=null;return r.length===6?n={seconds:r[0]||"*",minutes:r[1]||"*",hours:r[2]||"*",date:r[3]||"*",months:r[4]||"*",dow:r[5]||"*"}:n={seconds:null,minutes:r[0]||"*",hours:r[1]||"*",date:r[2]||"*",months:r[3]||"*",dow:r[4]||"*"},n.seconds===null&&n.minutes==="*"&&n.hours==="*"&&n.date==="*"&&n.months==="*"&&(n.dow==="*"||e)&&(a={mode:"interval",interval:{period:1,unit:ya.minutes}}),n.seconds==="*"&&n.minutes==="*"&&n.hours==="*"&&n.date==="*"&&n.months==="*"&&(n.dow==="*"||e)?a={mode:"interval",interval:{period:1,unit:ya.seconds}}:n.seconds===null&&n.minutes.includes("/")&&n.hours==="*"&&n.date==="*"&&n.months==="*"&&(n.dow==="*"||e)?a={mode:"interval",interval:{period:parseInt(n.minutes.split("/")[1],10),unit:ya.minutes}}:n.seconds!==null&&n.seconds.includes("/")&&n.minutes==="*"&&n.hours==="*"&&n.date==="*"&&n.months==="*"&&(n.dow==="*"||e)?a={mode:"interval",interval:{period:parseInt(n.seconds.split("/")[1],10),unit:ya.seconds}}:n.seconds!==null&&n.seconds.includes("/")&&n.minutes==="*"&&n.hours.includes("-")&&n.date==="*"&&n.months==="*"&&(n.dow==="*"||e)?a={mode:"intervalBetween",intervalBetween:{period:parseInt(n.seconds.split("/")[1],10),unit:ya.seconds,timeFrom:parseInt(n.hours.split("-")[0],10),timeTo:parseInt(n.hours.split("-")[1],10),weekdays:bS(n.dow)}}:n.seconds===null&&n.minutes.includes("/")&&n.hours.includes("-")&&n.date==="*"&&n.months==="*"&&(n.dow==="*"||e)?a={mode:"intervalBetween",intervalBetween:{period:parseInt(n.minutes.split("/")[1],10),unit:ya.minutes,timeFrom:parseInt(n.hours.split("-")[0],10),timeTo:parseInt(n.hours.split("-")[1],10),weekdays:bS(n.dow)}}:n.seconds===null&&parseInt(n.minutes,10).toString()===n.minutes&&parseInt(n.hours,10).toString()===n.hours&&n.date==="*"&&n.months==="*"&&(n.dow==="*"||e)?a={mode:"specific",specific:{time:`${il(parseInt(n.hours,10))}:${il(parseInt(n.minutes,10))}`,weekdays:bS(n.dow)}}:n.seconds===null&&parseInt(n.minutes,10).toString()===n.minutes&&parseInt(n.hours,10).toString()===n.hours&&parseInt(n.date,10).toString()===n.date&&parseInt(n.months,10).toString()===n.months&&(n.dow==="*"||e)&&(a={mode:"once",once:{time:`${il(parseInt(n.hours,10))}:${il(parseInt(n.minutes,10))}`,date:`${il(parseInt(n.date,10))}.${il(parseInt(n.months,10))}`}}),a}class $y extends E.Component{constructor(e){super(e);let r=typeof e.cronExpression=="string"?e.cronExpression.replace(/^["']/,"").replace(/["']\n?$/,""):"";r[0]==="{"&&(r="");const n=AJ(r||"* * * * *",!0)||E2e;this.state={extended:!1,cron:$y.state2cron(n),mode:"interval",once:{time:"00:00",date:""},interval:{period:1,unit:ya.minutes},intervalBetween:{period:1,unit:ya.minutes,timeFrom:0,timeTo:23,weekdays:[0,1,2,3,4,5,6]},specific:{time:"00:00",weekdays:[0,1,2,3,4,5,6]}},Object.assign(this.state,n),this.state.cron!==e.cronExpression&&setTimeout(()=>e.onChange&&e.onChange(this.state.cron),100)}static periodArray2text(e,r=7){if(r=r||7,e.length===r)return"*";const n=[];let a=null,i=null;if(!e.length)return"_";for(let o=0;o60&&(n.period=60),n.period!==void 0&&n.period<1&&(n.period=1),n.minutes!==void 0&&n.minutes!==null&&n.minutes>60&&(n.minutes=60),n.minutes!==void 0&&n.minutes!==null&&n.minutes<1&&(n.minutes=1),n.hours!==void 0&&n.hours!==null&&n.hours>24&&(n.hours=24),n.hours!==void 0&&n.hours!==null&&n.hours<1&&(n.hours=1),e.extended)r=`${n.minutes!==void 0&&n.minutes!==null&&n.minutes>1?`*/${n.minutes}`:"*"} ${n.hours!==void 0&&n.hours!==null&&n.hours>1?`*/${n.hours}`:"*"} * * *`;else switch(n.unit){case ya.seconds:r=`${n.period>1?`*/${n.period}`:"*"} * * * * *`;break;case ya.minutes:r=`${n.period>1?`*/${n.period}`:"*"} * * * *`;break}}else if(e.mode==="intervalBetween"){const n=e.intervalBetween||{period:1,unit:ya.minutes,timeFrom:0,timeTo:24,weekdays:[0,1,2,3,4,5,6]};let a;switch(n.timeFrom=n.timeFrom||0,n.timeTo=n.timeTo===void 0?24:n.timeTo,n.timeFrom!==0&&n.timeTo===24&&(n.timeTo=23),n.timeFrom===0&&n.timeTo===24?a="*":a=n.timeFrom!==n.timeTo?`${n.timeFrom}-${n.timeTo}`:"*",n.period>60&&(n.period=60),n.period<1&&(n.period=1),n.unit=n.unit||ya.minutes,n.unit){case ya.seconds:r=`${n.period>1?`*/${n.period}`:"*"} * ${a} * * ${this.periodArray2text(n.weekdays)}`;break;case ya.minutes:r=`${n.period>1?`*/${n.period}`:"*"} ${a} * * ${this.periodArray2text(n.weekdays)}`;break}}else if(e.mode==="specific"){const n=e.specific||{time:"00:00",weekdays:[0,1,2,3,4,5,6]},a=(n.time||"00:00").split(":");let i=parseInt(a[1],10)||0;i>59&&(i=59),i<0&&(i=0);let o=parseInt(a[0],10)||0;o>23&&(o=59),o<0&&(o=0),r=`${i} ${o} * * ${this.periodArray2text(n.weekdays||[])}`}else if(e.mode==="once"){const n=e.once||{time:"00:00",date:""};n.date||(n.date=`${new Date().getDate()}.${il(new Date().getMonth()+1)}`);const a=(n.time||"00:00").split(":"),i=n.date.split(".");let o=parseInt(a[1],10)||0;o>59&&(o=59),o<0&&(o=0);let s=parseInt(a[0],10)||0;s>23&&(s=59),s<0&&(s=0);let l=parseInt(i[0],10)||1;l>31&&(l=31),l<1&&(s=1);let c=parseInt(i[1],10)||1;c>12&&(c=12),c<1&&(c=1),r=`${o} ${s} ${l} ${c} *`}return r}recalcCron(){this.onChange($y.state2cron(this.state))}getControlsWeekdaysElements(e){const r=e==="intervalBetween"?this.state.intervalBetween:this.state.specific;return E.createElement("div",{key:"weekdays",style:{paddingLeft:8,width:"calc(100% - 8px)",maxWidth:600}},E.createElement("h5",null,te.t("ra_On weekdays")),[1,2,3,4,5,6,0].map(n=>E.createElement(Xt,{key:f7[n],control:E.createElement(Un,{checked:r.weekdays.includes(n),onChange:a=>{const i=JSON.parse(JSON.stringify(this.state[e])),o=i.weekdays.indexOf(n);a.target.checked?o===-1&&i.weekdays.push(n):o!==-1&&i.weekdays.splice(o,1),i.weekdays.sort(),e==="intervalBetween"?this.setState({intervalBetween:i},()=>this.recalcCron()):this.setState({specific:i},()=>this.recalcCron())},value:n.toString()}),label:te.t(f7[n])})))}getControlsPeriodElements(e){const r=e==="interval"?this.state.interval:this.state.intervalBetween;return this.state.extended?E.createElement("div",{key:"period",style:{paddingLeft:8,display:"inline-block"}},E.createElement("h5",{style:{marginBottom:5}},te.t("sc_period")),E.createElement(Sa,{variant:"standard",style:{marginTop:0,marginBottom:0,verticalAlign:"bottom"},key:"value",label:te.t("sc_minutes"),value:r.minutes,onChange:n=>{const a=JSON.parse(JSON.stringify(this.state[e]));a.minutes=parseInt(n.target.value,10),a.minutes<1&&(a.minutes=1),e==="interval"?this.setState({interval:a},()=>this.recalcCron()):this.setState({intervalBetween:a},()=>this.recalcCron())},slotProps:{htmlInput:{min:1,max:60},inputLabel:{shrink:!0}},type:"number",margin:"normal"}),E.createElement(Sa,{variant:"standard",style:{marginTop:0,marginBottom:0,verticalAlign:"bottom"},key:"value",label:te.t("sc_hours"),value:r.hours,onChange:n=>{const a=JSON.parse(JSON.stringify(this.state[e]));a.hours=parseInt(n.target.value,10),a.hours<1&&(a.hours=1),e==="interval"?this.setState({interval:a},()=>this.recalcCron()):this.setState({intervalBetween:a},()=>this.recalcCron())},slotProps:{htmlInput:{min:1,max:24},inputLabel:{shrink:!0}},type:"number",margin:"normal"})):E.createElement("div",{key:"period",style:{paddingLeft:8,display:"inline-block"}},E.createElement("h5",{style:{marginBottom:5}},te.t("sc_period")),E.createElement(Sa,{variant:"standard",style:{marginTop:0,marginBottom:0,verticalAlign:"bottom"},key:"value",label:te.t("sc_every"),value:r.period,onChange:n=>{const a=JSON.parse(JSON.stringify(this.state[e]));a.period=parseInt(n.target.value,10),a.period<1&&(a.period=1),e==="interval"?this.setState({interval:a},()=>this.recalcCron()):this.setState({intervalBetween:a},()=>this.recalcCron())},slotProps:{htmlInput:{min:1,max:60},inputLabel:{shrink:!0}},type:"number",margin:"normal"}),E.createElement(ns,{variant:"standard",style:{verticalAlign:"bottom"},value:r.unit,onChange:n=>{const a=JSON.parse(JSON.stringify(this.state[e]));a.unit=n.target.value,e==="interval"?this.setState({interval:a},()=>this.recalcCron()):this.setState({intervalBetween:a},()=>this.recalcCron())}},E.createElement(tn,{value:"seconds"},te.t("sc_seconds")),")",E.createElement(tn,{value:"minutes"},te.t("sc_minutes")),")"))}getControlsTime(e){const r=e==="once"?this.state.once:this.state.specific;return E.createElement(Af,{variant:"standard",sx:{...bu.formControl,"&.MuiFormControl-root":bu.formControlMarginRight}},E.createElement(Sa,{variant:"standard",key:"at",label:te.t("sc_time"),value:r.time,type:"time",sx:n=>({'& input[type="time"]::-webkit-calendar-picker-indicator':{filter:n.palette.mode==="dark"?"invert(80%)":void 0}}),onChange:n=>{const a=JSON.parse(JSON.stringify(this.state[e]));a.time=n.target.value,e==="once"?this.setState({once:a},()=>this.recalcCron()):this.setState({specific:a},()=>this.recalcCron())},slotProps:{inputLabel:{shrink:!0}},margin:"normal"}))}getControlsDate(){const e=this.state.once;if(!e.date){const r=new Date;e.date=`${r.getDate()}.${il(r.getMonth()+1)}`}return E.createElement(Af,{variant:"standard",style:bu.formControl},E.createElement(Sa,{variant:"standard",key:"date",label:te.t("sc_date"),value:e.date,type:"text",slotProps:{htmlInput:{style:bu.formControlPaddingTop},inputLabel:{shrink:!0}},onChange:r=>{const n=JSON.parse(JSON.stringify(this.state.once));n.date=r.target.value,this.setState({once:n},()=>this.recalcCron())},margin:"normal"}))}getOnceElements(){return E.createElement("div",{style:{marginLeft:8}},this.getControlsTime("once"),this.getControlsDate())}getIntervalElements(){return this.getControlsPeriodElements("interval")}getIntervalBetweenElements(){const e=this.state.intervalBetween;return[this.getControlsPeriodElements("intervalBetween"),E.createElement("div",{key:"between",style:{paddingLeft:8,display:"inline-block",verticalAlign:"top"}},E.createElement("h5",{style:{marginBottom:5}},te.t("sc_hours")),E.createElement(Af,{variant:"standard",style:bu.formControl},E.createElement(ty,{shrink:!0,htmlFor:"age-label-placeholder"},te.t("sc_from")),E.createElement(ns,{variant:"standard",style:{width:100},value:e.timeFrom,onChange:r=>{const n=JSON.parse(JSON.stringify(this.state.intervalBetween));n.timeFrom=parseInt(r.target.value,10),n.timeTo===24&&(n.timeTo=23),this.setState({intervalBetween:n},()=>this.recalcCron())}},[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23].map(r=>E.createElement(tn,{key:`B_${r}`,value:r},`${il(r)}:00`)))),E.createElement(Af,{variant:"standard",style:bu.formControl},E.createElement(ty,{shrink:!0,htmlFor:"age-label-placeholder"},te.t("sc_to")),E.createElement(ns,{variant:"standard",style:{width:100},value:e.timeTo,onChange:r=>{const n=JSON.parse(JSON.stringify(this.state.intervalBetween));n.timeTo=parseInt(r.target.value,10),this.setState({intervalBetween:n},()=>this.recalcCron())}},[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23].map(r=>E.createElement(tn,{key:`A_${r}`,value:r},`${il(r)}:00`)),!e.timeFrom&&E.createElement(tn,{value:24},"00:00")))),this.getControlsWeekdaysElements("intervalBetween")]}getSpecificTimeElements(){return[E.createElement("div",{key:"time",style:{marginLeft:8}},this.getControlsTime("specific")),this.getControlsWeekdaysElements("specific")]}onModeChange(e){e!==this.state.mode&&this.setState({mode:e},()=>this.recalcCron())}onChange(e){e!==this.state.cron&&(this.setState({cron:e}),this.props.onChange&&this.props.onChange(e))}render(){return E.createElement("div",{style:bu.mainDiv},E.createElement("div",{style:{paddingLeft:8,width:"calc(100% - 8px)"}},E.createElement(Sa,{variant:"standard",style:{width:"100%"},value:this.state.cron,disabled:!0,error:this.state.cron.includes("_")})),E.createElement("div",{style:{paddingLeft:8,width:"calc(100% - 8px)",height:60}},this.state.cron.includes("_")?te.t("sc_invalid_cron"):tJ(this.state.cron,this.props.language||"en")),E.createElement("div",null,E.createElement(Af,{variant:"standard",style:{...bu.formControl,marginLeft:8,marginTop:8}},E.createElement(ty,null,te.t("ra_Repeat")),E.createElement(ns,{variant:"standard",value:this.state.mode,onChange:e=>this.onModeChange(e.target.value),inputProps:{name:"mode",id:"mode"}},E.createElement(tn,{value:"once"},te.t("sc_once")),E.createElement(tn,{value:"interval"},te.t("sc_interval")),E.createElement(tn,{value:"intervalBetween"},te.t("sc_intervalBetween")),E.createElement(tn,{value:"specific"},te.t("sc_specific"))))),this.state.mode===k2e.once&&this.getOnceElements(),this.state.mode==="interval"&&this.getIntervalElements(),this.state.mode==="intervalBetween"&&this.getIntervalBetweenElements(),this.state.mode==="specific"&&this.getSpecificTimeElements())}}const D2e={headerID:{fontWeight:"bold",fontStyle:"italic"},radio:{display:"inline-block"},dialogPaper:{height:"calc(100% - 96px)"}};class i3t extends E.Component{constructor(e){super(e);let r;this.props.cron&&typeof this.props.cron=="string"&&this.props.cron.replace(/^["']/,"")[0]!=="{"?r=this.props.cron.replace(/['"]/g,"").trim():(r=this.props.cron||"{}",typeof r=="string"&&(r=r.replace(/^["']/,"").replace(/["']\n?$/,""))),this.state={showWarning:"",cron:r}}handleCancel(){this.props.onClose()}handleOk(e){if(!e){const r=Ru.cron2state(this.state.cron);if(r.seconds==="*"||r.seconds==="*/1"){this.setState({showWarning:"everySecond"});return}if(r.minutes==="*"||r.minutes==="*/1"){this.setState({showWarning:"everyMinute"});return}}this.props.onOk(this.state.cron),this.props.onClose()}renderWarningDialog(){return this.state.showWarning?E.createElement(W_e,{title:te.t("ra_Please confirm"),text:te.t(this.state.showWarning==="everySecond"?"ra_The schedule will be executed every second. Are you sure?":"ra_The schedule will be executed every minute. Are you sure?"),onClose:e=>this.setState({showWarning:""},()=>{e&&this.handleOk(!0)})}):null}handleClear(){this.props.onOk(!1),this.props.onClose()}render(){return E.createElement(ms,{onClose:()=>{},maxWidth:"md",fullWidth:!0,sx:{"& .MuiDialog-paper":D2e.dialogPaper},open:!0,"aria-labelledby":"cron-dialog-title"},this.renderWarningDialog(),E.createElement(_s,{id:"cron-dialog-title"},this.props.title||te.t("ra_Define schedule...")),E.createElement(gs,{style:{height:"100%",overflow:"hidden"}},E.createElement(Ru,{cronExpression:this.state.cron,onChange:e=>this.setState({cron:e}),language:te.getLanguage()})),E.createElement(vs,null,!!this.props.clearButton&&E.createElement(Vr,{color:"grey",variant:"contained",onClick:()=>this.handleClear(),startIcon:E.createElement(_S,null)},this.props.clear||te.t("ra_Clear")),E.createElement(Vr,{variant:"contained",onClick:()=>this.handleOk(),color:"primary",startIcon:E.createElement(Ch,null)},this.props.ok||te.t("ra_Ok")),E.createElement(Vr,{color:"grey",variant:"contained",onClick:()=>this.handleCancel(),startIcon:E.createElement(LC,null)},this.props.cancel||te.t("ra_Cancel"))))}}const M2e={dialogPaper:{height:"calc(100% - 96px)"}};class o3t extends E.Component{constructor(e){super(e);let r;this.props.cron&&typeof this.props.cron=="string"&&this.props.cron.replace(/^["']/,"")[0]!=="{"?r=this.props.cron.replace(/['"]/g,"").trim():(r=this.props.cron||"{}",typeof r=="string"&&(r=r.replace(/^["']/,"").replace(/["']\n?$/,""))),this.state={cron:r,mode:this.props.simple?"simple":this.props.complex?"complex":(typeof r=="object"||r[0]==="{")&&!this.props.noWizard?"wizard":AJ(this.props.cron||"* * * * *")?"simple":"complex"}}handleCancel(){this.props.onClose()}handleOk(){this.props.onOk(this.state.cron),this.props.onClose()}setMode(e){this.setState({mode:e})}render(){return E.createElement(ms,{onClose:()=>{},maxWidth:"md",fullWidth:!0,sx:{"& .MuiDialog-paper":M2e.dialogPaper},open:!0,"aria-labelledby":"cron-dialog-title"},E.createElement(_s,{id:"cron-dialog-title"},this.props.title||te.t("ra_Define schedule...")),E.createElement(gs,{style:{height:"100%",overflow:"hidden"}},this.props.simple&&this.props.complex||!this.props.simple&&!this.props.complex?E.createElement("div",null,!this.props.simple&&!this.props.complex&&!this.props.noWizard&&E.createElement(E.Fragment,null,E.createElement(Yr,{key:"wizard",checked:this.state.mode==="wizard",onChange:()=>this.setMode("wizard")}),E.createElement("label",{onClick:()=>this.setMode("wizard"),style:this.state.mode!=="wizard"?{color:"lightgrey"}:{}},te.t("sc_wizard"))),(!this.props.simple&&!this.props.complex||this.props.simple)&&E.createElement(E.Fragment,null,E.createElement(Yr,{key:"simple",checked:this.state.mode==="simple",onChange:()=>this.setMode("simple")}),E.createElement("label",{onClick:()=>this.setMode("simple"),style:this.state.mode!=="simple"?{color:"lightgrey"}:{}},te.t("sc_simple"))),(!this.props.simple&&!this.props.complex||this.props.complex)&&E.createElement(E.Fragment,null,E.createElement(Yr,{key:"complex",checked:this.state.mode==="complex",onChange:()=>this.setMode("complex")}),E.createElement("label",{onClick:()=>this.setMode("complex"),style:this.state.mode!=="complex"?{color:"lightgrey"}:{}},te.t("sc_cron")))):null,this.state.mode==="simple"&&E.createElement($y,{cronExpression:this.state.cron,onChange:e=>this.setState({cron:e}),language:te.getLanguage()}),this.state.mode==="wizard"&&E.createElement(ea,{theme:this.props.theme,schedule:this.state.cron,onChange:e=>this.setState({cron:e})}),this.state.mode==="complex"&&E.createElement(Ru,{cronExpression:this.state.cron,onChange:e=>this.setState({cron:e}),language:te.getLanguage()})),E.createElement(vs,null,E.createElement(Vr,{variant:"contained",onClick:()=>this.handleOk(),color:"primary",startIcon:E.createElement(Ch,null)},this.props.ok||te.t("ra_Ok")),E.createElement(Vr,{variant:"contained",onClick:()=>this.handleCancel(),color:"grey",startIcon:E.createElement(LC,null)},this.props.cancel||te.t("ra_Cancel"))))}}const rf={headerID:{fontWeight:"bold",fontStyle:"italic"},dialog:{height:"95%"},dialogMobile:{padding:"4px",width:"100%",maxWidth:"100%",maxHeight:"calc(100% - 16px)",height:"100%"},content:{height:"100%",overflow:"hidden"},contentMobile:{padding:"8px 4px"},titleRoot:{whiteSpace:"nowrap",width:"calc(100% - 72px)",overflow:"hidden",display:"inline-block",textOverflow:"ellipsis"}};class s3t extends E.Component{constructor(r){super(r);de(this,"dialogName");de(this,"filters");this.dialogName=this.props.dialogName||"default",this.dialogName=`SelectFile.${this.dialogName}`;const n=(window._localStorage||window.localStorage).getItem(this.dialogName)||"{}";try{this.filters=JSON.parse(n)}catch{this.filters={}}r.filters&&(this.filters={...this.filters,...r.filters});let a=this.props.selected||[];typeof a!="object"?a=[a]:a=[...a],a=a.filter(i=>i),this.state={selected:a}}handleCancel(){this.props.onClose()}handleOk(){this.props.onOk(this.props.multiSelect||!Array.isArray(this.state.selected)?this.state.selected:this.state.selected[0]||""),this.props.onClose()}render(){let r;return this.state.selected.length?!Array.isArray(this.state.selected)||this.state.selected.length===1?r=[E.createElement("span",{key:"selected"},te.t("ra_Selected")," "),E.createElement("span",{key:"id",style:rf.headerID},this.state.selected)]:r=[E.createElement("span",{key:"selected"},te.t("ra_Selected")," "),E.createElement("span",{key:"id",style:rf.headerID},te.t("%s items",this.state.selected.length))]:r=this.props.title||te.t("ra_Please select file..."),E.createElement(ms,{onClose:()=>{},maxWidth:!1,sx:{"& .MuiDialog-paper":{...rf.dialog,...rf.dialogMobile}},fullWidth:!0,open:!0,"aria-labelledby":"ar_dialog_selectfile_title"},E.createElement(_s,{id:"ar_dialog_selectfile_title",sx:{"&.MuiDialogTitle-root":rf.titleRoot}},r),E.createElement(gs,{style:{...rf.content,...rf.contentMobile}},E.createElement(Eke,{ready:!0,imagePrefix:this.props.imagePrefix||this.props.prefix||"../",allowUpload:!!this.props.allowUpload,allowDownload:this.props.allowDownload!==!1,allowCreateFolder:!!this.props.allowCreateFolder,allowDelete:!!this.props.allowDelete,allowView:this.props.allowView!==!1,showViewTypeButton:this.props.showViewTypeButton!==!1,showToolbar:this.props.showToolbar!==!1,limitPath:this.props.limitPath,filterFiles:this.props.filterFiles,filterByType:this.props.filterByType,selected:this.props.selected,restrictToFolder:this.props.restrictToFolder,allowNonRestricted:this.props.allowNonRestricted,onSelect:(n,a,i)=>{this.setState({selected:Array.isArray(n)?n:[n]},()=>a&&(!this.props.selectOnlyFolders||i)&&this.handleOk())},t:this.props.t||te.t,lang:this.props.lang||te.getLanguage(),socket:this.props.socket,themeType:this.props.themeType,themeName:this.props.themeName,theme:this.props.theme,showExpertButton:this.props.showExpertButton,expertMode:this.props.expertMode,showTypeSelector:this.props.showTypeSelector})),E.createElement(vs,null,E.createElement(Vr,{variant:"contained",onClick:()=>this.handleOk(),startIcon:E.createElement(Ch,null),disabled:!this.state.selected.length,color:"primary"},this.props.ok||te.t("ra_Ok")),E.createElement(Vr,{color:"grey",variant:"contained",onClick:()=>this.handleCancel(),startIcon:E.createElement(LC,null)},this.props.cancel||te.t("ra_Cancel"))))}}const O2e={dialogPaper:{height:"calc(100% - 96px)"}};class l3t extends E.Component{constructor(e){super(e);let r;this.props.cron&&typeof this.props.cron=="string"&&this.props.cron.replace(/^["']/,"")[0]!=="{"?r=this.props.cron.replace(/['"]/g,"").trim():(r=this.props.cron||"{}",typeof r=="string"&&(r=r.replace(/^["']/,"").replace(/["']\n?$/,""))),this.state={cron:r}}handleCancel(){this.props.onClose()}handleOk(){this.props.onOk(this.state.cron),this.props.onClose()}render(){return E.createElement(ms,{onClose:()=>{},maxWidth:"md",fullWidth:!0,sx:{"& .MuiDialog-paper":O2e.dialogPaper},open:!0,"aria-labelledby":"cron-dialog-title"},E.createElement(_s,{id:"cron-dialog-title"},this.props.title||te.t("ra_Define CRON...")),E.createElement(gs,{style:{height:"100%",overflow:"hidden"}},E.createElement($y,{cronExpression:this.state.cron,onChange:e=>this.setState({cron:e}),language:te.getLanguage()})),E.createElement(vs,null,E.createElement(Vr,{variant:"contained",disabled:!this.state.cron||this.state.cron.includes("_"),onClick:()=>this.handleOk(),color:"primary",startIcon:E.createElement(Ch,null)},this.props.ok||te.t("ra_Ok")),E.createElement(Vr,{variant:"contained",onClick:()=>this.handleCancel(),color:"grey",startIcon:E.createElement(LC,null)},this.props.cancel||te.t("ra_Cancel"))))}}const $2e="Append",A2e="Cancel",P2e="Categories",I2e="Checked",R2e="Delete",L2e="Close",N2e="Commercial",F2e="Configure",z2e="Connected",B2e="Copied",j2e="Create",W2e="Crop",H2e="Delete",U2e="Delete",Y2e="Discard",V2e="Disconnected",G2e="Error",q2e="Filter",X2e="Friday",J2e="Latitude",Z2e="Expires in",K2e="Longitude",Q2e="Message",eEe="Monday",tEe="Name",rEe="Objects",nEe="Ok",aEe="Product",iEe="Repeat",oEe="Replace",sEe="Root",lEe="Saturday",cEe="Save",uEe="Selected",dEe="States",fEe="Sunday",hEe="Thursday",pEe="Timestamp",mEe="Tuesday",vEe="Update",gEe="Valid till",_Ee="Value",yEe="Version",bEe="Wednesday",wEe="Width",SEe="Yes",xEe="different",CEe="Everyone can read object",TEe="Everyone can read state",kEe="Everyone can write object",EEe="Everyone can write state",DEe="Group can read object",MEe="Group can read state",OEe="Group can write object",$Ee="Group can write state",AEe="Owner can read object",PEe="Owner can read state",IEe="Owner can write object",REe="Owner can write state",LEe="Buttons",NEe="Changed from",FEe="close",zEe="Create boolean state",BEe="Create channel",jEe="Create device",WEe="Create number state",HEe="Create state",UEe="Create string state",YEe="days",VEe="Fr",GEe="Mo",qEe="Sa",XEe="Su",JEe="Th",ZEe="Tu",KEe="We",QEe="Expert mode",eDe="All files",tDe="Audio",rDe="Code/JSON",nDe="Images",aDe="Text",iDe="Video",oDe="Settings",sDe="without",lDe="Function",cDe="ID",uDe="Name",dDe="Role",fDe="Room",hDe="Type",pDe="Invalid settings",mDe="Last change",vDe="locally",gDe="Apr",_De="Aug",yDe="Dec",bDe="Feb",wDe="Jan",SDe="Jul",xDe="Jun",CDe="Mai",TDe="Mar",kDe="Nov",EDe="Oct",DDe="Sep",MDe="Apr",ODe="Aug",$De="Dec",ADe="Feb",PDe="Jan",IDe="Jul",RDe="Jun",LDe="Mai",NDe="Mar",FDe="Nov",zDe="Oct",BDe="Sep",jDe="none",WDe="Object changed by",HDe="Object last changed at",UDe="Settings from other adapter %s",YDe="Quality code",VDe="repeat",GDe='To select folder, just hold the key "shift" by clicking the folder.',qDe="State changed by",XDe="Object changed from",JDe="Timestamp",ZDe="Acknowledged",KDe="Comment",QDe="Copy the state value",eMe="Custom settings",tMe="Delete object",rMe="Edit object",nMe="Edit the state value",aMe="From",iMe="Last changed",oMe="Quality",sMe="Time stamp",lMe="User",cMe="Value",uMe="Value",dMe="Warning: The CRON job will run every minute during the specified period!",fMe="Warning: The CRON job will run every second during the specified period!",hMe="CRON",pMe="Date",mMe="Dates",vMe="Day",gMe="Day of week",_Me="Every",yMe="every N days",bMe="every Nth day of the week",wMe="every N day of week",SMe="every N hours",xMe="every N minutes",CMe="every N months",TMe="every N seconds",kMe="every day",EMe="every day of the week",DMe="every day of the week",MMe="every hour",OMe="every minute",$Me="every month",AMe="every second",PMe="From",IMe="Hours",RMe="Interval",LMe="Interval between",NMe="Invalid CRON",FMe="Minutes",zMe="months",BMe="Once",jMe="Period",WMe="Seconds",HMe="Simple",UMe="Specific time",YMe="specific dates",VMe="specific day(s) of the week",GMe="specific day of weeks",qMe="specific hours",XMe="specific minutes",JMe="specific months",ZMe="specific seconds",KMe="Time",QMe="To",eOe="Wizard",tOe="all",rOe="Astro day",nOe="Astro night",aOe="Dawn",iOe="Dusk",oOe="Golden hour",sOe="Golden hour end",lOe="Nadir",cOe="Nautical dawn",uOe="Nautical dusk",dOe="Night",fOe="Night end",hOe="Solar noon",pOe="Sunrise",mOe="Sunrise end",vOe="Sunset",gOe="Sunset start",_Oe="at",yOe="at %s",bOe="every day",wOe="every hour",SOe="every minute",xOe="every month",COe="every %s day",TOe="every %s hours",kOe="every %s minutes",EOe="every %s months",DOe="every %s weeks",MOe="every %s years",OOe="every week",$Oe="every year",AOe="from %s to %s",POe="never",IOe="on %s of %s",ROe="on %s and %s of",LOe="on every date of",NOe="%s",FOe="%s and %s",zOe="on %s",BOe="on %s and %s",jOe="on weekends",WOe="on working days",HOe="will ne be not executed any more, because start is in the past",UOe="on %s",YOe="from %s",VOe="Execute from to",GOe="to %s",qOe="every",XOe="Specific time",JOe="from",ZOe="From-to",KOe="Interval time",QOe="invert",e$e="none",t$e="on",r$e="Period",n$e="Daily",a$e="Dates",i$e="Day",o$e="Every",s$e="Every day",l$e="Every month",c$e="Every week",u$e="Every year",d$e="Hours",f$e="Minutes",h$e="month",p$e="Monthly",m$e="Once",v$e="Specific months",g$e="Week",_$e="Weekdays",y$e="Weekend",b$e="Weekly",w$e="Workdays",S$e="Year",x$e="Yearly",C$e="Specific time",T$e="Time",k$e="to",E$e="Valid",D$e="from",M$e="to",O$e="Whole day",$$e="every month",A$e={"ra_%s links from aliases":"%s links from aliases","ra_%s object(s) processed":"%s object(s) processed","ra_%s was imported":"%s was imported","ra_Accept license":"Accept license","ra_Add new child object to selected parent":"Add new child object to selected parent","ra_Add objects tree from JSON file":"Add objects tree from JSON file","ra_Add row":"Add row","ra_Advanced options":"Advanced options","ra_All items are filtered out":"All items are filtered out","ra_All objects":"All objects",ra_Append:$2e,"ra_Append %s entries or replace existing?":"Append %s entries or replace existing?","ra_Append or replace?":"Append or replace?","ra_Are you sure?":"Are you sure?","ra_Auto (no custom columns)":"Auto (no custom columns)","ra_Back to %s":"Back to %s","ra_Background image":"Background image",ra_Cancel:A2e,"ra_Cannot add items with set filter":"Cannot add items with set filter","ra_Cannot decode license":"Cannot decode license","ra_Cannot determine position: System settings are empty and GPS detection is disabled in browser":"Cannot determine position: System settings are empty and GPS detection is disabled in browser",'ra_Cannot find "%s"':'Cannot find "%s"','ra_Cannot read "%s"':'Cannot read "%s"',"ra_Cannot read licenses: %s":"Cannot read licenses: %s","ra_Cannot retrieve options, as instance is offline":"Cannot retrieve options, as instance is offline","ra_Cannot update attribute, because not found in the object":"Cannot update attribute, because not found in the object","ra_Cannot upload":"Cannot upload",ra_Categories:P2e,"ra_Chained certificate":"Chained certificate","ra_Change color theme":"Change color theme","ra_Changed from":"Changed from","ra_Channel → State":"Channel → State","ra_Check license":"Check license",ra_Checked:I2e,ra_Clear:R2e,"ra_Clear filter":"Clear filter","ra_Clear icon":"Clear icon","ra_Clone current row":"Clone current row",ra_Close:L2e,"ra_Collapse all nodes":"Collapse all nodes","ra_Collapse one step node":"Collapse one level",ra_Commercial:N2e,ra_Configure:F2e,"ra_Configure visible columns":"Configure visible columns","ra_Confirm deletion of %s":"Confirm deletion of %s",ra_Connected:z2e,ra_Copied:B2e,"ra_Copied %s":'Copied "%s"',"ra_Copy content":"Copy content",ra_Create:j2e,"ra_Create alias":"Create alias","ra_Create folder":"Create folder","ra_Create new folder in %s":"Create new folder in %s",ra_Crop:W2e,"ra_Define CRON...":"Define CRON...","ra_Define functions":"Define functions","ra_Define rooms":"Define rooms","ra_Define schedule":"Define schedule","ra_Define schedule...":"Define schedule...",ra_Del:H2e,ra_Delete:U2e,"ra_Delete (no confirm for 5 mins)":"Delete (no confirm for 5 mins)","ra_Delete current row":"Delete current row","ra_Deselect all":"Unselect all","ra_Device → Channel → State":"Device → Channel → State",ra_Discard:Y2e,ra_Disconnected:V2e,"ra_Do not export values of states":"Do not export values of states","ra_Do not use let's encrypt":"Do not use let's encrypt","ra_Double click to reset table layout":"Double click to reset table layout","ra_Drag 'n' drop some files here, or click to select files":"Drag 'n' drop some files here, or click to select files","ra_Drop file here":"Drop file here","ra_Drop the files here...":"Drop the file here...","ra_Duplicate name":"Duplicate name","ra_Edit ACL":"Edit ACL","ra_Edit alias":"Edit alias","ra_Edit custom config":"Edit custom config","ra_Edit function":"Edit function","ra_Edit object field":"Edit object field","ra_Edit role":"Edit role","ra_Edit room":"Edit room","ra_Edit value":"Edit value",ra_Error:G2e,"ra_Expand all nodes":"Expand all nodes","ra_Expand one step node":"Expand one level","ra_Export data to %s file":"Export data to %s file","ra_Failed to open JSON File":"Failed to open JSON File","ra_Fallback custom certificates":"Fallback custom certificates","ra_File is too big. Max %sk allowed. Try use SVG.":"File is too big. Max %sk allowed. Try use SVG.",ra_Filter:q2e,"ra_Filter files":"Filter files","ra_Folder name":"Folder name","ra_Folder → Channel → State":"Folder → Channel → State","ra_Folder → Device → Channel → State":"Folder → Device → Channel → State","ra_Folder → State":"Folder → State","ra_Folders always first":"Folders always first",ra_Friday:X2e,"ra_Good luck":"Good luck","ra_Hide empty folders":"Hide empty folders","ra_If no file will be created in the folder, it will disappear after the browser closed":"If no file will be created in the folder, it will disappear after the browser closed","ra_Import data from %s file":"Import data from %s file","ra_Import from %s":"Import from %s","ra_Instance %s is alive":"Instance %s is alive","ra_Instance %s is not alive":"Instance %s is not alive","ra_Instance is not alive":"Instance is not alive","ra_Invalid CRON":"Invalid CRON","ra_Invalid JSON":"Invalid JSON","ra_Invalid answer from server":"Invalid answer from server","ra_Invalid parent folder!":"Invalid parent folder!","ra_Invalid structure":"Invalid structure","ra_JSON editor":"JSON editor","ra_Last change":"Last change",ra_Latitude:J2e,"ra_License %s":"License %s","ra_License agreement":"License agreement","ra_License does not exist":"License does not exist",ra_tooltip_expire:Z2e,"ra_License expired on %s":"License expired on %s",'ra_License for other product "%s"':'License for other product "%s"',"ra_License is for version %s, but required version is %s.":"License is for version %s, but required version is %s.","ra_License must be converted":"License must be converted to newer version. You can do it in your iobroker.net profile.","ra_License not found in license manager. Do you want to read licenses from iobroker.net?":"License not found in the license manager. Do you want to update licenses from iobroker.net?","ra_Listen on all IPs":"Listen on all IPs","ra_Load configuration from file":"Load configuration from file",ra_Longitude:K2e,'ra_May not trigger "updateLicenses"':'May not trigger "updateLicenses"',ra_Message:Q2e,ra_Monday:eEe,"ra_Move down":"Move down","ra_Move up":"Move up",ra_Name:tEe,"ra_No data found in file":"No data found in file","ra_No one license found in license manager":"No one license found in license manager","ra_No response from the backend":"No response from the backend",'ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".':'Non-experts may create new objects only in "0_userdata.0" or "alias.0".',"ra_Not a number":"Not a number",ra_Objects:rEe,ra_Ok:nEe,"ra_On weekdays":"On weekdays","ra_Only following structures of objects are available:":"Only following structures of objects are available:","ra_Only selected":"Only selected","ra_Owner group":"Owner group","ra_Owner user":"Owner user","ra_Passwords are not equal!":"Passwords are not equal!","ra_Place your files here or click here to open the browse dialog":"Place your files here or click here to open the browse dialog","ra_Please confirm":"Please confirm","ra_Please create license":"Please create license","ra_Please enter the license":"Please enter the license","ra_Please select file...":"Please select file...","ra_Please select object ID...":"Please select object ID...","ra_Port could be used by %s":"Port could be used by %s","ra_Port is already used by %s":"Port is already used by %s","ra_Private certificate":"Private certificate",ra_Product:aEe,"ra_Public certificate":"Public certificate","ra_Quality code":"Quality","ra_Refresh tree":"Refresh tree","ra_Reload files":"Reload files",ra_Repeat:iEe,ra_Replace:oEe,"ra_Request timed out":"Request timed out","ra_Restrict to folder":"Restrict to folder",ra_Root:sEe,ra_Saturday:lEe,ra_Save:cEe,"ra_Save and close":"Save and close","ra_Save configuration to file":"Save configuration to file","ra_Save objects tree as JSON file":"Save objects tree as JSON file","ra_Select all":"Select all","ra_Select color":"Select color","ra_Select predefined icon":"Select predefined icon","ra_Select type of export":"Select type of export",ra_Selected:uEe,"ra_Selected %s object(s)":"Selected %s object(s)","ra_Serial number (UUID)":"Serial number (UUID)",'ra_Serial number (UUID) "%s" in license is for other device.':'Serial number (UUID) "%s" in license is for other device.',"ra_Show all folders":"Show all folders","ra_Show lines between rows":"Show lines between rows","ra_Show/Hide object descriptions":"Show/Hide object descriptions","ra_Show/hide filter input":"Show/hide filter input","ra_Some data are not stored. Discard?":"Some data are not stored. Discard?",ra_States:dEe,"ra_Suitable license not found in license manager":"Suitable license not found in license manager",ra_Sunday:fEe,"ra_Suppress question for next %s minutes":"Suppress question for next %s minutes","ra_System language":"System language","ra_Take browser position":"Take position from browser","ra_Take position from system settings":"Take position from system settings",'ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").':'The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").',"ra_The page you are looking for was not found":"The page you are looking for was not found","ra_The schedule will be executed every minute. Are you sure?":"The schedule will be executed every minute. Are you sure?","ra_The schedule will be executed every second. Are you sure?":"The schedule will be executed every second. Are you sure?",ra_Thursday:hEe,ra_Timestamp:pEe,"ra_Toggle expert mode":"Toggle expert mode","ra_Toggle the states view":"Toggle the states view","ra_Toggle view mode":"Toggle view mode","ra_Too big":"Too big","ra_Too small":"Too small","ra_Transparent dialog":"Transparent dialog",ra_Tuesday:mEe,"ra_Unknown error":"Unknown error","ra_Unknown error!":"Unknown error!",ra_Update:vEe,"ra_Upload file":"Upload file","ra_Use all available let's encrypt certificates":"Use all available let's encrypt certificates","ra_Use iobroker.acme adapter for letsencrypt certificates":"Use iobroker.acme adapter for letsencrypt certificates","ra_Use system settings for position":"Use system settings for position","ra_Used system settings":"Used system settings","ra_User files":"User files",ra_ValidTill:gEe,ra_Value:_Ee,ra_Version:yEe,"ra_View file":"View file","ra_View: %s":"View: %s",ra_Wednesday:bEe,ra_Width:wEe,ra_Yes:SEe,"ra_You can export all objects or just the selected branch.":"You can export all objects or just the selected branch.","ra_You can filter entries by entering here some text":"You can filter entries by entering here some text",ra___different__:xEe,ra_aclEveryone_read_object:CEe,ra_aclEveryone_read_state:TEe,ra_aclEveryone_write_object:kEe,ra_aclEveryone_write_state:EEe,ra_aclGroup_read_object:DEe,ra_aclGroup_read_state:MEe,ra_aclGroup_write_object:OEe,ra_aclGroup_write_state:$Ee,ra_aclOwner_read_object:AEe,ra_aclOwner_read_state:PEe,ra_aclOwner_write_object:IEe,ra_aclOwner_write_state:REe,ra_buttons:LEe,ra_changedFrom:NEe,ra_close:FEe,ra_create_boolean_state:zEe,ra_create_channel:BEe,ra_create_device:jEe,ra_create_number_state:WEe,ra_create_state:HEe,ra_create_string_state:UEe,ra_daysShortText:YEe,ra_dow_Fr:VEe,ra_dow_Mo:GEe,ra_dow_Sa:qEe,ra_dow_Su:XEe,ra_dow_Th:JEe,ra_dow_Tu:ZEe,ra_dow_We:KEe,ra_expertMode:QEe,ra_fileType_all:eDe,ra_fileType_audio:tDe,ra_fileType_code:rDe,ra_fileType_images:nDe,ra_fileType_txt:aDe,ra_fileType_video:iDe,"ra_fileType_video,":"Video",ra_filter_customs:oDe,ra_filter_customs_without:sDe,ra_filter_func:lDe,ra_filter_id:cDe,ra_filter_name:uDe,ra_filter_role:dDe,ra_filter_room:fDe,ra_filter_type:hDe,"ra_import data from %s file":"Import data from %s file",ra_invalidConfig:pDe,ra_lastChange:mDe,ra_locally:vDe,ra_month_Apr:gDe,ra_month_Aug:_De,ra_month_Dec:yDe,ra_month_Feb:bDe,ra_month_Jan:wDe,ra_month_Jul:SDe,ra_month_Jun:xDe,ra_month_Mai:CDe,ra_month_Mar:TDe,ra_month_Nov:kDe,ra_month_Oct:EDe,ra_month_Sep:DDe,ra_months_Apr:MDe,ra_months_Aug:ODe,ra_months_Dec:$De,ra_months_Feb:ADe,ra_months_Jan:PDe,ra_months_Jul:IDe,ra_months_Jun:RDe,ra_months_Mai:LDe,ra_months_Mar:NDe,ra_months_Nov:FDe,ra_months_Oct:zDe,ra_months_Sep:BDe,ra_none:jDe,ra_object_changed_by:WDe,ra_object_changed_by_user:HDe,ra_otherConfig:UDe,ra_qualityCode:YDe,ra_repeat:VDe,ra_select_folder_hint:GDe,ra_state_changed_by:qDe,ra_state_changed_from:XDe,ra_timestamp:JDe,ra_tooltip_ack:ZDe,ra_tooltip_comment:KDe,ra_tooltip_copyState:QDe,ra_tooltip_customConfig:eMe,ra_tooltip_deleteObject:tMe,ra_tooltip_editObject:rMe,ra_tooltip_editState:nMe,ra_tooltip_from:aMe,ra_tooltip_lc:iMe,ra_tooltip_quality:oMe,ra_tooltip_ts:sMe,ra_tooltip_user:lMe,ra_tooltip_value:cMe,"ra_use seconds":"use seconds",ra_val:uMe,"ra_via internet":"via internet",ra_warning_every_minute:dMe,ra_warning_every_second:fMe,sc_cron:hMe,sc_date:pMe,sc_dates:mMe,sc_dow:vMe,sc_dows:gMe,sc_every:_Me,sc_everyN_dates:yMe,sc_everyN_dow:bMe,sc_everyN_dows:wMe,sc_everyN_hours:SMe,sc_everyN_minutes:xMe,sc_everyN_months:CMe,sc_everyN_seconds:TMe,sc_every_dates:kMe,sc_every_dow:EMe,sc_every_dows:DMe,sc_every_hours:MMe,sc_every_minutes:OMe,sc_every_months:$Me,sc_every_seconds:AMe,sc_from:PMe,sc_hours:IMe,sc_interval:RMe,sc_intervalBetween:LMe,sc_invalid_cron:NMe,sc_minutes:FMe,sc_months:zMe,sc_once:BMe,sc_period:jMe,sc_seconds:WMe,sc_simple:HMe,sc_specific:UMe,sc_specific_dates:YMe,sc_specific_dow:VMe,sc_specific_dows:GMe,sc_specific_hours:qMe,sc_specific_minutes:XMe,sc_specific_months:JMe,sc_specific_seconds:ZMe,sc_time:KMe,sc_to:QMe,sc_wizard:eOe,sch_all:tOe,sch_astroDay:rOe,sch_astroNight:nOe,sch_astro_dawn:aOe,sch_astro_dusk:iOe,sch_astro_goldenHour:oOe,sch_astro_goldenHourEnd:sOe,sch_astro_nadir:lOe,sch_astro_nauticalDawn:cOe,sch_astro_nauticalDusk:uOe,sch_astro_night:dOe,sch_astro_nightEnd:fOe,sch_astro_solarNoon:hOe,sch_astro_sunrise:pOe,sch_astro_sunriseEnd:mOe,sch_astro_sunset:vOe,sch_astro_sunsetStart:gOe,sch_at:_Oe,sch_desc_atTime:yOe,sch_desc_everyDay:bOe,sch_desc_everyHour:wOe,sch_desc_everyMinute:SOe,sch_desc_everyMonth:xOe,sch_desc_everyNDay:COe,sch_desc_everyNHours:TOe,sch_desc_everyNMinutes:kOe,sch_desc_everyNMonths:EOe,sch_desc_everyNWeeks:DOe,sch_desc_everyNYears:MOe,sch_desc_everyWeek:OOe,sch_desc_everyYear:$Oe,sch_desc_intervalFromTo:AOe,sch_desc_never:POe,sch_desc_onDate:IOe,sch_desc_onDates:ROe,sch_desc_onEveryDate:LOe,sch_desc_onMonth:NOe,sch_desc_onMonths:FOe,sch_desc_onWeekday:zOe,sch_desc_onWeekdays:BOe,sch_desc_onWeekends:jOe,sch_desc_onWorkdays:WOe,sch_desc_onceInPast:HOe,sch_desc_once_on:UOe,sch_desc_validFrom:YOe,sch_desc_validFromTo:VOe,sch_desc_validTo:GOe,sch_every:qOe,sch_exactTime:XOe,sch_from:JOe,sch_fromTo:ZOe,sch_intervalTime:KOe,sch_invert:QOe,sch_no_one:e$e,sch_on:t$e,sch_period:r$e,sch_periodDaily:n$e,sch_periodDates:a$e,sch_periodDay:i$e,sch_periodEvery:o$e,sch_periodEveryDay:s$e,sch_periodEveryMonth:l$e,sch_periodEveryWeek:c$e,sch_periodEveryYear:u$e,sch_periodHours:d$e,sch_periodMinutes:f$e,sch_periodMonth:h$e,sch_periodMonthly:p$e,sch_periodOnce:m$e,sch_periodSpecificMonths:v$e,sch_periodWeek:g$e,sch_periodWeekdays:_$e,sch_periodWeekend:y$e,sch_periodWeekly:b$e,sch_periodWorkdays:w$e,sch_periodYear:S$e,sch_periodYearly:x$e,sch_specificTime:C$e,sch_time:T$e,sch_to:k$e,sch_valid:E$e,sch_validFrom:D$e,sch_validTo:M$e,sch_wholeDay:O$e,sch_yearEveryMonth:$$e},P$e="Anhängen",I$e="Abbrechen",R$e="Kategorien",L$e="Geprüft",N$e="Löschen",F$e="Schließen",z$e="Kommerziell",B$e="Konfigurieren",j$e="Verbunden",W$e="Kopiert",H$e="Erstellen",U$e="Ernte",Y$e="Entf",V$e="Löschen",G$e="Verwerfen",q$e="Getrennt",X$e="Fehler",J$e="Filter",Z$e="Freitag",K$e="Breite",Q$e="Längengrad",eAe="Meldung",tAe="Montag",rAe="Name",nAe="Objekte",aAe="OK",iAe="Produkt",oAe="Wiederholen",sAe="Ersetzen",lAe="Anfang",cAe="Samstag",uAe="Speichern",dAe="Ausgewählt",fAe="Zustände",hAe="Sonntag",pAe="Donnerstag",mAe="Zeitstempel",vAe="Dienstag",gAe="Aktualisieren",_Ae="Gültig bis",yAe="Wert",bAe="Ausführung",wAe="Mittwoch",SAe="Breite",xAe="Ja",CAe="unterschiedlich",TAe="Jeder kann Objekt lesen",kAe="Jeder kann Zustand lesen",EAe="Jeder kann ein Objekt schreiben",DAe="Jeder kann Zustand schreiben",MAe="Gruppe kann Objekt lesen",OAe="Gruppe kann Status lesen",$Ae="Gruppe kann Objekt schreiben",AAe="Gruppe kann Status schreiben",PAe="Besitzer kann Objekt lesen",IAe="Besitzer kann Zustand lesen",RAe="Besitzer kann Objekt schreiben",LAe="Besitzer kann Zustand schreiben",NAe="Tasten",FAe="Geändert von",zAe="Schließen",BAe="Booleschen Zustand erstellen",jAe="Kanal erstellen",WAe="Gerät erstellen",HAe="Nummern-Zustand erstellen",UAe="Zustand erstellen",YAe="String-Zustand erstellen",VAe="T.",GAe="Fr",qAe="Mo",XAe="Sa",JAe="So",ZAe="Do",KAe="Di",QAe="Mi",ePe="Expertenmodus",tPe="Alle Dateien",rPe="Audio",nPe="Code/JSON",aPe="Bilder",iPe="Text",oPe="Video",sPe="Einstellungen",lPe="ohne",cPe="Funktion",uPe="ID",dPe="Name",fPe="Rolle",hPe="Raum",pPe="Typ",mPe="Ungültige Einstellungen",vPe="Letzte Änderung",gPe="örtlich",_Pe="Apr",yPe="Aug",bPe="Dez",wPe="Feb",SPe="Jan",xPe="Jul",CPe="Jun",TPe="Mai",kPe="Mär",EPe="Nov",DPe="Okt",MPe="Sep",OPe="Apr",$Pe="Aug",APe="Dez",PPe="Feb",IPe="Jan",RPe="Jul",LPe="Jun",NPe="Mai",FPe="Mär",zPe="Nov",BPe="Okt",jPe="Sep",WPe="kein",HPe="Objekt geändert von",UPe="Objekt zuletzt geändert um",YPe="Einstellungen von anderen Adaptern %s",VPe="Qualitätscode",GPe="wiederholen",qPe='Um einen Ordner auszuwählen, halten Sie einfach die Taste "Shift" gedrückt, indem Sie auf den Ordner klicken.',XPe="Zustand geändert durch",JPe="Objekt geändert von",ZPe="Zeitstempel",KPe="Bestätigt",QPe="Kommentar",eIe="Statuswert kopieren",tIe="Benutzerdefinierte Einstellungen",rIe="Objekt löschen",nIe="Objekt bearbeiten",aIe="Statuswert bearbeiten",iIe="Von",oIe="Zuletzt geändert",sIe="Qualität",lIe="Zeitstempel",cIe="Benutzer",uIe="Wert",dIe="Wert",fIe="Achtung: Der CRON-Job wird im angegebenen Zeitraum jede Minute ausgeführt!",hIe="Achtung: Der CRON-Job wird im angegebenen Zeitraum jede Sekunde ausgeführt!",pIe="CRON",mIe="Datum",vIe="Tage",gIe="Tag",_Ie="Wochentage",yIe="Jeden",bIe="alle N Tage",wIe="jeden x-ten Tag der Woche",SIe="alle N Wochentage",xIe="alle N Stunden",CIe="alle N Minuten",TIe="alle N Monate",kIe="alle N Sekunden",EIe="jeden Tag",DIe="jeden Tag der Woche",MIe="jeden Tag der Woche",OIe="jede Stunde",$Ie="jede Minute",AIe="jeden Monat",PIe="jede Sekunde",IIe="Von",RIe="Stunden",LIe="Intervall",NIe="Intervall zwischen",FIe="Ungültiger CRON",zIe="Minuten",BIe="Monate",jIe="Einmal",WIe="Zeitraum",HIe="Sekunden",UIe="Einfach",YIe="Bestimmte Zeit",VIe="bestimmte Tage",GIe="bestimmte(r) Tag(e) der Woche",qIe="bestimmten Wochentag",XIe="bestimmte Stunden",JIe="bestimmte Minuten",ZIe="bestimmte Monate",KIe="bestimmte Sekunden",QIe="Zeit",eRe="Bis",tRe="Wizard",rRe="alle",nRe="Astronomischer Tag",aRe="Astronomische Nacht",iRe="Morgendämmerung",oRe="Abenddämmerung",sRe="Goldene Stunde",lRe="Goldene Stundenende",cRe="Nadir",uRe="Nautische Morgendämmerung",dRe="Nautische Abenddämmerung",fRe="Nacht",hRe="Nachtende",pRe="Sonnenmittag",mRe="Sonnenaufgang",vRe="Sonnenaufgangende",gRe="Sonnenuntergang",_Re="Sonnenuntergangstart",yRe="am",bRe="um %s",wRe="jeden Tag",SRe="jede Stunde",xRe="jede Minute",CRe="jeden Monat",TRe="jeden %s Tag",kRe="alle %s Stunden",ERe="alle %s Minuten",DRe="alle %s Monate",MRe="alle %s Wochen",ORe="alle %s Jahre",$Re="jede Woche",ARe="jedes Jahr",PRe="von %s bis %s",IRe="noch nie",RRe="am %s von %s",LRe="am %s und %s von",NRe="an jedem Datum von",FRe="%s",zRe="%s und %s",BRe="auf %s",jRe="auf %s und %s",WRe="an Wochenenden",HRe="an Werktagen",URe="wird nicht mehr ausgeführt, weil der Start in der Vergangenheit ist",YRe="auf %s",VRe="von %s",GRe="Ausführen von bis",qRe="bis %s",XRe="jeden",JRe="Bestimmte Zeit",ZRe="von",KRe="Von bis",QRe="Zeitintervall",eLe="umkehren",tLe="keiner",rLe="am",nLe="Zeitraum",aLe="Täglich",iLe="Daten",oLe="Tag",sLe="Jeden",lLe="Jeden Tag",cLe="Jeden Monat",uLe="Jede Woche",dLe="Jedes Jahr",fLe="Stunden",hLe="Minuten",pLe="Monat",mLe="Monatlich",vLe="Einmal",gLe="Bestimmte Monate",_Le="Woche",yLe="Wochentage",bLe="Wochenende",wLe="Wöchentlich",SLe="Arbeitstage",xLe="Jahr",CLe="Jährlich",TLe="Bestimmte Zeit",kLe="Zeit",ELe="zu",DLe="Gültigkeit",MLe="von",OLe="bis",$Le="Ganzer Tag",ALe="jeden Monat",PLe={"ra_%s links from aliases":"%s Links von Aliasen","ra_%s object(s) processed":"%s Objekt(e) verarbeitet","ra_%s was imported":"%s wurde importiert","ra_Accept license":"Lizenz akzeptieren","ra_Add new child object to selected parent":"Dem ausgewählten übergeordneten Objekt ein neues untergeordnetes Objekt hinzufügen","ra_Add objects tree from JSON file":"Objektbaum aus JSON-Datei hinzufügen","ra_Add row":"Zeile hinzufügen","ra_Advanced options":"Erweiterte Optionen","ra_All items are filtered out":"Alle Elemente sind herausgefiltert","ra_All objects":"Alle Objekte",ra_Append:P$e,"ra_Append %s entries or replace existing?":"%s Einträge anhängen oder vorhandene ersetzen?","ra_Append or replace?":"Anhängen oder ersetzen?","ra_Are you sure?":"Bist du sicher?","ra_Auto (no custom columns)":"Auto (keine benutzerdefinierten Spalten)","ra_Back to %s":"Zurück zu %s","ra_Background image":"Hintergrundbild",ra_Cancel:I$e,"ra_Cannot add items with set filter":"Elemente mit festgelegtem Filter können nicht hinzugefügt werden","ra_Cannot decode license":"Lizenz kann nicht entschlüsselt werden","ra_Cannot determine position: System settings are empty and GPS detection is disabled in browser":"Position kann nicht bestimmt werden: Die Systemeinstellungen sind leer und die GPS-Erkennung ist im Browser deaktiviert",'ra_Cannot find "%s"':'Kann "%s" nicht finden','ra_Cannot read "%s"':'"%s" kann nicht gelesen werden',"ra_Cannot read licenses: %s":"Lizenzen können nicht gelesen werden: %s","ra_Cannot retrieve options, as instance is offline":"Optionen können nicht abgerufen werden, da die Instanz offline ist","ra_Cannot update attribute, because not found in the object":"Attribut kann nicht aktualisiert werden, da es nicht im Objekt gefunden wurde","ra_Cannot upload":"Kann nicht hochladen",ra_Categories:R$e,"ra_Chained certificate":"Chained Zertifikat","ra_Change color theme":"Farbthema ändern","ra_Changed from":"Geändert von","ra_Channel → State":"Kanal → Zustand","ra_Check license":"Lizenz prüfen",ra_Checked:L$e,ra_Clear:N$e,"ra_Clear filter":"Filter löschen","ra_Clear icon":"Symbol löschen","ra_Clone current row":"Aktuelle Zeile klonen",ra_Close:F$e,"ra_Collapse all nodes":"Alle Knoten zuklappen","ra_Collapse one step node":"Eine Ebene zuklappen",ra_Commercial:z$e,ra_Configure:B$e,"ra_Configure visible columns":"Spalten Konfigurieren","ra_Confirm deletion of %s":"Das Löschen von %s bestätigen",ra_Connected:j$e,ra_Copied:W$e,"ra_Copied %s":'"%s" kopiert',"ra_Copy content":"Inhalte kopieren",ra_Create:H$e,"ra_Create alias":"Alias erstellen","ra_Create folder":"Ordner erstellen","ra_Create new folder in %s":'Neuen Ordner in "%s" erstellen',ra_Crop:U$e,"ra_Define CRON...":"Definieren Sie CRON ...","ra_Define functions":"Funktionen definieren","ra_Define rooms":"Räume definieren","ra_Define schedule":"Zeitplan definieren","ra_Define schedule...":"Zeitplan definieren ...",ra_Del:Y$e,ra_Delete:V$e,"ra_Delete (no confirm for 5 mins)":"Löschen (keine Bestätigung für 5 Minuten)","ra_Delete current row":"Aktuelle Zeile löschen","ra_Deselect all":"Alles abwählen","ra_Device → Channel → State":"Gerät → Kanal → Zustand",ra_Discard:G$e,ra_Disconnected:q$e,"ra_Do not export values of states":"Keine Zustandswerte exportieren","ra_Do not use let's encrypt":"Let's encrypt nicht verwenden","ra_Double click to reset table layout":"Doppelklicken, um das Tabellenlayout zurückzusetzen","ra_Drag 'n' drop some files here, or click to select files":"Die Datei hierher ziehen und ablegen, oder klicken, um die Datei auszuwählen","ra_Drop file here":"Datei hier ablegen","ra_Drop the files here...":"Datei hier ablegen...","ra_Duplicate name":"Doppelter Name","ra_Edit ACL":"ACL bearbeiten","ra_Edit alias":"Alias bearbeiten","ra_Edit custom config":"Bearbeite Benutzerdefinierte Konfiguration","ra_Edit function":"Funktion bearbeiten","ra_Edit object field":"Objektfeld bearbeiten","ra_Edit role":"Rolle bearbeiten","ra_Edit room":"Raum bearbeiten","ra_Edit value":"Wert bearbeiten",ra_Error:X$e,"ra_Expand all nodes":"Alle Knoten aufklappen","ra_Expand one step node":"Eine Ebene aufklappen","ra_Export data to %s file":"Daten in %s-Datei exportieren","ra_Failed to open JSON File":"Fehler beim Öffnen der JSON-Datei","ra_Fallback custom certificates":"Benutzerdefinierte Fallback-Zertifikate","ra_File is too big. Max %sk allowed. Try use SVG.":"Datei ist zu groß. Max %sk erlaubt. Versuchen Sie, SVG zu verwenden.",ra_Filter:J$e,"ra_Filter files":"Dateien filtern","ra_Folder name":"Ordnernamen","ra_Folder → Channel → State":"Ordner → Kanal → Zustand","ra_Folder → Device → Channel → State":"Ordner → Gerät → Kanal → Zustand","ra_Folder → State":"Ordner → Zustand","ra_Folders always first":"Ordner immer zuerst",ra_Friday:Z$e,"ra_Good luck":"Viel Glück","ra_Hide empty folders":"Leere Ordner ausblenden","ra_If no file will be created in the folder, it will disappear after the browser closed":"Wenn im Ordner keine Datei erstellt wird, verschwindet dieser nach dem Schließen des Browsers","ra_Import data from %s file":"Daten aus %s-Datei importieren","ra_Import from %s":"Von %s importieren","ra_Instance %s is alive":"Instanz %s ist aktiv","ra_Instance %s is not alive":"Instanz %s ist nicht aktiv","ra_Instance is not alive":"Instanz ist nicht am Leben","ra_Invalid CRON":"Ungültiger CRON","ra_Invalid JSON":"Ungültiges JSON","ra_Invalid answer from server":"Ungültige Antwort vom Server","ra_Invalid parent folder!":"Ungültiger übergeordneter Ordner!","ra_Invalid structure":"Ungültige Struktur","ra_JSON editor":"JSON-Editor","ra_Last change":"Letzte Änderung",ra_Latitude:K$e,"ra_License %s":"Lizenz %s","ra_License agreement":"Lizenzvereinbarung","ra_License does not exist":"Lizenz existiert nicht","ra_License expired on %s":"Lizenz am %s abgelaufen",'ra_License for other product "%s"':"Lizenz für anderes Produkt „%s“","ra_License is for version %s, but required version is %s.":"Lizenz ist für Version %s, aber erforderliche Version ist %s.","ra_License must be converted":"Die Lizenz muss auf eine neuere Version konvertiert werden. Sie können dies in Ihrem iobroker.net-Profil tun.","ra_License not found in license manager. Do you want to read licenses from iobroker.net?":"Lizenz im Lizenzmanager nicht gefunden. Möchten Sie Lizenzen von iobroker.net aktualisieren?","ra_Listen on all IPs":"Zugriff von allen IPs zulassen","ra_Load configuration from file":"Konfiguration aus Datei laden",ra_Longitude:Q$e,'ra_May not trigger "updateLicenses"':"Löst möglicherweise nicht „updateLicenses“ aus",ra_Message:eAe,ra_Monday:tAe,"ra_Move down":"Nach unten","ra_Move up":"Nach oben",ra_Name:rAe,"ra_No data found in file":"Keine Daten in der Datei gefunden","ra_No one license found in license manager":"Im Lizenzmanager wurde keine Lizenz gefunden","ra_No response from the backend":"Keine Antwort vom Backend",'ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".':'Nicht-Experten dürfen neue Objekte nur in "0_userdata.0" oder "alias.0" erstellen.',"ra_Not a number":"Keine Nummer",ra_Objects:nAe,ra_Ok:aAe,"ra_On weekdays":"An Wochentagen","ra_Only following structures of objects are available:":"Es stehen nur folgende Objektstrukturen zur Verfügung:","ra_Only selected":"Nur ausgewählt","ra_Owner group":"Besitzergruppe","ra_Owner user":"Besitzer Benutzer","ra_Passwords are not equal!":"Passwörter sind nicht gleich!","ra_Place your files here or click here to open the browse dialog":"Die Dateien hier platzieren oder hier klicken, um den Suchdialog zu öffnen","ra_Please confirm":"Bitte bestätigen","ra_Please create license":"Bitte erstellen Sie eine Lizenz","ra_Please enter the license":"Bitte die Lizenz eingeben","ra_Please select file...":"Bitte Datei auswählen...","ra_Please select object ID...":"Bitte Objekt-ID auswählen...","ra_Port could be used by %s":"Port könnte von %s verwendet werden","ra_Port is already used by %s":"Port wird bereits von %s verwendet","ra_Private certificate":"Privates Zertifikat",ra_Product:iAe,"ra_Public certificate":"Öffentliches Zertifikat","ra_Quality code":"Qualität","ra_Refresh tree":"Baum aktualisieren","ra_Reload files":"Dateien neu laden",ra_Repeat:oAe,ra_Replace:sAe,"ra_Request timed out":"Zeitüberschreitung der Anforderung","ra_Restrict to folder":"Auf Ordner beschränken",ra_Root:lAe,ra_Saturday:cAe,ra_Save:uAe,"ra_Save and close":"Speichern und schließen","ra_Save configuration to file":"Konfiguration in Datei speichern","ra_Save objects tree as JSON file":"Objektbaum als JSON-Datei speichern","ra_Select all":"Alle auswählen","ra_Select color":"Wähle Farbe","ra_Select predefined icon":"Vordefiniertes Symbol auswählen","ra_Select type of export":"Die Art des Exports auswählen ",ra_Selected:dAe,"ra_Selected %s object(s)":"Ausgewählt %s Objekt(en)","ra_Serial number (UUID)":"Seriennummer (UUID)",'ra_Serial number (UUID) "%s" in license is for other device.':"Seriennummer (UUID) „%s“ in der Lizenz gilt für ein anderes Gerät.","ra_Show all folders":"Alle Ordner anzeigen","ra_Show lines between rows":"Linien zwischen Zeilen anzeigen","ra_Show/Hide object descriptions":"Objektbeschreibungen ein-/ausblenden","ra_Show/hide filter input":"Filtereingabe ein-/ausblenden","ra_Some data are not stored. Discard?":"Einige Daten werden nicht gespeichert. Verwerfen?",ra_States:fAe,"ra_Suitable license not found in license manager":"Passende Lizenz im Lizenzmanager nicht gefunden",ra_Sunday:hAe,"ra_Suppress question for next %s minutes":"Frage für die nächsten %s Minuten unterdrücken","ra_System language":"Systemsprache","ra_Take browser position":"Position vom Browser einnehmen","ra_Take position from system settings":"Position aus den Systemeinstellungen übernehmen",'ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").':'Die Experten können Objekte überall erstellen, außer auf der zweiten Ebene (z. B. "vis.0" oder "javascript.0").',"ra_The page you are looking for was not found":"Die gesuchte Seite wurde nicht gefunden","ra_The schedule will be executed every minute. Are you sure?":"Der Zeitplan wird jede Minute ausgeführt. Sind Sie sicher?","ra_The schedule will be executed every second. Are you sure?":"Der Zeitplan wird jede Sekunde ausgeführt. Sind Sie sicher?",ra_Thursday:pAe,ra_Timestamp:mAe,"ra_Toggle expert mode":"Expertenmodus umschalten","ra_Toggle the states view":"Statusansicht umschalten","ra_Toggle view mode":"Ansichtsmodus umschalten","ra_Too big":"Zu groß","ra_Too small":"Zu klein","ra_Transparent dialog":"Transparenter Dialog",ra_Tuesday:vAe,"ra_Unknown error":"Unbekannter Fehler","ra_Unknown error!":"Unbekannter Fehler!",ra_Update:gAe,"ra_Upload file":"Datei hochladen","ra_Use all available let's encrypt certificates":"Alle verfügbaren Zertifikate von Let's encrypt benutzen","ra_Use iobroker.acme adapter for letsencrypt certificates":"ioBroker.acme-Adapter für letsencrypt-Zertifikate verwenden","ra_Use system settings for position":"Systemeinstellungen für die Position verwenden","ra_Used system settings":"Systemeinstellungen","ra_User files":"Benutzerdaten",ra_ValidTill:_Ae,ra_Value:yAe,ra_Version:bAe,"ra_View file":"Datei ansehen","ra_View: %s":"Anschauen: %s",ra_Wednesday:wAe,ra_Width:SAe,ra_Yes:xAe,"ra_You can export all objects or just the selected branch.":"Sie können alle Objekte oder nur den ausgewählten Zweig exportieren.","ra_You can filter entries by entering here some text":"Sie können Einträge filtern, indem Sie hier Text eingeben",ra___different__:CAe,ra_aclEveryone_read_object:TAe,ra_aclEveryone_read_state:kAe,ra_aclEveryone_write_object:EAe,ra_aclEveryone_write_state:DAe,ra_aclGroup_read_object:MAe,ra_aclGroup_read_state:OAe,ra_aclGroup_write_object:$Ae,ra_aclGroup_write_state:AAe,ra_aclOwner_read_object:PAe,ra_aclOwner_read_state:IAe,ra_aclOwner_write_object:RAe,ra_aclOwner_write_state:LAe,ra_buttons:NAe,ra_changedFrom:FAe,ra_close:zAe,ra_create_boolean_state:BAe,ra_create_channel:jAe,ra_create_device:WAe,ra_create_number_state:HAe,ra_create_state:UAe,ra_create_string_state:YAe,ra_daysShortText:VAe,ra_dow_Fr:GAe,ra_dow_Mo:qAe,ra_dow_Sa:XAe,ra_dow_Su:JAe,ra_dow_Th:ZAe,ra_dow_Tu:KAe,ra_dow_We:QAe,ra_expertMode:ePe,ra_fileType_all:tPe,ra_fileType_audio:rPe,ra_fileType_code:nPe,ra_fileType_images:aPe,ra_fileType_txt:iPe,ra_fileType_video:oPe,"ra_fileType_video,":"Video",ra_filter_customs:sPe,ra_filter_customs_without:lPe,ra_filter_func:cPe,ra_filter_id:uPe,ra_filter_name:dPe,ra_filter_role:fPe,ra_filter_room:hPe,ra_filter_type:pPe,"ra_import data from %s file":"Daten aus %s-Datei importieren",ra_invalidConfig:mPe,ra_lastChange:vPe,ra_locally:gPe,ra_month_Apr:_Pe,ra_month_Aug:yPe,ra_month_Dec:bPe,ra_month_Feb:wPe,ra_month_Jan:SPe,ra_month_Jul:xPe,ra_month_Jun:CPe,ra_month_Mai:TPe,ra_month_Mar:kPe,ra_month_Nov:EPe,ra_month_Oct:DPe,ra_month_Sep:MPe,ra_months_Apr:OPe,ra_months_Aug:$Pe,ra_months_Dec:APe,ra_months_Feb:PPe,ra_months_Jan:IPe,ra_months_Jul:RPe,ra_months_Jun:LPe,ra_months_Mai:NPe,ra_months_Mar:FPe,ra_months_Nov:zPe,ra_months_Oct:BPe,ra_months_Sep:jPe,ra_none:WPe,ra_object_changed_by:HPe,ra_object_changed_by_user:UPe,ra_otherConfig:YPe,ra_qualityCode:VPe,ra_repeat:GPe,ra_select_folder_hint:qPe,ra_state_changed_by:XPe,ra_state_changed_from:JPe,ra_timestamp:ZPe,ra_tooltip_ack:KPe,ra_tooltip_comment:QPe,ra_tooltip_copyState:eIe,ra_tooltip_customConfig:tIe,ra_tooltip_deleteObject:rIe,ra_tooltip_editObject:nIe,ra_tooltip_editState:aIe,ra_tooltip_from:iIe,ra_tooltip_lc:oIe,ra_tooltip_quality:sIe,ra_tooltip_ts:lIe,ra_tooltip_user:cIe,ra_tooltip_value:uIe,"ra_use seconds":"Sekunden benutzen",ra_val:dIe,"ra_via internet":"übers Internet",ra_warning_every_minute:fIe,ra_warning_every_second:hIe,sc_cron:pIe,sc_date:mIe,sc_dates:vIe,sc_dow:gIe,sc_dows:_Ie,sc_every:yIe,sc_everyN_dates:bIe,sc_everyN_dow:wIe,sc_everyN_dows:SIe,sc_everyN_hours:xIe,sc_everyN_minutes:CIe,sc_everyN_months:TIe,sc_everyN_seconds:kIe,sc_every_dates:EIe,sc_every_dow:DIe,sc_every_dows:MIe,sc_every_hours:OIe,sc_every_minutes:$Ie,sc_every_months:AIe,sc_every_seconds:PIe,sc_from:IIe,sc_hours:RIe,sc_interval:LIe,sc_intervalBetween:NIe,sc_invalid_cron:FIe,sc_minutes:zIe,sc_months:BIe,sc_once:jIe,sc_period:WIe,sc_seconds:HIe,sc_simple:UIe,sc_specific:YIe,sc_specific_dates:VIe,sc_specific_dow:GIe,sc_specific_dows:qIe,sc_specific_hours:XIe,sc_specific_minutes:JIe,sc_specific_months:ZIe,sc_specific_seconds:KIe,sc_time:QIe,sc_to:eRe,sc_wizard:tRe,sch_all:rRe,sch_astroDay:nRe,sch_astroNight:aRe,sch_astro_dawn:iRe,sch_astro_dusk:oRe,sch_astro_goldenHour:sRe,sch_astro_goldenHourEnd:lRe,sch_astro_nadir:cRe,sch_astro_nauticalDawn:uRe,sch_astro_nauticalDusk:dRe,sch_astro_night:fRe,sch_astro_nightEnd:hRe,sch_astro_solarNoon:pRe,sch_astro_sunrise:mRe,sch_astro_sunriseEnd:vRe,sch_astro_sunset:gRe,sch_astro_sunsetStart:_Re,sch_at:yRe,sch_desc_atTime:bRe,sch_desc_everyDay:wRe,sch_desc_everyHour:SRe,sch_desc_everyMinute:xRe,sch_desc_everyMonth:CRe,sch_desc_everyNDay:TRe,sch_desc_everyNHours:kRe,sch_desc_everyNMinutes:ERe,sch_desc_everyNMonths:DRe,sch_desc_everyNWeeks:MRe,sch_desc_everyNYears:ORe,sch_desc_everyWeek:$Re,sch_desc_everyYear:ARe,sch_desc_intervalFromTo:PRe,sch_desc_never:IRe,sch_desc_onDate:RRe,sch_desc_onDates:LRe,sch_desc_onEveryDate:NRe,sch_desc_onMonth:FRe,sch_desc_onMonths:zRe,sch_desc_onWeekday:BRe,sch_desc_onWeekdays:jRe,sch_desc_onWeekends:WRe,sch_desc_onWorkdays:HRe,sch_desc_onceInPast:URe,sch_desc_once_on:YRe,sch_desc_validFrom:VRe,sch_desc_validFromTo:GRe,sch_desc_validTo:qRe,sch_every:XRe,sch_exactTime:JRe,sch_from:ZRe,sch_fromTo:KRe,sch_intervalTime:QRe,sch_invert:eLe,sch_no_one:tLe,sch_on:rLe,sch_period:nLe,sch_periodDaily:aLe,sch_periodDates:iLe,sch_periodDay:oLe,sch_periodEvery:sLe,sch_periodEveryDay:lLe,sch_periodEveryMonth:cLe,sch_periodEveryWeek:uLe,sch_periodEveryYear:dLe,sch_periodHours:fLe,sch_periodMinutes:hLe,sch_periodMonth:pLe,sch_periodMonthly:mLe,sch_periodOnce:vLe,sch_periodSpecificMonths:gLe,sch_periodWeek:_Le,sch_periodWeekdays:yLe,sch_periodWeekend:bLe,sch_periodWeekly:wLe,sch_periodWorkdays:SLe,sch_periodYear:xLe,sch_periodYearly:CLe,sch_specificTime:TLe,sch_time:kLe,sch_to:ELe,sch_valid:DLe,sch_validFrom:MLe,sch_validTo:OLe,sch_wholeDay:$Le,sch_yearEveryMonth:ALe},ILe="Добавить",RLe="Отмена",LLe="Категории",NLe="Проверено",FLe="Удалить",zLe="Закрыть",BLe="Коммерческая",jLe="Настроить",WLe="Соединение установлено",HLe="скопировано",ULe="Создать",YLe="Обрезать",VLe="Delete",GLe="Удалить",qLe="Отказаться",XLe="Отключено",JLe="Ошибка",ZLe="Фильтр",KLe="Пятница",QLe="Широта",eNe="Долгота",tNe="Сообщение",rNe="Понедельник",nNe="Имя",aNe="Объекты",iNe="Ok",oNe="Продукт",sNe="Повторение",lNe="Заменять",cNe="Начало",uNe="Суббота",dNe="Сохранить",fNe="выбранный",hNe="Состояния",pNe="Воскресенье",mNe="Четверг",vNe="Времени",gNe="Вторник",_Ne="Обновить",yNe="Годен до",bNe="Значение",wNe="Версия",SNe="Среда",xNe="Ширина",CNe="Да",TNe="разное",kNe="Каждый может читать объект",ENe="Каждый может читать состояние",DNe="Каждый может написать объект",MNe="Каждый может написать состояние",ONe="Группа может читать объект",$Ne="Группа может читать состояние",ANe="Группа может писать объект",PNe="Группа может записывать состояние",INe="Владелец может читать объект",RNe="Владелец может читать состояние",LNe="Владелец может писать объект",NNe="Владелец может писать состояние",FNe="Кнопки",zNe="Изменено с",BNe="Закрыть",jNe="Создать логическое состояние",WNe="Создать канал",HNe="Создать устройство",UNe="Создать состояние номера",YNe="Создать состояние",VNe="Создать состояние строки",GNe="д.",qNe="Пт",XNe="Пн",JNe="Сб",ZNe="Вс",KNe="Чт",QNe="Вт",e5e="Ср",t5e="Экспертный режим",r5e="Все файлы",n5e="Аудио",a5e="Код/JSON",i5e="Картинки",o5e="Текст",s5e="видео",l5e="настройки",c5e="без",u5e="функция",d5e="ID",f5e="Имя",h5e="роль",p5e="комната",m5e="Тип",v5e="Неверные настройки",g5e="Последнее изменение",_5e="локально",y5e="Апр",b5e="Авг",w5e="Дек",S5e="Фев",x5e="Янв",C5e="Июл",T5e="Июн",k5e="Май",E5e="Мрт",D5e="Ноя",M5e="Окт",O5e="Сен",$5e="Апр",A5e="Авг",P5e="Дек",I5e="Фев",R5e="Янв",L5e="Июнь",N5e="Июль",F5e="Май",z5e="Март",B5e="Ноя",j5e="Окт",W5e="Сен",H5e="ничего",U5e="Объект изменен",Y5e="Последний раз объект изменен в",V5e="Настройки из другого адаптера %s",G5e="Код качества",q5e="повтор",X5e="Чтобы выбрать папку, просто удерживайте клавишу «Shift», щелкнув папку.",J5e="Состояние изменено",Z5e="Объект изменен с",K5e="Отметка времени",Q5e="Подтверждено",e3e="Комментарий",t3e="Скопируйте значение состояния",r3e="Пользовательские настройки",n3e="Удалить объект",a3e="Редактировать объект",i3e="Изменить значение состояния",o3e="От",s3e="Последнее изменение",l3e="Качество",c3e="Отметка времени",u3e="пользователь",d3e="Значение",f3e="Значение",h3e="Внимание: задание CRON будет запускаться каждую минуту в течение указанного периода!",p3e="Внимание: задание CRON будет выполняться каждую секунду в течение указанного периода!",m3e="CRON",v3e="Дата",g3e="Даты",_3e="День",y3e="День недели",b3e="каждый(ую/ые)",w3e="каждый N день",S3e="каждый N-й день недели",x3e="каждый N день недели",C3e="каждые N часов",T3e="каждые N минут",k3e="каждые N месяцев",E3e="каждые N секунд",D3e="каждый день",M3e="Каждый день недели",O3e="каждый день недели",$3e="каждый час",A3e="каждую минуту",P3e="каждый месяц",I3e="каждую секунду",R3e="От",L3e="часы",N3e="Интервал",F3e="Интервал между",z3e="Неверный CRON",B3e="минуты",j3e="Месяцы",W3e="один раз",H3e="Период",U3e="секунды",Y3e="Просто",V3e="Конкретное время",G3e="конкретные даты",q3e="конкретный день(а) недели",X3e="конкретный день недели",J3e="конкретные часы",Z3e="конкретные минуты",K3e="конкретные месяцы",Q3e="конкретные секунды",e4e="Время",t4e="До",r4e="Форма",n4e="все",a4e="днём",i4e="ночью",o4e="Рассвет",s4e="Сумерки",l4e="Золотой час",c4e="Конец золотого часа",u4e="Надир",d4e="Морской рассвет",f4e="Морские сумерки",h4e="Ночь",p4e="Конец ночи",m4e="Солнечный полдень",v4e="Восход",g4e="Восход солнца",_4e="Заход солнца",y4e="Начало заката",b4e="дата",w4e="в %s",S4e="каждый день",x4e="каждый час",C4e="каждую минуту",T4e="каждый месяц",k4e="каждый %s день",E4e="каждый %s часов",D4e="каждые %s минут",M4e="каждые %s месяцев",O4e="каждые %s недель",$4e="каждые %s лет",A4e="каждую неделю",P4e="каждый год",I4e="от %s до %s",R4e="никогда",L4e="%s %s",N4e="%s и %s",F4e="в каждый день",z4e="%s",B4e="%s и %s",j4e="%s",W4e="%s и %s",H4e="на выходных",U4e="в рабочие дни",Y4e="не будет больше выполняться, потому что начало в прошлом",V4e="%s",G4e="%s",q4e="Выполнить с",X4e="%s",J4e="каждый",Z4e="Конкретное время",K4e="от",Q4e="От и до",eFe="Интервал времени",tFe="инвертировать",rFe="никакой",nFe="на",aFe="период",iFe="Ежедневно",oFe="Даты",sFe="День",lFe="каждый",cFe="Каждый день",uFe="Каждый месяц",dFe="Каждую неделю",fFe="Каждый год",hFe="часов",pFe="минут",mFe="месяц",vFe="ежемесячно",gFe="однажды",_Fe="Конкретные месяцы",yFe="Неделю",bFe="Будние дни",wFe="выходные",SFe="еженедельно",xFe="Рабочие дни",CFe="Год",TFe="каждый год",kFe="Конкретное время",EFe="Время",DFe="в",MFe="действительный",OFe="от",$Fe="в",AFe="Весь день",PFe="каждый месяц",IFe={"ra_%s links from aliases":"%s ссылок из псевдонимов","ra_%s object(s) processed":"Объектов обработано: %s","ra_%s was imported":"%s был импортирован","ra_Accept license":"Принять лицензию","ra_Add new child object to selected parent":"Добавить новый дочерний объект к выбранному родительскому объекту","ra_Add objects tree from JSON file":"Добавить дерево объектов из файла JSON","ra_Add row":"Добавить ряд","ra_Advanced options":"Расширенные настройки","ra_All items are filtered out":"Все элементы отфильтрованы","ra_All objects":"Все объекты",ra_Append:ILe,"ra_Append %s entries or replace existing?":"Добавить записи %s или заменить существующие?","ra_Append or replace?":"Дополнить или заменить?","ra_Are you sure?":"Вы уверены?","ra_Auto (no custom columns)":"Авто (без настраиваемых столбцов)","ra_Back to %s":"Вернуться к %s","ra_Background image":"Фоновая картинка",ra_Cancel:RLe,"ra_Cannot add items with set filter":"Невозможно добавить элементы с установленным фильтром","ra_Cannot decode license":"Не могу декодировать лицензию","ra_Cannot determine position: System settings are empty and GPS detection is disabled in browser":"Невозможно определить местоположение: системные настройки пусты, а обнаружение GPS отключено в браузере.",'ra_Cannot find "%s"':'Не могу найти "%s"','ra_Cannot read "%s"':'Не могу прочитать "%s"',"ra_Cannot read licenses: %s":"Невозможно прочитать лицензии: %s","ra_Cannot retrieve options, as instance is offline":"Невозможно получить параметры, так как экземпляр находится в автономном режиме.","ra_Cannot update attribute, because not found in the object":"Невозможно обновить атрибут, потому что он не найден в объекте","ra_Cannot upload":"Невозможно загрузить",ra_Categories:LLe,"ra_Chained certificate":"Chained сертификат","ra_Change color theme":"Изменить цветовую тему","ra_Changed from":"Изменено","ra_Channel → State":"Канал → Состояние","ra_Check license":"Проверить лицензию",ra_Checked:NLe,ra_Clear:FLe,"ra_Clear filter":"Очистить фильтр","ra_Clear icon":"Очистить значок","ra_Clone current row":"Клонировать текущую строку",ra_Close:zLe,"ra_Collapse all nodes":"Свернуть все узлы","ra_Collapse one step node":"Свернуть один уровень",ra_Commercial:BLe,ra_Configure:jLe,"ra_Configure visible columns":"Настроить видимые столбцы","ra_Confirm deletion of %s":"Подтвердите удаление %s",ra_Connected:WLe,ra_Copied:HLe,"ra_Copied %s":'Скопировано "%s"',"ra_Copy content":"Копировать содержимое",ra_Create:ULe,"ra_Create alias":"Создать псевдоним","ra_Create folder":"Создать папку","ra_Create new folder in %s":"Создать новую папку в %s",ra_Crop:YLe,"ra_Define CRON...":"Определите CRON...","ra_Define functions":"Задать функции","ra_Define rooms":"Задать комнаты","ra_Define schedule":"Задать расписание","ra_Define schedule...":"Определить расписание ...",ra_Del:VLe,ra_Delete:GLe,"ra_Delete (no confirm for 5 mins)":"Удалить (без подтверждения в течение 5 минут)","ra_Delete current row":"Удалить текущую строку","ra_Deselect all":"Убрать выбор везде","ra_Device → Channel → State":"Устройство → Канал → Состояние",ra_Discard:qLe,ra_Disconnected:XLe,"ra_Do not export values of states":"Не экспортировать значения состояний","ra_Do not use let's encrypt":"Не использовать Let’s Encrypt","ra_Double click to reset table layout":"Дважды щелкните, чтобы сбросить макет таблицы","ra_Drag 'n' drop some files here, or click to select files":"Перетащите сюда несколько файлов или щелкните, чтобы выбрать файлы","ra_Drop file here":"Перетащите файл сюда","ra_Drop the files here...":"Перетащите файл сюда ...","ra_Duplicate name":"Повторяющееся имя","ra_Edit ACL":"Изменить ACL-список","ra_Edit alias":"Изменить псевдоним","ra_Edit custom config":"Редактировать настраиваемую конфигурацию","ra_Edit function":"Изменить функцию","ra_Edit object field":"Поле редактирования объекта","ra_Edit role":"Изменить роль","ra_Edit room":"Редактировать комнату","ra_Edit value":"Изменить значение",ra_Error:JLe,"ra_Expand all nodes":"Развернуть все узлы","ra_Expand one step node":"Открыть один уровень","ra_Export data to %s file":"Экспорт данных в файл %s","ra_Failed to open JSON File":"Не удалось открыть файл JSON","ra_Fallback custom certificates":"Резервные пользовательские сертификаты","ra_File is too big. Max %sk allowed. Try use SVG.":"Файл слишком большой. Разрешено максимальное количество %sk. Попробуйте использовать SVG.",ra_Filter:ZLe,"ra_Filter files":"Фильтровать файлы","ra_Folder name":"Имя папки","ra_Folder → Channel → State":"Папка → Канал → Состояние","ra_Folder → Device → Channel → State":"Папка → Устройство → Канал → Состояние","ra_Folder → State":"Папка → Состояние","ra_Folders always first":"Папки всегда на первом месте",ra_Friday:KLe,"ra_Good luck":"Удачи","ra_Hide empty folders":"Скрыть пустые папки","ra_If no file will be created in the folder, it will disappear after the browser closed":"Если в папке не будет создан файл, он исчезнет после закрытия браузера.","ra_Import data from %s file":"Импорт данных из файла %s","ra_Import from %s":"Импорт из %s","ra_Instance %s is alive":"Экземпляр %s работает","ra_Instance %s is not alive":"Экземпляр %s не работает","ra_Instance is not alive":"Экземпляр не живой","ra_Invalid CRON":"Неверный CRON","ra_Invalid JSON":"Неверный JSON","ra_Invalid answer from server":"Неверный ответ от сервера","ra_Invalid parent folder!":"Неверная родительская папка!","ra_Invalid structure":"Неверная структура","ra_JSON editor":"Редактор JSON","ra_Last change":"Последнее изменение",ra_Latitude:QLe,"ra_License %s":"Лицензия %s","ra_License agreement":"Лицензионное соглашение","ra_License does not exist":"Лицензия не существует","ra_License expired on %s":"Срок действия лицензии истек %s",'ra_License for other product "%s"':'Лицензия на другой продукт "%s"',"ra_License is for version %s, but required version is %s.":"Лицензия предназначена для версии %s, но необходима версия %s.","ra_License must be converted":"Лицензия должна быть преобразована в более новую версию. Вы можете сделать это в своем профиле на iobroker.net.","ra_License not found in license manager. Do you want to read licenses from iobroker.net?":"Лицензия не найдена в диспетчере лицензий. Вы хотите обновить лицензии от iobroker.net?","ra_Listen on all IPs":"Слушать на всех IP","ra_Load configuration from file":"Загрузить конфигурацию из файла",ra_Longitude:eNe,'ra_May not trigger "updateLicenses"':"Не может запускать «updateLicenses»",ra_Message:tNe,ra_Monday:rNe,"ra_Move down":"Вниз","ra_Move up":"Вверх",ra_Name:nNe,"ra_No data found in file":"Данные в файле не найдены","ra_No one license found in license manager":"В менеджере лицензий не найдена ни одна лицензия","ra_No response from the backend":"Нет ответа от бэкэнда",'ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".':"Не-эксперты могут создавать новые объекты только в «0_userdata.0» или «alias.0».","ra_Not a number":"Не число",ra_Objects:aNe,ra_Ok:iNe,"ra_On weekdays":"На выходных","ra_Only following structures of objects are available:":"Доступны только следующие структуры объектов:","ra_Only selected":"Только выбранные","ra_Owner group":"Группа владельцев","ra_Owner user":"Пользователь-владелец","ra_Passwords are not equal!":"Пароли не равны!","ra_Place your files here or click here to open the browse dialog":"Поместите свои файлы сюда или щелкните здесь, чтобы открыть диалоговое окно выбора","ra_Please confirm":"Пожалуйста подтвердите","ra_Please create license":"Пожалуйста, создайте лицензию","ra_Please enter the license":"Пожалуйста, введите лицензию","ra_Please select file...":"Пожалуйста, выберите файл...","ra_Please select object ID...":"Пожалуйста, выберите идентификатор объекта ...","ra_Port could be used by %s":"Порт может использоваться %s","ra_Port is already used by %s":"Порт уже используется %s","ra_Private certificate":"Частный сертификат",ra_Product:oNe,"ra_Public certificate":"Публичный сертификат","ra_Quality code":"Валидность","ra_Refresh tree":"Обновить дерево","ra_Reload files":"Обновить",ra_Repeat:sNe,ra_Replace:lNe,"ra_Request timed out":"Истекло время запроса","ra_Restrict to folder":"Ограничить папкой",ra_Root:cNe,ra_Saturday:uNe,ra_Save:dNe,"ra_Save and close":"Сохранить и закрыть","ra_Save configuration to file":"Сохранить конфигурацию в файл","ra_Save objects tree as JSON file":"Сохранить дерево объектов как файл JSON","ra_Select all":"Выбрать все","ra_Select color":"Выберите цвет","ra_Select predefined icon":"Выберите предопределенный значок","ra_Select type of export":"Выберите тип экспорта",ra_Selected:fNe,"ra_Selected %s object(s)":"Объектов: %s","ra_Serial number (UUID)":"Серийный номер (UUID)",'ra_Serial number (UUID) "%s" in license is for other device.':"Серийный номер (UUID) «%s» в лицензии предназначен для другого устройства.","ra_Show all folders":"Показать все папки","ra_Show lines between rows":"Показать линии между строками","ra_Show/Hide object descriptions":"Показать/скрыть описания объектов","ra_Show/hide filter input":"Показать/скрыть ввод фильтра","ra_Some data are not stored. Discard?":"Некоторые данные не сохранились. Отказаться?",ra_States:hNe,"ra_Suitable license not found in license manager":"Подходящая лицензия не найдена в менеджере лицензий",ra_Sunday:pNe,"ra_Suppress question for next %s minutes":"Скрыть вопрос на следующие %s минут(ы)","ra_System language":"Язык системы","ra_Take browser position":"Взять позицию из браузера","ra_Take position from system settings":"Занять позицию из системных настроек",'ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").':"Эксперты могут создавать объекты везде, кроме второго уровня (например, «vis.0» или «javascript.0»).","ra_The page you are looking for was not found":"Страница, которую вы ищете, не найдена","ra_The schedule will be executed every minute. Are you sure?":"Расписание будет выполняться каждую минуту. Вы уверены?","ra_The schedule will be executed every second. Are you sure?":"Расписание будет выполняться каждую секунду. Вы уверены?",ra_Thursday:mNe,ra_Timestamp:vNe,"ra_Toggle expert mode":"Переключить экспертный режим","ra_Toggle the states view":"Переключить режим просмотра состояний","ra_Toggle view mode":"Переключить режим просмотра","ra_Too big":"Слишком большое","ra_Too small":"Слишком маленькое","ra_Transparent dialog":"Прозрачный диалог",ra_Tuesday:gNe,"ra_Unknown error":"Неизвестная ошибка","ra_Unknown error!":"Неизвестная ошибка!",ra_Update:_Ne,"ra_Upload file":"Загрузить файл","ra_Use all available let's encrypt certificates":"Использовать все доступные сертификаты Let’s encrypt","ra_Use iobroker.acme adapter for letsencrypt certificates":"Используйте адаптер iobroker.acme для сертификатов letsencrypt","ra_Use system settings for position":"Использовать системные настройки для позиции","ra_Used system settings":"Системные настройки","ra_User files":"Файлы пользователя",ra_ValidTill:yNe,ra_Value:bNe,ra_Version:wNe,"ra_View file":"Посмотреть файл","ra_View: %s":"Просмотр: %s",ra_Wednesday:SNe,ra_Width:xNe,ra_Yes:CNe,"ra_You can export all objects or just the selected branch.":"Вы можете экспортировать все объекты или только выбранную ветвь.","ra_You can filter entries by entering here some text":"Вы можете отфильтровать записи, введя здесь текст",ra___different__:TNe,ra_aclEveryone_read_object:kNe,ra_aclEveryone_read_state:ENe,ra_aclEveryone_write_object:DNe,ra_aclEveryone_write_state:MNe,ra_aclGroup_read_object:ONe,ra_aclGroup_read_state:$Ne,ra_aclGroup_write_object:ANe,ra_aclGroup_write_state:PNe,ra_aclOwner_read_object:INe,ra_aclOwner_read_state:RNe,ra_aclOwner_write_object:LNe,ra_aclOwner_write_state:NNe,ra_buttons:FNe,ra_changedFrom:zNe,ra_close:BNe,ra_create_boolean_state:jNe,ra_create_channel:WNe,ra_create_device:HNe,ra_create_number_state:UNe,ra_create_state:YNe,ra_create_string_state:VNe,ra_daysShortText:GNe,ra_dow_Fr:qNe,ra_dow_Mo:XNe,ra_dow_Sa:JNe,ra_dow_Su:ZNe,ra_dow_Th:KNe,ra_dow_Tu:QNe,ra_dow_We:e5e,ra_expertMode:t5e,ra_fileType_all:r5e,ra_fileType_audio:n5e,ra_fileType_code:a5e,ra_fileType_images:i5e,ra_fileType_txt:o5e,ra_fileType_video:s5e,"ra_fileType_video,":"видео",ra_filter_customs:l5e,ra_filter_customs_without:c5e,ra_filter_func:u5e,ra_filter_id:d5e,ra_filter_name:f5e,ra_filter_role:h5e,ra_filter_room:p5e,ra_filter_type:m5e,"ra_import data from %s file":"Импортировать данные из файла %s",ra_invalidConfig:v5e,ra_lastChange:g5e,ra_locally:_5e,ra_month_Apr:y5e,ra_month_Aug:b5e,ra_month_Dec:w5e,ra_month_Feb:S5e,ra_month_Jan:x5e,ra_month_Jul:C5e,ra_month_Jun:T5e,ra_month_Mai:k5e,ra_month_Mar:E5e,ra_month_Nov:D5e,ra_month_Oct:M5e,ra_month_Sep:O5e,ra_months_Apr:$5e,ra_months_Aug:A5e,ra_months_Dec:P5e,ra_months_Feb:I5e,ra_months_Jan:R5e,ra_months_Jul:L5e,ra_months_Jun:N5e,ra_months_Mai:F5e,ra_months_Mar:z5e,ra_months_Nov:B5e,ra_months_Oct:j5e,ra_months_Sep:W5e,ra_none:H5e,ra_object_changed_by:U5e,ra_object_changed_by_user:Y5e,ra_otherConfig:V5e,ra_qualityCode:G5e,ra_repeat:q5e,ra_select_folder_hint:X5e,ra_state_changed_by:J5e,ra_state_changed_from:Z5e,ra_timestamp:K5e,ra_tooltip_ack:Q5e,ra_tooltip_comment:e3e,ra_tooltip_copyState:t3e,ra_tooltip_customConfig:r3e,ra_tooltip_deleteObject:n3e,ra_tooltip_editObject:a3e,ra_tooltip_editState:i3e,ra_tooltip_from:o3e,ra_tooltip_lc:s3e,ra_tooltip_quality:l3e,ra_tooltip_ts:c3e,ra_tooltip_user:u3e,ra_tooltip_value:d3e,"ra_use seconds":"секунды",ra_val:f3e,"ra_via internet":"через интернет",ra_warning_every_minute:h3e,ra_warning_every_second:p3e,sc_cron:m3e,sc_date:v3e,sc_dates:g3e,sc_dow:_3e,sc_dows:y3e,sc_every:b3e,sc_everyN_dates:w3e,sc_everyN_dow:S3e,sc_everyN_dows:x3e,sc_everyN_hours:C3e,sc_everyN_minutes:T3e,sc_everyN_months:k3e,sc_everyN_seconds:E3e,sc_every_dates:D3e,sc_every_dow:M3e,sc_every_dows:O3e,sc_every_hours:$3e,sc_every_minutes:A3e,sc_every_months:P3e,sc_every_seconds:I3e,sc_from:R3e,sc_hours:L3e,sc_interval:N3e,sc_intervalBetween:F3e,sc_invalid_cron:z3e,sc_minutes:B3e,sc_months:j3e,sc_once:W3e,sc_period:H3e,sc_seconds:U3e,sc_simple:Y3e,sc_specific:V3e,sc_specific_dates:G3e,sc_specific_dow:q3e,sc_specific_dows:X3e,sc_specific_hours:J3e,sc_specific_minutes:Z3e,sc_specific_months:K3e,sc_specific_seconds:Q3e,sc_time:e4e,sc_to:t4e,sc_wizard:r4e,sch_all:n4e,sch_astroDay:a4e,sch_astroNight:i4e,sch_astro_dawn:o4e,sch_astro_dusk:s4e,sch_astro_goldenHour:l4e,sch_astro_goldenHourEnd:c4e,sch_astro_nadir:u4e,sch_astro_nauticalDawn:d4e,sch_astro_nauticalDusk:f4e,sch_astro_night:h4e,sch_astro_nightEnd:p4e,sch_astro_solarNoon:m4e,sch_astro_sunrise:v4e,sch_astro_sunriseEnd:g4e,sch_astro_sunset:_4e,sch_astro_sunsetStart:y4e,sch_at:b4e,sch_desc_atTime:w4e,sch_desc_everyDay:S4e,sch_desc_everyHour:x4e,sch_desc_everyMinute:C4e,sch_desc_everyMonth:T4e,sch_desc_everyNDay:k4e,sch_desc_everyNHours:E4e,sch_desc_everyNMinutes:D4e,sch_desc_everyNMonths:M4e,sch_desc_everyNWeeks:O4e,sch_desc_everyNYears:$4e,sch_desc_everyWeek:A4e,sch_desc_everyYear:P4e,sch_desc_intervalFromTo:I4e,sch_desc_never:R4e,sch_desc_onDate:L4e,sch_desc_onDates:N4e,sch_desc_onEveryDate:F4e,sch_desc_onMonth:z4e,sch_desc_onMonths:B4e,sch_desc_onWeekday:j4e,sch_desc_onWeekdays:W4e,sch_desc_onWeekends:H4e,sch_desc_onWorkdays:U4e,sch_desc_onceInPast:Y4e,sch_desc_once_on:V4e,sch_desc_validFrom:G4e,sch_desc_validFromTo:q4e,sch_desc_validTo:X4e,sch_every:J4e,sch_exactTime:Z4e,sch_from:K4e,sch_fromTo:Q4e,sch_intervalTime:eFe,sch_invert:tFe,sch_no_one:rFe,sch_on:nFe,sch_period:aFe,sch_periodDaily:iFe,sch_periodDates:oFe,sch_periodDay:sFe,sch_periodEvery:lFe,sch_periodEveryDay:cFe,sch_periodEveryMonth:uFe,sch_periodEveryWeek:dFe,sch_periodEveryYear:fFe,sch_periodHours:hFe,sch_periodMinutes:pFe,sch_periodMonth:mFe,sch_periodMonthly:vFe,sch_periodOnce:gFe,sch_periodSpecificMonths:_Fe,sch_periodWeek:yFe,sch_periodWeekdays:bFe,sch_periodWeekend:wFe,sch_periodWeekly:SFe,sch_periodWorkdays:xFe,sch_periodYear:CFe,sch_periodYearly:TFe,sch_specificTime:kFe,sch_time:EFe,sch_to:DFe,sch_valid:MFe,sch_validFrom:OFe,sch_validTo:$Fe,sch_wholeDay:AFe,sch_yearEveryMonth:PFe},RFe="Acrescentar",LFe="Cancelar",NFe="Categorias",FFe="Verificado",zFe="Excluir",BFe="Perto",jFe="Comercial",WFe="Configurar",HFe="Conectado",UFe="Copiado",YFe="Crio",VFe="Colheita",GFe="Delete",qFe="Excluir",XFe="Descartar",JFe="Desconectado",ZFe="Erro",KFe="Filtro",QFe="Sexta-feira",eze="Latitude",tze="Longitude",rze="mensagem",nze="Segunda-feira",aze="Nome",ize="Objetos",oze="Está bem",sze="produtos",lze="Repita",cze="Substituir",uze="Raiz",dze="Sábado",fze="Salve ",hze="Selecionado",pze="Estados",mze="Domingo",vze="Quinta-feira",gze="Timestamp",_ze="Terça-feira",yze="Atualizar",bze="Válida até",wze="Valor",Sze="Versão",xze="Quarta-feira",Cze="Largura",Tze="Sim",kze="diferente",Eze="Todos podem ler objetos",Dze="Todos podem ler o estado",Mze="Todos podem escrever objetos",Oze="Todos podem escrever o estado",$ze="O grupo pode ler o objeto",Aze="O grupo pode ler o estado",Pze="O grupo pode escrever o objeto",Ize="O grupo pode escrever o estado",Rze="O proprietário pode ler o objeto",Lze="O proprietário pode ler o estado",Nze="O proprietário pode escrever o objeto",Fze="O proprietário pode escrever o estado",zze="Botões",Bze="Mudou de",jze="fechar",Wze="Criar estado booleano",Hze="Criar canal",Uze="Criar dispositivo",Yze="Criar estado numérico",Vze="Criar estado",Gze="Criar estado de string",qze="d.",Xze="Fr",Jze="Mo",Zze="Sa",Kze="Su",Qze="º",e6e="Tu",t6e="Nós",r6e="Modo especialista",n6e="Todos os arquivos",a6e="áudio",i6e="Código/JSON",o6e="Imagens",s6e="Texto",l6e="Vídeo",c6e="Configurações",u6e="sem",d6e="Função",f6e="ID",h6e="Nome",p6e="Papel (Função)",m6e="Quarto",v6e="Tipo",g6e="Configurações inválidas",_6e="Última mudança",y6e="localmente",b6e="abril",w6e="agosto",S6e="dezembro",x6e="fevereiro",C6e="janeiro",T6e="julho",k6e="junho",E6e="Mai",D6e="março",M6e="novembro",O6e="outubro",$6e="setembro",A6e="abril",P6e="agosto",I6e="dezembro",R6e="fevereiro",L6e="janeiro",N6e="julho",F6e="junho",z6e="Mai",B6e="março",j6e="novembro",W6e="outubro",H6e="setembro",U6e="Nenhum",Y6e="Objeto alterado por",V6e="Objeto alterado pela última vez em",G6e="Configurações de outro adaptador %s",q6e="Código de qualidade",X6e="repetir",J6e='Para selecionar a pasta, basta segurar a tecla "shift" clicando na pasta.',Z6e="Estado alterado por",K6e="Objeto alterado de",Q6e="Timestamp",e8e="Confirmado",t8e="Comente",r8e="Copie o valor do estado",n8e="Opções customizadas",a8e="Excluir objeto",i8e="Editar objeto",o8e="Edite o valor do estado",s8e="De",l8e="Última alteração",c8e="Qualidade",u8e="Timestamp",d8e="Usuário",f8e="Valor",h8e="Valor",p8e="Aviso: O trabalho CRON será executado a cada minuto durante o período especificado!",m8e="Aviso: O trabalho CRON será executado a cada segundo durante o período especificado!",v8e="CRON",g8e="Data",_8e="Dias",y8e="Dia",b8e="Dia da semana",w8e="todos",S8e="a cada N dias",x8e="todo enésimo dia da semana",C8e="todos os N dias da semana",T8e="a cada N horas",k8e="a cada N minutos",E8e="a cada N meses",D8e="a cada N segundos",M8e="todo dia",O8e="todos os dias da semana",$8e="todos os dias da semana",A8e="toda hora",P8e="todo minuto",I8e="todo mês",R8e="todo segundo",L8e="de",N8e="horas",F8e="intervalo",z8e="intervalo entre",B8e="CRON inválido",j8e="minutos",W8e="meses",H8e="uma vez",U8e="período",Y8e="segundos",V8e="simples",G8e="tempo específico",q8e="datas específicas",X8e="dia(s) específico(s) da semana",J8e="dia específico de semanas",Z8e="horas específicas",K8e="minutos específicos",Q8e="meses específicos",eBe="segundos específicos",tBe="tempo",rBe="para",nBe="assistente",aBe="tudo",iBe="dia astral",oBe="noite astral",sBe="amanhecer",lBe="anoitecer",cBe="hora dourada",uBe="Fim da hora dourada",dBe="nadir",fBe="Amanhecer náutico",hBe="Anoitecer náutico",pBe="noite",mBe="fim da noite",vBe="meio-dia solar",gBe="nascer do sol",_Be="fim do nascer do sol",yBe="pôr do sol",bBe="início do pôr do sol",wBe="às",SBe="em %s",xBe="todo dia",CBe="toda hora",TBe="todo minuto",kBe="todo mês",EBe="a cada %s dias",DBe="a cada %s horas",MBe="a cada %s minutos",OBe="a cada %s meses",$Be="a cada %s semanas",ABe="a cada %s anos",PBe="toda semana",IBe="todo ano",RBe="de %s para %s",LBe="nunca",NBe="em %s de %s",FBe="em %s e %s de",zBe="em toda data de",BBe="%s",jBe="%s e %s",WBe="em %s",HBe="em %s e %s",UBe="nos fins de semana",YBe="em dias úteis",VBe="não será mais executado, porque o começo está no passado",GBe="em %s",qBe="de %s",XBe="Executar de até",JBe="até %s",ZBe="cada",KBe="tempo específico",QBe="de",eje="de a´t",tje="tempo de intervalo",rje="invertido",nje="nenhum",aje="em",ije="período",oje="diariamente",sje="datas",lje="dia",cje="todos",uje="todo dia",dje="todo mês",fje="toda semana",hje="todo ano",pje="horas",mje="minutos",vje="mês",gje="por mês",_je="uma vez",yje="meses específicos",bje="semana",wje="dias úteis",Sje="final de semana",xje="semanal",Cje="dias úteis",Tje="ano",kje="anual",Eje="tempo específico",Dje="tempo",Mje="para",Oje="válido",$je="de",Aje="para",Pje="dia inteiro",Ije="todo mês",Rje={"ra_%s links from aliases":"%s links de aliases","ra_%s object(s) processed":"%s objeto(s) processado(s)","ra_%s was imported":"%s foi importado","ra_Accept license":"Aceitar licença","ra_Add new child object to selected parent":"Adicionar novo objeto filho ao pai selecionado","ra_Add objects tree from JSON file":"Adicionar árvore de objetos do arquivo JSON","ra_Add row":"Adicionar linha","ra_Advanced options":"Opções avançadas","ra_All items are filtered out":"Todos os itens são filtrados","ra_All objects":"Todos os objetos",ra_Append:RFe,"ra_Append %s entries or replace existing?":"Acrescentar %s entradas ou substituir as existentes?","ra_Append or replace?":"Acrescentar ou substituir?","ra_Are you sure?":"Você tem certeza?","ra_Auto (no custom columns)":"Auto (sem colunas personalizadas)","ra_Back to %s":"Voltar para %s","ra_Background image":"Imagem de fundo",ra_Cancel:LFe,"ra_Cannot add items with set filter":"Não é possível adicionar itens com filtro definido","ra_Cannot decode license":"Não é possível decodificar a licença","ra_Cannot determine position: System settings are empty and GPS detection is disabled in browser":"Não é possível determinar a posição: as configurações do sistema estão vazias e a detecção de GPS está desativada no navegador",'ra_Cannot find "%s"':'Não foi possível encontrar "%s"','ra_Cannot read "%s"':'Não é possível ler "%s"',"ra_Cannot read licenses: %s":"Não é possível ler licenças: %s","ra_Cannot retrieve options, as instance is offline":"Não é possível recuperar opções, pois a instância está off-line","ra_Cannot update attribute, because not found in the object":"Não é possível atualizar o atributo, porque não foi encontrado no objeto","ra_Cannot upload":"Não é possível fazer upload",ra_Categories:NFe,"ra_Chained certificate":"certificado encadeado","ra_Change color theme":"Alterar tema de cores","ra_Changed from":"Mudou de","ra_Channel → State":"Canal → Estado","ra_Check license":"Verifique a licença",ra_Checked:FFe,ra_Clear:zFe,"ra_Clear filter":"Filtro limpo","ra_Clear icon":"Ícone de limpeza","ra_Clone current row":"Clonar linha atual",ra_Close:BFe,"ra_Collapse all nodes":"Recolher todos os nós","ra_Collapse one step node":"Recolher um nível",ra_Commercial:jFe,ra_Configure:WFe,"ra_Configure visible columns":"Configurar colunas visíveis","ra_Confirm deletion of %s":"Confirme a exclusão de %s",ra_Connected:HFe,ra_Copied:UFe,"ra_Copied %s":'"%s" copiado',"ra_Copy content":"Copiar conteúdo",ra_Create:YFe,"ra_Create alias":"Criar alias","ra_Create folder":"Criar pasta","ra_Create new folder in %s":"Crie uma nova pasta em %s",ra_Crop:VFe,"ra_Define CRON...":"Defina CRON...","ra_Define functions":"Definir funções","ra_Define rooms":"Definir quartos","ra_Define schedule":"Definir cronograma","ra_Define schedule...":"Definir programação ...",ra_Del:GFe,ra_Delete:qFe,"ra_Delete (no confirm for 5 mins)":"Excluir (sem confirmação por 5 minutos)","ra_Delete current row":"Excluir linha atual","ra_Deselect all":"Desmarque todos","ra_Device → Channel → State":"Dispositivo → Canal → Estado",ra_Discard:XFe,ra_Disconnected:JFe,"ra_Do not export values of states":"Não exporte valores de estados","ra_Do not use let's encrypt":"Não use vamos criptografar","ra_Double click to reset table layout":"Clique duas vezes para redefinir o layout da tabela","ra_Drag 'n' drop some files here, or click to select files":"Arraste e solte alguns arquivos aqui ou clique para selecionar arquivos","ra_Drop file here":"Solte o arquivo aqui","ra_Drop the files here...":"Solte o arquivo aqui ...","ra_Duplicate name":"Nome duplicado","ra_Edit ACL":"Editar ACL","ra_Edit alias":"Editar alias","ra_Edit custom config":"Editar configuração personalizada","ra_Edit function":"Função de edição","ra_Edit object field":"Editar campo de objeto","ra_Edit role":"Editar papel","ra_Edit room":"Sala de edição","ra_Edit value":"Editar valor",ra_Error:ZFe,"ra_Expand all nodes":"Expanda todos os nós","ra_Expand one step node":"Expanda um nível","ra_Export data to %s file":"Exportar dados para o arquivo %s","ra_Failed to open JSON File":"Falha ao abrir arquivo JSON","ra_Fallback custom certificates":"Certificados personalizados alternativos","ra_File is too big. Max %sk allowed. Try use SVG.":"O arquivo é muito grande. Max %sk permitido. Tente usar SVG.",ra_Filter:KFe,"ra_Filter files":"Filtrar arquivos","ra_Folder name":"Nome da pasta","ra_Folder → Channel → State":"Pasta → Canal → Estado","ra_Folder → Device → Channel → State":"Pasta → Dispositivo → Canal → Estado","ra_Folder → State":"Pasta → Estado","ra_Folders always first":"Pastas sempre primeiro",ra_Friday:QFe,"ra_Good luck":"Boa sorte","ra_Hide empty folders":"Esconder pastas vazias","ra_If no file will be created in the folder, it will disappear after the browser closed":"Se nenhum arquivo for criado na pasta, ele desaparecerá depois que o navegador for fechado","ra_Import data from %s file":"Importar dados do arquivo %s","ra_Import from %s":"Importar de %s","ra_Instance %s is alive":"O %s da instância está ativo","ra_Instance %s is not alive":"O %s da instância não está ativo","ra_Instance is not alive":"A instância não está ativa","ra_Invalid CRON":"CRON inválido","ra_Invalid JSON":"JSON inválido","ra_Invalid answer from server":"Resposta inválida do servidor","ra_Invalid parent folder!":"Pasta pai inválida!","ra_Invalid structure":"Estrutura inválida","ra_JSON editor":"Editor JSON","ra_Last change":"Última mudança",ra_Latitude:eze,"ra_License %s":"Licença %s","ra_License agreement":"Contrato de licença","ra_License does not exist":"A licença não existe","ra_License expired on %s":"A licença expirou em %s",'ra_License for other product "%s"':'Licença para outro produto "%s"',"ra_License is for version %s, but required version is %s.":"A licença é para a versão %s, mas a versão necessária é %s.","ra_License must be converted":"A licença deve ser convertida para uma versão mais recente. Você pode fazê-lo em seu perfil iobroker.net.","ra_License not found in license manager. Do you want to read licenses from iobroker.net?":"Licença não encontrada no gerenciador de licenças. Deseja atualizar as licenças do iobroker.net?","ra_Listen on all IPs":"Ouça em todos os IPs","ra_Load configuration from file":"Carregar configuração do arquivo",ra_Longitude:tze,'ra_May not trigger "updateLicenses"':'Pode não acionar "updateLicenses"',ra_Message:rze,ra_Monday:nze,"ra_Move down":"Mover para baixo","ra_Move up":"Subir",ra_Name:aze,"ra_No data found in file":"Nenhum dado encontrado no arquivo","ra_No one license found in license manager":"Nenhuma licença encontrada no gerenciador de licenças","ra_No response from the backend":"Nenhuma resposta do backend",'ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".':'Os não especialistas podem criar novos objetos apenas em "0_userdata.0" ou "alias.0".',"ra_Not a number":"Não é um número",ra_Objects:ize,ra_Ok:oze,"ra_On weekdays":"Nos dias úteis","ra_Only following structures of objects are available:":"Apenas as seguintes estruturas de objetos estão disponíveis:","ra_Only selected":"Apenas selecionado","ra_Owner group":"Grupo proprietário","ra_Owner user":"Usuário proprietário","ra_Passwords are not equal!":"As senhas não são iguais!","ra_Place your files here or click here to open the browse dialog":"Coloque seus arquivos aqui ou clique aqui para abrir a janela de navegação","ra_Please confirm":"Por favor confirme","ra_Please create license":"Crie uma licença","ra_Please enter the license":"Por favor, insira a licença","ra_Please select file...":"Selecione o arquivo...","ra_Please select object ID...":"Selecione o ID do objeto ...","ra_Port could be used by %s":"A porta pode ser usada por %s","ra_Port is already used by %s":"A porta já está sendo usada por %s","ra_Private certificate":"certificado privado",ra_Product:sze,"ra_Public certificate":"certificado público","ra_Quality code":"Qualidade","ra_Refresh tree":"Atualizar árvore","ra_Reload files":"Recarregar arquivos",ra_Repeat:lze,ra_Replace:cze,"ra_Request timed out":"Solicitação expirou","ra_Restrict to folder":"Restringir à pasta",ra_Root:uze,ra_Saturday:dze,ra_Save:fze,"ra_Save and close":"Salvar e fechar","ra_Save configuration to file":"Salvar configuração em arquivo","ra_Save objects tree as JSON file":"Salvar árvore de objetos como arquivo JSON","ra_Select all":"Selecionar tudo","ra_Select color":"Selecione a cor","ra_Select predefined icon":"Selecione o ícone predefinido","ra_Select type of export":"Selecione o tipo de exportação",ra_Selected:hze,"ra_Selected %s object(s)":"%s objeto(s) selecionado(s)","ra_Serial number (UUID)":"Número de série (UUID)",'ra_Serial number (UUID) "%s" in license is for other device.':'O número de série (UUID) "%s" na licença é para outro dispositivo.',"ra_Show all folders":"Mostrar todas as pastas","ra_Show lines between rows":"Mostrar linhas entre as linhas","ra_Show/Hide object descriptions":"Mostrar/ocultar descrições de objetos","ra_Show/hide filter input":"Mostrar/ocultar entrada de filtro","ra_Some data are not stored. Discard?":"Alguns dados não são armazenados. Descartar?",ra_States:pze,"ra_Suitable license not found in license manager":"Licença adequada não encontrada no gerenciador de licenças",ra_Sunday:mze,"ra_Suppress question for next %s minutes":"Suprimir pergunta nos próximos %s minutos","ra_System language":"Idioma do sistema","ra_Take browser position":"Tomar posição do navegador","ra_Take position from system settings":"Tomar posição a partir das configurações do sistema",'ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").':'Os especialistas podem criar objetos em qualquer lugar, exceto no segundo nível (por exemplo, "vis.0" ou "javascript.0").',"ra_The page you are looking for was not found":"A página que você está procurando não foi encontrada","ra_The schedule will be executed every minute. Are you sure?":"O agendamento será executado a cada minuto. Tem certeza?","ra_The schedule will be executed every second. Are you sure?":"O agendamento será executado a cada segundo. Tem certeza?",ra_Thursday:vze,ra_Timestamp:gze,"ra_Toggle expert mode":"Alternar modo especialista","ra_Toggle the states view":"Alternar a visualização dos estados","ra_Toggle view mode":"Alternar modo de visualização","ra_Too big":"Muito grande","ra_Too small":"Muito pequeno","ra_Transparent dialog":"Diálogo transparente",ra_Tuesday:_ze,"ra_Unknown error":"Erro desconhecido","ra_Unknown error!":"Erro desconhecido!",ra_Update:yze,"ra_Upload file":"Subir arquivo","ra_Use all available let's encrypt certificates":"Use todos os certificados disponíveis vamos criptografar","ra_Use iobroker.acme adapter for letsencrypt certificates":"Use o adaptador iobroker.acme para certificados letsencrypt","ra_Use system settings for position":"Use as configurações do sistema para a posição","ra_Used system settings":"Configurações do sistema usadas","ra_User files":"Arquivos do usuário",ra_ValidTill:bze,ra_Value:wze,ra_Version:Sze,"ra_View file":"Visualizar arquivo","ra_View: %s":"Visualizar: %s",ra_Wednesday:xze,ra_Width:Cze,ra_Yes:Tze,"ra_You can export all objects or just the selected branch.":"Você pode exportar todos os objetos ou apenas a ramificação selecionada.","ra_You can filter entries by entering here some text":"Você pode filtrar as entradas digitando aqui algum texto",ra___different__:kze,ra_aclEveryone_read_object:Eze,ra_aclEveryone_read_state:Dze,ra_aclEveryone_write_object:Mze,ra_aclEveryone_write_state:Oze,ra_aclGroup_read_object:$ze,ra_aclGroup_read_state:Aze,ra_aclGroup_write_object:Pze,ra_aclGroup_write_state:Ize,ra_aclOwner_read_object:Rze,ra_aclOwner_read_state:Lze,ra_aclOwner_write_object:Nze,ra_aclOwner_write_state:Fze,ra_buttons:zze,ra_changedFrom:Bze,ra_close:jze,ra_create_boolean_state:Wze,ra_create_channel:Hze,ra_create_device:Uze,ra_create_number_state:Yze,ra_create_state:Vze,ra_create_string_state:Gze,ra_daysShortText:qze,ra_dow_Fr:Xze,ra_dow_Mo:Jze,ra_dow_Sa:Zze,ra_dow_Su:Kze,ra_dow_Th:Qze,ra_dow_Tu:e6e,ra_dow_We:t6e,ra_expertMode:r6e,ra_fileType_all:n6e,ra_fileType_audio:a6e,ra_fileType_code:i6e,ra_fileType_images:o6e,ra_fileType_txt:s6e,ra_fileType_video:l6e,"ra_fileType_video,":"Vídeo",ra_filter_customs:c6e,ra_filter_customs_without:u6e,ra_filter_func:d6e,ra_filter_id:f6e,ra_filter_name:h6e,ra_filter_role:p6e,ra_filter_room:m6e,ra_filter_type:v6e,"ra_import data from %s file":"Importar dados do arquivo %s",ra_invalidConfig:g6e,ra_lastChange:_6e,ra_locally:y6e,ra_month_Apr:b6e,ra_month_Aug:w6e,ra_month_Dec:S6e,ra_month_Feb:x6e,ra_month_Jan:C6e,ra_month_Jul:T6e,ra_month_Jun:k6e,ra_month_Mai:E6e,ra_month_Mar:D6e,ra_month_Nov:M6e,ra_month_Oct:O6e,ra_month_Sep:$6e,ra_months_Apr:A6e,ra_months_Aug:P6e,ra_months_Dec:I6e,ra_months_Feb:R6e,ra_months_Jan:L6e,ra_months_Jul:N6e,ra_months_Jun:F6e,ra_months_Mai:z6e,ra_months_Mar:B6e,ra_months_Nov:j6e,ra_months_Oct:W6e,ra_months_Sep:H6e,ra_none:U6e,ra_object_changed_by:Y6e,ra_object_changed_by_user:V6e,ra_otherConfig:G6e,ra_qualityCode:q6e,ra_repeat:X6e,ra_select_folder_hint:J6e,ra_state_changed_by:Z6e,ra_state_changed_from:K6e,ra_timestamp:Q6e,ra_tooltip_ack:e8e,ra_tooltip_comment:t8e,ra_tooltip_copyState:r8e,ra_tooltip_customConfig:n8e,ra_tooltip_deleteObject:a8e,ra_tooltip_editObject:i8e,ra_tooltip_editState:o8e,ra_tooltip_from:s8e,ra_tooltip_lc:l8e,ra_tooltip_quality:c8e,ra_tooltip_ts:u8e,ra_tooltip_user:d8e,ra_tooltip_value:f8e,"ra_use seconds":"use segundos",ra_val:h8e,"ra_via internet":"via internet",ra_warning_every_minute:p8e,ra_warning_every_second:m8e,sc_cron:v8e,sc_date:g8e,sc_dates:_8e,sc_dow:y8e,sc_dows:b8e,sc_every:w8e,sc_everyN_dates:S8e,sc_everyN_dow:x8e,sc_everyN_dows:C8e,sc_everyN_hours:T8e,sc_everyN_minutes:k8e,sc_everyN_months:E8e,sc_everyN_seconds:D8e,sc_every_dates:M8e,sc_every_dow:O8e,sc_every_dows:$8e,sc_every_hours:A8e,sc_every_minutes:P8e,sc_every_months:I8e,sc_every_seconds:R8e,sc_from:L8e,sc_hours:N8e,sc_interval:F8e,sc_intervalBetween:z8e,sc_invalid_cron:B8e,sc_minutes:j8e,sc_months:W8e,sc_once:H8e,sc_period:U8e,sc_seconds:Y8e,sc_simple:V8e,sc_specific:G8e,sc_specific_dates:q8e,sc_specific_dow:X8e,sc_specific_dows:J8e,sc_specific_hours:Z8e,sc_specific_minutes:K8e,sc_specific_months:Q8e,sc_specific_seconds:eBe,sc_time:tBe,sc_to:rBe,sc_wizard:nBe,sch_all:aBe,sch_astroDay:iBe,sch_astroNight:oBe,sch_astro_dawn:sBe,sch_astro_dusk:lBe,sch_astro_goldenHour:cBe,sch_astro_goldenHourEnd:uBe,sch_astro_nadir:dBe,sch_astro_nauticalDawn:fBe,sch_astro_nauticalDusk:hBe,sch_astro_night:pBe,sch_astro_nightEnd:mBe,sch_astro_solarNoon:vBe,sch_astro_sunrise:gBe,sch_astro_sunriseEnd:_Be,sch_astro_sunset:yBe,sch_astro_sunsetStart:bBe,sch_at:wBe,sch_desc_atTime:SBe,sch_desc_everyDay:xBe,sch_desc_everyHour:CBe,sch_desc_everyMinute:TBe,sch_desc_everyMonth:kBe,sch_desc_everyNDay:EBe,sch_desc_everyNHours:DBe,sch_desc_everyNMinutes:MBe,sch_desc_everyNMonths:OBe,sch_desc_everyNWeeks:$Be,sch_desc_everyNYears:ABe,sch_desc_everyWeek:PBe,sch_desc_everyYear:IBe,sch_desc_intervalFromTo:RBe,sch_desc_never:LBe,sch_desc_onDate:NBe,sch_desc_onDates:FBe,sch_desc_onEveryDate:zBe,sch_desc_onMonth:BBe,sch_desc_onMonths:jBe,sch_desc_onWeekday:WBe,sch_desc_onWeekdays:HBe,sch_desc_onWeekends:UBe,sch_desc_onWorkdays:YBe,sch_desc_onceInPast:VBe,sch_desc_once_on:GBe,sch_desc_validFrom:qBe,sch_desc_validFromTo:XBe,sch_desc_validTo:JBe,sch_every:ZBe,sch_exactTime:KBe,sch_from:QBe,sch_fromTo:eje,sch_intervalTime:tje,sch_invert:rje,sch_no_one:nje,sch_on:aje,sch_period:ije,sch_periodDaily:oje,sch_periodDates:sje,sch_periodDay:lje,sch_periodEvery:cje,sch_periodEveryDay:uje,sch_periodEveryMonth:dje,sch_periodEveryWeek:fje,sch_periodEveryYear:hje,sch_periodHours:pje,sch_periodMinutes:mje,sch_periodMonth:vje,sch_periodMonthly:gje,sch_periodOnce:_je,sch_periodSpecificMonths:yje,sch_periodWeek:bje,sch_periodWeekdays:wje,sch_periodWeekend:Sje,sch_periodWeekly:xje,sch_periodWorkdays:Cje,sch_periodYear:Tje,sch_periodYearly:kje,sch_specificTime:Eje,sch_time:Dje,sch_to:Mje,sch_valid:Oje,sch_validFrom:$je,sch_validTo:Aje,sch_wholeDay:Pje,sch_yearEveryMonth:Ije},Lje="toevoegen",Nje="Annuleer",Fje="Categorieën",zje="Gecontroleerd",Bje="Verwijderen",jje="Dichtbij",Wje="Reclame",Hje="Configureren",Uje="Verbonden",Yje="Gekopieerd",Vje="Creëer",Gje="Bijsnijden",qje="Delete",Xje="Verwijderen",Jje="Weggooien",Zje="Verbinding verbroken",Kje="Fout",Qje="Filter",e9e="Vrijdag",t9e="Breedtegraad",r9e="Lengtegraad",n9e="Bericht",a9e="Maandag",i9e="Naam",o9e="Voorwerpen",s9e="OK",l9e="Product",c9e="Herhaling",u9e="Vervangen",d9e="Wortel",f9e="Zaterdag",h9e="Sparen",p9e="Geselecteerd",m9e="Staten",v9e="Zondag",g9e="Donderdag",_9e="Tijdstempel",y9e="Dinsdag",b9e="Bijwerken",w9e="Geldig tot",S9e="Waarde",x9e="Versie",C9e="Woensdag",T9e="Breedte",k9e="Ja",E9e="verschillend",D9e="Iedereen kan object lezen",M9e="Iedereen kan staat lezen",O9e="Iedereen kan object schrijven",$9e="Iedereen kan staat schrijven",A9e="Groep kan object lezen",P9e="Groep kan status lezen",I9e="Groep kan object schrijven",R9e="Groep kan staat schrijven",L9e="Eigenaar kan object lezen",N9e="Eigenaar kan staat lezen",F9e="Eigenaar kan object schrijven",z9e="Eigenaar kan staat schrijven",B9e="Toetsen",j9e="Veranderd van",W9e="dichtbij",H9e="Creëer een Booleaanse status",U9e="Kanaal maken",Y9e="Apparaat maken",V9e="Nummerstatus maken",G9e="Staat creëren",q9e="Tekenreeksstatus maken",X9e="d.",J9e="Fr",Z9e="Mo",K9e="Za",Q9e="Zo",e7e="Th",t7e="Tu",r7e="Wij",n7e="Expert modus",a7e="Alle bestanden",i7e="Audio",o7e="Code/JSON",s7e="Afbeeldingen",l7e="Tekst",c7e="Video",u7e="Instellingen",d7e="zonder",f7e="Functie",h7e="ID",p7e="Naam",m7e="Rol",v7e="Kamer",g7e="Type",_7e="Ongeldige instellingen",y7e="Laatste wijziging",b7e="plaatselijk",w7e="april",S7e="aug",x7e="dec",C7e="februari",T7e="jan",k7e="jul",E7e="juni",D7e="Mei",M7e="mrt",O7e="nov",$7e="Okt",A7e="sept",P7e="april",I7e="aug",R7e="dec",L7e="februari",N7e="jan",F7e="jul",z7e="juni",B7e="Mei",j7e="mrt",W7e="nov",H7e="Okt",U7e="sept",Y7e="geen",V7e="Object veranderd door",G7e="Object voor het laatst gewijzigd om",q7e="Instellingen van andere adapter %s",X7e="Kwaliteitscode",J7e="herhalen",Z7e='Om een map te selecteren, houdt u gewoon de toets "shift" ingedrukt door op de map te klikken.',K7e="Staat veranderd door",Q7e="Object veranderd van",eWe="Tijdstempel",tWe="Erkende vlag",rWe="Opmerking",nWe="Kopieer de statuswaarde",aWe="Aangepaste instellingen",iWe="Object verwijderen",oWe="Object bewerken",sWe="Bewerk de statuswaarde",lWe="Van",cWe="Laatst gewijzigd",uWe="Kwaliteit",dWe="Tijdstempel",fWe="Gebruiker",hWe="Waarde",pWe="Waarde",mWe="Waarschuwing: De CRON-taak wordt elke minuut uitgevoerd gedurende de opgegeven periode!",vWe="Waarschuwing: De CRON-taak wordt elke seconde uitgevoerd gedurende de opgegeven periode!",gWe="CRON",_We="Datum",yWe="data",bWe="Dag",wWe="Dag van de week",SWe="elk",xWe="elke N dagen",CWe="elke N-de dag van de week",TWe="elke N dag van de week",kWe="elke N uur",EWe="elke N minuten",DWe="elke N maanden",MWe="elke N seconden",OWe="elke dag",$We="elke dag van de week",AWe="elke dag van de week",PWe="elk uur",IWe="elke minuut",RWe="elke maand",LWe="elke seconde",NWe="Van",FWe="uren",zWe="Interval",BWe="Interval tussen",jWe="Ongeldige CRON",WWe="Notulen",HWe="maanden",UWe="Een keer",YWe="Periode",VWe="seconden",GWe="Gemakkelijk",qWe="Specifieke tijd",XWe="specifieke data",JWe="specifieke dag(en) van de week",ZWe="specifieke dag van weken",KWe="specifieke uren",QWe="specifieke minuten",eHe="specifieke maanden",tHe="specifieke seconden",rHe="Tijd",nHe="Naar",aHe="tovenaar",iHe="allemaal",oHe="Astro-dag",sHe="Astro-nacht",lHe="Dageraad",cHe="Schemer",uHe="gouden uur",dHe="Gouden uur einde",fHe="Nadir",hHe="Nautische dageraad",pHe="Nautische schemering",mHe="Nacht",vHe="Nacht einde",gHe="Zonne middag",_He="zonsopkomst",yHe="Sunrise einde",bHe="Zonsondergang",wHe="Zonsondergang start",SHe="Bij",xHe="op %s",CHe="elke dag",THe="elk uur",kHe="elke minuut",EHe="elke maand",DHe="elke %s dag",MHe="elke %s uur",OHe="elke %s minuten",$He="elke %s maanden",AHe="elke %s weken",PHe="elke %s jaar",IHe="elke week",RHe="elk jaar",LHe="van %s tot %s",NHe="nooit",FHe="op %s van %s",zHe="op %s en %s van",BHe="op elke datum van",jHe="%s",WHe="%s en %s",HHe="op %s",UHe="op %s en %s",YHe="in het weekend",VHe="op werkdagen",GHe="zal niet meer worden uitgevoerd, omdat start verleden tijd is",qHe="op %s",XHe="van %s",JHe="Uitvoeren van tot",ZHe="tot %s",KHe="elk",QHe="Specifieke tijd",eUe="van",tUe="Van naar",rUe="Interval tijd",nUe="omkeren",aUe="geen",iUe="Aan",oUe="Periode",sUe="Dagelijks",lUe="data",cUe="Dag",uUe="elk",dUe="Elke dag",fUe="Elke maand",hUe="Elke week",pUe="Elk jaar",mUe="uren",vUe="Notulen",gUe="maand",_Ue="Maandelijks",yUe="Een keer",bUe="Specifieke maanden",wUe="Week",SUe="Doordeweekse dagen",xUe="Weekend",CUe="Wekelijks",TUe="werkdagen",kUe="Jaar",EUe="jaar-",DUe="Specifieke tijd",MUe="Tijd",OUe="naar",$Ue="Geldig",AUe="van",PUe="naar",IUe="Hele dag",RUe="elke maand",LUe={"ra_%s links from aliases":"%s links van aliassen","ra_%s object(s) processed":"%s object(en) verwerkt","ra_%s was imported":"%s is geïmporteerd","ra_Accept license":"Accepteer licentie","ra_Add new child object to selected parent":"Voeg een nieuw kindobject toe aan het geselecteerde bovenliggende object","ra_Add objects tree from JSON file":"Objectenboom toevoegen vanuit JSON-bestand","ra_Add row":"Voeg een rij toe","ra_Advanced options":"Geavanceerde mogelijkheden","ra_All items are filtered out":"Alle items zijn uitgefilterd","ra_All objects":"Alle objecten",ra_Append:Lje,"ra_Append %s entries or replace existing?":"%s ingangen toevoegen of bestaande vervangen?","ra_Append or replace?":"Toevoegen of vervangen?","ra_Are you sure?":"Weet je het zeker?","ra_Auto (no custom columns)":"Auto (geen aangepaste kolommen)","ra_Back to %s":"Terug naar %s","ra_Background image":"Achtergrond afbeelding",ra_Cancel:Nje,"ra_Cannot add items with set filter":"Kan geen items toevoegen met ingestelde filter","ra_Cannot decode license":"Kan licentie niet decoderen","ra_Cannot determine position: System settings are empty and GPS detection is disabled in browser":"Kan positie niet bepalen: systeeminstellingen zijn leeg en GPS-detectie is uitgeschakeld in browser",'ra_Cannot find "%s"':'Kan "%s" niet vinden','ra_Cannot read "%s"':'Kan "%s" niet lezen',"ra_Cannot read licenses: %s":"Kan licenties niet lezen: %s","ra_Cannot retrieve options, as instance is offline":"Kan opties niet ophalen, omdat instantie offline is","ra_Cannot update attribute, because not found in the object":"Kan kenmerk niet bijwerken, omdat het niet in het object is gevonden","ra_Cannot upload":"Kan niet uploaden",ra_Categories:Fje,"ra_Chained certificate":"Geketend certificaat","ra_Change color theme":"Kleurthema wijzigen","ra_Changed from":"Veranderd van","ra_Channel → State":"Kanaal → Staat","ra_Check license":"Licentie controleren",ra_Checked:zje,ra_Clear:Bje,"ra_Clear filter":"Filter wissen","ra_Clear icon":"Pictogram wissen","ra_Clone current row":"Kloon de huidige rij",ra_Close:jje,"ra_Collapse all nodes":"Vouw alle knooppunten samen","ra_Collapse one step node":"Eén niveau samenvouwen",ra_Commercial:Wje,ra_Configure:Hje,"ra_Configure visible columns":"Configureer zichtbare kolommen","ra_Confirm deletion of %s":"Bevestig het verwijderen van %s",ra_Connected:Uje,ra_Copied:Yje,"ra_Copied %s":'"%s" gekopieerd',"ra_Copy content":"Inhoud kopiëren",ra_Create:Vje,"ra_Create alias":"Alias maken","ra_Create folder":"Map aanmaken","ra_Create new folder in %s":"Maak een nieuwe map in %s",ra_Crop:Gje,"ra_Define CRON...":"Definieer CRON...","ra_Define functions":"Definieer functies","ra_Define rooms":"Definieer kamers","ra_Define schedule":"Definieer schema","ra_Define schedule...":"Schema definiëren ...",ra_Del:qje,ra_Delete:Xje,"ra_Delete (no confirm for 5 mins)":"Verwijderen (geen bevestiging gedurende 5 minuten)","ra_Delete current row":"Huidige rij verwijderen","ra_Deselect all":"Deselecteer alles","ra_Device → Channel → State":"Apparaat → Kanaal → Staat",ra_Discard:Jje,ra_Disconnected:Zje,"ra_Do not export values of states":"Exporteer geen waarden van staten","ra_Do not use let's encrypt":"Gebruik geen let's encrypt","ra_Double click to reset table layout":"Dubbelklik om de tafelindeling te resetten","ra_Drag 'n' drop some files here, or click to select files":"Sleep enkele bestanden hierheen, of klik om bestanden te selecteren","ra_Drop file here":"Zet het bestand hier neer","ra_Drop the files here...":"Zet het bestand hier neer...","ra_Duplicate name":"Dubbele naam","ra_Edit ACL":"ACL bewerken","ra_Edit alias":"Alias bewerken","ra_Edit custom config":"Bewerk aangepaste config","ra_Edit function":"Bewerkingsfunctie","ra_Edit object field":"Bewerk objectveld","ra_Edit role":"Rol bewerken","ra_Edit room":"Kamer bewerken","ra_Edit value":"Waarde bewerken",ra_Error:Kje,"ra_Expand all nodes":"Vouw alle knooppunten uit","ra_Expand one step node":"Vouw een niveau uit","ra_Export data to %s file":"Exporteer gegevens naar %s bestand","ra_Failed to open JSON File":"JSON-bestand kan niet worden geopend","ra_Fallback custom certificates":"Fallback aangepaste certificaten","ra_File is too big. Max %sk allowed. Try use SVG.":"Bestand is te groot. Max. %sk toegestaan. Probeer SVG te gebruiken.",ra_Filter:Qje,"ra_Filter files":"Bestanden filteren","ra_Folder name":"Naam van de map","ra_Folder → Channel → State":"Map → Kanaal → Staat","ra_Folder → Device → Channel → State":"Map → Apparaat → Kanaal → Staat","ra_Folder → State":"Map → Staat","ra_Folders always first":"Mappen altijd eerst",ra_Friday:e9e,"ra_Good luck":"Veel geluk","ra_Hide empty folders":"Verberg lege mappen","ra_If no file will be created in the folder, it will disappear after the browser closed":"Als er geen bestand in de map wordt gemaakt, verdwijnt het nadat de browser is gesloten","ra_Import data from %s file":"Importeer gegevens uit %s bestand","ra_Import from %s":"Importeren uit %s","ra_Instance %s is alive":"Instantie %s leeft","ra_Instance %s is not alive":"Instantie %s is niet actief","ra_Instance is not alive":"Instantie leeft niet","ra_Invalid CRON":"Ongeldige CRON","ra_Invalid JSON":"Ongeldige JSON","ra_Invalid answer from server":"Ongeldig antwoord van de server","ra_Invalid parent folder!":"Ongeldige bovenliggende map!","ra_Invalid structure":"Ongeldige structuur","ra_JSON editor":"JSON-editor","ra_Last change":"Laatste wijziging",ra_Latitude:t9e,"ra_License %s":"Licentie %s","ra_License agreement":"Licentieovereenkomst","ra_License does not exist":"Licentie bestaat niet","ra_License expired on %s":"Licentie verlopen op %s",'ra_License for other product "%s"':'Licentie voor ander product "%s"',"ra_License is for version %s, but required version is %s.":"Licentie is voor versie %s, maar vereiste versie is %s.","ra_License must be converted":"Licentie moet worden omgezet naar nieuwere versie. U kunt dit doen in uw iobroker.net-profiel.","ra_License not found in license manager. Do you want to read licenses from iobroker.net?":"Licentie niet gevonden in licentiebeheer. Wilt u licenties van iobroker.net bijwerken?","ra_Listen on all IPs":"Luister op alle IP's","ra_Load configuration from file":"Laad configuratie uit bestand",ra_Longitude:r9e,'ra_May not trigger "updateLicenses"':'Activeert mogelijk niet "updateLicenses"',ra_Message:n9e,ra_Monday:a9e,"ra_Move down":"Naar beneden verplaatsen","ra_Move up":"Omhoog gaan",ra_Name:i9e,"ra_No data found in file":"Geen gegevens gevonden in bestand","ra_No one license found in license manager":"Geen enkele licentie gevonden in licentiebeheer","ra_No response from the backend":"Geen reactie van de backend",'ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".':'Niet-experts mogen alleen nieuwe objecten maken in "0_userdata.0" of "alias.0".',"ra_Not a number":"Geen nummer",ra_Objects:o9e,ra_Ok:s9e,"ra_On weekdays":"Op weekdagen","ra_Only following structures of objects are available:":"Alleen de volgende structuren van objecten zijn beschikbaar:","ra_Only selected":"Alleen geselecteerd","ra_Owner group":"Eigenaarsgroep","ra_Owner user":"Eigenaar gebruiker","ra_Passwords are not equal!":"Wachtwoorden zijn niet gelijk!","ra_Place your files here or click here to open the browse dialog":"Plaats uw bestanden hier of klik hier om het bladervenster te openen","ra_Please confirm":"Bevestig alstublieft","ra_Please create license":"Maak een licentie aan","ra_Please enter the license":"Voer de licentie in","ra_Please select file...":"Selecteer bestand...","ra_Please select object ID...":"Selecteer object-ID ...","ra_Port could be used by %s":"Poort kan worden gebruikt door %s","ra_Port is already used by %s":"Poort wordt al gebruikt door %s","ra_Private certificate":"Privé certificaat",ra_Product:l9e,"ra_Public certificate":"Openbaar certificaat","ra_Quality code":"Kwaliteit","ra_Refresh tree":"Vernieuw de boom","ra_Reload files":"Laad bestanden opnieuw",ra_Repeat:c9e,ra_Replace:u9e,"ra_Request timed out":"Verzoek verlopen","ra_Restrict to folder":"Beperken tot map",ra_Root:d9e,ra_Saturday:f9e,ra_Save:h9e,"ra_Save and close":"Opslaan en afsluiten","ra_Save configuration to file":"Sla de configuratie op in een bestand","ra_Save objects tree as JSON file":"Sla de objectenboom op als JSON-bestand","ra_Select all":"Selecteer alles","ra_Select color":"Selecteer kleur","ra_Select predefined icon":"Selecteer voorgedefinieerd pictogram","ra_Select type of export":"Selecteer het type export",ra_Selected:p9e,"ra_Selected %s object(s)":"Geselecteerde %s object(en)","ra_Serial number (UUID)":"Serienummer (UUID)",'ra_Serial number (UUID) "%s" in license is for other device.':'Serienummer (UUID) "%s" in licentie is voor ander apparaat.',"ra_Show all folders":"Toon alle mappen","ra_Show lines between rows":"Toon lijnen tussen rijen","ra_Show/Hide object descriptions":"Toon/verberg objectbeschrijvingen","ra_Show/hide filter input":"Filterinvoer weergeven/verbergen","ra_Some data are not stored. Discard?":"Sommige gegevens worden niet opgeslagen. Weggooien?",ra_States:m9e,"ra_Suitable license not found in license manager":"Geschikte licentie niet gevonden in licentiebeheer",ra_Sunday:v9e,"ra_Suppress question for next %s minutes":"Vraag de volgende %s minuten onderdrukken","ra_System language":"Systeemtaal","ra_Take browser position":"Positie innemen vanuit de browser","ra_Take position from system settings":"Neem positie over van systeeminstellingen",'ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").':'De experts kunnen overal objecten maken, behalve vanaf het tweede niveau (bijv. "Vis.0" of "javascript.0").',"ra_The page you are looking for was not found":"De pagina die u zoekt is niet gevonden","ra_The schedule will be executed every minute. Are you sure?":"Het schema wordt elke minuut uitgevoerd. Weet u het zeker?","ra_The schedule will be executed every second. Are you sure?":"Het schema wordt elke seconde uitgevoerd. Weet je het zeker?",ra_Thursday:g9e,ra_Timestamp:_9e,"ra_Toggle expert mode":"Schakel tussen expertmodus","ra_Toggle the states view":"Schakel de statusweergave in of uit","ra_Toggle view mode":"Schakelen tussen weergavemodus","ra_Too big":"Te groot","ra_Too small":"Te klein","ra_Transparent dialog":"Transparant dialoogvenster",ra_Tuesday:y9e,"ra_Unknown error":"Onbekende fout","ra_Unknown error!":"Onbekende fout!",ra_Update:b9e,"ra_Upload file":"Upload bestand","ra_Use all available let's encrypt certificates":"Gebruik alle beschikbare Let's Encrypt-certificaten","ra_Use iobroker.acme adapter for letsencrypt certificates":"Gebruik de iobroker.acme-adapter voor letsencrypt-certificaten","ra_Use system settings for position":"Gebruik systeeminstellingen voor positie","ra_Used system settings":"Gebruikte systeeminstellingen","ra_User files":"Gebruikersbestanden",ra_ValidTill:w9e,ra_Value:S9e,ra_Version:x9e,"ra_View file":"Bestand bekijken","ra_View: %s":"Bekijk: %s",ra_Wednesday:C9e,ra_Width:T9e,ra_Yes:k9e,"ra_You can export all objects or just the selected branch.":"U kunt alle objecten of alleen de geselecteerde tak exporteren.","ra_You can filter entries by entering here some text":"U kunt items filteren door hier wat tekst in te voeren",ra___different__:E9e,ra_aclEveryone_read_object:D9e,ra_aclEveryone_read_state:M9e,ra_aclEveryone_write_object:O9e,ra_aclEveryone_write_state:$9e,ra_aclGroup_read_object:A9e,ra_aclGroup_read_state:P9e,ra_aclGroup_write_object:I9e,ra_aclGroup_write_state:R9e,ra_aclOwner_read_object:L9e,ra_aclOwner_read_state:N9e,ra_aclOwner_write_object:F9e,ra_aclOwner_write_state:z9e,ra_buttons:B9e,ra_changedFrom:j9e,ra_close:W9e,ra_create_boolean_state:H9e,ra_create_channel:U9e,ra_create_device:Y9e,ra_create_number_state:V9e,ra_create_state:G9e,ra_create_string_state:q9e,ra_daysShortText:X9e,ra_dow_Fr:J9e,ra_dow_Mo:Z9e,ra_dow_Sa:K9e,ra_dow_Su:Q9e,ra_dow_Th:e7e,ra_dow_Tu:t7e,ra_dow_We:r7e,ra_expertMode:n7e,ra_fileType_all:a7e,ra_fileType_audio:i7e,ra_fileType_code:o7e,ra_fileType_images:s7e,ra_fileType_txt:l7e,ra_fileType_video:c7e,"ra_fileType_video,":"Video",ra_filter_customs:u7e,ra_filter_customs_without:d7e,ra_filter_func:f7e,ra_filter_id:h7e,ra_filter_name:p7e,ra_filter_role:m7e,ra_filter_room:v7e,ra_filter_type:g7e,"ra_import data from %s file":"Importeer gegevens uit %s bestand",ra_invalidConfig:_7e,ra_lastChange:y7e,ra_locally:b7e,ra_month_Apr:w7e,ra_month_Aug:S7e,ra_month_Dec:x7e,ra_month_Feb:C7e,ra_month_Jan:T7e,ra_month_Jul:k7e,ra_month_Jun:E7e,ra_month_Mai:D7e,ra_month_Mar:M7e,ra_month_Nov:O7e,ra_month_Oct:$7e,ra_month_Sep:A7e,ra_months_Apr:P7e,ra_months_Aug:I7e,ra_months_Dec:R7e,ra_months_Feb:L7e,ra_months_Jan:N7e,ra_months_Jul:F7e,ra_months_Jun:z7e,ra_months_Mai:B7e,ra_months_Mar:j7e,ra_months_Nov:W7e,ra_months_Oct:H7e,ra_months_Sep:U7e,ra_none:Y7e,ra_object_changed_by:V7e,ra_object_changed_by_user:G7e,ra_otherConfig:q7e,ra_qualityCode:X7e,ra_repeat:J7e,ra_select_folder_hint:Z7e,ra_state_changed_by:K7e,ra_state_changed_from:Q7e,ra_timestamp:eWe,ra_tooltip_ack:tWe,ra_tooltip_comment:rWe,ra_tooltip_copyState:nWe,ra_tooltip_customConfig:aWe,ra_tooltip_deleteObject:iWe,ra_tooltip_editObject:oWe,ra_tooltip_editState:sWe,ra_tooltip_from:lWe,ra_tooltip_lc:cWe,ra_tooltip_quality:uWe,ra_tooltip_ts:dWe,ra_tooltip_user:fWe,ra_tooltip_value:hWe,"ra_use seconds":"gebruik seconden",ra_val:pWe,"ra_via internet":"via internet",ra_warning_every_minute:mWe,ra_warning_every_second:vWe,sc_cron:gWe,sc_date:_We,sc_dates:yWe,sc_dow:bWe,sc_dows:wWe,sc_every:SWe,sc_everyN_dates:xWe,sc_everyN_dow:CWe,sc_everyN_dows:TWe,sc_everyN_hours:kWe,sc_everyN_minutes:EWe,sc_everyN_months:DWe,sc_everyN_seconds:MWe,sc_every_dates:OWe,sc_every_dow:$We,sc_every_dows:AWe,sc_every_hours:PWe,sc_every_minutes:IWe,sc_every_months:RWe,sc_every_seconds:LWe,sc_from:NWe,sc_hours:FWe,sc_interval:zWe,sc_intervalBetween:BWe,sc_invalid_cron:jWe,sc_minutes:WWe,sc_months:HWe,sc_once:UWe,sc_period:YWe,sc_seconds:VWe,sc_simple:GWe,sc_specific:qWe,sc_specific_dates:XWe,sc_specific_dow:JWe,sc_specific_dows:ZWe,sc_specific_hours:KWe,sc_specific_minutes:QWe,sc_specific_months:eHe,sc_specific_seconds:tHe,sc_time:rHe,sc_to:nHe,sc_wizard:aHe,sch_all:iHe,sch_astroDay:oHe,sch_astroNight:sHe,sch_astro_dawn:lHe,sch_astro_dusk:cHe,sch_astro_goldenHour:uHe,sch_astro_goldenHourEnd:dHe,sch_astro_nadir:fHe,sch_astro_nauticalDawn:hHe,sch_astro_nauticalDusk:pHe,sch_astro_night:mHe,sch_astro_nightEnd:vHe,sch_astro_solarNoon:gHe,sch_astro_sunrise:_He,sch_astro_sunriseEnd:yHe,sch_astro_sunset:bHe,sch_astro_sunsetStart:wHe,sch_at:SHe,sch_desc_atTime:xHe,sch_desc_everyDay:CHe,sch_desc_everyHour:THe,sch_desc_everyMinute:kHe,sch_desc_everyMonth:EHe,sch_desc_everyNDay:DHe,sch_desc_everyNHours:MHe,sch_desc_everyNMinutes:OHe,sch_desc_everyNMonths:$He,sch_desc_everyNWeeks:AHe,sch_desc_everyNYears:PHe,sch_desc_everyWeek:IHe,sch_desc_everyYear:RHe,sch_desc_intervalFromTo:LHe,sch_desc_never:NHe,sch_desc_onDate:FHe,sch_desc_onDates:zHe,sch_desc_onEveryDate:BHe,sch_desc_onMonth:jHe,sch_desc_onMonths:WHe,sch_desc_onWeekday:HHe,sch_desc_onWeekdays:UHe,sch_desc_onWeekends:YHe,sch_desc_onWorkdays:VHe,sch_desc_onceInPast:GHe,sch_desc_once_on:qHe,sch_desc_validFrom:XHe,sch_desc_validFromTo:JHe,sch_desc_validTo:ZHe,sch_every:KHe,sch_exactTime:QHe,sch_from:eUe,sch_fromTo:tUe,sch_intervalTime:rUe,sch_invert:nUe,sch_no_one:aUe,sch_on:iUe,sch_period:oUe,sch_periodDaily:sUe,sch_periodDates:lUe,sch_periodDay:cUe,sch_periodEvery:uUe,sch_periodEveryDay:dUe,sch_periodEveryMonth:fUe,sch_periodEveryWeek:hUe,sch_periodEveryYear:pUe,sch_periodHours:mUe,sch_periodMinutes:vUe,sch_periodMonth:gUe,sch_periodMonthly:_Ue,sch_periodOnce:yUe,sch_periodSpecificMonths:bUe,sch_periodWeek:wUe,sch_periodWeekdays:SUe,sch_periodWeekend:xUe,sch_periodWeekly:CUe,sch_periodWorkdays:TUe,sch_periodYear:kUe,sch_periodYearly:EUe,sch_specificTime:DUe,sch_time:MUe,sch_to:OUe,sch_valid:$Ue,sch_validFrom:AUe,sch_validTo:PUe,sch_wholeDay:IUe,sch_yearEveryMonth:RUe},NUe="Ajouter",FUe="Annuler",zUe="Catégories",BUe="Vérifié",jUe="Effacer",WUe="Fermer",HUe="Commercial",UUe="Configurer",YUe="Lié",VUe="Copié",GUe="Créer",qUe="Recadrer",XUe="Delete",JUe="Supprimer",ZUe="Jeter",KUe="Débranché",QUe="Erreur",eYe="Filtre",tYe="Vendredi",rYe="Latitude",nYe="Longitude",aYe="Message",iYe="Lundi",oYe="Nom",sYe="Objets",lYe="D'accord",cYe="Produit",uYe="Répéter",dYe="Remplacer",fYe="Racine",hYe="Samedi",pYe="sauver",mYe="Choisi",vYe="États",gYe="Dimanche",_Ye="Jeudi",yYe="Horodatage",bYe="Mardi",wYe="Mise à jour",SYe="Valable jusqu'au",xYe="Valeur",CYe="Version",TYe="Mercredi",kYe="Largeur",EYe="Oui",DYe="différent",MYe="Tout le monde peut lire un objet",OYe="Tout le monde peut lire l'état",$Ye="Tout le monde peut écrire un objet",AYe="Tout le monde peut écrire l'état",PYe="Le groupe peut lire l'objet",IYe="Le groupe peut lire l'état",RYe="Le groupe peut écrire un objet",LYe="Le groupe peut écrire l'état",NYe="Le propriétaire peut lire l'objet",FYe="Le propriétaire peut lire l'état",zYe="Le propriétaire peut écrire un objet",BYe="Le propriétaire peut écrire l'état",jYe="Boutons",WYe="Changé de",HYe="Fermer",UYe="Créer un état booléen",YYe="Créer une chaîne",VYe="Créer un appareil",GYe="Créer un état de numéro",qYe="Créer un état",XYe="Créer un état de chaîne",JYe="j.",ZYe="Fr",KYe="Mo",QYe="Sa",eVe="Su",tVe="Th",rVe="Tu",nVe="Nous",aVe="Mode expert",iVe="Tous les fichiers",oVe="l'audio",sVe="Code/JSON",lVe="Images",cVe="Texte",uVe="Vidéo",dVe="Paramètres",fVe="sans",hVe="Une fonction",pVe="ID",mVe="Prénom",vVe="Rôle",gVe="Pièce",_Ve="Type",yVe="Paramètres invalides",bVe="Dernier changement",wVe="localement",SVe="Avr",xVe="Août",CVe="Déc",TVe="Fév",kVe="Jan",EVe="Juil",DVe="Juin",MVe="Mai",OVe="Mar",$Ve="Nov",AVe="Oct",PVe="Sep",IVe="Avr",RVe="Août",LVe="Déc",NVe="Fév",FVe="Jan",zVe="Juil",BVe="Juin",jVe="Mai",WVe="Mar",HVe="Nov",UVe="Oct",YVe="Sep",VVe="rien",GVe="Objet modifié par",qVe="Objet modifié pour la dernière fois à",XVe="Paramètres d'un autre adaptateur %s",JVe="Code de qualité",ZVe="répéter",KVe='Pour sélectionner un dossier, maintenez simplement la touche "shift" enfoncée en cliquant sur le dossier.',QVe="État modifié par",eGe="Objet changé de",tGe="Horodatage",rGe="Drapeau reconnu",nGe="Commentaire",aGe="Copiez la valeur d'état",iGe="Paramètres personnalisés",oGe="Supprimer un objet",sGe="Modifier l'objet",lGe="Modifier la valeur d'état",cGe="De",uGe="Dernière modification",dGe="Qualité",fGe="Horodatage",hGe="Utilisateur",pGe="Valeur",mGe="Valeur",vGe="Attention : la tâche CRON s’exécutera toutes les minutes pendant la période spécifiée !",gGe="Attention : la tâche CRON s’exécutera toutes les secondes pendant la période spécifiée !",_Ge="CRON",yGe="Date",bGe="Rendez-vous",wGe="Jour",SGe="Jour de la semaine",xGe="Chaque",CGe="tous les N jours",TGe="chaque Nième jour de la semaine",kGe="tous les N jours de la semaine",EGe="toutes les N heures",DGe="toutes les N minutes",MGe="tous les N mois",OGe="toutes les N secondes",$Ge="tous les jours",AGe="Chaque jour de la semaine",PGe="Chaque jour de la semaine",IGe="Toutes les heures",RGe="chaque minute",LGe="chaque mois",NGe="chaque seconde",FGe="De",zGe="Heures",BGe="Intervalle",jGe="Intervalle entre",WGe="CRON non valide",HGe="Minutes",UGe="mois",YGe="Une fois que",VGe="Période",GGe="Secondes",qGe="Facile",XGe="Temps spécifique",JGe="dates spécifiques",ZGe="jour(s) spécifique(s) de la semaine",KGe="jour spécifique de semaines",QGe="heures spécifiques",eqe="minutes spécifiques",tqe="mois spécifiques",rqe="secondes spécifiques",nqe="Temps",aqe="À",iqe="sorcier",oqe="tout",sqe="Journée astronomique",lqe="Nuit astronomique",cqe="Aube",uqe="Crépuscule",dqe="Heure d'or",fqe="Fin de l'heure d'or",hqe="Nadir",pqe="Aube nautique",mqe="Crépuscule nautique",vqe="Nuit",gqe="Fin de nuit",_qe="Midi solaire",yqe="lever du soleil",bqe="Fin du lever du soleil",wqe="Le coucher du soleil",Sqe="Coucher du soleil",xqe="à",Cqe="à %s",Tqe="tous les jours",kqe="Toutes les heures",Eqe="chaque minute",Dqe="chaque mois",Mqe="chaque %s jour",Oqe="chaque %s heures",$qe="toutes les %s minutes",Aqe="tous les %s mois",Pqe="chaque %s semaines",Iqe="tous les %s ans",Rqe="toutes les semaines",Lqe="chaque année",Nqe="de %s à %s",Fqe="jamais",zqe="sur %s de %s",Bqe="sur %s et %s de",jqe="à chaque date de",Wqe="%s",Hqe="%s et %s",Uqe="sur %s",Yqe="sur %s et %s",Vqe="les weekends",Gqe="les jours ouvrables",qqe="ne sera plus exécuté, car start est dans le passé",Xqe="sur %s",Jqe="de %s",Zqe="Exécuter de à",Kqe="à %s",Qqe="chaque",eXe="Temps spécifique",tXe="de",rXe="De à",nXe="Temps d'interval",aXe="inverser",iXe="aucun",oXe="sur",sXe="Période",lXe="du quotidien",cXe="Rendez-vous",uXe="journée",dXe="Chaque",fXe="Tous les jours",hXe="Chaque mois",pXe="Toutes les semaines",mXe="Chaque année",vXe="Heures",gXe="Minutes",_Xe="mois",yXe="Mensuel",bXe="Une fois que",wXe="Mois spécifiques",SXe="La semaine",xXe="Jours de la semaine",CXe="Weekend",TXe="Hebdomadaire",kXe="Jours ouvrables",EXe="Année",DXe="Annuel",MXe="Temps spécifique",OXe="Temps",$Xe="à",AXe="Valide",PXe="de",IXe="à",RXe="Toute la journée",LXe="chaque mois",NXe={"ra_%s links from aliases":"%s liens provenant d'alias","ra_%s object(s) processed":"%s objet(s) traité(s)","ra_%s was imported":"%s a été importé","ra_Accept license":"Accepter la licence","ra_Add new child object to selected parent":"Ajouter un nouvel objet enfant au parent sélectionné","ra_Add objects tree from JSON file":"Ajouter une arborescence d'objets à partir d'un fichier JSON","ra_Add row":"Ajouter une rangée","ra_Advanced options":"Options avancées","ra_All items are filtered out":"Tous les éléments sont filtrés","ra_All objects":"Tous les objets",ra_Append:NUe,"ra_Append %s entries or replace existing?":"Ajouter %s entrées ou remplacer l'existant ?","ra_Append or replace?":"Ajouter ou remplacer ?","ra_Are you sure?":"Êtes-vous sûr?","ra_Auto (no custom columns)":"Auto (pas de colonnes personnalisées)","ra_Back to %s":"Retour à %s","ra_Background image":"Image de fond",ra_Cancel:FUe,"ra_Cannot add items with set filter":"Impossible d'ajouter des éléments avec le filtre défini","ra_Cannot decode license":"Impossible de décoder la licence","ra_Cannot determine position: System settings are empty and GPS detection is disabled in browser":"Impossible de déterminer la position : les paramètres système sont vides et la détection GPS est désactivée dans le navigateur",'ra_Cannot find "%s"':'Impossible de trouver "%s"','ra_Cannot read "%s"':'Impossible de lire "%s"',"ra_Cannot read licenses: %s":"Impossible de lire les licences : %s","ra_Cannot retrieve options, as instance is offline":"Impossible de récupérer les options, car l'instance est hors ligne","ra_Cannot update attribute, because not found in the object":"Impossible de mettre à jour l'attribut, car il est introuvable dans l'objet","ra_Cannot upload":"Impossible de télécharger",ra_Categories:zUe,"ra_Chained certificate":"Certificat chaîné","ra_Change color theme":"Changer le thème de couleur","ra_Changed from":"Changé de","ra_Channel → State":"Canal → État","ra_Check license":"Vérifier la licence",ra_Checked:BUe,ra_Clear:jUe,"ra_Clear filter":"Effacer le filtre","ra_Clear icon":"Effacer l'icône","ra_Clone current row":"Cloner la ligne actuelle",ra_Close:WUe,"ra_Collapse all nodes":"Réduire tous les nœuds","ra_Collapse one step node":"Réduire d'un niveau",ra_Commercial:HUe,ra_Configure:UUe,"ra_Configure visible columns":"Configurer les colonnes visibles","ra_Confirm deletion of %s":"Confirmer la suppression de %s",ra_Connected:YUe,ra_Copied:VUe,"ra_Copied %s":'"%s" copié',"ra_Copy content":"Copier le contenu",ra_Create:GUe,"ra_Create alias":"Créer un alias","ra_Create folder":"Créer le dossier","ra_Create new folder in %s":"Créer un nouveau dossier dans %s",ra_Crop:qUe,"ra_Define CRON...":"Définir CRON...","ra_Define functions":"Définir des fonctions","ra_Define rooms":"Définir des pièces","ra_Define schedule":"Définir le calendrier","ra_Define schedule...":"Définir le calendrier ...",ra_Del:XUe,ra_Delete:JUe,"ra_Delete (no confirm for 5 mins)":"Supprimer (pas de confirmation pendant 5 minutes)","ra_Delete current row":"Supprimer la ligne actuelle","ra_Deselect all":"Tout déselectionner","ra_Device → Channel → State":"Appareil → Canal → État",ra_Discard:ZUe,ra_Disconnected:KUe,"ra_Do not export values of states":"Ne pas exporter les valeurs des états","ra_Do not use let's encrypt":"Ne pas utiliser let's encrypt","ra_Double click to reset table layout":"Double-cliquez pour réinitialiser la disposition du tableau","ra_Drag 'n' drop some files here, or click to select files":"Glissez-déposez des fichiers ici, ou cliquez pour sélectionner des fichiers","ra_Drop file here":"Déposer le fichier ici","ra_Drop the files here...":"Déposez le fichier ici...","ra_Duplicate name":"Nom en double","ra_Edit ACL":"Modifier la LCA","ra_Edit alias":"Modifier l'alias","ra_Edit custom config":"Modifier la configuration personnalisée","ra_Edit function":"Fonction d'édition","ra_Edit object field":"Modifier le champ d'objet","ra_Edit role":"Modifier le rôle","ra_Edit room":"Modifier la salle","ra_Edit value":"Modifier la valeur",ra_Error:QUe,"ra_Expand all nodes":"Développer tous les nœuds","ra_Expand one step node":"Développer un niveau","ra_Export data to %s file":"Exporter les données vers le fichier %s","ra_Failed to open JSON File":"Échec de l'ouverture du fichier JSON","ra_Fallback custom certificates":"Certificats personnalisés de secours","ra_File is too big. Max %sk allowed. Try use SVG.":"Le fichier est trop volumineux. Max %sk autorisé. Essayez d'utiliser SVG.",ra_Filter:eYe,"ra_Filter files":"Filtrer les fichiers","ra_Folder name":"Nom de dossier","ra_Folder → Channel → State":"Dossier → Chaîne → État","ra_Folder → Device → Channel → State":"Dossier → Appareil → Canal → État","ra_Folder → State":"Dossier → État","ra_Folders always first":"Les dossiers toujours en premier",ra_Friday:tYe,"ra_Good luck":"Bonne chance","ra_Hide empty folders":"Masquer les dossiers vides","ra_If no file will be created in the folder, it will disappear after the browser closed":"Si aucun fichier ne sera créé dans le dossier, il disparaîtra après la fermeture du navigateur","ra_Import data from %s file":"Importer des données à partir du fichier %s","ra_Import from %s":"Importer depuis %s","ra_Instance %s is alive":"L'instance %s est active","ra_Instance %s is not alive":"L'instance %s n'est pas active","ra_Instance is not alive":"L'instance n'est pas active","ra_Invalid CRON":"CRON invalide","ra_Invalid JSON":"JSON invalide","ra_Invalid answer from server":"Réponse invalide du serveur","ra_Invalid parent folder!":"Dossier parent non valide!","ra_Invalid structure":"Structure invalide","ra_JSON editor":"Éditeur JSON","ra_Last change":"Dernier changement",ra_Latitude:rYe,"ra_License %s":"Licence %s","ra_License agreement":"Accord de licence","ra_License does not exist":"La licence n'existe pas","ra_License expired on %s":"Licence expirée le %s",'ra_License for other product "%s"':'Licence pour un autre produit "%s"',"ra_License is for version %s, but required version is %s.":"La licence est pour la version %s, mais la version requise est %s.","ra_License must be converted":"La licence doit être convertie en une version plus récente. Vous pouvez le faire dans votre profil iobroker.net.","ra_License not found in license manager. Do you want to read licenses from iobroker.net?":"Licence introuvable dans le gestionnaire de licences. Voulez-vous mettre à jour les licences depuis iobroker.net ?","ra_Listen on all IPs":"Écoutez sur toutes les adresses IP","ra_Load configuration from file":"Charger la configuration à partir du fichier",ra_Longitude:nYe,'ra_May not trigger "updateLicenses"':'Peut ne pas déclencher "updateLicences"',ra_Message:aYe,ra_Monday:iYe,"ra_Move down":"Descendre","ra_Move up":"Déplacer vers le haut",ra_Name:oYe,"ra_No data found in file":"Aucune donnée trouvée dans le fichier","ra_No one license found in license manager":"Aucune licence trouvée dans le gestionnaire de licences","ra_No response from the backend":"Aucune réponse du backend",'ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".':'Les non-experts ne peuvent créer de nouveaux objets que dans "0_userdata.0" ou "alias.0".',"ra_Not a number":"Pas un numéro",ra_Objects:sYe,ra_Ok:lYe,"ra_On weekdays":"En semaine","ra_Only following structures of objects are available:":"Seules les structures d'objets suivantes sont disponibles:","ra_Only selected":"Uniquement sélectionné","ra_Owner group":"Groupe propriétaire","ra_Owner user":"Utilisateur propriétaire","ra_Passwords are not equal!":"Les mots de passe ne sont pas égaux !","ra_Place your files here or click here to open the browse dialog":"Placez vos fichiers ici ou cliquez ici pour ouvrir la boîte de dialogue de navigation","ra_Please confirm":"Veuillez confirmer","ra_Please create license":"Veuillez créer une licence","ra_Please enter the license":"Veuillez entrer la licence","ra_Please select file...":"Veuillez sélectionner le fichier...","ra_Please select object ID...":"Veuillez sélectionner l'ID d'objet ...","ra_Port could be used by %s":"Le port pourrait être utilisé par %s","ra_Port is already used by %s":"Le port est déjà utilisé par %s","ra_Private certificate":"Certificat privé",ra_Product:cYe,"ra_Public certificate":"Certificat public","ra_Quality code":"Qualité","ra_Refresh tree":"Rafraîchir l'arborescence","ra_Reload files":"Recharger les fichiers",ra_Repeat:uYe,ra_Replace:dYe,"ra_Request timed out":"La demande a expiré","ra_Restrict to folder":"Restreindre au dossier",ra_Root:fYe,ra_Saturday:hYe,ra_Save:pYe,"ra_Save and close":"Sauver et fermer","ra_Save configuration to file":"Enregistrer la configuration dans un fichier","ra_Save objects tree as JSON file":"Enregistrer l'arborescence des objets en tant que fichier JSON","ra_Select all":"Tout sélectionner","ra_Select color":"Choisissez la couleur","ra_Select predefined icon":"Sélectionnez l'icône prédéfinie","ra_Select type of export":"Sélectionnez le type d'exportation",ra_Selected:mYe,"ra_Selected %s object(s)":"Objet(s) %s sélectionné(s)","ra_Serial number (UUID)":"Numéro de série (UUID)",'ra_Serial number (UUID) "%s" in license is for other device.':'Le numéro de série (UUID) "%s" dans la licence est pour un autre appareil.',"ra_Show all folders":"Afficher tous les dossiers","ra_Show lines between rows":"Afficher les lignes entre les lignes","ra_Show/Hide object descriptions":"Afficher/Masquer les descriptions d'objets","ra_Show/hide filter input":"Afficher/masquer l'entrée de filtre","ra_Some data are not stored. Discard?":"Certaines données ne sont pas stockées. Jeter?",ra_States:vYe,"ra_Suitable license not found in license manager":"Licence appropriée introuvable dans le gestionnaire de licences",ra_Sunday:gYe,"ra_Suppress question for next %s minutes":"Supprimer la question pour les %s prochaines minutes","ra_System language":"Langue du système","ra_Take browser position":"Prendre position depuis le navigateur","ra_Take position from system settings":"Prendre position à partir des paramètres système",'ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").':'Les experts peuvent créer des objets partout mais à partir du deuxième niveau (par exemple "vis.0" ou "javascript.0").',"ra_The page you are looking for was not found":"La page que vous recherchez n'a pas été trouvée","ra_The schedule will be executed every minute. Are you sure?":"Le planning sera exécuté toutes les minutes. Êtes-vous sûr ?","ra_The schedule will be executed every second. Are you sure?":"Le planning sera exécuté toutes les secondes. Êtes-vous sûr ?",ra_Thursday:_Ye,ra_Timestamp:yYe,"ra_Toggle expert mode":"Basculer en mode expert","ra_Toggle the states view":"Basculer la vue des états","ra_Toggle view mode":"Basculer le mode d'affichage","ra_Too big":"Trop grand","ra_Too small":"Trop petit","ra_Transparent dialog":"Dialogue transparent",ra_Tuesday:bYe,"ra_Unknown error":"Erreur inconnue","ra_Unknown error!":"Erreur inconnue!",ra_Update:wYe,"ra_Upload file":"Téléverser un fichier","ra_Use all available let's encrypt certificates":"Utilisez tous les certificats let's encrypt disponibles","ra_Use iobroker.acme adapter for letsencrypt certificates":"Utiliser l'adaptateur iobroker.acme pour les certificats Letsencrypt","ra_Use system settings for position":"Utiliser les paramètres système pour la position","ra_Used system settings":"Paramètres système utilisés","ra_User files":"Fichiers utilisateurs",ra_ValidTill:SYe,ra_Value:xYe,ra_Version:CYe,"ra_View file":"Voir la fiche","ra_View: %s":"Affichage : %s",ra_Wednesday:TYe,ra_Width:kYe,ra_Yes:EYe,"ra_You can export all objects or just the selected branch.":"Vous pouvez exporter tous les objets ou uniquement la branche sélectionnée.","ra_You can filter entries by entering here some text":"Vous pouvez filtrer les entrées en saisissant ici du texte",ra___different__:DYe,ra_aclEveryone_read_object:MYe,ra_aclEveryone_read_state:OYe,ra_aclEveryone_write_object:$Ye,ra_aclEveryone_write_state:AYe,ra_aclGroup_read_object:PYe,ra_aclGroup_read_state:IYe,ra_aclGroup_write_object:RYe,ra_aclGroup_write_state:LYe,ra_aclOwner_read_object:NYe,ra_aclOwner_read_state:FYe,ra_aclOwner_write_object:zYe,ra_aclOwner_write_state:BYe,ra_buttons:jYe,ra_changedFrom:WYe,ra_close:HYe,ra_create_boolean_state:UYe,ra_create_channel:YYe,ra_create_device:VYe,ra_create_number_state:GYe,ra_create_state:qYe,ra_create_string_state:XYe,ra_daysShortText:JYe,ra_dow_Fr:ZYe,ra_dow_Mo:KYe,ra_dow_Sa:QYe,ra_dow_Su:eVe,ra_dow_Th:tVe,ra_dow_Tu:rVe,ra_dow_We:nVe,ra_expertMode:aVe,ra_fileType_all:iVe,ra_fileType_audio:oVe,ra_fileType_code:sVe,ra_fileType_images:lVe,ra_fileType_txt:cVe,ra_fileType_video:uVe,"ra_fileType_video,":"Vidéo",ra_filter_customs:dVe,ra_filter_customs_without:fVe,ra_filter_func:hVe,ra_filter_id:pVe,ra_filter_name:mVe,ra_filter_role:vVe,ra_filter_room:gVe,ra_filter_type:_Ve,"ra_import data from %s file":"Importer des données à partir du fichier %s",ra_invalidConfig:yVe,ra_lastChange:bVe,ra_locally:wVe,ra_month_Apr:SVe,ra_month_Aug:xVe,ra_month_Dec:CVe,ra_month_Feb:TVe,ra_month_Jan:kVe,ra_month_Jul:EVe,ra_month_Jun:DVe,ra_month_Mai:MVe,ra_month_Mar:OVe,ra_month_Nov:$Ve,ra_month_Oct:AVe,ra_month_Sep:PVe,ra_months_Apr:IVe,ra_months_Aug:RVe,ra_months_Dec:LVe,ra_months_Feb:NVe,ra_months_Jan:FVe,ra_months_Jul:zVe,ra_months_Jun:BVe,ra_months_Mai:jVe,ra_months_Mar:WVe,ra_months_Nov:HVe,ra_months_Oct:UVe,ra_months_Sep:YVe,ra_none:VVe,ra_object_changed_by:GVe,ra_object_changed_by_user:qVe,ra_otherConfig:XVe,ra_qualityCode:JVe,ra_repeat:ZVe,ra_select_folder_hint:KVe,ra_state_changed_by:QVe,ra_state_changed_from:eGe,ra_timestamp:tGe,ra_tooltip_ack:rGe,ra_tooltip_comment:nGe,ra_tooltip_copyState:aGe,ra_tooltip_customConfig:iGe,ra_tooltip_deleteObject:oGe,ra_tooltip_editObject:sGe,ra_tooltip_editState:lGe,ra_tooltip_from:cGe,ra_tooltip_lc:uGe,ra_tooltip_quality:dGe,ra_tooltip_ts:fGe,ra_tooltip_user:hGe,ra_tooltip_value:pGe,"ra_use seconds":"utiliser les secondes",ra_val:mGe,"ra_via internet":"par Internet",ra_warning_every_minute:vGe,ra_warning_every_second:gGe,sc_cron:_Ge,sc_date:yGe,sc_dates:bGe,sc_dow:wGe,sc_dows:SGe,sc_every:xGe,sc_everyN_dates:CGe,sc_everyN_dow:TGe,sc_everyN_dows:kGe,sc_everyN_hours:EGe,sc_everyN_minutes:DGe,sc_everyN_months:MGe,sc_everyN_seconds:OGe,sc_every_dates:$Ge,sc_every_dow:AGe,sc_every_dows:PGe,sc_every_hours:IGe,sc_every_minutes:RGe,sc_every_months:LGe,sc_every_seconds:NGe,sc_from:FGe,sc_hours:zGe,sc_interval:BGe,sc_intervalBetween:jGe,sc_invalid_cron:WGe,sc_minutes:HGe,sc_months:UGe,sc_once:YGe,sc_period:VGe,sc_seconds:GGe,sc_simple:qGe,sc_specific:XGe,sc_specific_dates:JGe,sc_specific_dow:ZGe,sc_specific_dows:KGe,sc_specific_hours:QGe,sc_specific_minutes:eqe,sc_specific_months:tqe,sc_specific_seconds:rqe,sc_time:nqe,sc_to:aqe,sc_wizard:iqe,sch_all:oqe,sch_astroDay:sqe,sch_astroNight:lqe,sch_astro_dawn:cqe,sch_astro_dusk:uqe,sch_astro_goldenHour:dqe,sch_astro_goldenHourEnd:fqe,sch_astro_nadir:hqe,sch_astro_nauticalDawn:pqe,sch_astro_nauticalDusk:mqe,sch_astro_night:vqe,sch_astro_nightEnd:gqe,sch_astro_solarNoon:_qe,sch_astro_sunrise:yqe,sch_astro_sunriseEnd:bqe,sch_astro_sunset:wqe,sch_astro_sunsetStart:Sqe,sch_at:xqe,sch_desc_atTime:Cqe,sch_desc_everyDay:Tqe,sch_desc_everyHour:kqe,sch_desc_everyMinute:Eqe,sch_desc_everyMonth:Dqe,sch_desc_everyNDay:Mqe,sch_desc_everyNHours:Oqe,sch_desc_everyNMinutes:$qe,sch_desc_everyNMonths:Aqe,sch_desc_everyNWeeks:Pqe,sch_desc_everyNYears:Iqe,sch_desc_everyWeek:Rqe,sch_desc_everyYear:Lqe,sch_desc_intervalFromTo:Nqe,sch_desc_never:Fqe,sch_desc_onDate:zqe,sch_desc_onDates:Bqe,sch_desc_onEveryDate:jqe,sch_desc_onMonth:Wqe,sch_desc_onMonths:Hqe,sch_desc_onWeekday:Uqe,sch_desc_onWeekdays:Yqe,sch_desc_onWeekends:Vqe,sch_desc_onWorkdays:Gqe,sch_desc_onceInPast:qqe,sch_desc_once_on:Xqe,sch_desc_validFrom:Jqe,sch_desc_validFromTo:Zqe,sch_desc_validTo:Kqe,sch_every:Qqe,sch_exactTime:eXe,sch_from:tXe,sch_fromTo:rXe,sch_intervalTime:nXe,sch_invert:aXe,sch_no_one:iXe,sch_on:oXe,sch_period:sXe,sch_periodDaily:lXe,sch_periodDates:cXe,sch_periodDay:uXe,sch_periodEvery:dXe,sch_periodEveryDay:fXe,sch_periodEveryMonth:hXe,sch_periodEveryWeek:pXe,sch_periodEveryYear:mXe,sch_periodHours:vXe,sch_periodMinutes:gXe,sch_periodMonth:_Xe,sch_periodMonthly:yXe,sch_periodOnce:bXe,sch_periodSpecificMonths:wXe,sch_periodWeek:SXe,sch_periodWeekdays:xXe,sch_periodWeekend:CXe,sch_periodWeekly:TXe,sch_periodWorkdays:kXe,sch_periodYear:EXe,sch_periodYearly:DXe,sch_specificTime:MXe,sch_time:OXe,sch_to:$Xe,sch_valid:AXe,sch_validFrom:PXe,sch_validTo:IXe,sch_wholeDay:RXe,sch_yearEveryMonth:LXe},FXe="Aggiungere",zXe="Annulla",BXe="Categorie",jXe="Controllato",WXe="Elimina",HXe="Vicino",UXe="Commerciale",YXe="Configura",VXe="Collegato",GXe="Copiato",qXe="Creare",XXe="Raccolto",JXe="Delete",ZXe="Elimina",KXe="Scartare",QXe="Disconnesso",eJe="Errore",tJe="Filtro",rJe="Venerdì",nJe="Latitudine",aJe="Longitudine",iJe="Messaggio",oJe="Lunedi",sJe="Nome",lJe="Oggetti",cJe="Ok",uJe="Prodotto",dJe="Ripetere",fJe="Sostituire",hJe="Radice",pJe="Sabato",mJe="Salva",vJe="Selezionato",gJe="stati",_Je="Domenica",yJe="Giovedì",bJe="Timestamp",wJe="Martedì",SJe="Aggiornare",xJe="Valido fino a",CJe="Valore",TJe="Versione",kJe="Mercoledì",EJe="Larghezza",DJe="SÌ",MJe="diverso",OJe="Tutti possono leggere gli oggetti",$Je="Tutti possono leggere lo stato",AJe="Tutti possono scrivere oggetti",PJe="Tutti possono scrivere stato",IJe="Il gruppo può leggere l'oggetto",RJe="Il gruppo può leggere lo stato",LJe="Il gruppo può scrivere l'oggetto",NJe="Il gruppo può scrivere lo stato",FJe="Il proprietario può leggere l'oggetto",zJe="Il proprietario può leggere lo stato",BJe="Il proprietario può scrivere l'oggetto",jJe="Il proprietario può scrivere lo stato",WJe="Bottoni",HJe="Cambiato da",UJe="vicino",YJe="Crea uno stato booleano",VJe="Crea canale",GJe="Crea dispositivo",qJe="Crea lo stato del numero",XJe="Crea stato",JJe="Crea lo stato della stringa",ZJe="g.",KJe="fr",QJe="momento",eZe="Sa",tZe="su",rZe="th",nZe="Tu",aZe="Noi",iZe="Modalità esperto",oZe="Tutti i files",sZe="Audio",lZe="Codice/JSON",cZe="immagini",uZe="Testo",dZe="video",fZe="impostazioni",hZe="senza",pZe="Funzione",mZe="ID",vZe="Nome",gZe="Ruolo",_Ze="Camera",yZe="genere",bZe="Impostazioni non valide",wZe="Ultima modifica",SZe="localmente",xZe="apr",CZe="agosto",TZe="Dic",kZe="febbraio",EZe="gen",DZe="lug",MZe="giu",OZe="Mai",$Ze="marzo",AZe="nov",PZe="ottobre",IZe="Sett",RZe="apr",LZe="agosto",NZe="Dic",FZe="febbraio",zZe="gen",BZe="lug",jZe="giu",WZe="Mai",HZe="marzo",UZe="nov",YZe="ottobre",VZe="Sett",GZe="nessuna",qZe="Oggetto modificato da",XZe="L'oggetto è stato modificato l'ultima volta alle",JZe="Impostazioni dall'altro adattatore %s",ZZe="Codice di qualità",KZe="ripetere",QZe='Per selezionare la cartella, basta tenere premuto il tasto "shift" facendo clic sulla cartella.',eKe="Stato cambiato da",tKe="Oggetto cambiato da",rKe="Timestamp",nKe="Bandiera riconosciuta",aKe="Commento",iKe="Copia il valore dello stato",oKe="Impostazioni personalizzate",sKe="Elimina oggetto",lKe="Modifica oggetto",cKe="Modifica il valore dello stato",uKe="A partire dal",dKe="Ultima modifica",fKe="Qualità",hKe="Data e ora",pKe="Utente",mKe="Valore",vKe="Valore",gKe="Attenzione: il processo CRON verrà eseguito ogni minuto durante il periodo specificato!",_Ke="Attenzione: il processo CRON verrà eseguito ogni secondo durante il periodo specificato!",yKe="CRON",bKe="Data",wKe="Date",SKe="Giorno",xKe="Giorno della settimana",CKe="Ogni",TKe="ogni N giorni",kKe="ogni Nesimo giorno della settimana",EKe="ogni N giorno della settimana",DKe="ogni N ore",MKe="ogni N minuti",OKe="ogni N mesi",$Ke="ogni N secondi",AKe="ogni giorno",PKe="Tutti i giorni della settimana",IKe="Tutti i giorni della settimana",RKe="ogni ora",LKe="ogni minuto",NKe="ogni mese",FKe="ogni secondo",zKe="A partire dal",BKe="Ore",jKe="Intervallo",WKe="Intervallo tra",HKe="CRON non valido",UKe="Minuti",YKe="mesi",VKe="Una volta",GKe="Periodo",qKe="secondi",XKe="Semplice",JKe="Orario preciso",ZKe="date specifiche",KKe="giorno/i specifico/i della settimana",QKe="giorno specifico delle settimane",eQe="orari specifici",tQe="minuti specifici",rQe="mesi specifici",nQe="secondi specifici",aQe="Tempo",iQe="Per",oQe="procedura guidata",sQe="tutti",lQe="Astro day",cQe="Astro night",uQe="Alba",dQe="Crepuscolo",fQe="Ora d'oro",hQe="Fine dell'ora d'oro",pQe="Nadir",mQe="Alba nautica",vQe="Crepuscolo nautico",gQe="Notte",_Qe="Fine della notte",yQe="Mezzogiorno solare",bQe="Alba",wQe="Fine dell'alba",SQe="Tramonto",xQe="Inizio del tramonto",CQe="a",TQe="a %s",kQe="ogni giorno",EQe="ogni ora",DQe="ogni minuto",MQe="ogni mese",OQe="ogni %s giorno",$Qe="ogni %s ore",AQe="ogni %s minuti",PQe="ogni %s mesi",IQe="ogni %s settimane",RQe="ogni %s anni",LQe="ogni settimana",NQe="ogni anno",FQe="da %s a %s",zQe="mai",BQe="su %s di %s",jQe="su %s e %s di",WQe="in ogni data di",HQe="%s",UQe="%s e %s",YQe="su %s",VQe="su %s e %s",GQe="nei finesettimana",qQe="nei giorni lavorativi",XQe="non verrà più eseguito, perché start è nel passato",JQe="su %s",ZQe="da %s",KQe="Eseguire da a",QQe="a %s",eet="ogni",tet="Orario preciso",ret="a partire dal",net="Da A",aet="Intervallo di tempo",iet="invertire",oet="nessuna",set="sopra",cet="Periodo",uet="Quotidiano",det="Date",fet="Giorno",het="Ogni",pet="Ogni giorno",met="Ogni mese",vet="Ogni settimana",get="Ogni anno",_et="Ore",yet="Minuti",bet="mese",wet="Mensile",xet="Una volta",Cet="Mesi specifici",Tet="Settimana",ket="Giorni della settimana",Eet="Fine settimana",Det="settimanalmente",Met="giorni feriali",Oet="Anno",$et="Annuale",Aet="Orario preciso",Pet="Tempo",Iet="per",Ret="Valido",Let="a partire dal",Net="per",Fet="Giorno intero",zet="ogni mese",Bet={"ra_%s links from aliases":"%s link da alias","ra_%s object(s) processed":"%s oggetti elaborati","ra_%s was imported":"%s è stato importato","ra_Accept license":"Accetta licenza","ra_Add new child object to selected parent":"Aggiungi un nuovo oggetto figlio al genitore selezionato","ra_Add objects tree from JSON file":"Aggiungi l'albero degli oggetti dal file JSON","ra_Add row":"Aggiungi riga","ra_Advanced options":"Opzioni avanzate","ra_All items are filtered out":"Tutti gli elementi vengono filtrati","ra_All objects":"Tutti gli oggetti",ra_Append:FXe,"ra_Append %s entries or replace existing?":"Aggiungi %s voci o sostituisci quelle esistenti?","ra_Append or replace?":"Aggiungere o sostituire?","ra_Are you sure?":"Sei sicuro?","ra_Auto (no custom columns)":"Auto (nessuna colonna personalizzata)","ra_Back to %s":"Torna a %s","ra_Background image":"Immagine di sfondo",ra_Cancel:zXe,"ra_Cannot add items with set filter":"Impossibile aggiungere elementi con il filtro impostato","ra_Cannot decode license":"Impossibile decodificare la licenza","ra_Cannot determine position: System settings are empty and GPS detection is disabled in browser":"Impossibile determinare la posizione: le impostazioni di sistema sono vuote e il rilevamento GPS è disabilitato nel browser",'ra_Cannot find "%s"':'Impossibile trovare "%s"','ra_Cannot read "%s"':'Impossibile leggere "%s"',"ra_Cannot read licenses: %s":"Impossibile leggere le licenze: %s","ra_Cannot retrieve options, as instance is offline":"Impossibile recuperare le opzioni, poiché l'istanza è offline","ra_Cannot update attribute, because not found in the object":"Impossibile aggiornare l'attributo, perché non trovato nell'oggetto","ra_Cannot upload":"Impossibile caricare",ra_Categories:BXe,"ra_Chained certificate":"Certificato incatenato","ra_Change color theme":"Cambia tema colore","ra_Changed from":"Cambiato da","ra_Channel → State":"Canale → Stato","ra_Check license":"Controlla la licenza",ra_Checked:jXe,ra_Clear:WXe,"ra_Clear filter":"Filtro pulito","ra_Clear icon":"Cancella icona","ra_Clone current row":"Clona riga corrente",ra_Close:HXe,"ra_Collapse all nodes":"Comprimi tutti i nodi","ra_Collapse one step node":"Comprimi un livello",ra_Commercial:UXe,ra_Configure:YXe,"ra_Configure visible columns":"Configura colonne visibili","ra_Confirm deletion of %s":"Conferma l'eliminazione di %s",ra_Connected:VXe,ra_Copied:GXe,"ra_Copied %s":'"%s" copiato',"ra_Copy content":"Copia contenuto",ra_Create:qXe,"ra_Create alias":"Crea alias","ra_Create folder":"Creare una cartella","ra_Create new folder in %s":"Crea nuova cartella in %s",ra_Crop:XXe,"ra_Define CRON...":"Definisci CRON...","ra_Define functions":"Definire le funzioni","ra_Define rooms":"Definisci le stanze","ra_Define schedule":"Definisci programma","ra_Define schedule...":"Definisci pianificazione ...",ra_Del:JXe,ra_Delete:ZXe,"ra_Delete (no confirm for 5 mins)":"Elimina (nessuna conferma per 5 minuti)","ra_Delete current row":"Elimina la riga corrente","ra_Deselect all":"Deseleziona tutto","ra_Device → Channel → State":"Dispositivo → Canale → Stato",ra_Discard:KXe,ra_Disconnected:QXe,"ra_Do not export values of states":"Non esportare i valori degli stati","ra_Do not use let's encrypt":"Non utilizzare crittografiamo","ra_Double click to reset table layout":"Fare doppio clic per ripristinare il layout della tabella","ra_Drag 'n' drop some files here, or click to select files":"Trascina e rilascia alcuni file qui o fai clic per selezionare i file","ra_Drop file here":"Trascina il file qui","ra_Drop the files here...":"Trascina qui il file...","ra_Duplicate name":"Nome duplicato","ra_Edit ACL":"Modifica ACL","ra_Edit alias":"Modifica alias","ra_Edit custom config":"Modifica configurazione personalizzata","ra_Edit function":"Funzione di modifica","ra_Edit object field":"Modifica campo oggetto","ra_Edit role":"Modifica ruolo","ra_Edit room":"Modifica stanza","ra_Edit value":"Modifica valore",ra_Error:eJe,"ra_Expand all nodes":"Espandi tutti i nodi","ra_Expand one step node":"Espandi un livello","ra_Export data to %s file":"Esporta i dati nel file %s","ra_Failed to open JSON File":"Impossibile aprire il file JSON","ra_Fallback custom certificates":"Certificati personalizzati di fallback","ra_File is too big. Max %sk allowed. Try use SVG.":"Il file è troppo grande. Max %sk consentito. Prova a usare SVG.",ra_Filter:tJe,"ra_Filter files":"Filtra i file","ra_Folder name":"Nome della cartella","ra_Folder → Channel → State":"Cartella → Canale → Stato","ra_Folder → Device → Channel → State":"Cartella → Dispositivo → Canale → Stato","ra_Folder → State":"Cartella → Stato","ra_Folders always first":"Le cartelle sono sempre al primo posto",ra_Friday:rJe,"ra_Good luck":"Buona fortuna","ra_Hide empty folders":"Nascondi cartelle vuote","ra_If no file will be created in the folder, it will disappear after the browser closed":"Se nessun file verrà creato nella cartella, scomparirà dopo la chiusura del browser","ra_Import data from %s file":"Importa i dati dal file %s","ra_Import from %s":"Importa da %s","ra_Instance %s is alive":"Il %s dell'istanza è vivo","ra_Instance %s is not alive":"Il TESTO dell'istanza non è vivo","ra_Instance is not alive":"L'istanza non è viva","ra_Invalid CRON":"CRON non valido","ra_Invalid JSON":"JSON non valido","ra_Invalid answer from server":"Risposta non valida dal server","ra_Invalid parent folder!":"Cartella principale non valida!","ra_Invalid structure":"Struttura non valida","ra_JSON editor":"Editor JSON","ra_Last change":"Ultima modifica",ra_Latitude:nJe,"ra_License %s":"Licenza %s","ra_License agreement":"Contratto di licenza","ra_License does not exist":"La licenza non esiste","ra_License expired on %s":"Licenza scaduta il %s",'ra_License for other product "%s"':'Licenza per altro prodotto "%s"',"ra_License is for version %s, but required version is %s.":"La licenza è per la versione %s, ma la versione richiesta è %s.","ra_License must be converted":"La licenza deve essere convertita in una versione più recente. Puoi farlo nel tuo profilo iobroker.net.","ra_License not found in license manager. Do you want to read licenses from iobroker.net?":"Licenza non trovata nel gestore delle licenze. Vuoi aggiornare le licenze da iobroker.net?","ra_Listen on all IPs":"Ascolta su tutti gli IP","ra_Load configuration from file":"Carica la configurazione dal file",ra_Longitude:aJe,'ra_May not trigger "updateLicenses"':'Potrebbe non attivare "updateLicenses"',ra_Message:iJe,ra_Monday:oJe,"ra_Move down":"Abbassati","ra_Move up":"Andare avanti",ra_Name:sJe,"ra_No data found in file":"Nessun dato trovato nel file","ra_No one license found in license manager":"Nessuna licenza trovata nel gestore delle licenze","ra_No response from the backend":"Nessuna risposta dal backend",'ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".':'I non esperti possono creare nuovi oggetti solo in "0_userdata.0" o "alias.0".',"ra_Not a number":"Non un numero",ra_Objects:lJe,ra_Ok:cJe,"ra_On weekdays":"Nei giorni della settimana","ra_Only following structures of objects are available:":"Sono disponibili solo le seguenti strutture di oggetti:","ra_Only selected":"Solo selezionato","ra_Owner group":"Gruppo di proprietari","ra_Owner user":"Utente proprietario","ra_Passwords are not equal!":"Le password non sono uguali!","ra_Place your files here or click here to open the browse dialog":"Posiziona i file qui o fai clic qui per aprire la finestra di dialogo Sfoglia","ra_Please confirm":"Si prega di confermare","ra_Please create license":"Si prega di creare la licenza","ra_Please enter the license":"Inserisci la licenza","ra_Please select file...":"Si prega di selezionare il file...","ra_Please select object ID...":"Seleziona l'ID oggetto ...","ra_Port could be used by %s":"La porta potrebbe essere utilizzata da %s","ra_Port is already used by %s":"La porta è già utilizzata da %s","ra_Private certificate":"Certificato privato",ra_Product:uJe,"ra_Public certificate":"Certificato pubblico","ra_Quality code":"Qualità","ra_Refresh tree":"Aggiorna l'albero","ra_Reload files":"Ricarica i file",ra_Repeat:dJe,ra_Replace:fJe,"ra_Request timed out":"Tempo scaduto per la richiesta","ra_Restrict to folder":"Limita alla cartella",ra_Root:hJe,ra_Saturday:pJe,ra_Save:mJe,"ra_Save and close":"Salva e chiudi","ra_Save configuration to file":"Salva la configurazione su file","ra_Save objects tree as JSON file":"Salva l'albero degli oggetti come file JSON","ra_Select all":"Seleziona tutto","ra_Select color":"Seleziona il colore","ra_Select predefined icon":"Seleziona l'icona predefinita","ra_Select type of export":"Seleziona il tipo di esportazione",ra_Selected:vJe,"ra_Selected %s object(s)":"%s oggetto/i selezionato/i","ra_Serial number (UUID)":"Numero di serie (UUID)",'ra_Serial number (UUID) "%s" in license is for other device.':'Il numero di serie (UUID) "%s" nella licenza è per un altro dispositivo.',"ra_Show all folders":"Mostra tutte le cartelle","ra_Show lines between rows":"Mostra linee tra le righe","ra_Show/Hide object descriptions":"Mostra/Nascondi le descrizioni degli oggetti","ra_Show/hide filter input":"Mostra/nascondi input filtro","ra_Some data are not stored. Discard?":"Alcuni dati non vengono memorizzati. Scartare?",ra_States:gJe,"ra_Suitable license not found in license manager":"Licenza adatta non trovata nel gestore delle licenze",ra_Sunday:_Je,"ra_Suppress question for next %s minutes":"Sopprimi la domanda per i prossimi %s minuti","ra_System language":"Linguaggio di sistema","ra_Take browser position":"Prendi posizione dal browser","ra_Take position from system settings":"Prendi posizione dalle impostazioni di sistema",'ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").':'Gli esperti possono creare oggetti ovunque ma dal secondo livello (es. "Vis.0" o "javascript.0").',"ra_The page you are looking for was not found":"La pagina che stai cercando non è stata trovata","ra_The schedule will be executed every minute. Are you sure?":"La pianificazione verrà eseguita ogni minuto. Sei sicuro?","ra_The schedule will be executed every second. Are you sure?":"La pianificazione verrà eseguita ogni secondo. Sei sicuro?",ra_Thursday:yJe,ra_Timestamp:bJe,"ra_Toggle expert mode":"Attiva / disattiva la modalità esperto","ra_Toggle the states view":"Attiva o disattiva la visualizzazione degli stati","ra_Toggle view mode":"Attiva / disattiva la modalità di visualizzazione","ra_Too big":"Troppo grande","ra_Too small":"Troppo piccolo","ra_Transparent dialog":"Finestra di dialogo trasparente",ra_Tuesday:wJe,"ra_Unknown error":"Errore sconosciuto","ra_Unknown error!":"Errore sconosciuto!",ra_Update:SJe,"ra_Upload file":"Caricare un file","ra_Use all available let's encrypt certificates":"Usa tutti i certificati Let's Encrypt disponibili","ra_Use iobroker.acme adapter for letsencrypt certificates":"Utilizzare l'adattatore iobroker.acme per i certificati letsencrypt","ra_Use system settings for position":"Usa le impostazioni di sistema per la posizione","ra_Used system settings":"Impostazioni di sistema utilizzate","ra_User files":"File utente",ra_ValidTill:xJe,ra_Value:CJe,ra_Version:TJe,"ra_View file":"Vedi il file","ra_View: %s":"Visualizza: %s",ra_Wednesday:kJe,ra_Width:EJe,ra_Yes:DJe,"ra_You can export all objects or just the selected branch.":"Puoi esportare tutti gli oggetti o solo il ramo selezionato.","ra_You can filter entries by entering here some text":"Puoi filtrare le voci inserendo qui del testo",ra___different__:MJe,ra_aclEveryone_read_object:OJe,ra_aclEveryone_read_state:$Je,ra_aclEveryone_write_object:AJe,ra_aclEveryone_write_state:PJe,ra_aclGroup_read_object:IJe,ra_aclGroup_read_state:RJe,ra_aclGroup_write_object:LJe,ra_aclGroup_write_state:NJe,ra_aclOwner_read_object:FJe,ra_aclOwner_read_state:zJe,ra_aclOwner_write_object:BJe,ra_aclOwner_write_state:jJe,ra_buttons:WJe,ra_changedFrom:HJe,ra_close:UJe,ra_create_boolean_state:YJe,ra_create_channel:VJe,ra_create_device:GJe,ra_create_number_state:qJe,ra_create_state:XJe,ra_create_string_state:JJe,ra_daysShortText:ZJe,ra_dow_Fr:KJe,ra_dow_Mo:QJe,ra_dow_Sa:eZe,ra_dow_Su:tZe,ra_dow_Th:rZe,ra_dow_Tu:nZe,ra_dow_We:aZe,ra_expertMode:iZe,ra_fileType_all:oZe,ra_fileType_audio:sZe,ra_fileType_code:lZe,ra_fileType_images:cZe,ra_fileType_txt:uZe,ra_fileType_video:dZe,"ra_fileType_video,":"video",ra_filter_customs:fZe,ra_filter_customs_without:hZe,ra_filter_func:pZe,ra_filter_id:mZe,ra_filter_name:vZe,ra_filter_role:gZe,ra_filter_room:_Ze,ra_filter_type:yZe,"ra_import data from %s file":"Importa dati dal file %s",ra_invalidConfig:bZe,ra_lastChange:wZe,ra_locally:SZe,ra_month_Apr:xZe,ra_month_Aug:CZe,ra_month_Dec:TZe,ra_month_Feb:kZe,ra_month_Jan:EZe,ra_month_Jul:DZe,ra_month_Jun:MZe,ra_month_Mai:OZe,ra_month_Mar:$Ze,ra_month_Nov:AZe,ra_month_Oct:PZe,ra_month_Sep:IZe,ra_months_Apr:RZe,ra_months_Aug:LZe,ra_months_Dec:NZe,ra_months_Feb:FZe,ra_months_Jan:zZe,ra_months_Jul:BZe,ra_months_Jun:jZe,ra_months_Mai:WZe,ra_months_Mar:HZe,ra_months_Nov:UZe,ra_months_Oct:YZe,ra_months_Sep:VZe,ra_none:GZe,ra_object_changed_by:qZe,ra_object_changed_by_user:XZe,ra_otherConfig:JZe,ra_qualityCode:ZZe,ra_repeat:KZe,ra_select_folder_hint:QZe,ra_state_changed_by:eKe,ra_state_changed_from:tKe,ra_timestamp:rKe,ra_tooltip_ack:nKe,ra_tooltip_comment:aKe,ra_tooltip_copyState:iKe,ra_tooltip_customConfig:oKe,ra_tooltip_deleteObject:sKe,ra_tooltip_editObject:lKe,ra_tooltip_editState:cKe,ra_tooltip_from:uKe,ra_tooltip_lc:dKe,ra_tooltip_quality:fKe,ra_tooltip_ts:hKe,ra_tooltip_user:pKe,ra_tooltip_value:mKe,"ra_use seconds":"usa i secondi",ra_val:vKe,"ra_via internet":"attraverso internet",ra_warning_every_minute:gKe,ra_warning_every_second:_Ke,sc_cron:yKe,sc_date:bKe,sc_dates:wKe,sc_dow:SKe,sc_dows:xKe,sc_every:CKe,sc_everyN_dates:TKe,sc_everyN_dow:kKe,sc_everyN_dows:EKe,sc_everyN_hours:DKe,sc_everyN_minutes:MKe,sc_everyN_months:OKe,sc_everyN_seconds:$Ke,sc_every_dates:AKe,sc_every_dow:PKe,sc_every_dows:IKe,sc_every_hours:RKe,sc_every_minutes:LKe,sc_every_months:NKe,sc_every_seconds:FKe,sc_from:zKe,sc_hours:BKe,sc_interval:jKe,sc_intervalBetween:WKe,sc_invalid_cron:HKe,sc_minutes:UKe,sc_months:YKe,sc_once:VKe,sc_period:GKe,sc_seconds:qKe,sc_simple:XKe,sc_specific:JKe,sc_specific_dates:ZKe,sc_specific_dow:KKe,sc_specific_dows:QKe,sc_specific_hours:eQe,sc_specific_minutes:tQe,sc_specific_months:rQe,sc_specific_seconds:nQe,sc_time:aQe,sc_to:iQe,sc_wizard:oQe,sch_all:sQe,sch_astroDay:lQe,sch_astroNight:cQe,sch_astro_dawn:uQe,sch_astro_dusk:dQe,sch_astro_goldenHour:fQe,sch_astro_goldenHourEnd:hQe,sch_astro_nadir:pQe,sch_astro_nauticalDawn:mQe,sch_astro_nauticalDusk:vQe,sch_astro_night:gQe,sch_astro_nightEnd:_Qe,sch_astro_solarNoon:yQe,sch_astro_sunrise:bQe,sch_astro_sunriseEnd:wQe,sch_astro_sunset:SQe,sch_astro_sunsetStart:xQe,sch_at:CQe,sch_desc_atTime:TQe,sch_desc_everyDay:kQe,sch_desc_everyHour:EQe,sch_desc_everyMinute:DQe,sch_desc_everyMonth:MQe,sch_desc_everyNDay:OQe,sch_desc_everyNHours:$Qe,sch_desc_everyNMinutes:AQe,sch_desc_everyNMonths:PQe,sch_desc_everyNWeeks:IQe,sch_desc_everyNYears:RQe,sch_desc_everyWeek:LQe,sch_desc_everyYear:NQe,sch_desc_intervalFromTo:FQe,sch_desc_never:zQe,sch_desc_onDate:BQe,sch_desc_onDates:jQe,sch_desc_onEveryDate:WQe,sch_desc_onMonth:HQe,sch_desc_onMonths:UQe,sch_desc_onWeekday:YQe,sch_desc_onWeekdays:VQe,sch_desc_onWeekends:GQe,sch_desc_onWorkdays:qQe,sch_desc_onceInPast:XQe,sch_desc_once_on:JQe,sch_desc_validFrom:ZQe,sch_desc_validFromTo:KQe,sch_desc_validTo:QQe,sch_every:eet,sch_exactTime:tet,sch_from:ret,sch_fromTo:net,sch_intervalTime:aet,sch_invert:iet,sch_no_one:oet,sch_on:set,sch_period:cet,sch_periodDaily:uet,sch_periodDates:det,sch_periodDay:fet,sch_periodEvery:het,sch_periodEveryDay:pet,sch_periodEveryMonth:met,sch_periodEveryWeek:vet,sch_periodEveryYear:get,sch_periodHours:_et,sch_periodMinutes:yet,sch_periodMonth:bet,sch_periodMonthly:wet,sch_periodOnce:xet,sch_periodSpecificMonths:Cet,sch_periodWeek:Tet,sch_periodWeekdays:ket,sch_periodWeekend:Eet,sch_periodWeekly:Det,sch_periodWorkdays:Met,sch_periodYear:Oet,sch_periodYearly:$et,sch_specificTime:Aet,sch_time:Pet,sch_to:Iet,sch_valid:Ret,sch_validFrom:Let,sch_validTo:Net,sch_wholeDay:Fet,sch_yearEveryMonth:zet},jet="Adjuntar",Wet="Cancelar",Het="Categorías",Uet="Comprobado",Yet="Borrar",Vet="Cerca",Get="Comercial",qet="Configurar",Xet="Conectado",Jet="Copiado",Zet="Crear",Ket="Cultivo",Qet="Delete",ett="Eliminar",ttt="Desechar",rtt="Desconectado",ntt="Error",att="Filtrar",itt="Viernes",ott="Latitud",stt="Longitud",ltt="Mensaje",ctt="Lunes",utt="Nombre",dtt="Objetos",ftt="Okay",htt="Producto",ptt="Repetir",mtt="Reemplazar",vtt="Raíz",gtt="Sábado",_tt="Salvar",ytt="Seleccionado",btt="Estados",wtt="Domingo",Stt="Jueves",xtt="Marca de tiempo",Ctt="Martes",Ttt="Actualizar",ktt="Válida hasta",Ett="Valor",Dtt="Versión",Mtt="Miércoles",Ott="Anchura",$tt="Sí",Att="diferente",Ptt="Todo el mundo puede leer el objeto",Itt="Todos pueden leer el estado",Rtt="Todos pueden escribir objetos",Ltt="Todos pueden escribir el estado",Ntt="El grupo puede leer el objeto",Ftt="El grupo puede leer el estado",ztt="El grupo puede escribir un objeto",Btt="El grupo puede escribir el estado",jtt="El propietario puede leer el objeto",Wtt="El propietario puede leer el estado",Htt="El propietario puede escribir el objeto",Utt="El propietario puede escribir el estado",Ytt="Botones",Vtt="Cambiaron desde",Gtt="cerrar",qtt="Crear estado booleano",Xtt="Crear canal",Jtt="Crear dispositivo",Ztt="Crear estado numérico",Ktt="Crear estado",Qtt="Crear estado de cadena",ert="d.",trt="Fr",rrt="Mes",nrt="Sa",art="Su",irt="Th",ort="Tu",srt="Nosotros",lrt="Modo experto",crt="Todos los archivos",urt="Audio",drt="Código/JSON",frt="Imágenes",hrt="Texto",prt="Video",mrt="Configuraciones",vrt="sin",grt="Función",_rt="ID",yrt="Nombre",brt="Papel",wrt="Habitación",Srt="Tipo",xrt="Configuraciones inválidas",Crt="Ultimo cambio",Trt="en la zona",krt="Abr",Ert="Ago",Drt="Dic",Mrt="Feb",Ort="Ene",$rt="Jul",Art="Jun",Prt="Mai",Irt="Mar",Rrt="Nov",Lrt="Oct",Nrt="Sep",Frt="Abr",zrt="Ago",Brt="Dic",jrt="Feb",Wrt="Ene",Hrt="Jul",Urt="Jun",Yrt="Mai",Vrt="Mar",Grt="Nov",qrt="Oct",Xrt="Sep",Jrt="ninguno",Zrt="Objeto cambiado por",Krt="Objeto cambiado por última vez a las",Qrt="Configuraciones de otro adaptador %s",ent="Código de calidad",tnt="repetir",rnt='Para seleccionar la carpeta, simplemente mantenga presionada la tecla "shift" haciendo clic en la carpeta.',nnt="Estado cambiado por",ant="Objeto cambiado de",int="Marca de tiempo",ont="Bandera reconocida",snt="Comentario",lnt="Copie el valor del estado",cnt="Ajustes personalizados",unt="Eliminar objeto",dnt="Editar objeto",fnt="Edite el valor del estado",hnt="Desde",pnt="Último cambio",mnt="Calidad",vnt="Sello de tiempo",gnt="Usuario",_nt="Valor",ynt="Valor",bnt="Advertencia: ¡El trabajo CRON se ejecutará cada minuto durante el período especificado!",wnt="Advertencia: ¡El trabajo CRON se ejecutará cada segundo durante el período especificado!",Snt="CRON",xnt="Fecha",Cnt="fechas",Tnt="Día",knt="Día de la semana",Ent="Cada",Dnt="cada N días",Mnt="cada enésimo día de la semana",Ont="cada N día de la semana",$nt="cada N horas",Ant="cada N minutos",Pnt="cada N meses",Int="cada N segundos",Rnt="cada día",Lnt="Cada día de la semana",Nnt="Cada día de la semana",Fnt="cada hora",znt="cada minuto",Bnt="cada mes",jnt="cada segundo",Wnt="De",Hnt="Horas",Unt="Intervalo",Ynt="Intervalo entre",Vnt="CRON no válido",Gnt="Minutos",qnt="meses",Xnt="Una vez",Jnt="Período",Znt="Segundos",Knt="Sencillo",Qnt="Tiempo específico",eat="fechas especificas",tat="día(s) específico(s) de la semana",rat="día específico de semanas",nat="horas específicas",aat="minutos específicos",iat="meses específicos",oat="segundos específicos",sat="Hora",lat="A",cat="Mago",uat="todas",dat="Día astro",fat="Noche astro",hat="Amanecer",pat="Oscuridad",mat="hora dorada",vat="Fin de la hora dorada",gat="Nadir",_at="Amanecer náutico",yat="Anochecer náutico",bat="Noche",wat="Fin de la noche",Sat="Mediodía solar",xat="amanecer",Cat="Fin del amanecer",Tat="Puesta de sol",kat="Puesta de sol",Eat="a",Dat="en %s",Mat="cada día",Oat="cada hora",$at="cada minuto",Aat="cada mes",Pat="cada %s días",Iat="cada %s horas",Rat="cada %s minutos",Lat="cada %s meses",Nat="cada %s semanas",Fat="cada %s años",zat="cada semana",Bat="todos los años",jat="de %s a %s",Wat="Nunca",Hat="en %s de %s",Uat="en %s y %s de",Yat="en cada fecha de",Vat="%s",Gat="%s y %s",qat="en %s",Xat="en %s y %s",Jat="en los fines de semana",Zat="en días laborables",Kat="ya no se ejecutará más, porque el inicio está en el pasado",Qat="en %s",eit="de %s",tit="Ejecutar desde hasta",rit="a %s",nit="cada",ait="Tiempo específico",iit="de",oit="De-a",sit="Tiempo de intervalo",lit="invertir; poner boca abajo o en la posición opuesta, orden o arreglo; Boca abajo",cit="ninguna",uit="en",dit="Período",fit="Diario",hit="fechas",pit="Día",mit="Cada",vit="Cada día",git="Cada mes",_it="Cada semana",yit="Todos los años",bit="Horas",wit="Minutos",Sit="mes",xit="Mensual",Cit="Una vez",Tit="Meses específicos",kit="Semana",Eit="Días laborables",Dit="Fin de semana",Mit="Semanal",Oit="Días laborables",$it="Año",Ait="Anual",Pit="Tiempo específico",Iit="Hora",Rit="a",Lit="Válido",Nit="de",Fit="a",zit="Todo el dia",Bit="cada mes",jit={"ra_%s links from aliases":"%s enlaces de alias","ra_%s object(s) processed":"%s objeto(s) procesados","ra_%s was imported":"%s fue importado","ra_Accept license":"Aceptar licencia","ra_Add new child object to selected parent":"Agregar nuevo objeto hijo al padre seleccionado","ra_Add objects tree from JSON file":"Agregar árbol de objetos desde el archivo JSON","ra_Add row":"Añadir fila","ra_Advanced options":"Opciones avanzadas","ra_All items are filtered out":"Todos los elementos se filtran","ra_All objects":"Todos los objetos",ra_Append:jet,"ra_Append %s entries or replace existing?":"¿Agregar %s entradas o reemplazar las existentes?","ra_Append or replace?":"¿Agregar o reemplazar?","ra_Are you sure?":"¿Estás seguro?","ra_Auto (no custom columns)":"Automático (sin columnas personalizadas)","ra_Back to %s":"Volver a %s","ra_Background image":"Imagen de fondo",ra_Cancel:Wet,"ra_Cannot add items with set filter":"No se pueden agregar elementos con el filtro establecido","ra_Cannot decode license":"No se puede decodificar la licencia","ra_Cannot determine position: System settings are empty and GPS detection is disabled in browser":"No se puede determinar la posición: la configuración del sistema está vacía y la detección de GPS está deshabilitada en el navegador",'ra_Cannot find "%s"':'No se puede encontrar "%s"','ra_Cannot read "%s"':'No se puede leer "%s"',"ra_Cannot read licenses: %s":"No se pueden leer licencias: %s","ra_Cannot retrieve options, as instance is offline":"No se pueden recuperar las opciones, ya que la instancia está fuera de línea","ra_Cannot update attribute, because not found in the object":"No se puede actualizar el atributo porque no se encuentra en el objeto","ra_Cannot upload":"no se puede cargar",ra_Categories:Het,"ra_Chained certificate":"certificado encadenado","ra_Change color theme":"Cambiar tema de color","ra_Changed from":"Cambiaron desde","ra_Channel → State":"Canal → Estado","ra_Check license":"Verificar licencia",ra_Checked:Uet,ra_Clear:Yet,"ra_Clear filter":"Filtro claro","ra_Clear icon":"Icono claro","ra_Clone current row":"Clonar fila actual",ra_Close:Vet,"ra_Collapse all nodes":"Contraer todos los nodos","ra_Collapse one step node":"Contraer un nivel",ra_Commercial:Get,ra_Configure:qet,"ra_Configure visible columns":"Configurar columnas visibles","ra_Confirm deletion of %s":"Confirmar la eliminación de %s",ra_Connected:Xet,ra_Copied:Jet,"ra_Copied %s":'Copiado "%s"',"ra_Copy content":"Copiar contenido",ra_Create:Zet,"ra_Create alias":"Crear alias","ra_Create folder":"Crear carpeta","ra_Create new folder in %s":"Crear nueva carpeta en %s",ra_Crop:Ket,"ra_Define CRON...":"Definir CRON...","ra_Define functions":"Definir funciones","ra_Define rooms":"Definir habitaciones","ra_Define schedule":"Definir horario","ra_Define schedule...":"Definir horario ...",ra_Del:Qet,ra_Delete:ett,"ra_Delete (no confirm for 5 mins)":"Eliminar (sin confirmar durante 5 minutos)","ra_Delete current row":"Eliminar fila actual","ra_Deselect all":"Deselecciona todo","ra_Device → Channel → State":"Dispositivo → Canal → Estado",ra_Discard:ttt,ra_Disconnected:rtt,"ra_Do not export values of states":"No exportar valores de estados.","ra_Do not use let's encrypt":"No use vamos a cifrar","ra_Double click to reset table layout":"Haga doble clic para restablecer el diseño de la tabla","ra_Drag 'n' drop some files here, or click to select files":"Arrastre y suelte algunos archivos aquí, o haga clic para seleccionar archivos","ra_Drop file here":"Suelta el archivo aquí","ra_Drop the files here...":"Suelta el archivo aquí ...","ra_Duplicate name":"Nombre duplicado","ra_Edit ACL":"Editar LCA","ra_Edit alias":"Editar alias","ra_Edit custom config":"Editar configuración personalizada","ra_Edit function":"Función de edición","ra_Edit object field":"Editar campo de objeto","ra_Edit role":"Editar rol","ra_Edit room":"Cuarto de edición","ra_Edit value":"Editar valor",ra_Error:ntt,"ra_Expand all nodes":"Expandir todos los nodos","ra_Expand one step node":"Expandir un nivel","ra_Export data to %s file":"Exportar datos al archivo %s","ra_Failed to open JSON File":"No se pudo abrir el archivo JSON","ra_Fallback custom certificates":"Certificados personalizados alternativos","ra_File is too big. Max %sk allowed. Try use SVG.":"El archivo es demasiado grande. Máximo de %sk permitido. Intenta usar SVG.",ra_Filter:att,"ra_Filter files":"Filtrar archivos","ra_Folder name":"Nombre de la carpeta","ra_Folder → Channel → State":"Carpeta → Canal → Estado","ra_Folder → Device → Channel → State":"Carpeta → Dispositivo → Canal → Estado","ra_Folder → State":"Carpeta → Estado","ra_Folders always first":"Carpetas siempre primero",ra_Friday:itt,"ra_Good luck":"Buena suerte","ra_Hide empty folders":"Ocultar carpetas vacías","ra_If no file will be created in the folder, it will disappear after the browser closed":"Si no se creará ningún archivo en la carpeta, desaparecerá después de que se cierre el navegador.","ra_Import data from %s file":"Importar datos del archivo %s","ra_Import from %s":"Importar desde %s","ra_Instance %s is alive":"Instancia %s está vivo","ra_Instance %s is not alive":"Instancia %s no está vivo","ra_Instance is not alive":"La instancia no está viva","ra_Invalid CRON":"CRON no válido","ra_Invalid JSON":"JSON no válido","ra_Invalid answer from server":"Respuesta inválida del servidor","ra_Invalid parent folder!":"Carpeta principal no válida.","ra_Invalid structure":"Estructura inválida","ra_JSON editor":"editor JSON","ra_Last change":"Ultimo cambio",ra_Latitude:ott,"ra_License %s":"Licencia %s","ra_License agreement":"Acuerdo de licencia","ra_License does not exist":"La licencia no existe","ra_License expired on %s":"La licencia venció el %s",'ra_License for other product "%s"':'Licencia para otro producto "%s"',"ra_License is for version %s, but required version is %s.":"La licencia es para la versión %s, pero la versión requerida es %s.","ra_License must be converted":"La licencia debe convertirse a una versión más reciente. Puedes hacerlo en tu perfil de iobroker.net.","ra_License not found in license manager. Do you want to read licenses from iobroker.net?":"Licencia no encontrada en el administrador de licencias. ¿Quieres actualizar las licencias de iobroker.net?","ra_Listen on all IPs":"Escuche en todas las IP","ra_Load configuration from file":"Cargar configuración desde archivo",ra_Longitude:stt,'ra_May not trigger "updateLicenses"':'No puede activar "updateLicenses"',ra_Message:ltt,ra_Monday:ctt,"ra_Move down":"Mover hacia abajo","ra_Move up":"Ascender",ra_Name:utt,"ra_No data found in file":"No se encontraron datos en el archivo","ra_No one license found in license manager":"No se encontró ninguna licencia en el administrador de licencias","ra_No response from the backend":"No hay respuesta del backend",'ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".':'Los no expertos pueden crear nuevos objetos solo en "0_userdata.0" o "alias.0".',"ra_Not a number":"No un número",ra_Objects:dtt,ra_Ok:ftt,"ra_On weekdays":"De lunes a viernes","ra_Only following structures of objects are available:":"Solo están disponibles las siguientes estructuras de objetos:","ra_Only selected":"Solo seleccionados","ra_Owner group":"Grupo propietario","ra_Owner user":"Usuario propietario","ra_Passwords are not equal!":"¡Las contraseñas no son iguales!","ra_Place your files here or click here to open the browse dialog":"Coloque sus archivos aquí o haga clic aquí para abrir el cuadro de diálogo de exploración","ra_Please confirm":"Por favor confirmar","ra_Please create license":"Por favor cree una licencia","ra_Please enter the license":"Por favor ingrese la licencia","ra_Please select file...":"Seleccione el archivo...","ra_Please select object ID...":"Por favor seleccione ID de objeto ...","ra_Port could be used by %s":"El puerto podría ser utilizado por %s","ra_Port is already used by %s":"El puerto ya está en uso por %s","ra_Private certificate":"certificado privado",ra_Product:htt,"ra_Public certificate":"Certificado público","ra_Quality code":"Calidad","ra_Refresh tree":"Actualizar árbol","ra_Reload files":"Recargar archivos",ra_Repeat:ptt,ra_Replace:mtt,"ra_Request timed out":"Tiempo de espera agotado","ra_Restrict to folder":"Restringir a carpeta",ra_Root:vtt,ra_Saturday:gtt,ra_Save:_tt,"ra_Save and close":"Guardar y cerrar","ra_Save configuration to file":"Guardar configuración en archivo","ra_Save objects tree as JSON file":"Guardar el árbol de objetos como archivo JSON","ra_Select all":"Seleccionar todo","ra_Select color":"Seleccionar el color","ra_Select predefined icon":"Seleccionar icono predefinido","ra_Select type of export":"Seleccione tipo de exportación",ra_Selected:ytt,"ra_Selected %s object(s)":"%s objetos seleccionados","ra_Serial number (UUID)":"Número de serie (UUID)",'ra_Serial number (UUID) "%s" in license is for other device.':'El número de serie (UUID) "%s" en la licencia es para otro dispositivo.',"ra_Show all folders":"Mostrar todas las carpetas","ra_Show lines between rows":"Mostrar líneas entre filas","ra_Show/Hide object descriptions":"Mostrar/ocultar descripciones de objetos","ra_Show/hide filter input":"Mostrar/ocultar entrada de filtro","ra_Some data are not stored. Discard?":"Algunos datos no se almacenan. ¿Desechar?",ra_States:btt,"ra_Suitable license not found in license manager":"Licencia adecuada no encontrada en el administrador de licencias",ra_Sunday:wtt,"ra_Suppress question for next %s minutes":"Suprimir pregunta durante los próximos %s minutos","ra_System language":"Lenguaje del sistema","ra_Take browser position":"Tomar posición desde el navegador","ra_Take position from system settings":"Tomar posición desde la configuración del sistema",'ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").':'Los expertos pueden crear objetos en todas partes excepto desde el segundo nivel (por ejemplo, "vis.0" o "javascript.0").',"ra_The page you are looking for was not found":"No se encontró la página que busca","ra_The schedule will be executed every minute. Are you sure?":"El cronograma se ejecutará cada minuto. ¿Estás seguro?","ra_The schedule will be executed every second. Are you sure?":"El cronograma se ejecutará cada segundo. ¿Estás seguro?",ra_Thursday:Stt,ra_Timestamp:xtt,"ra_Toggle expert mode":"Alternar modo experto","ra_Toggle the states view":"Alternar la vista de estados","ra_Toggle view mode":"Alternar modo de vista","ra_Too big":"Demasiado grande","ra_Too small":"Demasiado pequeña","ra_Transparent dialog":"Diálogo transparente",ra_Tuesday:Ctt,"ra_Unknown error":"Error desconocido","ra_Unknown error!":"¡Error desconocido!",ra_Update:Ttt,"ra_Upload file":"Subir archivo","ra_Use all available let's encrypt certificates":"Utilice todos los certificados let's encrypt disponibles","ra_Use iobroker.acme adapter for letsencrypt certificates":"Use el adaptador iobroker.acme para los certificados de letsencrypt","ra_Use system settings for position":"Usar la configuración del sistema para la posición","ra_Used system settings":"Configuraciones del sistema usadas","ra_User files":"Archivos de usuario",ra_ValidTill:ktt,ra_Value:Ett,ra_Version:Dtt,"ra_View file":"Ver archivo","ra_View: %s":"Ver: %s",ra_Wednesday:Mtt,ra_Width:Ott,ra_Yes:$tt,"ra_You can export all objects or just the selected branch.":"Puede exportar todos los objetos o solo la rama seleccionada.","ra_You can filter entries by entering here some text":"Puede filtrar las entradas ingresando aquí algún texto",ra___different__:Att,ra_aclEveryone_read_object:Ptt,ra_aclEveryone_read_state:Itt,ra_aclEveryone_write_object:Rtt,ra_aclEveryone_write_state:Ltt,ra_aclGroup_read_object:Ntt,ra_aclGroup_read_state:Ftt,ra_aclGroup_write_object:ztt,ra_aclGroup_write_state:Btt,ra_aclOwner_read_object:jtt,ra_aclOwner_read_state:Wtt,ra_aclOwner_write_object:Htt,ra_aclOwner_write_state:Utt,ra_buttons:Ytt,ra_changedFrom:Vtt,ra_close:Gtt,ra_create_boolean_state:qtt,ra_create_channel:Xtt,ra_create_device:Jtt,ra_create_number_state:Ztt,ra_create_state:Ktt,ra_create_string_state:Qtt,ra_daysShortText:ert,ra_dow_Fr:trt,ra_dow_Mo:rrt,ra_dow_Sa:nrt,ra_dow_Su:art,ra_dow_Th:irt,ra_dow_Tu:ort,ra_dow_We:srt,ra_expertMode:lrt,ra_fileType_all:crt,ra_fileType_audio:urt,ra_fileType_code:drt,ra_fileType_images:frt,ra_fileType_txt:hrt,ra_fileType_video:prt,"ra_fileType_video,":"Video",ra_filter_customs:mrt,ra_filter_customs_without:vrt,ra_filter_func:grt,ra_filter_id:_rt,ra_filter_name:yrt,ra_filter_role:brt,ra_filter_room:wrt,ra_filter_type:Srt,"ra_import data from %s file":"Importar datos del archivo %s",ra_invalidConfig:xrt,ra_lastChange:Crt,ra_locally:Trt,ra_month_Apr:krt,ra_month_Aug:Ert,ra_month_Dec:Drt,ra_month_Feb:Mrt,ra_month_Jan:Ort,ra_month_Jul:$rt,ra_month_Jun:Art,ra_month_Mai:Prt,ra_month_Mar:Irt,ra_month_Nov:Rrt,ra_month_Oct:Lrt,ra_month_Sep:Nrt,ra_months_Apr:Frt,ra_months_Aug:zrt,ra_months_Dec:Brt,ra_months_Feb:jrt,ra_months_Jan:Wrt,ra_months_Jul:Hrt,ra_months_Jun:Urt,ra_months_Mai:Yrt,ra_months_Mar:Vrt,ra_months_Nov:Grt,ra_months_Oct:qrt,ra_months_Sep:Xrt,ra_none:Jrt,ra_object_changed_by:Zrt,ra_object_changed_by_user:Krt,ra_otherConfig:Qrt,ra_qualityCode:ent,ra_repeat:tnt,ra_select_folder_hint:rnt,ra_state_changed_by:nnt,ra_state_changed_from:ant,ra_timestamp:int,ra_tooltip_ack:ont,ra_tooltip_comment:snt,ra_tooltip_copyState:lnt,ra_tooltip_customConfig:cnt,ra_tooltip_deleteObject:unt,ra_tooltip_editObject:dnt,ra_tooltip_editState:fnt,ra_tooltip_from:hnt,ra_tooltip_lc:pnt,ra_tooltip_quality:mnt,ra_tooltip_ts:vnt,ra_tooltip_user:gnt,ra_tooltip_value:_nt,"ra_use seconds":"usar segundos",ra_val:ynt,"ra_via internet":"vía Internet",ra_warning_every_minute:bnt,ra_warning_every_second:wnt,sc_cron:Snt,sc_date:xnt,sc_dates:Cnt,sc_dow:Tnt,sc_dows:knt,sc_every:Ent,sc_everyN_dates:Dnt,sc_everyN_dow:Mnt,sc_everyN_dows:Ont,sc_everyN_hours:$nt,sc_everyN_minutes:Ant,sc_everyN_months:Pnt,sc_everyN_seconds:Int,sc_every_dates:Rnt,sc_every_dow:Lnt,sc_every_dows:Nnt,sc_every_hours:Fnt,sc_every_minutes:znt,sc_every_months:Bnt,sc_every_seconds:jnt,sc_from:Wnt,sc_hours:Hnt,sc_interval:Unt,sc_intervalBetween:Ynt,sc_invalid_cron:Vnt,sc_minutes:Gnt,sc_months:qnt,sc_once:Xnt,sc_period:Jnt,sc_seconds:Znt,sc_simple:Knt,sc_specific:Qnt,sc_specific_dates:eat,sc_specific_dow:tat,sc_specific_dows:rat,sc_specific_hours:nat,sc_specific_minutes:aat,sc_specific_months:iat,sc_specific_seconds:oat,sc_time:sat,sc_to:lat,sc_wizard:cat,sch_all:uat,sch_astroDay:dat,sch_astroNight:fat,sch_astro_dawn:hat,sch_astro_dusk:pat,sch_astro_goldenHour:mat,sch_astro_goldenHourEnd:vat,sch_astro_nadir:gat,sch_astro_nauticalDawn:_at,sch_astro_nauticalDusk:yat,sch_astro_night:bat,sch_astro_nightEnd:wat,sch_astro_solarNoon:Sat,sch_astro_sunrise:xat,sch_astro_sunriseEnd:Cat,sch_astro_sunset:Tat,sch_astro_sunsetStart:kat,sch_at:Eat,sch_desc_atTime:Dat,sch_desc_everyDay:Mat,sch_desc_everyHour:Oat,sch_desc_everyMinute:$at,sch_desc_everyMonth:Aat,sch_desc_everyNDay:Pat,sch_desc_everyNHours:Iat,sch_desc_everyNMinutes:Rat,sch_desc_everyNMonths:Lat,sch_desc_everyNWeeks:Nat,sch_desc_everyNYears:Fat,sch_desc_everyWeek:zat,sch_desc_everyYear:Bat,sch_desc_intervalFromTo:jat,sch_desc_never:Wat,sch_desc_onDate:Hat,sch_desc_onDates:Uat,sch_desc_onEveryDate:Yat,sch_desc_onMonth:Vat,sch_desc_onMonths:Gat,sch_desc_onWeekday:qat,sch_desc_onWeekdays:Xat,sch_desc_onWeekends:Jat,sch_desc_onWorkdays:Zat,sch_desc_onceInPast:Kat,sch_desc_once_on:Qat,sch_desc_validFrom:eit,sch_desc_validFromTo:tit,sch_desc_validTo:rit,sch_every:nit,sch_exactTime:ait,sch_from:iit,sch_fromTo:oit,sch_intervalTime:sit,sch_invert:lit,sch_no_one:cit,sch_on:uit,sch_period:dit,sch_periodDaily:fit,sch_periodDates:hit,sch_periodDay:pit,sch_periodEvery:mit,sch_periodEveryDay:vit,sch_periodEveryMonth:git,sch_periodEveryWeek:_it,sch_periodEveryYear:yit,sch_periodHours:bit,sch_periodMinutes:wit,sch_periodMonth:Sit,sch_periodMonthly:xit,sch_periodOnce:Cit,sch_periodSpecificMonths:Tit,sch_periodWeek:kit,sch_periodWeekdays:Eit,sch_periodWeekend:Dit,sch_periodWeekly:Mit,sch_periodWorkdays:Oit,sch_periodYear:$it,sch_periodYearly:Ait,sch_specificTime:Pit,sch_time:Iit,sch_to:Rit,sch_valid:Lit,sch_validFrom:Nit,sch_validTo:Fit,sch_wholeDay:zit,sch_yearEveryMonth:Bit},Wit="Dodać",Hit="Anuluj",Uit="Kategorie",Yit="Sprawdzony",Vit="Kasować",Git="Blisko",qit="Handlowy",Xit="Konfiguruj",Jit="Połączony",Zit="Skopiowano",Kit="Stwórz",Qit="Przyciąć",eot="Delete",tot="Usunąć",rot="Wyrzucać",not="Niepowiązany",aot="Błąd",iot="Filtr",oot="Piątek",sot="Szerokość",lot="Długość geograficzna",cot="Wiadomość",uot="Poniedziałek",dot="Nazwa",fot="Obiekty",hot="Dobrze",pot="Produkt",mot="Powtarzać",vot="Zastępować",got="Korzeń",_ot="Sobota",yot="Zapisać",bot="Wybrany",wot="Stany",Sot="Niedziela",xot="Czwartek",Cot="Znak czasu",Tot="Wtorek",kot="Aktualizacja",Eot="Obowiązuje do",Dot="Wartość",Mot="Wersja",Oot="Środa",$ot="Szerokość",Aot="Tak",Pot="różne",Iot="Każdy może czytać obiekt",Rot="Każdy może czytać stan",Lot="Każdy może pisać przedmiot",Not="Każdy może pisać stan",Fot="Grupa może odczytać obiekt",zot="Grupa może odczytać stan",Bot="Grupa może pisać obiekt",jot="Grupa może pisać stan",Wot="Właściciel może czytać obiekt",Hot="Właściciel może odczytać stan",Uot="Właściciel może napisać obiekt",Yot="Właściciel może pisać stan",Vot="guziki",Got="Zmieniony z",qot="blisko",Xot="Utwórz stan logiczny",Jot="Utwórz kanał",Zot="Utwórz urządzenie",Kot="Utwórz stan liczbowy",Qot="Utwórz stan",est="Utwórz stan ciągu",tst="d.",rst="Ks",nst="Mo",ast="Sa",ist="Su",ost="Th",sst="Tu",lst="My",cst="Tryb ekspercki",ust="Wszystkie pliki",dst="Audio",fst="Kod/JSON",hst="Obrazy",pst="Tekst",mst="Wideo",vst="Ustawienia",gst="bez",_st="Funkcjonować",yst="ID",bst="Imię",wst="Rola",Sst="Sala",xst="Rodzaj",Cst="Nieprawidłowe ustawienia",Tst="Ostatnia zmiana",kst="lokalnie",Est="kwiecień",Dst="sierpień",Mst="grudzień",Ost="luty",$st="styczeń",Ast="lipiec",Pst="czerwiec",Ist="Mai",Rst="Zniszczyć",Lst="listopad",Nst="październik",Fst="wrzesień",zst="kwiecień",Bst="sierpień",jst="grudzień",Wst="luty",Hst="styczeń",Ust="lipiec",Yst="czerwiec",Vst="Mai",Gst="Zniszczyć",qst="listopad",Xst="październik",Jst="wrzesień",Zst="Żaden",Kst="Obiekt zmieniony przez",Qst="Obiekt ostatnio zmieniony o godz",elt="Ustawienia z innego adaptera %s",tlt="Kod jakości",rlt="powtarzać",nlt="Aby wybrać folder, wystarczy przytrzymać klawisz „shift”, klikając folder.",alt="Stan zmieniony przez",ilt="Obiekt zmieniony z",olt="Znak czasu",slt="Potwierdzon",llt="Komentarz",clt="Skopiuj wartość stanu",ult="Własne ustawienia",dlt="Usuń obiekt",flt="Edytuj obiekt",hlt="Edytuj wartość stanu",plt="Z",mlt="Ostatnia zmiana",vlt="Jakość",glt="Znak czasu",_lt="Użytkownik",ylt="Wartość",blt="Wartość",wlt="Ostrzeżenie: Zadanie CRON będzie uruchamiane co minutę w określonym przedziale czasowym!",Slt="Ostrzeżenie: Zadanie CRON będzie uruchamiane co sekundę w określonym przedziale czasowym!",xlt="CRON",Clt="Data",Tlt="Daktyle",klt="Dzień",Elt="Dzień tygodnia",Dlt="Każdy",Mlt="co N dni",Olt="w każdy N-ty dzień tygodnia",$lt="co N dnia tygodnia",Alt="co N godzin",Plt="co N minut",Ilt="co N miesięcy",Rlt="co N sekund",Llt="codziennie",Nlt="każdy dzień tygodnia",Flt="każdy dzień tygodnia",zlt="co godzinę",Blt="każda minuta",jlt="każdego miesiąca",Wlt="każda sekunda",Hlt="Od",Ult="godziny",Ylt="Interwał",Vlt="Interwał między",Glt="Nieprawidłowy CRON",qlt="Minuty",Xlt="miesięcy",Jlt="Pewnego razu",Zlt="Kropka",Klt="sekundy",Qlt="Prosty",ect="Określony czas",tct="konkretne daty",rct="określone dni tygodnia",nct="określony dzień tygodni",act="określone godziny",ict="określone minuty",oct="określone miesiące",sct="określone sekundy",lct="Czas",cct="Do",uct="Czarodziej",dct="wszystko",fct="Dzień Astro",hct="Noc Astro",pct="Świt",mct="Zmierzch",vct="złota godzina",gct="Koniec złotej godziny",_ct="Nadir",yct="Morski świt",bct="Morski zmierzch",wct="Noc",Sct="Koniec nocy",xct="Południe słoneczne",Cct="wschód słońca",Tct="Koniec wschodu słońca",kct="Zachód słońca",Ect="Początek zachodu słońca",Dct="w",Mct="na %s",Oct="codziennie",$ct="co godzinę",Act="każda minuta",Pct="każdego miesiąca",Ict="każdego dnia %s",Rct="co %s godzin",Lct="co %s minut",Nct="co %s miesięcy",Fct="co %s tygodni",zct="co %s lat",Bct="co tydzień",jct="każdego roku",Wct="od %s do %s",Hct="nigdy",Uct="na %s z %s",Yct="na %s i %s z",Vct="w każdą datę",Gct="%s",qct="%s i %s",Xct="na %s",Jct="na %s i %s",Zct="w weekendy",Kct="w dni robocze",Qct="nie będzie już wykonywany, ponieważ start jest w przeszłości",eut="na %s",tut="z %s",rut="Wykonaj od do",nut="do %s",aut="każdy",iut="Określony czas",out="od",sut="Od-do",lut="Czas przerwy",cut="odwracać",uut="Żaden",dut="na",fut="Kropka",hut="Codziennie",put="Daktyle",mut="Dzień",vut="Każdy",gut="Codziennie",_ut="Każdego miesiąca",yut="Co tydzień",but="Każdego roku",wut="godziny",Sut="Minuty",xut="miesiąc",Cut="Miesięczny",Tut="Pewnego razu",kut="Określone miesiące",Eut="Tydzień",Dut="Dni powszednie",Mut="Weekend",Out="Co tydzień",$ut="Dni robocze",Aut="Rok",Put="Rocznie",Iut="Określony czas",Rut="Czas",Lut="do",Nut="Ważny",Fut="od",zut="do",But="Cały dzień",jut="każdego miesiąca",Wut={"ra_%s links from aliases":"%s linków z aliasów","ra_%s object(s) processed":"Przetworzono %s obiektów","ra_%s was imported":"%s został zaimportowany","ra_Accept license":"Zaakceptuj licencję","ra_Add new child object to selected parent":"Dodaj nowy obiekt potomny do wybranego rodzica","ra_Add objects tree from JSON file":"Dodaj drzewo obiektów z pliku JSON","ra_Add row":"Dodaj wiersz","ra_Advanced options":"Zaawansowane opcje","ra_All items are filtered out":"Wszystkie pozycje są odfiltrowane","ra_All objects":"Wszystkie obiekty",ra_Append:Wit,"ra_Append %s entries or replace existing?":"Dołączyć wpisy %s czy zastąpić istniejące?","ra_Append or replace?":"Dołączyć czy zastąpić?","ra_Are you sure?":"Jesteś pewny?","ra_Auto (no custom columns)":"Auto (bez kolumn niestandardowych)","ra_Back to %s":"Powrót do %s","ra_Background image":"Zdjęcie w tle",ra_Cancel:Hit,"ra_Cannot add items with set filter":"Nie można dodać elementów z ustawionym filtrem","ra_Cannot decode license":"Nie można zdekodować licencji","ra_Cannot determine position: System settings are empty and GPS detection is disabled in browser":"Nie można określić pozycji: ustawienia systemu są puste, a wykrywanie GPS jest wyłączone w przeglądarce",'ra_Cannot find "%s"':"Nie można znaleźć „%s”",'ra_Cannot read "%s"':"Nie można odczytać „%s”","ra_Cannot read licenses: %s":"Nie można odczytać licencji: %s","ra_Cannot retrieve options, as instance is offline":"Nie można pobrać opcji, ponieważ instancja jest w trybie offline","ra_Cannot update attribute, because not found in the object":"Nie można zaktualizować atrybutu, ponieważ nie znaleziono go w obiekcie","ra_Cannot upload":"Nie można przesłać",ra_Categories:Uit,"ra_Chained certificate":"Certyfikat łańcuchowy","ra_Change color theme":"Zmień motyw kolorystyczny","ra_Changed from":"Zmieniony z","ra_Channel → State":"Kanał → Stan","ra_Check license":"Sprawdź licencję",ra_Checked:Yit,ra_Clear:Vit,"ra_Clear filter":"Czysty filtr","ra_Clear icon":"Wyczyść ikonę","ra_Clone current row":"Sklonuj bieżący wiersz",ra_Close:Git,"ra_Collapse all nodes":"Zwiń wszystkie węzły","ra_Collapse one step node":"Zwiń o jeden poziom",ra_Commercial:qit,ra_Configure:Xit,"ra_Configure visible columns":"Skonfiguruj widoczne kolumny","ra_Confirm deletion of %s":"Potwierdź usunięcie %s",ra_Connected:Jit,ra_Copied:Zit,"ra_Copied %s":'Skopiowano "%s"',"ra_Copy content":"Kopiuj zawartość",ra_Create:Kit,"ra_Create alias":"Utwórz alias","ra_Create folder":"Utwórz folder","ra_Create new folder in %s":"Utwórz nowy folder w %s",ra_Crop:Qit,"ra_Define CRON...":"Zdefiniuj CRON...","ra_Define functions":"Zdefiniuj funkcje","ra_Define rooms":"Zdefiniuj pokoje","ra_Define schedule":"Zdefiniuj harmonogram","ra_Define schedule...":"Zdefiniuj harmonogram ...",ra_Del:eot,ra_Delete:tot,"ra_Delete (no confirm for 5 mins)":"Usuń (bez potwierdzenia przez 5 minut)","ra_Delete current row":"Usuń bieżący wiersz","ra_Deselect all":"Odznacz wszystko","ra_Device → Channel → State":"Urządzenie → Kanał → Stan",ra_Discard:rot,ra_Disconnected:not,"ra_Do not export values of states":"Nie eksportuj wartości stanów","ra_Do not use let's encrypt":"Nie używaj zaszyfrujmy","ra_Double click to reset table layout":"Kliknij dwukrotnie, aby zresetować układ tabeli","ra_Drag 'n' drop some files here, or click to select files":"Przeciągnij i upuść kilka plików tutaj lub kliknij, aby wybrać pliki","ra_Drop file here":"Upuść plik tutaj","ra_Drop the files here...":"Upuść plik tutaj...","ra_Duplicate name":"Zduplikowana nazwa","ra_Edit ACL":"Edytuj listy ACL","ra_Edit alias":"Edytuj alias","ra_Edit custom config":"Edytuj konfigurację niestandardową","ra_Edit function":"Funkcja edycji","ra_Edit object field":"Edytuj pole obiektu","ra_Edit role":"Edytuj rolę","ra_Edit room":"Edytuj pokój","ra_Edit value":"Edytuj wartość",ra_Error:aot,"ra_Expand all nodes":"Rozwiń wszystkie węzły","ra_Expand one step node":"Rozwiń o jeden poziom","ra_Export data to %s file":"Eksportuj dane do pliku %s","ra_Failed to open JSON File":"Nie udało się otworzyć pliku JSON","ra_Fallback custom certificates":"Niestandardowe certyfikaty zastępcze","ra_File is too big. Max %sk allowed. Try use SVG.":"Plik jest za duży. Maksymalna dozwolona liczba %sk. Spróbuj użyć SVG.",ra_Filter:iot,"ra_Filter files":"Filtruj pliki","ra_Folder name":"Nazwa folderu","ra_Folder → Channel → State":"Folder → Kanał → Stan","ra_Folder → Device → Channel → State":"Folder → Urządzenie → Kanał → Stan","ra_Folder → State":"Folder → Stan","ra_Folders always first":"Foldery zawsze na pierwszym miejscu",ra_Friday:oot,"ra_Good luck":"Powodzenia","ra_Hide empty folders":"Ukryj puste foldery","ra_If no file will be created in the folder, it will disappear after the browser closed":"Jeśli w folderze nie zostanie utworzony żaden plik, zniknie on po zamknięciu przeglądarki","ra_Import data from %s file":"Importuj dane z pliku %s","ra_Import from %s":"Importuj z %s","ra_Instance %s is alive":"Instancja %s jest aktywna","ra_Instance %s is not alive":"Instancja TEKST nie jest aktywna","ra_Instance is not alive":"Instancja nie jest aktywna","ra_Invalid CRON":"Nieprawidłowy CRON","ra_Invalid JSON":"Nieprawidłowy JSON","ra_Invalid answer from server":"Nieprawidłowa odpowiedź z serwera","ra_Invalid parent folder!":"Nieprawidłowy folder nadrzędny!","ra_Invalid structure":"Nieprawidłowa struktura","ra_JSON editor":"Edytor JSON","ra_Last change":"Ostatnia zmiana",ra_Latitude:sot,"ra_License %s":"Licencja %s","ra_License agreement":"Umowa licencyjna","ra_License does not exist":"Licencja nie istnieje","ra_License expired on %s":"Licencja wygasła w dniu %s",'ra_License for other product "%s"':"Licencja na inny produkt „%s”","ra_License is for version %s, but required version is %s.":"Licencja dotyczy wersji %s, ale wymagana wersja to %s.","ra_License must be converted":"Licencja musi zostać przekonwertowana na nowszą wersję. Możesz to zrobić w swoim profilu iobroker.net.","ra_License not found in license manager. Do you want to read licenses from iobroker.net?":"Nie znaleziono licencji w menedżerze licencji. Chcesz zaktualizować licencje z iobroker.net?","ra_Listen on all IPs":"Słuchaj na wszystkich adresach IP","ra_Load configuration from file":"Załaduj konfigurację z pliku",ra_Longitude:lot,'ra_May not trigger "updateLicenses"':"Może nie uruchamiać „updateLicenses”",ra_Message:cot,ra_Monday:uot,"ra_Move down":"Padnij","ra_Move up":"Podnieść",ra_Name:dot,"ra_No data found in file":"Nie znaleziono danych w pliku","ra_No one license found in license manager":"Nie znaleziono licencji w menedżerze licencji","ra_No response from the backend":"Brak odpowiedzi z zaplecza",'ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".':"Osoby nie będące ekspertami mogą tworzyć nowe obiekty tylko w „0_userdata.0” lub „alias.0”.","ra_Not a number":"Nie numer",ra_Objects:fot,ra_Ok:hot,"ra_On weekdays":"W dni powszednie","ra_Only following structures of objects are available:":"Dostępne są tylko następujące struktury obiektów:","ra_Only selected":"Tylko wybrane","ra_Owner group":"Grupa właścicieli","ra_Owner user":"Właściciel użytkownika","ra_Passwords are not equal!":"Hasła nie są równe!","ra_Place your files here or click here to open the browse dialog":"Umieść swoje pliki tutaj lub kliknij tutaj, aby otworzyć okno dialogowe przeglądania","ra_Please confirm":"Proszę potwierdzić","ra_Please create license":"Utwórz licencję","ra_Please enter the license":"Proszę wprowadzić licencję","ra_Please select file...":"Wybierz plik...","ra_Please select object ID...":"Wybierz identyfikator obiektu ...","ra_Port could be used by %s":"Port może być używany przez %s","ra_Port is already used by %s":"Port jest już używany przez %s","ra_Private certificate":"Prywatny certyfikat",ra_Product:pot,"ra_Public certificate":"Certyfikat publiczny","ra_Quality code":"Jakości","ra_Refresh tree":"Odśwież drzewo","ra_Reload files":"Załaduj ponownie pliki",ra_Repeat:mot,ra_Replace:vot,"ra_Request timed out":"Upłynął limit czasu żądania","ra_Restrict to folder":"Ogranicz do folderu",ra_Root:got,ra_Saturday:_ot,ra_Save:yot,"ra_Save and close":"Zapisz i zamknij","ra_Save configuration to file":"Zapisz konfigurację do pliku","ra_Save objects tree as JSON file":"Zapisz drzewo obiektów jako plik JSON","ra_Select all":"Zaznacz wszystko","ra_Select color":"Wybierz kolor","ra_Select predefined icon":"Wybierz predefiniowaną ikonę","ra_Select type of export":"Wybierz rodzaj eksportu",ra_Selected:bot,"ra_Selected %s object(s)":"Wybrane obiekty %s","ra_Serial number (UUID)":"Numer seryjny (UUID)",'ra_Serial number (UUID) "%s" in license is for other device.':"Numer seryjny (UUID) „%s” w licencji dotyczy innego urządzenia.","ra_Show all folders":"Pokaż wszystkie foldery","ra_Show lines between rows":"Pokaż linie między rzędami","ra_Show/Hide object descriptions":"Pokaż/ukryj opisy obiektów","ra_Show/hide filter input":"Pokaż/ukryj wejście filtra","ra_Some data are not stored. Discard?":"Niektóre dane nie są przechowywane. Wyrzucać?",ra_States:wot,"ra_Suitable license not found in license manager":"Nie znaleziono odpowiedniej licencji w menedżerze licencji",ra_Sunday:Sot,"ra_Suppress question for next %s minutes":"Ukryj pytanie przez następne %s minut","ra_System language":"Język systemu","ra_Take browser position":"Zajmij pozycję z przeglądarki","ra_Take position from system settings":"Zajmij pozycję z ustawień systemowych",'ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").':"Eksperci mogą tworzyć obiekty wszędzie poza drugim poziomem (np. „Vis.0” lub „javascript.0”).","ra_The page you are looking for was not found":"Strona, której szukasz nie została znaleziona","ra_The schedule will be executed every minute. Are you sure?":"Harmonogram będzie wykonywany co minutę. Czy jesteś pewien?","ra_The schedule will be executed every second. Are you sure?":"Harmonogram będzie wykonywany co sekundę. Czy jesteś pewien?",ra_Thursday:xot,ra_Timestamp:Cot,"ra_Toggle expert mode":"Przełącz tryb eksperta","ra_Toggle the states view":"Przełącz widok stanów","ra_Toggle view mode":"Przełącz tryb widoku","ra_Too big":"Za duży","ra_Too small":"Za mały","ra_Transparent dialog":"Przejrzyste okno dialogowe",ra_Tuesday:Tot,"ra_Unknown error":"Nieznany błąd","ra_Unknown error!":"Nieznany błąd!",ra_Update:kot,"ra_Upload file":"Przesyłanie pliku","ra_Use all available let's encrypt certificates":"Użyj wszystkich dostępnych certyfikatów Let's Encrypt","ra_Use iobroker.acme adapter for letsencrypt certificates":"Użyj adaptera iobroker.acme dla certyfikatów letsencrypt","ra_Use system settings for position":"Użyj ustawień systemowych dla pozycji","ra_Used system settings":"Używane ustawienia systemowe","ra_User files":"Pliki użytkownika",ra_ValidTill:Eot,ra_Value:Dot,ra_Version:Mot,"ra_View file":"Zobaczyć plik","ra_View: %s":"Widok: %s",ra_Wednesday:Oot,ra_Width:$ot,ra_Yes:Aot,"ra_You can export all objects or just the selected branch.":"Możesz wyeksportować wszystkie obiekty lub tylko wybraną gałąź.","ra_You can filter entries by entering here some text":"Możesz filtrować wpisy, wpisując tutaj jakiś tekst",ra___different__:Pot,ra_aclEveryone_read_object:Iot,ra_aclEveryone_read_state:Rot,ra_aclEveryone_write_object:Lot,ra_aclEveryone_write_state:Not,ra_aclGroup_read_object:Fot,ra_aclGroup_read_state:zot,ra_aclGroup_write_object:Bot,ra_aclGroup_write_state:jot,ra_aclOwner_read_object:Wot,ra_aclOwner_read_state:Hot,ra_aclOwner_write_object:Uot,ra_aclOwner_write_state:Yot,ra_buttons:Vot,ra_changedFrom:Got,ra_close:qot,ra_create_boolean_state:Xot,ra_create_channel:Jot,ra_create_device:Zot,ra_create_number_state:Kot,ra_create_state:Qot,ra_create_string_state:est,ra_daysShortText:tst,ra_dow_Fr:rst,ra_dow_Mo:nst,ra_dow_Sa:ast,ra_dow_Su:ist,ra_dow_Th:ost,ra_dow_Tu:sst,ra_dow_We:lst,ra_expertMode:cst,ra_fileType_all:ust,ra_fileType_audio:dst,ra_fileType_code:fst,ra_fileType_images:hst,ra_fileType_txt:pst,ra_fileType_video:mst,"ra_fileType_video,":"Wideo",ra_filter_customs:vst,ra_filter_customs_without:gst,ra_filter_func:_st,ra_filter_id:yst,ra_filter_name:bst,ra_filter_role:wst,ra_filter_room:Sst,ra_filter_type:xst,"ra_import data from %s file":"Importuj dane z pliku %s",ra_invalidConfig:Cst,ra_lastChange:Tst,ra_locally:kst,ra_month_Apr:Est,ra_month_Aug:Dst,ra_month_Dec:Mst,ra_month_Feb:Ost,ra_month_Jan:$st,ra_month_Jul:Ast,ra_month_Jun:Pst,ra_month_Mai:Ist,ra_month_Mar:Rst,ra_month_Nov:Lst,ra_month_Oct:Nst,ra_month_Sep:Fst,ra_months_Apr:zst,ra_months_Aug:Bst,ra_months_Dec:jst,ra_months_Feb:Wst,ra_months_Jan:Hst,ra_months_Jul:Ust,ra_months_Jun:Yst,ra_months_Mai:Vst,ra_months_Mar:Gst,ra_months_Nov:qst,ra_months_Oct:Xst,ra_months_Sep:Jst,ra_none:Zst,ra_object_changed_by:Kst,ra_object_changed_by_user:Qst,ra_otherConfig:elt,ra_qualityCode:tlt,ra_repeat:rlt,ra_select_folder_hint:nlt,ra_state_changed_by:alt,ra_state_changed_from:ilt,ra_timestamp:olt,ra_tooltip_ack:slt,ra_tooltip_comment:llt,ra_tooltip_copyState:clt,ra_tooltip_customConfig:ult,ra_tooltip_deleteObject:dlt,ra_tooltip_editObject:flt,ra_tooltip_editState:hlt,ra_tooltip_from:plt,ra_tooltip_lc:mlt,ra_tooltip_quality:vlt,ra_tooltip_ts:glt,ra_tooltip_user:_lt,ra_tooltip_value:ylt,"ra_use seconds":"użyj sekund",ra_val:blt,"ra_via internet":"przez internet",ra_warning_every_minute:wlt,ra_warning_every_second:Slt,sc_cron:xlt,sc_date:Clt,sc_dates:Tlt,sc_dow:klt,sc_dows:Elt,sc_every:Dlt,sc_everyN_dates:Mlt,sc_everyN_dow:Olt,sc_everyN_dows:$lt,sc_everyN_hours:Alt,sc_everyN_minutes:Plt,sc_everyN_months:Ilt,sc_everyN_seconds:Rlt,sc_every_dates:Llt,sc_every_dow:Nlt,sc_every_dows:Flt,sc_every_hours:zlt,sc_every_minutes:Blt,sc_every_months:jlt,sc_every_seconds:Wlt,sc_from:Hlt,sc_hours:Ult,sc_interval:Ylt,sc_intervalBetween:Vlt,sc_invalid_cron:Glt,sc_minutes:qlt,sc_months:Xlt,sc_once:Jlt,sc_period:Zlt,sc_seconds:Klt,sc_simple:Qlt,sc_specific:ect,sc_specific_dates:tct,sc_specific_dow:rct,sc_specific_dows:nct,sc_specific_hours:act,sc_specific_minutes:ict,sc_specific_months:oct,sc_specific_seconds:sct,sc_time:lct,sc_to:cct,sc_wizard:uct,sch_all:dct,sch_astroDay:fct,sch_astroNight:hct,sch_astro_dawn:pct,sch_astro_dusk:mct,sch_astro_goldenHour:vct,sch_astro_goldenHourEnd:gct,sch_astro_nadir:_ct,sch_astro_nauticalDawn:yct,sch_astro_nauticalDusk:bct,sch_astro_night:wct,sch_astro_nightEnd:Sct,sch_astro_solarNoon:xct,sch_astro_sunrise:Cct,sch_astro_sunriseEnd:Tct,sch_astro_sunset:kct,sch_astro_sunsetStart:Ect,sch_at:Dct,sch_desc_atTime:Mct,sch_desc_everyDay:Oct,sch_desc_everyHour:$ct,sch_desc_everyMinute:Act,sch_desc_everyMonth:Pct,sch_desc_everyNDay:Ict,sch_desc_everyNHours:Rct,sch_desc_everyNMinutes:Lct,sch_desc_everyNMonths:Nct,sch_desc_everyNWeeks:Fct,sch_desc_everyNYears:zct,sch_desc_everyWeek:Bct,sch_desc_everyYear:jct,sch_desc_intervalFromTo:Wct,sch_desc_never:Hct,sch_desc_onDate:Uct,sch_desc_onDates:Yct,sch_desc_onEveryDate:Vct,sch_desc_onMonth:Gct,sch_desc_onMonths:qct,sch_desc_onWeekday:Xct,sch_desc_onWeekdays:Jct,sch_desc_onWeekends:Zct,sch_desc_onWorkdays:Kct,sch_desc_onceInPast:Qct,sch_desc_once_on:eut,sch_desc_validFrom:tut,sch_desc_validFromTo:rut,sch_desc_validTo:nut,sch_every:aut,sch_exactTime:iut,sch_from:out,sch_fromTo:sut,sch_intervalTime:lut,sch_invert:cut,sch_no_one:uut,sch_on:dut,sch_period:fut,sch_periodDaily:hut,sch_periodDates:put,sch_periodDay:mut,sch_periodEvery:vut,sch_periodEveryDay:gut,sch_periodEveryMonth:_ut,sch_periodEveryWeek:yut,sch_periodEveryYear:but,sch_periodHours:wut,sch_periodMinutes:Sut,sch_periodMonth:xut,sch_periodMonthly:Cut,sch_periodOnce:Tut,sch_periodSpecificMonths:kut,sch_periodWeek:Eut,sch_periodWeekdays:Dut,sch_periodWeekend:Mut,sch_periodWeekly:Out,sch_periodWorkdays:$ut,sch_periodYear:Aut,sch_periodYearly:Put,sch_specificTime:Iut,sch_time:Rut,sch_to:Lut,sch_valid:Nut,sch_validFrom:Fut,sch_validTo:zut,sch_wholeDay:But,sch_yearEveryMonth:jut},Hut="Додайте",Uut="Скасувати",Yut="Категорії",Vut="Перевірено",Gut="Видалити",qut="Закрити",Xut="Комерційний",Jut="Налаштувати",Zut="Підключено",Kut="Скопійовано",Qut="Створити",edt="Урожай",tdt="Delete",rdt="Видалити",ndt="Відкинути",adt="Відключено",idt="Помилка",odt="фільтр",sdt="П'ятниця",ldt="Широта",cdt="Довгота",udt="повідомлення",ddt="понеділок",fdt="Ім'я",hdt="Об'єкти",pdt="В порядку",mdt="Продукт",vdt="Повторіть",gdt="Замінити",_dt="Корінь",ydt="Субота",bdt="зберегти",wdt="Вибране",Sdt="держави",xdt="неділя",Cdt="четвер",Tdt="Мітка часу",kdt="вівторок",Edt="оновлення",Ddt="Дійсний до",Mdt="Значення",Odt="Версія",$dt="Середа",Adt="Ширина",Pdt="Так",Idt="інший",Rdt="Кожен може читати об'єкт",Ldt="Кожен може читати стан",Ndt="Кожен може написати об'єкт",Fdt="Кожен може написати стан",zdt="Група може читати об'єкт",Bdt="Група може читати стан",jdt="Група може писати об'єкт",Wdt="Група може писати стан",Hdt="Власник може читати об'єкт",Udt="Власник може читати стан",Ydt="Власник може написати об'єкт",Vdt="Власник може написати стан",Gdt="кнопки",qdt="Змінено з",Xdt="закрити",Jdt="Створіть логічний стан",Zdt="Створити канал",Kdt="Створити пристрій",Qdt="Створити номерний стан",eft="Створити состояние",tft="Створити рядковий стан",rft="днів",nft="О",aft="пн",ift="Sa",oft="Нд",sft="чт",lft="вт",cft="ми",uft="Експертний режим",dft="Всі файли",fft="Аудіо",hft="Код/JSON",pft="Зображення",mft="текст",vft="відео",gft="Налаштування",_ft="без",yft="функція",bft="ID",wft="Ім'я",Sft="Роль",xft="Кімната",Cft="Тип",Tft="Недійсні налаштування",kft="Остання зміна",Eft="локально",Dft="квіт",Mft="серп",Oft="груд",$ft="лютий",Aft="січня",Pft="лип",Ift="черв",Rft="травень",Lft="березень",Nft="Листопад",Fft="жовт",zft="вер",Bft="квіт",jft="серп",Wft="груд",Hft="лютий",Uft="січня",Yft="лип",Vft="черв",Gft="травень",qft="березень",Xft="Листопад",Jft="жовт",Zft="вер",Kft="немає",Qft="Об'єкт змінено",eht="Об'єкт востаннє змінено о",tht="Налаштування з іншого адаптера %s",rht="Код якості",nht="повторити",aht="Щоб вибрати папку, просто клацніть папку, утримуючи клавішу «Shift».",iht="Стан змінено на",oht="Об'єкт змінено з",sht="Мітка часу",lht="Визнано",cht="коментар",uht="Скопіюйте значення стану",dht="Спеціальні налаштування",fht="Видалити об'єкт",hht="Редагувати об'єкт",pht="Відредагуйте значення стану",mht="Від",vht="Востаннє змінено",ght="якість",_ht="Позначка часу",yht="Користувач",bht="Значення",wht="Значення",Sht="Попередження: завдання CRON виконуватиметься щохвилини протягом зазначеного періоду!",xht="Попередження: завдання CRON виконуватиметься кожну секунду протягом зазначеного періоду!",Cht="CRON",Tht="Дата",kht="дати",Eht="День",Dht="День тижня",Mht="кожен",Oht="кожні N днів",$ht="кожен N-й день тижня",Aht="кожні N днів тижня",Pht="кожні N годин",Iht="кожні N хвилин",Rht="кожні N місяців",Lht="кожні N секунд",Nht="кожен день",Fht="кожен день тижня",zht="кожен день тижня",Bht="щогодини",jht="кожну хвилину",Wht="щомісяця",Hht="кожна секунда",Uht="Від",Yht="години",Vht="Інтервал",Ght="Інтервал між",qht="Недійсний CRON",Xht="хвилин",Jht="місяців",Zht="Один раз",Kht="Крапка",Qht="секунд",ept="просто",tpt="Конкретний час",rpt="конкретні дати",npt="конкретний день (дні) тижня",apt="конкретний день тижня",ipt="конкретні години",opt="конкретні хвилини",spt="конкретні місяці",lpt="конкретні секунди",cpt="час",upt="до",dpt="майстер",fpt="все",hpt="Астродень",ppt="Астро ніч",mpt="Світанок",vpt="Сутінки",gpt="Золота година",_pt="Кінець золотої години",ypt="Надір",bpt="Морський світанок",wpt="Морські сутінки",Spt="ніч",xpt="Кінець ночі",Cpt="Сонячний полудень",Tpt="Схід сонця",kpt="Кінець сходу сонця",Ept="Захід сонця",Dpt="Початок заходу сонця",Mpt="в",Opt="в %s",$pt="кожен день",Apt="щогодини",Ppt="кожну хвилину",Ipt="щомісяця",Rpt="кожен %s день",Lpt="кожні %s годин",Npt="кожні %s хвилин",Fpt="кожні %s місяців",zpt="кожні %s тижнів",Bpt="кожні %s років",jpt="щотижня",Wpt="щороку",Hpt="від %s до %s",Upt="ніколи",Ypt="на %s з %s",Vpt="на %s і %s з",Gpt="на кожну дату",qpt="%s",Xpt="%s і %s",Jpt="на %s",Zpt="на %s і %s",Kpt="на вихідних",Qpt="в робочі дні",emt="більше не виконуватиметься, оскільки запуск у минулому",tmt="на %s",rmt="від %s",nmt="Виконати від до",amt="до %s",imt="кожен",omt="Конкретний час",smt="від",lmt="Від до",cmt="Час інтервалу",umt="інвертувати",dmt="немає",fmt="на",hmt="Крапка",pmt="Щодня",mmt="дати",vmt="День",gmt="кожен",_mt="Кожен день",ymt="Щомісяця",bmt="Щотижня",wmt="Щороку",Smt="години",xmt="хвилин",Cmt="місяць",Tmt="Щомісяця",kmt="Один раз",Emt="Конкретні місяці",Dmt="тиждень",Mmt="будні",Omt="Вихідні",$mt="Щотижня",Amt="робочі дні",Pmt="рік",Imt="щорічно",Rmt="Конкретний час",Lmt="час",Nmt="до",Fmt="Дійсний",zmt="від",Bmt="до",jmt="Цілий день",Wmt="щомісяця",Hmt={"ra_%s links from aliases":"%s посилань із псевдонімів","ra_%s object(s) processed":"Оброблено %s об’єктів","ra_%s was imported":"%s було імпортовано","ra_Accept license":"Прийняти ліцензію","ra_Add new child object to selected parent":"Додати новий дочірній об’єкт до вибраного батьківського","ra_Add objects tree from JSON file":"Додайте дерево об’єктів із файлу JSON","ra_Add row":"Додати рядок","ra_Advanced options":"Розширені опції","ra_All items are filtered out":"Усі елементи відфільтровано","ra_All objects":"Всі об'єкти",ra_Append:Hut,"ra_Append %s entries or replace existing?":"Додати %s записів чи замінити наявні?","ra_Append or replace?":"Додати чи замінити?","ra_Are you sure?":"Ти впевнений?","ra_Auto (no custom columns)":"Автоматично (без спеціальних стовпців)","ra_Back to %s":"Назад до %s","ra_Background image":"Фонове зображення",ra_Cancel:Uut,"ra_Cannot add items with set filter":"Неможливо додати елементи зі встановленим фільтром","ra_Cannot decode license":"Неможливо розшифрувати ліцензію","ra_Cannot determine position: System settings are empty and GPS detection is disabled in browser":"Неможливо визначити положення: системні налаштування порожні, а визначення GPS вимкнено в браузері",'ra_Cannot find "%s"':'Не вдається знайти "%s"','ra_Cannot read "%s"':'Неможливо прочитати "%s"',"ra_Cannot read licenses: %s":"Неможливо прочитати ліцензії: %s","ra_Cannot retrieve options, as instance is offline":"Неможливо отримати параметри, оскільки екземпляр офлайн","ra_Cannot update attribute, because not found in the object":"Неможливо оновити атрибут, оскільки його не знайдено в об’єкті","ra_Cannot upload":"Неможливо завантажити",ra_Categories:Yut,"ra_Chained certificate":"Прикутий сертифікат","ra_Change color theme":"Змінити кольорову тему","ra_Changed from":"Змінено з","ra_Channel → State":"Канал → Стан","ra_Check license":"Перевірити ліцензію",ra_Checked:Vut,ra_Clear:Gut,"ra_Clear filter":"Очистити фільтр","ra_Clear icon":"Очистити значок","ra_Clone current row":"Клонувати поточний рядок",ra_Close:qut,"ra_Collapse all nodes":"Згорнути всі вузли","ra_Collapse one step node":"Згорнути на один рівень",ra_Commercial:Xut,ra_Configure:Jut,"ra_Configure visible columns":"Налаштувати видимі стовпці","ra_Confirm deletion of %s":"Підтвердити видалення %s",ra_Connected:Zut,ra_Copied:Kut,"ra_Copied %s":'Скопійовано "%s"',"ra_Copy content":"Скопіюйте вміст",ra_Create:Qut,"ra_Create alias":"Створити псевдонім","ra_Create folder":"Створити папку","ra_Create new folder in %s":"Створіть нову папку в %s",ra_Crop:edt,"ra_Define CRON...":"Визначити CRON...","ra_Define functions":"Визначити функції","ra_Define rooms":"Визначте кімнати","ra_Define schedule":"Визначити розклад","ra_Define schedule...":"Визначити розклад...",ra_Del:tdt,ra_Delete:rdt,"ra_Delete (no confirm for 5 mins)":"Видалити (без підтвердження протягом 5 хвилин)","ra_Delete current row":"Видалити поточний рядок","ra_Deselect all":"Скасувати вибір усіх","ra_Device → Channel → State":"Пристрій → Канал → Стан",ra_Discard:ndt,ra_Disconnected:adt,"ra_Do not export values of states":"Не експортуйте значення станів","ra_Do not use let's encrypt":"Не використовуйте let's encrypt","ra_Double click to reset table layout":"Двічі клацніть, щоб скинути макет таблиці","ra_Drag 'n' drop some files here, or click to select files":"Перетягніть деякі файли сюди або натисніть, щоб вибрати файли","ra_Drop file here":"Перетягніть файл сюди","ra_Drop the files here...":"Перетягніть файл сюди...","ra_Duplicate name":"Повторюване ім'я","ra_Edit ACL":"Редагувати ACL","ra_Edit alias":"Редагувати псевдонім","ra_Edit custom config":"Редагувати спеціальну конфігурацію","ra_Edit function":"функція редагування","ra_Edit object field":"Поле редагування об'єкта","ra_Edit role":"Редагувати роль","ra_Edit room":"Редагувати кімнату","ra_Edit value":"Редагувати значення",ra_Error:idt,"ra_Expand all nodes":"Розгорнути всі вузли","ra_Expand one step node":"Розгорніть один рівень","ra_Export data to %s file":"Експортувати дані у файл %s","ra_Failed to open JSON File":"Не вдалося відкрити файл JSON","ra_Fallback custom certificates":"Запасні спеціальні сертифікати","ra_File is too big. Max %sk allowed. Try use SVG.":"Файл завеликий. Максимально дозволено %sk. Спробуйте використовувати SVG.",ra_Filter:odt,"ra_Filter files":"Фільтр файлів","ra_Folder name":"Назва папки","ra_Folder → Channel → State":"Папка → Канал → Стан","ra_Folder → Device → Channel → State":"Папка → Пристрій → Канал → Стан","ra_Folder → State":"Папка → Стан","ra_Folders always first":"Папки завжди першими",ra_Friday:sdt,"ra_Good luck":"Удачі","ra_Hide empty folders":"Приховати порожні папки","ra_If no file will be created in the folder, it will disappear after the browser closed":"Якщо в папці не буде створено файл, він зникне після закриття браузера","ra_Import data from %s file":"Імпортувати дані з файлу %s","ra_Import from %s":"Імпортувати з %s","ra_Instance %s is alive":"Примірник %s живий","ra_Instance %s is not alive":"Примірник %s не живий","ra_Instance is not alive":"Примірник не живий","ra_Invalid CRON":"Недійсний CRON","ra_Invalid JSON":"Недійсний JSON","ra_Invalid answer from server":"Недійсна відповідь від сервера","ra_Invalid parent folder!":"Недійсна батьківська папка!","ra_Invalid structure":"Недійсна структура","ra_JSON editor":"Редактор JSON","ra_Last change":"Остання зміна",ra_Latitude:ldt,"ra_License %s":"Ліцензія %s","ra_License agreement":"Ліцензійна угода","ra_License does not exist":"Ліцензії не існує","ra_License expired on %s":"Термін дії ліцензії закінчився %s",'ra_License for other product "%s"':'Ліцензія на інший продукт "%s"',"ra_License is for version %s, but required version is %s.":"Ліцензія для версії %s, але потрібна версія %s.","ra_License must be converted":"Ліцензію необхідно конвертувати до новішої версії. Ви можете зробити це у своєму профілі на iobroker.net.","ra_License not found in license manager. Do you want to read licenses from iobroker.net?":"Ліцензія не знайдена в менеджері ліцензій. Хочете оновити ліцензії з iobroker.net?","ra_Listen on all IPs":"Прослуховування на всіх IP","ra_Load configuration from file":"Завантажити конфігурацію з файлу",ra_Longitude:cdt,'ra_May not trigger "updateLicenses"':'Може не запускати "updateLicenses"',ra_Message:udt,ra_Monday:ddt,"ra_Move down":"Рухатися вниз","ra_Move up":"Рухатися вгору",ra_Name:fdt,"ra_No data found in file":"Немає даних у файлі","ra_No one license found in license manager":"У менеджері ліцензій не знайдено жодної ліцензії","ra_No response from the backend":"Немає відповіді від сервера",'ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".':"Неексперти можуть створювати нові об’єкти лише в «0_userdata.0» або «alias.0».","ra_Not a number":"Не номер",ra_Objects:hdt,ra_Ok:pdt,"ra_On weekdays":"В будні дні","ra_Only following structures of objects are available:":"Доступні тільки такі структури об'єктів:","ra_Only selected":"Тільки обрані","ra_Owner group":"Група власників","ra_Owner user":"Користувач-власник","ra_Passwords are not equal!":"Паролі не бувають рівними!","ra_Place your files here or click here to open the browse dialog":"Розмістіть свої файли тут або натисніть тут, щоб відкрити діалогове вікно перегляду","ra_Please confirm":"Будь-ласка підтвердіть","ra_Please create license":"Будь ласка, створіть ліцензію","ra_Please enter the license":"Будь ласка, введіть ліцензію","ra_Please select file...":"Виберіть файл...","ra_Please select object ID...":"Виберіть ідентифікатор об'єкта...","ra_Port could be used by %s":"Порт може використовуватися %s","ra_Port is already used by %s":"Порт уже використовується %s","ra_Private certificate":"Приватний сертифікат",ra_Product:mdt,"ra_Public certificate":"Публічний сертифікат","ra_Quality code":"якість","ra_Refresh tree":"Оновити дерево","ra_Reload files":"Перезавантажте файли",ra_Repeat:vdt,ra_Replace:gdt,"ra_Request timed out":"Час запиту вичерпано","ra_Restrict to folder":"Обмежити папкою",ra_Root:_dt,ra_Saturday:ydt,ra_Save:bdt,"ra_Save and close":"Зберегти та закрити","ra_Save configuration to file":"Зберегти конфігурацію у файл","ra_Save objects tree as JSON file":"Зберегти дерево об’єктів як файл JSON","ra_Select all":"Вибрати все","ra_Select color":"Виберіть колір","ra_Select predefined icon":"Виберіть попередньо визначений значок","ra_Select type of export":"Виберіть тип експорту",ra_Selected:wdt,"ra_Selected %s object(s)":"Вибрані об’єкти %s","ra_Serial number (UUID)":"Серійний номер (UUID)",'ra_Serial number (UUID) "%s" in license is for other device.':'Серійний номер (UUID) "%s" у ліцензії призначений для іншого пристрою.',"ra_Show all folders":"Показати всі папки","ra_Show lines between rows":"Показувати лінії між рядками","ra_Show/Hide object descriptions":"Показати/Сховати описи об’єктів","ra_Show/hide filter input":"Показати/сховати введення фільтра","ra_Some data are not stored. Discard?":"Деякі дані не зберігаються. Відкинути?",ra_States:Sdt,"ra_Suitable license not found in license manager":"Відповідна ліцензія не знайдена в менеджері ліцензій",ra_Sunday:xdt,"ra_Suppress question for next %s minutes":"Приховати запитання на наступні %s хвилин","ra_System language":"Системна мова","ra_Take browser position":"Займіть позицію з браузера","ra_Take position from system settings":"Займіть позицію в налаштуваннях системи",'ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").':"Експерти можуть створювати об’єкти всюди, крім другого рівня (наприклад, «vis.0» або «javascript.0»).","ra_The page you are looking for was not found":"Сторінка, яку ви шукаєте, не знайдена","ra_The schedule will be executed every minute. Are you sure?":"Розклад буде виконуватися щохвилини. Ви впевнені?","ra_The schedule will be executed every second. Are you sure?":"Розклад буде виконуватися щосекунди. Ви впевнені?",ra_Thursday:Cdt,ra_Timestamp:Tdt,"ra_Toggle expert mode":"Перемкнути експертний режим","ra_Toggle the states view":"Перемкнути перегляд штатів","ra_Toggle view mode":"Перемкнути режим перегляду","ra_Too big":"Занадто великий","ra_Too small":"Занадто малий","ra_Transparent dialog":"Прозорий діалог",ra_Tuesday:kdt,"ra_Unknown error":"Невідома помилка","ra_Unknown error!":"Невідома помилка!",ra_Update:Edt,"ra_Upload file":"Завантажити файл","ra_Use all available let's encrypt certificates":"Використовуйте всі доступні сертифікати let's encrypt","ra_Use iobroker.acme adapter for letsencrypt certificates":"Використовуйте адаптер iobroker.acme для сертифікатів letsencrypt","ra_Use system settings for position":"Використовуйте системні налаштування для позиції","ra_Used system settings":"Використані системні налаштування","ra_User files":"Файли користувача",ra_ValidTill:Ddt,ra_Value:Mdt,ra_Version:Odt,"ra_View file":"Переглянути файл","ra_View: %s":"Перегляд: %s",ra_Wednesday:$dt,ra_Width:Adt,ra_Yes:Pdt,"ra_You can export all objects or just the selected branch.":"Ви можете експортувати всі об’єкти або лише вибрану гілку.","ra_You can filter entries by entering here some text":"Ви можете фільтрувати записи, ввівши тут певний текст",ra___different__:Idt,ra_aclEveryone_read_object:Rdt,ra_aclEveryone_read_state:Ldt,ra_aclEveryone_write_object:Ndt,ra_aclEveryone_write_state:Fdt,ra_aclGroup_read_object:zdt,ra_aclGroup_read_state:Bdt,ra_aclGroup_write_object:jdt,ra_aclGroup_write_state:Wdt,ra_aclOwner_read_object:Hdt,ra_aclOwner_read_state:Udt,ra_aclOwner_write_object:Ydt,ra_aclOwner_write_state:Vdt,ra_buttons:Gdt,ra_changedFrom:qdt,ra_close:Xdt,ra_create_boolean_state:Jdt,ra_create_channel:Zdt,ra_create_device:Kdt,ra_create_number_state:Qdt,ra_create_state:eft,ra_create_string_state:tft,ra_daysShortText:rft,ra_dow_Fr:nft,ra_dow_Mo:aft,ra_dow_Sa:ift,ra_dow_Su:oft,ra_dow_Th:sft,ra_dow_Tu:lft,ra_dow_We:cft,ra_expertMode:uft,ra_fileType_all:dft,ra_fileType_audio:fft,ra_fileType_code:hft,ra_fileType_images:pft,ra_fileType_txt:mft,ra_fileType_video:vft,"ra_fileType_video,":"відео",ra_filter_customs:gft,ra_filter_customs_without:_ft,ra_filter_func:yft,ra_filter_id:bft,ra_filter_name:wft,ra_filter_role:Sft,ra_filter_room:xft,ra_filter_type:Cft,"ra_import data from %s file":"Імпортувати дані з файлу %s",ra_invalidConfig:Tft,ra_lastChange:kft,ra_locally:Eft,ra_month_Apr:Dft,ra_month_Aug:Mft,ra_month_Dec:Oft,ra_month_Feb:$ft,ra_month_Jan:Aft,ra_month_Jul:Pft,ra_month_Jun:Ift,ra_month_Mai:Rft,ra_month_Mar:Lft,ra_month_Nov:Nft,ra_month_Oct:Fft,ra_month_Sep:zft,ra_months_Apr:Bft,ra_months_Aug:jft,ra_months_Dec:Wft,ra_months_Feb:Hft,ra_months_Jan:Uft,ra_months_Jul:Yft,ra_months_Jun:Vft,ra_months_Mai:Gft,ra_months_Mar:qft,ra_months_Nov:Xft,ra_months_Oct:Jft,ra_months_Sep:Zft,ra_none:Kft,ra_object_changed_by:Qft,ra_object_changed_by_user:eht,ra_otherConfig:tht,ra_qualityCode:rht,ra_repeat:nht,ra_select_folder_hint:aht,ra_state_changed_by:iht,ra_state_changed_from:oht,ra_timestamp:sht,ra_tooltip_ack:lht,ra_tooltip_comment:cht,ra_tooltip_copyState:uht,ra_tooltip_customConfig:dht,ra_tooltip_deleteObject:fht,ra_tooltip_editObject:hht,ra_tooltip_editState:pht,ra_tooltip_from:mht,ra_tooltip_lc:vht,ra_tooltip_quality:ght,ra_tooltip_ts:_ht,ra_tooltip_user:yht,ra_tooltip_value:bht,"ra_use seconds":"використовуйте секунди",ra_val:wht,"ra_via internet":"через інтернет",ra_warning_every_minute:Sht,ra_warning_every_second:xht,sc_cron:Cht,sc_date:Tht,sc_dates:kht,sc_dow:Eht,sc_dows:Dht,sc_every:Mht,sc_everyN_dates:Oht,sc_everyN_dow:$ht,sc_everyN_dows:Aht,sc_everyN_hours:Pht,sc_everyN_minutes:Iht,sc_everyN_months:Rht,sc_everyN_seconds:Lht,sc_every_dates:Nht,sc_every_dow:Fht,sc_every_dows:zht,sc_every_hours:Bht,sc_every_minutes:jht,sc_every_months:Wht,sc_every_seconds:Hht,sc_from:Uht,sc_hours:Yht,sc_interval:Vht,sc_intervalBetween:Ght,sc_invalid_cron:qht,sc_minutes:Xht,sc_months:Jht,sc_once:Zht,sc_period:Kht,sc_seconds:Qht,sc_simple:ept,sc_specific:tpt,sc_specific_dates:rpt,sc_specific_dow:npt,sc_specific_dows:apt,sc_specific_hours:ipt,sc_specific_minutes:opt,sc_specific_months:spt,sc_specific_seconds:lpt,sc_time:cpt,sc_to:upt,sc_wizard:dpt,sch_all:fpt,sch_astroDay:hpt,sch_astroNight:ppt,sch_astro_dawn:mpt,sch_astro_dusk:vpt,sch_astro_goldenHour:gpt,sch_astro_goldenHourEnd:_pt,sch_astro_nadir:ypt,sch_astro_nauticalDawn:bpt,sch_astro_nauticalDusk:wpt,sch_astro_night:Spt,sch_astro_nightEnd:xpt,sch_astro_solarNoon:Cpt,sch_astro_sunrise:Tpt,sch_astro_sunriseEnd:kpt,sch_astro_sunset:Ept,sch_astro_sunsetStart:Dpt,sch_at:Mpt,sch_desc_atTime:Opt,sch_desc_everyDay:$pt,sch_desc_everyHour:Apt,sch_desc_everyMinute:Ppt,sch_desc_everyMonth:Ipt,sch_desc_everyNDay:Rpt,sch_desc_everyNHours:Lpt,sch_desc_everyNMinutes:Npt,sch_desc_everyNMonths:Fpt,sch_desc_everyNWeeks:zpt,sch_desc_everyNYears:Bpt,sch_desc_everyWeek:jpt,sch_desc_everyYear:Wpt,sch_desc_intervalFromTo:Hpt,sch_desc_never:Upt,sch_desc_onDate:Ypt,sch_desc_onDates:Vpt,sch_desc_onEveryDate:Gpt,sch_desc_onMonth:qpt,sch_desc_onMonths:Xpt,sch_desc_onWeekday:Jpt,sch_desc_onWeekdays:Zpt,sch_desc_onWeekends:Kpt,sch_desc_onWorkdays:Qpt,sch_desc_onceInPast:emt,sch_desc_once_on:tmt,sch_desc_validFrom:rmt,sch_desc_validFromTo:nmt,sch_desc_validTo:amt,sch_every:imt,sch_exactTime:omt,sch_from:smt,sch_fromTo:lmt,sch_intervalTime:cmt,sch_invert:umt,sch_no_one:dmt,sch_on:fmt,sch_period:hmt,sch_periodDaily:pmt,sch_periodDates:mmt,sch_periodDay:vmt,sch_periodEvery:gmt,sch_periodEveryDay:_mt,sch_periodEveryMonth:ymt,sch_periodEveryWeek:bmt,sch_periodEveryYear:wmt,sch_periodHours:Smt,sch_periodMinutes:xmt,sch_periodMonth:Cmt,sch_periodMonthly:Tmt,sch_periodOnce:kmt,sch_periodSpecificMonths:Emt,sch_periodWeek:Dmt,sch_periodWeekdays:Mmt,sch_periodWeekend:Omt,sch_periodWeekly:$mt,sch_periodWorkdays:Amt,sch_periodYear:Pmt,sch_periodYearly:Imt,sch_specificTime:Rmt,sch_time:Lmt,sch_to:Nmt,sch_valid:Fmt,sch_validFrom:zmt,sch_validTo:Bmt,sch_wholeDay:jmt,sch_yearEveryMonth:Wmt},Umt="附加",Ymt="取消",Vmt="类别",Gmt="勾选",qmt="删除",Xmt="关",Jmt="商业的",Zmt="配置",Kmt="连接的",Qmt="复制的",evt="创建",tvt="庄稼",rvt="Delete",nvt="删除",avt="丢弃",ivt="断开连接",ovt="错误",svt="筛选",lvt="星期五",cvt="纬度",uvt="经度",dvt="信息",fvt="周一",hvt="姓名",pvt="对象",mvt="好",vvt="产品",gvt="重复",_vt="代替",yvt="根",bvt="周六",wvt="保存",Svt="已选",xvt="状态",Cvt="星期日",Tvt="周四",kvt="时间戳记",Evt="周二",Dvt="更新资料",Mvt="有效期至",Ovt="值",$vt="版本",Avt="周三",Pvt="宽度",Ivt="是的",Rvt="不同的",Lvt="每个人都可以阅读对象",Nvt="每个人都可以阅读状态",Fvt="每个人都可以写对象",zvt="每个人都可以写状态",Bvt="组可以读取对象",jvt="群组可以读取状态",Wvt="组可以写对象",Hvt="组可以写状态",Uvt="所有者可以读取对象",Yvt="所有者可以读取状态",Vvt="所有者可以写对象",Gvt="所有者可以写状态",qvt="纽扣",Xvt="更改为",Jvt="关闭",Zvt="创建布尔状态",Kvt="创建频道",Qvt="创建设备",egt="创建号码状态",tgt="创建状态",rgt="创建字符串状态",ngt="天",agt="r",igt="莫",ogt="萨",sgt="苏",lgt="Th",cgt="Tu",ugt="我们",dgt="专家模式",fgt="所有文件",hgt="声音的",pgt="代码/JSON",mgt="图片",vgt="文本",ggt="视频",_gt="设定值",ygt="没有",bgt="功能",wgt="ID",Sgt="名称",xgt="角色",Cgt="房间",Tgt="类型",kgt="无效的设定",Egt="最后一次变更",Dgt="本地",Mgt="4月",Ogt="八月",$gt="十二月",Agt="二月",Pgt="简",Igt="七月",Rgt="君",Lgt="迈",Ngt="三月",Fgt="十一月",zgt="十月",Bgt="九月",jgt="4月",Wgt="八月",Hgt="十二月",Ugt="二月",Ygt="简",Vgt="七月",Ggt="君",qgt="迈",Xgt="三月",Jgt="十一月",Zgt="十月",Kgt="九月",Qgt="没有任何",e_t="物件变更者",t_t="对象上次更改时间为",r_t="来自其他适配器%s的设置",n_t="质量代码",a_t="重复",i_t="要选择文件夹,只需按住“shift”键单击文件夹即可。",o_t="状态由",s_t="对象已从更改",l_t="时间戳记",c_t="致谢国旗",u_t="评论",d_t="复制状态值",f_t="自定义设置",h_t="删除物件",p_t="编辑物件",m_t="编辑状态值",v_t="从",g_t="最后改变了",__t="质量",y_t="时间戳",b_t="用户",w_t="值",S_t="值",x_t="警告:CRON 作业将在指定期间内每分钟运行一次!",C_t="警告:CRON 作业将在指定期间内每秒运行一次!",T_t="周期任务",k_t="日期",E_t="日",D_t="天",M_t="星期",O_t="每",$_t="每N天",A_t="每周的第 N 天",P_t="每周N天",I_t="每N小时一次",R_t="每N分钟",L_t="每N个月",N_t="每N秒",F_t="每天",z_t="一周的每一天",B_t="一周的每一天",j_t="每小时",W_t="每分钟",H_t="每月",U_t="每秒",Y_t="从",V_t="小时",G_t="间隔",q_t="间隔时间",X_t="无效的 CRON",J_t="分钟",Z_t="月",K_t="一次",Q_t="周期",eyt="秒",tyt="简单模式",ryt="特定的时间",nyt="特定的日子",ayt="一周中的特定日子",iyt="特定的一周",oyt="特定的小时",syt="特定的分钟",lyt="特定的月份",cyt="特定的描述",uyt="时间",dyt="至",fyt="向导模式",hyt="全选",pyt="天文白天",myt="天文夜晚",vyt="黎明",gyt="黄昏",_yt="黄金时段",yyt="黄金时段结束",byt="天底",wyt="航海黎明",Syt="航海黄昏",xyt="夜晚",Cyt="夜晚结束",Tyt="正午",kyt="日出",Eyt="日出结束",Dyt="日落",Myt="日落开始",Oyt="在",$yt="的%s",Ayt="每天",Pyt="每小时",Iyt="每分钟",Ryt="每月",Lyt="每%s天",Nyt="每%s小时",Fyt="每%s分钟",zyt="每%s月",Byt="每%s周",jyt="每%s年",Wyt="每周",Hyt="每年",Uyt="从%s到%s",Yyt="决不",Vyt="在%s的%s上",Gyt="在%s和%s上",qyt="在每天",Xyt="%s",Jyt="%s和%s",Zyt="在%s上",Kyt="在%s和%s上",Qyt="在周末",e0t="在工作日",t0t="将不再执行,因为起始时间已经是过去的时间了。",r0t="在%s上",n0t="来自%s",a0t="从执行到",i0t="到%s",o0t="每",s0t="特定的时间",l0t="从",c0t="从到",u0t="间隔时间",d0t="倒置",f0t="取消全选",h0t="的",p0t="周期",m0t="每天",v0t="日期",g0t="天",_0t="每",y0t="每天",b0t="每月",w0t="每周",S0t="每年",x0t="小时",C0t="分钟",T0t="月",k0t="每月一次",E0t="一次",D0t="特定的月份",M0t="周",O0t="工作日",$0t="周末",A0t="每周",P0t="工作日",I0t="年",R0t="每年",L0t="特定的时间",N0t="时间",F0t="至",z0t="生效",B0t="从",j0t="至",W0t="一整天",H0t="每月",U0t={"ra_%s links from aliases":"来自别名的 %s 个链接","ra_%s object(s) processed":"已处理%s个对象","ra_%s was imported":"对象已导入","ra_Accept license":"接受许可","ra_Add new child object to selected parent":"将新的子对象添加到选定的父对象","ra_Add objects tree from JSON file":"从JSON文件添加对象树","ra_Add row":"添加行","ra_Advanced options":"高级选项","ra_All items are filtered out":"所有项目都被过滤掉","ra_All objects":"所有对象",ra_Append:Umt,"ra_Append %s entries or replace existing?":"追加 %s 条目还是替换现有条目?","ra_Append or replace?":"追加还是替换?","ra_Are you sure?":"你确定吗?","ra_Auto (no custom columns)":"自动(无自定义列)","ra_Back to %s":"返回“%s”","ra_Background image":"背景图像",ra_Cancel:Ymt,"ra_Cannot add items with set filter":"无法使用设置过滤器添加项目","ra_Cannot decode license":"无法解码许可证","ra_Cannot determine position: System settings are empty and GPS detection is disabled in browser":"无法确定位置:系统设置为空且浏览器中禁用了 GPS 检测",'ra_Cannot find "%s"':"找不到“%s”",'ra_Cannot read "%s"':"无法阅读“%s”","ra_Cannot read licenses: %s":"无法读取许可证:%s","ra_Cannot retrieve options, as instance is offline":"无法检索选项,因为实例处于脱机状态","ra_Cannot update attribute, because not found in the object":"无法更新属性,因为在对象中找不到","ra_Cannot upload":"无法上传",ra_Categories:Vmt,"ra_Chained certificate":"链式证书","ra_Change color theme":"更改颜色主题","ra_Changed from":"更改为","ra_Channel → State":"频道→状态","ra_Check license":"检查许可证",ra_Checked:Gmt,ra_Clear:qmt,"ra_Clear filter":"清除筛选","ra_Clear icon":"清除图标","ra_Clone current row":"克隆当前行",ra_Close:Xmt,"ra_Collapse all nodes":"收合所有节点","ra_Collapse one step node":"折叠一级",ra_Commercial:Jmt,ra_Configure:Zmt,"ra_Configure visible columns":"配置可见列","ra_Confirm deletion of %s":"确认删除%s",ra_Connected:Kmt,ra_Copied:Qmt,"ra_Copied %s":'复制的"%s"',"ra_Copy content":"复制内容",ra_Create:evt,"ra_Create alias":"创建别名","ra_Create folder":"创建文件夹","ra_Create new folder in %s":"在%s中创建新文件夹",ra_Crop:tvt,"ra_Define CRON...":"定义 CRON...","ra_Define functions":"定义功能","ra_Define rooms":"定义房间","ra_Define schedule":"定义时间表","ra_Define schedule...":"定义时间表...",ra_Del:rvt,ra_Delete:nvt,"ra_Delete (no confirm for 5 mins)":"删除(5分钟内未确认)","ra_Delete current row":"删除当前行","ra_Deselect all":"全部取消选择","ra_Device → Channel → State":"设备→频道→状态",ra_Discard:avt,ra_Disconnected:ivt,"ra_Do not export values of states":"不导出状态值","ra_Do not use let's encrypt":"不要使用让我们加密","ra_Double click to reset table layout":"双击重置表格布局","ra_Drag 'n' drop some files here, or click to select files":"将一些文件拖放到此处,或单击以选择文件","ra_Drop file here":"将档案放在这里","ra_Drop the files here...":"把文件放在这里...","ra_Duplicate name":"名称重复","ra_Edit ACL":"编辑访问控制列表","ra_Edit alias":"编辑别名","ra_Edit custom config":"编辑自定义配置","ra_Edit function":"编辑功能","ra_Edit object field":"编辑对象字段","ra_Edit role":"编辑角色","ra_Edit room":"编辑室","ra_Edit value":"编辑值",ra_Error:ovt,"ra_Expand all nodes":"展开所有节点","ra_Expand one step node":"扩大一级","ra_Export data to %s file":"将数据导出到 %s 文件","ra_Failed to open JSON File":"无法打开JSON文件","ra_Fallback custom certificates":"后备自定义证书","ra_File is too big. Max %sk allowed. Try use SVG.":"文件太大。允许的最大字节%s数。尝试使用 SVG。",ra_Filter:svt,"ra_Filter files":"过滤文件","ra_Folder name":"文件夹名称","ra_Folder → Channel → State":"文件夹→频道→状态","ra_Folder → Device → Channel → State":"文件夹→设备→频道→状态","ra_Folder → State":"文件夹→状态","ra_Folders always first":"资料夹永远优先",ra_Friday:lvt,"ra_Good luck":"祝你好运","ra_Hide empty folders":"隐藏空文件夹","ra_If no file will be created in the folder, it will disappear after the browser closed":"如果在该文件夹中未创建任何文件,则该文件将在浏览器关闭后消失","ra_Import data from %s file":"从 %s 文件导入数据","ra_Import from %s":"从 %s 导入","ra_Instance %s is alive":"实例 %s 是活动的","ra_Instance %s is not alive":"实例 %s 不存在","ra_Instance is not alive":"实例不存在","ra_Invalid CRON":"无效的 CRON","ra_Invalid JSON":"JSON 无效","ra_Invalid answer from server":"来自服务器的无效答案","ra_Invalid parent folder!":"父文件夹无效!","ra_Invalid structure":"结构无效","ra_JSON editor":"JSON 编辑器","ra_Last change":"最后一次变更",ra_Latitude:cvt,"ra_License %s":"许可证 %s","ra_License agreement":"许可协议","ra_License does not exist":"许可证不存在","ra_License expired on %s":"许可证已于 %s 过期",'ra_License for other product "%s"':"其他产品“%s”的许可证","ra_License is for version %s, but required version is %s.":"许可证适用于版本 %s,但所需版本为 %s。","ra_License must be converted":"许可证必须转换为更新版本。您可以在 iobroker.net 个人资料中执行此操作。","ra_License not found in license manager. Do you want to read licenses from iobroker.net?":"在许可证管理器中找不到许可证。您要从 iobroker.net 更新许可证吗?","ra_Listen on all IPs":"监听所有IP","ra_Load configuration from file":"从文件加载配置",ra_Longitude:uvt,'ra_May not trigger "updateLicenses"':"可能不会触发“updateLicenses”",ra_Message:dvt,ra_Monday:fvt,"ra_Move down":"下移","ra_Move up":"提升",ra_Name:hvt,"ra_No data found in file":"文件中未找到数据","ra_No one license found in license manager":"许可证管理器中未找到任何许可证","ra_No response from the backend":"后端无响应",'ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".':"非专家只能在“ 0_userdata.0”或“ alias.0”中创建新对象。","ra_Not a number":"不是数字",ra_Objects:pvt,ra_Ok:mvt,"ra_On weekdays":"在工作日","ra_Only following structures of objects are available:":"仅以下对象结构可用:","ra_Only selected":"只选择","ra_Owner group":"所有者组","ra_Owner user":"所有者用户","ra_Passwords are not equal!":"密码不相等!","ra_Place your files here or click here to open the browse dialog":"将文件放在此处或单击此处打开浏览对话框","ra_Please confirm":"请确认","ra_Please create license":"请创建许可证","ra_Please enter the license":"请输入许可证","ra_Please select file...":"请选择文件...","ra_Please select object ID...":"请选择对象ID ...","ra_Port could be used by %s":"%s 可以使用端口","ra_Port is already used by %s":"端口已被 %s 使用","ra_Private certificate":"私有证书",ra_Product:vvt,"ra_Public certificate":"公共证书","ra_Quality code":"质量代码","ra_Refresh tree":"刷新树","ra_Reload files":"重新载入文件",ra_Repeat:gvt,ra_Replace:_vt,"ra_Request timed out":"请求超时","ra_Restrict to folder":"限制到文件夹",ra_Root:yvt,ra_Saturday:bvt,ra_Save:wvt,"ra_Save and close":"保存并关闭","ra_Save configuration to file":"将配置保存到文件","ra_Save objects tree as JSON file":"将对象树另存为JSON文件","ra_Select all":"全选","ra_Select color":"选择颜色","ra_Select predefined icon":"选择预定义图标","ra_Select type of export":"选择导出类型",ra_Selected:Svt,"ra_Selected %s object(s)":"选定的 %s 个对象","ra_Serial number (UUID)":"序列号 (UUID)",'ra_Serial number (UUID) "%s" in license is for other device.':"许可证中的序列号 (UUID)“%s”用于其他设备。","ra_Show all folders":"显示所有文件夹","ra_Show lines between rows":"显示行之间的线","ra_Show/Hide object descriptions":"显示/隐藏对象描述","ra_Show/hide filter input":"显示/隐藏过滤器输入","ra_Some data are not stored. Discard?":"部分数据未存储。丢弃?",ra_States:xvt,"ra_Suitable license not found in license manager":"在许可证管理器中找不到合适的许可证",ra_Sunday:Cvt,"ra_Suppress question for next %s minutes":"在接下来的%s分钟内取消提问","ra_System language":"系统语言","ra_Take browser position":"从浏览器获取位置","ra_Take position from system settings":"从系统设置中获取位置",'ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").':"专家可以在任何地方创建对象,但要从第二层开始(例如“ vis.0”或“ javascript.0”)。","ra_The page you are looking for was not found":"未找到您要查找的页面","ra_The schedule will be executed every minute. Are you sure?":"该计划将每分钟执行一次。您确定吗?","ra_The schedule will be executed every second. Are you sure?":"该计划将每秒执行一次。你确定吗?",ra_Thursday:Tvt,ra_Timestamp:kvt,"ra_Toggle expert mode":"切换专家模式","ra_Toggle the states view":"切换状态视图","ra_Toggle view mode":"切换检视模式","ra_Too big":"太大","ra_Too small":"太小","ra_Transparent dialog":"透明对话框",ra_Tuesday:Evt,"ra_Unknown error":"未知错误","ra_Unknown error!":"未知错误!",ra_Update:Dvt,"ra_Upload file":"上传文件","ra_Use all available let's encrypt certificates":"使用所有可用的让我们加密证书","ra_Use iobroker.acme adapter for letsencrypt certificates":"使用 iobroker.acme 适配器获取 letsencrypt 证书","ra_Use system settings for position":"使用系统设置定位","ra_Used system settings":"使用的系统设置","ra_User files":"用户档案",ra_ValidTill:Mvt,ra_Value:Ovt,ra_Version:$vt,"ra_View file":"查看文件","ra_View: %s":"查看:%s",ra_Wednesday:Avt,ra_Width:Pvt,ra_Yes:Ivt,"ra_You can export all objects or just the selected branch.":"您可以导出所有对象或仅导出选定的分支。","ra_You can filter entries by entering here some text":"您可以通过在此处输入一些文本来过滤条目",ra___different__:Rvt,ra_aclEveryone_read_object:Lvt,ra_aclEveryone_read_state:Nvt,ra_aclEveryone_write_object:Fvt,ra_aclEveryone_write_state:zvt,ra_aclGroup_read_object:Bvt,ra_aclGroup_read_state:jvt,ra_aclGroup_write_object:Wvt,ra_aclGroup_write_state:Hvt,ra_aclOwner_read_object:Uvt,ra_aclOwner_read_state:Yvt,ra_aclOwner_write_object:Vvt,ra_aclOwner_write_state:Gvt,ra_buttons:qvt,ra_changedFrom:Xvt,ra_close:Jvt,ra_create_boolean_state:Zvt,ra_create_channel:Kvt,ra_create_device:Qvt,ra_create_number_state:egt,ra_create_state:tgt,ra_create_string_state:rgt,ra_daysShortText:ngt,ra_dow_Fr:agt,ra_dow_Mo:igt,ra_dow_Sa:ogt,ra_dow_Su:sgt,ra_dow_Th:lgt,ra_dow_Tu:cgt,ra_dow_We:ugt,ra_expertMode:dgt,ra_fileType_all:fgt,ra_fileType_audio:hgt,ra_fileType_code:pgt,ra_fileType_images:mgt,ra_fileType_txt:vgt,ra_fileType_video:ggt,"ra_fileType_video,":"视频",ra_filter_customs:_gt,ra_filter_customs_without:ygt,ra_filter_func:bgt,ra_filter_id:wgt,ra_filter_name:Sgt,ra_filter_role:xgt,ra_filter_room:Cgt,ra_filter_type:Tgt,"ra_import data from %s file":"从 %s 文件导入数据",ra_invalidConfig:kgt,ra_lastChange:Egt,ra_locally:Dgt,ra_month_Apr:Mgt,ra_month_Aug:Ogt,ra_month_Dec:$gt,ra_month_Feb:Agt,ra_month_Jan:Pgt,ra_month_Jul:Igt,ra_month_Jun:Rgt,ra_month_Mai:Lgt,ra_month_Mar:Ngt,ra_month_Nov:Fgt,ra_month_Oct:zgt,ra_month_Sep:Bgt,ra_months_Apr:jgt,ra_months_Aug:Wgt,ra_months_Dec:Hgt,ra_months_Feb:Ugt,ra_months_Jan:Ygt,ra_months_Jul:Vgt,ra_months_Jun:Ggt,ra_months_Mai:qgt,ra_months_Mar:Xgt,ra_months_Nov:Jgt,ra_months_Oct:Zgt,ra_months_Sep:Kgt,ra_none:Qgt,ra_object_changed_by:e_t,ra_object_changed_by_user:t_t,ra_otherConfig:r_t,ra_qualityCode:n_t,ra_repeat:a_t,ra_select_folder_hint:i_t,ra_state_changed_by:o_t,ra_state_changed_from:s_t,ra_timestamp:l_t,ra_tooltip_ack:c_t,ra_tooltip_comment:u_t,ra_tooltip_copyState:d_t,ra_tooltip_customConfig:f_t,ra_tooltip_deleteObject:h_t,ra_tooltip_editObject:p_t,ra_tooltip_editState:m_t,ra_tooltip_from:v_t,ra_tooltip_lc:g_t,ra_tooltip_quality:__t,ra_tooltip_ts:y_t,ra_tooltip_user:b_t,ra_tooltip_value:w_t,"ra_use seconds":"用秒",ra_val:S_t,"ra_via internet":"通过互联网",ra_warning_every_minute:x_t,ra_warning_every_second:C_t,sc_cron:T_t,sc_date:k_t,sc_dates:E_t,sc_dow:D_t,sc_dows:M_t,sc_every:O_t,sc_everyN_dates:$_t,sc_everyN_dow:A_t,sc_everyN_dows:P_t,sc_everyN_hours:I_t,sc_everyN_minutes:R_t,sc_everyN_months:L_t,sc_everyN_seconds:N_t,sc_every_dates:F_t,sc_every_dow:z_t,sc_every_dows:B_t,sc_every_hours:j_t,sc_every_minutes:W_t,sc_every_months:H_t,sc_every_seconds:U_t,sc_from:Y_t,sc_hours:V_t,sc_interval:G_t,sc_intervalBetween:q_t,sc_invalid_cron:X_t,sc_minutes:J_t,sc_months:Z_t,sc_once:K_t,sc_period:Q_t,sc_seconds:eyt,sc_simple:tyt,sc_specific:ryt,sc_specific_dates:nyt,sc_specific_dow:ayt,sc_specific_dows:iyt,sc_specific_hours:oyt,sc_specific_minutes:syt,sc_specific_months:lyt,sc_specific_seconds:cyt,sc_time:uyt,sc_to:dyt,sc_wizard:fyt,sch_all:hyt,sch_astroDay:pyt,sch_astroNight:myt,sch_astro_dawn:vyt,sch_astro_dusk:gyt,sch_astro_goldenHour:_yt,sch_astro_goldenHourEnd:yyt,sch_astro_nadir:byt,sch_astro_nauticalDawn:wyt,sch_astro_nauticalDusk:Syt,sch_astro_night:xyt,sch_astro_nightEnd:Cyt,sch_astro_solarNoon:Tyt,sch_astro_sunrise:kyt,sch_astro_sunriseEnd:Eyt,sch_astro_sunset:Dyt,sch_astro_sunsetStart:Myt,sch_at:Oyt,sch_desc_atTime:$yt,sch_desc_everyDay:Ayt,sch_desc_everyHour:Pyt,sch_desc_everyMinute:Iyt,sch_desc_everyMonth:Ryt,sch_desc_everyNDay:Lyt,sch_desc_everyNHours:Nyt,sch_desc_everyNMinutes:Fyt,sch_desc_everyNMonths:zyt,sch_desc_everyNWeeks:Byt,sch_desc_everyNYears:jyt,sch_desc_everyWeek:Wyt,sch_desc_everyYear:Hyt,sch_desc_intervalFromTo:Uyt,sch_desc_never:Yyt,sch_desc_onDate:Vyt,sch_desc_onDates:Gyt,sch_desc_onEveryDate:qyt,sch_desc_onMonth:Xyt,sch_desc_onMonths:Jyt,sch_desc_onWeekday:Zyt,sch_desc_onWeekdays:Kyt,sch_desc_onWeekends:Qyt,sch_desc_onWorkdays:e0t,sch_desc_onceInPast:t0t,sch_desc_once_on:r0t,sch_desc_validFrom:n0t,sch_desc_validFromTo:a0t,sch_desc_validTo:i0t,sch_every:o0t,sch_exactTime:s0t,sch_from:l0t,sch_fromTo:c0t,sch_intervalTime:u0t,sch_invert:d0t,sch_no_one:f0t,sch_on:h0t,sch_period:p0t,sch_periodDaily:m0t,sch_periodDates:v0t,sch_periodDay:g0t,sch_periodEvery:_0t,sch_periodEveryDay:y0t,sch_periodEveryMonth:b0t,sch_periodEveryWeek:w0t,sch_periodEveryYear:S0t,sch_periodHours:x0t,sch_periodMinutes:C0t,sch_periodMonth:T0t,sch_periodMonthly:k0t,sch_periodOnce:E0t,sch_periodSpecificMonths:D0t,sch_periodWeek:M0t,sch_periodWeekdays:O0t,sch_periodWeekend:$0t,sch_periodWeekly:A0t,sch_periodWorkdays:P0t,sch_periodYear:I0t,sch_periodYearly:R0t,sch_specificTime:L0t,sch_time:N0t,sch_to:F0t,sch_valid:z0t,sch_validFrom:B0t,sch_validTo:j0t,sch_wholeDay:W0t,sch_yearEveryMonth:H0t},Y0t="Export",V0t="Cancel",G0t="Close",q0t={"Save as image":"Save as image","Reset pan and zoom":"Reset pan and zoom","Save chart as svg":"Save chart as SVG","Unfortunately your browser does not support this feature":"Unfortunately your browser does not support this feature","Save chart as png":"Save chart as png","No data found":"No data found","Export raw data as CSV":"Export raw data as CSV","Select lines for export":"Select lines for export","Time format":"Time format","Browser format":"Browser time format","Time stamp in milliseconds":"Time stamp in milliseconds",Export:Y0t,Cancel:V0t,"Select lines":"Select lines","Select lines to show":"Select lines to show","Select all":"Select all",Close:G0t,"Unselect all":"Unselect all"},X0t="Export",J0t="Abbrechen",Z0t="Schließen",K0t={"Save as image":"Als Bild speichern","Reset pan and zoom":"Verschiebung und Zoomen zurücksetzen","Save chart as svg":"Diagramm als SVG speichern","Unfortunately your browser does not support this feature":"Leider unterstützt Ihr Browser diese Funktion nicht","Save chart as png":"Diagramm als PNG speichern","No data found":"Keine Daten gefunden","Export raw data as CSV":"Rohdaten als CSV exportieren","Select lines for export":"Wählen Sie Zeilen für den Export aus","Time format":"Zeitformat","Browser format":"Browser-Zeitformat","Time stamp in milliseconds":"Zeitstempel in Millisekunden",Export:X0t,Cancel:J0t,"Select lines":"Wählen Sie Zeilen aus","Select lines to show":"Wählen Sie die anzuzeigenden Linien aus","Select all":"Wählen Sie Alle",Close:Z0t,"Unselect all":"Alles wiederufen"},Q0t="Экспорт",ebt="Отмена",tbt="Закрыть",rbt={"Save as image":"Сохранить как изображение","Reset pan and zoom":"Сбросить сдвиг и масштабирование","Save chart as svg":"Сохранить график как SVG","Unfortunately your browser does not support this feature":"К сожалению, ваш браузер не поддерживает эту функцию","Save chart as png":"Сохранить диаграмму как png","No data found":"Данные не найдены","Export raw data as CSV":"Экспорт необработанных данных в формате CSV","Select lines for export":"Выбрать строки для экспорта","Time format":"Формат времени","Browser format":"Формат времени браузера","Time stamp in milliseconds":"Отметка времени в миллисекундах",Export:Q0t,Cancel:ebt,"Select lines":"Выберите строки","Select lines to show":"Выберите строки для отображения","Select all":"Выбрать все",Close:tbt,"Unselect all":"Снять все"},nbt="Exportar",abt="Cancelar",ibt="Fechar",obt={"Save as image":"Salvar como imagem","Reset pan and zoom":"Redefinir panorâmica e zoom","Save chart as svg":"Salvar gráfico como SVG","Unfortunately your browser does not support this feature":"Infelizmente, seu navegador não oferece suporte a esse recurso","Save chart as png":"Salvar gráfico como png","No data found":"Nenhum dado encontrado","Export raw data as CSV":"Exportar dados brutos como CSV","Select lines for export":"Selecione as linhas para exportação","Time format":"Formato de hora","Browser format":"Formato de hora do navegador","Time stamp in milliseconds":"Carimbo de hora em milissegundos",Export:nbt,Cancel:abt,"Select lines":"Selecione linhas","Select lines to show":"Selecione linhas para mostrar","Select all":"Selecionar tudo",Close:ibt,"Unselect all":"Desmarque todos"},sbt="Exporteren",lbt="Annuleren",cbt="Dichtbij",ubt={"Save as image":"Bewaar als afbeelding","Reset pan and zoom":"Stel pannen en zoomen opnieuw in","Save chart as svg":"Bewaar grafiek als SVG","Unfortunately your browser does not support this feature":"Helaas ondersteunt uw browser deze functie niet","Save chart as png":"Bewaar grafiek als png","No data found":"Geen data gevonden","Export raw data as CSV":"Exporteer onbewerkte gegevens als CSV","Select lines for export":"Selecteer regels voor export","Time format":"Tijd formaat","Browser format":"Browser tijdformaat","Time stamp in milliseconds":"Tijdstempel in milliseconden",Export:sbt,Cancel:lbt,"Select lines":"Selecteer lijnen","Select lines to show":"Selecteer lijnen om weer te geven","Select all":"Selecteer alles",Close:cbt,"Unselect all":"Deselecteer alles"},dbt="Exporter",fbt="Annuler",hbt="Fermer",pbt={"Save as image":"Enregistrer comme image","Reset pan and zoom":"Réinitialiser le panoramique et le zoom","Save chart as svg":"Enregistrer le graphique au format SVG","Unfortunately your browser does not support this feature":"Malheureusement, votre navigateur ne prend pas en charge cette fonctionnalité","Save chart as png":"Enregistrer le graphique au format png","No data found":"Aucune donnée disponible","Export raw data as CSV":"Exporter les données brutes au format CSV","Select lines for export":"Sélectionner les lignes à exporter","Time format":"Format de l'heure","Browser format":"Format d'heure du navigateur","Time stamp in milliseconds":"Horodatage en millisecondes",Export:dbt,Cancel:fbt,"Select lines":"Sélectionner des lignes","Select lines to show":"Sélectionnez les lignes à afficher","Select all":"Tout sélectionner",Close:hbt,"Unselect all":"Tout déselectionner"},mbt="Esportare",vbt="Annulla",gbt="Vicino",_bt={"Save as image":"Salva come immagine","Reset pan and zoom":"Reimposta panoramica e zoom","Save chart as svg":"Salva grafico come SVG","Unfortunately your browser does not support this feature":"Purtroppo il tuo browser non supporta questa funzionalità","Save chart as png":"Salva grafico come png","No data found":"Nessun dato trovato","Export raw data as CSV":"Esporta i dati grezzi come CSV","Select lines for export":"Seleziona le linee per l'esportazione","Time format":"Formato orario","Browser format":"Formato dell'ora del browser","Time stamp in milliseconds":"Timestamp in millisecondi",Export:mbt,Cancel:vbt,"Select lines":"Seleziona linee","Select lines to show":"Seleziona le righe da mostrare","Select all":"Seleziona tutto",Close:gbt,"Unselect all":"Deseleziona tutto"},ybt="Exportar",bbt="Cancelar",wbt="Cerca",Sbt={"Save as image":"Guardar como imagen","Reset pan and zoom":"Restablecer panorámica y zoom","Save chart as svg":"Guardar gráfico como SVG","Unfortunately your browser does not support this feature":"Lamentablemente, su navegador no es compatible con esta función.","Save chart as png":"Guardar gráfico como png","No data found":"Datos no encontrados","Export raw data as CSV":"Exportar datos sin procesar como CSV","Select lines for export":"Seleccionar líneas para exportar","Time format":"Formato de tiempo","Browser format":"formato de hora del navegador","Time stamp in milliseconds":"Marca de tiempo en milisegundos",Export:ybt,Cancel:bbt,"Select lines":"Seleccionar líneas","Select lines to show":"Seleccionar líneas para mostrar","Select all":"Seleccionar todo",Close:wbt,"Unselect all":"Deselecciona todo"},xbt="Eksport",Cbt="Anulować",Tbt="Zamknąć",kbt={"Save as image":"Zapisz jako obraz","Reset pan and zoom":"Zresetuj przesuwanie i powiększanie","Save chart as svg":"Zapisz wykres jako SVG","Unfortunately your browser does not support this feature":"Niestety Twoja przeglądarka nie obsługuje tej funkcji","Save chart as png":"Zapisz wykres jako png","No data found":"Nie znaleziono danych","Export raw data as CSV":"Eksportuj surowe dane jako CSV","Select lines for export":"Wybierz linie do eksportu","Time format":"Format czasu","Browser format":"Format czasu przeglądarki","Time stamp in milliseconds":"Znacznik czasu w milisekundach",Export:xbt,Cancel:Cbt,"Select lines":"Wybierz linie","Select lines to show":"Wybierz linie do pokazania","Select all":"Zaznacz wszystko",Close:Tbt,"Unselect all":"Odznacz wszystko"},Ebt="Експорт",Dbt="Скасувати",Mbt="Закрити",Obt={"No data found":"Даних не знайдено","Reset pan and zoom":"Скинути панорамування та масштабування","Save as image":"Зберегти як зображення","Save chart as png":"Зберегти діаграму як png","Save chart as svg":"Зберегти діаграму як SVG","Unfortunately your browser does not support this feature":"На жаль, ваш браузер не підтримує цю функцію","Export raw data as CSV":"Експорт необроблених даних як CSV","Select lines for export":"Виберіть рядки для експорту","Time format":"Формат часу","Browser format":"Формат часу браузера","Time stamp in milliseconds":"Мітка часу в мілісекундах",Export:Ebt,Cancel:Dbt,"Select lines":"Виберіть лінії","Select lines to show":"Виберіть рядки для показу","Select all":"Вибрати все",Close:Mbt,"Unselect all":"Скасувати вибір усіх"},$bt="出口",Abt="取消",Pbt="关闭",Ibt={"Save as image":"另存为图片","Reset pan and zoom":"重置平移和缩放","Save chart as svg":"将图表另存为SVG","Unfortunately your browser does not support this feature":"不幸的是,您的浏览器不支持此功能","Save chart as png":"将图表另存为png","No data found":"没有找到数据","Export raw data as CSV":"将原始数据导出为 CSV","Select lines for export":"选择要导出的行","Time format":"时间格式","Browser format":"浏览器时间格式","Time stamp in milliseconds":"以毫秒为单位的时间戳",Export:$bt,Cancel:Abt,"Select lines":"选择线路","Select lines to show":"选择要显示的行","Select all":"全选",Close:Pbt,"Unselect all":"全部取消选择"};function h7(t){t=(t||"").toString().replace(/^\?/,"");const e={};return t.split("&").forEach(r=>{if(r=r.trim(),r){const n=r.split("="),a=decodeURIComponent(n[0]).trim();if(n.length>1)if(e[a]=decodeURIComponent(n[1]),e[a]==="true")e[a]=!0;else if(e[a]==="false")e[a]=!1;else{const i=parseFloat(e[a]);i.toString()===e[a]&&(e[a]=i)}else e[a]=!0}}),e}function Xg(t){var r;const e=JSON.parse(JSON.stringify(t));if(t.lines&&(e.l=t.lines,delete e.lines),t._ids){const n=t._ids?t._ids.split(";"):[],a=t._colors?t._colors.split(";"):[],i=t._names?t._names.split(";"):[],o=t._units?t._units.split(";"):[];e.l=[];for(let s=0;s{this.lastHash!==window.location.hash&&(this.lastHash=window.location.hash,this.analyseAndLoadConfig())});de(this,"onPresetUpdate",(e,r)=>{e===this.preset&&(this.presetUpdateTimeout&&clearTimeout(this.presetUpdateTimeout),this.presetUpdateTimeout=setTimeout(()=>{this.presetUpdateTimeout=null;let n;r?n=Xg(r.native.data):n=Xg({}),JSON.stringify(n)!==JSON.stringify(this.config)&&(this.config=n,this.updateInterval&&clearInterval(this.updateInterval),this.updateInterval=null,this.config.live&&(!this.zoomData||!this.zoomData.stopLive)&&(this.updateInterval=setInterval(()=>this.readData(),this.config.live*1e3)),this.readData())},100))});de(this,"onStateChange",(e,r)=>{if(!e||!r||this.reading)return;this.debug&&console.log(`State update ${e} - ${r.val}`);let n=!1;for(let a=0;ac.ts-d.ts?-1:c.ts(a.toString().includes(Xs)&&this.onErrorFunc&&this.onErrorFunc(a),console.error(`Cannot read systemConfig: ${a.toString()}`),null)).then(a=>(this.systemConfig=a!=null&&a.common?a.common:{},this.defaultHistory=this.systemConfig.defaultHistory,this.analyseAndLoadConfig(r)))}async analyseAndLoadConfig(e){var r,n,a,i,o;if(e)typeof e=="string"?this.preset=e:this.config=Xg(e);else if(!this.serverSide){const s=h7(window.location.search);if(this.debug=s.debug===!0||s.debug==="true"||s.debug===1||s.debug==="1",s.preset&&typeof s.preset=="string")this.preset=s.preset;else{const l=h7((window.location.hash||"").toString().replace(/^#/,""));let c={};if(l.data&&typeof l.data=="string")try{c=JSON.parse(l.data)}catch{}if(s.data&&typeof s.data=="string")try{Object.assign(c,JSON.parse(s.data),!0)}catch{}l.preset?(this.preset=l.preset,(l.range||l.relativeEnd)&&(this.hash={range:l.range,relativeEnd:l.relativeEnd})):(l.noLoader!==void 0&&(c.noLoader=l.noLoader===!0||l.noLoader==="true"||l.noLoader===1||l.noLoader==="1"),s.noLoader!==void 0&&(c.noLoader=s.noLoader===!0||s.noLoader==="true"||s.noLoader===1||s.noLoader==="1"),this.config=Xg(c))}}if(this.seriesData=[],this.barData=[],this.barCategories=null,this.updateInterval&&(clearInterval(this.updateInterval),this.updateInterval=null),this.preset){(!this.preset.startsWith("echarts.")&&!this.preset.startsWith("flot.")||!this.preset.includes("."))&&(this.preset=`echarts.0.${this.preset}`);try{const s=await this.socket.getObject(this.preset);if(!((r=s==null?void 0:s.native)!=null&&r.data)||s.type!=="chart"){console.error(`[ChartModel] Invalid object ${this.preset}: ${JSON.stringify(s)}`);return}this.config=Xg(s.native.data),this.config.useComma=this.config.useComma===void 0?this.systemConfig.isFloatComma:this.config.useComma,this.config.lang=this.systemConfig.language,this.config.live=parseInt(this.config.live,10)||0,this.config.debug=this.debug,this.config.presetId=this.preset,(n=this.hash)!=null&&n.range&&(typeof this.hash.range=="string"&&!this.hash.range.includes("y")&&!this.hash.range.includes("m")?this.config.range=parseInt(this.hash.range,10):this.config.range=this.hash.range),(a=this.hash)!=null&&a.relativeEnd&&(this.config.relativeEnd=this.hash.relativeEnd),await this.readData(),!this.serverSide&&this.presetSubscribed!==this.preset&&(this.presetSubscribed&&await this.socket.unsubscribeObject(this.presetSubscribed,this.onPresetUpdate),this.presetSubscribed=this.preset,await this.socket.subscribeObject(this.preset,this.onPresetUpdate)),!this.serverSide&&this.config.live&&!((i=this.zoomData)!=null&&i.stopLive)&&(this.updateInterval=setInterval(()=>this.readData(),this.config.live*1e3))}catch(s){s===Xs&&this.onErrorFunc&&this.onErrorFunc(s),console.error(`Cannot read "${this.preset}": ${s}`)}}else this.config.useComma=this.config.useComma===void 0?this.systemConfig.isFloatComma===!0:this.config.useComma===!0,this.config.lang=this.systemConfig.language,this.config.live=parseInt(this.config.live,10)||0,this.config.debug=this.debug,await this.readData(),!this.serverSide&&this.config.live&&!((o=this.zoomData)!=null&&o.stopLive)&&(this.updateInterval=setInterval(()=>this.readData(),this.config.live*1e3))}setNewRange(e){var r;if(this.debug&&console.log(`[ChartModel] [${new Date().toISOString()}] setNewRange: ${JSON.stringify(e)}`),!e)this.zoomData&&(this.zoomData=null,this.readOnZoomTimeout&&clearTimeout(this.readOnZoomTimeout),this.readOnZoomTimeout=setTimeout(()=>{this.readOnZoomTimeout=null,this.config.live&&(!this.zoomData||!this.zoomData.stopLive)&&(console.log("Restore update"),this.updateInterval&&clearInterval(this.updateInterval),this.updateInterval=setInterval(()=>this.readData(),this.config.live*1e3)),this.readData()},this.updateTimeout));else if(e.stopLive)this.zoomData=this.zoomData||{},this.zoomData.stopLive=!0,this.updateInterval&&(console.log("Clear interval"),clearInterval(this.updateInterval),this.updateInterval=null);else{const n=(r=this.zoomData)==null?void 0:r.stopLive;n&&delete this.zoomData.stopLive,!this.zoomData||JSON.stringify(this.zoomData)!==JSON.stringify(e)?(this.zoomData=e,n&&(this.zoomData.stopLive=!0),this.readOnZoomTimeout&&clearTimeout(this.readOnZoomTimeout),this.readOnZoomTimeout=setTimeout(()=>{this.readOnZoomTimeout=null,this.readData()},this.updateTimeout)):n&&(this.zoomData.stopLive=!0)}}destroy(){this.subscribed&&(this.serverSide||this.subscribes.forEach(e=>this.socket.unsubscribeState(e,this.onStateChange)),this.subscribes=[],this.subscribed=!1),this.readOnZoomTimeout&&(clearTimeout(this.readOnZoomTimeout),this.readOnZoomTimeout=null),this.presetUpdateTimeout&&(clearTimeout(this.presetUpdateTimeout),this.presetUpdateTimeout=null),this.presetSubscribed&&(this.serverSide||this.socket.unsubscribeObject(this.presetSubscribed,this.onPresetUpdate),this.presetSubscribed=null),this.updateInterval&&(clearInterval(this.updateInterval),this.updateInterval=null),this.serverSide||this.onHashInstalled&&(window.removeEventListener("hashchange",this.onHashChange,!1),this.onHashInstalled=!1)}onUpdate(e){this.onUpdateFunc=e}onReading(e){this.onReadingFunc=e}onError(e){this.onErrorFunc=e}getConfig(){return this.config}getSystemConfig(){return this.systemConfig}setConfig(e){this.analyseAndLoadConfig(e)}increaseRegionForBar(e,r,n){this.config.aggregateBar=parseInt(this.config.aggregateBar,10)||0;let a=typeof r=="number"?r:r.getTime(),i=typeof e=="number"?e:e.getTime();if(this.config.aggregateBar||(a-i<=36e5*12?this.config.aggregateBar=15:a-i>=36e5*24*60?this.config.aggregateBar=43200:a-i>36e5*24*3?this.config.aggregateBar=1440:this.config.aggregateBar=60),n=n||{},this.config.aggregateBar===15){const o=new Date(i);o.setMinutes(Math.floor(o.getMinutes()/15)*15),this.config.postProcessing==="diff"&&o.setMinutes(o.getMinutes()-15),o.setSeconds(0),o.setMilliseconds(0),i=o.getTime();const s=new Date(a);s.setMinutes(Math.ceil(s.getMinutes()/15)*15),s.setSeconds(0),s.setMilliseconds(0),a=s.getTime(),n.count=Math.round((a-i)/9e5)}else if(this.config.aggregateBar===60){const o=new Date(i);o.setMinutes(0),o.setSeconds(0),o.setMilliseconds(0),this.config.postProcessing==="diff"&&o.setMinutes(o.getMinutes()-60),i=o.getTime();const s=new Date(a);s.setMinutes(60),s.setSeconds(0),s.setMilliseconds(0),a=s.getTime(),n.count=Math.round((a-i)/36e5)}else if(this.config.aggregateBar===1440){const o=new Date(i);o.setHours(0),o.setMinutes(0),o.setSeconds(0),o.setMilliseconds(0),this.config.postProcessing==="diff"&&o.setDate(o.getDate()-1),i=o.getTime();const s=new Date(a);s.setDate(s.getDate()+1),s.setHours(0),s.setMinutes(0),s.setSeconds(0),s.setMilliseconds(0),a=s.getTime(),n.count=Math.round((a-i)/864e5)}else if(this.config.aggregateBar===43200){const o=new Date(i);o.setDate(1),o.setHours(0),o.setMinutes(0),o.setSeconds(0),o.setMilliseconds(0),this.config.postProcessing==="diff"&&o.setDate(o.getDate()-30),i=o.getTime();const s=new Date(a);s.setDate(1),s.setHours(0),s.setMinutes(0),s.setMonth(s.getMonth()+1),s.setSeconds(0),s.setMilliseconds(0),a=s.getTime(),n.count=Math.round((a-i)/(864e5*30))}n.start=i,n.end=a}getStartStop(e,r){let n,a,i,o;if(this.config.l[e].offset=this.config.l[e].offset||0,typeof this.config.range=="string"&&this.config.range.includes("m")&&this.config.l.length>1){const s=parseInt(this.config.range,10)||1;for(let l=0;l1){const s=parseInt(this.config.range,10)||1;for(let l=0;lc+d,0);i[o]=l/s.length}else if(n==="min"){let l=s[0];for(let c=1;cl&&(l=s[c]);i[o]=l}else n==="total"?i[o]=s.reduce((l,c)=>l+c,0):i[o]=s[s.length-1]}if(a==="diff"){for(let o=e.length-1;o>0;o--)i[o-1]!==null&&i[o]!==null?i[o]-=i[o-1]:i[o]=0;i.splice(0,1),r.splice(0,1)}for(let o=0;os.push([]))}let c;if((u=r.convert)!=null&&u.trim()){if(!this.convertFunctions[r.convert.trim()]){let f=r.convert.trim();f.includes("return")||(f=`return ${f}`);try{c=new Function("val",f)}catch(p){console.error(`[ChartModel] Cannot parse convert function: ${p}`)}}c=this.convertFunctions[r.convert.trim()]}for(let f=0;f=n[f].ts&&n[f].tsthis.now)break;const v={value:[n[f].ts,p]};n[f].i&&(v.exact=!1),o.push(v)}}if(r.chartType!=="bar"&&r.chartType!=="polar"){let f=typeof a.end=="number"?a.end:a.end.getTime();const p=typeof a.start=="number"?a.start:a.start.getTime();if(f>this.now&&(f=this.now),o.length){o[0].value[0]>p&&o.unshift({value:[p,null],exact:!1});const v=o[o.length-1];v.value[0]v.value[0]>g.value[0]?1:v.value[0]c),s[0]){const c=Object.keys(s[0]);(!c.includes("val")||!c.includes("ts"))&&(c.includes("y")&&c.includes("t")?s=s.map(d=>({ts:d.t,val:d.y})):(c.includes("y")?s.forEach(d=>d.val=d.y):c.includes("value")?s.forEach(d=>d.val=d.value):c.includes("data")?s.forEach(d=>d.val=d.data):c.includes("v")&&s.forEach(d=>d.val=d.v),c.includes("t")?s.forEach(d=>d.ts=d.t):c.includes("time")?s.forEach(d=>d.ts=d.time):c.includes("date")&&s.forEach(d=>d.ts=d.date))),s[0].ts&&(typeof s[0].ts=="string"&&window.isFinite(s[0].ts)?s.forEach(d=>d.ts=parseInt(d.ts,10)):typeof s[0].ts=="string"&&new Date(s[0].ts).toString()!=="Invalid Date"&&s.forEach(d=>d.ts=new Date(d.ts).getTime()),typeof s[0].ts=="number"&&s[0].ts<9466812e5&&s.forEach(d=>d.ts*=1e3))}s.sort((c,d)=>c.ts-d.ts?-1:c.ts({ts:c.t,val:c.y})):(l.includes("y")?s.forEach(c=>c.val=c.y):l.includes("value")?s.forEach(c=>c.val=c.value):l.includes("data")?s.forEach(c=>c.val=c.data):l.includes("v")&&s.forEach(c=>c.val=c.v),l.includes("t")?s.forEach(c=>c.ts=c.t):l.includes("time")?s.forEach(c=>c.ts=c.time):l.includes("date")&&s.forEach(c=>c.ts=c.date))),s[0].ts&&(typeof s[0].ts=="string"&&window.isFinite(s[0].ts)?s.forEach(c=>c.ts=parseInt(c.ts,10)):typeof s[0].ts=="string"&&new Date(s[0].ts).toString()!=="Invalid Date"&&s.forEach(c=>c.ts=new Date(c.ts).getTime()),typeof s[0].ts=="number"&&s[0].ts<9466812e5&&s.forEach(c=>c.ts*=1e3))}return Array.isArray(s)||(s=[],console.warn("JSON is not an array")),s.sort((l,c)=>l.ts-c.ts?-1:l.ts(r.toString().includes(Xs)&&this.onErrorFunc&&this.onErrorFunc(r),console.error(`Cannot read "${e}": ${r.toString()}`),null))),this.objectPromises[e]}async _readOneLine(e){const r=this.config.l[e];try{const n=await this._readObject(r.id);if(n!=null&&n.common){const a=r.name||n.common.name;if(r.name=a&&typeof a=="object"?a[this.systemConfig.language]||a.en||r.id:a||"",r.unit=r.unit||(n.common.unit?n.common.unit.replace("�","°"):""),r.type=n.common.type,r.chartType==="auto"&&(r.chartType=n.common.type==="boolean"?"steps":"line",r.aggregate=n.common.type==="boolean"?"none":"minmax"),r.unit&&(r.falseText||r.trueText)&&delete r.unit,n.common.states&&!Array.isArray(n.common.states)&&r.states!==!1&&!n.common.unit){if(r.states?r.states=Object.assign(n.common.states,r.states):r.states=n.common.states,Object.keys(r.states).find(i=>i==="true"||i==="false")){const i={};Object.keys(r.states).forEach(o=>{i[o==="true"?1:o==="false"?0:o]=r.states[o]}),r.states=i}r.unit&&r.states&&delete r.unit}(r.commonYAxis||r.commonYAxis===0)&&(r.yaxe="off")}}catch(n){n===Xs&&this.onErrorFunc&&this.onErrorFunc(n),console.error(`[ChartModel] Cannot read object ${r.id}: ${n}`)}r.name=r.name||r.id||"",r.unit=r.unit||"",r.chartType==="auto"&&(r.chartType="line",r.aggregate="minmax"),await this.readOneChart(r.id,r.instance||this.defaultHistory,e)}async _readData(){var e;for(let r=0;rn.start&&i.unshift({value:[n.start,""]}),i[i.length-1].value[0]{r.chartType==="bar"?e[n]=this.barData[n]:e[n]=this.seriesData[n]}),this.onUpdateFunc(e,this.actualValues,this.barCategories)}static addTime(e,r,n){const a=new Date(e);return typeof r=="string"?r[1]==="m"||r[2]==="m"?(r=parseInt(r,10),a.setMonth(a.getMonth()-r),e=a.getTime()):r[1]==="y"||r[2]==="y"?(r=parseInt(r,10),a.setFullYear(a.getFullYear()-r),e=a.getTime()):(e=a.getTime(),n?e-=(parseInt(r,10)||0)*6e4:e-=(parseInt(r,10)||0)*1e3):(r=r||0,e=a.getTime(),n?e-=r*6e4:e-=r*1e3),e}async exportData(e,r,n){const a={};for(let i=0;i16777215&&(this.sessionId=1),this.config.l){this.reading=!0,this.onReadingFunc&&this.onReadingFunc(!0),this.seriesData=[],this.barData=[],this.barCategories=null,await this._readData();for(let e=0;e=0)&&Object.prototype.propertyIsEnumerable.call(t,n)&&(r[n]=t[n])}return r}function Nbt(t,e){if(t==null)return{};var r={};for(var n in t)if(Object.prototype.hasOwnProperty.call(t,n)){if(e.indexOf(n)>=0)continue;r[n]=t[n]}return r}function fx(){return fx=Object.assign?Object.assign.bind():function(t){for(var e=1;eE.createElement(e.tag,hx({key:r},e.attr),IJ(e.child)))}function wv(t){return e=>E.createElement(jbt,fx({attr:hx({},t.attr)},e),IJ(t.child))}function jbt(t){var e=r=>{var{attr:n,size:a,title:i}=t,o=Lbt(t,Rbt),s=a||r.size||"1em",l;return r.className&&(l=r.className),t.className&&(l=(l?l+" ":"")+t.className),E.createElement("svg",fx({stroke:"currentColor",fill:"currentColor",strokeWidth:"0"},r.attr,n,o,{className:l,style:hx(hx({color:t.color||r.color},r.style),t.style),height:s,width:s,xmlns:"http://www.w3.org/2000/svg"}),i&&E.createElement("title",null,i),t.children)};return p7!==void 0?E.createElement(p7.Consumer,null,r=>e(r)):e(PJ)}function Wbt(t){return wv({tag:"svg",attr:{viewBox:"0 0 448 512"},child:[{tag:"path",attr:{d:"M16 132h416c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H16C7.163 60 0 67.163 0 76v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z"},child:[]}]})(t)}function Hbt(t){return wv({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z"},child:[]}]})(t)}function Ubt(t){return wv({tag:"svg",attr:{viewBox:"0 0 448 512"},child:[{tag:"path",attr:{d:"M320 448v40c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V120c0-13.255 10.745-24 24-24h72v296c0 30.879 25.121 56 56 56h168zm0-344V0H152c-13.255 0-24 10.745-24 24v368c0 13.255 10.745 24 24 24h272c13.255 0 24-10.745 24-24V128H344c-13.2 0-24-10.8-24-24zm120.971-31.029L375.029 7.029A24 24 0 0 0 358.059 0H352v96h96v-6.059a24 24 0 0 0-7.029-16.97z"},child:[]}]})(t)}function Ybt(t){return wv({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M216 0h80c13.3 0 24 10.7 24 24v168h87.7c17.8 0 26.7 21.5 14.1 34.1L269.7 378.3c-7.5 7.5-19.8 7.5-27.3 0L90.1 226.1c-12.6-12.6-3.7-34.1 14.1-34.1H192V24c0-13.3 10.7-24 24-24zm296 376v112c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24V376c0-13.3 10.7-24 24-24h146.7l49 49c20.1 20.1 52.5 20.1 72.6 0l49-49H488c13.3 0 24 10.7 24 24zm-124 88c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20zm64 0c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20z"},child:[]}]})(t)}function Vbt(t){return wv({tag:"svg",attr:{viewBox:"0 0 576 512"},child:[{tag:"path",attr:{d:"M384 121.9c0-6.3-2.5-12.4-7-16.9L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128zM571 308l-95.7-96.4c-10.1-10.1-27.4-3-27.4 11.3V288h-64v64h64v65.2c0 14.3 17.3 21.4 27.4 11.3L571 332c6.6-6.6 6.6-17.4 0-24zm-379 28v-32c0-8.8 7.2-16 16-16h176V160H248c-13.2 0-24-10.8-24-24V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V352H208c-8.8 0-16-7.2-16-16z"},child:[]}]})(t)}function Gbt(t){return wv({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M256.455 8c66.269.119 126.437 26.233 170.859 68.685l35.715-35.715C478.149 25.851 504 36.559 504 57.941V192c0 13.255-10.745 24-24 24H345.941c-21.382 0-32.09-25.851-16.971-40.971l41.75-41.75c-30.864-28.899-70.801-44.907-113.23-45.273-92.398-.798-170.283 73.977-169.484 169.442C88.764 348.009 162.184 424 256 424c41.127 0 79.997-14.678 110.629-41.556 4.743-4.161 11.906-3.908 16.368.553l39.662 39.662c4.872 4.872 4.631 12.815-.482 17.433C378.202 479.813 319.926 504 256 504 119.034 504 8.001 392.967 8 256.002 7.999 119.193 119.646 7.755 256.455 8z"},child:[]}]})(t)}//! moment.js //! version : 2.30.1 //! authors : Tim Wood, Iskren Chernev, Moment.js contributors //! license : MIT @@ -606,4 +606,4 @@ yyyy`);var n=xo(e),a=r?"getUTC":"get",i=n[a+"FullYear"](),o=n[a+"Month"]()+1,s=n {a|${o.toString().padStart(2,"0")}.${(a.getMonth()+1).toString().padStart(2,"0")}.}`),this.lastFormattedTime=e,n){if(this.chart.withSeconds)return`${i+to(a.getHours())}:${to(a.getMinutes())}:${to(a.getSeconds())}${i?"{b|..}":""}`;if(this.chart.withTime)return`${i+to(a.getHours())}:${to(a.getMinutes())}${i?"{b|..}":""}`}if(this.chart.withSeconds)return`${to(a.getHours())}:${to(a.getMinutes())}:${to(a.getSeconds())}${i}`;if(this.chart.withTime)return`${to(a.getHours())}:${to(a.getMinutes())}${i}`}return`${to(o)}.${to(a.getMonth()+1)} ${a.getFullYear()}`}getInterpolatedValue(e,r,n,a){var s;const o=((s=this.option)==null?void 0:s.series)[e].data;if(!(o!=null&&o[0])||o[0].value[0]>r||o[o.length-1].value[0]u.chartType==="bar"||u.chartType==="polar");let s;const l=r.map((u,f)=>{var b;const p=this.config.l[f],v=e.find(w=>w.seriesIndex===f);if(o){if(!v)return null;let w;if(p.afterComma!==void 0){const x=10**p.afterComma;w=Math.round(v.value*x)/x}else w=v.value;return s=v.name,`
${p.name}:
${w}${p.unit||""}
`}let g;if(v&&(g={exact:v.data.exact!==void 0?v.data.exact:!0,val:v.value[1]}),g=g||this.getInterpolatedValue(f,n,p.type,i),!g||!g.exact&&this.config.hoverNoInterpolate)return"";const _=g.val===null?"null":this.yFormatter(g.val,f,!1,!g.exact,!0);return`
${u.name}:
${g.exact?"":"i "}${_}${g.val!==null?p.unit:""}
`});if(o){const u=this.config.timeFormat||"dd, MM Do YYYY, HH:mm",f=new Date(parseInt(s.substring(1),10));return`${this.moment(f).format(u)}
${l.filter(p=>p).join("
")}`}const c=this.config.timeFormat||"dd, MM Do YYYY, HH:mm:ss.SSS";return`${this.moment(a).format(c)}
${l.filter(u=>u).join("
")}`}getLegend(e){if(!this.config.legend||this.config.legend==="dialog")return;const r={data:this.config.l.map(n=>n.name),show:!0,left:this.config.legend==="nw"||this.config.legend==="sw"?this.chart.padLeft+1:void 0,right:this.config.legend==="ne"||this.config.legend==="se"?this.chart.padRight+1:void 0,top:this.config.legend==="nw"||this.config.legend==="ne"?this.chart.padTop+2:void 0,bottom:this.config.legend==="sw"||this.config.legend==="se"?this.chart.padBottom+2:void 0,backgroundColor:this.config.legBg||void 0,height:this.config.legendHeight||void 0,formatter:n=>{if(this.config.legActual&&e){for(let a=0;ar.selected[n.name]=n.hide!==!0),r}getTitle(){if(!this.config||!this.config.title)return;const e={};return(this.config.titlePos||"top:35;left:65").split(";").forEach(r=>{const n=r.split(":");e[n[0].trim()]=parseInt(n[1].trim(),10)}),{text:this.config.title,textStyle:{fontSize:this.config.titleSize?parseInt(this.config.titleSize,10):20,color:this.config.titleColor||(this.themeType==="light"?"#000":"#FFF")},textVerticalAlign:e.bottom?"bottom":"top",textAlign:e.left===50?"center":e.right===-5?"right":"left",top:e.top===35?5+this.chart.padTop:e.top===50?"50%":void 0,left:e.left===50?"50%":e.left===65?this.chart.padLeft:void 0,bottom:e.bottom?e.bottom>0?e.bottom+this.chart.padBottom-15:e.bottom:void 0,right:e.right===5?this.chart.padRight:void 0}}getOption(e,r,n,a){var u;r&&(this.config=JSON.parse(JSON.stringify(r)));const i=this.isTouch&&this.config.zoom;let o=this.config.theme;(!o||o==="default")&&(o=this.themeType==="light"?"roma":"dark-bold"),this.debug=(u=this.config)==null?void 0:u.debug,this.debug&&console.log(`[ChartView ] [${new Date().toISOString()}] ${JSON.stringify(this.config,null,2)}`);const s=this.getSeries(e,o);if(this.config.start){const f=parseInt(this.config.end,10);this.chart.xMaxp&&(this.chart.xMin=p)}this.chart.diff=this.chart.xMax-this.chart.xMin,this.chart.withTime=this.chart.diff<36e5*24*7,this.chart.withSeconds=this.chart.diff<6e4*30,this.config.y_labels_size=parseInt(this.config.y_labels_size,10)||12,this.config.x_labels_size=parseInt(this.config.x_labels_size,10)||12,this.config.legFontSize=parseInt(this.config.legFontSize,10)||12;const l=this.getYAxis(s),c=this.getXAxis(a),d={theme:o,backgroundColor:"transparent",animation:!this.config.noAnimation&&!this.config.noLoader,grid:{backgroundColor:this.config.bg_custom||"transparent",show:!!this.config.bg_custom,left:10,top:8,right:this.config.export===!0||this.config.export==="true"?30:0,bottom:this.compact?4:this.isXLabelHasBreak()?40:24,containLabel:this.config.autoGridPadding},tooltip:!this.compact&&this.config.hoverDetail?{trigger:"axis",formatter:f=>this.renderTooltip(f)}:void 0,axisPointer:this.compact&&this.config.hoverDetail?{animation:!0}:void 0,xAxis:c,yAxis:l,series:s,useCanvas:i};if(this.config.l.forEach((f,p)=>{f.aggregate==="current"&&(d.series[p].data=[n[p]])}),this.config.l.find(f=>f.chartType==="polar")){d.animation=!1,d.radar={shape:this.config.radarCircle==="circle"?"circle":void 0,indicator:[]};const f=[{type:"radar",data:[{value:[]}],lineStyle:{color:d.series[0].color},label:d.series[0].label}];d.series.forEach((p,v)=>{const g=this.config.l[v].max&&parseFloat(this.config.l[v].max)||void 0;d.radar.indicator.push({name:p.name+(g!==void 0?` (max ${this.yFormatter(g,v,!0)})`:""),max:g});let _;for(let b=p.data.length-1;b>=0;b--)if(p.data[b]!==void 0&&p.data[b]!==null){_=p.data[b];break}_!==void 0?f[0].data[0].value.push(_):f[0].data[0].value.push(0)}),d.series=f,delete d.xAxis,delete d.yAxis,delete d.grid}else if(this.getMarkings(d),!this.compact&&!this.config.autoGridPadding){const f=s;let p=0,v=0,g=0,_=0;f.forEach((b,w)=>{let x=d.yAxis[b.yAxisIndex];if(!x){const L=this.config.l[b.yAxisIndex]?this.config.l[b.yAxisIndex].commonYAxis:void 0;if(L!==void 0)x=d.yAxis[L];else if(this.config.l[w].chartType==="bar"){x={min:b.data[0],max:b.data[0]};for(let $=1;$x.max||x.max===null)&&(x.max=b.data[$]))}else{console.log(`Cannot find Y axis for line ${w}`);return}}const C=this.yFormatter(x.min,w,!0,!1,!0),M=this.yFormatter(!x.min&&x.max===x.min?.8:x.max,w,!0,!1,!0);c[0].position==="top"?_=this.isXLabelHasBreak()?40:24:c[0].position==="bottom"&&(g=this.isXLabelHasBreak()?40:24);const k=x.position;if(x.axisLabel&&x.axisLabel.color==="rgba(0,0,0,0)")return;const O=this.calcTextWidth(C,this.config.y_labels_size)+4;let R=this.calcTextWidth(M,this.config.y_labels_size)+4;if(b.states){let L="";Object.keys(b.states).forEach($=>{b.states[$].length>L.length&&(L=b.states[$])}),R=this.calcTextWidth(L,this.config.y_labels_size)+4}k!=="right"?(O>p&&(p=O),R>p&&(p=R)):(O>v&&(v=O),R>v&&(v=R))}),d.grid.left=p+10,d.grid.right=v+10+(this.config.export===!0||this.config.export==="true"?20:0),d.grid.right<=10&&(_||g)&&(d.grid.right=18),d.grid.left<=10&&(_||g)&&(d.grid.left=18),this.chart.padLeft=d.grid.left,this.chart.padRight=d.grid.right,_||(_=8),g||(g=8),d.grid.top=_,d.grid.bottom=g,this.chart.padTop=d.grid.top,this.chart.padBottom=d.grid.bottom}return d.legend=this.getLegend(n),d.title=this.getTitle(),!this.config.grid_color&&Array.isArray(d.yAxis)&&(d.yAxis.forEach(f=>f.splitLine&&delete f.splitLine.lineStyle),d.xAxis.forEach(f=>f.splitLine&&delete f.splitLine.lineStyle)),this.option=d,this.option}}var Vw={};oa([Ure,PNt]);const w5t={init:function(){return X5.apply(null,arguments)}};oa(BAt);const S5t=Object.freeze(Object.defineProperty({__proto__:null,Axis:J0,ChartView:ia,ComponentModel:Jt,ComponentView:Cn,List:gl,Model:$r,PRIORITY:V5,SeriesModel:Da,color:iK,connect:Mee,dataTool:Lee,default:w5t,dependencies:_ee,disConnect:Oee,disconnect:J5,dispose:$ee,env:xt,extendChartView:bte,extendComponentModel:gte,extendComponentView:_te,extendSeriesModel:yte,format:lte,getCoordinateSystemDimensions:Pee,getInstanceByDom:WT,getInstanceById:Aee,getMap:Ree,graphic:ste,helper:rte,init:X5,innerDrawElementOnCanvas:BT,matrix:YZ,number:ite,parseGeoJSON:Zx,parseGeoJson:Zx,registerAction:Ao,registerCoordinateSystem:Q5,registerLayout:e3,registerLoading:VT,registerLocale:OT,registerMap:r3,registerPostInit:Z5,registerPostUpdate:K5,registerPreprocessor:UT,registerProcessor:YT,registerTheme:HT,registerTransform:n3,registerUpdateLifecycle:q0,registerVisual:Bc,setCanvasCreator:Iee,setPlatformAPI:GN,throttle:Y0,time:ote,use:oa,util:cte,vector:WZ,version:gee,zrUtil:zZ,zrender:bK},Symbol.toStringTag,{value:"Module"})),sa=ER(S5t);var IV;function x5t(){return IV||(IV=1,function(t){(function(e,r){typeof t.nodeName!="string"?r(t,sa):r({},e.echarts)})(Vw,function(e,r){var n=function(o){typeof console<"u"&&console&&console.error&&console.error(o)};if(!r){n("ECharts is not Loaded");return}var a=["#f2385a","#f5a503","#4ad9d9","#f7879c","#c1d7a8","#4dffd2","#fccfd7","#d5f6f6"],i={color:a,title:{textStyle:{fontWeight:"normal",color:"#f2385a"}},visualMap:{color:["#f2385a","#f5a503"]},toolbox:{color:["#f2385a","#f2385a","#f2385a","#f2385a"]},tooltip:{backgroundColor:"rgba(0,0,0,0.5)",axisPointer:{type:"line",lineStyle:{color:"#f2385a",type:"dashed"},crossStyle:{color:"#f2385a"},shadowStyle:{color:"rgba(200,200,200,0.3)"}}},dataZoom:{dataBackgroundColor:"#eee",fillerColor:"rgba(200,200,200,0.2)",handleColor:"#f2385a"},timeline:{lineStyle:{color:"#f2385a"},controlStyle:{color:"#f2385a",borderColor:"#f2385a"}},candlestick:{itemStyle:{color:"#f2385a",color0:"#f5a503"},lineStyle:{width:1,color:"#f2385a",color0:"#f5a503"},areaStyle:{color:"#c1d7a8",color0:"#4ad9d9"}},map:{itemStyle:{color:"#f2385a"},areaStyle:{color:"#ddd"},label:{color:"#c12e34"}},graph:{itemStyle:{color:"#f2385a"},linkStyle:{color:"#f2385a"}},gauge:{axisLine:{lineStyle:{color:[[.2,"#f5a503"],[.8,"#f2385a"],[1,"#c1d7a8"]],width:8}}}};r.registerTheme("azul",i)})}(Vw)),Vw}x5t();var Gw={},RV;function C5t(){return RV||(RV=1,function(t){(function(e,r){typeof t.nodeName!="string"?r(t,sa):r({},e.echarts)})(Gw,function(e,r){var n=function(o){typeof console<"u"&&console&&console.error&&console.error(o)};if(!r){n("ECharts is not Loaded");return}var a=["#001727","#805500","#ffff00","#ffd11a","#f2d71f","#f2be19","#f3a81a","#fff5cc"],i={color:a,title:{textStyle:{fontWeight:"normal",color:"#001727"}},visualMap:{color:["#001727","#805500"]},toolbox:{color:["#001727","#001727","#001727","#001727"]},tooltip:{backgroundColor:"rgba(0,0,0,0.5)",axisPointer:{type:"line",lineStyle:{color:"#001727",type:"dashed"},crossStyle:{color:"#001727"},shadowStyle:{color:"rgba(200,200,200,0.3)"}}},dataZoom:{dataBackgroundColor:"#eee",fillerColor:"rgba(200,200,200,0.2)",handleColor:"#001727"},timeline:{lineStyle:{color:"#001727"},controlStyle:{color:"#001727",borderColor:"#001727"}},candlestick:{itemStyle:{color:"#f3a81a",color0:"#ffff00"},lineStyle:{width:1,color:"#ffff00",color0:"#f3a81a"},areaStyle:{color:"#805500",color0:"#ffff00"}},chord:{padding:4,itemStyle:{color:"#f3a81a",borderWidth:1,borderColor:"rgba(128, 128, 128, 0.5)"},lineStyle:{color:"rgba(128, 128, 128, 0.5)"},areaStyle:{color:"#805500"}},map:{itemStyle:{color:"#ffd11a"},areaStyle:{color:"#f2be19"},label:{color:"#ffd11a"}},graph:{itemStyle:{color:"#001727"},linkStyle:{color:"#001727"}},gauge:{axisLine:{lineStyle:{color:[[.2,"#f2d71f"],[.8,"#001727"],[1,"#ffff00"]],width:8}}}};r.registerTheme("bee-inspired",i)})}(Gw)),Gw}C5t();var qw={},LV;function T5t(){return LV||(LV=1,function(t){(function(e,r){typeof t.nodeName!="string"?r(t,sa):r({},e.echarts)})(qw,function(e,r){var n=function(o){typeof console<"u"&&console&&console.error&&console.error(o)};if(!r){n("ECharts is not Loaded");return}var a=["#1790cf","#1bb2d8","#99d2dd","#88b0bb","#1c7099","#038cc4","#75abd0","#afd6dd"],i={color:a,title:{textStyle:{fontWeight:"normal",color:"#1790cf"}},visualMap:{color:["#1790cf","#a2d4e6"]},toolbox:{color:["#1790cf","#1790cf","#1790cf","#1790cf"]},tooltip:{backgroundColor:"rgba(0,0,0,0.5)",axisPointer:{type:"line",lineStyle:{color:"#1790cf",type:"dashed"},crossStyle:{color:"#1790cf"},shadowStyle:{color:"rgba(200,200,200,0.3)"}}},dataZoom:{dataBackgroundColor:"#eee",fillerColor:"rgba(144,197,237,0.2)",handleColor:"#1790cf"},timeline:{lineStyle:{color:"#1790cfa"},controlStyle:{color:"#1790cf",borderColor:"#1790cf"}},candlestick:{itemStyle:{color:"#1bb2d8",color0:"#99d2dd"},lineStyle:{width:1,color:"#1c7099",color0:"#88b0bb"},areaStyle:{color:"#1790cf",color0:"#1bb2d8"}},chord:{padding:4,itemStyle:{color:"#1bb2d8",borderWidth:1,borderColor:"rgba(128, 128, 128, 0.5)"},lineStyle:{color:"rgba(128, 128, 128, 0.5)"},areaStyle:{color:"#1790cf"}},graph:{itemStyle:{color:"#1bb2d8"},linkStyle:{color:"#88b0bb"}},map:{itemStyle:{color:"#ddd"},areaStyle:{color:"99d2dd"},label:{color:"#c12e34"}},gauge:{axisLine:{lineStyle:{color:[[.2,"#1bb2d8"],[.8,"#1790cf"],[1,"#1c7099"]],width:8}}}};r.registerTheme("blue",i)})}(qw)),qw}T5t();var Xw={},NV;function k5t(){return NV||(NV=1,function(t){(function(e,r){typeof t.nodeName!="string"?r(t,sa):r({},e.echarts)})(Xw,function(e,r){var n=function(o){typeof console<"u"&&console&&console.error&&console.error(o)};if(!r){n("ECharts is not Loaded");return}var a=["#C1232B","#27727B","#FCCE10","#E87C25","#B5C334","#FE8463","#9BCA63","#FAD860","#F3A43B","#60C0DD","#D7504B","#C6E579","#F4E001","#F0805A","#26C0C0"],i={color:a,title:{textStyle:{fontWeight:"normal",color:"#27727B"}},visualMap:{color:["#C1232B","#FCCE10"]},toolbox:{iconStyle:{borderColor:a[0]}},tooltip:{backgroundColor:"rgba(50,50,50,0.5)",axisPointer:{type:"line",lineStyle:{color:"#27727B",type:"dashed"},crossStyle:{color:"#27727B"},shadowStyle:{color:"rgba(200,200,200,0.3)"}}},dataZoom:{dataBackgroundColor:"rgba(181,195,52,0.3)",fillerColor:"rgba(181,195,52,0.2)",handleColor:"#27727B"},categoryAxis:{axisLine:{lineStyle:{color:"#27727B"}},splitLine:{show:!1}},valueAxis:{axisLine:{show:!1},splitArea:{show:!1},splitLine:{lineStyle:{color:["#ccc"],type:"dashed"}}},timeline:{itemStyle:{color:"#27727B"},lineStyle:{color:"#27727B"},controlStyle:{color:"#27727B",borderColor:"#27727B"},symbol:"emptyCircle",symbolSize:3},line:{itemStyle:{borderWidth:2,borderColor:"#fff",lineStyle:{width:3}},emphasis:{itemStyle:{borderWidth:0}},symbol:"circle",symbolSize:3.5},candlestick:{itemStyle:{color:"#c1232b",color0:"#b5c334"},lineStyle:{width:1,color:"#c1232b",color0:"#b5c334"},areaStyle:{color:"#c1232b",color0:"#27727b"}},graph:{itemStyle:{color:"#c1232b"},linkStyle:{color:"#b5c334"}},map:{itemStyle:{color:"#f2385a",areaColor:"#ddd",borderColor:"#eee"},areaStyle:{color:"#fe994e"},label:{color:"#c1232b"}},gauge:{axisLine:{lineStyle:{color:[[.2,"#B5C334"],[.8,"#27727B"],[1,"#C1232B"]]}},axisTick:{splitNumber:2,length:5,lineStyle:{color:"#fff"}},axisLabel:{color:"#fff"},splitLine:{length:"5%",lineStyle:{color:"#fff"}},title:{offsetCenter:[0,-20]}}};r.registerTheme("infographic",i)})}(Xw)),Xw}k5t();var Jw={},FV;function E5t(){return FV||(FV=1,function(t){(function(e,r){typeof t.nodeName!="string"?r(t,sa):r({},e.echarts)})(Jw,function(e,r){var n=function(i){typeof console<"u"&&console&&console.error&&console.error(i)};if(!r){n("ECharts is not Loaded");return}var a=["#d87c7c","#919e8b","#d7ab82","#6e7074","#61a0a8","#efa18d","#787464","#cc7e63","#724e58","#4b565b"];r.registerTheme("vintage",{color:a,backgroundColor:"#fef8ef",graph:{color:a}})})}(Jw)),Jw}E5t();var Zw={},zV;function D5t(){return zV||(zV=1,function(t){(function(e,r){typeof t.nodeName!="string"?r(t,sa):r({},e.echarts)})(Zw,function(e,r){var n=function(c){typeof console<"u"&&console&&console.error&&console.error(c)};if(!r){n("ECharts is not Loaded");return}var a="#B9B8CE",i="#100C2A",o=function(){return{axisLine:{lineStyle:{color:a}},splitLine:{lineStyle:{color:"#484753"}},splitArea:{areaStyle:{color:["rgba(255,255,255,0.02)","rgba(255,255,255,0.05)"]}},minorSplitLine:{lineStyle:{color:"#20203B"}}}},s=["#4992ff","#7cffb2","#fddd60","#ff6e76","#58d9f9","#05c091","#ff8a45","#8d48e3","#dd79ff"],l={darkMode:!0,color:s,backgroundColor:i,axisPointer:{lineStyle:{color:"#817f91"},crossStyle:{color:"#817f91"},label:{color:"#fff"}},legend:{textStyle:{color:a}},textStyle:{color:a},title:{textStyle:{color:"#EEF1FA"},subtextStyle:{color:"#B9B8CE"}},toolbox:{iconStyle:{borderColor:a}},dataZoom:{borderColor:"#71708A",textStyle:{color:a},brushStyle:{color:"rgba(135,163,206,0.3)"},handleStyle:{color:"#353450",borderColor:"#C5CBE3"},moveHandleStyle:{color:"#B0B6C3",opacity:.3},fillerColor:"rgba(135,163,206,0.2)",emphasis:{handleStyle:{borderColor:"#91B7F2",color:"#4D587D"},moveHandleStyle:{color:"#636D9A",opacity:.7}},dataBackground:{lineStyle:{color:"#71708A",width:1},areaStyle:{color:"#71708A"}},selectedDataBackground:{lineStyle:{color:"#87A3CE"},areaStyle:{color:"#87A3CE"}}},visualMap:{textStyle:{color:a}},timeline:{lineStyle:{color:a},label:{color:a},controlStyle:{color:a,borderColor:a}},calendar:{itemStyle:{color:i},dayLabel:{color:a},monthLabel:{color:a},yearLabel:{color:a}},timeAxis:o(),logAxis:o(),valueAxis:o(),categoryAxis:o(),line:{symbol:"circle"},graph:{color:s},gauge:{title:{color:a}},candlestick:{itemStyle:{color:"#FD1050",color0:"#0CF49B",borderColor:"#FD1050",borderColor0:"#0CF49B"}}};l.categoryAxis.splitLine.show=!1,r.registerTheme("dark",l)})}(Zw)),Zw}D5t();var Kw={},BV;function M5t(){return BV||(BV=1,function(t){(function(e,r){typeof t.nodeName!="string"?r(t,sa):r({},e.echarts)})(Kw,function(e,r){var n=function(o){typeof console<"u"&&console&&console.error&&console.error(o)};if(!r){n("ECharts is not Loaded");return}var a=["#2ec7c9","#b6a2de","#5ab1ef","#ffb980","#d87a80","#8d98b3","#e5cf0d","#97b552","#95706d","#dc69aa","#07a2a4","#9a7fd1","#588dd5","#f5994e","#c05050","#59678c","#c9ab00","#7eb00a","#6f5553","#c14089"],i={color:a,title:{textStyle:{fontWeight:"normal",color:"#008acd"}},visualMap:{itemWidth:15,color:["#5ab1ef","#e0ffff"]},toolbox:{iconStyle:{borderColor:a[0]}},tooltip:{borderWidth:0,backgroundColor:"rgba(50,50,50,0.5)",textStyle:{color:"#FFF"},axisPointer:{type:"line",lineStyle:{color:"#008acd"},crossStyle:{color:"#008acd"},shadowStyle:{color:"rgba(200,200,200,0.2)"}}},dataZoom:{dataBackgroundColor:"#efefff",fillerColor:"rgba(182,162,222,0.2)",handleColor:"#008acd"},grid:{borderColor:"#eee"},categoryAxis:{axisLine:{lineStyle:{color:"#008acd"}},splitLine:{lineStyle:{color:["#eee"]}}},valueAxis:{axisLine:{lineStyle:{color:"#008acd"}},splitArea:{show:!0,areaStyle:{color:["rgba(250,250,250,0.1)","rgba(200,200,200,0.1)"]}},splitLine:{lineStyle:{color:["#eee"]}}},timeline:{lineStyle:{color:"#008acd"},controlStyle:{color:"#008acd",borderColor:"#008acd"},symbol:"emptyCircle",symbolSize:3},line:{smooth:!0,symbol:"emptyCircle",symbolSize:3},candlestick:{itemStyle:{color:"#d87a80",color0:"#2ec7c9"},lineStyle:{width:1,color:"#d87a80",color0:"#2ec7c9"},areaStyle:{color:"#2ec7c9",color0:"#b6a2de"}},scatter:{symbol:"circle",symbolSize:4},map:{itemStyle:{color:"#ddd"},areaStyle:{color:"#fe994e"},label:{color:"#d87a80"}},graph:{itemStyle:{color:"#d87a80"},linkStyle:{color:"#2ec7c9"}},gauge:{axisLine:{lineStyle:{color:[[.2,"#2ec7c9"],[.8,"#5ab1ef"],[1,"#d87a80"]],width:10}},axisTick:{splitNumber:10,length:15,lineStyle:{color:"auto"}},splitLine:{length:22,lineStyle:{color:"auto"}},pointer:{width:5}}};r.registerTheme("macarons",i)})}(Kw)),Kw}M5t();var Qw={},jV;function O5t(){return jV||(jV=1,function(t){(function(e,r){typeof t.nodeName!="string"?r(t,sa):r({},e.echarts)})(Qw,function(e,r){var n=function(o){typeof console<"u"&&console&&console.error&&console.error(o)};if(!r){n("ECharts is not Loaded");return}var a=["#c12e34","#e6b600","#0098d9","#2b821d","#005eaa","#339ca8","#cda819","#32a487"],i={color:a,title:{textStyle:{fontWeight:"normal"}},visualMap:{color:["#1790cf","#a2d4e6"]},toolbox:{iconStyle:{borderColor:"#06467c"}},tooltip:{backgroundColor:"rgba(0,0,0,0.6)"},dataZoom:{dataBackgroundColor:"#dedede",fillerColor:"rgba(154,217,247,0.2)",handleColor:"#005eaa"},timeline:{lineStyle:{color:"#005eaa"},controlStyle:{color:"#005eaa",borderColor:"#005eaa"}},candlestick:{itemStyle:{color:"#c12e34",color0:"#2b821d"},lineStyle:{width:1,color:"#c12e34",color0:"#2b821d"},areaStyle:{color:"#e6b600",color0:"#005eaa"}},graph:{itemStyle:{color:"#e6b600"},linkStyle:{color:"#005eaa"}},map:{itemStyle:{color:"#f2385a",borderColor:"#eee",areaColor:"#ddd"},areaStyle:{color:"#ddd"},label:{color:"#c12e34"}},gauge:{axisLine:{show:!0,lineStyle:{color:[[.2,"#2b821d"],[.8,"#005eaa"],[1,"#c12e34"]],width:5}},axisTick:{splitNumber:10,length:8,lineStyle:{color:"auto"}},axisLabel:{color:"auto"},splitLine:{length:12,lineStyle:{color:"auto"}},pointer:{length:"90%",width:3,color:"auto"},title:{color:"#333"},detail:{color:"auto"}}};r.registerTheme("shine",i)})}(Qw)),Qw}O5t();var eS={},WV;function $5t(){return WV||(WV=1,function(t){(function(e,r){typeof t.nodeName!="string"?r(t,sa):r({},e.echarts)})(eS,function(e,r){var n=function(o){typeof console<"u"&&console&&console.error&&console.error(o)};if(!r){n("ECharts is not Loaded");return}var a=["#E01F54","#001852","#f5e8c8","#b8d2c7","#c6b38e","#a4d8c2","#f3d999","#d3758f","#dcc392","#2e4783","#82b6e9","#ff6347","#a092f1","#0a915d","#eaf889","#6699FF","#ff6666","#3cb371","#d5b158","#38b6b6"],i={color:a,visualMap:{color:["#e01f54","#e7dbc3"],textStyle:{color:"#333"}},candlestick:{itemStyle:{color:"#e01f54",color0:"#001852"},lineStyle:{width:1,color:"#f5e8c8",color0:"#b8d2c7"},areaStyle:{color:"#a4d8c2",color0:"#f3d999"}},graph:{itemStyle:{color:"#a4d8c2"},linkStyle:{color:"#f3d999"}},gauge:{axisLine:{lineStyle:{color:[[.2,"#E01F54"],[.8,"#b8d2c7"],[1,"#001852"]],width:8}}}};r.registerTheme("roma",i)})}(eS)),eS}$5t();var tS={},HV;function A5t(){return HV||(HV=1,function(t){(function(e,r){typeof t.nodeName!="string"?r(t,sa):r({},e.echarts)})(tS,function(e,r){var n=function(o){typeof console<"u"&&console&&console.error&&console.error(o)};if(!r){n("ECharts is not Loaded");return}var a=["#3f7ea6","#993366","#408000","#8c6f56","#a65149","#731f17","#adc2eb","#d9c3b0"],i={color:a,title:{textStyle:{fontWeight:"normal",color:"#3f7ea6"}},visualMap:{color:["#3f7ea6","#993366"]},toolbox:{color:["#3f7ea6","#3f7ea6","#3f7ea6","#3f7ea6"]},tooltip:{backgroundColor:"rgba(0,0,0,0.5)",axisPointer:{type:"line",lineStyle:{color:"#3f7ea6",type:"dashed"},crossStyle:{color:"#3f7ea6"},shadowStyle:{color:"rgba(200,200,200,0.3)"}}},dataZoom:{dataBackgroundColor:"#eee",fillerColor:"rgba(200,200,200,0.2)",handleColor:"#3f7ea6"},timeline:{lineStyle:{color:"#3f7ea6"},controlStyle:{color:"#3f7ea6",borderColor:"#3f7ea6"}},candlestick:{itemStyle:{color:"#d9c3b0",color0:"#8c6f56"},lineStyle:{width:1,color:"#731f17",color0:"#a65149"},areaStyle:{color:"#3f7ea6",color0:"#993366"}},map:{itemStyle:{color:"#d9c3b0"},areaStyle:{color:"#ddd"},label:{color:"#c12e34"}},graph:{itemStyle:{color:"#993366"},linkStyle:{color:"#3f7ea6"}},gauge:{axisLine:{lineStyle:{color:[[.2,"#d9c3b0"],[.8,"#3f7ea6"],[1,"#731f17"]],width:8}}}};r.registerTheme("royal",i)})}(tS)),tS}A5t();var rS={},UV;function P5t(){return UV||(UV=1,function(t){(function(e,r){typeof t.nodeName!="string"?r(t,sa):r({},e.echarts)})(rS,function(e,r){var n=function(l){typeof console<"u"&&console&&console.error&&console.error(l)};if(!r){n("ECharts is not Loaded");return}var a="#eee",i=function(){return{axisLine:{lineStyle:{color:a}},axisTick:{lineStyle:{color:a}},axisLabel:{color:a},splitLine:{lineStyle:{type:"dashed",color:"#aaa"}},splitArea:{areaStyle:{color:a}}}},o=["#00305a","#004b8d","#0074d9","#4192d9","#7abaf2","#99cce6","#d6ebf5","#eeeeee"],s={color:o,backgroundColor:"#333",tooltip:{axisPointer:{lineStyle:{color:a},crossStyle:{color:a}}},legend:{textStyle:{color:a}},title:{textStyle:{color:a}},toolbox:{iconStyle:{borderColor:a}},dataZoom:{dataBackgroundColor:"#eee",fillerColor:"rgba(200,200,200,0.2)",handleColor:"#00305a"},timeline:{itemStyle:{color:o[1]},lineStyle:{color:a},controlStyle:{color:a,borderColor:a},label:{color:a}},timeAxis:i(),logAxis:i(),valueAxis:i(),categoryAxis:i(),line:{symbol:"circle"},graph:{color:o},gauge:{axisLine:{lineStyle:{color:[[.2,"#004b8d"],[.8,"#00305a"],[1,"#7abaf2"]],width:8}}}};s.categoryAxis.splitLine.show=!1,r.registerTheme("dark-blue",s)})}(rS)),rS}P5t();var nS={},YV;function I5t(){return YV||(YV=1,function(t){(function(e,r){typeof t.nodeName!="string"?r(t,sa):r({},e.echarts)})(nS,function(e,r){var n=function(o){typeof console<"u"&&console&&console.error&&console.error(o)};if(!r){n("ECharts is not Loaded");return}var a=["#4d4d4d","#3a5897","#007bb6","#7094db","#0080ff","#b3b3ff","#00bdec","#33ccff","#ccddff","#eeeeee"],i={color:a,title:{textStyle:{fontWeight:"normal",color:"#00aecd"}},visualMap:{color:["#00aecd","#a2d4e6"]},toolbox:{color:["#00aecd","#00aecd","#00aecd","#00aecd"]},tooltip:{backgroundColor:"rgba(0,0,0,0.5)",axisPointer:{type:"line",lineStyle:{color:"#00aecd",type:"dashed"},crossStyle:{color:"#00aecd"},shadowStyle:{color:"rgba(200,200,200,0.3)"}}},dataZoom:{dataBackgroundColor:"#eee",fillerColor:"rgba(144,197,237,0.2)",handleColor:"#00aecd"},timeline:{lineStyle:{color:"#00aecd"},controlStyle:{color:"#00aecd"},emphasis:{controlStyle:{color:"#00aecd"}}},candlestick:{itemStyle:{color:"#ddd",color0:"#eee"},lineStyle:{width:1,color:"#33ccff",color0:"#1bb4cf"},areaStyle:{color:"#7094db",color0:"#33ccff"}},chord:{padding:4,itemStyle:{color:"#7094db",borderWidth:1,borderColor:"rgba(128, 128, 128, 0.5)"},lineStyle:{color:"rgba(128, 128, 128, 0.5)"},areaStyle:{color:"#33ccff"}},graph:{itemStyle:{color:"#7094db"},linkStyle:{color:"#33ccff"}},map:{itemStyle:{color:"#7094db"},areaStyle:{color:"#33ccff"},label:{color:"#ddd"}},gauge:{axisLine:{lineStyle:{color:[[.2,"#dddddd"],[.8,"#00aecd"],[1,"#33ccff"]],width:8}}}};r.registerTheme("tech-blue",i)})}(nS)),nS}I5t();var aS={},VV;function R5t(){return VV||(VV=1,function(t){(function(e,r){typeof t.nodeName!="string"?r(t,sa):r({},e.echarts)})(aS,function(e,r){var n=function(o){typeof console<"u"&&console&&console.error&&console.error(o)};if(!r){n("ECharts is not Loaded");return}var a=["#d8361b","#f16b4c","#f7b4a9","#d26666","#99311c","#c42703","#d07e75"],i={color:a,title:{textStyle:{fontWeight:"normal",color:"#d8361b"}},visualMap:{color:["#d8361b","#ffd2d2"]},dataRange:{color:["#bd0707","#ffd2d2"]},toolbox:{color:["#d8361b","#d8361b","#d8361b","#d8361b"]},tooltip:{backgroundColor:"rgba(0,0,0,0.5)",axisPointer:{type:"line",lineStyle:{color:"#d8361b",type:"dashed"},crossStyle:{color:"#d8361b"},shadowStyle:{color:"rgba(200,200,200,0.3)"}}},dataZoom:{dataBackgroundColor:"#eee",fillerColor:"rgba(216,54,27,0.2)",handleColor:"#d8361b"},grid:{borderWidth:0},categoryAxis:{axisLine:{lineStyle:{color:"#d8361b"}},splitLine:{lineStyle:{color:["#eee"]}}},valueAxis:{axisLine:{lineStyle:{color:"#d8361b"}},splitArea:{show:!0,areaStyle:{color:["rgba(250,250,250,0.1)","rgba(200,200,200,0.1)"]}},splitLine:{lineStyle:{color:["#eee"]}}},timeline:{lineStyle:{color:"#d8361b"},controlStyle:{color:"#d8361b",borderColor:"#d8361b"}},candlestick:{itemStyle:{color:"#f16b4c",color0:"#f7b4a9"},lineStyle:{width:1,color:"#d8361b",color0:"#d26666"},areaStyle:{color:"#d8361b",color0:"#d07e75"}},graph:{itemStyle:{color:"#d07e75"},linkStyle:{color:"#d8361b"}},chord:{padding:4,itemStyle:{color:"#d07e75",borderWidth:1,borderColor:"rgba(128, 128, 128, 0.5)"},lineStyle:{color:"rgba(128, 128, 128, 0.5)"},areaStyle:{color:"#d8361b"}},map:{itemStyle:{color:"#d8361b"},areaStyle:{color:"#d07e75"},label:{color:"#c12e34"}},gauge:{axisLine:{lineStyle:{color:[[.2,"#f16b4c"],[.8,"#d8361b"],[1,"#99311c"]],width:8}}}};r.registerTheme("red",i)})}(aS)),aS}R5t();var iS={},GV;function L5t(){return GV||(GV=1,function(t){(function(e,r){typeof t.nodeName!="string"?r(t,sa):r({},e.echarts)})(iS,function(e,r){var n=function(o){typeof console<"u"&&console&&console.error&&console.error(o)};if(!r){n("ECharts is not Loaded");return}var a=["#8b1a2d","#a7314b","#e6004c","#ff8066","#8e5c4e","#ff1a66","#d6c582","#f0d4af"],i={color:a,title:{textStyle:{fontWeight:"normal",color:"#8b1a2d"}},visualMap:{color:["#8b1a2d","#a7314b"]},toolbox:{color:["#8b1a2d","#8b1a2d","#8b1a2d","#8b1a2d"]},tooltip:{backgroundColor:"rgba(0,0,0,0.5)",axisPointer:{type:"line",lineStyle:{color:"#8b1a2d",type:"dashed"},crossStyle:{color:"#8b1a2d"},shadowStyle:{color:"rgba(200,200,200,0.3)"}}},dataZoom:{dataBackgroundColor:"#eee",fillerColor:"rgba(200,200,200,0.2)",handleColor:"#8b1a2d"},timeline:{lineStyle:{color:"#8b1a2d"},controlStyle:{color:"#8b1a2d",borderColor:"#8b1a2d"}},candlestick:{itemStyle:{color:"#a7314b",color0:"#d6c582"},lineStyle:{width:1,color:"#8e5c4e",color0:"#f0d4af"},areaStyle:{color:"#8b1a2d",color0:"#ff8066"}},map:{itemStyle:{color:"#8b1a2d"},areaStyle:{color:"#ff8066"},label:{color:"#c12e34"}},graph:{itemStyle:{color:"#ff8066"},linkStyle:{color:"#8b1a2d"}},gauge:{axisLine:{lineStyle:{color:[[.2,"#a7314b"],[.8,"#8b1a2d"],[1,"#8e5c4e"]],width:8}}}};r.registerTheme("red-velvet",i)})}(iS)),iS}L5t();var oS={},qV;function N5t(){return qV||(qV=1,function(t){(function(e,r){typeof t.nodeName!="string"?r(t,sa):r({},e.echarts)})(oS,function(e,r){var n=function(o){typeof console<"u"&&console&&console.error&&console.error(o)};if(!r){n("ECharts is not Loaded");return}var a=["#408829","#68a54a","#a9cba2","#86b379","#397b29","#8abb6f","#759c6a","#bfd3b7"],i={color:a,title:{textStyle:{fontWeight:"normal",color:"#408829"}},visualMap:{color:["408829","#a9cba2"]},toolbox:{color:["#408829","#408829","#408829","#408829"]},tooltip:{backgroundColor:"rgba(0,0,0,0.5)",axisPointer:{type:"line",lineStyle:{color:"#408829",type:"dashed"},crossStyle:{color:"#408829"},shadowStyle:{color:"rgba(200,200,200,0.3)"}}},dataZoom:{dataBackgroundColor:"#eee",fillerColor:"rgba(64,136,41,0.2)",handleColor:"#408829"},grid:{borderWidth:0},categoryAxis:{axisLine:{lineStyle:{color:"#408829"}},splitLine:{lineStyle:{color:["#eee"]}}},valueAxis:{axisLine:{lineStyle:{color:"#408829"}},splitArea:{show:!0,areaStyle:{color:["rgba(250,250,250,0.1)","rgba(200,200,200,0.1)"]}},splitLine:{lineStyle:{color:["#eee"]}}},timeline:{lineStyle:{color:"#408829"},controlStyle:{color:"#408829",borderColor:"#408829"}},candlestick:{itemStyle:{color:"#68a54a",color0:"#a9cba2"},lineStyle:{width:1,color:"#408829",color0:"#86b379"},areaStyle:{color:"#408829",color0:"#bfd3b7"}},graph:{itemStyle:{color:"#bfd3b7"},linkStyle:{color:"#408829"}},chord:{padding:4,itemStyle:{color:"#bfd3b7",borderWidth:1,borderColor:"rgba(128, 128, 128, 0.5)"},lineStyle:{color:"rgba(128, 128, 128, 0.5)"},areaStyle:{color:"#408829"}},map:{itemStyle:{color:"#ddd"},areaStyle:{color:"#408829"},label:{color:"#000"}},gauge:{axisLine:{lineStyle:{color:[[.2,"#86b379"],[.8,"#68a54a"],[1,"#408829"]],width:8}}}};r.registerTheme("green",i)})}(oS)),oS}N5t();var sS={},XV;function F5t(){return XV||(XV=1,function(t){(function(e,r){typeof t.nodeName!="string"?r(t,sa):r({},e.echarts)})(sS,function(e,r){var n=function(o){typeof console<"u"&&console&&console.error&&console.error(o)};if(!r){n("ECharts is not Loaded");return}var a=["#757575","#c7c7c7","#dadada","#8b8b8b","#b5b5b5","#e9e9e9"],i={color:a,title:{textStyle:{fontWeight:"normal",color:"#757575"}},dataRange:{color:["#636363","#dcdcdc"]},toolbox:{color:["#757575","#757575","#757575","#757575"]},tooltip:{backgroundColor:"rgba(0,0,0,0.5)",axisPointer:{type:"line",lineStyle:{color:"#757575",type:"dashed"},crossStyle:{color:"#757575"},shadowStyle:{color:"rgba(200,200,200,0.3)"}}},dataZoom:{dataBackgroundColor:"#eee",fillerColor:"rgba(117,117,117,0.2)",handleColor:"#757575"},grid:{borderWidth:0},categoryAxis:{axisLine:{lineStyle:{color:"#757575"}},splitLine:{lineStyle:{color:["#eee"]}}},valueAxis:{axisLine:{lineStyle:{color:"#757575"}},splitArea:{show:!0,areaStyle:{color:["rgba(250,250,250,0.1)","rgba(200,200,200,0.1)"]}},splitLine:{lineStyle:{color:["#eee"]}}},timeline:{lineStyle:{color:"#757575"},controlStyle:{color:"#757575",borderColor:"#757575"}},candlestick:{itemStyle:{color:"#8b8b8b",color0:"#dadada"},lineStyle:{width:1,color:"#757575",color0:"#c7c7c7"},areaStyle:{color:"#757575",color0:"#e9e9e9"}},map:{itemStyle:{color:"#c7c7c7"},areaStyle:{color:"ddd"},label:{color:"#c12e34"}},graph:{itemStyle:{color:"#e9e9e9"},linkStyle:{color:"#757575"}},chord:{padding:4,itemStyle:{color:"#e9e9e9",borderWidth:1,borderColor:"rgba(128, 128, 128, 0.5)"},lineStyle:{color:"rgba(128, 128, 128, 0.5)"},areaStyle:{color:"#757575"}},gauge:{axisLine:{lineStyle:{color:[[.2,"#b5b5b5"],[.8,"#757575"],[1,"#5c5c5c"]],width:8}}}};r.registerTheme("gray",i)})}(sS)),sS}F5t();var lS={},JV;function z5t(){return JV||(JV=1,function(t){(function(e,r){typeof t.nodeName!="string"?r(t,sa):r({},e.echarts)})(lS,function(e,r){var n=function(l){typeof console<"u"&&console&&console.error&&console.error(l)};if(!r){n("ECharts is not Loaded");return}var a="#eee",i=function(){return{axisLine:{lineStyle:{color:a}},axisTick:{lineStyle:{color:a}},axisLabel:{color:a},splitLine:{lineStyle:{type:"dashed",color:"#aaa"}},splitArea:{areaStyle:{color:a}}}},o=["#458c6b","#f2da87","#d9a86c","#d94436","#a62424","#76bc9b","#cce6da","#eeeeee"],s={color:o,backgroundColor:"#333",tooltip:{axisPointer:{lineStyle:{color:a},crossStyle:{color:a}}},legend:{textStyle:{color:a}},title:{textStyle:{color:a}},toolbox:{iconStyle:{borderColor:a}},dataZoom:{dataBackgroundColor:"#eee",fillerColor:"rgba(200,200,200,0.2)",handleColor:"#458c6b"},timeline:{itemStyle:{color:o[1]},lineStyle:{color:a},controlStyle:{color:a,borderColor:a},label:{color:a}},timeAxis:i(),logAxis:i(),valueAxis:i(),categoryAxis:i(),line:{symbol:"circle"},graph:{color:o},gauge:{axisLine:{lineStyle:{color:[[.2,"#f2da87"],[.8,"#458c6b"],[1,"#a62424"]],width:8}}}};s.categoryAxis.splitLine.show=!1,r.registerTheme("dark-bold",s)})}(lS)),lS}z5t();oa([RY,oLt,DLt,uNt,ONt,FLt,qLt,eNt,TLt,RY,cPt,cIt,TPt,bIt,h5t,Ure]);const Mu={chart:{maxHeight:"100%",maxWidth:"100%",width:"100%",height:"100%",overflow:"hidden",position:"relative"},saveImageButton:{position:"absolute",top:40,right:5,width:20,height:20,zIndex:2,opacity:.7,cursor:"pointer"},exportDataButton:{position:"absolute",top:70,right:5,width:20,height:20,zIndex:2,opacity:.7,cursor:"pointer"},copyButton:{position:"absolute",top:100,right:5,width:20,height:20,zIndex:2,opacity:.7,cursor:"pointer"},resetButton:{position:"absolute",top:10,right:25,zIndex:2,opacity:.7},legendButton:{position:"absolute",top:10,left:30,zIndex:2,opacity:.7},resetButtonIcon:{paddingTop:6}};let ZV=null;function B5t(t,e,r){const a=(ZV||(ZV=document.createElement("canvas"))).getContext("2d");a.font=`${e||12}px ${r||"Microsoft YaHei"}`;const i=a.measureText(t);return Math.ceil(i.width)}class j5t extends E.Component{constructor(r){var n,a;super(r);de(this,"divRef");de(this,"echartsReact",null);de(this,"divResetButton");de(this,"selected",null);de(this,"lastIds");de(this,"chartOption");de(this,"resetZoomAndTiltTimer",null);de(this,"timerResize",null);de(this,"updatePropertiesTimeout",null);de(this,"updateDataTimer",null);de(this,"debug",!1);de(this,"mouseDown",!1);de(this,"option",null);de(this,"zr",null);de(this,"zrMousemove",!1);de(this,"zrIobInstalled",!1);de(this,"updateProperties",r=>{var n,a;if(this.updatePropertiesTimeout=null,this.echartsReact&&typeof this.echartsReact.getEchartsInstance=="function"){const i=this.echartsReact.getEchartsInstance(),o=((a=(n=r.config)==null?void 0:n.l)==null?void 0:a.map(l=>l.id))||[];o.sort();const s=JSON.stringify(o)!==JSON.stringify(this.lastIds);s&&(this.lastIds=o,i.clear()),this.option=this.chartOption.getOption(r.data,r.config,r.actualValues,r.categories),this.applySelected(),this.debug&&console.log(`[ChartView ] [${new Date().toISOString()}] updateProperties: {min: ${this.option.xAxis[0].min}, ${this.option.xAxis[0].max}}`);try{i.setOption(this.option,s)}catch{console.error(`Cannot apply options: ${JSON.stringify(this.option)}`)}}});de(this,"onResize",()=>{this.timerResize&&clearTimeout(this.timerResize),this.timerResize=setTimeout(()=>{this.timerResize=null,this.componentDidUpdate()})});de(this,"onMouseMove",r=>{if(this.mouseDown){this.divResetButton.current&&this.divResetButton.current.style.display!=="block"&&(this.divResetButton.current.style.display="block");const n=this.chartOption.getHelperChartData();if(r.shiftKey){n.yMoved=!0;const a=n.lastY-(r.offsetY-n.padTop);n.lastY=r.offsetY-n.padTop;const i=this.state.chartHeight-n.padTop-n.padBottom;let o,s;n._yAxis.forEach(l=>{s=l.max-l.min,o=a*s/i,l.min-=o,l.max-=o}),this.setNewYAxis(n._yAxis)}else{n.xMoved=!0;const a=n.lastX-(r.offsetX-n.padLeft);n.lastX=r.offsetX-n.padLeft;const i=n.xMax-n.xMin,o=this.state.chartWidth-n.padRight-n.padLeft,s=Math.round(a*i/o);n.xMin+=s,n.xMax+=s,this.setNewRange()}}});de(this,"onMouseDown",r=>{this.mouseDown=!0;const n=this.chartOption.getHelperChartData();n.lastX=r.offsetX,n.lastY=r.offsetY,n.yMoved=!1,n.xMoved=!1,n._yAxis=JSON.parse(JSON.stringify(n.yAxis)),this.zr&&!this.zrMousemove&&(this.zrMousemove=!0,this.zr.on("mousemove",this.onMouseMove)),this.props.config.live&&this.props.onRangeChange&&(console.log("Stop update"),this.props.onRangeChange({stopLive:!0}))});de(this,"onMouseUp",()=>{this.mouseDown=!1,this.chartOption.getHelperChartData().xMoved&&this.setNewRange(!0),this.zr&&this.zrMousemove&&(this.zrMousemove=!1,this.zr.off("mousemove",this.onMouseMove))});de(this,"onMouseWheel",r=>{const n=this.chartOption.getHelperChartData();if(r.shiftKey){const a=this.state.chartHeight-n.padBottom-n.padTop,o=(r.offsetY-n.padTop)/a,s=r.deltaY>0||r.deltaX>0?1.1:.9,l=JSON.parse(JSON.stringify(n.yAxis));n.yAxis.forEach(c=>{let d=c.max-c.min;const u=d;d*=s;const f=u-d;c.max+=f*(1-o),c.min-=f*o}),this.setNewYAxis(l)}else{let a=n.xMax-n.xMin;const i=this.state.chartWidth-n.padRight-n.padLeft,s=(r.offsetX-n.padLeft)/i,l=a,c=r.deltaY>0||r.deltaX>0?1.1:.9;a*=c;const d=l-a;n.xMax+=d*(1-s),n.xMin-=d*s,this.setNewRange(),this.updateDataTimer&&clearTimeout(this.updateDataTimer),this.updateDataTimer=setTimeout(()=>this.setNewRange(!0),1e3)}});de(this,"onTouchStart",r=>{this.mouseDown=!0;const n=r.touches||r.originalEvent.touches;if(n){r.preventDefault(),r.stopImmediatePropagation();const a=this.chartOption.getHelperChartData();a.lastX=n[n.length-1].pageX,n.length>1?a.lastWidth=Math.round(Math.abs(n[0].pageX-n[1].pageX)):a.lastWidth=null}});de(this,"onTouchEnd",r=>{this.mouseDown&&(r.stopImmediatePropagation(),r.preventDefault(),this.mouseDown=!1,this.setNewRange(!0))});de(this,"onTouchMove",r=>{const n=r.touches||r.originalEvent.touches;if(!n)return;const a=this.chartOption.getHelperChartData(),i=n[n.length-1].pageX-a.padLeft;if(this.mouseDown)if(r.preventDefault(),r.stopImmediatePropagation(),this.divResetButton.current&&this.divResetButton.current.style.display!=="block"&&(this.divResetButton.current.style.display="block"),n.length>1){console.log(`touch move: ${n.length}`);const o=Math.round(Math.abs(n[0].pageX-n[1].pageX));if(a.lastWidth!==null&&o!==a.lastWidth){let s=a.xMax-a.xMin;const l=this.state.chartWidth-a.padRight-a.padLeft,c=o>a.lastWidth?1.05:.95,u=(n[0].pageX>n[1].pageX?n[1].pageX-a.padLeft+o/2:n[0].pageX-a.padLeft+o/2)/l,f=s;s*=c;const p=f-s;console.log(`Move: ${Math.round(p/1e3)} => ${Math.round(p*u/1e3)} -- ${Math.round(p*(1-u)/1e3)}`),a.xMax+=p*(1-u),a.xMin-=p*u,a.xMax=Math.round(a.xMax),a.xMin=Math.round(a.xMin),this.setNewRange()}a.lastWidth=o}else{const o=a.lastX-i,s=a.xMax-a.xMin,l=this.state.chartWidth-a.padRight-a.padLeft,c=Math.round(o*s/l);a.xMin+=c,a.xMax+=c,this.setNewRange()}a.lastX=i});this.state={chartHeight:null,chartWidth:null,excluded:[],timeFormat:window.localStorage.getItem("Chart.timeFormat")||"locale",data:null,exporting:!1,showExportDataDialog:!1,showLegendDialog:!1},this.divRef=E.createRef(),this.divResetButton=E.createRef(),Ye.locale(te.getLanguage()),this.lastIds=((a=(n=this.props.config)==null?void 0:n.l)==null?void 0:a.map(i=>i.id))||[],this.lastIds.sort(),this.chartOption=new aC(Ye,this.props.themeType,B5t,void 0,this.props.compact)}componentDidMount(){window.addEventListener("resize",this.onResize)}componentWillUnmount(){this.resetZoomAndTiltTimer&&(clearTimeout(this.resetZoomAndTiltTimer),this.resetZoomAndTiltTimer=null),this.timerResize&&(clearTimeout(this.timerResize),this.timerResize=null),this.updatePropertiesTimeout&&(clearTimeout(this.updatePropertiesTimeout),this.updatePropertiesTimeout=null),this.updateDataTimer&&(clearTimeout(this.updateDataTimer),this.updateDataTimer=null),window.removeEventListener("resize",this.onResize)}UNSAFE_componentWillReceiveProps(r){r.data!==this.state.data&&(this.updatePropertiesTimeout&&clearTimeout(this.updatePropertiesTimeout),this.updatePropertiesTimeout=setTimeout(this.updateProperties,100,r))}setNewRange(r){var a;const n=this.chartOption.getHelperChartData();if(n.diff=n.xMax-n.xMin,n.withTime=n.diff<36e5*24*7,n.withSeconds=n.diff<6e4*30,console.log(`[ChartView ] [${new Date().toISOString()}] setNewRange: ${!!r}, {min: ${new Date(n.xMin).toString()}, max: ${new Date(n.xMax).toString()}}`),r)this.updateDataTimer&&(clearTimeout(this.updateDataTimer),this.updateDataTimer=null),this.props.onRangeChange&&this.props.onRangeChange({start:n.xMin,end:n.xMax}),this.props.config.resetZoom&&(this.resetZoomAndTiltTimer&&clearTimeout(this.resetZoomAndTiltTimer),this.resetZoomAndTiltTimer=setTimeout(()=>{this.resetZoomAndTiltTimer=null,this.divResetButton.current&&(this.divResetButton.current.style.display="none"),this.props.onRangeChange&&this.props.onRangeChange()},1e3*this.props.config.resetZoom));else{console.log(`[ChartView ] [${new Date().toISOString()}] setOption in setNewRange`),this.option.xAxis[0].min=n.xMin,this.option.xAxis[0].max=n.xMax;try{typeof((a=this.echartsReact)==null?void 0:a.getEchartsInstance)=="function"&&this.echartsReact.getEchartsInstance().setOption({xAxis:{min:n.xMin,max:n.xMax}})}catch{console.error(`Cannot apply options 1: ${JSON.stringify(this.option)}`)}}}setNewYAxis(r){var n;this.option.yAxis=r;try{typeof((n=this.echartsReact)==null?void 0:n.getEchartsInstance)=="function"&&this.echartsReact.getEchartsInstance().setOption({yAxis:r})}catch{console.error(`Cannot apply options 2: ${JSON.stringify(this.option)}`)}}installEventHandlers(){var a;this.zr=(a=this.echartsReact)!=null&&a.getEchartsInstance?this.echartsReact.getEchartsInstance().getZr():null;const r=this.divRef.current&&this.divRef.current.getElementsByClassName("echarts-for-react"),n=r==null?void 0:r[0];this.zr&&this.props.config.zoom&&!this.zrIobInstalled?(this.zrIobInstalled=!0,!this.option||!this.option.useCanvas?(this.zr.on("mousedown",this.onMouseDown),this.zr.on("mouseup",this.onMouseUp),this.zr.on("mousewheel",this.onMouseWheel)):n&&(n.addEventListener("touchstart",this.onTouchStart,!1),n.addEventListener("touchend",this.onTouchEnd,!1),n.addEventListener("touchmove",this.onTouchMove,!1))):this.zr&&!this.props.config.zoom&&this.zrIobInstalled&&(this.zrIobInstalled=!1,this.option||!this.option.useCanvas?(this.zr.off("mousedown",this.onMouseDown),this.zr.off("mouseup",this.onMouseUp),this.zr.off("mousewheel",this.onMouseWheel),this.zr&&this.zrMousemove&&(this.zrMousemove=!1,this.zr.off("mousemove",this.onMouseMove))):n&&(n.removeEventListener("touchstart",this.onTouchStart,!1),n.removeEventListener("touchend",this.onTouchEnd,!1),n.removeEventListener("touchmove",this.onTouchMove,!1)))}applySelected(){this.props.config.legend==="dialog"?(this.option.legend={data:this.props.config.l.map(r=>r.name),show:!1,selected:{}},this.props.config.l.forEach(r=>this.option.legend.selected[r.name]=!this.state.excluded.includes(r.id))):this.selected&&this.option.legend&&Object.keys(this.selected).forEach(r=>this.option.legend.selected[r]=this.selected[r])}renderChart(){if(this.props.data){this.option=this.option||this.chartOption.getOption(this.props.data,this.props.config,this.props.actualValues,this.props.categories);const r=!!this.props.config.l.find(n=>n.chartType==="bar"||n.chartType==="polar");return this.props.config.title?window.document.title=this.props.config.title:this.props.config.presetId&&(window.document.title=this.props.config.presetId),this.debug&&console.log(`[ChartView ] [${new Date().toISOString()}] render chart`),this.applySelected(),q.jsx(JCt,{ref:n=>{this.echartsReact=n},echarts:jAt,option:this.option,notMerge:!0,lazyUpdate:!0,theme:this.option.theme,style:{height:`${this.state.chartHeight}px`,width:"100%"},opts:this.option&&this.option.useCanvas?void 0:{renderer:"svg"},onEvents:{legendselectchanged:n=>{this.selected=JSON.parse(JSON.stringify(n.selected))},rendered:()=>!this.props.compact&&this.props.config.zoom&&!r&&this.installEventHandlers()}})}return q.jsx(bL,{})}componentDidUpdate(){if(this.divRef.current){const r=this.props.config.noBorder!=="noborder"&&parseFloat(this.props.config.border_width)||0,n=parseFloat(this.props.config.border_padding)||0,a=this.divRef.current.offsetHeight-(r+n)*2;if(this.state.chartHeight!==a){const i=this.divRef.current.offsetWidth-(r+n)*2;setTimeout(()=>this.setState({chartHeight:a,chartWidth:i}),10)}}}renderResetButton(){return q.jsx(_c,{ref:this.divResetButton,size:"small",color:"default",style:{...Mu.resetButton,display:"none"},title:te.t("Reset pan and zoom"),onClick:()=>{this.divResetButton.current&&(this.divResetButton.current.style.display="none"),this.props.onRangeChange&&this.props.onRangeChange()},children:q.jsx(Gbt,{style:Mu.resetButtonIcon})})}renderSaveImageButton(){return this.props.config.export?q.jsx(Ybt,{color:this.props.config.exportColor||"default",style:Mu.saveImageButton,title:this.option&&this.option.useCanvas?te.t("Save chart as png"):te.t("Save chart as svg"),onClick:()=>{var r,n;if(this.echartsReact&&typeof this.echartsReact.getEchartsInstance=="function"){let i=this.echartsReact.getEchartsInstance().getDataURL({pixelRatio:2,backgroundColor:this.props.config.window_bg||(this.props.themeType==="dark"?"#000":"#FFF")});if(!this.option||!this.option.useCanvas)try{const d=i.split(",");let u=decodeURIComponent(d[1]);u=u.replace('fill="none"',`fill="${this.props.config.window_bg||(this.props.themeType==="dark"?"#000":"#FFF")}"`),u=u.replace('fill="transparent"',`fill="${this.props.config.window_bg||(this.props.themeType==="dark"?"#000":"#FFF")}"`),i=`${d[0]},${encodeURIComponent(u)}`}catch(d){console.warn(`cannot attach background: ${d}`)}const o=document.createElement("a");document.body.appendChild(o),o.href=i,o.target="_self";let s;this.props.config.l.length===1?s=this.props.config.l[0].name:s="chart";const l=this.option,c=l==null?void 0:l.series;if((n=(r=c==null?void 0:c[0])==null?void 0:r.data)!=null&&n.length){const d=new Date(l.xAxis[0].max||c[0].data[c[0].data.length-1].value[0]);try{o.download=`${d.getFullYear()}_${(d.getMonth()+1).toString().padStart(2,"0")}_${d.getDate().toString().padStart(2,"0")}_${d.getHours().toString().padStart(2,"0")}_${d.getMinutes().toString().padStart(2,"0")}_${s}.${this.option&&this.option.useCanvas?"png":"svg"}`,o.click()}catch(u){console.error(`Cannot access download: ${u}`),window.alert(te.t("Unfortunately your browser does not support this feature"))}}else window.alert(te.t("No data found"))}}}):null}exportData(){const r=this.chartOption.getHelperChartData();this.setState({exporting:!0},()=>this.props.exportData(r.xMin,r.xMax,this.state.excluded).then(n=>{const a=document.createElement("a");document.body.appendChild(a);const i=["time"],o=[];Object.keys(n).forEach((u,f)=>{i.push(u),n[u].forEach(p=>{const v=[p.ts];v[f+1]=p.val,o.push(v)})}),o.sort((u,f)=>u[0]-f[0]);for(let u=0;u{let f;if(l==="iso")f=new Date(u.shift()).toISOString();else if(l==="locale"){const p=new Date(u.shift());f=`${p.toLocaleDateString()} ${p.toLocaleTimeString()}.${p.getMilliseconds().toString().padStart(3,"0")}`}else f=u.shift().toString();s.push(`${f};${u.join(";")}`)}),a.href=`data:text/plain;charset=utf-8,${i.join(";")} ${s.join(` -`)}`,a.target="_self";let c;this.props.config.l.length===1?c=this.props.config.l[0].name:c="chart";const d=new Date(r.xMin);try{a.download=`${d.getFullYear()}_${(d.getMonth()+1).toString().padStart(2,"0")}_${d.getDate().toString().padStart(2,"0")}_${d.getHours().toString().padStart(2,"0")}_${d.getMinutes().toString().padStart(2,"0")}_${c}.csv`,a.click()}catch(u){console.error(`Cannot access download: ${u}`),window.alert(te.t("Unfortunately your browser does not support this feature"))}this.setState({exporting:!1})}))}renderExportDataButton(){return this.props.config.exportData?q.jsx(Vbt,{color:this.props.config.exportDataColor||"default",style:{...Mu.exportDataButton,opacity:this.state.exporting?.5:1},title:te.t("Export raw data as CSV"),onClick:()=>{this.state.exporting||(this.props.config.l.length===1?this.exportData():this.setState({showExportDataDialog:!0}))}}):null}renderLegendDialog(){var r,n;return this.props.config.legend!=="dialog"?null:q.jsxs(q.Fragment,{children:[q.jsx(_c,{size:"small",color:"default",style:{...Mu.legendButton,left:((n=(r=this.option)==null?void 0:r.grid)==null?void 0:n.left)||0},title:te.t("Select lines"),onClick:()=>this.setState({showLegendDialog:!0}),children:q.jsx(Wbt,{style:Mu.resetButtonIcon})}),this.state.showLegendDialog?q.jsxs(ms,{open:!0,onClose:()=>this.setState({showLegendDialog:!1}),children:[q.jsx(_s,{children:te.t("Select lines to show")}),q.jsxs(gs,{children:[q.jsx(Xt,{control:q.jsx(Un,{checked:!this.state.excluded.length,indeterminate:this.state.excluded.length&&this.state.excluded.length!==this.props.config.l.length,onChange:()=>{this.state.excluded.length?this.setState({excluded:[]}):this.setState({excluded:this.props.config.l.map(a=>a.id)})}}),label:this.state.excluded.length!==this.props.config.l.length?te.t("Select all"):te.t("Unselect all")}),this.props.config.l.map((a,i)=>q.jsxs(tn,{onClick:()=>{const o=[...this.state.excluded],s=o.indexOf(a.id);s===-1?o.push(a.id):o.splice(s,1),this.setState({excluded:o})},children:[q.jsx(Un,{checked:!this.state.excluded.includes(a==null?void 0:a.id)}),q.jsxs("div",{children:[q.jsx("div",{children:(a==null?void 0:a.name)||(a==null?void 0:a.id)}),q.jsx("div",{style:{opacity:.7,fontStyle:"italic",fontSize:"smaller"},children:a!=null&&a.name?a==null?void 0:a.id:null})]})]},i))]}),q.jsx(vs,{children:q.jsx(Vr,{variant:"contained",color:"grey",onClick:()=>this.setState({showLegendDialog:!1}),startIcon:q.jsx("span",{style:{fontSize:14},children:"X"}),children:te.t("Close")})})]}):null]})}renderExportDataDialog(){return this.state.showExportDataDialog?q.jsxs(ms,{open:!0,onClose:()=>this.setState({showExportDataDialog:!1}),children:[q.jsx(_s,{children:te.t("Select lines for export")}),q.jsxs(gs,{children:[q.jsxs(Af,{fullWidth:!0,variant:"standard",children:[q.jsx(ty,{children:te.t("Time format")}),q.jsxs(ns,{value:this.state.timeFormat,onChange:r=>{window.localStorage.setItem("Chart.timeFormat",r.target.value),this.setState({timeFormat:r.target.value})},children:[q.jsx(tn,{value:"iso",children:"ISO"}),q.jsx(tn,{value:"locale",children:te.t("Browser format")}),q.jsx(tn,{value:"ts",children:te.t("Time stamp in milliseconds")})]})]}),q.jsx(Xt,{control:q.jsx(Un,{checked:!this.state.excluded.length,indeterminate:this.state.excluded.length&&this.state.excluded.length!==this.props.config.l.length,onChange:()=>{this.state.excluded.length?this.setState({excluded:[]}):this.setState({excluded:this.props.config.l.map(r=>r.id)})}}),label:this.state.excluded.length!==this.props.config.l.length?te.t("Select all"):te.t("Unselect all")}),this.props.config.l.map((r,n)=>q.jsxs(tn,{onClick:()=>{const a=[...this.state.excluded],i=a.indexOf(r.id);i===-1?a.push(r.id):a.splice(i,1),this.setState({excluded:a})},children:[q.jsx(Un,{checked:!this.state.excluded.includes(r==null?void 0:r.id)}),q.jsxs("div",{children:[q.jsx("div",{children:(r==null?void 0:r.name)||(r==null?void 0:r.id)}),q.jsx("div",{style:{opacity:.7,fontStyle:"italic",fontSize:"smaller"},children:r!=null&&r.name?r==null?void 0:r.id:null})]})]},n))]}),q.jsxs(vs,{children:[q.jsx(Vr,{variant:"contained",color:"primary",disabled:this.state.excluded.length===this.props.config.l.length,startIcon:q.jsx(Hbt,{}),onClick:()=>{this.setState({showExportDataDialog:!1}),this.exportData()},children:te.t("Export")}),q.jsx(Vr,{variant:"contained",color:"grey",onClick:()=>this.setState({showExportDataDialog:!1}),startIcon:q.jsx("span",{style:{fontSize:14},children:"X"}),children:te.t("Cancel")})]})]}):null}renderDevCopyButton(){return window.location.port==="3000"?q.jsx(Ubt,{color:"default",style:Mu.copyButton,title:"Copy option to clipboard",onClick:()=>tr.copyToClipboard(JSON.stringify(this.option,null,2))}):null}render(){this.divRef.current||setTimeout(()=>this.forceUpdate(),10);const r=this.props.config.noBorder!=="noborder"&&parseFloat(this.props.config.border_width)||0,n=parseFloat(this.props.config.border_padding)||0;return q.jsxs("div",{ref:this.divRef,style:{...Mu.chart,borderWidth:r,width:r||n?`calc(100% - ${(r+n)*2+1}px)`:"100%",height:r||n?`calc(100% - ${(r+n)*2}px)`:"100%",background:this.props.config.noBackground?void 0:this.props.config.window_bg||void 0,borderColor:this.props.config.noBorder!=="noborder"&&this.props.config.border_color||void 0,borderStyle:this.props.config.noBorder!=="noborder"&&r?this.props.config.border_style||"solid":"hidden",padding:n||0},children:[this.renderSaveImageButton(),this.renderExportDataDialog(),this.renderExportDataButton(),this.renderResetButton(),this.renderDevCopyButton(),this.state.chartHeight!==null?this.renderChart():null,this.option?this.renderLegendDialog():null]})}}const W5t=S0()(j5t),KV={root:{width:"100%",height:"100%",position:"relative"},progress:{position:"absolute",top:0,left:0,right:0,display:"block"}};class iC extends z.Component{constructor(r){super(r);de(this,"socket");de(this,"chartData");de(this,"inEdit");de(this,"divRef");de(this,"progressRef");de(this,"progressShown");de(this,"adminCorrectTimeout",null);de(this,"onReceiveMessage",r=>{if(r&&r.data!=="chartReady")try{const n=JSON.parse(r.data);this.chartData?this.chartData.setConfig(n):this.createChartData(n)}catch{console.log(`Cannot parse ${r.data}`)}});const n=iC.createTheme(),a=tr.parseQuery(window.location.search),i=tr.parseQuery((window.location.hash||"").replace(/^#/,""));this.state={connected:!1,seriesData:null,categories:null,actualValues:null,noLoader:!!a.noLoader||!!i.noLoader||!1,theme:n,themeType:iC.getThemeType(n),noBackground:!!a.noBG||!!i.noBG||!1,compact:!!a.compact||!!i.compact||!1,dataLoaded:!1},this.inEdit=a.edit==="1"||a.edit===1||a.edit===!0||a.edit==="true"||i.edit==="1"||i.edit===1||i.edit===!0||i.edit==="true",this.divRef=E.createRef(),this.progressRef=E.createRef(),this.progressShown=!0;const o={en:A$e,de:PLe,ru:IFe,pt:Rje,nl:LUe,fr:NXe,it:Bet,es:jit,pl:Wut,uk:Hmt,"zh-cn":U0t},s={en:q0t,de:K0t,ru:rbt,pt:obt,nl:ubt,fr:pbt,it:_bt,es:Sbt,pl:kbt,uk:Obt,"zh-cn":Ibt};Object.keys(o).forEach(l=>o[l]=Object.assign(o[l],s[l])),te.setTranslations(o),window.socketUrl&&window.socketUrl.startsWith(":")&&(window.socketUrl=`${window.location.protocol}//${window.location.hostname}${window.socketUrl}`),window.location.port==="8082"&&window.location.pathname.includes("/adapter/echarts/chart/")&&(this.adminCorrectTimeout=setTimeout(()=>{this.adminCorrectTimeout=null,window.location.href=window.location.href.replace("/adapter/echarts/chart/","/echarts/")},2e3)),this.socket=new Pu({name:window.adapterName,onProgress:l=>{l===al.CONNECTING?this.state.seriesData?(this.divRef.current&&(this.divRef.current.style.opacity="0.5"),this.progressRef.current&&(this.progressRef.current.style.display="block")):this.setState({connected:!1}):l===al.READY?(this.setState({connected:!0}),this.restoreAfterReconnection()):(this.setState({connected:!0}),this.restoreAfterReconnection())},onReady:()=>{if(this.adminCorrectTimeout&&(clearTimeout(this.adminCorrectTimeout),this.adminCorrectTimeout=null),te.setLanguage(this.socket.systemLang),this.inEdit){if(window.addEventListener("message",this.onReceiveMessage),window.self!==window.parent)try{window.parent.postMessage("chartReady","*")}catch(l){console.warn("Cannot send ready event to parent window"),console.error(l)}}else this.createChartData()},onError:l=>{console.error(l),this.showError(l)}})}restoreAfterReconnection(){this.divRef.current&&(this.divRef.current.style.opacity="1"),this.progressRef.current&&!this.progressShown&&(this.progressRef.current.style.display="none"),this.state.seriesData&&!this.state.seriesData.find(r=>r.length)&&this.chartData.setNewRange()}createChartData(r){this.chartData=new ti(this.socket,r,{compact:this.state.compact}),this.chartData.onError(n=>{n.toString().includes(cc.NOT_CONNECTED)?(this.divRef.current&&(this.divRef.current.style.opacity="0.5"),this.progressRef.current&&(this.progressRef.current.style.display="block")):this.showError(te.t(n.toString()))}),this.chartData.onReading(n=>this.showProgress(n)),this.chartData.onUpdate((n,a,i)=>{const o={connected:!0,dataLoaded:!0};n&&(o.seriesData=n,o.categories=i),a&&(o.actualValues=a),this.setState(o,()=>this.showProgress(!1))})}showProgress(r){this.progressShown=r,this.progressRef.current&&(this.progressRef.current.style.display=r?"block":"none")}componentWillUnmount(){this.inEdit&&window.removeEventListener("message",this.onReceiveMessage,!1),this.chartData&&this.chartData.destroy()}static createTheme(r){return r_e(tr.getThemeName(r))}static getThemeType(r){return r.palette.mode}showError(r){this.setState({errorText:r})}renderError(){return this.state.errorText?q.jsx(eX,{text:this.state.errorText,onClose:()=>this.setState({errorText:""})}):null}componentDidUpdate(){!this.progressShown&&this.progressRef.current&&this.progressRef.current.style.display!=="none"&&(this.progressRef.current.style.display="none")}render(){if(!this.state.connected||!this.state.seriesData)return this.state.noLoader?null:q.jsx(sz,{injectFirst:!0,children:q.jsx(Mz,{theme:this.state.theme,children:q.jsx(R_e,{themeType:this.state.themeType})})});const r=this.chartData.getConfig(),n=Ode(JSON.stringify((r&&r.l&&r.l.map(a=>a.id)||[]).sort())).toString();return this.state.seriesData&&r.debug&&console.log(`seriesData: ${JSON.stringify(this.state.seriesData)}`),q.jsx(sz,{injectFirst:!0,children:q.jsx(Mz,{theme:this.state.theme,children:q.jsxs("div",{ref:this.divRef,style:{...KV.root,width:r.width,height:r.height,background:this.state.noBackground||r.noBackground?void 0:this.state.theme.palette.background.default,color:this.state.theme.palette.text.primary},children:[q.jsx(bL,{ref:this.progressRef,style:KV.progress}),q.jsx(W5t,{socket:this.socket,t:te.t,noAnimation:this.state.noLoader,data:this.state.seriesData,actualValues:this.state.actualValues,categories:this.state.categories||[],config:r,compact:this.state.compact,lang:te.getLanguage(),themeType:this.state.themeType,onRangeChange:a=>this.chartData.setNewRange(a),exportData:(a,i,o)=>this.chartData.exportData(a,i,o)},n),this.renderError()]})})})}}const H5t=S0()(iC);window.location.hostname==="localhost"||window.location.hostname==="[::1]"||window.location.hostname.match(/^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/);function U5t(){"serviceWorker"in navigator&&navigator.serviceWorker.ready.then(t=>t.unregister())}const Y5t="echarts.index",V5t="1.9.5",G5t={"@types/crypto-js":"^4.2.2","@vitejs/plugin-react":"^4.3.4","crypto-js":"^4.2.0",echarts:"^5.6.0","echarts-for-react":"^3.0.2",moment:"^2.30.1","react-i18next":"^15.4.0","react-icons":"^5.4.0",typescript:"^5.7.2"},q5t=".",X5t="http://localhost:8081",J5t={start:"vite dev --config vite.config.mjs --host",build:"vite build --config vite.config.mjs",lint:"eslint -c eslint.config.mjs"},Z5t={extends:"react-app"},K5t=[">0.2%","not dead","not ie <= 11","not op_mini all"],Yre={name:Y5t,version:V5t,private:!0,dependencies:G5t,homepage:q5t,_proxy:X5t,scripts:J5t,eslintConfig:Z5t,browserslist:K5t};window.adapterName="echarts-show";window.sentryDSN="https://cf39325071144219aa91bb3510addcdf@sentry.iobroker.net/95";console.log(`iobroker.${window.adapterName}@${Yre.version}"`);window.location.host!=="localhost:3000"&&Gse({dsn:window.sentryDSN,release:`iobroker.${window.adapterName}@${Yre.version}`,integrations:[SG()],beforeSend(t){let e=!1;return t.exception&&t.exception.values&&t.exception.values[0]&&(t.exception.values[0].type==="NS_ERROR_FAILURE"||t.exception.values[0].value&&(t.exception.values[0].value.includes("Microsoft YaHei")||t.exception.values[0].value==="ResizeObserver loop completed with undelivered notifications."||t.exception.values[0].value==="undefined is not an object (evaluating 't.get')"||t.exception.values[0].value==="Cannot read property 'get' of undefined"||t.exception.values[0].value==="this.painter is null"||t.exception.values[0].value.includes("ioBroker is not connected")||t.exception.values[0].value==="Cannot read property 'getDisplayList' of null"))&&(e=!0),e?null:t}});const QV=document.getElementById("root");QV&&Rne.createRoot(QV).render(q.jsx(H5t,{}));U5t()});export default Q5t(); +`)}`,a.target="_self";let c;this.props.config.l.length===1?c=this.props.config.l[0].name:c="chart";const d=new Date(r.xMin);try{a.download=`${d.getFullYear()}_${(d.getMonth()+1).toString().padStart(2,"0")}_${d.getDate().toString().padStart(2,"0")}_${d.getHours().toString().padStart(2,"0")}_${d.getMinutes().toString().padStart(2,"0")}_${c}.csv`,a.click()}catch(u){console.error(`Cannot access download: ${u}`),window.alert(te.t("Unfortunately your browser does not support this feature"))}this.setState({exporting:!1})}))}renderExportDataButton(){return this.props.config.exportData?q.jsx(Vbt,{color:this.props.config.exportDataColor||"default",style:{...Mu.exportDataButton,opacity:this.state.exporting?.5:1},title:te.t("Export raw data as CSV"),onClick:()=>{this.state.exporting||(this.props.config.l.length===1?this.exportData():this.setState({showExportDataDialog:!0}))}}):null}renderLegendDialog(){var r,n;return this.props.config.legend!=="dialog"?null:q.jsxs(q.Fragment,{children:[q.jsx(_c,{size:"small",color:"default",style:{...Mu.legendButton,left:((n=(r=this.option)==null?void 0:r.grid)==null?void 0:n.left)||0},title:te.t("Select lines"),onClick:()=>this.setState({showLegendDialog:!0}),children:q.jsx(Wbt,{style:Mu.resetButtonIcon})}),this.state.showLegendDialog?q.jsxs(ms,{open:!0,onClose:()=>this.setState({showLegendDialog:!1}),children:[q.jsx(_s,{children:te.t("Select lines to show")}),q.jsxs(gs,{children:[q.jsx(Xt,{control:q.jsx(Un,{checked:!this.state.excluded.length,indeterminate:this.state.excluded.length&&this.state.excluded.length!==this.props.config.l.length,onChange:()=>{this.state.excluded.length?this.setState({excluded:[]}):this.setState({excluded:this.props.config.l.map(a=>a.id)})}}),label:this.state.excluded.length!==this.props.config.l.length?te.t("Select all"):te.t("Unselect all")}),this.props.config.l.map((a,i)=>q.jsxs(tn,{onClick:()=>{const o=[...this.state.excluded],s=o.indexOf(a.id);s===-1?o.push(a.id):o.splice(s,1),this.setState({excluded:o})},children:[q.jsx(Un,{checked:!this.state.excluded.includes(a==null?void 0:a.id)}),q.jsxs("div",{children:[q.jsx("div",{children:(a==null?void 0:a.name)||(a==null?void 0:a.id)}),q.jsx("div",{style:{opacity:.7,fontStyle:"italic",fontSize:"smaller"},children:a!=null&&a.name?a==null?void 0:a.id:null})]})]},i))]}),q.jsx(vs,{children:q.jsx(Vr,{variant:"contained",color:"grey",onClick:()=>this.setState({showLegendDialog:!1}),startIcon:q.jsx("span",{style:{fontSize:14},children:"X"}),children:te.t("Close")})})]}):null]})}renderExportDataDialog(){return this.state.showExportDataDialog?q.jsxs(ms,{open:!0,onClose:()=>this.setState({showExportDataDialog:!1}),children:[q.jsx(_s,{children:te.t("Select lines for export")}),q.jsxs(gs,{children:[q.jsxs(Af,{fullWidth:!0,variant:"standard",children:[q.jsx(ty,{children:te.t("Time format")}),q.jsxs(ns,{value:this.state.timeFormat,onChange:r=>{window.localStorage.setItem("Chart.timeFormat",r.target.value),this.setState({timeFormat:r.target.value})},children:[q.jsx(tn,{value:"iso",children:"ISO"}),q.jsx(tn,{value:"locale",children:te.t("Browser format")}),q.jsx(tn,{value:"ts",children:te.t("Time stamp in milliseconds")})]})]}),q.jsx(Xt,{control:q.jsx(Un,{checked:!this.state.excluded.length,indeterminate:this.state.excluded.length&&this.state.excluded.length!==this.props.config.l.length,onChange:()=>{this.state.excluded.length?this.setState({excluded:[]}):this.setState({excluded:this.props.config.l.map(r=>r.id)})}}),label:this.state.excluded.length!==this.props.config.l.length?te.t("Select all"):te.t("Unselect all")}),this.props.config.l.map((r,n)=>q.jsxs(tn,{onClick:()=>{const a=[...this.state.excluded],i=a.indexOf(r.id);i===-1?a.push(r.id):a.splice(i,1),this.setState({excluded:a})},children:[q.jsx(Un,{checked:!this.state.excluded.includes(r==null?void 0:r.id)}),q.jsxs("div",{children:[q.jsx("div",{children:(r==null?void 0:r.name)||(r==null?void 0:r.id)}),q.jsx("div",{style:{opacity:.7,fontStyle:"italic",fontSize:"smaller"},children:r!=null&&r.name?r==null?void 0:r.id:null})]})]},n))]}),q.jsxs(vs,{children:[q.jsx(Vr,{variant:"contained",color:"primary",disabled:this.state.excluded.length===this.props.config.l.length,startIcon:q.jsx(Hbt,{}),onClick:()=>{this.setState({showExportDataDialog:!1}),this.exportData()},children:te.t("Export")}),q.jsx(Vr,{variant:"contained",color:"grey",onClick:()=>this.setState({showExportDataDialog:!1}),startIcon:q.jsx("span",{style:{fontSize:14},children:"X"}),children:te.t("Cancel")})]})]}):null}renderDevCopyButton(){return window.location.port==="3000"?q.jsx(Ubt,{color:"default",style:Mu.copyButton,title:"Copy option to clipboard",onClick:()=>tr.copyToClipboard(JSON.stringify(this.option,null,2))}):null}render(){this.divRef.current||setTimeout(()=>this.forceUpdate(),10);const r=this.props.config.noBorder!=="noborder"&&parseFloat(this.props.config.border_width)||0,n=parseFloat(this.props.config.border_padding)||0;return q.jsxs("div",{ref:this.divRef,style:{...Mu.chart,borderWidth:r,width:r||n?`calc(100% - ${(r+n)*2+1}px)`:"100%",height:r||n?`calc(100% - ${(r+n)*2}px)`:"100%",background:this.props.config.noBackground?void 0:this.props.config.window_bg||void 0,borderColor:this.props.config.noBorder!=="noborder"&&this.props.config.border_color||void 0,borderStyle:this.props.config.noBorder!=="noborder"&&r?this.props.config.border_style||"solid":"hidden",padding:n||0},children:[this.renderSaveImageButton(),this.renderExportDataDialog(),this.renderExportDataButton(),this.renderResetButton(),this.renderDevCopyButton(),this.state.chartHeight!==null?this.renderChart():null,this.option?this.renderLegendDialog():null]})}}const W5t=S0()(j5t),KV={root:{width:"100%",height:"100%",position:"relative"},progress:{position:"absolute",top:0,left:0,right:0,display:"block"}};class iC extends z.Component{constructor(r){super(r);de(this,"socket");de(this,"chartData");de(this,"inEdit");de(this,"divRef");de(this,"progressRef");de(this,"progressShown");de(this,"adminCorrectTimeout",null);de(this,"onReceiveMessage",r=>{if(r&&r.data!=="chartReady")try{const n=JSON.parse(r.data);this.chartData?this.chartData.setConfig(n):this.createChartData(n)}catch{console.log(`Cannot parse ${r.data}`)}});const n=iC.createTheme(),a=tr.parseQuery(window.location.search),i=tr.parseQuery((window.location.hash||"").replace(/^#/,""));this.state={connected:!1,seriesData:null,categories:null,actualValues:null,noLoader:!!a.noLoader||!!i.noLoader||!1,theme:n,themeType:iC.getThemeType(n),noBackground:!!a.noBG||!!i.noBG||!1,compact:!!a.compact||!!i.compact||!1,dataLoaded:!1},this.inEdit=a.edit==="1"||a.edit===1||a.edit===!0||a.edit==="true"||i.edit==="1"||i.edit===1||i.edit===!0||i.edit==="true",this.divRef=E.createRef(),this.progressRef=E.createRef(),this.progressShown=!0;const o={en:A$e,de:PLe,ru:IFe,pt:Rje,nl:LUe,fr:NXe,it:Bet,es:jit,pl:Wut,uk:Hmt,"zh-cn":U0t},s={en:q0t,de:K0t,ru:rbt,pt:obt,nl:ubt,fr:pbt,it:_bt,es:Sbt,pl:kbt,uk:Obt,"zh-cn":Ibt};Object.keys(o).forEach(l=>o[l]=Object.assign(o[l],s[l])),te.setTranslations(o),window.socketUrl&&window.socketUrl.startsWith(":")&&(window.socketUrl=`${window.location.protocol}//${window.location.hostname}${window.socketUrl}`),window.location.port==="8082"&&window.location.pathname.includes("/adapter/echarts/chart/")&&(this.adminCorrectTimeout=setTimeout(()=>{this.adminCorrectTimeout=null,window.location.href=window.location.href.replace("/adapter/echarts/chart/","/echarts/")},2e3)),this.socket=new Pu({name:window.adapterName,onProgress:l=>{l===al.CONNECTING?this.state.seriesData?(this.divRef.current&&(this.divRef.current.style.opacity="0.5"),this.progressRef.current&&(this.progressRef.current.style.display="block")):this.setState({connected:!1}):l===al.READY?(this.setState({connected:!0}),this.restoreAfterReconnection()):(this.setState({connected:!0}),this.restoreAfterReconnection())},onReady:()=>{if(this.adminCorrectTimeout&&(clearTimeout(this.adminCorrectTimeout),this.adminCorrectTimeout=null),te.setLanguage(this.socket.systemLang),this.inEdit){if(window.addEventListener("message",this.onReceiveMessage),window.self!==window.parent)try{window.parent.postMessage("chartReady","*")}catch(l){console.warn("Cannot send ready event to parent window"),console.error(l)}}else this.createChartData()},onError:l=>{console.error(l),this.showError(l)}})}restoreAfterReconnection(){this.divRef.current&&(this.divRef.current.style.opacity="1"),this.progressRef.current&&!this.progressShown&&(this.progressRef.current.style.display="none"),this.state.seriesData&&!this.state.seriesData.find(r=>r.length)&&this.chartData.setNewRange()}createChartData(r){this.chartData=new ti(this.socket,r,{compact:this.state.compact}),this.chartData.onError(n=>{n.toString().includes(cc.NOT_CONNECTED)?(this.divRef.current&&(this.divRef.current.style.opacity="0.5"),this.progressRef.current&&(this.progressRef.current.style.display="block")):this.showError(te.t(n.toString()))}),this.chartData.onReading(n=>this.showProgress(n)),this.chartData.onUpdate((n,a,i)=>{const o={connected:!0,dataLoaded:!0};n&&(o.seriesData=n,o.categories=i),a&&(o.actualValues=a),this.setState(o,()=>this.showProgress(!1))})}showProgress(r){this.progressShown=r,this.progressRef.current&&(this.progressRef.current.style.display=r?"block":"none")}componentWillUnmount(){this.inEdit&&window.removeEventListener("message",this.onReceiveMessage,!1),this.chartData&&this.chartData.destroy()}static createTheme(r){return r_e(tr.getThemeName(r))}static getThemeType(r){return r.palette.mode}showError(r){this.setState({errorText:r})}renderError(){return this.state.errorText?q.jsx(eX,{text:this.state.errorText,onClose:()=>this.setState({errorText:""})}):null}componentDidUpdate(){!this.progressShown&&this.progressRef.current&&this.progressRef.current.style.display!=="none"&&(this.progressRef.current.style.display="none")}render(){var a;if(!this.state.connected||!this.state.seriesData)return this.state.noLoader?null:q.jsx(sz,{injectFirst:!0,children:q.jsx(Mz,{theme:this.state.theme,children:q.jsx(R_e,{themeType:this.state.themeType})})});const r=this.chartData.getConfig(),n=Ode(JSON.stringify((((a=r==null?void 0:r.l)==null?void 0:a.map(i=>i.id))||[]).sort())).toString();return this.state.seriesData&&r.debug&&console.log(`seriesData: ${JSON.stringify(this.state.seriesData)}`),q.jsx(sz,{injectFirst:!0,children:q.jsx(Mz,{theme:this.state.theme,children:q.jsxs("div",{ref:this.divRef,style:{...KV.root,width:r.width,height:r.height,background:this.state.noBackground||r.noBackground?void 0:this.state.theme.palette.background.default,color:this.state.theme.palette.text.primary},children:[q.jsx(bL,{ref:this.progressRef,style:KV.progress}),q.jsx(W5t,{socket:this.socket,t:te.t,noAnimation:this.state.noLoader,data:this.state.seriesData,actualValues:this.state.actualValues,categories:this.state.categories||[],config:r,compact:this.state.compact,lang:te.getLanguage(),themeType:this.state.themeType,onRangeChange:i=>this.chartData.setNewRange(i),exportData:(i,o,s)=>this.chartData.exportData(i,o,s)},n),this.renderError()]})})})}}const H5t=S0()(iC);window.location.hostname==="localhost"||window.location.hostname==="[::1]"||window.location.hostname.match(/^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/);function U5t(){"serviceWorker"in navigator&&navigator.serviceWorker.ready.then(t=>t.unregister())}const Y5t="echarts.index",V5t="1.9.5",G5t={"@types/crypto-js":"^4.2.2","@vitejs/plugin-react":"^4.3.4","crypto-js":"^4.2.0",echarts:"^5.6.0","echarts-for-react":"^3.0.2",moment:"^2.30.1","react-i18next":"^15.4.0","react-icons":"^5.4.0",typescript:"^5.7.2"},q5t=".",X5t="http://localhost:8081",J5t={start:"vite dev --config vite.config.mjs --host",build:"vite build --config vite.config.mjs",lint:"eslint -c eslint.config.mjs"},Z5t={extends:"react-app"},K5t=[">0.2%","not dead","not ie <= 11","not op_mini all"],Yre={name:Y5t,version:V5t,private:!0,dependencies:G5t,homepage:q5t,_proxy:X5t,scripts:J5t,eslintConfig:Z5t,browserslist:K5t};window.adapterName="echarts-show";window.sentryDSN="https://cf39325071144219aa91bb3510addcdf@sentry.iobroker.net/95";console.log(`iobroker.${window.adapterName}@${Yre.version}"`);window.location.host!=="localhost:3000"&&Gse({dsn:window.sentryDSN,release:`iobroker.${window.adapterName}@${Yre.version}`,integrations:[SG()],beforeSend(t){let e=!1;return t.exception&&t.exception.values&&t.exception.values[0]&&(t.exception.values[0].type==="NS_ERROR_FAILURE"||t.exception.values[0].value&&(t.exception.values[0].value.includes("Microsoft YaHei")||t.exception.values[0].value==="ResizeObserver loop completed with undelivered notifications."||t.exception.values[0].value==="undefined is not an object (evaluating 't.get')"||t.exception.values[0].value==="Cannot read property 'get' of undefined"||t.exception.values[0].value==="this.painter is null"||t.exception.values[0].value.includes("ioBroker is not connected")||t.exception.values[0].value==="Cannot read property 'getDisplayList' of null"))&&(e=!0),e?null:t}});const QV=document.getElementById("root");QV&&Rne.createRoot(QV).render(q.jsx(H5t,{}));U5t()});export default Q5t(); diff --git a/www/index.html b/www/index.html index cf2c10f9..cf87d827 100644 --- a/www/index.html +++ b/www/index.html @@ -34,18 +34,13 @@ }; script.src = parseInt(window.location.port) >= 3000 && parseInt(window.location.port) <= 3020 - ? window.location.protocol + - '//' + - (query.host || window.location.hostname) + - ':' + - (query.port || 8081) + - '/lib/js/socket.io.js' + ? `${window.location.protocol}//${query.host || window.location.hostname}:${query.port || 8081}/lib/js/socket.io.js` : '../../lib/js/socket.io.js'; document.head.appendChild(script); Echarts [ioBroker] - +