iobroker.vis-2
Version:
Next generation graphical user interface for ioBroker.
218 lines • 983 kB
JavaScript
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./visWidgetsCatalog-VvcWQ5UI.js","./iobroker_vis__mf_v__runtimeInit__mf_v__-D4ESSABP.js","./createStyled-KRzCdWth.js","./iobroker_vis__loadShare__react__loadShare__-CBSDylZ8.js","./_commonjsHelpers-_d1bhYXs.js","./iobroker_vis__loadShare__prop_mf_2_types__loadShare__-IJSryeM_.js","./iobroker_vis__loadShare___mf_0_mui_mf_1_icons_mf_2_material__loadShare__-kzbpjce9.js","./iobroker_vis__loadShare___mf_0_mui_mf_1_system__loadShare__-DH7sF_c4.js","./Dialog-alBgzgEa.js","./createSvgIcon-CbfCWRSf.js","./useMediaQuery-C_6g133D.js","./iobroker_vis__loadShare__react_mf_2_dom__loadShare__-DoQgihzr.js","./InsertDriveFile-BSnwK3M4.js"])))=>i.map(i=>d[i]);
import{_ as Pg}from"./preload-helper-Dp1pzeXC.js";import{i as bn,a as Dg}from"./iobroker_vis__mf_v__runtimeInit__mf_v__-D4ESSABP.js";import{j as o}from"./createStyled-KRzCdWth.js";import{u as Tg,a as Mg,i as zg,r as yi,b as w,s as q,c as E,M as ol,d as ne,D as Ig,C as Hg,P as Ag,f as Wn,e as Ze,g as Lo,F as Sn,h as kn,j as Yi,p as al,k as Og,G as Ee,l as Lg,m as Gi,n as ea,o as wr,q as ta,v as Wg,t as rl,H as ll,w as cl,x as ri,y as qn,z as Wo,A as dl,U as Rg,B as us,E as br,V as Ro,I as vr,J as Ng,K as Eg,L as ul,N as Fg,O as Vg,Q as yr,R as Bg}from"./visWidgetsCatalog-VvcWQ5UI.js";import{i as D,R as qe}from"./iobroker_vis__loadShare__react__loadShare__-CBSDylZ8.js";import{i as f,a as S}from"./iobroker_vis__loadShare___mf_0_mui_mf_1_icons_mf_2_material__loadShare__-kzbpjce9.js";import{C as Ug,t as Yg}from"./index-BgAsgBJk.js";import{A as Gg,D as Jg,K as jr,a as xr}from"./KeyboardArrowUp-FtjN92gA.js";import{E as Kg}from"./InsertDriveFile-BSnwK3M4.js";import{C as $r,a as Sr,b as kr,c as qr,s as Zg}from"./Collapse-BdcIRA_R.js";import{T as Xg,g as Qg,t as eh,M as th,a as ih,m as sh,b as nh,B as oh,c as ah,I as Cr,d as rh,e as lh,f as ch,h as ps}from"./Dialog-alBgzgEa.js";import{g as xi}from"./_commonjsHelpers-_d1bhYXs.js";import{b as dh,B as uh}from"./Box-CxPNPSZ0.js";import{S as _h,g as gh,s as hh}from"./createSvgIcon-CbfCWRSf.js";import{i as ms}from"./iobroker_vis__loadShare___mf_0_mui_mf_1_system__loadShare__-DH7sF_c4.js";import"./iobroker_vis__loadShare__prop_mf_2_types__loadShare__-IJSryeM_.js";import"./iobroker_vis__loadShare__react_mf_2_dom__loadShare__-DoQgihzr.js";import"./useMediaQuery-C_6g133D.js";(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const n of document.querySelectorAll('link[rel="modulepreload"]'))s(n);new MutationObserver(n=>{for(const a of n)if(a.type==="childList")for(const c of a.addedNodes)c.tagName==="LINK"&&c.rel==="modulepreload"&&s(c)}).observe(document,{childList:!0,subtree:!0});function i(n){const a={};return n.integrity&&(a.integrity=n.integrity),n.referrerPolicy&&(a.referrerPolicy=n.referrerPolicy),n.crossOrigin==="use-credentials"?a.credentials="include":n.crossOrigin==="anonymous"?a.credentials="omit":a.credentials="same-origin",a}function s(n){if(n.ep)return;n.ep=!0;const a=i(n);fetch(n.href,a)}})();const{loadShare:ph}=bn,{initPromise:mh}=Dg,fh=mh.then(e=>ph("react-dom/client",{customShareInfo:{shareConfig:{singleton:!0,strictVersion:!1,requiredVersion:"*"}}})),wh=await fh.then(e=>e());var bh=wh;function vh(e){const i=Tg().getMonitor(),[s,n]=Mg(i,e);return D.useEffect(()=>i.subscribeToOffsetChange(n)),D.useEffect(()=>i.subscribeToStateChange(n)),s}var ui;(function(e){e.mouse="mouse",e.touch="touch",e.keyboard="keyboard"})(ui||(ui={}));class yh{get delay(){var t;return(t=this.args.delay)!==null&&t!==void 0?t:0}get scrollAngleRanges(){return this.args.scrollAngleRanges}get getDropTargetElementsAtPoint(){return this.args.getDropTargetElementsAtPoint}get ignoreContextMenu(){var t;return(t=this.args.ignoreContextMenu)!==null&&t!==void 0?t:!1}get enableHoverOutsideTarget(){var t;return(t=this.args.enableHoverOutsideTarget)!==null&&t!==void 0?t:!1}get enableKeyboardEvents(){var t;return(t=this.args.enableKeyboardEvents)!==null&&t!==void 0?t:!1}get enableMouseEvents(){var t;return(t=this.args.enableMouseEvents)!==null&&t!==void 0?t:!1}get enableTouchEvents(){var t;return(t=this.args.enableTouchEvents)!==null&&t!==void 0?t:!0}get touchSlop(){return this.args.touchSlop||0}get delayTouchStart(){var t,i,s,n;return(n=(s=(t=this.args)===null||t===void 0?void 0:t.delayTouchStart)!==null&&s!==void 0?s:(i=this.args)===null||i===void 0?void 0:i.delay)!==null&&n!==void 0?n:0}get delayMouseStart(){var t,i,s,n;return(n=(s=(t=this.args)===null||t===void 0?void 0:t.delayMouseStart)!==null&&s!==void 0?s:(i=this.args)===null||i===void 0?void 0:i.delay)!==null&&n!==void 0?n:0}get window(){if(this.context&&this.context.window)return this.context.window;if(typeof window<"u")return window}get document(){var t;if(!((t=this.context)===null||t===void 0)&&t.document)return this.context.document;if(this.window)return this.window.document}get rootElement(){var t;return((t=this.args)===null||t===void 0?void 0:t.rootElement)||this.document}constructor(t,i){this.args=t,this.context=i}}function jh(e,t,i,s){return Math.sqrt(Math.pow(Math.abs(i-e),2)+Math.pow(Math.abs(s-t),2))}function xh(e,t,i,s,n){if(!n)return!1;const a=Math.atan2(s-t,i-e)*180/Math.PI+180;for(let c=0;c<n.length;++c){const l=n[c];if(l&&(l.start==null||a>=l.start)&&(l.end==null||a<=l.end))return!0}return!1}const $h={Left:1},Sh={Left:0};function qo(e){return e.button===void 0||e.button===Sh.Left}function kh(e){return e.buttons===void 0||(e.buttons&$h.Left)===0}function _l(e){return!!e.targetTouches}const qh=1;function Ch(e){const t=e.nodeType===qh?e:e.parentElement;if(!t)return;const{top:i,left:s}=t.getBoundingClientRect();return{x:s,y:i}}function Ph(e,t){if(e.targetTouches.length===1)return Cn(e.targetTouches[0]);if(t&&e.touches.length===1&&e.touches[0].target===t.target)return Cn(e.touches[0])}function Cn(e,t){return _l(e)?Ph(e,t):{x:e.clientX,y:e.clientY}}const Pr=(()=>{let e=!1;try{addEventListener("test",()=>{},Object.defineProperty({},"passive",{get(){return e=!0,!0}}))}catch{}return e})(),_s={[ui.mouse]:{start:"mousedown",move:"mousemove",end:"mouseup",contextmenu:"contextmenu"},[ui.touch]:{start:"touchstart",move:"touchmove",end:"touchend"},[ui.keyboard]:{keydown:"keydown"}};class bs{profile(){var t;return{sourceNodes:this.sourceNodes.size,sourcePreviewNodes:this.sourcePreviewNodes.size,sourcePreviewNodeOptions:this.sourcePreviewNodeOptions.size,targetNodes:this.targetNodes.size,dragOverTargetIds:((t=this.dragOverTargetIds)===null||t===void 0?void 0:t.length)||0}}get document(){return this.options.document}setup(){const t=this.options.rootElement;t&&(zg(!bs.isSetUp,"Cannot have two Touch backends at the same time."),bs.isSetUp=!0,this.addEventListener(t,"start",this.getTopMoveStartHandler()),this.addEventListener(t,"start",this.handleTopMoveStartCapture,!0),this.addEventListener(t,"move",this.handleTopMove),this.addEventListener(t,"move",this.handleTopMoveCapture,!0),this.addEventListener(t,"end",this.handleTopMoveEndCapture,!0),this.options.enableMouseEvents&&!this.options.ignoreContextMenu&&this.addEventListener(t,"contextmenu",this.handleTopMoveEndCapture),this.options.enableKeyboardEvents&&this.addEventListener(t,"keydown",this.handleCancelOnEscape,!0))}teardown(){const t=this.options.rootElement;t&&(bs.isSetUp=!1,this._mouseClientOffset={},this.removeEventListener(t,"start",this.handleTopMoveStartCapture,!0),this.removeEventListener(t,"start",this.handleTopMoveStart),this.removeEventListener(t,"move",this.handleTopMoveCapture,!0),this.removeEventListener(t,"move",this.handleTopMove),this.removeEventListener(t,"end",this.handleTopMoveEndCapture,!0),this.options.enableMouseEvents&&!this.options.ignoreContextMenu&&this.removeEventListener(t,"contextmenu",this.handleTopMoveEndCapture),this.options.enableKeyboardEvents&&this.removeEventListener(t,"keydown",this.handleCancelOnEscape,!0),this.uninstallSourceNodeRemovalObserver())}addEventListener(t,i,s,n=!1){const a=Pr?{capture:n,passive:!1}:n;this.listenerTypes.forEach(function(c){const l=_s[c][i];l&&t.addEventListener(l,s,a)})}removeEventListener(t,i,s,n=!1){const a=Pr?{capture:n,passive:!1}:n;this.listenerTypes.forEach(function(c){const l=_s[c][i];l&&t.removeEventListener(l,s,a)})}connectDragSource(t,i){const s=this.handleMoveStart.bind(this,t);return this.sourceNodes.set(t,i),this.addEventListener(i,"start",s),()=>{this.sourceNodes.delete(t),this.removeEventListener(i,"start",s)}}connectDragPreview(t,i,s){return this.sourcePreviewNodeOptions.set(t,s),this.sourcePreviewNodes.set(t,i),()=>{this.sourcePreviewNodes.delete(t),this.sourcePreviewNodeOptions.delete(t)}}connectDropTarget(t,i){const s=this.options.rootElement;if(!this.document||!s)return()=>{};const n=a=>{if(!this.document||!s||!this.monitor.isDragging())return;let c;switch(a.type){case _s.mouse.move:c={x:a.clientX,y:a.clientY};break;case _s.touch.move:var l,u;c={x:((l=a.touches[0])===null||l===void 0?void 0:l.clientX)||0,y:((u=a.touches[0])===null||u===void 0?void 0:u.clientY)||0};break}const _=c!=null?this.document.elementFromPoint(c.x,c.y):void 0,m=_&&i.contains(_);if(_===i||m)return this.handleMove(a,t)};return this.addEventListener(this.document.body,"move",n),this.targetNodes.set(t,i),()=>{this.document&&(this.targetNodes.delete(t),this.removeEventListener(this.document.body,"move",n))}}getTopMoveStartHandler(){return!this.options.delayTouchStart&&!this.options.delayMouseStart?this.handleTopMoveStart:this.handleTopMoveStartDelay}installSourceNodeRemovalObserver(t){this.uninstallSourceNodeRemovalObserver(),this.draggedSourceNode=t,this.draggedSourceNodeRemovalObserver=new MutationObserver(()=>{t&&!t.parentElement&&(this.resurrectSourceNode(),this.uninstallSourceNodeRemovalObserver())}),!(!t||!t.parentElement)&&this.draggedSourceNodeRemovalObserver.observe(t.parentElement,{childList:!0})}resurrectSourceNode(){this.document&&this.draggedSourceNode&&(this.draggedSourceNode.style.display="none",this.draggedSourceNode.removeAttribute("data-reactid"),this.document.body.appendChild(this.draggedSourceNode))}uninstallSourceNodeRemovalObserver(){this.draggedSourceNodeRemovalObserver&&this.draggedSourceNodeRemovalObserver.disconnect(),this.draggedSourceNodeRemovalObserver=void 0,this.draggedSourceNode=void 0}constructor(t,i,s){this.getSourceClientOffset=n=>{const a=this.sourceNodes.get(n);return a&&Ch(a)},this.handleTopMoveStartCapture=n=>{qo(n)&&(this.moveStartSourceIds=[])},this.handleMoveStart=n=>{Array.isArray(this.moveStartSourceIds)&&this.moveStartSourceIds.unshift(n)},this.handleTopMoveStart=n=>{if(!qo(n))return;const a=Cn(n);a&&(_l(n)&&(this.lastTargetTouchFallback=n.targetTouches[0]),this._mouseClientOffset=a),this.waitingForDelay=!1},this.handleTopMoveStartDelay=n=>{if(!qo(n))return;const a=n.type===_s.touch.start?this.options.delayTouchStart:this.options.delayMouseStart;this.timeout=setTimeout(this.handleTopMoveStart.bind(this,n),a),this.waitingForDelay=!0},this.handleTopMoveCapture=()=>{this.dragOverTargetIds=[]},this.handleMove=(n,a)=>{this.dragOverTargetIds&&this.dragOverTargetIds.unshift(a)},this.handleTopMove=n=>{if(this.timeout&&clearTimeout(this.timeout),!this.document||this.waitingForDelay)return;const{moveStartSourceIds:a,dragOverTargetIds:c}=this,l=this.options.enableHoverOutsideTarget,u=Cn(n,this.lastTargetTouchFallback);if(!u)return;if(this._isScrolling||!this.monitor.isDragging()&&xh(this._mouseClientOffset.x||0,this._mouseClientOffset.y||0,u.x,u.y,this.options.scrollAngleRanges)){this._isScrolling=!0;return}if(!this.monitor.isDragging()&&this._mouseClientOffset.hasOwnProperty("x")&&a&&jh(this._mouseClientOffset.x||0,this._mouseClientOffset.y||0,u.x,u.y)>(this.options.touchSlop?this.options.touchSlop:0)&&(this.moveStartSourceIds=void 0,this.actions.beginDrag(a,{clientOffset:this._mouseClientOffset,getSourceClientOffset:this.getSourceClientOffset,publishSource:!1})),!this.monitor.isDragging())return;const _=this.sourceNodes.get(this.monitor.getSourceId());this.installSourceNodeRemovalObserver(_),this.actions.publishDragSource(),n.cancelable&&n.preventDefault();const m=(c||[]).map(j=>this.targetNodes.get(j)).filter(j=>!!j),p=this.options.getDropTargetElementsAtPoint?this.options.getDropTargetElementsAtPoint(u.x,u.y,m):this.document.elementsFromPoint(u.x,u.y),y=[];for(const j in p){if(!p.hasOwnProperty(j))continue;let T=p[j];for(T!=null&&y.push(T);T;)T=T.parentElement,T&&y.indexOf(T)===-1&&y.push(T)}const b=y.filter(j=>m.indexOf(j)>-1).map(j=>this._getDropTargetId(j)).filter(j=>!!j).filter((j,T,x)=>x.indexOf(j)===T);if(l)for(const j in this.targetNodes){const T=this.targetNodes.get(j);if(_&&T&&T.contains(_)&&b.indexOf(j)===-1){b.unshift(j);break}}b.reverse(),this.actions.hover(b,{clientOffset:u})},this._getDropTargetId=n=>{const a=this.targetNodes.keys();let c=a.next();for(;c.done===!1;){const l=c.value;if(n===this.targetNodes.get(l))return l;c=a.next()}},this.handleTopMoveEndCapture=n=>{if(this._isScrolling=!1,this.lastTargetTouchFallback=void 0,!!kh(n)){if(!this.monitor.isDragging()||this.monitor.didDrop()){this.moveStartSourceIds=void 0;return}n.cancelable&&n.preventDefault(),this._mouseClientOffset={},this.uninstallSourceNodeRemovalObserver(),this.actions.drop(),this.actions.endDrag()}},this.handleCancelOnEscape=n=>{n.key==="Escape"&&this.monitor.isDragging()&&(this._mouseClientOffset={},this.uninstallSourceNodeRemovalObserver(),this.actions.endDrag())},this.options=new yh(s,i),this.actions=t.getActions(),this.monitor=t.getMonitor(),this.sourceNodes=new Map,this.sourcePreviewNodes=new Map,this.sourcePreviewNodeOptions=new Map,this.targetNodes=new Map,this.listenerTypes=[],this._mouseClientOffset={},this._isScrolling=!1,this.options.enableMouseEvents&&this.listenerTypes.push(ui.mouse),this.options.enableTouchEvents&&this.listenerTypes.push(ui.touch),this.options.enableKeyboardEvents&&this.listenerTypes.push(ui.keyboard)}}const gl=function(t,i={},s={}){return new bs(t,i,s)};let cn;function ia(){return cn||(cn=new Image,cn.src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=="),cn}var hl={exports:{}},ke={};/** @license React v17.0.2
* react-is.production.min.js
*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/var Rn=60103,Nn=60106,Cs=60107,Ps=60108,Ds=60114,Ts=60109,Ms=60110,zs=60112,Is=60113,sa=60120,Hs=60115,As=60116,pl=60121,ml=60122,fl=60117,wl=60129,bl=60131;if(typeof Symbol=="function"&&Symbol.for){var Ge=Symbol.for;Rn=Ge("react.element"),Nn=Ge("react.portal"),Cs=Ge("react.fragment"),Ps=Ge("react.strict_mode"),Ds=Ge("react.profiler"),Ts=Ge("react.provider"),Ms=Ge("react.context"),zs=Ge("react.forward_ref"),Is=Ge("react.suspense"),sa=Ge("react.suspense_list"),Hs=Ge("react.memo"),As=Ge("react.lazy"),pl=Ge("react.block"),ml=Ge("react.server.block"),fl=Ge("react.fundamental"),wl=Ge("react.debug_trace_mode"),bl=Ge("react.legacy_hidden")}function jt(e){if(typeof e=="object"&&e!==null){var t=e.$$typeof;switch(t){case Rn:switch(e=e.type,e){case Cs:case Ds:case Ps:case Is:case sa:return e;default:switch(e=e&&e.$$typeof,e){case Ms:case zs:case As:case Hs:case Ts:return e;default:return t}}case Nn:return t}}}var Dh=Ts,Th=Rn,Mh=zs,zh=Cs,Ih=As,Hh=Hs,Ah=Nn,Oh=Ds,Lh=Ps,Wh=Is;ke.ContextConsumer=Ms;ke.ContextProvider=Dh;ke.Element=Th;ke.ForwardRef=Mh;ke.Fragment=zh;ke.Lazy=Ih;ke.Memo=Hh;ke.Portal=Ah;ke.Profiler=Oh;ke.StrictMode=Lh;ke.Suspense=Wh;ke.isAsyncMode=function(){return!1};ke.isConcurrentMode=function(){return!1};ke.isContextConsumer=function(e){return jt(e)===Ms};ke.isContextProvider=function(e){return jt(e)===Ts};ke.isElement=function(e){return typeof e=="object"&&e!==null&&e.$$typeof===Rn};ke.isForwardRef=function(e){return jt(e)===zs};ke.isFragment=function(e){return jt(e)===Cs};ke.isLazy=function(e){return jt(e)===As};ke.isMemo=function(e){return jt(e)===Hs};ke.isPortal=function(e){return jt(e)===Nn};ke.isProfiler=function(e){return jt(e)===Ds};ke.isStrictMode=function(e){return jt(e)===Ps};ke.isSuspense=function(e){return jt(e)===Is};ke.isValidElementType=function(e){return typeof e=="string"||typeof e=="function"||e===Cs||e===Ds||e===wl||e===Ps||e===Is||e===sa||e===bl||typeof e=="object"&&e!==null&&(e.$$typeof===As||e.$$typeof===Hs||e.$$typeof===Ts||e.$$typeof===Ms||e.$$typeof===zs||e.$$typeof===fl||e.$$typeof===pl||e[0]===ml)};ke.typeOf=jt;hl.exports=ke;var Rh=hl.exports;function Pn(e,t){const i=getComputedStyle(t);if(!i)return;let s=e===Oe.Horizontal?t.clientWidth:t.clientHeight;return s!==0?(e===Oe.Horizontal?s-=parseFloat(i.paddingLeft)+parseFloat(i.paddingRight):s-=parseFloat(i.paddingTop)+parseFloat(i.paddingBottom),s):void 0}/*! *****************************************************************************
Copyright (c) Microsoft Corporation.
Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted.
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE.
***************************************************************************** */function dn(e,t,i=[],s={condition:!0}){const{condition:n}=s,a=function(c,l){var u={};for(var _ in c)Object.prototype.hasOwnProperty.call(c,_)&&l.indexOf(_)<0&&(u[_]=c[_]);if(c!=null&&typeof Object.getOwnPropertySymbols=="function"){var m=0;for(_=Object.getOwnPropertySymbols(c);m<_.length;m++)l.indexOf(_[m])<0&&Object.prototype.propertyIsEnumerable.call(c,_[m])&&(u[_[m]]=c[_[m]])}return u}(s,["condition"]);D.useEffect(()=>(n&&window.addEventListener(e,t,a),()=>{n&&window.removeEventListener(e,t)}),[e,t,n,...i])}(function(e,t){t===void 0&&(t={});var i=t.insertAt;if(typeof document<"u"){var s=document.head||document.getElementsByTagName("head")[0],n=document.createElement("style");n.type="text/css",i==="top"&&s.firstChild?s.insertBefore(n,s.firstChild):s.appendChild(n),n.styleSheet?n.styleSheet.cssText=e:n.appendChild(document.createTextNode(e))}})(`/* === Main Container === */
.__dbk__container {
height: 100%;
width: 100%;
display: flex;
overflow: hidden;
}
.__dbk__container.Horizontal {
flex-direction: row;
}
.__dbk__container.Vertical {
flex-direction: column;
}
/* ====== */
/* === Wrapper for each child element === */
.__dbk__child-wrapper {
height: 100%;
width: 100%;
}
/* ====== */
/* === Gutter === */
.__dbk__gutter {
display: flex;
align-items: center;
justify-content: center;
}
/* .__dbk__gutter > div {
background: red;
} */
.__dbk__gutter.Horizontal {
height: 100%;
padding: 0 2px;
flex-direction: column;
}
.__dbk__gutter.Horizontal:hover {
cursor: col-resize;
}
.__dbk__gutter.Vertical {
width: 100%;
padding: 2px 0;
flex-direction: row;
}
.__dbk__gutter.Vertical:hover {
cursor: row-resize;
}
.__dbk__gutter.Light {
background: #EDF0EF;
}
.__dbk__gutter.Light:hover > .__dbk__dragger {
background: #76747B;
}
.__dbk__gutter.Dark {
background: #020203;
}
.__dbk__gutter.Dark:hover > .__dbk__dragger {
background: #9995A3;
}
/* ====== */
/* === Gutter's Dragger === */
.__dbk__dragger {
border-radius: 2px;
}
.__dbk__dragger.Horizontal {
width: 4px;
height: 24px;
}
.__dbk__dragger.Vertical {
width: 24px;
height: 4px;
}
.__dbk__dragger.Light {
background: #A6ACB5;
}
.__dbk__dragger.Dark {
background: #434252;
}
/* ====== */`);const Nh=qe.forwardRef(({className:e,theme:t,draggerClassName:i,direction:s=Oe.Vertical,onDragging:n},a)=>{const c=`__dbk__gutter ${s} ${e||t}`,l=`__dbk__dragger ${s} ${i||t}`;return o.jsx("div",Object.assign({className:c,ref:a,dir:s,onMouseDown:n,onTouchStart:vn?n:void 0},{children:o.jsx("div",{className:l},void 0)}),void 0)});var _t;function No(e,t,i){let s,n;return t?(s=e/2,n=e):i?(s=e,n=e/2):(s=e,n=e),{aGutterSize:s,bGutterSize:n}}function Eh(e,t){switch(t.type){case _t.SetIsReadyToCompute:return Object.assign(Object.assign({},e),{isReady:t.payload.isReady});case _t.CreatePairs:{const{direction:i,children:s,gutters:n}=t.payload,a=s[0].parentNode;if(!a)throw new Error("Cannot create pairs - parent is undefined.");const c=Pn(i,a);if(c===void 0)throw new Error(`Cannot create pairs - parent has undefined or zero size: ${c}.`);const l=[];return s.forEach((u,_)=>{if(_>0){const m=s[_-1],p=s[_],y=n[_-1],b=i===Oe.Horizontal?m.getBoundingClientRect().left:m.getBoundingClientRect().top,j=i===Oe.Horizontal?p.getBoundingClientRect().right:p.getBoundingClientRect().bottom,T=i===Oe.Horizontal?m.getBoundingClientRect().width+y.getBoundingClientRect().width+p.getBoundingClientRect().width:m.getBoundingClientRect().height+y.getBoundingClientRect().height+p.getBoundingClientRect().height,x=i===Oe.Horizontal?y.getBoundingClientRect().width:y.getBoundingClientRect().height,A={idx:_-1,a:m,b:p,gutter:y,parent:a,start:b,end:j,size:T,gutterSize:x,aSizePct:100/s.length,bSizePct:100/s.length};l.push(A)}}),Object.assign(Object.assign({},e),{pairs:l})}case _t.StartDragging:{const{gutterIdx:i}=t.payload;return Object.assign(Object.assign({},e),{isDragging:!0,draggingIdx:i})}case _t.StopDragging:return Object.assign(Object.assign({},e),{isDragging:!1});case _t.CalculateSizes:{const{direction:i,gutterIdx:s}=t.payload,n=e.pairs[s],a=Pn(i,n.parent);if(!a)throw new Error("Cannot calculate sizes - 'pair.parent' has undefined or zero size.");const c=n.gutter[i===Oe.Horizontal?"clientWidth":"clientHeight"],l=s===0,u=s===e.pairs.length-1,{aGutterSize:_,bGutterSize:m}=No(c,l,u);let p,y,b,j,T;return i===Oe.Horizontal?(p=n.a.getBoundingClientRect().left,y=n.b.getBoundingClientRect().right,j=(n.a.getBoundingClientRect().width+_)/a*100,T=(n.b.getBoundingClientRect().width+m)/a*100,b=n.a.getBoundingClientRect().width+_+m+n.b.getBoundingClientRect().width):(p=n.a.getBoundingClientRect().top,y=n.b.getBoundingClientRect().bottom,j=(n.a.getBoundingClientRect().height+_)/a*100,T=(n.b.getBoundingClientRect().height+m)/a*100,b=n.a.getBoundingClientRect().height+_+m+n.b.getBoundingClientRect().height),e.pairs[s]=Object.assign(Object.assign({},n),{start:p,end:y,size:b,aSizePct:j,bSizePct:T,gutterSize:c}),Object.assign({},e)}default:return e}}function vl(e,t=0,i=[]){return D.Children.toArray(e).reduce((s,n,a)=>(Rh.isFragment(n)?s.push.apply(s,vl(n.props.children,t+1,i.concat(n.key||a))):D.isValidElement(n)?s.push(D.cloneElement(n,{key:i.concat(String(n.key)).join(".")})):typeof n!="string"&&typeof n!="number"||s.push(n),s),[])}(function(e){e[e.SetIsReadyToCompute=0]="SetIsReadyToCompute",e[e.CreatePairs=1]="CreatePairs",e[e.CalculateSizes=2]="CalculateSizes",e[e.StartDragging=3]="StartDragging",e[e.StopDragging=4]="StopDragging"})(_t||(_t={}));const Dr=e=>"changedTouches"in e;var Oe,Eo;(function(e){e.Horizontal="Horizontal",e.Vertical="Vertical"})(Oe||(Oe={})),function(e){e.Light="Light",e.Dark="Dark"}(Eo||(Eo={}));const vn=typeof window<"u"&&"ontouchstart"in window;function Co(e){return e===Oe.Horizontal?"col-resize":"row-resize"}const Fh={isReady:!1,isDragging:!1,pairs:[]};function Vh({direction:e=Oe.Horizontal,minWidths:t=[],minHeights:i=[],initialSizes:s,gutterTheme:n=Eo.Dark,gutterClassName:a,draggerClassName:c,children:l,onResizeStarted:u,onResizeFinished:_,classes:m=[]}){const p=vl(l),[y,b]=D.useReducer(Eh,Fh),j=D.useRef(null),T=D.useRef([]),x=D.useRef([]);T.current=[],x.current=[];const A=qe.useCallback(z=>{b({type:_t.SetIsReadyToCompute,payload:{isReady:z}})},[]),L=qe.useCallback((z,K)=>{b({type:_t.StartDragging,payload:{gutterIdx:K}});const Z=y.pairs[K];u==null||u(Z.idx),Z.a.style.userSelect="none",Z.b.style.userSelect="none",Z.gutter.style.cursor=Co(z),Z.parent.style.cursor=Co(z),document.body.style.cursor=Co(z)},[y.pairs]),W=qe.useCallback(()=>{b({type:_t.StopDragging});const z=[];for(let Z=0;Z<y.pairs.length;Z++){const F=y.pairs[Z],Q=Pn(e,F.parent);if(Q===void 0)throw new Error("Cannot call the 'onResizeFinished' callback - parentSize is undefined");if(F.gutterSize===void 0)throw new Error("Cannot call 'onResizeFinished' callback - gutterSize is undefined");const le=Z===0,ge=Z===y.pairs.length-1,ve=F.a.getBoundingClientRect()[e===Oe.Horizontal?"width":"height"],{aGutterSize:ce,bGutterSize:se}=No(F.gutterSize,le,ge),C=(ve+ce)/Q*100;if(z.push(C),ge){const M=(F.b.getBoundingClientRect()[e===Oe.Horizontal?"width":"height"]+se)/Q*100;z.push(M)}}if(y.draggingIdx===void 0)throw new Error("Could not reset cursor and user-select because 'state.draggingIdx' is undefined");const K=y.pairs[y.draggingIdx];_==null||_(K.idx,z),K.a.style.userSelect="",K.b.style.userSelect="",K.gutter.style.cursor="",K.parent.style.cursor="",document.body.style.cursor=""},[y.draggingIdx,y.pairs,e]),N=qe.useCallback((z,K)=>{b({type:_t.CalculateSizes,payload:{direction:z,gutterIdx:K}})},[]),Y=qe.useCallback((z,K,Z)=>{b({type:_t.CreatePairs,payload:{direction:z,children:K,gutters:Z}})},[]),H=qe.useCallback((z,K,Z,F)=>{const Q=K[0].parentNode;if(!Q)throw new Error("Cannot set initial sizes - parent is undefined");if(Pn(z,Q)===void 0)throw new Error("Cannot set initial sizes - parent has undefined size");K.forEach((le,ge)=>{const ve=ge===0,ce=ge===K.length-1;let se,C=0;K.length>1&&(C=Z[ce?ge-1:ge].getBoundingClientRect()[z===Oe.Horizontal?"width":"height"],C=ve||ce?C/2:C),se=F&&ge<F.length?`calc(${F[ge]}% - ${C}px)`:`calc(${100/K.length}% - ${C}px)`,z===Oe.Horizontal?(le.style.width=se,le.style.height="100%"):(le.style.height=se,le.style.width="100%")})},[]),R=qe.useCallback((z,K)=>{if(y.draggingIdx===void 0)throw new Error("Cannot adjust size - 'draggingIdx' is undefined");const Z=y.pairs[y.draggingIdx];if(Z.size===void 0)throw new Error("Cannot adjust size - 'pair.size' is undefined");if(Z.gutterSize===void 0)throw new Error("Cannot adjust size - 'pair.gutterSize' is undefined");const F=Z.aSizePct+Z.bSizePct,Q=K/Z.size*F,le=F-K/Z.size*F,ge=y.draggingIdx===0,ve=y.draggingIdx===y.pairs.length-1,{aGutterSize:ce,bGutterSize:se}=No(Z.gutterSize,ge,ve),C=`calc(${Q}% - ${ce}px)`,M=`calc(${le}% - ${se}px)`;z===Oe.Horizontal?(Z.a.style.width=C,Z.b.style.width=M):(Z.a.style.height=C,Z.b.style.height=M)},[y.draggingIdx,y.pairs,e]),G=qe.useCallback((z,K,Z)=>{if(!y.isDragging)return;if(y.draggingIdx===void 0)throw new Error("Cannot drag - 'draggingIdx' is undefined");const F=y.pairs[y.draggingIdx];if(F.start===void 0)throw new Error("Cannot drag - 'pair.start' is undefined");if(F.size===void 0)throw new Error("Cannot drag - 'pair.size' is undefined");if(F.gutterSize===void 0)throw new Error("Cannot drag - 'pair.gutterSize' is undefined");let Q=function(ve,ce){const se=Dr(ce)?ce.changedTouches[0]:ce;return ve===Oe.Horizontal?se.clientX:se.clientY}(K,z)-F.start,le=16,ge=16;Z.length>y.draggingIdx&&(le=Z[y.draggingIdx]),Z.length>=y.draggingIdx+1&&(ge=Z[y.draggingIdx+1]),Q<F.gutterSize+le&&(Q=F.gutterSize+le),Q>=F.size-(F.gutterSize+ge)&&(Q=F.size-(F.gutterSize+ge)),R(K,Q)},[y.isDragging,y.draggingIdx,y.pairs,R]),J=()=>{if(y.isDragging){if(y.draggingIdx===void 0)throw new Error("Cannot calculate sizes after dragging = 'state.draggingIdx' is undefined");N(e,y.draggingIdx),W()}},P=z=>{y.isDragging&&(Dr(z)&&z.preventDefault(),G(z,e,e===Oe.Horizontal?t:i))};function oe(z,K){if(!z.current)throw new Error("Can't add element to ref object - ref isn't initialized");K&&!z.current.includes(K)&&z.current.push(K)}return dn("mouseup",J,[y.isDragging,W]),dn("mousemove",P,[e,y.isDragging,G,t,i]),dn("touchend",J,[y.isDragging,W],{condition:vn}),dn("touchmove",P,[e,y.isDragging,G,t,i],{condition:vn,passive:!vn}),D.useEffect(function(){if(!j.current)return;const z=j.current.parentElement;if(!z)return;const K=new ResizeObserver(()=>{const Z=getComputedStyle(z),F=e===Oe.Horizontal?z.clientWidth:z.clientHeight;A(!!Z&&!!F)});return K.observe(z),()=>{K.disconnect()}},[j.current,e]),D.useEffect(function(){if(y.isReady&&(!T.current||T.current[0].offsetParent)){if(!T.current||!x.current)throw new Error("Cannot create pairs - either variable 'childRefs' or 'gutterRefs' is undefined");p.length<=1?H(e,T.current,x.current,s):(H(e,T.current,x.current,s),Y(e,T.current,x.current))}},[l,y.isReady,e,H,Y,s]),o.jsx("div",Object.assign({className:`__dbk__container ${e}`,ref:j},{children:y.isReady&&p.map((z,K)=>o.jsxs(qe.Fragment,{children:[o.jsx("div",Object.assign({ref:Z=>oe(T,Z),className:"__dbk__child-wrapper "+(K<m.length?m[K]:"")},{children:z}),void 0),K<p.length-1&&o.jsx(Nh,{ref:Z=>oe(x,Z),className:a,theme:n,draggerClassName:c,direction:e,onDragging:()=>{return N(e,Z=K),void L(e,Z);var Z}},void 0)]},K))}),void 0)}function Bh(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function Tr(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter(function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable})),i.push.apply(i,s)}return i}function Mr(e){for(var t=1;t<arguments.length;t++){var i=arguments[t]!=null?arguments[t]:{};t%2?Tr(Object(i),!0).forEach(function(s){Bh(e,s,i[s])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(i)):Tr(Object(i)).forEach(function(s){Object.defineProperty(e,s,Object.getOwnPropertyDescriptor(i,s))})}return e}function Uh(e,t){if(e==null)return{};var i={},s=Object.keys(e),n,a;for(a=0;a<s.length;a++)n=s[a],!(t.indexOf(n)>=0)&&(i[n]=e[n]);return i}function Yh(e,t){if(e==null)return{};var i=Uh(e,t),s,n;if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)s=a[n],!(t.indexOf(s)>=0)&&Object.prototype.propertyIsEnumerable.call(e,s)&&(i[s]=e[s])}return i}function Gh(e,t){return Jh(e)||Kh(e,t)||Zh(e,t)||Xh()}function Jh(e){if(Array.isArray(e))return e}function Kh(e,t){if(!(typeof Symbol>"u"||!(Symbol.iterator in Object(e)))){var i=[],s=!0,n=!1,a=void 0;try{for(var c=e[Symbol.iterator](),l;!(s=(l=c.next()).done)&&(i.push(l.value),!(t&&i.length===t));s=!0);}catch(u){n=!0,a=u}finally{try{!s&&c.return!=null&&c.return()}finally{if(n)throw a}}return i}}function Zh(e,t){if(e){if(typeof e=="string")return zr(e,t);var i=Object.prototype.toString.call(e).slice(8,-1);if(i==="Object"&&e.constructor&&(i=e.constructor.name),i==="Map"||i==="Set")return Array.from(e);if(i==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i))return zr(e,t)}}function zr(e,t){(t==null||t>e.length)&&(t=e.length);for(var i=0,s=new Array(t);i<t;i++)s[i]=e[i];return s}function Xh(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Qh(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function Ir(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter(function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable})),i.push.apply(i,s)}return i}function Hr(e){for(var t=1;t<arguments.length;t++){var i=arguments[t]!=null?arguments[t]:{};t%2?Ir(Object(i),!0).forEach(function(s){Qh(e,s,i[s])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(i)):Ir(Object(i)).forEach(function(s){Object.defineProperty(e,s,Object.getOwnPropertyDescriptor(i,s))})}return e}function ep(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];return function(s){return t.reduceRight(function(n,a){return a(n)},s)}}function fs(e){return function t(){for(var i=this,s=arguments.length,n=new Array(s),a=0;a<s;a++)n[a]=arguments[a];return n.length>=e.length?e.apply(this,n):function(){for(var c=arguments.length,l=new Array(c),u=0;u<c;u++)l[u]=arguments[u];return t.apply(i,[].concat(n,l))}}}function Dn(e){return{}.toString.call(e).includes("Object")}function tp(e){return!Object.keys(e).length}function js(e){return typeof e=="function"}function ip(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function sp(e,t){return Dn(t)||_i("changeType"),Object.keys(t).some(function(i){return!ip(e,i)})&&_i("changeField"),t}function np(e){js(e)||_i("selectorType")}function op(e){js(e)||Dn(e)||_i("handlerType"),Dn(e)&&Object.values(e).some(function(t){return!js(t)})&&_i("handlersType")}function ap(e){e||_i("initialIsRequired"),Dn(e)||_i("initialType"),tp(e)&&_i("initialContent")}function rp(e,t){throw new Error(e[t]||e.default)}var lp={initialIsRequired:"initial state is required",initialType:"initial state should be an object",initialContent:"initial state shouldn't be an empty object",handlerType:"handler should be an object or a function",handlersType:"all handlers should be a functions",selectorType:"selector should be a function",changeType:"provided value of changes should be an object",changeField:'it seams you want to change a field in the state which is not specified in the "initial" state',default:"an unknown error accured in `state-local` package"},_i=fs(rp)(lp),un={changes:sp,selector:np,handler:op,initial:ap};function cp(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};un.initial(e),un.handler(t);var i={current:e},s=fs(_p)(i,t),n=fs(up)(i),a=fs(un.changes)(e),c=fs(dp)(i);function l(){var _=arguments.length>0&&arguments[0]!==void 0?arguments[0]:function(m){return m};return un.selector(_),_(i.current)}function u(_){ep(s,n,a,c)(_)}return[l,u]}function dp(e,t){return js(t)?t(e.current):t}function up(e,t){return e.current=Hr(Hr({},e.current),t),t}function _p(e,t,i){return js(t)?t(e.current):Object.keys(i).forEach(function(s){var n;return(n=t[s])===null||n===void 0?void 0:n.call(t,e.current[s])}),i}var gp={create:cp},hp={paths:{vs:"https://cdn.jsdelivr.net/npm/monaco-editor@0.52.2/min/vs"}};function pp(e){return function t(){for(var i=this,s=arguments.length,n=new Array(s),a=0;a<s;a++)n[a]=arguments[a];return n.length>=e.length?e.apply(this,n):function(){for(var c=arguments.length,l=new Array(c),u=0;u<c;u++)l[u]=arguments[u];return t.apply(i,[].concat(n,l))}}}function mp(e){return{}.toString.call(e).includes("Object")}function fp(e){return e||Ar("configIsRequired"),mp(e)||Ar("configType"),e.urls?(wp(),{paths:{vs:e.urls.monacoBase}}):e}function wp(){console.warn(yl.deprecation)}function bp(e,t){throw new Error(e[t]||e.default)}var yl={configIsRequired:"the configuration object is required",configType:"the configuration object should be an object",default:"an unknown error accured in `@monaco-editor/loader` package",deprecation:`Deprecation warning!
You are using deprecated way of configuration.
Instead of using
monaco.config({ urls: { monacoBase: '...' } })
use
monaco.config({ paths: { vs: '...' } })
For more please check the link https://github.com/suren-atoyan/monaco-loader#config
`},Ar=pp(bp)(yl),vp={config:fp},yp=function(){for(var t=arguments.length,i=new Array(t),s=0;s<t;s++)i[s]=arguments[s];return function(n){return i.reduceRight(function(a,c){return c(a)},n)}};function jl(e,t){return Object.keys(t).forEach(function(i){t[i]instanceof Object&&e[i]&&Object.assign(t[i],jl(e[i],t[i]))}),Mr(Mr({},e),t)}var jp={type:"cancelation",msg:"operation is manually canceled"};function Po(e){var t=!1,i=new Promise(function(s,n){e.then(function(a){return t?n(jp):s(a)}),e.catch(n)});return i.cancel=function(){return t=!0},i}var xp=gp.create({config:hp,isInitialized:!1,resolve:null,reject:null,monaco:null}),xl=Gh(xp,2),Os=xl[0],En=xl[1];function $p(e){var t=vp.config(e),i=t.monaco,s=Yh(t,["monaco"]);En(function(n){return{config:jl(n.config,s),monaco:i}})}function Sp(){var e=Os(function(t){var i=t.monaco,s=t.isInitialized,n=t.resolve;return{monaco:i,isInitialized:s,resolve:n}});if(!e.isInitialized){if(En({isInitialized:!0}),e.monaco)return e.resolve(e.monaco),Po(Do);if(window.monaco&&window.monaco.editor)return $l(window.monaco),e.resolve(window.monaco),Po(Do);yp(kp,Cp)(Pp)}return Po(Do)}function kp(e){return document.body.appendChild(e)}function qp(e){var t=document.createElement("script");return e&&(t.src=e),t}function Cp(e){var t=Os(function(s){var n=s.config,a=s.reject;return{config:n,reject:a}}),i=qp("".concat(t.config.paths.vs,"/loader.js"));return i.onload=function(){return e()},i.onerror=t.reject,i}function Pp(){var e=Os(function(i){var s=i.config,n=i.resolve,a=i.reject;return{config:s,resolve:n,reject:a}}),t=window.require;t.config(e.config),t(["vs/editor/editor.main"],function(i){$l(i),e.resolve(i)},function(i){e.reject(i)})}function $l(e){Os().monaco||En({monaco:e})}function Dp(){return Os(function(e){var t=e.monaco;return t})}var Do=new Promise(function(e,t){return En({resolve:e,reject:t})}),Sl={config:$p,init:Sp,__getMonacoInstance:Dp},Tp={wrapper:{display:"flex",position:"relative",textAlign:"initial"},fullWidth:{width:"100%"},hide:{display:"none"}},To=Tp,Mp={container:{display:"flex",height:"100%",width:"100%",justifyContent:"center",alignItems:"center"}},zp=Mp;function Ip({children:e}){return qe.createElement("div",{style:zp.container},e)}var Hp=Ip,Ap=Hp;function Op({width:e,height:t,isEditorReady:i,loading:s,_ref:n,className:a,wrapperProps:c}){return qe.createElement("section",{style:{...To.wrapper,width:e,height:t},...c},!i&&qe.createElement(Ap,null,s),qe.createElement("div",{ref:n,style:{...To.fullWidth,...!i&&To.hide},className:a}))}var Lp=Op,kl=D.memo(Lp);function Wp(e){D.useEffect(e,[])}var ql=Wp;function Rp(e,t,i=!0){let s=D.useRef(!0);D.useEffect(s.current||!i?()=>{s.current=!1}:e,t)}var rt=Rp;function vs(){}function Ei(e,t,i,s){return Np(e,s)||Ep(e,t,i,s)}function Np(e,t){return e.editor.getModel(Cl(e,t))}function Ep(e,t,i,s){return e.editor.createModel(t,i,s?Cl(e,s):void 0)}function Cl(e,t){return e.Uri.parse(t)}function Fp({original:e,modified:t,language:i,originalLanguage:s,modifiedLanguage:n,originalModelPath:a,modifiedModelPath:c,keepCurrentOriginalModel:l=!1,keepCurrentModifiedModel:u=!1,theme:_="light",loading:m="Loading...",options:p={},height:y="100%",width:b="100%",className:j,wrapperProps:T={},beforeMount:x=vs,onMount:A=vs}){let[L,W]=D.useState(!1),[N,Y]=D.useState(!0),H=D.useRef(null),R=D.useRef(null),G=D.useRef(null),J=D.useRef(A),P=D.useRef(x),oe=D.useRef(!1);ql(()=>{let F=Sl.init();return F.then(Q=>(R.current=Q)&&Y(!1)).catch(Q=>(Q==null?void 0:Q.type)!=="cancelation"&&console.error("Monaco initialization: error:",Q)),()=>H.current?Z():F.cancel()}),rt(()=>{if(H.current&&R.current){let F=H.current.getOriginalEditor(),Q=Ei(R.current,e||"",s||i||"text",a||"");Q!==F.getModel()&&F.setModel(Q)}},[a],L),rt(()=>{if(H.current&&R.current){let F=H.current.getModifiedEditor(),Q=Ei(R.current,t||"",n||i||"text",c||"");Q!==F.getModel()&&F.setModel(Q)}},[c],L),rt(()=>{let F=H.current.getModifiedEditor();F.getOption(R.current.editor.EditorOption.readOnly)?F.setValue(t||""):t!==F.getValue()&&(F.executeEdits("",[{range:F.getModel().getFullModelRange(),text:t||"",forceMoveMarkers:!0}]),F.pushUndoStop())},[t],L),rt(()=>{var F,Q;(Q=(F=H.current)==null?void 0:F.getModel())==null||Q.original.setValue(e||"")},[e],L),rt(()=>{let{original:F,modified:Q}=H.current.getModel();R.current.editor.setModelLanguage(F,s||i||"text"),R.current.editor.setModelLanguage(Q,n||i||"text")},[i,s,n],L),rt(()=>{var F;(F=R.current)==null||F.editor.setTheme(_)},[_],L),rt(()=>{var F;(F=H.current)==null||F.updateOptions(p)},[p],L);let z=D.useCallback(()=>{var le;if(!R.current)return;P.current(R.current);let F=Ei(R.current,e||"",s||i||"text",a||""),Q=Ei(R.current,t||"",n||i||"text",c||"");(le=H.current)==null||le.setModel({original:F,modified:Q})},[i,t,n,e,s,a,c]),K=D.useCallback(()=>{var F;!oe.current&&G.current&&(H.current=R.current.editor.createDiffEditor(G.current,{automaticLayout:!0,...p}),z(),(F=R.current)==null||F.editor.setTheme(_),W(!0),oe.current=!0)},[p,_,z]);D.useEffect(()=>{L&&J.current(H.current,R.current)},[L]),D.useEffect(()=>{!N&&!L&&K()},[N,L,K]);function Z(){var Q,le,ge,ve;let F=(Q=H.current)==null?void 0:Q.getModel();l||((le=F==null?void 0:F.original)==null||le.dispose()),u||((ge=F==null?void 0:F.modified)==null||ge.dispose()),(ve=H.current)==null||ve.dispose()}return qe.createElement(kl,{width:b,height:y,isEditorReady:L,loading:m,_ref:G,className:j,wrapperProps:T})}var Vp=Fp;D.memo(Vp);function Bp(e){let t=D.useRef();return D.useEffect(()=>{t.current=e},[e]),t.current}var Up=Bp,_n=new Map;function Yp({defaultValue:e,defaultLanguage:t,defaultPath:i,value:s,language:n,path:a,theme:c="light",line:l,loading:u="Loading...",options:_={},overrideServices:m={},saveViewState:p=!0,keepCurrentModel:y=!1,width:b="100%",height:j="100%",className:T,wrapperProps:x={},beforeMount:A=vs,onMount:L=vs,onChange:W,onValidate:N=vs}){let[Y,H]=D.useState(!1),[R,G]=D.useState(!0),J=D.useRef(null),P=D.useRef(null),oe=D.useRef(null),z=D.useRef(L),K=D.useRef(A),Z=D.useRef(),F=D.useRef(s),Q=Up(a),le=D.useRef(!1),ge=D.useRef(!1);ql(()=>{let se=Sl.init();return se.then(C=>(J.current=C)&&G(!1)).catch(C=>(C==null?void 0:C.type)!=="cancelation"&&console.error("Monaco initialization: error:",C)),()=>P.current?ce():se.cancel()}),rt(()=>{var C,M,k,I;let se=Ei(J.current,e||s||"",t||n||"",a||i||"");se!==((C=P.current)==null?void 0:C.getModel())&&(p&&_n.set(Q,(M=P.current)==null?void 0:M.saveViewState()),(k=P.current)==null||k.setModel(se),p&&((I=P.current)==null||I.restoreViewState(_n.get(a))))},[a],Y),rt(()=>{var se;(se=P.current)==null||se.updateOptions(_)},[_],Y),rt(()=>{!P.current||s===void 0||(P.current.getOption(J.current.editor.EditorOption.readOnly)?P.current.setValue(s):s!==P.current.getValue()&&(ge.current=!0,P.current.executeEdits("",[{range:P.current.getModel().getFullModelRange(),text:s,forceMoveMarkers:!0}]),P.current.pushUndoStop(),ge.current=!1))},[s],Y),rt(()=>{var C,M;let se=(C=P.current)==null?void 0:C.getModel();se&&n&&((M=J.current)==null||M.editor.setModelLanguage(se,n))},[n],Y),rt(()=>{var se;l!==void 0&&((se=P.current)==null||se.revealLine(l))},[l],Y),rt(()=>{var se;(se=J.current)==null||se.editor.setTheme(c)},[c],Y);let ve=D.useCallback(()=>{var se;if(!(!oe.current||!J.current)&&!le.current){K.current(J.current);let C=a||i,M=Ei(J.current,s||e||"",t||n||"",C||"");P.current=(se=J.current)==null?void 0:se.editor.create(oe.current,{model:M,automaticLayout:!0,..._},m),p&&P.current.restoreViewState(_n.get(C)),J.current.editor.setTheme(c),l!==void 0&&P.current.revealLine(l),H(!0),le.current=!0}},[e,t,i,s,n,a,_,m,p,c,l]);D.useEffect(()=>{Y&&z.current(P.current,J.current)},[Y]),D.useEffect(()=>{!R&&!Y&&ve()},[R,Y,ve]),F.current=s,D.useEffect(()=>{var se,C;Y&&W&&((se=Z.current)==null||se.dispose(),Z.current=(C=P.current)==null?void 0:C.onDidChangeModelContent(M=>{ge.current||W(P.current.getValue(),M)}))},[Y,W]),D.useEffect(()=>{if(Y){let se=J.current.editor.onDidChangeMarkers(C=>{var k;let M=(k=P.current.getModel())==null?void 0:k.uri;if(M&&C.find(I=>I.path===M.path)){let I=J.current.editor.getModelMarkers({resource:M});N==null||N(I)}});return()=>{se==null||se.dispose()}}return()=>{}},[Y,N]);function ce(){var se,C;(se=Z.current)==null||se.dispose(),y?p&&_n.set(a,P.current.saveViewState()):(C=P.current.getModel())==null||C.dispose(),P.current.dispose()}return qe.createElement(kl,{width:b,height:j,isEditorReady:Y,loading:u,_ref:oe,className:T,wrapperProps:x})}var Gp=Yp,Jp=D.memo(Gp),Kp=Jp;function Pt(e){const{type:t,value:i,onChange:s,themeType:n,height:a}=e,[c]=qe.useState(i);return o.jsxs(o.Fragment,{children:[o.jsx("style",{children:`
.vis-monaco {
boxSizing: border-box;
border: 1px solid transparent;
}
.vis-monaco-error {
boxSizing: border-box;
border: 1px solid #800;
}`}),o.jsx(Kp,{theme:n==="dark"?"vs-dark":"vs-light",height:a,language:t,defaultValue:c,onChange:s?l=>s(l||""):void 0,className:e.error?"vis-monaco-error":"vis-monaco",options:{readOnly:!s,minimap:{enabled:!1},stickyScroll:{enabled:!1}}})]})}let Zp=class extends D.Component{localCssTimer=null;globalCssTimer=null;constructor(t){super(t),this.state={type:"global",localCss:"",globalCss:"",showHelp:!1,saving:!1}}async componentDidMount(){const t={};try{t.globalCss=await yi(this.props.socket,this.props.adapterId,"vis-common-user.css")}catch(i){i!=="Not exists"&&console.warn(`Cannot loading global CSS: ${i}`)}try{t.localCss=await yi(this.props.socket,this.props.adapterId,`${this.props.projectName}/vis-user.css`)}catch(i){i!=="Not exists"&&console.warn(`Cannot load project CSS: ${i}`)}window.localStorage.getItem("CSS.type")&&(t.type=window.localStorage.getItem("CSS.type")),this.setState(t)}save(t,i){const s={saving:!0};i==="global"?s.globalCss=t:s.localCss=t,this.setState(s,()=>{i==="global"?(this.globalCssTimer&&(clearTimeout(this.globalCssTimer),this.globalCssTimer=null),this.globalCssTimer=setTimeout(()=>{this.setState({saving:!1}),this.globalCssTimer=null,this.props.saveCssFile(this.props.adapterId,"vis-common-user.css",t)},1e3)):(this.localCssTimer&&(clearTimeout(this.localCssTimer),this.localCssTimer=null),this.localCssTimer=setTimeout(()=>{this.localCssTimer=null,this.setState({saving:!1}),this.props.saveCssFile(this.props.adapterId,`${this.props.projectName}/vis-user.css`,t)},1e3))})}render(){const t=this.state.type==="global"?this.state.globalCss:this.state.localCss;return o.jsxs(o.Fragment,{children:[o.jsxs("div",{style:{display:"flex",alignItems:"center"},children:[this.state.showHelp?o.jsxs(f.Dialog,{open:!0,maxWidth:this.props.maxWidth||"md",children:[o.jsx(f.DialogTitle,{children:w.I18n.t("Explanation")}),o.jsx(f.DialogContent,{children:this.state.type==="global"?w.I18n.t("help_css_global"):w.I18n.t("help_css_project")}),o.jsx(f.DialogActions,{children:o.jsx(f.Button,{color:"grey",variant:"contained",onClick:()=>this.setState({showHelp:!1}),startIcon:o.jsx(S.Check,{}),children:w.I18n.t("Ok")})})]}):null,o.jsxs(f.Select,{variant:"standard",value:this.state.type,onChange:i=>{this.setState({type:i.target.value}),window.localStorage.setItem("CSS.type",i.target.value)},children:[o.jsx(f.MenuItem,{value:"global",children:w.I18n.t("Global")}),o.jsx(f.MenuItem,{value:"local",children:w.I18n.t("css_project")})]}),o.jsx(f.IconButton,{onClick:()=>this.setState({showHelp:!0}),size:"small",children:o.jsx(S.HelpOutline,{})}),this.state.saving?o.jsx(f.CircularProgress,{size:20}):null]}),o.jsx(Pt,{type:"css",themeType:this.props.themeType,readOnly:!this.props.editMode,value:t,onChange:i=>this.save(i,this.state.type),width:"100%",height:"calc(100% - 34px)"},this.state.type)]})}};const Xp=e=>o.jsx(Pt,{type:"javascript",themeType:e.themeType,readOnly:!e.editMode,value:q.getState().visProject.___settings.scripts,onChange:t=>{const i=JSON.parse(JSON.stringify(q.getState().visProject));i.___settings.scripts=t,e.changeProject(i)}}),Qp=[{value:"",label:"default"},{value:"black-tie",label:"black-tie"},{value:"blitzer",label:"blitzer"},{value:"cupertino",label:"cupertino"},{value:"custom-dark",label:"custom-dark"},{value:"custom-light",label:"custom-light"},{value:"dark-hive",label:"dark-hive"},{value:"dot-luv",label:"dot-luv"},{value:"eggplant",label:"eggplant"},{value:"excite-bike",label:"excite-bike"},{value:"flick",label:"flick"},{value:"hot-sneaks",label:"hot-sneaks"},{value:"humanity",label:"humanity"},{value:"overcast",label:"overcast"},{value:"redmond",label:"redmond"},{value:"smoothness",label:"smoothness"},{value:"start",label:"start"},{value:"sunny",label:"sunny"},{value:"ui-darkness",label:"ui-darkness"},{value:"ui-lightness",label:"ui-lightness"},{value:"vader",label:"vader"}],Or=[{value:"",label:"not-specified"},{value:"fm-dark-background",label:"Fm dark background"},{value:"fm-light-background",label:"Fm light background"},{value:"no_background",label:"No background"},{value:"hq-background-blue-marine-lines",label:"Blue marine lines"},{value:"hq-background-blue-marine",label:"Blue marine"},{value:"hq-background-radial-blue",label:"Radial blue"},{value:"hq-background-gradient-box",label:"Gradient box"},{value:"hq-background-h-gradient-black-0",label:"H gradient black 0"},{value:"hq-background-h-gradient-black-1",label:"H gradient black 1"},{value:"hq-background-h-gradient-black-2",label:"H gradient black 2"},{value:"hq-background-h-gradient-black-3",label:"H gradient black 3"},{value:"hq-background-h-gradient-black-4",label:"H gradient black 4"},{value:"hq-background-h-gradient-black-5",label:"H gradient black 5"},{value:"hq-background-h-gradient-orange-0",label:"H gradient orange 0"},{value:"hq-background-h-gradient-orange-1",label:"H gradient orange 1"},{value:"hq-background-h-gradient-orange-2",label:"H gradient orange 2"},{value:"hq-background-h-gradient-orange-3",label:"H gradient orange 3"},{value:"hq-background-h-gradient-blue-0",label:"H gradient blue 0"},{value:"hq-background-h-gradient-blue-1",label:"H gradient blue 1"},{value:"hq-background-h-gradient-blue-2",label:"H gradient blue 2"},{value:"hq-background-h-gradient-blue-3",label:"H gradient blue 3"},{value:"hq-background-h-gradient-blue-4",label:"H gradient blue 4"},{value:"hq-background-h-gradient-blue-5",label:"H gradient blue 5"},{value:"hq-background-h-gradient-blue-6",label:"H gradient blue 6"},{value:"hq-background-h-gradient-blue-7",label:"H gradient blue 7"},{value:"hq-background-h-gradient-yellow-0",label:"H gradient yellow 0"},{value:"hq-background-h-gradient-yellow-1",label:"H gradient yellow 1"},{value:"hq-background-h-gradient-yellow-2",label:"H gradient yellow 2"},{value:"hq-background-h-gradient-yellow-3",label:"H gradient yellow 3"},{value:"hq-background-h-gradient-green-0",label:"H gradient green 0"},{value:"hq-background-h-gradient-green-1",label:"H gradient green 1"},{value:"hq-background-h-gradient-green-2",label:"H gradient green 2"},{value:"hq-background-h-gradient-green-3",label:"H gradient green 3"},{value:"hq-background-h-gradient-green-4",label:"H gradient green 4"},{value:"hq-background-gray-0",label:"Gray 0"},{value:"hq-background-gray-1",label:"Gray 1"},{value:"hq-background-h-gradient-gray-0",label:"H gradient gray 0"},{value:"hq-background-h-gradient-gray-1",label:"H gradient gray 1"},{value:"hq-background-h-gradient-gray-2",label:"H gradient gray 2"},{value:"hq-background-h-gradient-gray-3",label:"H gradient gray 3"},{value:"hq-background-h-gradient-gray-4",label:"H gradient gray 4"},{value:"hq-background-h-gradient-gray-5",label:"H gradient gray 5"},{value:"hq-background-h-gradient-gray-6",label:"H gradient gray 6"},{value:"hq-background-aluminium1",label:"Aluminium1"},{value:"hq-background-aluminium2",label:"Aluminium2"},{value:"hq-background-colorful",label:"Colorful"},{value:"hq-background-carbon-fibre1",label:"Carbon fibre1"},{value:"hq-background-carbon-fibre",label:"Carbon fibre"},{value:"hq-background-bricks",label:"Bricks"},{value:"hq-background-lined-paper",label:"Lined paper"},{value:"hq-background-blueprint-grid",label:"Blueprint grid"},{value:"hq-background-blue-flowers",label:"Blue flowers"},{value:"group-view-css-background",label:"Group view css background"}],Fo=[{value:"none",label:"not defined"},{value:"user",label:"User defined"},{value:"375x667",label:"iPhone SE - Portrait"},{value:"667x375",label:"iPhone SE - Landscape"},{value:"414x896",label:"iPhone XR - Portrait"},{value:"896x414",label:"iPhone XR - Landscape"},{value:"390x844",label:"iPhone 12 Pro - Portrait"},{value:"844x390",label:"iPhone 12 Pro - Landscape"},{value:"393x851",label:"Pixel 5 - Portrait"},{value:"851x393",label:"Pixel 5 - Landscape"},{value:"360x740",label:"Samsung Galaxy S8+ - Portrait"},{value:"740x360",label:"Samsung Galaxy S8+ - Landscape"},{value:"412x915",label:"Samsung Galaxy S20 Ultra - Portrait"},{value:"915x412",label:"Samsung Galaxy S20 Ultra - Landscape"},{value:"820x1180",label:"iPad Air - Portrait"},{value:"1180x820",label:"iPad Air - Landscape"},{value:"768x1024",label:"iPad Mini - Portrait"},{value:"1024x768",label:"iPad Mini - Landscape"},{value:"1024x1366",label:"iPad Pro - Portrait"},{value:"1366x1024",label:"iPad Pro - Landscape"},{value:"912x1368",label:"Surface Pro 7 - Portrait"},{value:"1368x912",label:"Surface Pro 7 - Landscape"},{value:"540x720",label:"Surface Duo - Portrait"},{value:"720x540",label:"Surface Duo - Landscape"},{value:"280x653",label:"Galaxy Fold - Portrait"},{value:"653x280",label:"Galaxy Fold - Landscape"},{value:"412x914",label:"Samsung Galaxy A51/71 - Portrait"},{value:"914x412",label:"Samsung Galaxy A51/71 - Landscape"},{value:"600x1024",label:"Nest Hub - Portrait"},{value:"1024x600",label:"Nest Hub - Landscape"},{value:"800x1280",label:"Nest Hub Max - Portrait"},{value:"1280x800",label:"Nest Hub Max - Landscape"},{value:"720x1280",label:"HD - Portrait"},{value:"1280x720",label:"HD - Landscape"},{value:"1080x1920",label:"Full HD - Portrait"},{value:"1920x1080",label:"Full HD - Landscape"}];function em(e,t,i,s,n){var a,c;return[{label:"CSS Common",fields:[{label:"display",attr:"display",type:"select",options:[{label:"flex",value:"flex"},{label:"block",value:"block"}],noTranslation:!0,title:"For widgets with relative position"},{label:"Comment",attr:"comment",notStyle:!0},{label:"CSS Class",attr:"class",notStyle:!0},{label:"Initial filter",attr:"filterkey",notStyle:!0,type:"filter"},{label:"Only for groups",attr:"group",notStyle:!0,type:"groups",title:"This view will be shown only to defined groups"},{label:"Theme",attr:"theme",notStyle:!0,type:"select",options:Qp,noTranslation:!0},{label:"If user not in group",attr:"group_action",notStyle:!0,type:"select",options:[{label:"Disabled",value:"disabled"},{label:"Hide",value:"hide"}]}]},{label:"CSS background (background-...)",fields:[{label:"Image",attr:"bg-image",type:"image",hidden:'data.useBackground || (data.style && (!!data.style.background_class || !!data.style["background-color"] || !!data.style["background-image"] || !!data.style["background-size"] || !!data.style["background-repeat"] || !!data.style["background-position"] || !!data.style["background-attachment"]))',notStyle:!0},{label:"Position left",attr:"bg-position-x",type:"slider",hidden:'!data["bg-image"]',notStyle:!0,min:-100,max:500},{label:"Position top",attr:"bg-position-y",type:"slider",hidden:'!data["bg-image"]',notStyle:!0,min:-100,max:500},{label:"Width",attr:"bg-width",type:"text",hidden:'!data["bg-image"]',notStyle:!0},{label:"Height",attr:"bg-height",type:"text",hidden:'!data["bg-image"]',notStyle:!0},{label:"Color",attr:"bg-color",type:"color",hidden:'!data["bg-image"]',notStyle:!0},{label:"Background class",type:"select",options:Or,attr:"background_class",itemModify:l=>o.jsxs(o.Fragment,{children:[o.jsx("span",{style:E.backgroundClassSquare,className:l.value}),w.I18n.t(l.label)]}),renderValue:l=>{const u=Or.find(_=>(_==null?void 0:_.value)===l);return o.jsxs("div",{style:E.backgroundClass,children:[o.jsx("span",{style:E.backgroundClassSquare,className:l}),w.I18n.t((u==null?void 0:u.label)||l)]})},hidden:'!!data["bg-image"]'},{label:"One parameter",type:"checkbox",attr:"useBackground",notStyle:!0,hidden:'!!data.background_class || !!data["bg-image"]'},{label:"background",attr:"background",hidden:'!data.useBackground || !!data.background_class || !!data["bg-image"]'},{label:"-color",type:"color",attr:"background-color",hidden:'data.useBackground || !!data.background_class || !!data["bg-image"]'},{label:"-image",attr:"background-image",hidden:'data.useBackground || !!data.background_class || !!data["bg-image"]'},{label:"-repeat",type:"autocomplete",attr:"background-repeat",hidden:'data.useBackground || !!data.background_class || !!data["bg-image"]',options:["repeat","repeat-x","repeat-y","no-repeat","initial","inherit"]},{label:"-attachment",attr:"background-attachment",type:"autocomplete",hidden:'data.useBackground || !!data.background_class || !!data["bg-image"]',options:["scroll","fixed","local","initial","inherit"]},{label:"-position",attr:"background-position",type:"autocomplete",hidden:'data.useBackground || !!data.background_class || !!data["bg-image"]',options:["left top","left center","left bottom","right top","right center","right bottom","center top","center center","center bottom","initial","inherit"]},{label:"-size",attr:"background-size",type:"autocomplete",hidden:'data.useBackground || !!data.background_class || !!data["bg-image"]',options:["auto","cover","contain","initial","inherit"]},{label:"-clip",attr:"background-clip",type:"autocomplete",hidden:'data.useBackground || !!data.background_class || !!data["bg-image"]',options:["border-box","padding-box","content-box","initial","inherit"]},{label:"-origin",attr:"background-origin",type:"autocomplete",hidden:'data.useBackground || !!data.background_class || !!data["bg-image"]',options:["border-box","padding-box","content-box","initial","inherit"]}]},{label:"CSS Font & Text",fields:[{label:"color",type:"color",attr:"color"},{label:"text-shadow",attr:"text-shadow"},{label:"font-family",attr:"font-family"},{label:"font-style",attr:"font-style"},{label:"font-variant",attr:"font-variant"},{label:"font-weight",attr:"font-weight"},{label:"font-size",attr:"font-size"},{label:"line-height",attr:"line-height"},{label:"letter-spacing",attr:"letter-spacing"},{label:"word-spacing",attr:"word-spacing"}]},{label:"Options",fields:[{type:"checkbox",label:"Default",attr:"useAsDefault",notStyle:!0},{type:"checkbox",label:"Render always",attr:"alwaysRender",notStyle:!0},{type:"select",label:"Grid",attr:"snapType",options:[{label:"Disabled",value:0},{label:"Elements",value:1},{label:"Grid",value:2}],notStyle:!0},{type:"color",label:"Grid color",attr:"snapColor",hidden:"data.snapType !== 2",notStyle:!0},{type:"number",label:"Grid size",attr:"gridSize",notStyle:!0,hidden:"data.snapType !== 2"},{type:"select",label:"Resolution",options:Fo,width:236,value:e,onChange:l=>{const u=JSON.parse(JSON.stringify(q.getState().visProject));if(l.target.value==="none")delete u[i].settings.sizex,delete u[i].settings.sizey;else if(l.target.value==="user"){u[i].settings.sizex=u[i].settings.sizex||0,u[i].settings.sizey=u[i].settings.sizey||0;const _=`${u[i].settings.sizex}x${u[i].settings.sizey}`;Fo.find(m=>m.value===_)&&u[i].settings.sizex++}else{const _=l.target.value.match(/^([0-9]+)x([0-9]+)$/);_&&(u[i].settings.sizex=_[1],u[i].settings.sizey=_[2])}n(u)},notStyle:!0},{type:"raw",label:"Width x height (px)",hidden:"data.sizex === undefined && data.sizey === undefined",Component:o.jsxs("span",{style:{display:"flex",alignItems:"center"},children:[o.jsx(f.TextField,{variant:"standard",value:((a=t.settings)==null?void 0:a.sizex)===void 0?"":t.settings.sizex,disabled:!s||e!=="user",slotProps:{input:{sx:{...E.clearPadding,...E.fieldContent}}},onChange:l=>{const u=JSON.parse(JSON.stringify(q.getState().visProject));u[i].settings.sizex=l.target.value,n(u)}}),o.jsx(S.Close,{fontSize:"small",style:{padding:"0px 10px"}}),o.jsx(f.TextField,{variant:"standard",value:((c=t.settings)==null?void 0:c.sizey)===void 0?"":t.settings.sizey,disabled:!s||e!=="user",slotProps:{input:{sx:{...E.clearPadding,...E.fieldContent}}},onChange:l=>{const u=JSON.parse(JSON.stringify(q.getState().visProject));u[i].settings.sizey=l.target.value,n(u)}})]}),notStyle:!0},{type:"checkbox",label:"Limit screen",attr:"limitScreen",hidden:"data.sizex === undefined && data.sizey === undefined",notStyle:!0},{type:"text",label:"Limit only for instances",attr:"limitForInstances",hidden:"!data.limitScreen",title:"Enter the browser instances divided by comma",notStyle:!0},{type:"checkbox",label:"Only for desktop",attr:"limitScreenDesktop",hidden:"(data.sizex === undefined && data.sizey === undefined) || !data.limitScreen",notStyle:!0},{type:"slider",label:"Limit border width",attr:"limitScreenBorderWidth",min:0,max:20,hidden:"(data.sizex === undefined && data.sizey === undefined) || !data.limitScreen",notStyle:!0},{type:"color",label:"Limit border color",attr:"limitScreenBorderColor",hidden:"(data.sizex === undefined && data.sizey === undefined) || !data.limitScreen || !data.limitScreenBorderWidth",notStyle:!0},{type:"select",label:"Limit border style",attr:"limitScreenBorderStyle",noTranslation:!0,options:[{label:"solid",value:"solid"},{label:"dotted",value:"dotted"},{label:"dashed",value:"dashed"},{label:"double",value:"double"},{label:"groove",value:"groove"},{label:"ridge",value:"ridge"},{label:"inset",value:"inset"},{label:"outset",value:"outset"}],hidden:"(data.sizex === undefined && data.sizey === undefined) || !data.limitScreen || !data.limitScreenBorderWidth",notStyle:!0},{type:"color",label:"Limit background color",attr:"limitScreenBackgroundColor",hidden:"(data.sizex === undefined && data.sizey === undefined) || !data.limitScreen",notStyle:!0}]},{label:"Navigation",fields:[{type:"checkbox",label:"Show navigation",attr:"navigation",notStyle:!0,groupApply:!0},{type:"text",label:"Title",attr:"navigationTitle",notStyle:!0,hidden:"!data.navigation"},{type:"number",label:"Order",attr:"navigationOrder",notStyle:!0,hidden:"!data.navigation"},{type:"icon64",label:"Icon",attr:"navigationIcon",notStyle:!0,hidden:"!data.navigation || data.navigationImage"},{type:"image",label:"Image",attr:"navigationImage",notStyle:!0,hidden:"!data.navigation || data.navigationIcon"},{type:"select",label:"Orientation",attr:"navigationOrientation",notStyle:!0,default:"vertical",hidden:"!data.navigation",applyToAll:!0,options:[{value:"vertical",label:"Vertical"},{value:"horizontal",label:"Horizontal"}]},{type:"checkbox",label:"Only icon",attr:"navigationOnlyIcon",title:"By horizontal menu do not show text if icon provided",notStyle:!0,default:!0,hidden:'!data.navigation || data.navigationOrientation !== "horizontal"',applyToAll:!0},{type:"color",label:"Background color",attr:"navigationBackground",notStyle:!0,hidden:'!data.navigation || data.navigationOrientation === "horizontal"',applyToAll:!0},{type:"color",label:"Background color if selected",attr:"navigationSelectedBackground",notStyle:!0,hidden:'!data.navigation || data.navigationOrientation === "horizontal"',applyToAll:!0},{type:"color",label:"Text color if selected",attr:"navigationSelectedColor",notStyle:!0,hidden:'!data.navigation || data.navigationOrientation === "horizontal"',applyToAll:!0},{type:"color",label:"Menu header text color",attr:"navigationHeaderTextColor",notStyle:!0,hidden:'!data.navigation || data.navigationOrientation === "horizontal"'},{type:"color",label:"Text color",attr:"navigationColor",notStyle:!0,hidden:"!data.navigation",applyToAll:!0},{type:"checkbox",label:"Hide menu",attr:"navigationHideMenu",notStyle:!0,title:"Show only toolbar on the top and hide menu itself",hidden:'!data.navigation || data.navigationOrientation === "horizontal"',applyToAll:!0},{type:"text",label:"Menu header text",attr:"navigationHeaderText",notStyle:!0,hidden:'!data.navigation || data.navigationOrientation === "horizontal"',applyToAll:!0},{type:"text",label:"Menu width",attr:"navigationWidth",notStyle:!0,hidden:'!data.navigation || data.navigationOrientation === "horizontal"',applyToAll:!0},{type:"checkbox",label:"Hide after selection",attr:"navigationHideOnSelection",notStyle:!0,hidden:'!data.navigation || data.navigationOrientation === "horizontal" || data.navigationHideMenu || data.navigationNoHide',applyToAll:!0},{type:"checkbox",label:"Do not hide menu",attr:"navigationNoHide",notStyle:!0,hidden:'!data.navigation || data.navigationOrientation === "horizontal" || data.navigationHideMenu || data.navigationHideOnSelection',applyToAll:!0},{type:"color",label:"Chevron icon color",attr:"navigationChevronColor",notStyle:!0,title:"Style of menu button only when the menu is hidden",hidden:'!data.navigation || data.navigationOrientation === "horizontal" || data.navigationHideMenu || data.navigationNoHide',applyToAll:!0},{type:"checkbox",label:"Show background of button",attr:"navigationButtonBackground",notStyle:!0,title:"Style of menu button only when the menu is hidden",hidden:'!data.navigation || data.navigationOrientation === "horizontal" || data.navigationHideMenu || data.navigationNoHide',applyToAll:!0}]},{label:"App bar",hidden:'!!data.navigation && data.navigationOrientation === "horizontal"',fields:[{type:"checkbox",label:"Show app bar",attr:"navigationBar",notStyle:!0,default:!0,groupApply:!0},{type:"color",label:"Bar color",attr:"navigationBarColor",notStyle:!0,hidden:"!data.navigationBar",applyToAll:!0},{type:"text",label:"Bar text",attr:"navigationBarText",notStyle:!0,hidden:"!data.navigationBar",applyToAll:!0},{type:"icon64",label:"Bar icon",attr:"navigationBarIcon",notStyle:!0,hidden:"!data.navigationBar || !!data.navigationBarImage",applyToAll:!0},{type:"image",label:"Bar image",attr:"navigationBarImage",notStyle:!0,hidden:"!data.navigationBar || !!data.navigationBarIcon",applyToAll:!0}]},{label:"Responsive settings",fields:[{type:"slider",label:"Column width",attr:"columnWidth",min:200,max:2e3,step:10,notStyle:!0},{type:"slider",label:"Column gap",attr:"columnGap",min:0,max:200,step:1,notStyle:!0},{type:"slider",label:"Row gap",attr:"rowGap",min:0,max:200,step:1,notStyle:!0}]}]}function tm(e){const[t,i]=D.useState(!1),[s,n]=D.useState(!1),[a,c]=D.useState(!1),l=D.useRef(),u=e.disabled?null:o.jsx(f.Popper,{open:t&&s&&!!e.value&&e.value.toString().startsWith(window.location.origin),anchorEl:l.current,placement:"bottom",transition:!0,children:({TransitionProps:m})=>o.jsx(f.Fade,{...m,timeout:350,children:o.jsxs(f.Paper,{children:[o.jsxs(f.Button,{style:{textTransform:"none"},onClick:()=>e.change(`.${e.value.toString().slice(window.location.origin.length)}`),children:[w.I18n.t("Replace to "),`.${e.value.toString().slice(window.location.origin.length)}`]}),o.jsx(f.IconButton,{size:"small",onClick:()=>n(!1),children:o.jsx(S.Clear,{fontSize:"small"})})]})})});let _;if(a){let m;m=e.value,m.startsWith("../")?m=m.substring(3):m.startsWith("_PRJ_NAME")&&(m=m.replace("_PRJ_NAME",`../${e.adapterName}.${e.instance}/${e.projectName}/`)),_=o.jsx(w.SelectFile,{theme:e.theme,title:w.I18n.t("Select file"),onClose:()=>c(!1),restrictToFolder:`${e.adapterName}.${e.instance}/${e.projectName}`,allowNonRestricted:!0,allowUpload:!0,allowDownload:!0,allowCreateFolder:!0,allowDelete:!0,allowView:!0,showToolbar:!0,imagePrefix:"../",selected:m,filterByType:"images",onOk:p=>{let y=Array.isArray(p)?p[0]:p;const b=`${e.adapterName}.${e.instance}/${e.projectName}/`;y!=null&&y.startsWith(b)?y=`_PRJ_NAME/${y.substring(b.length)}`:y!=null&&y.startsWith("/")?y=`..${y}`:y&&!y.startsWith(".")?y=`../${y}`:y||(y=null),e.change(y),c(!1)},socket:e.socket})}return o.jsxs(o.Fragment,{children:[o.jsx(f.TextField,{variant:"standard",fullWidth:!0,error:!!e.error,disabled:!e.editMode||e.disabled,slotProps:{input:{sx:{...E.clearPadding,...E.fieldContent},endAdornment:[e.value?o.jsx(f.IconButton,{onClick:()=>e.change(""),size:"small",children:o.jsx(S.Clear,{})},"clear"):null,o.jsx(f.Button,{disabled:!e.editMode||e.disabled,size:"small",onClick:()=>c(!0),children:"..."},"select")]}},ref:l,value:e.value,onFocus:()=>i(!0),onBlur:()=>i(!1),onChange:m=>e.change(m.target.value)}),u,_]})}function im(e){const[t,i]=D.useState(!1);return o.jsxs("div",{style:{display:"flex",width:"100%",alignItems:"center"},children:[o.jsx(f.TextField,{fullWidth:!0,size:"small",variant:"standard",value:e.value,error:!!e.error,disabled:!e.editMode||e.disabled,onChange:s=>e.change(s.target.value),slotProps:{input:{endAdornment:e.value?o.jsx(f.IconButton,{disabled:!e.editMode||e.disabled,size:"small",onClick:()=>e.change(""),children:o.jsx(S.Clear,{})}):null,sx:{...E.clearPadding,...E.fieldContent}}}}),o.jsx(f.Button,{disabled:!e.editMode||e.disabled,variant:e.value?"outlined":void 0,color:e.value?"grey":void 0,onClick:()=>i(!0),children:e.value?o.jsx(w.Icon,{src:e.value,style:{width:36,height:36}}):"..."}),t&&o.jsx(ol,{themeType:e.themeType,theme:e.theme,value:e.value,onClose:s=>{i(!1),s!==null&&e.change(s)}})]})}function Pl(e){var N,Y;const{field:t,view:i,editMode:s,themeType:n,checkFunction:a,changeProject:c,project:l,userGroups:u,adapterName:_,instance:m,projectName:p,socket:y,disabled:b,theme:j}=e,T=l[i].settings;if(a(t.hidden,T||{}))return null;const x=a(t.error,T||{}),A=t.notStyle?T==null?void 0:T[t.attr]:T==null?void 0:T.style[t.attr];let L=A;L==null&&(L="");const W=H=>{const R=ne(l);R[i].settings&&(t.notStyle?R[i].settings[t.attr]=H:R[i].settings.style[t.attr]=H),c(R)};if(t.type==="autocomplete"||t.type==="filter"){let H;return t.type==="filter"?(H=window.vis?window.vis.updateFilter():[],H.unshift("")):H=t.options||[],o.jsx(f.Autocomplete,{freeSolo:!0,options:H,disabled:!s||b,inputValue:L,value:L,onInputChange:(R,G)=>W(G),onChange:(R,G)=>W(G),sx:{...E.clearPadding,...E.fieldContent},renderInput:R=>o.jsx(f.TextField,{variant:"standard",...R})})}return t.type==="checkbox"?o.jsx(f.Checkbox,{disabled:!s||b,checked:!!L,sx:{...E.clearPadding,...E.fieldContent},size:"small",onChange:H=>W(H.target.checked)}):t.type==="select"?o.jsx(f.Select,{disabled:!s||b,variant:"standard",value:t.value?t.value:L,sx:{...E.clearPadding,"& .MuiSelect-select":{...E.clearPadding,...E.fieldContent}},onChange:t.onChange?t.onChange:H=>W(H.target.value),renderValue:t.renderValue,fullWidth:!0,children:(N=t.options)==null?void 0:N.map(H=>o.jsx(f.MenuItem,{value:H.value,children:t.itemModify?t.itemModify(H):t.noTranslation?H.label:w.I18n.t(H.label)},H.value))}):t.type==="multi-select"?o.jsx(f.Select,{disabled:!s||b,variant:"standard",renderValue:H=>H.join(", "),sx:{...E.clearPadding,"& .MuiSelect-select":{...E.clearPadding,...E.fieldContent}},value:L||[],onChange:H=>W(H.target.value),multiple:!0,fullWidth:!0,children:(Y=t.options)==null?void 0:Y.map(H=>o.jsxs(f.MenuItem,{value:H.value,children:[o.jsx(f.Checkbox,{checked:L.includes(H.value)}),o.jsx(f.ListItemText,{primary:t.noTranslation?H.label:w.I18n.t(H.label)})]},H.value))}):t.type==="groups"?o.jsx(f.Select,{variant:"standard",disabled:!s||b,value:L||[],fullWidth:!0,multiple:!0,sx:{...E.clearPadding,"& .MuiSelect-select":{...E.clearPadding,...E.fieldContent}},renderValue:H=>o.jsx("div",{style:{display:"flex"},children:Object.values(u).filter(R=>H.includes(R._id.split(".")[2])).map(R=>o.jsx("span",{style:{padding:"4px 4px"},children:o.jsx(w.TextWithIcon,{value:R._id,lang:w.I18n.getLanguage(),list:[R]})},R._id))}),onChange:H=>W(H.target.value),children:Object.values(u).map((H,R)=>o.jsxs(f.MenuItem,{value:H._id.split(".")[2],children:[o.jsx(f.Checkbox,{disabled:b,checked:(L||[]).includes(H._id.split(".")[2])}),o.jsx(w.TextWithIcon,{value:H._id,lang:w.I18n.getLanguage(),list:[H]})]},`${H._id.split(".")[2]}_${R}`))}):t.type==="raw"?t.Component:t.type==="color"?o.jsx(w.ColorPicker,{value:L,style:E.fieldContentColor,disabled:!s||b,onChange:H=>W(H)}):t.type==="icon"?o.jsx(w.IconPicker,{value:L,onChange:H=>W(H),disabled:!s||b}):t.type==="image"?o.jsx(tm,{theme:j,field:t,value:L,error:x,editMode:s,disabled:b,themeType:n,change:W,adapterName:_,instance:m,projectName:p,socket:y}):t.type==="slider"?o.jsxs("div",{style:{display:"flex"},children:[o.jsx(f.Slider,{disabled:!s||b,style:E.fieldContentSlider,size:"small",onChange:(H,R)=>W(Array.isArray(R)?R[0]:R),value:typeof L=="number"?L:0,min:t.min,max:t.max,step:t.step,marks:t.marks,valueLabelDisplay:t.valueLabelDisplay}),o.jsx(f.Input,{style:E.fieldContentSliderInput,value:L,disabled:!s||b,size:"small",onChange:H=>W(parseFloat(H.target.value)),sx:{...E.clearPadding,...E.fieldContent},inputProps:{step:t.step,min:t.min,max:t.max,type:"number"}}),o.jsx(f.IconButton,{disabled:!s||b,onClick:()=>W(null),children:o.jsx(S.Clear,{})})]}):t.type==="icon64"?o.jsx(im,{value:L,error:x,editMode:s,disabled:b,themeType:n,change:W,theme:j}):o.jsx(f.TextField,{disabled:!s||b,variant:"standard",fullWidth:!0,slotProps:{input:{endAdornment:t.clearButton&&A!==null&&A!==void 0?o.jsx(f.IconButton,{size:"small",onClick:()=>W(null),children:o.jsx(S.Clear,{})}):null,sx:{...E.clearPadding,...E.fieldContent}}},value:L,onChange:H=>W(H.target.value),type:t.type,error:!!x,helperText:typeof x=="string"?w.I18n.t(x):null})}function xs(e,t,i,s,n){var l,u;if(s=s||Object.keys(e).filter(_=>_!=="___settings"&&_!==i),!s.length)return null;let a=(l=e[i].settings)==null?void 0:l[t.attr];t.type==="checkbox"?a=!!a:t.attr==="navigationOrientation"?a=a||"vertical":a=a||"";const c=[];for(let _=0;_<s.length;_++){const m=s[_];if(n(t.hidden,e[m].settings))continue;let y;y=(u=e[m].settings)==null?void 0:u[t.attr],t.type==="checkbox"?y=!!y:t.attr==="navigationOrientation"?y=y||"vertical":y=y||"",y!==a&&c.push(m)}return c.length?c:null}function sm(e){if(!e.field)return null;const{project:t,viewList:i,onClose:s,selectedView:n,field:a,changeProject:c,checkFunction:l}=e,u=[];for(let _=0;_<a.group.fields.length;_++){const m=a.group.fields[_];if(m.applyToAll){const p=xs(t,m,n,i,l)||[];p==null||p.forEach(y=>{u.includes(y)||u.push(y)})}}return o.jsx(w.Confirm,{title:w.I18n.t("Apply ALL navigation properties to all views"),text:`${w.I18n.t("Following views will be changed")}: ${u.join(", ")}`,onClose:_=>{if(_){const m=JSON.parse(JSON.stringify(t));for(let p=0;p<a.group.fields.length;p++){const y=a.group.fields[p];if(y.applyToAll){const b=xs(t,a,n,i,l)||[];b==null||b.forEach(j=>{m[j].settings[y.attr]=m[n].settings[y.attr]})}}c(m)}s()}})}const nm={draggableItem:{width:"100%",display:"flex",padding:8,alignItems:"center"}};function om(e){if(!e.field)return null;const i=Object.keys(e.project).filter(a=>a!=="___settings").map(a=>{let c=!1;e.field.disabled!==void 0&&(e.field.disabled===!0?c=!0:e.field.disabled===!1?c=!1:c=!!e.checkFunction(e.field.disabled,e.project[a].settings||{}));const l=Pl({field:e.field,disabled:c,view:a,editMode:!0,changeProject:e.changeProject,userGroups:e.userGroups,adapterName:e.adapterName,themeType:e.themeType,instance:e.instance,projectName:e.projectName,socket:e.socket,checkFunction:e.checkFunction,project:e.project,theme:e.theme});return l?{control:l,view:a,order:parseInt(e.project[a].settings.navigationOrder??"0")}:null}).filter(a=>a);i.sort((a,c)=>a.order===c.order?0:a.order<c.order?-1:1);const s=i.map(a=>a.view),n=e.field.applyToAll&&xs(e.project,e.field,i[0].view,null,e.checkFunction);return o.jsxs(f.Dialog,{open:!0,onClose:e.onClose,maxWidth:"md",children:[o.jsx(f.DialogTitle,{children:w.I18n.t(e.field.label)}),o.jsx(f.DialogContent,{children:o.jsx(Ig,{onDragEnd:a=>{const c=ne(e.project);s.forEach((u,_)=>{c[u].settings.navigationOrder=_});const l=c[s[a.destination.index]].settings.navigationOrder;c[s[a.destination.index]].settings.navigationOrder=c[s[a.source.index]].settings.navigationOrder,c[s[a.source.index]].settings.navigationOrder=l,e.changeProject(c)},children:o.jsx(Hg,{droppableId:"items",type:"ROW",children:(a,c)=>o.jsxs("div",{ref:a.innerRef,...a.droppableProps,style:{width:"100%",backgroundColor:c.isDraggingOver?"#112233":void 0},children:[i.map((l,u)=>o.jsx(Ag,{draggableId:l.view||"",index:u,children:(_,m)=>o.jsxs("div",{ref:_.innerRef,..._.draggableProps,style:{...nm.draggableItem,..._.draggableProps.style,backgroundColor:m.isDragging?"#334455":void 0},children:[o.jsx("div",{..._.dragHandleProps,style:{display:"inline-block",width:24,marginRight:8},children:o.jsx(S.DragHandle,{})}),o.jsxs("div",{style:{display:"inline-block",width:200},children:[o.jsx("div",{style:{fontWeight:"bold"},children:e.project[l.view].settings.navigationTitle||l.view}),e.project[l.view].settings.navigationTitle?o.jsx("div",{style:{fontSize:"smaller",opacity:.7},children:l.view}):null]}),o.jsx("div",{style:{display:"inline-block",minWidth:100,flexGrow:1},children:l.control}),n?o.jsx(f.Tooltip,{title:w.I18n.t("Apply to all views"),slotProps:{popper:{sx:{pointerEvents:"none"}}},children:o.jsx(f.IconButton,{size:"small",onClick:()=>{const p=ne(e.project),y=xs(e.project,e.field,l.view,null,e.checkFunction)||[];y==null||y.forEach(b=>{p[b].settings[e.field.attr]=p[l.view].settings[e.field.attr]}),e.changeProject(p)},children:o.jsx(S.FormatPaint,{})})}):null]},l.view)},l.view)),a.placeholder]})})})}),o.jsx(f.DialogActions,{children:o.jsx(f.Button,{variant:"contained",onClick:e.onClose,color:"grey",startIcon:o.jsx(S.Close,{}),children:w.I18n.t("Close")})})]})}const ni={accordionRoot:{p:0,m:0,minHeight:0,"&:before":{opacity:0}},accordionOpenedSummary:{fontWeight:"bold"},lightedPanel:e=>e.classes.lightedPanel,accordionDetails:e=>({...e.classes.lightedPanel,borderRadius:"0 0 4px 4px",flexDirection:"column",p:0,m:0}),fieldTitle:{width:140,fontSize:"80%",display:"flex",alignItems:"center",justifyContent:"space-between"},groupSummary:{mt:"10px",borderRadius:"4px",p:"2px",minHeight:0},groupSummaryExpanded:{mt:"10px",borderTopRightRadius:"4px",borderTopLeftRadius:"4px",p:"2px",minHeight:0}},Oi=(e,t)=>{if(e===!0)return!0;if(e===!1||e===void 0)return!1;try{let i;return typeof e=="function"?i=e:i=new Function("data",`return ${e}`),i(t)}catch(i){console.error(`Cannot execute hidden on "${e}": ${i}`)}return!1};function Lr(e,t,i,s){return o.jsxs("div",{style:{display:"flex",width:"100%",alignItems:"end"},children:[o.jsx("div",{style:{flex:1,lineHeight:"36px",marginRight:4,display:"flex",alignItems:"center"},children:e}),s?o.jsx(f.Tooltip,{title:w.I18n.t("Apply ALL navigation properties to all views"),slotProps:{popper:{sx:{pointerEvents:"none"}}},children:o.jsx("span",{children:o.jsx(f.IconButton,{size:"small",disabled:t,color:"primary",onClick:()=>s(),children:o.jsx(S.FormatPaint,{})})})}):null,i?o.jsx(f.Tooltip,{title:w.I18n.t("Show this attribute by all views"),slotProps:{popper:{sx:{pointerEvents:"none"}}},children:o.jsx("span",{children:o.jsx(f.IconButton,{size:"small",disabled:t,onClick:()=>i(),children:o.jsx(S.Visibility,{})})})}):o.jsx("div",{style:{width:24,height:24}})]})}const am=e=>{var N,Y;const[t,i]=D.useState(0),[s,n]=D.useState(0),[a,c]=D.useState(null),[l,u]=D.useState(null);let _="none";const m=q.getState().visProject,p=m[e.selectedView],y=D.useMemo(()=>p?em(_,p,e.selectedView,e.editMode,e.changeProject):[],[p,_,(N=p==null?void 0:p.settings)==null?void 0:N.sizex,(Y=p==null?void 0:p.settings)==null?void 0:Y.sizey,e.selectedView,e.editMode,e.changeProject]),[b,j]=D.useState({});if(D.useEffect(()=>{window.localStorage.getItem("attributesView")},[]),D.useEffect(()=>{const H={};e.triggerAllOpened!==t&&(y.forEach((R,G)=>H[G]=1),i(e.triggerAllOpened||0),window.localStorage.setItem("attributesView",JSON.stringify(H)),j(H)),e.triggerAllClosed!==s&&(y.forEach((R,G)=>H[G]=0),n(e.triggerAllClosed||0),window.localStorage.setItem("attributesView",JSON.stringify(H)),j(H))},[e.triggerAllOpened,e.triggerAllClosed,y]),!(m!=null&&m[e.selectedView]))return null;_=`${p.settings.sizex}x${p.settings.sizey}`,!p.settings||p.settings.sizex===void 0&&p.settings.sizey===void 0?_="none":Fo.find(H=>H.value===_)||(_="user");const T=!y.find((H,R)=>b[R]===0||b[R]===2),x=!y.find((H,R)=>b[R]===1);e.isAllClosed!==x&&setTimeout(()=>e.setIsAllClosed(x),50),e.isAllOpened!==T&&setTimeout(()=>e.setIsAllOpened(T),50);const A=Object.keys(m).filter(H=>H!=="___settings"&&H!==e.selectedView),L=sm({field:a,viewList:A,project:m,selectedView:e.selectedView,changeProject:e.changeProject,onClose:()=>c(null),checkFunction:Oi}),W=om({project:m,field:l,onClose:()=>u(null),changeProject:e.changeProject,userGroups:e.userGroups,adapterName:e.adapterName,themeType:e.themeType,instance:e.instance,projectName:e.projectName,socket:e.socket,theme:e.theme,checkFunction:Oi});return o.jsxs("div",{style:{height:"100%",overflowY:"auto"},children:[y.map((H,R)=>{var G;return Oi(H.hidden,((G=m[e.selectedView])==null?void 0:G.settings)||{})?null:o.jsxs(f.Accordion,{sx:{"&.MuiAccordion-root":ni.accordionRoot,"& .Mui-expanded":E.clearPadding},square:!0,elevation:0,expanded:b[R]===1,onChange:(J,P)=>{const oe={...b};oe[R]=P?1:2,P&&window.localStorage.setItem("attributesView",JSON.stringify(oe)),j(oe),P||(e.setIsAllClosed(!1),setTimeout(()=>{const z={...b};z[R]=0,window.localStorage.setItem("attributesView",JSON.stringify(z)),j(z)},200))},children:[o.jsx(f.AccordionSummary,{sx:{"&.MuiAccordionSummary-root":w.Utils.getStyle(e.theme,E.clearPadding,b[R]===1?ni.groupSummaryExpanded:ni.groupSummary,ni.lightedPanel),"& .MuiAccordionSummary-content":w.Utils.getStyle(e.theme,E.clearPadding,b[R]===1&&ni.accordionOpenedSummary),"& .Mui-expanded":E.clearPadding,"& .MuiAccordionSummary-expandIconWrapper":E.clearPadding},expandIcon:o.jsx(S.ExpandMore,{}),children:w.I18n.t(H.label)}),b[R]!==0?o.jsx(f.AccordionDetails,{sx:ni.accordionDetails,children:o.jsx("table",{style:{width:"100%"},children:o.jsx("tbody",{children:H.fields.map((J,P)=>{var Z,F;let oe=!1;J.disabled!==void 0&&(J.disabled===!0?oe=!0:J.disabled===!1?oe=!1:oe=!!Oi(J.disabled,m[e.selectedView].settings||{}));let z=Pl({field:J,disabled:oe,view:e.selectedView,editMode:e.editMode,changeProject:e.changeProject,userGroups:e.userGroups,adapterName:e.adapterName,themeType:e.themeType,instance:e.instance,projectName:e.projectName,socket:e.socket,checkFunction:Oi,project:m,theme:e.theme});if(!z)return null;let K=null;if(J.title&&(K=o.jsx(f.Tooltip,{title:w.I18n.t(J.title),slotProps:{popper:{sx:{pointerEvents:"none"}}},children:o.jsx(S.Info,{style:ni.fieldHelpText,fontSize:"small"})})),J.groupApply){const Q=H.fields.find(le=>le.applyToAll&&xs(m,le,e.selectedView,A,Oi));z=Lr(z,!e.editMode||oe,()=>u(J),Q&&((Z=m[e.selectedView].settings)!=null&&Z[J.attr])?()=>c({...J,group:H}):null)}else(F=J.attr)!=null&&F.startsWith("navigation")&&(z=Lr(z,!e.editMode||oe,()=>u(J)));return o.jsxs("tr",{children:[o.jsxs("td",{style:ni.fieldTitle,title:J.title?w.I18n.t(J.title):void 0,children:[w.I18n.t(J.label),K]}),o.jsx(f.Box,{component:"td",sx:{...E.fieldContent,width:"100%"},children:z})]},P)})})})}):null]},R)}),L,W]})},rm=Object.freeze(Object.defineProperty({__proto__:null,default:_h,getSvgIconUtilityClass:gh,svgIconClasses:hh},Symbol.toStringTag,{value:"Module"})),lm=Object.freeze(Object.defineProperty({__proto__:null,default:Xg,getTypographyUtilityClass:Qg,typographyClasses:eh},Symbol.toStringTag,{value:"Module"})),cm=Object.freeze(Object.defineProperty({__proto__:null,default:th,getMenuItemUtilityClass:ih,menuItemClasses:sh},Symbol.toStringTag,{value:"Module"})),dm=Object.freeze(Object.defineProperty({__proto__:null,buttonClasses:nh,default:oh,getButtonUtilityClass:ah},Symbol.toStringTag,{value:"Module"})),ot=e=>o.jsxs(f.Dialog,{onClose:e.closeDisabled?null:e.onClose,open:!0,fullScreen:!!e.fullScreen,maxWidth:e.maxWidth||"md",children:[o.jsx(f.DialogTitle,{children:e.noTranslation?e.title:w.I18n.t(e.title)}),o.jsx(f.DialogContent,{style:{minWidth:e.minWidth||void 0},onKeyUp:t=>{e.action&&!e.actionDisabled&&!e.keyboardDisabled&&t.key==="Enter"&&(e.action(),e.actionNoClose||e.onClose())},children:e.children}),o.jsxs(f.DialogActions,{children:[e.dialogActions||null,e.actionTitle?o.jsx(f.Button,{variant:"contained",onClick:()=>{e.action(),e.actionNoClose||e.onClose()},color:e.actionColor||"primary",disabled:e.actionDisabled,startIcon:e.ActionIcon?o.jsx(e.ActionIcon,{}):void 0,children:e.noTranslation?e.actionTitle:w.I18n.t(e.actionTitle)}):null,o.jsx(f.Button,{variant:"contained",color:"grey",onClick:e.onClose,disabled:e.closeDisabled,startIcon:o.jsx(S.Close,{}),children:e.noTranslation&&e.closeTitle?e.closeTitle:w.I18n.t(e.closeTitle||"Cancel")})]})]}),um=e=>{const[t,i]=D.useState(e.value||"");return o.jsx(ot,{keyboardDisabled:!0,title:e.type==="json"?"JSON edit":e.type==="html"?"HTML edit":"Text edit",actionTitle:"Save",action:()=>e.onChange(t),onClose:e.onClose,minWidth:800,actionDisabled:t===e.value,children:o.jsx(Pt,{type:e.type,themeType:e.themeType,value:t,height:400,onChange:s=>i(s)})})},_m=["px","%","em","rem","vh","vw","vmin","vmax","ex","ch","cm","mm","in","pt","pc"];function gm(){const e={},t=document.styleSheets;for(let i=0;i<t.length;i++)if(document.styleSheets[i])try{const s=document.styleSheets[i].cssRules;if(s)for(let n=0;n<s.length;n++){if(!s[n].selectorText)continue;const a=s[n].selectorText.split(",");for(let c=0;c<a.length;c++){const l=a[c].trim().split(" "),u=l[l.length-1].replace("::before","").replace("::after","").replace(":before","").replace(":after","");if(!u||u[0]!=="."||u.includes(":"))continue;let _=u;_=_.replace(",",""),_=_.replace(/^\./,"");const m=_;if(_=_.replace(/^hq-background-/,""),_=_.replace(/^hq-/,""),_=_.replace(/^ui-/,""),_=_.replace(/[-_]/g," "),_.length>0){_=_[0].toUpperCase()+_.substring(1);let p=document.styleSheets[i].href;p&&p.includes("/")&&(p=p.substring(p.lastIndexOf("/")+1)),e[m]||(l.length>1?e[m]={name:_,file:p,attrs:s[n].style,parentClass:l[0].replace(".","")}:e[m]={name:_,file:p,attrs:s[n].style})}}}}catch(s){s.toString().includes("Cannot access rules")?console.warn(`[${i}] Cannot access rules`):console.error(`[${i}] Error by rules collection: ${s}`)}return e}function hm(e){const t=window.collectClassesValue;e.filterName=e.filterName||"",e.filterAttrs=e.filterAttrs||"",e.filterFile=e.filterFile||"";let i={};if(e.styles)i={...e.styles};else if(e.filterFile||e.filterName){const s=e.filterName?e.filterName.split(" "):null,n=e.filterAttrs?e.filterAttrs.split(" "):null,a=e.filterFile?e.filterFile.split(" "):[""];Object.keys(t).forEach(c=>a.forEach(l=>{if(!e.filterFile||t[c].file&&t[c].file.includes(l)){let u=!s;if(u=u||!!s.find(_=>c.includes(_)),u&&(u=!n,u||(u=!!n.find(_=>{const m=t[c].attrs[_];return m||m===0}))),u){let _=t[c].name;e.removeName&&(_=_.replace(e.removeName,""),_=_[0].toUpperCase()+_.substring(1).toLowerCase()),i[c]={name:_,file:t[c].file,parentStyle:t[c].parentStyle}}}}))}else i={...i,...t};return i}const Vo=(e,t=[],i=null,s=0)=>(e.___settings.folders.filter(a=>(a.parentId||null)===i).forEach(a=>{t.push({type:"folder",folder:a,level:s+1}),Vo(e,t,a.id,s+1)}),Object.keys(e).filter(a=>(e[a].parentId||null)===i&&!a.startsWith("__")).forEach(a=>{var c;t.push({type:"view",view:a,label:(c=e[a].settings)!=null&&c.navigationTitle?`${e[a].settings.navigationTitle} (${a})`:a,level:s+1})}),t),Mo={},Ve=(e,...t)=>{const i=`${e}_${t.join(",")}`;return Mo[i]||(Mo[i]=w.I18n.t(e,...t)),Mo[i]};function pm(e,t,i,s,n){const a=ne(e);return Wn(a,t,i).forEach(l=>a[l.view].widgets[l.wid].data[l.attr]=""),a[t].widgets[s].data[n]=i,a}const Dl=e=>{var ve,ce,se;const[t,i]=D.useState(!1),[s,n]=D.useState(null),[a,c]=D.useState(null),{field:l,widget:u,adapterName:_,instance:m,projectName:p,isDifferent:y,error:b,disabled:j,index:T,widgetId:x}=e;let A=null;if((ve=l.type)!=null&&ve.startsWith("custom,")){const C=l.type.split(",");C.shift();const M=C[0].split(".");if(M[0]==="vis"&&M.shift(),M[0]==="binds"&&M.shift(),window._=window.vis._,window.vis.activeWidgets=[...e.selectedWidgets],window.vis.activeView=e.selectedView,M.length===1)if(typeof window.vis.binds[M[0]]=="function")try{A=window.vis.binds[M[0]](l.name,C)}catch(k){console.error(`vis.binds.${M.join(".")}: ${k}`)}else console.log(`No function: vis.binds.${M.join(".")}`);else if(M.length===2)if(window.vis.binds[M[0]]&&typeof window.vis.binds[M[0]][M[1]]=="function")try{A=window.vis.binds[M[0]][M[1]](l.name,C)}catch(k){console.error(`vis.binds.${M.join(".")}: ${k}`)}else console.log(`No function: vis.binds.${M.join(".")}`);else if(M.length===3)if(window.vis.binds[M[0]]&&window.vis.binds[M[0]][M[1]]&&typeof window.vis.binds[M[0]][M[1]][M[2]]=="function")try{A=window.vis.binds[M[0]][M[1]][M[2]](l.name,C)}catch(k){console.error(`vis.binds.${M.join(".")}: ${k}`)}else console.log(`No function: vis.binds.${M.join(".")}`);else M.length?console.log(`Function name is too long: vis.binds.${M.join(".")}`):console.log("Function name is too short: vis.binds")}const[L,W]=D.useState(""),[N,Y]=D.useState([]),H=D.useRef(null),R=D.useRef();let G;const J=C=>{const M=ne(q.getState().visProject);e.selectedWidgets.forEach((k,I)=>{const re=Array.isArray(C)&&l.type!=="groups"?C[I]:C,Je=e.isStyle?M[e.selectedView].widgets[k].style:M[e.selectedView].widgets[k].data;if(Je[l.name]=re,l.onChangeFunc&&e.widgetType)try{window.vis.binds[e.widgetType.set][l.onChangeFunc](k,e.selectedView,re,l.name,e.isStyle,e.isStyle?u.style[l.name]:u.data[l.name],T)}catch(he){console.error(`Cannot call onChangeFunc: ${he}`)}l.onChange&&l.onChange(l,JSON.parse(JSON.stringify(Je)),he=>{const He=JSON.parse(JSON.stringify(q.getState().visProject));He[e.selectedView].widgets[k].data=he,G&&clearTimeout(G),G=setTimeout(()=>{G=null,e.changeProject(He)},100)},e.socket,T)}),e.changeProject(M)},P=C=>{Array.isArray(C)||l.immediateChange?J(C):C!==L&&(W(C),H.current&&clearTimeout(H.current),H.current=setTimeout(()=>{H.current=null,J(C)},300))};let oe=e.isStyle?(ce=u.style)==null?void 0:ce[l.name]:(se=u.data)==null?void 0:se[l.name];oe===void 0&&(oe=null),D.useEffect(()=>{oe!==void 0&&W(oe),(l.type==="instance"||l.type==="history")&&(l.adapter==="_dataSources"||l.type==="history"?e.socket.getAdapterInstances("").then(C=>{const M=C.filter(k=>k.common.getHistory).map(k=>({id:k._id.replace("system.adapter.",""),idShort:k._id.split(".").pop(),name:k.common.name,icon:k.common.icon})).sort((k,I)=>k.name>I.name?1:k.name<I.name?-1:0);Y(M)}):Array.isArray(l.adapters)?e.socket.getAdapterInstances("").then(C=>{const M=C.filter(k=>l.adapters.includes(k.common.name)).map(k=>({id:k._id.replace("system.adapter.",""),idShort:k._id.split(".").pop(),name:k.common.name,icon:k.common.icon})).sort((k,I)=>k.name>I.name?1:k.name<I.name?-1:0);Y(M)}):e.socket.getAdapterInstances(l.adapter||"").then(C=>{const M=C.map(k=>({id:k._id.replace("system.adapter.",""),idShort:k._id.split(".").pop(),name:k.common.name,icon:k.common.icon})).sort((k,I)=>k.name>I.name?1:k.name<I.name?-1:0);Y(M)}))},[oe]);let z=L;z==null&&(l.default?z=l.default:z=""),window.collectClassesValue||=gm();const K=D.useRef(),[Z,F]=D.useState(!1),[Q,le]=D.useState(!0),ge=(!l.type||l.type==="number"||l.type==="password"||l.type==="image")&&!j?o.jsx(f.Popper,{open:Z&&Q&&!!z&&z.toString().startsWith(window.location.origin),anchorEl:K.current,placement:"bottom",transition:!0,children:({TransitionProps:C})=>o.jsx(f.Fade,{...C,timeout:350,children:o.jsxs(f.Paper,{children:[o.jsxs(f.Button,{style:{textTransform:"none"},onClick:()=>P(`.${z.toString().slice(window.location.origin.length)}`),children:[w.I18n.t("Replace to "),`.${z.toString().slice(window.location.origin.length)}`]}),o.jsx(f.IconButton,{size:"small",onClick:()=>le(!1),children:o.jsx(S.Clear,{fontSize:"small"})})]})})}):null;if(D.useEffect(()=>{A&&R.current&&typeof A.init=="function"&&A.init.call(R.current.children[0]||R.current,l.name,oe)}),a){const C=Wn(q.getState().visProject,e.selectedView,a.wid);return o.jsxs(f.Dialog,{open:!0,onClose:()=>c(null),children:[o.jsx(f.DialogTitle,{children:w.I18n.t("Usage of widget %s",a.wid)}),o.jsx(f.DialogContent,{children:o.jsxs(f.DialogContentText,{children:[w.I18n.t('This widget is already used in "%s"',C[0].wid),o.jsx("br",{}),w.I18n.t("Should it be moved to new place?")]})}),o.jsxs(f.DialogActions,{children:[o.jsx(f.Button,{color:"primary",variant:"contained",onClick:()=>{const M=a.cb;c(null),M()},startIcon:o.jsx(S.Check,{}),children:w.I18n.t("Move to new place")}),o.jsx(f.Button,{color:"grey",variant:"contained",onClick:()=>c(null),startIcon:o.jsx(S.Close,{}),children:w.I18n.t("Keep on old place")})]})]})}if(A)return A.button?o.jsxs("div",{style:{width:"100%",display:"flex"},children:[o.jsx("div",{ref:R,dangerouslySetInnerHTML:{__html:A.input}}),o.jsx(f.Button,{style:{width:30,height:30,minWidth:30,minHeight:30,marginLeft:5},title:A.button.title,onClick:C=>{typeof A.button.code=="function"&&A.button.code(A.button);const M=window.jQuery(C.target);M.data("wdata",{attr:l.name,widgets:e.selectedWidgets,view:e.selectedView}),A.button.data&&M.data("data-custom",A.button.data),window.vis.widgets[e.selectedWidgets[0]]&&window.vis.widgets[e.selectedWidgets[0]].data&&window.vis.widgets[e.selectedWidgets[0]].data[l.name]===void 0&&(window.vis.widgets[e.selectedWidgets[0]].data[l.name]=""),A.button.click.call(C.target)},children:"..."})]}):o.jsx("div",{ref:R,dangerouslySetInnerHTML:{__html:A.input}});if(l.type==="id"||l.type==="hid"){z&&(!s||z!==s._id)&&e.socket.getObject(z).then(k=>n(k)).catch(()=>n(null)),s&&!z&&n(null);let C=null,M=null;return t&&!j&&(l.type==="hid"?C={common:{custom:"_dataSources"}}:typeof l.filter=="string"&&l.filter!=="chart"&&l.filter!=="channel"&&l.filter!=="device"?l.filter.includes(".")||l.filter.startsWith("level")||l.filter.startsWith("value")?M={role:l.filter}:C={type:l.filter}:l.filter&&(typeof l.filter=="function"?C=l.filter(u.data,T):C=l.filter)),o.jsxs(o.Fragment,{children:[o.jsx(f.TextField,{variant:"standard",fullWidth:!0,placeholder:y?Ve("different"):null,sx:{"& .MuiInputBase-root":{...E.clearPadding,...E.fieldContent}},slotProps:{input:{endAdornment:o.jsx(f.Button,{tabIndex:-1,style:{minWidth:30},disabled:j,size:"small",onClick:()=>i(!0),children:"..."})}},error:!!b,helperText:typeof b=="string"?w.I18n.t(b):null,disabled:j,value:z,onChange:k=>P(k.target.value)}),o.jsx("div",{style:{...E.fieldContent,fontStyle:"italic"},children:s?typeof s.common.name=="object"?s.common.name[w.I18n.lang]:s.common.name:null}),t&&!j?o.jsx(w.SelectID,{imagePrefix:"../",theme:e.theme,selected:z,onOk:k=>P(k),onClose:()=>i(!1),socket:e.socket,types:l.filter==="chart"||l.filter==="channel"||l.filter==="device"?[l.filter]:null,filters:M,expertMode:l.filter==="chart"?!0:void 0,customFilter:C}):null]})}if(l.type==="checkbox")return o.jsxs(f.FormControl,{error:!!b,component:"fieldset",variant:"standard",children:[o.jsx(f.Checkbox,{disabled:j,checked:!!z,sx:{...E.clearPadding,...E.fieldContent},size:"small",onChange:C=>{q.dispatch(Ze(!0)),P(C.target.checked)}}),typeof b=="string"?o.jsx(f.FormHelperText,{children:w.I18n.t(b)}):null]});if(l.type==="image"){let C;return t&&(C=z||"",C.startsWith("../")?C=C.substring(3):C.startsWith("_PRJ_NAME/")&&(C=C.replace("_PRJ_NAME/",`../${_}.${m}/${p}/`))),o.jsxs(o.Fragment,{children:[o.jsx(f.TextField,{variant:"standard",fullWidth:!0,placeholder:y?Ve("different"):null,error:!!b,helperText:typeof b=="string"?w.I18n.t(b):null,disabled:j,slotProps:{input:{sx:{...E.clearPadding,...E.fieldContent},endAdornment:o.jsx(f.Button,{tabIndex:-1,style:{minWidth:30},disabled:j,size:"small",onClick:()=>i(!0),children:"..."})}},ref:K,value:z,onFocus:()=>F(!0),onBlur:()=>F(!1),onChange:M=>P(M.target.value)}),ge,t?o.jsx(w.SelectFile,{title:Ve("Select file"),onClose:()=>i(!1),restrictToFolder:`${_}.${m}/${p}`,allowNonRestricted:!0,allowUpload:!0,allowDownload:!0,allowCreateFolder:!0,allowDelete:!0,allowView:!0,showToolbar:!0,imagePrefix:"../",selected:C,filterByType:"images",theme:e.theme,onOk:M=>{let k=Array.isArray(M)?M[0]:M;const I=`${_}.${m}/${p}/`;k.startsWith(I)?k=`_PRJ_NAME/${k.substring(I.length)}`:k.startsWith("/")?k=`..${k}`:k.startsWith(".")||(k=`../${k}`),P(k),i(!1)},socket:e.socket}):null]})}if(l.type==="dimension"){const C=(z||"").toString().match(/^(-?[,.0-9]+)([a-z%]*)$/);let M=!C,k,I;if(C&&(k=C[1],I=C[2]||"px",(!window.isFinite(k)||C[2]&&!_m.includes(C[2]))&&(M=!0)),e.selectedWidgets.length>1){const re=[];if(y&&z==="")for(const he of e.selectedWidgets){let Re=Lo(q.getState(),e.selectedView,he).style[l.name];Re=typeof Re=="number"?Re.toString():Re,Re!==void 0&&Re!==""&&!re.includes(Re)&&re.push(Re)}const Je=typeof z=="number"?z.toString():z;return re.length&&z!==""&&!re.includes(Je)&&re.push(Je),o.jsx(f.Autocomplete,{options:re,freeSolo:!0,sx:{"& .MuiInput-root":{...E.clearPadding,...E.fieldContent}},value:Je,onChange:(he,He)=>P(He),renderInput:he=>o.jsx(f.TextField,{...he,variant:"standard",fullWidth:!0,placeholder:y?Ve("different"):null,error:!!b,helperText:typeof b=="string"?w.I18n.t(b):null,disabled:j,slotProps:{input:{...he.InputProps,sx:{...E.clearPadding,...E.fieldContent},endAdornment:!y&&!M?o.jsx(f.Button,{tabIndex:-1,style:{minWidth:30},size:"small",disabled:j,title:Ve("Convert %s to %s",I,I==="%"?"px":"%"),onClick:()=>{I!=="%"?e.onPxToPercent(e.selectedWidgets,l.name,He=>P(He[0])):e.onPercentToPx(e.selectedWidgets,l.name,He=>P(He[0]))},children:I}):null}},value:z,onChange:He=>P(He.target.value)})})}return o.jsx(f.TextField,{variant:"standard",fullWidth:!0,placeholder:y?Ve("different"):null,error:!!b,helperText:typeof b=="string"?w.I18n.t(b):null,disabled:j,slotProps:{input:{sx:{...E.clearPadding,...E.fieldContent},endAdornment:M?null:o.jsx(f.Button,{tabIndex:-1,size:"small",style:{minWidth:30},disabled:j,title:Ve("Convert %s to %s",I,I==="%"?"px":"%"),onClick:()=>{I!=="%"?e.onPxToPercent(e.selectedWidgets,l.name,re=>P(re[0])):e.onPercentToPx(e.selectedWidgets,l.name,re=>P(re[0]))},children:I})}},value:z,onChange:re=>P(re.target.value)})}if(l.type==="color")return o.jsx(w.ColorPicker,{theme:e.theme,disabled:j,value:z||"",sx:E.fieldContentColor,onChange:C=>P(C)});if(l.type==="eff_opt")return o.jsxs(o.Fragment,{children:[l.type,"/",z]});if(l.type==="slider")return o.jsxs("div",{style:{display:"flex"},children:[o.jsx("div",{style:{width:5}}),o.jsx(f.Slider,{disabled:j,style:E.fieldContentSlider,size:"small",onChange:(C,M)=>P(M),value:typeof z=="number"?z:0,min:l.min,max:l.max,step:l.step,marks:l.marks,valueLabelDisplay:l.valueLabelDisplay}),o.jsx(f.Input,{style:{...E.fieldContentSliderInput,width:l.max>1e5?70:l.max>1e4?60:50},value:z,disabled:j,size:"small",onChange:C=>C.target.value===""?P(""):P(parseFloat(C.target.value)),sx:{...E.clearPadding,...E.fieldContent},inputProps:{step:l.step,min:l.min,max:l.max,type:"number"}})]});if(l.type==="select"||l.type==="nselect"||l.type==="fontname"||l.type==="effect"||l.type==="widget"){let{options:C}=l;if(l.type==="fontname"&&(C=e.fonts),l.type==="effect"&&(C=["","show","blind","bounce","clip","drop","explode","fade","fold","highlight","puff","pulsate","scale","shake","size","slide"]),l.type==="widget"){let k=[];if(l.all?Object.keys(q.getState().visProject).forEach(I=>q.getState().visProject[I].widgets&&Object.keys(q.getState().visProject[I].widgets).filter(re=>(l.withGroups||!q.getState().visProject[I].widgets[re].grouped)&&(l.withSelf||re!==x)&&(!l.hideUsed||!q.getState().visProject[I].widgets[re].usedInView)).forEach(re=>k.push({wid:re,view:I,tpl:q.getState().visProject[I].widgets[re].tpl,name:q.getState().visProject[I].widgets[re].name}))):k=Object.keys(q.getState().visProject[e.selectedView].widgets).filter(I=>(l.withGroups||!q.getState().visProject[e.selectedView].widgets[I].grouped)&&(l.withSelf||I!==x)&&(!l.hideUsed||!q.getState().visProject[e.selectedView].widgets[I].usedInView)).map(I=>({wid:I,view:e.selectedView,tpl:q.getState().visProject[e.selectedView].widgets[I].tpl,name:q.getState().visProject[e.selectedView].widgets[I].name})),l.tpl)if(l.tpl.includes("*"))if(l.tpl.endsWith("*")){const I=l.tpl.substring(0,l.tpl.length-1);k=k.filter(re=>re.tpl.startsWith(I))}else if(l.tpl.startsWith("*")){const I=l.tpl.substring(1);k=k.filter(re=>re.tpl.endsWith(I))}else console.warn('"*" can be only at the beginning or at the end of "tpl" attribute');else k=k.filter(I=>I.tpl===l.tpl);C=k.map(I=>({value:I.wid,label:`${l.all?`${I.view} / `:""}${I.wid} (${I.name||(I.tpl==="_tplGroup"?Ve("group"):I.tpl)})`})),C.unshift({value:"",label:Ve("attr_none")})}const M=!!C.find(k=>k==null?void 0:k.icon);return o.jsx(f.Select,{variant:"standard",disabled:j||l.checkUsage&&e.selectedWidgets.length>1,value:z,defaultValue:l.default,sx:{...E.clearPadding,"& .MuiSelect-select":{...E.clearPadding,...E.fieldContent}},onChange:k=>{var I;l.type==="widget"&&l.checkUsage&&k.target.value&&((I=q.getState().visProject[e.selectedView].widgets[k.target.value])!=null&&I.usedInWidget)?c({wid:k.target.value,cb:()=>{const re=pm(q.getState().visProject,e.selectedView,k.target.value,e.selectedWidgets[0],l.name);e.changeProject(re),q.dispatch(Ze(!0))}}):(P(k.target.value),q.dispatch(Ze(!0)))},renderValue:k=>{if(typeof C[0]=="object"){const I=C.find(Je=>Je.value===k),re=I?l.type==="select"&&!l.noTranslation?Ve(I.label):I.label:k;return M&&I.icon?o.jsxs(o.Fragment,{children:[o.jsx(w.Icon,{src:I.icon,style:{width:24,height:24}}),o.jsx("span",{style:I.color?{color:I.color}:null,children:re})]}):re}return l.type==="select"&&!l.noTranslation?Ve(k):k},fullWidth:!0,children:C.map((k,I)=>o.jsxs(f.MenuItem,{value:typeof k=="object"?k.value:k,style:{fontFamily:l.type==="fontname"?k:null},children:[k.icon?o.jsx(f.ListItemIcon,{children:o.jsx(w.Icon,{src:k.icon,style:{width:24,height:24}})}):M?o.jsx(f.ListItemIcon,{children:o.jsx("div",{style:{width:24}})}):null,o.jsx(f.ListItemText,{children:k===""?o.jsx("i",{children:Ve("attr_none")}):l.type==="select"&&!l.noTranslation?typeof k=="object"?o.jsx("span",{style:k.color?{color:k.color}:null,children:l.noTranslation?k.label:Ve(k.label)}):Ve(k):typeof k=="object"?o.jsx("span",{style:k.color?{color:k.color}:null,children:k.label}):k})]},`${typeof k=="object"?k.value:k}_${I}`))})}if(l.type==="select-views"){const C=Vo(q.getState().visProject,[],null,0).filter(k=>k.type==="folder"||k.view!==e.selectedView),M=z||[];return o.jsx(f.Select,{variant:"standard",disabled:j,value:Array.isArray(z)?z:(z||"").toString().split(","),multiple:l.multiple!==!1,renderValue:k=>Array.isArray(k)?k.join(", "):k,sx:{...E.clearPadding,"& .MuiSelect-select":{...E.clearPadding,...E.fieldContent}},onChange:k=>{Array.isArray(k.target.value)?k.target.value.filter(re=>re).length?P(k.target.value.filter(re=>re).join(",")):P(null):P(k.target.value)},fullWidth:!0,children:C.map((k,I)=>k.type==="view"?o.jsxs(f.MenuItem,{value:k.view,style:{paddingLeft:k.level*16,lineHeight:"36px"},children:[o.jsx(S.InsertDriveFile,{style:{verticalAlign:"middle",marginRight:4}}),o.jsx("span",{style:{verticalAlign:"middle"},children:l.multiple!==!1?o.jsx(f.Checkbox,{checked:M.includes(k.view)}):null}),o.jsx(f.ListItemText,{primary:k.label,style:{verticalAlign:"middle"}})]},I.toString()):o.jsxs(f.ListSubheader,{style:{...E.listFolder,paddingLeft:k.level*16},children:[o.jsx(Sn,{style:E.iconFolder}),o.jsx("span",{style:{fontSize:"1rem"},children:k.folder.name})]},I))})}if(l.type==="groups"){const C=z||[];return o.jsx(f.Select,{variant:"standard",disabled:j,value:z||[],multiple:!0,renderValue:M=>o.jsx("div",{style:{display:"flex"},children:Object.values(e.userGroups).filter(k=>M.includes(k._id.split(".")[2])).map((k,I)=>o.jsx("span",{style:{padding:"4px 4px"},children:o.jsx(w.TextWithIcon,{value:k._id,lang:w.I18n.getLanguage(),list:[k]})},I))}),sx:{...E.clearPadding,"& .MuiSelect-select":{...E.clearPadding,...E.fieldContent}},onChange:M=>P(M.target.value),fullWidth:!0,children:Object.values(e.userGroups).map((M,k)=>o.jsxs(f.MenuItem,{value:M._id.split(".")[2],children:[o.jsx(f.Checkbox,{disabled:j,checked:C.includes(M._id.split(".")[2])}),o.jsx(w.TextWithIcon,{value:M._id,lang:w.I18n.getLanguage(),list:[M]})]},`${M._id.split(".")[2]}_${k}`))})}if(l.type==="auto"||l.type==="class"||l.type==="filters"){let C=l.options;return l.type==="class"?C=Object.keys(window.collectClassesValue).filter(M=>M.match(/^vis-style-/)):l.type==="filters"&&(C=window.vis?window.vis.updateFilter():[],C.unshift("")),C[0]&&typeof C=="string"&&(C=C.map(M=>M.value)),o.jsx(f.Autocomplete,{freeSolo:!0,fullWidth:!0,disabled:j,options:C||[],inputValue:z||"",value:z||"",onInputChange:(M,k)=>P(k),onChange:(M,k)=>P(k),sx:{"& .MuiInput-root":{...E.clearPadding,...E.fieldContent}},renderOption:l.name==="font-family"||l.name==="lc-font-family"?(M,k)=>o.jsx("li",{style:{fontFamily:k},...M,children:k}):null,renderInput:M=>o.jsx(f.TextField,{variant:"standard",error:!!b,helperText:typeof b=="string"?w.I18n.t(b):null,disabled:j,...M})})}if(l.type==="views"){const C=Vo(q.getState().visProject);return o.jsx(f.Autocomplete,{freeSolo:!0,fullWidth:!0,disabled:j,options:C||[],inputValue:z||"",value:z||"",onInputChange:(M,k)=>P(k),onChange:(M,k)=>{typeof k=="object"&&k!==null&&(k=k.type==="view"?k.view:k.folder.name),P(k)},sx:{"& .MuiInput-root":{...E.clearPadding,...E.fieldContent}},getOptionLabel:M=>typeof M=="string"?M:M.type==="view"?M.label:M.folder.name,getOptionDisabled:M=>M.type==="folder",renderOption:(M,k)=>k.type==="view"?D.createElement(f.Box,{component:"li",style:{...E.menuItem,paddingLeft:k.level*16},...M,sx:z===k.view?E.selected:void 0,key:`view${k.view}`},o.jsx(S.InsertDriveFile,{}),k.label):D.createElement(f.Box,{component:"li",style:{paddingLeft:k.level*16},...M,key:`folder${k.folder.id}`},o.jsx(Sn,{style:{color:"#00dc00",fontSize:20}}),k.folder.name),renderInput:M=>o.jsx(f.TextField,{variant:"standard",error:!!b,helperText:typeof b=="string"?w.I18n.t(b):null,disabled:j,...M,inputProps:{...M.inputProps}})})}if(l.type==="style"){const C=hm({filterFile:l.filterFile,filterName:l.filterName,filterAttrs:l.filterAttrs,removeName:l.removeName});return o.jsx(f.Select,{variant:"standard",value:z,disabled:j,defaultValue:l.default,sx:{...E.clearPadding,"& .MuiSelect-select":{...E.clearPadding,...E.fieldContent}},onChange:M=>P(M.target.value),renderValue:M=>{var k,I;return o.jsxs("div",{style:E.backgroundClass,children:[o.jsx("span",{style:(k=C[M])==null?void 0:k.parentStyle,children:o.jsx("span",{style:E.backgroundClassSquare,className:M})}),Ve((I=C[M])==null?void 0:I.name)]})},fullWidth:!0,children:Object.keys(C).map((M,k)=>o.jsxs(f.MenuItem,{value:M,children:[o.jsx("span",{style:C[M].parentStyle,children:o.jsx("span",{style:E.backgroundClassSquare,className:M})}),Ve(C[M].name)]},`${M}_${k}`))})}if(l.type==="custom")if(l.component){const C=M=>o.jsx(Dl,{...e,error:M.error,field:M.field,disabled:M.disabled});try{return l.component(l,u.data,M=>{const k=ne(q.getState().visProject);e.selectedWidgets.forEach(I=>{Object.keys(M).forEach(re=>{M[re]===null?delete k[e.selectedView].widgets[I].data[re]:k[e.selectedView].widgets[I].data[re]=M[re]})}),e.changeProject(k),q.dispatch(Ze(!0))},{context:{socket:e.socket,projectName:p,instance:m,adapterName:_,views:q.getState().visProject,theme:e.theme},Editor:C,selectedView:e.selectedView,selectedWidgets:e.selectedWidgets,selectedWidget:e.selectedWidgets.length===1?e.selectedWidgets[0]:e.selectedWidgets})}catch(M){console.error(`Cannot render custom field ${l.name}: ${M}`)}}else return o.jsxs(o.Fragment,{children:[l.type,"/",z]});return l.type==="instance"||l.type==="history"?o.jsx(f.Select,{variant:"standard",value:z,disabled:j,defaultValue:l.default,sx:{...E.clearPadding,"& .MuiSelect-select":{...E.clearPadding,...E.fieldContent}},onChange:C=>P(C.target.value),renderValue:C=>C,fullWidth:!0,children:N.map(C=>o.jsxs(f.MenuItem,{value:l.isShort?C.idShort:C.id,children:[o.jsx(f.ListItemIcon,{children:o.jsx(w.Icon,{src:`../${C.name}.admin/${C.icon}`,style:{width:24,height:24},alt:C.name})}),o.jsx(f.ListItemText,{children:l.isShort?C.idShort:C.id})]},C.id))}):l.type==="icon"?o.jsx(w.IconPicker,{label:"Icon",value:z,disabled:j,onChange:C=>P(C),previewStyle:E.iconPreview}):l.type==="icon64"?o.jsxs("div",{style:{display:"flex",width:"100%",alignItems:"center"},children:[o.jsx(f.TextField,{fullWidth:!0,size:"small",placeholder:y?Ve("different"):void 0,variant:"standard",value:z,error:!!b,disabled:j,onChange:C=>P(C.target.value),slotProps:{input:{endAdornment:z?o.jsx(f.IconButton,{tabIndex:-1,disabled:j,size:"small",onClick:()=>P(""),children:o.jsx(S.Clear,{})}):null,sx:{...E.clearPadding,...E.fieldContent}}}}),o.jsx(f.Button,{variant:z?"outlined":void 0,color:z?"grey":void 0,onClick:()=>i(!0),children:z?o.jsx(w.Icon,{src:z,style:{width:36,height:36}}):"..."}),t&&o.jsx(ol,{themeType:e.themeType,theme:e.theme,value:z,onClose:C=>{i(!1),C!==null&&P(C)}})]}):l.type==="html"||l.type==="json"||l.type==="text"&&l.noButton===!1?o.jsxs(o.Fragment,{children:[o.jsx(f.TextField,{size:"small",placeholder:y?Ve("different"):null,variant:"standard",value:z,multiline:l.multiline,fullWidth:!0,error:!!b,disabled:j,helperText:typeof b=="string"?w.I18n.t(b):null,onChange:C=>P(C.target.value),slotProps:{input:{endAdornment:l.noButton?null:o.jsx(f.Button,{tabIndex:-1,disabled:j,size:"small",style:{minWidth:30},onClick:()=>i(!0),children:o.jsx(S.Edit,{})}),sx:{...E.clearPadding,...E.fieldContent}}},rows:2}),t?o.jsx(um,{value:z,onChange:C=>P(C),onClose:()=>i(!1),themeType:e.themeType,type:l.type}):null]}):!l.type||l.type==="number"||l.type==="password"||l.type==="text"||l.type==="url"?o.jsxs(o.Fragment,{children:[o.jsx(f.TextField,{variant:"standard",fullWidth:!0,ref:K,error:!!b,disabled:j,helperText:typeof b=="string"?w.I18n.t(b):null,onFocus:()=>F(!0),onBlur:()=>{if(F(!1),l.type==="number"&&z){let C=z;if(typeof C=="string"){C=parseFloat(C),l.min!==void 0&&C<l.min&&(C=l.min),l.max!==void 0&&C>l.max&&(C=l.max),P(C);return}if(l.min!==void 0&&C<l.min){P(l.min);return}l.max!==void 0&&C>l.max&&P(l.max)}},placeholder:y?Ve("different"):null,value:z,onChange:C=>P(C.target.value),type:l.type?l.type:"text",slotProps:{input:{endAdornment:l.clearButton&&L!==null&&L!==void 0?o.jsx(f.IconButton,{tabIndex:-1,size:"small",onClick:()=>P(null),children:o.jsx(S.Clear,{})}):null,sx:{...E.clearPadding,...E.fieldContent}},htmlInput:{min:l.min,max:l.max,step:l.step}}}),ge]}):`${l.type}/${z}`},mm=e=>{const[t,i]=D.useState(e.widget.css||""),s=D.useRef(null);return o.jsxs(f.Dialog,{open:!0,onClose:e.onClose,fullWidth:!0,children:[o.jsx(f.DialogTitle,{children:w.I18n.t("Widget CSS")}),o.jsx(f.DialogContent,{style:{height:400},children:o.jsx(Pt,{type:"css",themeType:e.themeType,readOnly:!e.editMode,value:t,onChange:n=>{i(n),s.current&&(clearTimeout(s.current),s.current=null),s.current=setTimeout(()=>{s.current=null,e.onChange(n)},1e3)}})}),o.jsx(f.DialogActions,{children:o.jsx(f.Button,{onClick:e.onClose,color:"primary",variant:"contained",startIcon:o.jsx(S.Close,{}),children:w.I18n.t("Close")})})]})},fm=e=>{const[t,i]=D.useState(e.widget.js||""),s=D.useRef(null);return o.jsxs(f.Dialog,{open:!0,onClose:e.onClose,fullWidth:!0,children:[o.jsx(f.DialogTitle,{children:w.I18n.t("Widget's script")}),o.jsx(f.DialogContent,{style:{height:400},children:o.jsx(Pt,{type:"javascript",themeType:e.themeType,readOnly:!e.editMode,value:t,onChange:n=>{i(n),s.current&&(clearTimeout(s.current),s.current=null),s.current=setTimeout(()=>{s.current=null,e.onChange(n)},1e3)}})}),o.jsx(f.DialogActions,{children:o.jsx(f.Button,{onClick:e.onClose,color:"primary",variant:"contained",startIcon:o.jsx(S.Close,{}),children:w.I18n.t("Close")})})]})};//! moment.js
//! version : 2.30.1
//! authors : Tim Wood, Iskren Chernev, Moment.js contributors
//! license : MIT
//! momentjs.com
var Tl;function X(){return Tl.apply(null,arguments)}function wm(e){Tl=e}function vt(e){return e instanceof Array||Object.prototype.toString.call(e)==="[object Array]"}function ji(e){return e!=null&&Object.prototype.toString.call(e)==="[object Object]"}function je(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function na(e){if(Object.getOwnPropertyNames)return Object.getOwnPropertyNames(e).length===0;var t;for(t in e)if(je(e,t))return!1;return!0}function st(e){return e===void 0}function Zt(e){return typeof e=="number"||Object.prototype.toString.call(e)==="[object Number]"}function Ls(e){return e instanceof Date||Object.prototype.toString.call(e)==="[object Date]"}function Ml(e,t){var i=[],s,n=e.length;for(s=0;s<n;++s)i.push(t(e[s],s));return i}function li(e,t){for(var i in t)je(t,i)&&(e[i]=t[i]);return je(t,"toString")&&(e.toString=t.toString),je(t,"valueOf")&&(e.valueOf=t.valueOf),e}function Dt(e,t,i,s){return tc(e,t,i,s,!0).utc()}function bm(){return{empty:!1,unusedTokens:[],unusedInput:[],overflow:-2,charsLeftOver:0,nullInput:!1,invalidEra:null,invalidMonth:null,invalidFormat:!1,userInvalidated:!1,iso:!1,parsedDateParts:[],era:null,meridiem:null,rfc2822:!1,weekdayMismatch:!1}}function _e(e){return e._pf==null&&(e._pf=bm()),e._pf}var Bo;Array.prototype.some?Bo=Array.prototype.some:Bo=function(e){var t=Object(this),i=t.length>>>0,s;for(s=0;s<i;s++)if(s in t&&e.call(this,t[s],s,t))return!0;return!1};function oa(e){var t=null,i=!1,s=e._d&&!isNaN(e._d.getTime());if(s&&(t=_e(e),i=Bo.call(t.parsedDateParts,function(n){return n!=null}),s=t.overflow<0&&!t.empty&&!t.invalidEra&&!t.invalidMonth&&!t.invalidWeekday&&!t.weekdayMismatch&&!t.nullInput&&!t.invalidFormat&&!t.userInvalidated&&(!t.meridiem||t.meridiem&&i),e._strict&&(s=s&&t.charsLeftOver===0&&t.unusedTokens.length===0&&t.bigHour===void 0)),Object.isFrozen==null||!Object.isFrozen(e))e._isValid=s;else return s;return e._isValid}function Fn(e){var t=Dt(NaN);return e!=null?li(_e(t),e):_e(t).userInvalidated=!0,t}var Wr=X.momentProperties=[],zo=!1;function aa(e,t){var i,s,n,a=Wr.length;if(st(t._isAMomentObject)||(e._isAMomentObject=t._isAMomentObject),st(t._i)||(e._i=t._i),st(t._f)||(e._f=t._f),st(t._l)||(e._l=t._l),st(t._strict)||(e._strict=t._strict),st(t._tzm)||(e._tzm=t._tzm),st(t._isUTC)||(e._isUTC=t._isUTC),st(t._offset)||(e._offset=t._offset),st(t._pf)||(e._pf=_e(t)),st(t._locale)||(e._locale=t._locale),a>0)for(i=0;i<a;i++)s=Wr[i],n=t[s],st(n)||(e[s]=n);return e}function Ws(e){aa(this,e),this._d=new Date(e._d!=null?e._d.getTime():NaN),this.isValid()||(this._d=new Date(NaN)),zo===!1&&(zo=!0,X.updateOffset(this),zo=!1)}function yt(e){return e instanceof Ws||e!=null&&e._isAMomentObject!=null}function zl(e){X.suppressDeprecationWarnings===!1&&typeof console<"u"&&console.warn&&console.warn("Deprecation warning: "+e)}function gt(e,t){var i=!0;return li(function(){if(X.deprecationHandler!=null&&X.deprecationHandler(null,e),i){var s=[],n,a,c,l=arguments.length;for(a=0;a<l;a++){if(n="",typeof arguments[a]=="object"){n+=`
[`+a+"] ";for(c in arguments[0])je(arguments[0],c)&&(n+=c+": "+arguments[0][c]+", ");n=n.slice(0,-2)}else n=arguments[a];s.push(n)}zl(e+`
Arguments: `+Array.prototype.slice.call(s).join("")+`
`+new Error().stack),i=!1}return t.apply(this,arguments)},t)}var Rr={};function Il(e,t){X.deprecationHandler!=null&&X.deprecationHandler(e,t),Rr[e]||(zl(t),Rr[e]=!0)}X.suppressDeprecationWarnings=!1;X.deprecationHandler=null;function Tt(e){return typeof Function<"u"&&e instanceof Function||Object.prototype.toString.call(e)==="[object Function]"}function vm(e){var t,i;for(i in e)je(e,i)&&(t=e[i],Tt(t)?this[i]=t:this["_"+i]=t);this._config=e,this._dayOfMonthOrdinalParseLenient=new RegExp((this._dayOfMonthOrdinalParse.source||this._ordinalParse.source)+"|"+/\d{1,2}/.source)}function Uo(e,t){var i=li({},e),s;for(s in t)je(t,s)&&(ji(e[s])&&ji(t[s])?(i[s]={},li(i[s],e[s]),li(i[s],t[s])):t[s]!=null?i[s]=t[s]:delete i[s]);for(s in e)je(e,s)&&!je(t,s)&&ji(e[s])&&(i[s]=li({},i[s]));return i}function ra(e){e!=null&&this.set(e)}var Yo;Object.keys?Yo=Object.keys:Yo=function(e){var t,i=[];for(t in e)je(e,t)&&i.push(t);return i};var ym={sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"};function jm(e,t,i){var s=this._calendar[e]||this._calendar.sameElse;return Tt(s)?s.call(t,i):s}function Ct(e,t,i){var s=""+Math.abs(e),n=t-s.length,a=e>=0;return(a?i?"+":"":"-")+Math.pow(10,Math.max(0,n)).toString().substr(1)+s}var la=/(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,gn=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,Io={},Vi={};function ae(e,t,i,s){var n=s;typeof s=="string"&&(n=function(){return this[s]()}),e&&(Vi[e]=n),t&&(Vi[t[0]]=function(){return Ct(n.apply(this,arguments),t[1],t[2])}),i&&(Vi[i]=function(){return this.localeData().ordinal(n.apply(this,arguments),e)})}function xm(e){return e.match(/\[[\s\S]/)?e.replace(/^\[|\]$/g,""):e.replace(/\\/g,"")}function $m(e){var t=e.match(la),i,s;for(i=0,s=t.length;i<s;i++)Vi[t[i]]?t[i]=Vi[t[i]]:t[i]=xm(t[i]);return function(n){var a="",c;for(c=0;c<s;c++)a+=Tt(t[c])?t[c].call(n,e):t[c];return a}}function yn(e,t){return e.isValid()?(t=Hl(t,e.localeData()),Io[t]=Io[t]||$m(t),Io[t](e)):e.localeData().invalidDate()}function Hl(e,t){var i=5;function s(n){return t.longDateFormat(n)||n}for(gn.lastIndex=0;i>=0&&gn.test(e);)e=e.replace(gn,s),gn.lastIndex=0,i-=1;return e}var Sm={LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"};function km(e){var t=this._longDateFormat[e],i=this._longDateFormat[e.toUpperCase()];return t||!i?t:(this._longDateFormat[e]=i.match(la).map(function(s){return s==="MMMM"||s==="MM"||s==="DD"||s==="dddd"?s.slice(1):s}).join(""),this._longDateFormat[e])}var qm="Invalid date";function Cm(){return this._invalidDate}var Pm="%d",Dm=/\d{1,2}/;function Tm(e){return this._ordinal.replace("%d",e)}var Mm={future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",w:"a week",ww:"%d weeks",M:"a month",MM:"%d months",y:"a year",yy:"%d years"};function zm(e,t,i,s){var n=this._relativeTime[i];return Tt(n)?n(e,t,i,s):n.replace(/%d/i,e)}function Im(e,t){var i=this._relativeTime[e>0?"future":"past"];return Tt(i)?i(t):i.replace(/%s/i,t)}var Nr={D:"date",dates:"date",date:"date",d:"day",days:"day",day:"day",e:"weekday",weekdays:"weekday",weekday:"weekday",E:"isoWeekday",isoweekdays:"isoWeekday",isoweekday:"isoWeekday",DDD:"dayOfYear",dayofyears:"dayOfYear",dayofyear:"dayOfYear",h:"hour",hours:"hour",hour:"hour",ms:"millisecond",milliseconds:"millisecond",millisecond:"millisecond",m:"minute",minutes:"minute",minute:"minute",M:"month",months:"month",month:"month",Q:"quarter",quarters:"quarter",quarter:"quarter",s:"second",seconds:"second",second:"second",gg:"weekYear",weekyears:"weekYear",weekyear:"weekYear",GG:"isoWeekYear",isoweekyears:"isoWeekYear",isoweekyear:"isoWeekYear",w:"week",weeks:"week",week:"week",W:"isoWeek",isoweeks:"isoWeek",isoweek:"isoWeek",y:"year",years:"year",year:"year"};function ht(e){return typeof e=="string"?Nr[e]||Nr[e.toLowerCase()]:void 0}function ca(e){var t={},i,s;for(s in e)je(e,s)&&(i=ht(s),i&&(t[i]=e[s]));return t}var Hm={date:9,day:11,weekday:11,isoWeekday:11,dayOfYear:4,hour:13,millisecond:16,minute:14,month:8,quarter:7,second:15,weekYear:1,isoWeekYear:1,week:5,isoWeek:5,year:1};function Am(e){var t=[],i;for(i in e)je(e,i)&&t.push({unit:i,priority:Hm[i]});return t.sort(function(s,n){return s.priority-n.priority}),t}var Al=/\d/,lt=/\d\d/,Ol=/\d{3}/,da=/\d{4}/,Vn=/[+-]?\d{6}/,Te=/\d\d?/,Ll=/\d\d\d\d?/,Wl=/\d\d\d\d\d\d?/,Bn=/\d{1,3}/,ua=/\d{1,4}/,Un=/[+-]?\d{1,6}/,Ji=/\d+/,Yn=/[+-]?\d+/,Om=/Z|[+-]\d\d:?\d\d/gi,Gn=/Z|[+-]\d\d(?::?\d\d)?/gi,Lm=/[+-]?\d+(\.\d{1,3})?/,Rs=/[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFF07\uFF10-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i,Ki=/^[1-9]\d?/,_a=/^([1-9]\d|\d)/,Tn;Tn={};function ie(e,t,i){Tn[e]=Tt(t)?t:function(s,n){return s&&i?i:t}}function Wm(e,t){return je(Tn,e)?Tn[e](t._strict,t._locale):new RegExp(Rm(e))}function Rm(e){return Jt(e.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(t,i,s,n,a){return i||s||n||a}))}function Jt(e){return e.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}function ut(e){return e<0?Math.ceil(e)||0:Math.floor(e)}function me(e){var t=+e,i=0;return t!==0&&isFinite(t)&&(i=ut(t)),i}var Go={};function Se(e,t){var i,s=t,n;for(typeof e=="string"&&(e=[e]),Zt(t)&&(s=function(a,c){c[t]=me(a)}),n=e.length,i=0;i<n;i++)Go[e[i]]=s}function Ns(e,t){Se(e,function(i,s,n,a){n._w=n._w||{},t(i,n._w,n,a)})}function Nm(e,t,i){t!=null&&je(Go,e)&&Go[e](t,i._a,i,e)}function Jn(e){return e%4===0&&e%100!==0||e%400===0}var Xe=0,Yt=1,qt=2,Be=3,bt=4,Gt=5,vi=6,Em=7,Fm=8;ae("Y",0,0,function(){var e=this.year();return e<=9999?Ct(e,4):"+"+e});ae(0,["YY",2],0,function(){return this.year()%100});ae(0,["YYYY",4],0,"year");ae(0,["YYYYY",5],0,"year");ae(0,["YYYYYY",6,!0],0,"year");ie("Y",Yn);ie("YY",Te,lt);ie("YYYY",ua,da);ie("YYYYY",Un,Vn);ie("YYYYYY",Un,Vn);Se(["YYYYY","YYYYYY"],Xe);Se("YYYY",function(e,t){t[Xe]=e.length===2?X.parseTwoDigitYear(e):me(e)});Se("YY",function(e,t){t[Xe]=X.parseTwoDigitYear(e)});Se("Y",function(e,t){t[Xe]=parseInt(e,10)});function ys(e){return Jn(e)?366:365}X.parseTwoDigitYear=function(e){return me(e)+(me(e)>68?1900:2e3)};var Rl=Zi("FullYear",!0);function Vm(){return Jn(this.year())}function Zi(e,t){return function(i){return i!=null?(Nl(this,e,i),X.updateOffset(this,t),this):$s(this,e)}}function $s(e,t){if(!e.isValid())return NaN;var i=e._d,s=e._isUTC;switch(t){case"Milliseconds":return s?i.getUTCMilliseconds():i.getMilliseconds();case"Seconds":return s?i.getUTCSeconds():i.getSeconds();case"Minutes":return s?i.getUTCMinutes():i.getMinutes();case"Hours":return s?i.getUTCHours():i.getHours();case"Date":return s?i.getUTCDate():i.getDate();case"Day":return s?i.getUTCDay():i.getDay();case"Month":return s?i.getUTCMonth():i.getMonth();case"FullYear":return s?i.getUTCFullYear():i.getFullYear();default:return NaN}}function Nl(e,t,i){var s,n,a,c,l;if(!(!e.isValid()||isNaN(i))){switch(s=e._d,n=e._isUTC,t){case"Milliseconds":return void(n?s.setUTCMilliseconds(i):s.setMilliseconds(i));case"Seconds":return void(n?s.setUTCSeconds(i):s.setSeconds(i));case"Minutes":return void(n?s.setUTCMinutes(i):s.setMinutes(i));case"Hours":return void(n?s.setUTCHours(i):s.setHours(i));case"Date":return void(n?s.setUTCDate(i):s.setDate(i));case"FullYear":break;default:return}a=i,c=e.month(),l=e.date(),l=l===29&&c===1&&!Jn(a)?28:l,n?s.setUTCFullYear(a,c,l):s.setFullYear(a,c,l)}}function Bm(e){return e=ht(e),Tt(this[e])?this[e]():this}function Um(e,t){if(typeof e=="object"){e=ca(e);var i=Am(e),s,n=i.length;for(s=0;s<n;s++)this[i[s].unit](e[i[s].unit])}else if(e=ht(e),Tt(this[e]))return this[e](t);return this}function Ym(e,t){return(e%t+t)%t}var We;Array.prototype.indexOf?We=Array.prototype.indexOf:We=function(e){var t;for(t=0;t<this.length;++t)if(this[t]===e)return t;return-1};function ga(e,t){if(isNaN(e)||isNaN(t))return NaN;var i=Ym(t,12);return e+=(t-i)/12,i===1?Jn(e)?29:28:31-i%7%2}ae("M",["MM",2],"Mo",function(){return this.month()+1});ae("MMM",0,0,function(e){return this.localeData().monthsShort(this,e)});ae("MMMM",0,0,function(e){return this.localeData().months(this,e)});ie("M",Te,Ki);ie("MM",Te,lt);ie("MMM",function(e,t){return t.monthsShortRegex(e)});ie("MMMM",function(e,t){return t.monthsRegex(e)});Se(["M","MM"],function(e,t){t[Yt]=me(e)-1});Se(["MMM","MMMM"],function(e,t,i,s){var n=i._locale.monthsParse(e,s,i._strict);n!=null?t[Yt]=n:_e(i).invalidMonth=e});var Gm="January_February_March_April_May_June_July_August_September_October_November_December".split("_"),El="Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),Fl=/D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/,Jm=Rs,Km=Rs;function Zm(e,t){return e?vt(this._months)?this._months[e.month()]:this._months[(this._months.isFormat||Fl).test(t)?"format":"standalone"][e.month()]:vt(this._months)?this._months:this._months.standalone}function Xm(e,t){return e?vt(this._monthsShort)?this._monthsShort[e.month()]:this._monthsShort[Fl.test(t)?"format":"standalone"][e.month()]:vt(this._monthsShort)?this._monthsShort:this._monthsShort.standalone}function Qm(e,t,i){var s,n,a,c=e.toLocaleLowerCase();if(!this._monthsParse)for(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[],s=0;s<12;++s)a=Dt([2e3,s]),this._shortMonthsParse[s]=this.monthsShort(a,"").toLocaleLowerCase(),this._longMonthsParse[s]=this.months(a,"").toLocaleLowerCase();return i?t==="MMM"?(n=We.call(this._shortMonthsParse,c),n!==-1?n:null):(n=We.call(this._longMonthsParse,c),n!==-1?n:null):t==="MMM"?(n=We.call(this._shortMonthsParse,c),n!==-1?n:(n=We.call(this._longMonthsParse,c),n!==-1?n:null)):(n=We.call(this._longMonthsParse,c),n!==-1?n:(n=We.call(this._shortMonthsParse,c),n!==-1?n:null))}function ef(e,t,i){var s,n,a;if(this._monthsParseExact)return Qm.call(this,e,t,i);for(this._monthsParse||(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[]),s=0;s<12;s++){if(n=Dt([2e3,s]),i&&!this._longMonthsParse[s]&&(this._longMonthsParse[s]=new RegExp("^"+this.months(n,"").replace(".","")+"$","i"),this._shortMonthsParse[s]=new RegExp("^"+this.monthsShort(n,"").replace(".","")+"$","i")),!i&&!this._monthsParse[s]&&(a="^"+this.months(n,"")+"|^"+this.monthsShort(n,""),this._monthsParse[s]=new RegExp(a.replace(".",""),"i")),i&&t==="MMMM"&&this._longMonthsParse[s].test(e))return s;if(i&&t==="MMM"&&this._shortMonthsParse[s].test(e))return s;if(!i&&this._monthsParse[s].test(e))return s}}function Vl(e,t){if(!e.isValid())return e;if(typeof t=="string"){if(/^\d+$/.test(t))t=me(t);else if(t=e.localeData().monthsParse(t),!Zt(t))return e}var i=t,s=e.date();return s=s<29?s:Math.min(s,ga(e.year(),i)),e._isUTC?e._d.setUTCMonth(i,s):e._d.setMonth(i,s),e}function Bl(e){return e!=null?(Vl(this,e),X.updateOffset(this,!0),this):$s(this,"Month")}function tf(){return ga(this.year(),this.month())}function sf(e){return this._monthsParseExact?(je(this,"_monthsRegex")||Ul.call(this),e?this._monthsShortStrictRegex:this._monthsShortRegex):(je(this,"_monthsShortRegex")||(this._monthsShortRegex=Jm),this._monthsShortStrictRegex&&e?this._monthsShortStrictRegex:this._monthsShortRegex)}function nf(e){return this._monthsParseExact?(je(this,"_monthsRegex")||Ul.call(this),e?this._monthsStrictRegex:this._monthsRegex):(je(this,"_monthsRegex")||(this._monthsRegex=Km),this._monthsStrictRegex&&e?this._monthsStrictRegex:this._monthsRegex)}function Ul(){function e(u,_){return _.length-u.length}var t=[],i=[],s=[],n,a,c,l;for(n=0;n<12;n++)a=Dt([2e3,n]),c=Jt(this.monthsShort(a,"")),l=Jt(this.months(a,"")),t.push(c),i.push(l),s.push(l),s.push(c);t.sort(e),i.sort(e),s.sort(e),this._monthsRegex=new RegExp("^("+s.join("|")+")","i"),this._monthsShortRegex=this._monthsRegex,this._monthsStrictRegex=new RegExp("^("+i.join("|")+")","i"),this._monthsShortStrictRegex=new RegExp("^("+t.join("|")+")","i")}function of(e,t,i,s,n,a,c){var l;return e<100&&e>=0?(l=new Date(e+400,t,i,s,n,a,c),isFinite(l.getFullYear())&&l.setFullYear(e)):l=new Date(e,t,i,s,n,a,c),l}function Ss(e){var t,i;return e<100&&e>=0?(i=Array.prototype.slice.call(arguments),i[0]=e+400,t=new Date(Date.UTC.apply(null,i)),isFinite(t.getUTCFullYear())&&t.setUTCFullYear(e)):t=new Date(Date.UTC.apply(null,arguments)),t}function Mn(e,t,i){var s=7+t-i,n=(7+Ss(e,0,s).getUTCDay()-t)%7;return-n+s-1}function Yl(e,t,i,s,n){var a=(7+i-s)%7,c=Mn(e,s,n),l=1+7*(t-1)+a+c,u,_;return l<=0?(u=e-1,_=ys(u)+l):l>ys(e)?(u=e+1,_=l-ys(e)):(u=e,_=l),{year:u,dayOfYear:_}}function ks(e,t,i){var s=Mn(e.year(),t,i),n=Math.floor((e.dayOfYear()-s-1)/7)+1,a,c;return n<1?(c=e.year()-1,a=n+Kt(c,t,i)):n>Kt(e.year(),t,i)?(a=n-Kt(e.year(),t,i),c=e.year()+1):(c=e.year(),a=n),{week:a,year:c}}function Kt(e,t,i){var s=Mn(e,t,i),n=Mn(e+1,t,i);return(ys(e)-s+n)/7}ae("w",["ww",2],"wo","week");ae("W",["WW",2],"Wo","isoWeek");ie("w",Te,Ki);ie("ww",Te,lt);ie("W",Te,Ki);ie("WW",Te,lt);Ns(["w","ww","W","WW"],function(e,t,i,s){t[s.substr(0,1)]=me(e)});function af(e){return ks(e,this._week.dow,this._week.doy).week}var rf={dow:0,doy:6};function lf(){return this._week.dow}function cf(){return this._week.doy}function df(e){var t=this.localeData().week(this);return e==null?t:this.add((e-t)*7,"d")}function uf(e){var t=ks(this,1,4).week;return e==null?t:this.add((e-t)*7,"d")}ae("d",0,"do","day");ae("dd",0,0,function(e){return this.localeData().weekdaysMin(this,e)});ae("ddd",0,0,function(e){return this.localeData().weekdaysShort(this,e)});ae("dddd",0,0,function(e){return this.localeData().weekdays(this,e)});ae("e",0,0,"weekday");ae("E",0,0,"isoWeekday");ie("d",Te);ie("e",Te);ie("E",Te);ie("dd",function(e,t){return t.weekdaysMinRegex(e)});ie("ddd",function(e,t){return t.weekdaysShortRegex(e)});ie("dddd",function(e,t){return t.weekdaysRegex(e)});Ns(["dd","ddd","dddd"],function(e,t,i,s){var n=i._locale.weekdaysParse(e,s,i._strict);n!=null?t.d=n:_e(i).invalidWeekday=e});Ns(["d","e","E"],function(e,t,i,s){t[s]=me(e)});function _f(e,t){return typeof e!="string"?e:isNaN(e)?(e=t.weekdaysParse(e),typeof e=="number"?e:null):parseInt(e,10)}function gf(e,t){return typeof e=="string"?t.weekdaysParse(e)%7||7:isNaN(e)?null:e}function ha(e,t){return e.slice(t,7).concat(e.slice(0,t))}var hf="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),Gl="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),pf="Su_Mo_Tu_We_Th_Fr_Sa".split("_"),mf=Rs,ff=Rs,wf=Rs;function bf(e,t){var i=vt(this._weekdays)?this._weekdays:this._weekdays[e&&e!==!0&&this._weekdays.isFormat.test(t)?"format":"standalone"];return e===!0?ha(i,this._week.dow):e?i[e.day()]:i}function vf(e){return e===!0?ha(this._weekdaysShort,this._week.dow):e?this._weekdaysShort[e.day()]:this._weekdaysShort}function yf(e){return e===!0?ha(this._weekdaysMin,this._week.dow):e?this._weekdaysMin[e.day()]:this._weekdaysMin}function jf(e,t,i){var s,n,a,c=e.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],s=0;s<7;++s)a=Dt([2e3,1]).day(s),this._minWeekdaysParse[s]=this.weekdaysMin(a,"").toLocaleLowerCase(),this._shortWeekdaysParse[s]=this.weekdaysShort(a,"").toLocaleLowerCase(),this._weekdaysParse[s]=this.weekdays(a,"").toLocaleLowerCase();return i?t==="dddd"?(n=We.call(this._weekdaysParse,c),n!==-1?n:null):t==="ddd"?(n=We.call(this._shortWeekdaysParse,c),n!==-1?n:null):(n=We.call(this._minWeekdaysParse,c),n!==-1?n:null):t==="dddd"?(n=We.call(this._weekdaysParse,c),n!==-1||(n=We.call(this._shortWeekdaysParse,c),n!==-1)?n:(n=We.call(this._minWeekdaysParse,c),n!==-1?n:null)):t==="ddd"?(n=We.call(this._shortWeekdaysParse,c),n!==-1||(n=We.call(this._weekdaysParse,c),n!==-1)?n:(n=We.call(this._minWeekdaysParse,c),n!==-1?n:null)):(n=We.call(this._minWeekdaysParse,c),n!==-1||(n=We.call(this._weekdaysParse,c),n!==-1)?n:(n=We.call(this._shortWeekdaysParse,c),n!==-1?n:null))}function xf(e,t,i){var s,n,a;if(this._weekdaysParseExact)return jf.call(this,e,t,i);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),s=0;s<7;s++){if(n=Dt([2e3,1]).day(s),i&&!this._fullWeekdaysParse[s]&&(this._fullWeekdaysParse[s]=new RegExp("^"+this.weekdays(n,"").replace(".","\\.?")+"$","i"),this._shortWeekdaysParse[s]=new RegExp("^"+this.weekdaysShort(n,"").replace(".","\\.?")+"$","i"),this._minWeekdaysParse[s]=new RegExp("^"+this.weekdaysMin(n,"").replace(".","\\.?")+"$","i")),this._weekdaysParse[s]||(a="^"+this.weekdays(n,"")+"|^"+this.weekdaysShort(n,"")+"|^"+this.weekdaysMin(n,""),this._weekdaysParse[s]=new RegExp(a.replace(".",""),"i")),i&&t==="dddd"&&this._fullWeekdaysParse[s].test(e))return s;if(i&&t==="ddd"&&this._shortWeekdaysParse[s].test(e))return s;if(i&&t==="dd"&&this._minWeekdaysParse[s].test(e))return s;if(!i&&this._weekdaysParse[s].test(e))return s}}function $f(e){if(!this.isValid())return e!=null?this:NaN;var t=$s(this,"Day");return e!=null?(e=_f(e,this.localeData()),this.add(e-t,"d")):t}function Sf(e){if(!this.isValid())return e!=null?this:NaN;var t=(this.day()+7-this.localeData()._week.dow)%7;return e==null?t:this.add(e-t,"d")}function kf(e){if(!this.isValid())return e!=null?this:NaN;if(e!=null){var t=gf(e,this.localeData());return this.day(this.day()%7?t:t-7)}else return this.day()||7}function qf(e){return this._weekdaysParseExact?(je(this,"_weekdaysRegex")||pa.call(this),e?this._weekdaysStrictRegex:this._weekdaysRegex):(je(this,"_weekdaysRegex")||(this._weekdaysRegex=mf),this._weekdaysStrictRegex&&e?this._weekdaysStrictRegex:this._weekdaysRegex)}function Cf(e){return this._weekdaysParseExact?(je(this,"_weekdaysRegex")||pa.call(this),e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(je(this,"_weekdaysShortRegex")||(this._weekdaysShortRegex=ff),this._weekdaysShortStrictRegex&&e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)}function Pf(e){return this._weekdaysParseExact?(je(this,"_weekdaysRegex")||pa.call(this),e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(je(this,"_weekdaysMinRegex")||(this._weekdaysMinRegex=wf),this._weekdaysMinStrictRegex&&e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)}function pa(){function e(m,p){return p.length-m.length}var t=[],i=[],s=[],n=[],a,c,l,u,_;for(a=0;a<7;a++)c=Dt([2e3,1]).day(a),l=Jt(this.weekdaysMin(c,"")),u=Jt(this.weekdaysShort(c,"")),_=Jt(this.weekdays(c,"")),t.push(l),i.push(u),s.push(_),n.push(l),n.push(u),n.push(_);t.sort(e),i.sort(e),s.sort(e),n.sort(e),this._weekdaysRegex=new RegExp("^("+n.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+s.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+i.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+t.join("|")+")","i")}function ma(){return this.hours()%12||12}function Df(){return this.hours()||24}ae("H",["HH",2],0,"hour");ae("h",["hh",2],0,ma);ae("k",["kk",2],0,Df);ae("hmm",0,0,function(){return""+ma.apply(this)+Ct(this.minutes(),2)});ae("hmmss",0,0,function(){return""+ma.apply(this)+Ct(this.minutes(),2)+Ct(this.seconds(),2)});ae("Hmm",0,0,function(){return""+this.hours()+Ct(this.minutes(),2)});ae("Hmmss",0,0,function(){return""+this.hours()+Ct(this.minutes(),2)+Ct(this.seconds(),2)});function Jl(e,t){ae(e,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),t)})}Jl("a",!0);Jl("A",!1);function Kl(e,t){return t._meridiemParse}ie("a",Kl);ie("A",Kl);ie("H",Te,_a);ie("h",Te,Ki);ie("k",Te,Ki);ie("HH",Te,lt);ie("hh",Te,lt);ie("kk",Te,lt);ie("hmm",Ll);ie("hmmss",Wl);ie("Hmm",Ll);ie("Hmmss",Wl);Se(["H","HH"],Be);Se(["k","kk"],function(e,t,i){var s=me(e);t[Be]=s===24?0:s});Se(["a","A"],function(e,t,i){i._isPm=i._locale.isPM(e),i._meridiem=e});Se(["h","hh"],function(e,t,i){t[Be]=me(e),_e(i).bigHour=!0});Se("hmm",function(e,t,i){var s=e.length-2;t[Be]=me(e.substr(0,s)),t[bt]=me(e.substr(s)),_e(i).bigHour=!0});Se("hmmss",function(e,t,i){var s=e.length-4,n=e.length-2;t[Be]=me(e.substr(0,s)),t[bt]=me(e.substr(s,2)),t[Gt]=me(e.substr(n)),_e(i).bigHour=!0});Se("Hmm",function(e,t,i){var s=e.length-2;t[Be]=me(e.substr(0,s)),t[bt]=me(e.substr(s))});Se("Hmmss",function(e,t,i){var s=e.length-4,n=e.length-2;t[Be]=me(e.substr(0,s)),t[bt]=me(e.substr(s,2)),t[Gt]=me(e.substr(n))});function Tf(e){return(e+"").toLowerCase().charAt(0)==="p"}var Mf=/[ap]\.?m?\.?/i,zf=Zi("Hours",!0);function If(e,t,i){return e>11?i?"pm":"PM":i?"am":"AM"}var Zl={calendar:ym,longDateFormat:Sm,invalidDate:qm,ordinal:Pm,dayOfMonthOrdinalParse:Dm,relativeTime:Mm,months:Gm,monthsShort:El,week:rf,weekdays:hf,weekdaysMin:pf,weekdaysShort:Gl,meridiemParse:Mf},Ie={},gs={},qs;function Hf(e,t){var i,s=Math.min(e.length,t.length);for(i=0;i<s;i+=1)if(e[i]!==t[i])return i;return s}function Er(e){return e&&e.toLowerCase().replace("_","-")}function Af(e){for(var t=0,i,s,n,a;t<e.length;){for(a=Er(e[t]).split("-"),i=a.length,s=Er(e[t+1]),s=s?s.split("-"):null;i>0;){if(n=Kn(a.slice(0,i).join("-")),n)return n;if(s&&s.length>=i&&Hf(a,s)>=i-1)break;i--}t++}return qs}function Of(e){return!!(e&&e.match("^[^/\\\\]*$"))}function Kn(e){var t=null,i;if(Ie[e]===void 0&&typeof module<"u"&&module&&module.exports&&Of(e))try{t=qs._abbr,i=require,i("./locale/"+e),gi(t)}catch{Ie[e]=null}return Ie[e]}function gi(e,t){var i;return e&&(st(t)?i=Xt(e):i=fa(e,t),i?qs=i:typeof console<"u"&&console.warn&&console.warn("Locale "+e+" not found. Did you forget to load it?")),qs._abbr}function fa(e,t){if(t!==null){var i,s=Zl;if(t.abbr=e,Ie[e]!=null)Il("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."),s=Ie[e]._config;else if(t.parentLocale!=null)if(Ie[t.parentLocale]!=null)s=Ie[t.parentLocale]._config;else if(i=Kn(t.parentLocale),i!=null)s=i._config;else return gs[t.parentLocale]||(gs[t.parentLocale]=[]),gs[t.parentLocale].push({name:e,config:t}),null;return Ie[e]=new ra(Uo(s,t)),gs[e]&&gs[e].forEach(function(n){fa(n.name,n.config)}),gi(e),Ie[e]}else return delete Ie[e],null}function Lf(e,t){if(t!=null){var i,s,n=Zl;Ie[e]!=null&&Ie[e].parentLocale!=null?Ie[e].set(Uo(Ie[e]._config,t)):(s=Kn(e),s!=null&&(n=s._config),t=Uo(n,t),s==null&&(t.abbr=e),i=new ra(t),i.parentLocale=Ie[e],Ie[e]=i),gi(e)}else Ie[e]!=null&&(Ie[e].parentLocale!=null?(Ie[e]=Ie[e].parentLocale,e===gi()&&gi(e)):Ie[e]!=null&&delete Ie[e]);return Ie[e]}function Xt(e){var t;if(e&&e._locale&&e._locale._abbr&&(e=e._locale._abbr),!e)return qs;if(!vt(e)){if(t=Kn(e),t)return t;e=[e]}return Af(e)}function Wf(){return Yo(Ie)}function wa(e){var t,i=e._a;return i&&_e(e).overflow===-2&&(t=i[Yt]<0||i[Yt]>11?Yt:i[qt]<1||i[qt]>ga(i[Xe],i[Yt])?qt:i[Be]<0||i[Be]>24||i[Be]===24&&(i[bt]!==0||i[Gt]!==0||i[vi]!==0)?Be:i[bt]<0||i[bt]>59?bt:i[Gt]<0||i[Gt]>59?Gt:i[vi]<0||i[vi]>999?vi:-1,_e(e)._overflowDayOfYear&&(t<Xe||t>qt)&&(t=qt),_e(e)._overflowWeeks&&t===-1&&(t=Em),_e(e)._overflowWeekday&&t===-1&&(t=Fm),_e(e).overflow=t),e}var Rf=/^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/,Nf=/^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d|))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/,Ef=/Z|[+-]\d\d(?::?\d\d)?/,hn=[["YYYYYY-MM-DD",/[+-]\d{6}-\d\d-\d\d/],["YYYY-MM-DD",/\d{4}-\d\d-\d\d/],["GGGG-[W]WW-E",/\d{4}-W\d\d-\d/],["GGGG-[W]WW",/\d{4}-W\d\d/,!1],["YYYY-DDD",/\d{4}-\d{3}/],["YYYY-MM",/\d{4}-\d\d/,!1],["YYYYYYMMDD",/[+-]\d{10}/],["YYYYMMDD",/\d{8}/],["GGGG[W]WWE",/\d{4}W\d{3}/],["GGGG[W]WW",/\d{4}W\d{2}/,!1],["YYYYDDD",/\d{7}/],["YYYYMM",/\d{6}/,!1],["YYYY",/\d{4}/,!1]],Ho=[["HH:mm:ss.SSSS",/\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss,SSSS",/\d\d:\d\d:\d\d,\d+/],["HH:mm:ss",/\d\d:\d\d:\d\d/],["HH:mm",/\d\d:\d\d/],["HHmmss.SSSS",/\d\d\d\d\d\d\.\d+/],["HHmmss,SSSS",/\d\d\d\d\d\d,\d+/],["HHmmss",/\d\d\d\d\d\d/],["HHmm",/\d\d\d\d/],["HH",/\d\d/]],Ff=/^\/?Date\((-?\d+)/i,Vf=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\d{4}))$/,Bf={UT:0,GMT:0,EDT:-4*60,EST:-5*60,CDT:-5*60,CST:-6*60,MDT:-6*60,MST:-7*60,PDT:-7*60,PST:-8*60};function Xl(e){var t,i,s=e._i,n=Rf.exec(s)||Nf.exec(s),a,c,l,u,_=hn.length,m=Ho.length;if(n){for(_e(e).iso=!0,t=0,i=_;t<i;t++)if(hn[t][1].exec(n[1])){c=hn[t][0],a=hn[t][2]!==!1;break}if(c==null){e._isValid=!1;return}if(n[3]){for(t=0,i=m;t<i;t++)if(Ho[t][1].exec(n[3])){l=(n[2]||" ")+Ho[t][0];break}if(l==null){e._isValid=!1;return}}if(!a&&l!=null){e._isValid=!1;return}if(n[4])if(Ef.exec(n[4]))u="Z";else{e._isValid=!1;return}e._f=c+(l||"")+(u||""),va(e)}else e._isValid=!1}function Uf(e,t,i,s,n,a){var c=[Yf(e),El.indexOf(t),parseInt(i,10),parseInt(s,10),parseInt(n,10)];return a&&c.push(parseInt(a,10)),c}function Yf(e){var t=parseInt(e,10);return t<=49?2e3+t:t<=999?1900+t:t}function Gf(e){return e.replace(/\([^()]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").replace(/^\s\s*/,"").replace(/\s\s*$/,"")}function Jf(e,t,i){if(e){var s=Gl.indexOf(e),n=new Date(t[0],t[1],t[2]).getDay();if(s!==n)return _e(i).weekdayMismatch=!0,i._isValid=!1,!1}return!0}function Kf(e,t,i){if(e)return Bf[e];if(t)return 0;var s=parseInt(i,10),n=s%100,a=(s-n)/100;return a*60+n}function Ql(e){var t=Vf.exec(Gf(e._i)),i;if(t){if(i=Uf(t[4],t[3],t[2],t[5],t[6],t[7]),!Jf(t[1],i,e))return;e._a=i,e._tzm=Kf(t[8],t[9],t[10]),e._d=Ss.apply(null,e._a),e._d.setUTCMinutes(e._d.getUTCMinutes()-e._tzm),_e(e).rfc2822=!0}else e._isValid=!1}function Zf(e){var t=Ff.exec(e._i);if(t!==null){e._d=new Date(+t[1]);return}if(Xl(e),e._isValid===!1)delete e._isValid;else return;if(Ql(e),e._isValid===!1)delete e._isValid;else return;e._strict?e._isValid=!1:X.createFromInputFallback(e)}X.createFromInputFallback=gt("value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.",function(e){e._d=new Date(e._i+(e._useUTC?" UTC":""))});function Ni(e,t,i){return e??t??i}function Xf(e){var t=new Date(X.now());return e._useUTC?[t.getUTCFullYear(),t.getUTCMonth(),t.getUTCDate()]:[t.getFullYear(),t.getMonth(),t.getDate()]}function ba(e){var t,i,s=[],n,a,c;if(!e._d){for(n=Xf(e),e._w&&e._a[qt]==null&&e._a[Yt]==null&&Qf(e),e._dayOfYear!=null&&(c=Ni(e._a[Xe],n[Xe]),(e._dayOfYear>ys(c)||e._dayOfYear===0)&&(_e(e)._overflowDayOfYear=!0),i=Ss(c,0,e._dayOfYear),e._a[Yt]=i.getUTCMonth(),e._a[qt]=i.getUTCDate()),t=0;t<3&&e._a[t]==null;++t)e._a[t]=s[t]=n[t];for(;t<7;t++)e._a[t]=s[t]=e._a[t]==null?t===2?1:0:e._a[t];e._a[Be]===24&&e._a[bt]===0&&e._a[Gt]===0&&e._a[vi]===0&&(e._nextDay=!0,e._a[Be]=0),e._d=(e._useUTC?Ss:of).apply(null,s),a=e._useUTC?e._d.getUTCDay():e._d.getDay(),e._tzm!=null&&e._d.setUTCMinutes(e._d.getUTCMinutes()-e._tzm),e._nextDay&&(e._a[Be]=24),e._w&&typeof e._w.d<"u"&&e._w.d!==a&&(_e(e).weekdayMismatch=!0)}}function Qf(e){var t,i,s,n,a,c,l,u,_;t=e._w,t.GG!=null||t.W!=null||t.E!=null?(a=1,c=4,i=Ni(t.GG,e._a[Xe],ks(De(),1,4).year),s=Ni(t.W,1),n=Ni(t.E,1),(n<1||n>7)&&(u=!0)):(a=e._locale._week.dow,c=e._locale._week.doy,_=ks(De(),a,c),i=Ni(t.gg,e._a[Xe],_.year),s=Ni(t.w,_.week),t.d!=null?(n=t.d,(n<0||n>6)&&(u=!0)):t.e!=null?(n=t.e+a,(t.e<0||t.e>6)&&(u=!0)):n=a),s<1||s>Kt(i,a,c)?_e(e)._overflowWeeks=!0:u!=null?_e(e)._overflowWeekday=!0:(l=Yl(i,s,n,a,c),e._a[Xe]=l.year,e._dayOfYear=l.dayOfYear)}X.ISO_8601=function(){};X.RFC_2822=function(){};function va(e){if(e._f===X.ISO_8601){Xl(e);return}if(e._f===X.RFC_2822){Ql(e);return}e._a=[],_e(e).empty=!0;var t=""+e._i,i,s,n,a,c,l=t.length,u=0,_,m;for(n=Hl(e._f,e._locale).match(la)||[],m=n.length,i=0;i<m;i++)a=n[i],s=(t.match(Wm(a,e))||[])[0],s&&(c=t.substr(0,t.indexOf(s)),c.length>0&&_e(e).unusedInput.push(c),t=t.slice(t.indexOf(s)+s.length),u+=s.length),Vi[a]?(s?_e(e).empty=!1:_e(e).unusedTokens.push(a),Nm(a,s,e)):e._strict&&!s&&_e(e).unusedTokens.push(a);_e(e).charsLeftOver=l-u,t.length>0&&_e(e).unusedInput.push(t),e._a[Be]<=12&&_e(e).bigHour===!0&&e._a[Be]>0&&(_e(e).bigHour=void 0),_e(e).parsedDateParts=e._a.slice(0),_e(e).meridiem=e._meridiem,e._a[Be]=ew(e._locale,e._a[Be],e._meridiem),_=_e(e).era,_!==null&&(e._a[Xe]=e._locale.erasConvertYear(_,e._a[Xe])),ba(e),wa(e)}function ew(e,t,i){var s;return i==null?t:e.meridiemHour!=null?e.meridiemHour(t,i):(e.isPM!=null&&(s=e.isPM(i),s&&t<12&&(t+=12),!s&&t===12&&(t=0)),t)}function tw(e){var t,i,s,n,a,c,l=!1,u=e._f.length;if(u===0){_e(e).invalidFormat=!0,e._d=new Date(NaN);return}for(n=0;n<u;n++)a=0,c=!1,t=aa({},e),e._useUTC!=null&&(t._useUTC=e._useUTC),t._f=e._f[n],va(t),oa(t)&&(c=!0),a+=_e(t).charsLeftOver,a+=_e(t).unusedTokens.length*10,_e(t).score=a,l?a<s&&(s=a,i=t):(s==null||a<s||c)&&(s=a,i=t,c&&(l=!0));li(e,i||t)}function iw(e){if(!e._d){var t=ca(e._i),i=t.day===void 0?t.date:t.day;e._a=Ml([t.year,t.month,i,t.hour,t.minute,t.second,t.millisecond],function(s){return s&&parseInt(s,10)}),ba(e)}}function sw(e){var t=new Ws(wa(ec(e)));return t._nextDay&&(t.add(1,"d"),t._nextDay=void 0),t}function ec(e){var t=e._i,i=e._f;return e._locale=e._locale||Xt(e._l),t===null||i===void 0&&t===""?Fn({nullInput:!0}):(typeof t=="string"&&(e._i=t=e._locale.preparse(t)),yt(t)?new Ws(wa(t)):(Ls(t)?e._d=t:vt(i)?tw(e):i?va(e):nw(e),oa(e)||(e._d=null),e))}function nw(e){var t=e._i;st(t)?e._d=new Date(X.now()):Ls(t)?e._d=new Date(t.valueOf()):typeof t=="string"?Zf(e):vt(t)?(e._a=Ml(t.slice(0),function(i){return parseInt(i,10)}),ba(e)):ji(t)?iw(e):Zt(t)?e._d=new Date(t):X.createFromInputFallback(e)}function tc(e,t,i,s,n){var a={};return(t===!0||t===!1)&&(s=t,t=void 0),(i===!0||i===!1)&&(s=i,i=void 0),(ji(e)&&na(e)||vt(e)&&e.length===0)&&(e=void 0),a._isAMomentObject=!0,a._useUTC=a._isUTC=n,a._l=i,a._i=e,a._f=t,a._strict=s,sw(a)}function De(e,t,i,s){return tc(e,t,i,s,!1)}var ow=gt("moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/",function(){var e=De.apply(null,arguments);return this.isValid()&&e.isValid()?e<this?this:e:Fn()}),aw=gt("moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/",function(){var e=De.apply(null,arguments);return this.isValid()&&e.isValid()?e>this?this:e:Fn()});function ic(e,t){var i,s;if(t.length===1&&vt(t[0])&&(t=t[0]),!t.length)return De();for(i=t[0],s=1;s<t.length;++s)(!t[s].isValid()||t[s][e](i))&&(i=t[s]);return i}function rw(){var e=[].slice.call(arguments,0);return ic("isBefore",e)}function lw(){var e=[].slice.call(arguments,0);return ic("isAfter",e)}var cw=function(){return Date.now?Date.now():+new Date},hs=["year","quarter","month","week","day","hour","minute","second","millisecond"];function dw(e){var t,i=!1,s,n=hs.length;for(t in e)if(je(e,t)&&!(We.call(hs,t)!==-1&&(e[t]==null||!isNaN(e[t]))))return!1;for(s=0;s<n;++s)if(e[hs[s]]){if(i)return!1;parseFloat(e[hs[s]])!==me(e[hs[s]])&&(i=!0)}return!0}function uw(){return this._isValid}function _w(){return xt(NaN)}function Zn(e){var t=ca(e),i=t.year||0,s=t.quarter||0,n=t.month||0,a=t.week||t.isoWeek||0,c=t.day||0,l=t.hour||0,u=t.minute||0,_=t.second||0,m=t.millisecond||0;this._isValid=dw(t),this._milliseconds=+m+_*1e3+u*6e4+l*1e3*60*60,this._days=+c+a*7,this._months=+n+s*3+i*12,this._data={},this._locale=Xt(),this._bubble()}function jn(e){return e instanceof Zn}function Jo(e){return e<0?Math.round(-1*e)*-1:Math.round(e)}function gw(e,t,i){var s=Math.min(e.length,t.length),n=Math.abs(e.length-t.length),a=0,c;for(c=0;c<s;c++)me(e[c])!==me(t[c])&&a++;return a+n}function sc(e,t){ae(e,0,0,function(){var i=this.utcOffset(),s="+";return i<0&&(i=-i,s="-"),s+Ct(~~(i/60),2)+t+Ct(~~i%60,2)})}sc("Z",":");sc("ZZ","");ie("Z",Gn);ie("ZZ",Gn);Se(["Z","ZZ"],function(e,t,i){i._useUTC=!0,i._tzm=ya(Gn,e)});var hw=/([\+\-]|\d\d)/gi;function ya(e,t){var i=(t||"").match(e),s,n,a;return i===null?null:(s=i[i.length-1]||[],n=(s+"").match(hw)||["-",0,0],a=+(n[1]*60)+me(n[2]),a===0?0:n[0]==="+"?a:-a)}function ja(e,t){var i,s;return t._isUTC?(i=t.clone(),s=(yt(e)||Ls(e)?e.valueOf():De(e).valueOf())-i.valueOf(),i._d.setTime(i._d.valueOf()+s),X.updateOffset(i,!1),i):De(e).local()}function Ko(e){return-Math.round(e._d.getTimezoneOffset())}X.updateOffset=function(){};function pw(e,t,i){var s=this._offset||0,n;if(!this.isValid())return e!=null?this:NaN;if(e!=null){if(typeof e=="string"){if(e=ya(Gn,e),e===null)return this}else Math.abs(e)<16&&!i&&(e=e*60);return!this._isUTC&&t&&(n=Ko(this)),this._offset=e,this._isUTC=!0,n!=null&&this.add(n,"m"),s!==e&&(!t||this._changeInProgress?ac(this,xt(e-s,"m"),1,!1):this._changeInProgress||(this._changeInProgress=!0,X.updateOffset(this,!0),this._changeInProgress=null)),this}else return this._isUTC?s:Ko(this)}function mw(e,t){return e!=null?(typeof e!="string"&&(e=-e),this.utcOffset(e,t),this):-this.utcOffset()}function fw(e){return this.utcOffset(0,e)}function ww(e){return this._isUTC&&(this.utcOffset(0,e),this._isUTC=!1,e&&this.subtract(Ko(this),"m")),this}function bw(){if(this._tzm!=null)this.utcOffset(this._tzm,!1,!0);else if(typeof this._i=="string"){var e=ya(Om,this._i);e!=null?this.utcOffset(e):this.utcOffset(0,!0)}return this}function vw(e){return this.isValid()?(e=e?De(e).utcOffset():0,(this.utcOffset()-e)%60===0):!1}function yw(){return this.utcOffset()>this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()}function jw(){if(!st(this._isDSTShifted))return this._isDSTShifted;var e={},t;return aa(e,this),e=ec(e),e._a?(t=e._isUTC?Dt(e._a):De(e._a),this._isDSTShifted=this.isValid()&&gw(e._a,t.toArray())>0):this._isDSTShifted=!1,this._isDSTShifted}function xw(){return this.isValid()?!this._isUTC:!1}function $w(){return this.isValid()?this._isUTC:!1}function nc(){return this.isValid()?this._isUTC&&this._offset===0:!1}var Sw=/^(-|\+)?(?:(\d*)[. ])?(\d+):(\d+)(?::(\d+)(\.\d*)?)?$/,kw=/^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;function xt(e,t){var i=e,s=null,n,a,c;return jn(e)?i={ms:e._milliseconds,d:e._days,M:e._months}:Zt(e)||!isNaN(+e)?(i={},t?i[t]=+e:i.milliseconds=+e):(s=Sw.exec(e))?(n=s[1]==="-"?-1:1,i={y:0,d:me(s[qt])*n,h:me(s[Be])*n,m:me(s[bt])*n,s:me(s[Gt])*n,ms:me(Jo(s[vi]*1e3))*n}):(s=kw.exec(e))?(n=s[1]==="-"?-1:1,i={y:bi(s[2],n),M:bi(s[3],n),w:bi(s[4],n),d:bi(s[5],n),h:bi(s[6],n),m:bi(s[7],n),s:bi(s[8],n)}):i==null?i={}:typeof i=="object"&&("from"in i||"to"in i)&&(c=qw(De(i.from),De(i.to)),i={},i.ms=c.milliseconds,i.M=c.months),a=new Zn(i),jn(e)&&je(e,"_locale")&&(a._locale=e._locale),jn(e)&&je(e,"_isValid")&&(a._isValid=e._isValid),a}xt.fn=Zn.prototype;xt.invalid=_w;function bi(e,t){var i=e&&parseFloat(e.replace(",","."));return(isNaN(i)?0:i)*t}function Fr(e,t){var i={};return i.months=t.month()-e.month()+(t.year()-e.year())*12,e.clone().add(i.months,"M").isAfter(t)&&--i.months,i.milliseconds=+t-+e.clone().add(i.months,"M"),i}function qw(e,t){var i;return e.isValid()&&t.isValid()?(t=ja(t,e),e.isBefore(t)?i=Fr(e,t):(i=Fr(t,e),i.milliseconds=-i.milliseconds,i.months=-i.months),i):{milliseconds:0,months:0}}function oc(e,t){return function(i,s){var n,a;return s!==null&&!isNaN(+s)&&(Il(t,"moment()."+t+"(period, number) is deprecated. Please use moment()."+t+"(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info."),a=i,i=s,s=a),n=xt(i,s),ac(this,n,e),this}}function ac(e,t,i,s){var n=t._milliseconds,a=Jo(t._days),c=Jo(t._months);e.isValid()&&(s=s??!0,c&&Vl(e,$s(e,"Month")+c*i),a&&Nl(e,"Date",$s(e,"Date")+a*i),n&&e._d.setTime(e._d.valueOf()+n*i),s&&X.updateOffset(e,a||c))}var Cw=oc(1,"add"),Pw=oc(-1,"subtract");function rc(e){return typeof e=="string"||e instanceof String}function Dw(e){return yt(e)||Ls(e)||rc(e)||Zt(e)||Mw(e)||Tw(e)||e===null||e===void 0}function Tw(e){var t=ji(e)&&!na(e),i=!1,s=["years","year","y","months","month","M","days","day","d","dates","date","D","hours","hour","h","minutes","minute","m","seconds","second","s","milliseconds","millisecond","ms"],n,a,c=s.length;for(n=0;n<c;n+=1)a=s[n],i=i||je(e,a);return t&&i}function Mw(e){var t=vt(e),i=!1;return t&&(i=e.filter(function(s){return!Zt(s)&&rc(e)}).length===0),t&&i}function zw(e){var t=ji(e)&&!na(e),i=!1,s=["sameDay","nextDay","lastDay","nextWeek","lastWeek","sameElse"],n,a;for(n=0;n<s.length;n+=1)a=s[n],i=i||je(e,a);return t&&i}function Iw(e,t){var i=e.diff(t,"days",!0);return i<-6?"sameElse":i<-1?"lastWeek":i<0?"lastDay":i<1?"sameDay":i<2?"nextDay":i<7?"nextWeek":"sameElse"}function Hw(e,t){arguments.length===1&&(arguments[0]?Dw(arguments[0])?(e=arguments[0],t=void 0):zw(arguments[0])&&(t=arguments[0],e=void 0):(e=void 0,t=void 0));var i=e||De(),s=ja(i,this).startOf("day"),n=X.calendarFormat(this,s)||"sameElse",a=t&&(Tt(t[n])?t[n].call(this,i):t[n]);return this.format(a||this.localeData().calendar(n,this,De(i)))}function Aw(){return new Ws(this)}function Ow(e,t){var i=yt(e)?e:De(e);return this.isValid()&&i.isValid()?(t=ht(t)||"millisecond",t==="millisecond"?this.valueOf()>i.valueOf():i.valueOf()<this.clone().startOf(t).valueOf()):!1}function Lw(e,t){var i=yt(e)?e:De(e);return this.isValid()&&i.isValid()?(t=ht(t)||"millisecond",t==="millisecond"?this.valueOf()<i.valueOf():this.clone().endOf(t).valueOf()<i.valueOf()):!1}function Ww(e,t,i,s){var n=yt(e)?e:De(e),a=yt(t)?t:De(t);return this.isValid()&&n.isValid()&&a.isValid()?(s=s||"()",(s[0]==="("?this.isAfter(n,i):!this.isBefore(n,i))&&(s[1]===")"?this.isBefore(a,i):!this.isAfter(a,i))):!1}function Rw(e,t){var i=yt(e)?e:De(e),s;return this.isValid()&&i.isValid()?(t=ht(t)||"millisecond",t==="millisecond"?this.valueOf()===i.valueOf():(s=i.valueOf(),this.clone().startOf(t).valueOf()<=s&&s<=this.clone().endOf(t).valueOf())):!1}function Nw(e,t){return this.isSame(e,t)||this.isAfter(e,t)}function Ew(e,t){return this.isSame(e,t)||this.isBefore(e,t)}function Fw(e,t,i){var s,n,a;if(!this.isValid())return NaN;if(s=ja(e,this),!s.isValid())return NaN;switch(n=(s.utcOffset()-this.utcOffset())*6e4,t=ht(t),t){case"year":a=xn(this,s)/12;break;case"month":a=xn(this,s);break;case"quarter":a=xn(this,s)/3;break;case"second":a=(this-s)/1e3;break;case"minute":a=(this-s)/6e4;break;case"hour":a=(this-s)/36e5;break;case"day":a=(this-s-n)/864e5;break;case"week":a=(this-s-n)/6048e5;break;default:a=this-s}return i?a:ut(a)}function xn(e,t){if(e.date()<t.date())return-xn(t,e);var i=(t.year()-e.year())*12+(t.month()-e.month()),s=e.clone().add(i,"months"),n,a;return t-s<0?(n=e.clone().add(i-1,"months"),a=(t-s)/(s-n)):(n=e.clone().add(i+1,"months"),a=(t-s)/(n-s)),-(i+a)||0}X.defaultFormat="YYYY-MM-DDTHH:mm:ssZ";X.defaultFormatUtc="YYYY-MM-DDTHH:mm:ss[Z]";function Vw(){return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")}function Bw(e){if(!this.isValid())return null;var t=e!==!0,i=t?this.clone().utc():this;return i.year()<0||i.year()>9999?yn(i,t?"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYYYY-MM-DD[T]HH:mm:ss.SSSZ"):Tt(Date.prototype.toISOString)?t?this.toDate().toISOString():new Date(this.valueOf()+this.utcOffset()*60*1e3).toISOString().replace("Z",yn(i,"Z")):yn(i,t?"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYY-MM-DD[T]HH:mm:ss.SSSZ")}function Uw(){if(!this.isValid())return"moment.invalid(/* "+this._i+" */)";var e="moment",t="",i,s,n,a;return this.isLocal()||(e=this.utcOffset()===0?"moment.utc":"moment.parseZone",t="Z"),i="["+e+'("]',s=0<=this.year()&&this.year()<=9999?"YYYY":"YYYYYY",n="-MM-DD[T]HH:mm:ss.SSS",a=t+'[")]',this.format(i+s+n+a)}function Yw(e){e||(e=this.isUtc()?X.defaultFormatUtc:X.defaultFormat);var t=yn(this,e);return this.localeData().postformat(t)}function Gw(e,t){return this.isValid()&&(yt(e)&&e.isValid()||De(e).isValid())?xt({to:this,from:e}).locale(this.locale()).humanize(!t):this.localeData().invalidDate()}function Jw(e){return this.from(De(),e)}function Kw(e,t){return this.isValid()&&(yt(e)&&e.isValid()||De(e).isValid())?xt({from:this,to:e}).locale(this.locale()).humanize(!t):this.localeData().invalidDate()}function Zw(e){return this.to(De(),e)}function lc(e){var t;return e===void 0?this._locale._abbr:(t=Xt(e),t!=null&&(this._locale=t),this)}var cc=gt("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",function(e){return e===void 0?this.localeData():this.locale(e)});function dc(){return this._locale}var zn=1e3,Bi=60*zn,In=60*Bi,uc=(365*400+97)*24*In;function Ui(e,t){return(e%t+t)%t}function _c(e,t,i){return e<100&&e>=0?new Date(e+400,t,i)-uc:new Date(e,t,i).valueOf()}function gc(e,t,i){return e<100&&e>=0?Date.UTC(e+400,t,i)-uc:Date.UTC(e,t,i)}function Xw(e){var t,i;if(e=ht(e),e===void 0||e==="millisecond"||!this.isValid())return this;switch(i=this._isUTC?gc:_c,e){case"year":t=i(this.year(),0,1);break;case"quarter":t=i(this.year(),this.month()-this.month()%3,1);break;case"month":t=i(this.year(),this.month(),1);break;case"week":t=i(this.year(),this.month(),this.date()-this.weekday());break;case"isoWeek":t=i(this.year(),this.month(),this.date()-(this.isoWeekday()-1));break;case"day":case"date":t=i(this.year(),this.month(),this.date());break;case"hour":t=this._d.valueOf(),t-=Ui(t+(this._isUTC?0:this.utcOffset()*Bi),In);break;case"minute":t=this._d.valueOf(),t-=Ui(t,Bi);break;case"second":t=this._d.valueOf(),t-=Ui(t,zn);break}return this._d.setTime(t),X.updateOffset(this,!0),this}function Qw(e){var t,i;if(e=ht(e),e===void 0||e==="millisecond"||!this.isValid())return this;switch(i=this._isUTC?gc:_c,e){case"year":t=i(this.year()+1,0,1)-1;break;case"quarter":t=i(this.year(),this.month()-this.month()%3+3,1)-1;break;case"month":t=i(this.year(),this.month()+1,1)-1;break;case"week":t=i(this.year(),this.month(),this.date()-this.weekday()+7)-1;break;case"isoWeek":t=i(this.year(),this.month(),this.date()-(this.isoWeekday()-1)+7)-1;break;case"day":case"date":t=i(this.year(),this.month(),this.date()+1)-1;break;case"hour":t=this._d.valueOf(),t+=In-Ui(t+(this._isUTC?0:this.utcOffset()*Bi),In)-1;break;case"minute":t=this._d.valueOf(),t+=Bi-Ui(t,Bi)-1;break;case"second":t=this._d.valueOf(),t+=zn-Ui(t,zn)-1;break}return this._d.setTime(t),X.updateOffset(this,!0),this}function eb(){return this._d.valueOf()-(this._offset||0)*6e4}function tb(){return Math.floor(this.valueOf()/1e3)}function ib(){return new Date(this.valueOf())}function sb(){var e=this;return[e.year(),e.month(),e.date(),e.hour(),e.minute(),e.second(),e.millisecond()]}function nb(){var e=this;return{years:e.year(),months:e.month(),date:e.date(),hours:e.hours(),minutes:e.minutes(),seconds:e.seconds(),milliseconds:e.milliseconds()}}function ob(){return this.isValid()?this.toISOString():null}function ab(){return oa(this)}function rb(){return li({},_e(this))}function lb(){return _e(this).overflow}function cb(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}}ae("N",0,0,"eraAbbr");ae("NN",0,0,"eraAbbr");ae("NNN",0,0,"eraAbbr");ae("NNNN",0,0,"eraName");ae("NNNNN",0,0,"eraNarrow");ae("y",["y",1],"yo","eraYear");ae("y",["yy",2],0,"eraYear");ae("y",["yyy",3],0,"eraYear");ae("y",["yyyy",4],0,"eraYear");ie("N",xa);ie("NN",xa);ie("NNN",xa);ie("NNNN",vb);ie("NNNNN",yb);Se(["N","NN","NNN","NNNN","NNNNN"],function(e,t,i,s){var n=i._locale.erasParse(e,s,i._strict);n?_e(i).era=n:_e(i).invalidEra=e});ie("y",Ji);ie("yy",Ji);ie("yyy",Ji);ie("yyyy",Ji);ie("yo",jb);Se(["y","yy","yyy","yyyy"],Xe);Se(["yo"],function(e,t,i,s){var n;i._locale._eraYearOrdinalRegex&&(n=e.match(i._locale._eraYearOrdinalRegex)),i._locale.eraYearOrdinalParse?t[Xe]=i._locale.eraYearOrdinalParse(e,n):t[Xe]=parseInt(e,10)});function db(e,t){var i,s,n,a=this._eras||Xt("en")._eras;for(i=0,s=a.length;i<s;++i){switch(typeof a[i].since){case"string":n=X(a[i].since).startOf("day"),a[i].since=n.valueOf();break}switch(typeof a[i].until){case"undefined":a[i].until=1/0;break;case"string":n=X(a[i].until).startOf("day").valueOf(),a[i].until=n.valueOf();break}}return a}function ub(e,t,i){var s,n,a=this.eras(),c,l,u;for(e=e.toUpperCase(),s=0,n=a.length;s<n;++s)if(c=a[s].name.toUpperCase(),l=a[s].abbr.toUpperCase(),u=a[s].narrow.toUpperCase(),i)switch(t){case"N":case"NN":case"NNN":if(l===e)return a[s];break;case"NNNN":if(c===e)return a[s];break;case"NNNNN":if(u===e)return a[s];break}else if([c,l,u].indexOf(e)>=0)return a[s]}function _b(e,t){var i=e.since<=e.until?1:-1;return t===void 0?X(e.since).year():X(e.since).year()+(t-e.offset)*i}function gb(){var e,t,i,s=this.localeData().eras();for(e=0,t=s.length;e<t;++e)if(i=this.clone().startOf("day").valueOf(),s[e].since<=i&&i<=s[e].until||s[e].until<=i&&i<=s[e].since)return s[e].name;return""}function hb(){var e,t,i,s=this.localeData().eras();for(e=0,t=s.length;e<t;++e)if(i=this.clone().startOf("day").valueOf(),s[e].since<=i&&i<=s[e].until||s[e].until<=i&&i<=s[e].since)return s[e].narrow;return""}function pb(){var e,t,i,s=this.localeData().eras();for(e=0,t=s.length;e<t;++e)if(i=this.clone().startOf("day").valueOf(),s[e].since<=i&&i<=s[e].until||s[e].until<=i&&i<=s[e].since)return s[e].abbr;return""}function mb(){var e,t,i,s,n=this.localeData().eras();for(e=0,t=n.length;e<t;++e)if(i=n[e].since<=n[e].until?1:-1,s=this.clone().startOf("day").valueOf(),n[e].since<=s&&s<=n[e].until||n[e].until<=s&&s<=n[e].since)return(this.year()-X(n[e].since).year())*i+n[e].offset;return this.year()}function fb(e){return je(this,"_erasNameRegex")||$a.call(this),e?this._erasNameRegex:this._erasRegex}function wb(e){return je(this,"_erasAbbrRegex")||$a.call(this),e?this._erasAbbrRegex:this._erasRegex}function bb(e){return je(this,"_erasNarrowRegex")||$a.call(this),e?this._erasNarrowRegex:this._erasRegex}function xa(e,t){return t.erasAbbrRegex(e)}function vb(e,t){return t.erasNameRegex(e)}function yb(e,t){return t.erasNarrowRegex(e)}function jb(e,t){return t._eraYearOrdinalRegex||Ji}function $a(){var e=[],t=[],i=[],s=[],n,a,c,l,u,_=this.eras();for(n=0,a=_.length;n<a;++n)c=Jt(_[n].name),l=Jt(_[n].abbr),u=Jt(_[n].narrow),t.push(c),e.push(l),i.push(u),s.push(c),s.push(l),s.push(u);this._erasRegex=new RegExp("^("+s.join("|")+")","i"),this._erasNameRegex=new RegExp("^("+t.join("|")+")","i"),this._erasAbbrRegex=new RegExp("^("+e.join("|")+")","i"),this._erasNarrowRegex=new RegExp("^("+i.join("|")+")","i")}ae(0,["gg",2],0,function(){return this.weekYear()%100});ae(0,["GG",2],0,function(){return this.isoWeekYear()%100});function Xn(e,t){ae(0,[e,e.length],0,t)}Xn("gggg","weekYear");Xn("ggggg","weekYear");Xn("GGGG","isoWeekYear");Xn("GGGGG","isoWeekYear");ie("G",Yn);ie("g",Yn);ie("GG",Te,lt);ie("gg",Te,lt);ie("GGGG",ua,da);ie("gggg",ua,da);ie("GGGGG",Un,Vn);ie("ggggg",Un,Vn);Ns(["gggg","ggggg","GGGG","GGGGG"],function(e,t,i,s){t[s.substr(0,2)]=me(e)});Ns(["gg","GG"],function(e,t,i,s){t[s]=X.parseTwoDigitYear(e)});function xb(e){return hc.call(this,e,this.week(),this.weekday()+this.localeData()._week.dow,this.localeData()._week.dow,this.localeData()._week.doy)}function $b(e){return hc.call(this,e,this.isoWeek(),this.isoWeekday(),1,4)}function Sb(){return Kt(this.year(),1,4)}function kb(){return Kt(this.isoWeekYear(),1,4)}function qb(){var e=this.localeData()._week;return Kt(this.year(),e.dow,e.doy)}function Cb(){var e=this.localeData()._week;return Kt(this.weekYear(),e.dow,e.doy)}function hc(e,t,i,s,n){var a;return e==null?ks(this,s,n).year:(a=Kt(e,s,n),t>a&&(t=a),Pb.call(this,e,t,i,s,n))}function Pb(e,t,i,s,n){var a=Yl(e,t,i,s,n),c=Ss(a.year,0,a.dayOfYear);return this.year(c.getUTCFullYear()),this.month(c.getUTCMonth()),this.date(c.getUTCDate()),this}ae("Q",0,"Qo","quarter");ie("Q",Al);Se("Q",function(e,t){t[Yt]=(me(e)-1)*3});function Db(e){return e==null?Math.ceil((this.month()+1)/3):this.month((e-1)*3+this.month()%3)}ae("D",["DD",2],"Do","date");ie("D",Te,Ki);ie("DD",Te,lt);ie("Do",function(e,t){return e?t._dayOfMonthOrdinalParse||t._ordinalParse:t._dayOfMonthOrdinalParseLenient});Se(["D","DD"],qt);Se("Do",function(e,t){t[qt]=me(e.match(Te)[0])});var pc=Zi("Date",!0);ae("DDD",["DDDD",3],"DDDo","dayOfYear");ie("DDD",Bn);ie("DDDD",Ol);Se(["DDD","DDDD"],function(e,t,i){i._dayOfYear=me(e)});function Tb(e){var t=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return e==null?t:this.add(e-t,"d")}ae("m",["mm",2],0,"minute");ie("m",Te,_a);ie("mm",Te,lt);Se(["m","mm"],bt);var Mb=Zi("Minutes",!1);ae("s",["ss",2],0,"second");ie("s",Te,_a);ie("ss",Te,lt);Se(["s","ss"],Gt);var zb=Zi("Seconds",!1);ae("S",0,0,function(){return~~(this.millisecond()/100)});ae(0,["SS",2],0,function(){return~~(this.millisecond()/10)});ae(0,["SSS",3],0,"millisecond");ae(0,["SSSS",4],0,function(){return this.millisecond()*10});ae(0,["SSSSS",5],0,function(){return this.millisecond()*100});ae(0,["SSSSSS",6],0,function(){return this.millisecond()*1e3});ae(0,["SSSSSSS",7],0,function(){return this.millisecond()*1e4});ae(0,["SSSSSSSS",8],0,function(){return this.millisecond()*1e5});ae(0,["SSSSSSSSS",9],0,function(){return this.millisecond()*1e6});ie("S",Bn,Al);ie("SS",Bn,lt);ie("SSS",Bn,Ol);var ci,mc;for(ci="SSSS";ci.length<=9;ci+="S")ie(ci,Ji);function Ib(e,t){t[vi]=me(("0."+e)*1e3)}for(ci="S";ci.length<=9;ci+="S")Se(ci,Ib);mc=Zi("Milliseconds",!1);ae("z",0,0,"zoneAbbr");ae("zz",0,0,"zoneName");function Hb(){return this._isUTC?"UTC":""}function Ab(){return this._isUTC?"Coordinated Universal Time":""}var U=Ws.prototype;U.add=Cw;U.calendar=Hw;U.clone=Aw;U.diff=Fw;U.endOf=Qw;U.format=Yw;U.from=Gw;U.fromNow=Jw;U.to=Kw;U.toNow=Zw;U.get=Bm;U.invalidAt=lb;U.isAfter=Ow;U.isBefore=Lw;U.isBetween=Ww;U.isSame=Rw;U.isSameOrAfter=Nw;U.isSameOrBefore=Ew;U.isValid=ab;U.lang=cc;U.locale=lc;U.localeData=dc;U.max=aw;U.min=ow;U.parsingFlags=rb;U.set=Um;U.startOf=Xw;U.subtract=Pw;U.toArray=sb;U.toObject=nb;U.toDate=ib;U.toISOString=Bw;U.inspect=Uw;typeof Symbol<"u"&&Symbol.for!=null&&(U[Symbol.for("nodejs.util.inspect.custom")]=function(){return"Moment<"+this.format()+">"});U.toJSON=ob;U.toString=Vw;U.unix=tb;U.valueOf=eb;U.creationData=cb;U.eraName=gb;U.eraNarrow=hb;U.eraAbbr=pb;U.eraYear=mb;U.year=Rl;U.isLeapYear=Vm;U.weekYear=xb;U.isoWeekYear=$b;U.quarter=U.quarters=Db;U.month=Bl;U.daysInMonth=tf;U.week=U.weeks=df;U.isoWeek=U.isoWeeks=uf;U.weeksInYear=qb;U.weeksInWeekYear=Cb;U.isoWeeksInYear=Sb;U.isoWeeksInISOWeekYear=kb;U.date=pc;U.day=U.days=$f;U.weekday=Sf;U.isoWeekday=kf;U.dayOfYear=Tb;U.hour=U.hours=zf;U.minute=U.minutes=Mb;U.second=U.seconds=zb;U.millisecond=U.milliseconds=mc;U.utcOffset=pw;U.utc=fw;U.local=ww;U.parseZone=bw;U.hasAlignedHourOffset=vw;U.isDST=yw;U.isLocal=xw;U.isUtcOffset=$w;U.isUtc=nc;U.isUTC=nc;U.zoneAbbr=Hb;U.zoneName=Ab;U.dates=gt("dates accessor is deprecated. Use date instead.",pc);U.months=gt("months accessor is deprecated. Use month instead",Bl);U.years=gt("years accessor is deprecated. Use year instead",Rl);U.zone=gt("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",mw);U.isDSTShifted=gt("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",jw);function Ob(e){return De(e*1e3)}function Lb(){return De.apply(null,arguments).parseZone()}function fc(e){return e}var xe=ra.prototype;xe.calendar=jm;xe.longDateFormat=km;xe.invalidDate=Cm;xe.ordinal=Tm;xe.preparse=fc;xe.postformat=fc;xe.relativeTime=zm;xe.pastFuture=Im;xe.set=vm;xe.eras=db;xe.erasParse=ub;xe.erasConvertYear=_b;xe.erasAbbrRegex=wb;xe.erasNameRegex=fb;xe.erasNarrowRegex=bb;xe.months=Zm;xe.monthsShort=Xm;xe.monthsParse=ef;xe.monthsRegex=nf;xe.monthsShortRegex=sf;xe.week=af;xe.firstDayOfYear=cf;xe.firstDayOfWeek=lf;xe.weekdays=bf;xe.weekdaysMin=yf;xe.weekdaysShort=vf;xe.weekdaysParse=xf;xe.weekdaysRegex=qf;xe.weekdaysShortRegex=Cf;xe.weekdaysMinRegex=Pf;xe.isPM=Tf;xe.meridiem=If;function Hn(e,t,i,s){var n=Xt(),a=Dt().set(s,t);return n[i](a,e)}function wc(e,t,i){if(Zt(e)&&(t=e,e=void 0),e=e||"",t!=null)return Hn(e,t,i,"month");var s,n=[];for(s=0;s<12;s++)n[s]=Hn(e,s,i,"month");return n}function Sa(e,t,i,s){typeof e=="boolean"?(Zt(t)&&(i=t,t=void 0),t=t||""):(t=e,i=t,e=!1,Zt(t)&&(i=t,t=void 0),t=t||"");var n=Xt(),a=e?n._week.dow:0,c,l=[];if(i!=null)return Hn(t,(i+a)%7,s,"day");for(c=0;c<7;c++)l[c]=Hn(t,(c+a)%7,s,"day");return l}function Wb(e,t){return wc(e,t,"months")}function Rb(e,t){return wc(e,t,"monthsShort")}function Nb(e,t,i){return Sa(e,t,i,"weekdays")}function Eb(e,t,i){return Sa(e,t,i,"weekdaysShort")}function Fb(e,t,i){return Sa(e,t,i,"weekdaysMin")}gi("en",{eras:[{since:"0001-01-01",until:1/0,offset:1,name:"Anno Domini",narrow:"AD",abbr:"AD"},{since:"0000-12-31",until:-1/0,offset:1,name:"Before Christ",narrow:"BC",abbr:"BC"}],dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(e){var t=e%10,i=me(e%100/10)===1?"th":t===1?"st":t===2?"nd":t===3?"rd":"th";return e+i}});X.lang=gt("moment.lang is deprecated. Use moment.locale instead.",gi);X.langData=gt("moment.langData is deprecated. Use moment.localeData instead.",Xt);var Et=Math.abs;function Vb(){var e=this._data;return this._milliseconds=Et(this._milliseconds),this._days=Et(this._days),this._months=Et(this._months),e.milliseconds=Et(e.milliseconds),e.seconds=Et(e.seconds),e.minutes=Et(e.minutes),e.hours=Et(e.hours),e.months=Et(e.months),e.years=Et(e.years),this}function bc(e,t,i,s){var n=xt(t,i);return e._milliseconds+=s*n._milliseconds,e._days+=s*n._days,e._months+=s*n._months,e._bubble()}function Bb(e,t){return bc(this,e,t,1)}function Ub(e,t){return bc(this,e,t,-1)}function Vr(e){return e<0?Math.floor(e):Math.ceil(e)}function Yb(){var e=this._milliseconds,t=this._days,i=this._months,s=this._data,n,a,c,l,u;return e>=0&&t>=0&&i>=0||e<=0&&t<=0&&i<=0||(e+=Vr(Zo(i)+t)*864e5,t=0,i=0),s.milliseconds=e%1e3,n=ut(e/1e3),s.seconds=n%60,a=ut(n/60),s.minutes=a%60,c=ut(a/60),s.hours=c%24,t+=ut(c/24),u=ut(vc(t)),i+=u,t-=Vr(Zo(u)),l=ut(i/12),i%=12,s.days=t,s.months=i,s.years=l,this}function vc(e){return e*4800/146097}function Zo(e){return e*146097/4800}function Gb(e){if(!this.isValid())return NaN;var t,i,s=this._milliseconds;if(e=ht(e),e==="month"||e==="quarter"||e==="year")switch(t=this._days+s/864e5,i=this._months+vc(t),e){case"month":return i;case"quarter":return i/3;case"year":return i/12}else switch(t=this._days+Math.round(Zo(this._months)),e){case"week":return t/7+s/6048e5;case"day":return t+s/864e5;case"hour":return t*24+s/36e5;case"minute":return t*1440+s/6e4;case"second":return t*86400+s/1e3;case"millisecond":return Math.floor(t*864e5)+s;default:throw new Error("Unknown unit "+e)}}function Qt(e){return function(){return this.as(e)}}var yc=Qt("ms"),Jb=Qt("s"),Kb=Qt("m"),Zb=Qt("h"),Xb=Qt("d"),Qb=Qt("w"),ev=Qt("M"),tv=Qt("Q"),iv=Qt("y"),sv=yc;function nv(){return xt(this)}function ov(e){return e=ht(e),this.isValid()?this[e+"s"]():NaN}function $i(e){return function(){return this.isValid()?this._data[e]:NaN}}var av=$i("milliseconds"),rv=$i("seconds"),lv=$i("minutes"),cv=$i("hours"),dv=$i("days"),uv=$i("months"),_v=$i("years");function gv(){return ut(this.days()/7)}var Ut=Math.round,Fi={ss:44,s:45,m:45,h:22,d:26,w:null,M:11};function hv(e,t,i,s,n){return n.relativeTime(t||1,!!i,e,s)}function pv(e,t,i,s){var n=xt(e).abs(),a=Ut(n.as("s")),c=Ut(n.as("m")),l=Ut(n.as("h")),u=Ut(n.as("d")),_=Ut(n.as("M")),m=Ut(n.as("w")),p=Ut(n.as("y")),y=a<=i.ss&&["s",a]||a<i.s&&["ss",a]||c<=1&&["m"]||c<i.m&&["mm",c]||l<=1&&["h"]||l<i.h&&["hh",l]||u<=1&&["d"]||u<i.d&&["dd",u];return i.w!=null&&(y=y||m<=1&&["w"]||m<i.w&&["ww",m]),y=y||_<=1&&["M"]||_<i.M&&["MM",_]||p<=1&&["y"]||["yy",p],y[2]=t,y[3]=+e>0,y[4]=s,hv.apply(null,y)}function mv(e){return e===void 0?Ut:typeof e=="function"?(Ut=e,!0):!1}function fv(e,t){return Fi[e]===void 0?!1:t===void 0?Fi[e]:(Fi[e]=t,e==="s"&&(Fi.ss=t-1),!0)}function wv(e,t){if(!this.isValid())return this.localeData().invalidDate();var i=!1,s=Fi,n,a;return typeof e=="object"&&(t=e,e=!1),typeof e=="boolean"&&(i=e),typeof t=="object"&&(s=Object.assign({},Fi,t),t.s!=null&&t.ss==null&&(s.ss=t.s-1)),n=this.localeData(),a=pv(this,!i,s,n),i&&(a=n.pastFuture(+this,a)),n.postformat(a)}var Ao=Math.abs;function Li(e){return(e>0)-(e<0)||+e}function Qn(){if(!this.isValid())return this.localeData().invalidDate();var e=Ao(this._milliseconds)/1e3,t=Ao(this._days),i=Ao(this._months),s,n,a,c,l=this.asSeconds(),u,_,m,p;return l?(s=ut(e/60),n=ut(s/60),e%=60,s%=60,a=ut(i/12),i%=12,c=e?e.toFixed(3).replace(/\.?0+$/,""):"",u=l<0?"-":"",_=Li(this._months)!==Li(l)?"-":"",m=Li(this._days)!==Li(l)?"-":"",p=Li(this._milliseconds)!==Li(l)?"-":"",u+"P"+(a?_+a+"Y":"")+(i?_+i+"M":"")+(t?m+t+"D":"")+(n||s||e?"T":"")+(n?p+n+"H":"")+(s?p+s+"M":"")+(e?p+c+"S":"")):"P0D"}var be=Zn.prototype;be.isValid=uw;be.abs=Vb;be.add=Bb;be.subtract=Ub;be.as=Gb;be.asMilliseconds=yc;be.asSeconds=Jb;be.asMinutes=Kb;be.asHours=Zb;be.asDays=Xb;be.asWeeks=Qb;be.asMonths=ev;be.asQuarters=tv;be.asYears=iv;be.valueOf=sv;be._bubble=Yb;be.clone=nv;be.get=ov;be.milliseconds=av;be.seconds=rv;be.minutes=lv;be.hours=cv;be.days=dv;be.weeks=gv;be.months=uv;be.years=_v;be.humanize=wv;be.toISOString=Qn;be.toString=Qn;be.toJSON=Qn;be.locale=lc;be.localeData=dc;be.toIsoString=gt("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",Qn);be.lang=cc;ae("X",0,0,"unix");ae("x",0,0,"valueOf");ie("x",Yn);ie("X",Lm);Se("X",function(e,t,i){i._d=new Date(parseFloat(e)*1e3)});Se("x",function(e,t,i){i._d=new Date(me(e))});//! moment.js
X.version="2.30.1";wm(De);X.fn=U;X.min=rw;X.max=lw;X.now=cw;X.utc=Dt;X.unix=Ob;X.months=Wb;X.isDate=Ls;X.locale=gi;X.invalid=Fn;X.duration=xt;X.isMoment=yt;X.weekdays=Nb;X.parseZone=Lb;X.localeData=Xt;X.isDuration=jn;X.monthsShort=Rb;X.weekdaysMin=Fb;X.defineLocale=fa;X.updateLocale=Lf;X.locales=Wf;X.weekdaysShort=Eb;X.normalizeUnits=ht;X.relativeTimeRounding=mv;X.relativeTimeThreshold=fv;X.calendarFormat=Iw;X.prototype=U;X.HTML5_FMT={DATETIME_LOCAL:"YYYY-MM-DDTHH:mm",DATETIME_LOCAL_SECONDS:"YYYY-MM-DDTHH:mm:ss",DATETIME_LOCAL_MS:"YYYY-MM-DDTHH:mm:ss.SSS",DATE:"YYYY-MM-DD",TIME:"HH:mm",TIME_SECONDS:"HH:mm:ss",TIME_MS:"HH:mm:ss.SSS",WEEK:"GGGG-[W]WW",MONTH:"YYYY-MM"};function pt(e){throw new Error('Could not dynamically require "'+e+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var bv={exports:{}},$n={exports:{}},vv=$n.exports,Br;function $t(){return Br||(Br=1,function(e,t){(function(i,s){e.exports=s()})(vv,function(){var i;function s(){return i.apply(null,arguments)}function n(r){i=r}function a(r){return r instanceof Array||Object.prototype.toString.call(r)==="[object Array]"}function c(r){return r!=null&&Object.prototype.toString.call(r)==="[object Object]"}function l(r,d){return Object.prototype.hasOwnProperty.call(r,d)}function u(r){if(Object.getOwnPropertyNames)return Object.getOwnPropertyNames(r).length===0;var d;for(d in r)if(l(r,d))return!1;return!0}function _(r){return r===void 0}function m(r){return typeof r=="number"||Object.prototype.toString.call(r)==="[object Number]"}function p(r){return r instanceof Date||Object.prototype.toString.call(r)==="[object Date]"}function y(r,d){var g=[],h,v=r.length;for(h=0;h<v;++h)g.push(d(r[h],h));return g}function b(r,d){for(var g in d)l(d,g)&&(r[g]=d[g]);return l(d,"toString")&&(r.toString=d.toString),l(d,"valueOf")&&(r.valueOf=d.valueOf),r}function j(r,d,g,h){return Ja(r,d,g,h,!0).utc()}function T(){return{empty:!1,unusedTokens:[],unusedInput:[],overflow:-2,charsLeftOver:0,nullInput:!1,invalidEra:null,invalidMonth:null,invalidFormat:!1,userInvalidated:!1,iso:!1,parsedDateParts:[],era:null,meridiem:null,rfc2822:!1,weekdayMismatch:!1}}function x(r){return r._pf==null&&(r._pf=T()),r._pf}var A;Array.prototype.some?A=Array.prototype.some:A=function(r){var d=Object(this),g=d.length>>>0,h;for(h=0;h<g;h++)if(h in d&&r.call(this,d[h],h,d))return!0;return!1};function L(r){var d=null,g=!1,h=r._d&&!isNaN(r._d.getTime());if(h&&(d=x(r),g=A.call(d.parsedDateParts,function(v){return v!=null}),h=d.overflow<0&&!d.empty&&!d.invalidEra&&!d.invalidMonth&&!d.invalidWeekday&&!d.weekdayMismatch&&!d.nullInput&&!d.invalidFormat&&!d.userInvalidated&&(!d.meridiem||d.meridiem&&g),r._strict&&(h=h&&d.charsLeftOver===0&&d.unusedTokens.length===0&&d.bigHour===void 0)),Object.isFrozen==null||!Object.isFrozen(r))r._isValid=h;else return h;return r._isValid}function W(r){var d=j(NaN);return r!=null?b(x(d),r):x(d).userInvalidated=!0,d}var N=s.momentProperties=[],Y=!1;function H(r,d){var g,h,v,$=N.length;if(_(d._isAMomentObject)||(r._isAMomentObject=d._isAMomentObject),_(d._i)||(r._i=d._i),_(d._f)||(r._f=d._f),_(d._l)||(r._l=d._l),_(d._strict)||(r._strict=d._strict),_(d._tzm)||(r._tzm=d._tzm),_(d._isUTC)||(r._isUTC=d._isUTC),_(d._offset)||(r._offset=d._offset),_(d._pf)||(r._pf=x(d)),_(d._locale)||(r._locale=d._locale),$>0)for(g=0;g<$;g++)h=N[g],v=d[h],_(v)||(r[h]=v);return r}function R(r){H(this,r),this._d=new Date(r._d!=null?r._d.getTime():NaN),this.isValid()||(this._d=new Date(NaN)),Y===!1&&(Y=!0,s.updateOffset(this),Y=!1)}function G(r){return r instanceof R||r!=null&&r._isAMomentObject!=null}function J(r){s.suppressDeprecationWarnings===!1&&typeof console<"u"&&console.warn&&console.warn("Deprecation warning: "+r)}function P(r,d){var g=!0;return b(function(){if(s.deprecationHandler!=null&&s.deprecationHandler(null,r),g){var h=[],v,$,O,ee=arguments.length;for($=0;$<ee;$++){if(v="",typeof arguments[$]=="object"){v+=`
[`+$+"] ";for(O in arguments[0])l(arguments[0],O)&&(v+=O+": "+arguments[0][O]+", ");v=v.slice(0,-2)}else v=arguments[$];h.push(v)}J(r+`
Arguments: `+Array.prototype.slice.call(h).join("")+`
`+new Error().stack),g=!1}return d.apply(this,arguments)},d)}var oe={};function z(r,d){s.deprecationHandler!=null&&s.deprecationHandler(r,d),oe[r]||(J(d),oe[r]=!0)}s.suppressDeprecationWarnings=!1,s.deprecationHandler=null;function K(r){return typeof Function<"u"&&r instanceof Function||Object.prototype.toString.call(r)==="[object Function]"}function Z(r){var d,g;for(g in r)l(r,g)&&(d=r[g],K(d)?this[g]=d:this["_"+g]=d);this._config=r,this._dayOfMonthOrdinalParseLenient=new RegExp((this._dayOfMonthOrdinalParse.source||this._ordinalParse.source)+"|"+/\d{1,2}/.source)}function F(r,d){var g=b({},r),h;for(h in d)l(d,h)&&(c(r[h])&&c(d[h])?(g[h]={},b(g[h],r[h]),b(g[h],d[h])):d[h]!=null?g[h]=d[h]:delete g[h]);for(h in r)l(r,h)&&!l(d,h)&&c(r[h])&&(g[h]=b({},g[h]));return g}function Q(r){r!=null&&this.set(r)}var le;Object.keys?le=Object.keys:le=function(r){var d,g=[];for(d in r)l(r,d)&&g.push(d);return g};var ge={sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"};function ve(r,d,g){var h=this._calendar[r]||this._calendar.sameElse;return K(h)?h.call(d,g):h}function ce(r,d,g){var h=""+Math.abs(r),v=d-h.length,$=r>=0;return($?g?"+":"":"-")+Math.pow(10,Math.max(0,v)).toString().substr(1)+h}var se=/(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,C=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,M={},k={};function I(r,d,g,h){var v=h;typeof h=="string"&&(v=function(){return this[h]()}),r&&(k[r]=v),d&&(k[d[0]]=function(){return ce(v.apply(this,arguments),d[1],d[2])}),g&&(k[g]=function(){return this.localeData().ordinal(v.apply(this,arguments),r)})}function re(r){return r.match(/\[[\s\S]/)?r.replace(/^\[|\]$/g,""):r.replace(/\\/g,"")}function Je(r){var d=r.match(se),g,h;for(g=0,h=d.length;g<h;g++)k[d[g]]?d[g]=k[d[g]]:d[g]=re(d[g]);return function(v){var $="",O;for(O=0;O<h;O++)$+=K(d[O])?d[O].call(v,r):d[O];return $}}function he(r,d){return r.isValid()?(d=He(d,r.localeData()),M[d]=M[d]||Je(d),M[d](r)):r.localeData().invalidDate()}function He(r,d){var g=5;function h(v){return d.longDateFormat(v)||v}for(C.lastIndex=0;g>=0&&C.test(r);)r=r.replace(C,h),C.lastIndex=0,g-=1;return r}var Re={LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"};function Xi(r){var d=this._longDateFormat[r],g=this._longDateFormat[r.toUpperCase()];return d||!g?d:(this._longDateFormat[r]=g.match(se).map(function(h){return h==="MMMM"||h==="MM"||h==="DD"||h==="dddd"?h.slice(1):h}).join(""),this._longDateFormat[r])}var Mt="Invalid date";function ki(){return this._invalidDate}var Qi="%d",io=/\d{1,2}/;function qi(r){return this._ordinal.replace("%d",r)}var so={future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",w:"a week",ww:"%d weeks",M:"a month",MM:"%d months",y:"a year",yy:"%d years"};function no(r,d,g,h){var v=this._relativeTime[g];return K(v)?v(r,d,g,h):v.replace(/%d/i,r)}function Es(r,d){var g=this._relativeTime[r>0?"future":"past"];return K(g)?g(d):g.replace(/%s/i,d)}var Fs={D:"date",dates:"date",date:"date",d:"day",days:"day",day:"day",e:"weekday",weekdays:"weekday",weekday:"weekday",E:"isoWeekday",isoweekdays:"isoWeekday",isoweekday:"isoWeekday",DDD:"dayOfYear",dayofyears:"dayOfYear",dayofyear:"dayOfYear",h:"hour",hours:"hour",hour:"hour",ms:"millisecond",milliseconds:"millisecond",millisecond:"millisecond",m:"minute",minutes:"minute",minute:"minute",M:"month",months:"month",month:"month",Q:"quarter",quarters:"quarter",quarter:"quarter",s:"second",seconds:"second",second:"second",gg:"weekYear",weekyears:"weekYear",weekyear:"weekYear",GG:"isoWeekYear",isoweekyears:"isoWeekYear",isoweekyear:"isoWeekYear",w:"week",weeks:"week",week:"week",W:"isoWeek",isoweeks:"isoWeek",isoweek:"isoWeek",y:"year",years:"year",year:"year"};function tt(r){return typeof r=="string"?Fs[r]||Fs[r.toLowerCase()]:void 0}function es(r){var d={},g,h;for(h in r)l(r,h)&&(g=tt(h),g&&(d[g]=r[h]));return d}var Vs={date:9,day:11,weekday:11,isoWeekday:11,dayOfYear:4,hour:13,millisecond:16,minute:14,month:8,quarter:7,second:15,weekYear:1,isoWeekYear:1,week:5,isoWeek:5,year:1};function Ye(r){var d=[],g;for(g in r)l(r,g)&&d.push({unit:g,priority:Vs[g]});return d.sort(function(h,v){return h.priority-v.priority}),d}var pi=/\d/,Ue=/\d\d/,ts=/\d{3}/,Ci=/\d{4}/,ei=/[+-]?\d{6}/,Ce=/\d\d?/,Ta=/\d\d\d\d?/,Ma=/\d\d\d\d\d\d?/,Bs=/\d{1,3}/,oo=/\d{1,4}/,Us=/[+-]?\d{1,6}/,Pi=/\d+/,Ys=/[+-]?\d+/,Gc=/Z|[+-]\d\d:?\d\d/gi,Gs=/Z|[+-]\d\d(?::?\d\d)?/gi,Jc=/[+-]?\d+(\.\d{1,3})?/,is=/[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFF07\uFF10-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i,Di=/^[1-9]\d?/,ao=/^([1-9]\d|\d)/,Js;Js={};function te(r,d,g){Js[r]=K(d)?d:function(h,v){return h&&g?g:d}}function Kc(r,d){return l(Js,r)?Js[r](d._strict,d._locale):new RegExp(Zc(r))}function Zc(r){return zt(r.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(d,g,h,v,$){return g||h||v||$}))}function zt(r){return r.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}function ct(r){return r<0?Math.ceil(r)||0:Math.floor(r)}function pe(r){var d=+r,g=0;return d!==0&&isFinite(d)&&(g=ct(d)),g}var ro={};function $e(r,d){var g,h=d,v;for(typeof r=="string"&&(r=[r]),m(d)&&(h=function($,O){O[d]=pe($)}),v=r.length,g=0;g<v;g++)ro[r[g]]=h}function ss(r,d){$e(r,function(g,h,v,$){v._w=v._w||{},d(g,v._w,v,$)})}function Xc(r,d,g){d!=null&&l(ro,r)&&ro[r](d,g._a,g,r)}function Ks(r){return r%4===0&&r%100!==0||r%400===0}var Ke=0,It=1,St=2,Fe=3,mt=4,Ht=5,mi=6,Qc=7,ed=8;I("Y",0,0,function(){var r=this.year();return r<=9999?ce(r,4):"+"+r}),I(0,["YY",2],0,function(){return this.year()%100}),I(0,["YYYY",4],0,"year"),I(0,["YYYYY",5],0,"year"),I(0,["YYYYYY",6,!0],0,"year"),te("Y",Ys),te("YY",Ce,Ue),te("YYYY",oo,Ci),te("YYYYY",Us,ei),te("YYYYYY",Us,ei),$e(["YYYYY","YYYYYY"],Ke),$e("YYYY",function(r,d){d[Ke]=r.length===2?s.parseTwoDigitYear(r):pe(r)}),$e("YY",function(r,d){d[Ke]=s.parseTwoDigitYear(r)}),$e("Y",function(r,d){d[Ke]=parseInt(r,10)});function ns(r){return Ks(r)?366:365}s.parseTwoDigitYear=function(r){return pe(r)+(pe(r)>68?1900:2e3)};var za=Ti("FullYear",!0);function td(){return Ks(this.year())}function Ti(r,d){return function(g){return g!=null?(Ia(this,r,g),s.updateOffset(this,d),this):os(this,r)}}function os(r,d){if(!r.isValid())return NaN;var g=r._d,h=r._isUTC;switch(d){case"Milliseconds":return h?g.getUTCMilliseconds():g.getMilliseconds();case"Seconds":return h?g.getUTCSeconds():g.getSeconds();case"Minutes":return h?g.getUTCMinutes():g.getMinutes();case"Hours":return h?g.getUTCHours():g.getHours();case"Date":return h?g.getUTCDate():g.getDate();case"Day":return h?g.getUTCDay():g.getDay();case"Month":return h?g.getUTCMonth():g.getMonth();case"FullYear":return h?g.getUTCFullYear():g.getFullYear();default:return NaN}}function Ia(r,d,g){var h,v,$,O,ee;if(!(!r.isValid()||isNaN(g))){switch(h=r._d,v=r._isUTC,d){case"Milliseconds":return void(v?h.setUTCMilliseconds(g):h.setMilliseconds(g));case"Seconds":return void(v?h.setUTCSeconds(g):h.setSeconds(g));case"Minutes":return void(v?h.setUTCMinutes(g):h.setMinutes(g));case"Hours":return void(v?h.setUTCHours(g):h.setHours(g));case"Date":return void(v?h.setUTCDate(g):h.setDate(g));case"FullYear":break;default:return}$=g,O=r.month(),ee=r.date(),ee=ee===29&&O===1&&!Ks($)?28:ee,v?h.setUTCFullYear($,O,ee):h.setFullYear($,O,ee)}}function id(r){return r=tt(r),K(this[r])?this[r]():this}function sd(r,d){if(typeof r=="object"){r=es(r);var g=Ye(r),h,v=g.length;for(h=0;h<v;h++)this[g[h].unit](r[g[h].unit])}else if(r=tt(r),K(this[r]))return this[r](d);return this}function nd(r,d){return(r%d+d)%d}var Le;Array.prototype.indexOf?Le=Array.prototype.indexOf:Le=function(r){var d;for(d=0;d<this.length;++d)if(this[d]===r)return d;return-1};function lo(r,d){if(isNaN(r)||isNaN(d))return NaN;var g=nd(d,12);return r+=(d-g)/12,g===1?Ks(r)?29:28:31-g%7%2}I("M",["MM",2],"Mo",function(){return this.month()+1}),I("MMM",0,0,function(r){return this.localeData().monthsShort(this,r)}),I("MMMM",0,0,function(r){return this.localeData().months(this,r)}),te("M",Ce,Di),te("MM",Ce,Ue),te("MMM",function(r,d){return d.monthsShortRegex(r)}),te("MMMM",function(r,d){return d.monthsRegex(r)}),$e(["M","MM"],function(r,d){d[It]=pe(r)-1}),$e(["MMM","MMMM"],function(r,d,g,h){var v=g._locale.monthsParse(r,h,g._strict);v!=null?d[It]=v:x(g).invalidMonth=r});var od="January_February_March_April_May_June_July_August_September_October_November_December".split("_"),Ha="Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),Aa=/D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/,ad=is,rd=is;function ld(r,d){return r?a(this._months)?this._months[r.month()]:this._months[(this._months.isFormat||Aa).test(d)?"format":"standalone"][r.month()]:a(this._months)?this._months:this._months.standalone}function cd(r,d){return r?a(this._monthsShort)?this._monthsShort[r.month()]:this._monthsShort[Aa.test(d)?"format":"standalone"][r.month()]:a(this._monthsShort)?this._monthsShort:this._monthsShort.standalone}function dd(r,d,g){var h,v,$,O=r.toLocaleLowerCase();if(!this._monthsParse)for(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[],h=0;h<12;++h)$=j([2e3,h]),this._shortMonthsParse[h]=this.monthsShort($,"").toLocaleLowerCase(),this._longMonthsParse[h]=this.months($,"").toLocaleLowerCase();return g?d==="MMM"?(v=Le.call(this._shortMonthsParse,O),v!==-1?v:null):(v=Le.call(this._longMonthsParse,O),v!==-1?v:null):d==="MMM"?(v=Le.call(this._shortMonthsParse,O),v!==-1?v:(v=Le.call(this._longMonthsParse,O),v!==-1?v:null)):(v=Le.call(this._longMonthsParse,O),v!==-1?v:(v=Le.call(this._shortMonthsParse,O),v!==-1?v:null))}function ud(r,d,g){var h,v,$;if(this._monthsParseExact)return dd.call(this,r,d,g);for(this._monthsParse||(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[]),h=0;h<12;h++){if(v=j([2e3,h]),g&&!this._longMonthsParse[h]&&(this._longMonthsParse[h]=new RegExp("^"+this.months(v,"").replace(".","")+"$","i"),this._shortMonthsParse[h]=new RegExp("^"+this.monthsShort(v,"").replace(".","")+"$","i")),!g&&!this._monthsParse[h]&&($="^"+this.months(v,"")+"|^"+this.monthsShort(v,""),this._monthsParse[h]=new RegExp($.replace(".",""),"i")),g&&d==="MMMM"&&this._longMonthsParse[h].test(r))return h;if(g&&d==="MMM"&&this._shortMonthsParse[h].test(r))return h;if(!g&&this._monthsParse[h].test(r))return h}}function Oa(r,d){if(!r.isValid())return r;if(typeof d=="string"){if(/^\d+$/.test(d))d=pe(d);else if(d=r.localeData().monthsParse(d),!m(d))return r}var g=d,h=r.date();return h=h<29?h:Math.min(h,lo(r.year(),g)),r._isUTC?r._d.setUTCMonth(g,h):r._d.setMonth(g,h),r}function La(r){return r!=null?(Oa(this,r),s.updateOffset(this,!0),this):os(this,"Month")}function _d(){return lo(this.year(),this.month())}function gd(r){return this._monthsParseExact?(l(this,"_monthsRegex")||Wa.call(this),r?this._monthsShortStrictRegex:this._monthsShortRegex):(l(this,"_monthsShortRegex")||(this._monthsShortRegex=ad),this._monthsShortStrictRegex&&r?this._monthsShortStrictRegex:this._monthsShortRegex)}function hd(r){return this._monthsParseExact?(l(this,"_monthsRegex")||Wa.call(this),r?this._monthsStrictRegex:this._monthsRegex):(l(this,"_monthsRegex")||(this._monthsRegex=rd),this._monthsStrictRegex&&r?this._monthsStrictRegex:this._monthsRegex)}function Wa(){function r(de,fe){return fe.length-de.length}var d=[],g=[],h=[],v,$,O,ee;for(v=0;v<12;v++)$=j([2e3,v]),O=zt(this.monthsShort($,"")),ee=zt(this.months($,"")),d.push(O),g.push(ee),h.push(ee),h.push(O);d.sort(r),g.sort(r),h.sort(r),this._monthsRegex=new RegExp("^("+h.join("|")+")","i"),this._monthsShortRegex=this._monthsRegex,this._monthsStrictRegex=new RegExp("^("+g.join("|")+")","i"),this._monthsShortStrictRegex=new RegExp("^("+d.join("|")+")","i")}function pd(r,d,g,h,v,$,O){var ee;return r<100&&r>=0?(ee=new Date(r+400,d,g,h,v,$,O),isFinite(ee.getFullYear())&&ee.setFullYear(r)):ee=new Date(r,d,g,h,v,$,O),ee}function as(r){var d,g;return r<100&&r>=0?(g=Array.prototype.slice.call(arguments),g[0]=r+400,d=new Date(Date.UTC.apply(null,g)),isFinite(d.getUTCFullYear())&&d.setUTCFullYear(r)):d=new Date(Date.UTC.apply(null,arguments)),d}function Zs(r,d,g){var h=7+d-g,v=(7+as(r,0,h).getUTCDay()-d)%7;return-v+h-1}function Ra(r,d,g,h,v){var $=(7+g-h)%7,O=Zs(r,h,v),ee=1+7*(d-1)+$+O,de,fe;return ee<=0?(de=r-1,fe=ns(de)+ee):ee>ns(r)?(de=r+1,fe=ee-ns(r)):(de=r,fe=ee),{year:de,dayOfYear:fe}}function rs(r,d,g){var h=Zs(r.year(),d,g),v=Math.floor((r.dayOfYear()-h-1)/7)+1,$,O;return v<1?(O=r.year()-1,$=v+At(O,d,g)):v>At(r.year(),d,g)?($=v-At(r.year(),d,g),O=r.year()+1):(O=r.year(),$=v),{week:$,year:O}}function At(r,d,g){var h=Zs(r,d,g),v=Zs(r+1,d,g);return(ns(r)-h+v)/7}I("w",["ww",2],"wo","week"),I("W",["WW",2],"Wo","isoWeek"),te("w",Ce,Di),te("ww",Ce,Ue),te("W",Ce,Di),te("WW",Ce,Ue),ss(["w","ww","W","WW"],function(r,d,g,h){d[h.substr(0,1)]=pe(r)});function md(r){return rs(r,this._week.dow,this._week.doy).week}var fd={dow:0,doy:6};function wd(){return this._week.dow}function bd(){return this._week.doy}function vd(r){var d=this.localeData().week(this);return r==null?d:this.add((r-d)*7,"d")}function yd(r){var d=rs(this,1,4).week;return r==null?d:this.add((r-d)*7,"d")}I("d",0,"do","day"),I("dd",0,0,function(r){return this.localeData().weekdaysMin(this,r)}),I("ddd",0,0,function(r){return this.localeData().weekdaysShort(this,r)}),I("dddd",0,0,function(r){return this.localeData().weekdays(this,r)}),I("e",0,0,"weekday"),I("E",0,0,"isoWeekday"),te("d",Ce),te("e",Ce),te("E",Ce),te("dd",function(r,d){return d.weekdaysMinRegex(r)}),te("ddd",function(r,d){return d.weekdaysShortRegex(r)}),te("dddd",function(r,d){return d.weekdaysRegex(r)}),ss(["dd","ddd","dddd"],function(r,d,g,h){var v=g._locale.weekdaysParse(r,h,g._strict);v!=null?d.d=v:x(g).invalidWeekday=r}),ss(["d","e","E"],function(r,d,g,h){d[h]=pe(r)});function jd(r,d){return typeof r!="string"?r:isNaN(r)?(r=d.weekdaysParse(r),typeof r=="number"?r:null):parseInt(r,10)}function xd(r,d){return typeof r=="string"?d.weekdaysParse(r)%7||7:isNaN(r)?null:r}function co(r,d){return r.slice(d,7).concat(r.slice(0,d))}var $d="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),Na="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),Sd="Su_Mo_Tu_We_Th_Fr_Sa".split("_"),kd=is,qd=is,Cd=is;function Pd(r,d){var g=a(this._weekdays)?this._weekdays:this._weekdays[r&&r!==!0&&this._weekdays.isFormat.test(d)?"format":"standalone"];return r===!0?co(g,this._week.dow):r?g[r.day()]:g}function Dd(r){return r===!0?co(this._weekdaysShort,this._week.dow):r?this._weekdaysShort[r.day()]:this._weekdaysShort}function Td(r){return r===!0?co(this._weekdaysMin,this._week.dow):r?this._weekdaysMin[r.day()]:this._weekdaysMin}function Md(r,d,g){var h,v,$,O=r.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],h=0;h<7;++h)$=j([2e3,1]).day(h),this._minWeekdaysParse[h]=this.weekdaysMin($,"").toLocaleLowerCase(),this._shortWeekdaysParse[h]=this.weekdaysShort($,"").toLocaleLowerCase(),this._weekdaysParse[h]=this.weekdays($,"").toLocaleLowerCase();return g?d==="dddd"?(v=Le.call(this._weekdaysParse,O),v!==-1?v:null):d==="ddd"?(v=Le.call(this._shortWeekdaysParse,O),v!==-1?v:null):(v=Le.call(this._minWeekdaysParse,O),v!==-1?v:null):d==="dddd"?(v=Le.call(this._weekdaysParse,O),v!==-1||(v=Le.call(this._shortWeekdaysParse,O),v!==-1)?v:(v=Le.call(this._minWeekdaysParse,O),v!==-1?v:null)):d==="ddd"?(v=Le.call(this._shortWeekdaysParse,O),v!==-1||(v=Le.call(this._weekdaysParse,O),v!==-1)?v:(v=Le.call(this._minWeekdaysParse,O),v!==-1?v:null)):(v=Le.call(this._minWeekdaysParse,O),v!==-1||(v=Le.call(this._weekdaysParse,O),v!==-1)?v:(v=Le.call(this._shortWeekdaysParse,O),v!==-1?v:null))}function zd(r,d,g){var h,v,$;if(this._weekdaysParseExact)return Md.call(this,r,d,g);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),h=0;h<7;h++){if(v=j([2e3,1]).day(h),g&&!this._fullWeekdaysParse[h]&&(this._fullWeekdaysParse[h]=new RegExp("^"+this.weekdays(v,"").replace(".","\\.?")+"$","i"),this._shortWeekdaysParse[h]=new RegExp("^"+this.weekdaysShort(v,"").replace(".","\\.?")+"$","i"),this._minWeekdaysParse[h]=new RegExp("^"+this.weekdaysMin(v,"").replace(".","\\.?")+"$","i")),this._weekdaysParse[h]||($="^"+this.weekdays(v,"")+"|^"+this.weekdaysShort(v,"")+"|^"+this.weekdaysMin(v,""),this._weekdaysParse[h]=new RegExp($.replace(".",""),"i")),g&&d==="dddd"&&this._fullWeekdaysParse[h].test(r))return h;if(g&&d==="ddd"&&this._shortWeekdaysParse[h].test(r))return h;if(g&&d==="dd"&&this._minWeekdaysParse[h].test(r))return h;if(!g&&this._weekdaysParse[h].test(r))return h}}function Id(r){if(!this.isValid())return r!=null?this:NaN;var d=os(this,"Day");return r!=null?(r=jd(r,this.localeData()),this.add(r-d,"d")):d}function Hd(r){if(!this.isValid())return r!=null?this:NaN;var d=(this.day()+7-this.localeData()._week.dow)%7;return r==null?d:this.add(r-d,"d")}function Ad(r){if(!this.isValid())return r!=null?this:NaN;if(r!=null){var d=xd(r,this.localeData());return this.day(this.day()%7?d:d-7)}else return this.day()||7}function Od(r){return this._weekdaysParseExact?(l(this,"_weekdaysRegex")||uo.call(this),r?this._weekdaysStrictRegex:this._weekdaysRegex):(l(this,"_weekdaysRegex")||(this._weekdaysRegex=kd),this._weekdaysStrictRegex&&r?this._weekdaysStrictRegex:this._weekdaysRegex)}function Ld(r){return this._weekdaysParseExact?(l(this,"_weekdaysRegex")||uo.call(this),r?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(l(this,"_weekdaysShortRegex")||(this._weekdaysShortRegex=qd),this._weekdaysShortStrictRegex&&r?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)}function Wd(r){return this._weekdaysParseExact?(l(this,"_weekdaysRegex")||uo.call(this),r?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(l(this,"_weekdaysMinRegex")||(this._weekdaysMinRegex=Cd),this._weekdaysMinStrictRegex&&r?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)}function uo(){function r(Qe,Nt){return Nt.length-Qe.length}var d=[],g=[],h=[],v=[],$,O,ee,de,fe;for($=0;$<7;$++)O=j([2e3,1]).day($),ee=zt(this.weekdaysMin(O,"")),de=zt(this.weekdaysShort(O,"")),fe=zt(this.weekdays(O,"")),d.push(ee),g.push(de),h.push(fe),v.push(ee),v.push(de),v.push(fe);d.sort(r),g.sort(r),h.sort(r),v.sort(r),this._weekdaysRegex=new RegExp("^("+v.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+h.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+g.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+d.join("|")+")","i")}function _o(){return this.hours()%12||12}function Rd(){return this.hours()||24}I("H",["HH",2],0,"hour"),I("h",["hh",2],0,_o),I("k",["kk",2],0,Rd),I("hmm",0,0,function(){return""+_o.apply(this)+ce(this.minutes(),2)}),I("hmmss",0,0,function(){return""+_o.apply(this)+ce(this.minutes(),2)+ce(this.seconds(),2)}),I("Hmm",0,0,function(){return""+this.hours()+ce(this.minutes(),2)}),I("Hmmss",0,0,function(){return""+this.hours()+ce(this.minutes(),2)+ce(this.seconds(),2)});function Ea(r,d){I(r,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),d)})}Ea("a",!0),Ea("A",!1);function Fa(r,d){return d._meridiemParse}te("a",Fa),te("A",Fa),te("H",Ce,ao),te("h",Ce,Di),te("k",Ce,Di),te("HH",Ce,Ue),te("hh",Ce,Ue),te("kk",Ce,Ue),te("hmm",Ta),te("hmmss",Ma),te("Hmm",Ta),te("Hmmss",Ma),$e(["H","HH"],Fe),$e(["k","kk"],function(r,d,g){var h=pe(r);d[Fe]=h===24?0:h}),$e(["a","A"],function(r,d,g){g._isPm=g._locale.isPM(r),g._meridiem=r}),$e(["h","hh"],function(r,d,g){d[Fe]=pe(r),x(g).bigHour=!0}),$e("hmm",function(r,d,g){var h=r.length-2;d[Fe]=pe(r.substr(0,h)),d[mt]=pe(r.substr(h)),x(g).bigHour=!0}),$e("hmmss",function(r,d,g){var h=r.length-4,v=r.length-2;d[Fe]=pe(r.substr(0,h)),d[mt]=pe(r.substr(h,2)),d[Ht]=pe(r.substr(v)),x(g).bigHour=!0}),$e("Hmm",function(r,d,g){var h=r.length-2;d[Fe]=pe(r.substr(0,h)),d[mt]=pe(r.substr(h))}),$e("Hmmss",function(r,d,g){var h=r.length-4,v=r.length-2;d[Fe]=pe(r.substr(0,h)),d[mt]=pe(r.substr(h,2)),d[Ht]=pe(r.substr(v))});function Nd(r){return(r+"").toLowerCase().charAt(0)==="p"}var Ed=/[ap]\.?m?\.?/i,Fd=Ti("Hours",!0);function Vd(r,d,g){return r>11?g?"pm":"PM":g?"am":"AM"}var Va={calendar:ge,longDateFormat:Re,invalidDate:Mt,ordinal:Qi,dayOfMonthOrdinalParse:io,relativeTime:so,months:od,monthsShort:Ha,week:fd,weekdays:$d,weekdaysMin:Sd,weekdaysShort:Na,meridiemParse:Ed},Me={},ls={},cs;function Bd(r,d){var g,h=Math.min(r.length,d.length);for(g=0;g<h;g+=1)if(r[g]!==d[g])return g;return h}function Ba(r){return r&&r.toLowerCase().replace("_","-")}function Ud(r){for(var d=0,g,h,v,$;d<r.length;){for($=Ba(r[d]).split("-"),g=$.length,h=Ba(r[d+1]),h=h?h.split("-"):null;g>0;){if(v=Xs($.slice(0,g).join("-")),v)return v;if(h&&h.length>=g&&Bd($,h)>=g-1)break;g--}d++}return cs}function Yd(r){return!!(r&&r.match("^[^/\\\\]*$"))}function Xs(r){var d=null,g;if(Me[r]===void 0&&e&&e.exports&&Yd(r))try{d=cs._abbr,g=pt,g("./locale/"+r),ti(d)}catch{Me[r]=null}return Me[r]}function ti(r,d){var g;return r&&(_(d)?g=Ot(r):g=go(r,d),g?cs=g:typeof console<"u"&&console.warn&&console.warn("Locale "+r+" not found. Did you forget to load it?")),cs._abbr}function go(r,d){if(d!==null){var g,h=Va;if(d.abbr=r,Me[r]!=null)z("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."),h=Me[r]._config;else if(d.parentLocale!=null)if(Me[d.parentLocale]!=null)h=Me[d.parentLocale]._config;else if(g=Xs(d.parentLocale),g!=null)h=g._config;else return ls[d.parentLocale]||(ls[d.parentLocale]=[]),ls[d.parentLocale].push({name:r,config:d}),null;return Me[r]=new Q(F(h,d)),ls[r]&&ls[r].forEach(function(v){go(v.name,v.config)}),ti(r),Me[r]}else return delete Me[r],null}function Gd(r,d){if(d!=null){var g,h,v=Va;Me[r]!=null&&Me[r].parentLocale!=null?Me[r].set(F(Me[r]._config,d)):(h=Xs(r),h!=null&&(v=h._config),d=F(v,d),h==null&&(d.abbr=r),g=new Q(d),g.parentLocale=Me[r],Me[r]=g),ti(r)}else Me[r]!=null&&(Me[r].parentLocale!=null?(Me[r]=Me[r].parentLocale,r===ti()&&ti(r)):Me[r]!=null&&delete Me[r]);return Me[r]}function Ot(r){var d;if(r&&r._locale&&r._locale._abbr&&(r=r._locale._abbr),!r)return cs;if(!a(r)){if(d=Xs(r),d)return d;r=[r]}return Ud(r)}function Jd(){return le(Me)}function ho(r){var d,g=r._a;return g&&x(r).overflow===-2&&(d=g[It]<0||g[It]>11?It:g[St]<1||g[St]>lo(g[Ke],g[It])?St:g[Fe]<0||g[Fe]>24||g[Fe]===24&&(g[mt]!==0||g[Ht]!==0||g[mi]!==0)?Fe:g[mt]<0||g[mt]>59?mt:g[Ht]<0||g[Ht]>59?Ht:g[mi]<0||g[mi]>999?mi:-1,x(r)._overflowDayOfYear&&(d<Ke||d>St)&&(d=St),x(r)._overflowWeeks&&d===-1&&(d=Qc),x(r)._overflowWeekday&&d===-1&&(d=ed),x(r).overflow=d),r}var Kd=/^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/,Zd=/^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d|))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/,Xd=/Z|[+-]\d\d(?::?\d\d)?/,Qs=[["YYYYYY-MM-DD",/[+-]\d{6}-\d\d-\d\d/],["YYYY-MM-DD",/\d{4}-\d\d-\d\d/],["GGGG-[W]WW-E",/\d{4}-W\d\d-\d/],["GGGG-[W]WW",/\d{4}-W\d\d/,!1],["YYYY-DDD",/\d{4}-\d{3}/],["YYYY-MM",/\d{4}-\d\d/,!1],["YYYYYYMMDD",/[+-]\d{10}/],["YYYYMMDD",/\d{8}/],["GGGG[W]WWE",/\d{4}W\d{3}/],["GGGG[W]WW",/\d{4}W\d{2}/,!1],["YYYYDDD",/\d{7}/],["YYYYMM",/\d{6}/,!1],["YYYY",/\d{4}/,!1]],po=[["HH:mm:ss.SSSS",/\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss,SSSS",/\d\d:\d\d:\d\d,\d+/],["HH:mm:ss",/\d\d:\d\d:\d\d/],["HH:mm",/\d\d:\d\d/],["HHmmss.SSSS",/\d\d\d\d\d\d\.\d+/],["HHmmss,SSSS",/\d\d\d\d\d\d,\d+/],["HHmmss",/\d\d\d\d\d\d/],["HHmm",/\d\d\d\d/],["HH",/\d\d/]],Qd=/^\/?Date\((-?\d+)/i,eu=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\d{4}))$/,tu={UT:0,GMT:0,EDT:-4*60,EST:-5*60,CDT:-5*60,CST:-6*60,MDT:-6*60,MST:-7*60,PDT:-7*60,PST:-8*60};function Ua(r){var d,g,h=r._i,v=Kd.exec(h)||Zd.exec(h),$,O,ee,de,fe=Qs.length,Qe=po.length;if(v){for(x(r).iso=!0,d=0,g=fe;d<g;d++)if(Qs[d][1].exec(v[1])){O=Qs[d][0],$=Qs[d][2]!==!1;break}if(O==null){r._isValid=!1;return}if(v[3]){for(d=0,g=Qe;d<g;d++)if(po[d][1].exec(v[3])){ee=(v[2]||" ")+po[d][0];break}if(ee==null){r._isValid=!1;return}}if(!$&&ee!=null){r._isValid=!1;return}if(v[4])if(Xd.exec(v[4]))de="Z";else{r._isValid=!1;return}r._f=O+(ee||"")+(de||""),fo(r)}else r._isValid=!1}function iu(r,d,g,h,v,$){var O=[su(r),Ha.indexOf(d),parseInt(g,10),parseInt(h,10),parseInt(v,10)];return $&&O.push(parseInt($,10)),O}function su(r){var d=parseInt(r,10);return d<=49?2e3+d:d<=999?1900+d:d}function nu(r){return r.replace(/\([^()]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").replace(/^\s\s*/,"").replace(/\s\s*$/,"")}function ou(r,d,g){if(r){var h=Na.indexOf(r),v=new Date(d[0],d[1],d[2]).getDay();if(h!==v)return x(g).weekdayMismatch=!0,g._isValid=!1,!1}return!0}function au(r,d,g){if(r)return tu[r];if(d)return 0;var h=parseInt(g,10),v=h%100,$=(h-v)/100;return $*60+v}function Ya(r){var d=eu.exec(nu(r._i)),g;if(d){if(g=iu(d[4],d[3],d[2],d[5],d[6],d[7]),!ou(d[1],g,r))return;r._a=g,r._tzm=au(d[8],d[9],d[10]),r._d=as.apply(null,r._a),r._d.setUTCMinutes(r._d.getUTCMinutes()-r._tzm),x(r).rfc2822=!0}else r._isValid=!1}function ru(r){var d=Qd.exec(r._i);if(d!==null){r._d=new Date(+d[1]);return}if(Ua(r),r._isValid===!1)delete r._isValid;else return;if(Ya(r),r._isValid===!1)delete r._isValid;else return;r._strict?r._isValid=!1:s.createFromInputFallback(r)}s.createFromInputFallback=P("value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.",function(r){r._d=new Date(r._i+(r._useUTC?" UTC":""))});function Mi(r,d,g){return r??d??g}function lu(r){var d=new Date(s.now());return r._useUTC?[d.getUTCFullYear(),d.getUTCMonth(),d.getUTCDate()]:[d.getFullYear(),d.getMonth(),d.getDate()]}function mo(r){var d,g,h=[],v,$,O;if(!r._d){for(v=lu(r),r._w&&r._a[St]==null&&r._a[It]==null&&cu(r),r._dayOfYear!=null&&(O=Mi(r._a[Ke],v[Ke]),(r._dayOfYear>ns(O)||r._dayOfYear===0)&&(x(r)._overflowDayOfYear=!0),g=as(O,0,r._dayOfYear),r._a[It]=g.getUTCMonth(),r._a[St]=g.getUTCDate()),d=0;d<3&&r._a[d]==null;++d)r._a[d]=h[d]=v[d];for(;d<7;d++)r._a[d]=h[d]=r._a[d]==null?d===2?1:0:r._a[d];r._a[Fe]===24&&r._a[mt]===0&&r._a[Ht]===0&&r._a[mi]===0&&(r._nextDay=!0,r._a[Fe]=0),r._d=(r._useUTC?as:pd).apply(null,h),$=r._useUTC?r._d.getUTCDay():r._d.getDay(),r._tzm!=null&&r._d.setUTCMinutes(r._d.getUTCMinutes()-r._tzm),r._nextDay&&(r._a[Fe]=24),r._w&&typeof r._w.d<"u"&&r._w.d!==$&&(x(r).weekdayMismatch=!0)}}function cu(r){var d,g,h,v,$,O,ee,de,fe;d=r._w,d.GG!=null||d.W!=null||d.E!=null?($=1,O=4,g=Mi(d.GG,r._a[Ke],rs(Pe(),1,4).year),h=Mi(d.W,1),v=Mi(d.E,1),(v<1||v>7)&&(de=!0)):($=r._locale._week.dow,O=r._locale._week.doy,fe=rs(Pe(),$,O),g=Mi(d.gg,r._a[Ke],fe.year),h=Mi(d.w,fe.week),d.d!=null?(v=d.d,(v<0||v>6)&&(de=!0)):d.e!=null?(v=d.e+$,(d.e<0||d.e>6)&&(de=!0)):v=$),h<1||h>At(g,$,O)?x(r)._overflowWeeks=!0:de!=null?x(r)._overflowWeekday=!0:(ee=Ra(g,h,v,$,O),r._a[Ke]=ee.year,r._dayOfYear=ee.dayOfYear)}s.ISO_8601=function(){},s.RFC_2822=function(){};function fo(r){if(r._f===s.ISO_8601){Ua(r);return}if(r._f===s.RFC_2822){Ya(r);return}r._a=[],x(r).empty=!0;var d=""+r._i,g,h,v,$,O,ee=d.length,de=0,fe,Qe;for(v=He(r._f,r._locale).match(se)||[],Qe=v.length,g=0;g<Qe;g++)$=v[g],h=(d.match(Kc($,r))||[])[0],h&&(O=d.substr(0,d.indexOf(h)),O.length>0&&x(r).unusedInput.push(O),d=d.slice(d.indexOf(h)+h.length),de+=h.length),k[$]?(h?x(r).empty=!1:x(r).unusedTokens.push($),Xc($,h,r)):r._strict&&!h&&x(r).unusedTokens.push($);x(r).charsLeftOver=ee-de,d.length>0&&x(r).unusedInput.push(d),r._a[Fe]<=12&&x(r).bigHour===!0&&r._a[Fe]>0&&(x(r).bigHour=void 0),x(r).parsedDateParts=r._a.slice(0),x(r).meridiem=r._meridiem,r._a[Fe]=du(r._locale,r._a[Fe],r._meridiem),fe=x(r).era,fe!==null&&(r._a[Ke]=r._locale.erasConvertYear(fe,r._a[Ke])),mo(r),ho(r)}function du(r,d,g){var h;return g==null?d:r.meridiemHour!=null?r.meridiemHour(d,g):(r.isPM!=null&&(h=r.isPM(g),h&&d<12&&(d+=12),!h&&d===12&&(d=0)),d)}function uu(r){var d,g,h,v,$,O,ee=!1,de=r._f.length;if(de===0){x(r).invalidFormat=!0,r._d=new Date(NaN);return}for(v=0;v<de;v++)$=0,O=!1,d=H({},r),r._useUTC!=null&&(d._useUTC=r._useUTC),d._f=r._f[v],fo(d),L(d)&&(O=!0),$+=x(d).charsLeftOver,$+=x(d).unusedTokens.length*10,x(d).score=$,ee?$<h&&(h=$,g=d):(h==null||$<h||O)&&(h=$,g=d,O&&(ee=!0));b(r,g||d)}function _u(r){if(!r._d){var d=es(r._i),g=d.day===void 0?d.date:d.day;r._a=y([d.year,d.month,g,d.hour,d.minute,d.second,d.millisecond],function(h){return h&&parseInt(h,10)}),mo(r)}}function gu(r){var d=new R(ho(Ga(r)));return d._nextDay&&(d.add(1,"d"),d._nextDay=void 0),d}function Ga(r){var d=r._i,g=r._f;return r._locale=r._locale||Ot(r._l),d===null||g===void 0&&d===""?W({nullInput:!0}):(typeof d=="string"&&(r._i=d=r._locale.preparse(d)),G(d)?new R(ho(d)):(p(d)?r._d=d:a(g)?uu(r):g?fo(r):hu(r),L(r)||(r._d=null),r))}function hu(r){var d=r._i;_(d)?r._d=new Date(s.now()):p(d)?r._d=new Date(d.valueOf()):typeof d=="string"?ru(r):a(d)?(r._a=y(d.slice(0),function(g){return parseInt(g,10)}),mo(r)):c(d)?_u(r):m(d)?r._d=new Date(d):s.createFromInputFallback(r)}function Ja(r,d,g,h,v){var $={};return(d===!0||d===!1)&&(h=d,d=void 0),(g===!0||g===!1)&&(h=g,g=void 0),(c(r)&&u(r)||a(r)&&r.length===0)&&(r=void 0),$._isAMomentObject=!0,$._useUTC=$._isUTC=v,$._l=g,$._i=r,$._f=d,$._strict=h,gu($)}function Pe(r,d,g,h){return Ja(r,d,g,h,!1)}var pu=P("moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/",function(){var r=Pe.apply(null,arguments);return this.isValid()&&r.isValid()?r<this?this:r:W()}),mu=P("moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/",function(){var r=Pe.apply(null,arguments);return this.isValid()&&r.isValid()?r>this?this:r:W()});function Ka(r,d){var g,h;if(d.length===1&&a(d[0])&&(d=d[0]),!d.length)return Pe();for(g=d[0],h=1;h<d.length;++h)(!d[h].isValid()||d[h][r](g))&&(g=d[h]);return g}function fu(){var r=[].slice.call(arguments,0);return Ka("isBefore",r)}function wu(){var r=[].slice.call(arguments,0);return Ka("isAfter",r)}var bu=function(){return Date.now?Date.now():+new Date},ds=["year","quarter","month","week","day","hour","minute","second","millisecond"];function vu(r){var d,g=!1,h,v=ds.length;for(d in r)if(l(r,d)&&!(Le.call(ds,d)!==-1&&(r[d]==null||!isNaN(r[d]))))return!1;for(h=0;h<v;++h)if(r[ds[h]]){if(g)return!1;parseFloat(r[ds[h]])!==pe(r[ds[h]])&&(g=!0)}return!0}function yu(){return this._isValid}function ju(){return ft(NaN)}function en(r){var d=es(r),g=d.year||0,h=d.quarter||0,v=d.month||0,$=d.week||d.isoWeek||0,O=d.day||0,ee=d.hour||0,de=d.minute||0,fe=d.second||0,Qe=d.millisecond||0;this._isValid=vu(d),this._milliseconds=+Qe+fe*1e3+de*6e4+ee*1e3*60*60,this._days=+O+$*7,this._months=+v+h*3+g*12,this._data={},this._locale=Ot(),this._bubble()}function tn(r){return r instanceof en}function wo(r){return r<0?Math.round(-1*r)*-1:Math.round(r)}function xu(r,d,g){var h=Math.min(r.length,d.length),v=Math.abs(r.length-d.length),$=0,O;for(O=0;O<h;O++)pe(r[O])!==pe(d[O])&&$++;return $+v}function Za(r,d){I(r,0,0,function(){var g=this.utcOffset(),h="+";return g<0&&(g=-g,h="-"),h+ce(~~(g/60),2)+d+ce(~~g%60,2)})}Za("Z",":"),Za("ZZ",""),te("Z",Gs),te("ZZ",Gs),$e(["Z","ZZ"],function(r,d,g){g._useUTC=!0,g._tzm=bo(Gs,r)});var $u=/([\+\-]|\d\d)/gi;function bo(r,d){var g=(d||"").match(r),h,v,$;return g===null?null:(h=g[g.length-1]||[],v=(h+"").match($u)||["-",0,0],$=+(v[1]*60)+pe(v[2]),$===0?0:v[0]==="+"?$:-$)}function vo(r,d){var g,h;return d._isUTC?(g=d.clone(),h=(G(r)||p(r)?r.valueOf():Pe(r).valueOf())-g.valueOf(),g._d.setTime(g._d.valueOf()+h),s.updateOffset(g,!1),g):Pe(r).local()}function yo(r){return-Math.round(r._d.getTimezoneOffset())}s.updateOffset=function(){};function Su(r,d,g){var h=this._offset||0,v;if(!this.isValid())return r!=null?this:NaN;if(r!=null){if(typeof r=="string"){if(r=bo(Gs,r),r===null)return this}else Math.abs(r)<16&&!g&&(r=r*60);return!this._isUTC&&d&&(v=yo(this)),this._offset=r,this._isUTC=!0,v!=null&&this.add(v,"m"),h!==r&&(!d||this._changeInProgress?tr(this,ft(r-h,"m"),1,!1):this._changeInProgress||(this._changeInProgress=!0,s.updateOffset(this,!0),this._changeInProgress=null)),this}else return this._isUTC?h:yo(this)}function ku(r,d){return r!=null?(typeof r!="string"&&(r=-r),this.utcOffset(r,d),this):-this.utcOffset()}function qu(r){return this.utcOffset(0,r)}function Cu(r){return this._isUTC&&(this.utcOffset(0,r),this._isUTC=!1,r&&this.subtract(yo(this),"m")),this}function Pu(){if(this._tzm!=null)this.utcOffset(this._tzm,!1,!0);else if(typeof this._i=="string"){var r=bo(Gc,this._i);r!=null?this.utcOffset(r):this.utcOffset(0,!0)}return this}function Du(r){return this.isValid()?(r=r?Pe(r).utcOffset():0,(this.utcOffset()-r)%60===0):!1}function Tu(){return this.utcOffset()>this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()}function Mu(){if(!_(this._isDSTShifted))return this._isDSTShifted;var r={},d;return H(r,this),r=Ga(r),r._a?(d=r._isUTC?j(r._a):Pe(r._a),this._isDSTShifted=this.isValid()&&xu(r._a,d.toArray())>0):this._isDSTShifted=!1,this._isDSTShifted}function zu(){return this.isValid()?!this._isUTC:!1}function Iu(){return this.isValid()?this._isUTC:!1}function Xa(){return this.isValid()?this._isUTC&&this._offset===0:!1}var Hu=/^(-|\+)?(?:(\d*)[. ])?(\d+):(\d+)(?::(\d+)(\.\d*)?)?$/,Au=/^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;function ft(r,d){var g=r,h=null,v,$,O;return tn(r)?g={ms:r._milliseconds,d:r._days,M:r._months}:m(r)||!isNaN(+r)?(g={},d?g[d]=+r:g.milliseconds=+r):(h=Hu.exec(r))?(v=h[1]==="-"?-1:1,g={y:0,d:pe(h[St])*v,h:pe(h[Fe])*v,m:pe(h[mt])*v,s:pe(h[Ht])*v,ms:pe(wo(h[mi]*1e3))*v}):(h=Au.exec(r))?(v=h[1]==="-"?-1:1,g={y:fi(h[2],v),M:fi(h[3],v),w:fi(h[4],v),d:fi(h[5],v),h:fi(h[6],v),m:fi(h[7],v),s:fi(h[8],v)}):g==null?g={}:typeof g=="object"&&("from"in g||"to"in g)&&(O=Ou(Pe(g.from),Pe(g.to)),g={},g.ms=O.milliseconds,g.M=O.months),$=new en(g),tn(r)&&l(r,"_locale")&&($._locale=r._locale),tn(r)&&l(r,"_isValid")&&($._isValid=r._isValid),$}ft.fn=en.prototype,ft.invalid=ju;function fi(r,d){var g=r&&parseFloat(r.replace(",","."));return(isNaN(g)?0:g)*d}function Qa(r,d){var g={};return g.months=d.month()-r.month()+(d.year()-r.year())*12,r.clone().add(g.months,"M").isAfter(d)&&--g.months,g.milliseconds=+d-+r.clone().add(g.months,"M"),g}function Ou(r,d){var g;return r.isValid()&&d.isValid()?(d=vo(d,r),r.isBefore(d)?g=Qa(r,d):(g=Qa(d,r),g.milliseconds=-g.milliseconds,g.months=-g.months),g):{milliseconds:0,months:0}}function er(r,d){return function(g,h){var v,$;return h!==null&&!isNaN(+h)&&(z(d,"moment()."+d+"(period, number) is deprecated. Please use moment()."+d+"(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info."),$=g,g=h,h=$),v=ft(g,h),tr(this,v,r),this}}function tr(r,d,g,h){var v=d._milliseconds,$=wo(d._days),O=wo(d._months);r.isValid()&&(h=h??!0,O&&Oa(r,os(r,"Month")+O*g),$&&Ia(r,"Date",os(r,"Date")+$*g),v&&r._d.setTime(r._d.valueOf()+v*g),h&&s.updateOffset(r,$||O))}var Lu=er(1,"add"),Wu=er(-1,"subtract");function ir(r){return typeof r=="string"||r instanceof String}function Ru(r){return G(r)||p(r)||ir(r)||m(r)||Eu(r)||Nu(r)||r===null||r===void 0}function Nu(r){var d=c(r)&&!u(r),g=!1,h=["years","year","y","months","month","M","days","day","d","dates","date","D","hours","hour","h","minutes","minute","m","seconds","second","s","milliseconds","millisecond","ms"],v,$,O=h.length;for(v=0;v<O;v+=1)$=h[v],g=g||l(r,$);return d&&g}function Eu(r){var d=a(r),g=!1;return d&&(g=r.filter(function(h){return!m(h)&&ir(r)}).length===0),d&&g}function Fu(r){var d=c(r)&&!u(r),g=!1,h=["sameDay","nextDay","lastDay","nextWeek","lastWeek","sameElse"],v,$;for(v=0;v<h.length;v+=1)$=h[v],g=g||l(r,$);return d&&g}function Vu(r,d){var g=r.diff(d,"days",!0);return g<-6?"sameElse":g<-1?"lastWeek":g<0?"lastDay":g<1?"sameDay":g<2?"nextDay":g<7?"nextWeek":"sameElse"}function Bu(r,d){arguments.length===1&&(arguments[0]?Ru(arguments[0])?(r=arguments[0],d=void 0):Fu(arguments[0])&&(d=arguments[0],r=void 0):(r=void 0,d=void 0));var g=r||Pe(),h=vo(g,this).startOf("day"),v=s.calendarFormat(this,h)||"sameElse",$=d&&(K(d[v])?d[v].call(this,g):d[v]);return this.format($||this.localeData().calendar(v,this,Pe(g)))}function Uu(){return new R(this)}function Yu(r,d){var g=G(r)?r:Pe(r);return this.isValid()&&g.isValid()?(d=tt(d)||"millisecond",d==="millisecond"?this.valueOf()>g.valueOf():g.valueOf()<this.clone().startOf(d).valueOf()):!1}function Gu(r,d){var g=G(r)?r:Pe(r);return this.isValid()&&g.isValid()?(d=tt(d)||"millisecond",d==="millisecond"?this.valueOf()<g.valueOf():this.clone().endOf(d).valueOf()<g.valueOf()):!1}function Ju(r,d,g,h){var v=G(r)?r:Pe(r),$=G(d)?d:Pe(d);return this.isValid()&&v.isValid()&&$.isValid()?(h=h||"()",(h[0]==="("?this.isAfter(v,g):!this.isBefore(v,g))&&(h[1]===")"?this.isBefore($,g):!this.isAfter($,g))):!1}function Ku(r,d){var g=G(r)?r:Pe(r),h;return this.isValid()&&g.isValid()?(d=tt(d)||"millisecond",d==="millisecond"?this.valueOf()===g.valueOf():(h=g.valueOf(),this.clone().startOf(d).valueOf()<=h&&h<=this.clone().endOf(d).valueOf())):!1}function Zu(r,d){return this.isSame(r,d)||this.isAfter(r,d)}function Xu(r,d){return this.isSame(r,d)||this.isBefore(r,d)}function Qu(r,d,g){var h,v,$;if(!this.isValid())return NaN;if(h=vo(r,this),!h.isValid())return NaN;switch(v=(h.utcOffset()-this.utcOffset())*6e4,d=tt(d),d){case"year":$=sn(this,h)/12;break;case"month":$=sn(this,h);break;case"quarter":$=sn(this,h)/3;break;case"second":$=(this-h)/1e3;break;case"minute":$=(this-h)/6e4;break;case"hour":$=(this-h)/36e5;break;case"day":$=(this-h-v)/864e5;break;case"week":$=(this-h-v)/6048e5;break;default:$=this-h}return g?$:ct($)}function sn(r,d){if(r.date()<d.date())return-sn(d,r);var g=(d.year()-r.year())*12+(d.month()-r.month()),h=r.clone().add(g,"months"),v,$;return d-h<0?(v=r.clone().add(g-1,"months"),$=(d-h)/(h-v)):(v=r.clone().add(g+1,"months"),$=(d-h)/(v-h)),-(g+$)||0}s.defaultFormat="YYYY-MM-DDTHH:mm:ssZ",s.defaultFormatUtc="YYYY-MM-DDTHH:mm:ss[Z]";function e_(){return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")}function t_(r){if(!this.isValid())return null;var d=r!==!0,g=d?this.clone().utc():this;return g.year()<0||g.year()>9999?he(g,d?"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYYYY-MM-DD[T]HH:mm:ss.SSSZ"):K(Date.prototype.toISOString)?d?this.toDate().toISOString():new Date(this.valueOf()+this.utcOffset()*60*1e3).toISOString().replace("Z",he(g,"Z")):he(g,d?"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYY-MM-DD[T]HH:mm:ss.SSSZ")}function i_(){if(!this.isValid())return"moment.invalid(/* "+this._i+" */)";var r="moment",d="",g,h,v,$;return this.isLocal()||(r=this.utcOffset()===0?"moment.utc":"moment.parseZone",d="Z"),g="["+r+'("]',h=0<=this.year()&&this.year()<=9999?"YYYY":"YYYYYY",v="-MM-DD[T]HH:mm:ss.SSS",$=d+'[")]',this.format(g+h+v+$)}function s_(r){r||(r=this.isUtc()?s.defaultFormatUtc:s.defaultFormat);var d=he(this,r);return this.localeData().postformat(d)}function n_(r,d){return this.isValid()&&(G(r)&&r.isValid()||Pe(r).isValid())?ft({to:this,from:r}).locale(this.locale()).humanize(!d):this.localeData().invalidDate()}function o_(r){return this.from(Pe(),r)}function a_(r,d){return this.isValid()&&(G(r)&&r.isValid()||Pe(r).isValid())?ft({from:this,to:r}).locale(this.locale()).humanize(!d):this.localeData().invalidDate()}function r_(r){return this.to(Pe(),r)}function sr(r){var d;return r===void 0?this._locale._abbr:(d=Ot(r),d!=null&&(this._locale=d),this)}var nr=P("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",function(r){return r===void 0?this.localeData():this.locale(r)});function or(){return this._locale}var nn=1e3,zi=60*nn,on=60*zi,ar=(365*400+97)*24*on;function Ii(r,d){return(r%d+d)%d}function rr(r,d,g){return r<100&&r>=0?new Date(r+400,d,g)-ar:new Date(r,d,g).valueOf()}function lr(r,d,g){return r<100&&r>=0?Date.UTC(r+400,d,g)-ar:Date.UTC(r,d,g)}function l_(r){var d,g;if(r=tt(r),r===void 0||r==="millisecond"||!this.isValid())return this;switch(g=this._isUTC?lr:rr,r){case"year":d=g(this.year(),0,1);break;case"quarter":d=g(this.year(),this.month()-this.month()%3,1);break;case"month":d=g(this.year(),this.month(),1);break;case"week":d=g(this.year(),this.month(),this.date()-this.weekday());break;case"isoWeek":d=g(this.year(),this.month(),this.date()-(this.isoWeekday()-1));break;case"day":case"date":d=g(this.year(),this.month(),this.date());break;case"hour":d=this._d.valueOf(),d-=Ii(d+(this._isUTC?0:this.utcOffset()*zi),on);break;case"minute":d=this._d.valueOf(),d-=Ii(d,zi);break;case"second":d=this._d.valueOf(),d-=Ii(d,nn);break}return this._d.setTime(d),s.updateOffset(this,!0),this}function c_(r){var d,g;if(r=tt(r),r===void 0||r==="millisecond"||!this.isValid())return this;switch(g=this._isUTC?lr:rr,r){case"year":d=g(this.year()+1,0,1)-1;break;case"quarter":d=g(this.year(),this.month()-this.month()%3+3,1)-1;break;case"month":d=g(this.year(),this.month()+1,1)-1;break;case"week":d=g(this.year(),this.month(),this.date()-this.weekday()+7)-1;break;case"isoWeek":d=g(this.year(),this.month(),this.date()-(this.isoWeekday()-1)+7)-1;break;case"day":case"date":d=g(this.year(),this.month(),this.date()+1)-1;break;case"hour":d=this._d.valueOf(),d+=on-Ii(d+(this._isUTC?0:this.utcOffset()*zi),on)-1;break;case"minute":d=this._d.valueOf(),d+=zi-Ii(d,zi)-1;break;case"second":d=this._d.valueOf(),d+=nn-Ii(d,nn)-1;break}return this._d.setTime(d),s.updateOffset(this,!0),this}function d_(){return this._d.valueOf()-(this._offset||0)*6e4}function u_(){return Math.floor(this.valueOf()/1e3)}function __(){return new Date(this.valueOf())}function g_(){var r=this;return[r.year(),r.month(),r.date(),r.hour(),r.minute(),r.second(),r.millisecond()]}function h_(){var r=this;return{years:r.year(),months:r.month(),date:r.date(),hours:r.hours(),minutes:r.minutes(),seconds:r.seconds(),milliseconds:r.milliseconds()}}function p_(){return this.isValid()?this.toISOString():null}function m_(){return L(this)}function f_(){return b({},x(this))}function w_(){return x(this).overflow}function b_(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}}I("N",0,0,"eraAbbr"),I("NN",0,0,"eraAbbr"),I("NNN",0,0,"eraAbbr"),I("NNNN",0,0,"eraName"),I("NNNNN",0,0,"eraNarrow"),I("y",["y",1],"yo","eraYear"),I("y",["yy",2],0,"eraYear"),I("y",["yyy",3],0,"eraYear"),I("y",["yyyy",4],0,"eraYear"),te("N",jo),te("NN",jo),te("NNN",jo),te("NNNN",D_),te("NNNNN",T_),$e(["N","NN","NNN","NNNN","NNNNN"],function(r,d,g,h){var v=g._locale.erasParse(r,h,g._strict);v?x(g).era=v:x(g).invalidEra=r}),te("y",Pi),te("yy",Pi),te("yyy",Pi),te("yyyy",Pi),te("yo",M_),$e(["y","yy","yyy","yyyy"],Ke),$e(["yo"],function(r,d,g,h){var v;g._locale._eraYearOrdinalRegex&&(v=r.match(g._locale._eraYearOrdinalRegex)),g._locale.eraYearOrdinalParse?d[Ke]=g._locale.eraYearOrdinalParse(r,v):d[Ke]=parseInt(r,10)});function v_(r,d){var g,h,v,$=this._eras||Ot("en")._eras;for(g=0,h=$.length;g<h;++g){switch(typeof $[g].since){case"string":v=s($[g].since).startOf("day"),$[g].since=v.valueOf();break}switch(typeof $[g].until){case"undefined":$[g].until=1/0;break;case"string":v=s($[g].until).startOf("day").valueOf(),$[g].until=v.valueOf();break}}return $}function y_(r,d,g){var h,v,$=this.eras(),O,ee,de;for(r=r.toUpperCase(),h=0,v=$.length;h<v;++h)if(O=$[h].name.toUpperCase(),ee=$[h].abbr.toUpperCase(),de=$[h].narrow.toUpperCase(),g)switch(d){case"N":case"NN":case"NNN":if(ee===r)return $[h];break;case"NNNN":if(O===r)return $[h];break;case"NNNNN":if(de===r)return $[h];break}else if([O,ee,de].indexOf(r)>=0)return $[h]}function j_(r,d){var g=r.since<=r.until?1:-1;return d===void 0?s(r.since).year():s(r.since).year()+(d-r.offset)*g}function x_(){var r,d,g,h=this.localeData().eras();for(r=0,d=h.length;r<d;++r)if(g=this.clone().startOf("day").valueOf(),h[r].since<=g&&g<=h[r].until||h[r].until<=g&&g<=h[r].since)return h[r].name;return""}function $_(){var r,d,g,h=this.localeData().eras();for(r=0,d=h.length;r<d;++r)if(g=this.clone().startOf("day").valueOf(),h[r].since<=g&&g<=h[r].until||h[r].until<=g&&g<=h[r].since)return h[r].narrow;return""}function S_(){var r,d,g,h=this.localeData().eras();for(r=0,d=h.length;r<d;++r)if(g=this.clone().startOf("day").valueOf(),h[r].since<=g&&g<=h[r].until||h[r].until<=g&&g<=h[r].since)return h[r].abbr;return""}function k_(){var r,d,g,h,v=this.localeData().eras();for(r=0,d=v.length;r<d;++r)if(g=v[r].since<=v[r].until?1:-1,h=this.clone().startOf("day").valueOf(),v[r].since<=h&&h<=v[r].until||v[r].until<=h&&h<=v[r].since)return(this.year()-s(v[r].since).year())*g+v[r].offset;return this.year()}function q_(r){return l(this,"_erasNameRegex")||xo.call(this),r?this._erasNameRegex:this._erasRegex}function C_(r){return l(this,"_erasAbbrRegex")||xo.call(this),r?this._erasAbbrRegex:this._erasRegex}function P_(r){return l(this,"_erasNarrowRegex")||xo.call(this),r?this._erasNarrowRegex:this._erasRegex}function jo(r,d){return d.erasAbbrRegex(r)}function D_(r,d){return d.erasNameRegex(r)}function T_(r,d){return d.erasNarrowRegex(r)}function M_(r,d){return d._eraYearOrdinalRegex||Pi}function xo(){var r=[],d=[],g=[],h=[],v,$,O,ee,de,fe=this.eras();for(v=0,$=fe.length;v<$;++v)O=zt(fe[v].name),ee=zt(fe[v].abbr),de=zt(fe[v].narrow),d.push(O),r.push(ee),g.push(de),h.push(O),h.push(ee),h.push(de);this._erasRegex=new RegExp("^("+h.join("|")+")","i"),this._erasNameRegex=new RegExp("^("+d.join("|")+")","i"),this._erasAbbrRegex=new RegExp("^("+r.join("|")+")","i"),this._erasNarrowRegex=new RegExp("^("+g.join("|")+")","i")}I(0,["gg",2],0,function(){return this.weekYear()%100}),I(0,["GG",2],0,function(){return this.isoWeekYear()%100});function an(r,d){I(0,[r,r.length],0,d)}an("gggg","weekYear"),an("ggggg","weekYear"),an("GGGG","isoWeekYear"),an("GGGGG","isoWeekYear"),te("G",Ys),te("g",Ys),te("GG",Ce,Ue),te("gg",Ce,Ue),te("GGGG",oo,Ci),te("gggg",oo,Ci),te("GGGGG",Us,ei),te("ggggg",Us,ei),ss(["gggg","ggggg","GGGG","GGGGG"],function(r,d,g,h){d[h.substr(0,2)]=pe(r)}),ss(["gg","GG"],function(r,d,g,h){d[h]=s.parseTwoDigitYear(r)});function z_(r){return cr.call(this,r,this.week(),this.weekday()+this.localeData()._week.dow,this.localeData()._week.dow,this.localeData()._week.doy)}function I_(r){return cr.call(this,r,this.isoWeek(),this.isoWeekday(),1,4)}function H_(){return At(this.year(),1,4)}function A_(){return At(this.isoWeekYear(),1,4)}function O_(){var r=this.localeData()._week;return At(this.year(),r.dow,r.doy)}function L_(){var r=this.localeData()._week;return At(this.weekYear(),r.dow,r.doy)}function cr(r,d,g,h,v){var $;return r==null?rs(this,h,v).year:($=At(r,h,v),d>$&&(d=$),W_.call(this,r,d,g,h,v))}function W_(r,d,g,h,v){var $=Ra(r,d,g,h,v),O=as($.year,0,$.dayOfYear);return this.year(O.getUTCFullYear()),this.month(O.getUTCMonth()),this.date(O.getUTCDate()),this}I("Q",0,"Qo","quarter"),te("Q",pi),$e("Q",function(r,d){d[It]=(pe(r)-1)*3});function R_(r){return r==null?Math.ceil((this.month()+1)/3):this.month((r-1)*3+this.month()%3)}I("D",["DD",2],"Do","date"),te("D",Ce,Di),te("DD",Ce,Ue),te("Do",function(r,d){return r?d._dayOfMonthOrdinalParse||d._ordinalParse:d._dayOfMonthOrdinalParseLenient}),$e(["D","DD"],St),$e("Do",function(r,d){d[St]=pe(r.match(Ce)[0])});var dr=Ti("Date",!0);I("DDD",["DDDD",3],"DDDo","dayOfYear"),te("DDD",Bs),te("DDDD",ts),$e(["DDD","DDDD"],function(r,d,g){g._dayOfYear=pe(r)});function N_(r){var d=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return r==null?d:this.add(r-d,"d")}I("m",["mm",2],0,"minute"),te("m",Ce,ao),te("mm",Ce,Ue),$e(["m","mm"],mt);var E_=Ti("Minutes",!1);I("s",["ss",2],0,"second"),te("s",Ce,ao),te("ss",Ce,Ue),$e(["s","ss"],Ht);var F_=Ti("Seconds",!1);I("S",0,0,function(){return~~(this.millisecond()/100)}),I(0,["SS",2],0,function(){return~~(this.millisecond()/10)}),I(0,["SSS",3],0,"millisecond"),I(0,["SSSS",4],0,function(){return this.millisecond()*10}),I(0,["SSSSS",5],0,function(){return this.millisecond()*100}),I(0,["SSSSSS",6],0,function(){return this.millisecond()*1e3}),I(0,["SSSSSSS",7],0,function(){return this.millisecond()*1e4}),I(0,["SSSSSSSS",8],0,function(){return this.millisecond()*1e5}),I(0,["SSSSSSSSS",9],0,function(){return this.millisecond()*1e6}),te("S",Bs,pi),te("SS",Bs,Ue),te("SSS",Bs,ts);var ii,ur;for(ii="SSSS";ii.length<=9;ii+="S")te(ii,Pi);function V_(r,d){d[mi]=pe(("0."+r)*1e3)}for(ii="S";ii.length<=9;ii+="S")$e(ii,V_);ur=Ti("Milliseconds",!1),I("z",0,0,"zoneAbbr"),I("zz",0,0,"zoneName");function B_(){return this._isUTC?"UTC":""}function U_(){return this._isUTC?"Coordinated Universal Time":""}var B=R.prototype;B.add=Lu,B.calendar=Bu,B.clone=Uu,B.diff=Qu,B.endOf=c_,B.format=s_,B.from=n_,B.fromNow=o_,B.to=a_,B.toNow=r_,B.get=id,B.invalidAt=w_,B.isAfter=Yu,B.isBefore=Gu,B.isBetween=Ju,B.isSame=Ku,B.isSameOrAfter=Zu,B.isSameOrBefore=Xu,B.isValid=m_,B.lang=nr,B.locale=sr,B.localeData=or,B.max=mu,B.min=pu,B.parsingFlags=f_,B.set=sd,B.startOf=l_,B.subtract=Wu,B.toArray=g_,B.toObject=h_,B.toDate=__,B.toISOString=t_,B.inspect=i_,typeof Symbol<"u"&&Symbol.for!=null&&(B[Symbol.for("nodejs.util.inspect.custom")]=function(){return"Moment<"+this.format()+">"}),B.toJSON=p_,B.toString=e_,B.unix=u_,B.valueOf=d_,B.creationData=b_,B.eraName=x_,B.eraNarrow=$_,B.eraAbbr=S_,B.eraYear=k_,B.year=za,B.isLeapYear=td,B.weekYear=z_,B.isoWeekYear=I_,B.quarter=B.quarters=R_,B.month=La,B.daysInMonth=_d,B.week=B.weeks=vd,B.isoWeek=B.isoWeeks=yd,B.weeksInYear=O_,B.weeksInWeekYear=L_,B.isoWeeksInYear=H_,B.isoWeeksInISOWeekYear=A_,B.date=dr,B.day=B.days=Id,B.weekday=Hd,B.isoWeekday=Ad,B.dayOfYear=N_,B.hour=B.hours=Fd,B.minute=B.minutes=E_,B.second=B.seconds=F_,B.millisecond=B.milliseconds=ur,B.utcOffset=Su,B.utc=qu,B.local=Cu,B.parseZone=Pu,B.hasAlignedHourOffset=Du,B.isDST=Tu,B.isLocal=zu,B.isUtcOffset=Iu,B.isUtc=Xa,B.isUTC=Xa,B.zoneAbbr=B_,B.zoneName=U_,B.dates=P("dates accessor is deprecated. Use date instead.",dr),B.months=P("months accessor is deprecated. Use month instead",La),B.years=P("years accessor is deprecated. Use year instead",za),B.zone=P("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",ku),B.isDSTShifted=P("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",Mu);function Y_(r){return Pe(r*1e3)}function G_(){return Pe.apply(null,arguments).parseZone()}function _r(r){return r}var ye=Q.prototype;ye.calendar=ve,ye.longDateFormat=Xi,ye.invalidDate=ki,ye.ordinal=qi,ye.preparse=_r,ye.postformat=_r,ye.relativeTime=no,ye.pastFuture=Es,ye.set=Z,ye.eras=v_,ye.erasParse=y_,ye.erasConvertYear=j_,ye.erasAbbrRegex=C_,ye.erasNameRegex=q_,ye.erasNarrowRegex=P_,ye.months=ld,ye.monthsShort=cd,ye.monthsParse=ud,ye.monthsRegex=hd,ye.monthsShortRegex=gd,ye.week=md,ye.firstDayOfYear=bd,ye.firstDayOfWeek=wd,ye.weekdays=Pd,ye.weekdaysMin=Td,ye.weekdaysShort=Dd,ye.weekdaysParse=zd,ye.weekdaysRegex=Od,ye.weekdaysShortRegex=Ld,ye.weekdaysMinRegex=Wd,ye.isPM=Nd,ye.meridiem=Vd;function rn(r,d,g,h){var v=Ot(),$=j().set(h,d);return v[g]($,r)}function gr(r,d,g){if(m(r)&&(d=r,r=void 0),r=r||"",d!=null)return rn(r,d,g,"month");var h,v=[];for(h=0;h<12;h++)v[h]=rn(r,h,g,"month");return v}function $o(r,d,g,h){typeof r=="boolean"?(m(d)&&(g=d,d=void 0),d=d||""):(d=r,g=d,r=!1,m(d)&&(g=d,d=void 0),d=d||"");var v=Ot(),$=r?v._week.dow:0,O,ee=[];if(g!=null)return rn(d,(g+$)%7,h,"day");for(O=0;O<7;O++)ee[O]=rn(d,(O+$)%7,h,"day");return ee}function J_(r,d){return gr(r,d,"months")}function K_(r,d){return gr(r,d,"monthsShort")}function Z_(r,d,g){return $o(r,d,g,"weekdays")}function X_(r,d,g){return $o(r,d,g,"weekdaysShort")}function Q_(r,d,g){return $o(r,d,g,"weekdaysMin")}ti("en",{eras:[{since:"0001-01-01",until:1/0,offset:1,name:"Anno Domini",narrow:"AD",abbr:"AD"},{since:"0000-12-31",until:-1/0,offset:1,name:"Before Christ",narrow:"BC",abbr:"BC"}],dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(r){var d=r%10,g=pe(r%100/10)===1?"th":d===1?"st":d===2?"nd":d===3?"rd":"th";return r+g}}),s.lang=P("moment.lang is deprecated. Use moment.locale instead.",ti),s.langData=P("moment.langData is deprecated. Use moment.localeData instead.",Ot);var Lt=Math.abs;function eg(){var r=this._data;return this._milliseconds=Lt(this._milliseconds),this._days=Lt(this._days),this._months=Lt(this._months),r.milliseconds=Lt(r.milliseconds),r.seconds=Lt(r.seconds),r.minutes=Lt(r.minutes),r.hours=Lt(r.hours),r.months=Lt(r.months),r.years=Lt(r.years),this}function hr(r,d,g,h){var v=ft(d,g);return r._milliseconds+=h*v._milliseconds,r._days+=h*v._days,r._months+=h*v._months,r._bubble()}function tg(r,d){return hr(this,r,d,1)}function ig(r,d){return hr(this,r,d,-1)}function pr(r){return r<0?Math.floor(r):Math.ceil(r)}function sg(){var r=this._milliseconds,d=this._days,g=this._months,h=this._data,v,$,O,ee,de;return r>=0&&d>=0&&g>=0||r<=0&&d<=0&&g<=0||(r+=pr(So(g)+d)*864e5,d=0,g=0),h.milliseconds=r%1e3,v=ct(r/1e3),h.seconds=v%60,$=ct(v/60),h.minutes=$%60,O=ct($/60),h.hours=O%24,d+=ct(O/24),de=ct(mr(d)),g+=de,d-=pr(So(de)),ee=ct(g/12),g%=12,h.days=d,h.months=g,h.years=ee,this}function mr(r){return r*4800/146097}function So(r){return r*146097/4800}function ng(r){if(!this.isValid())return NaN;var d,g,h=this._milliseconds;if(r=tt(r),r==="month"||r==="quarter"||r==="year")switch(d=this._days+h/864e5,g=this._months+mr(d),r){case"month":return g;case"quarter":return g/3;case"year":return g/12}else switch(d=this._days+Math.round(So(this._months)),r){case"week":return d/7+h/6048e5;case"day":return d+h/864e5;case"hour":return d*24+h/36e5;case"minute":return d*1440+h/6e4;case"second":return d*86400+h/1e3;case"millisecond":return Math.floor(d*864e5)+h;default:throw new Error("Unknown unit "+r)}}function Wt(r){return function(){return this.as(r)}}var fr=Wt("ms"),og=Wt("s"),ag=Wt("m"),rg=Wt("h"),lg=Wt("d"),cg=Wt("w"),dg=Wt("M"),ug=Wt("Q"),_g=Wt("y"),gg=fr;function hg(){return ft(this)}function pg(r){return r=tt(r),this.isValid()?this[r+"s"]():NaN}function wi(r){return function(){return this.isValid()?this._data[r]:NaN}}var mg=wi("milliseconds"),fg=wi("seconds"),wg=wi("minutes"),bg=wi("hours"),vg=wi("days"),yg=wi("months"),jg=wi("years");function xg(){return ct(this.days()/7)}var Rt=Math.round,Hi={ss:44,s:45,m:45,h:22,d:26,w:null,M:11};function $g(r,d,g,h,v){return v.relativeTime(d||1,!!g,r,h)}function Sg(r,d,g,h){var v=ft(r).abs(),$=Rt(v.as("s")),O=Rt(v.as("m")),ee=Rt(v.as("h")),de=Rt(v.as("d")),fe=Rt(v.as("M")),Qe=Rt(v.as("w")),Nt=Rt(v.as("y")),si=$<=g.ss&&["s",$]||$<g.s&&["ss",$]||O<=1&&["m"]||O<g.m&&["mm",O]||ee<=1&&["h"]||ee<g.h&&["hh",ee]||de<=1&&["d"]||de<g.d&&["dd",de];return g.w!=null&&(si=si||Qe<=1&&["w"]||Qe<g.w&&["ww",Qe]),si=si||fe<=1&&["M"]||fe<g.M&&["MM",fe]||Nt<=1&&["y"]||["yy",Nt],si[2]=d,si[3]=+r>0,si[4]=h,$g.apply(null,si)}function kg(r){return r===void 0?Rt:typeof r=="function"?(Rt=r,!0):!1}function qg(r,d){return Hi[r]===void 0?!1:d===void 0?Hi[r]:(Hi[r]=d,r==="s"&&(Hi.ss=d-1),!0)}function Cg(r,d){if(!this.isValid())return this.localeData().invalidDate();var g=!1,h=Hi,v,$;return typeof r=="object"&&(d=r,r=!1),typeof r=="boolean"&&(g=r),typeof d=="object"&&(h=Object.assign({},Hi,d),d.s!=null&&d.ss==null&&(h.ss=d.s-1)),v=this.localeData(),$=Sg(this,!g,h,v),g&&($=v.pastFuture(+this,$)),v.postformat($)}var ko=Math.abs;function Ai(r){return(r>0)-(r<0)||+r}function ln(){if(!this.isValid())return this.localeData().invalidDate();var r=ko(this._milliseconds)/1e3,d=ko(this._days),g=ko(this._months),h,v,$,O,ee=this.asSeconds(),de,fe,Qe,Nt;return ee?(h=ct(r/60),v=ct(h/60),r%=60,h%=60,$=ct(g/12),g%=12,O=r?r.toFixed(3).replace(/\.?0+$/,""):"",de=ee<0?"-":"",fe=Ai(this._months)!==Ai(ee)?"-":"",Qe=Ai(this._days)!==Ai(ee)?"-":"",Nt=Ai(this._milliseconds)!==Ai(ee)?"-":"",de+"P"+($?fe+$+"Y":"")+(g?fe+g+"M":"")+(d?Qe+d+"D":"")+(v||h||r?"T":"")+(v?Nt+v+"H":"")+(h?Nt+h+"M":"")+(r?Nt+O+"S":"")):"P0D"}var we=en.prototype;we.isValid=yu,we.abs=eg,we.add=tg,we.subtract=ig,we.as=ng,we.asMilliseconds=fr,we.asSeconds=og,we.asMinutes=ag,we.asHours=rg,we.asDays=lg,we.asWeeks=cg,we.asMonths=dg,we.asQuarters=ug,we.asYears=_g,we.valueOf=gg,we._bubble=sg,we.clone=hg,we.get=pg,we.milliseconds=mg,we.seconds=fg,we.minutes=wg,we.hours=bg,we.days=vg,we.weeks=xg,we.months=yg,we.years=jg,we.humanize=Cg,we.toISOString=ln,we.toString=ln,we.toJSON=ln,we.locale=sr,we.localeData=or,we.toIsoString=P("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",ln),we.lang=nr,I("X",0,0,"unix"),I("x",0,0,"valueOf"),te("x",Ys),te("X",Jc),$e("X",function(r,d,g){g._d=new Date(parseFloat(r)*1e3)}),$e("x",function(r,d,g){g._d=new Date(pe(r))});//! moment.js
return s.version="2.30.1",n(Pe),s.fn=B,s.min=fu,s.max=wu,s.now=bu,s.utc=j,s.unix=Y_,s.months=J_,s.isDate=p,s.locale=ti,s.invalid=W,s.duration=ft,s.isMoment=G,s.weekdays=Z_,s.parseZone=G_,s.localeData=Ot,s.isDuration=tn,s.monthsShort=K_,s.weekdaysMin=Q_,s.defineLocale=go,s.updateLocale=Gd,s.locales=Jd,s.weekdaysShort=X_,s.normalizeUnits=tt,s.relativeTimeRounding=kg,s.relativeTimeThreshold=qg,s.calendarFormat=Vu,s.prototype=B,s.HTML5_FMT={DATETIME_LOCAL:"YYYY-MM-DDTHH:mm",DATETIME_LOCAL_SECONDS:"YYYY-MM-DDTHH:mm:ss",DATETIME_LOCAL_MS:"YYYY-MM-DDTHH:mm:ss.SSS",DATE:"YYYY-MM-DD",TIME:"HH:mm",TIME_SECONDS:"HH:mm:ss",TIME_MS:"HH:mm:ss.SSS",WEEK:"GGGG-[W]WW",MONTH:"YYYY-MM"},s})}($n)),$n.exports}var yv=bv.exports;(function(e,t){(function(i,s){s(typeof pt=="function"?$t():i.moment)})(yv,function(i){//! moment.js locale configuration
function s(a,c,l,u){var _={m:["eine Minute","einer Minute"],h:["eine Stunde","einer Stunde"],d:["ein Tag","einem Tag"],dd:[a+" Tage",a+" Tagen"],w:["eine Woche","einer Woche"],M:["ein Monat","einem Monat"],MM:[a+" Monate",a+" Monaten"],y:["ein Jahr","einem Jahr"],yy:[a+" Jahre",a+" Jahren"]};return c?_[l][0]:_[l][1]}var n=i.defineLocale("de",{months:"Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),weekdaysShort:"So._Mo._Di._Mi._Do._Fr._Sa.".split("_"),weekdaysMin:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd, D. MMMM YYYY HH:mm"},calendar:{sameDay:"[heute um] LT [Uhr]",sameElse:"L",nextDay:"[morgen um] LT [Uhr]",nextWeek:"dddd [um] LT [Uhr]",lastDay:"[gestern um] LT [Uhr]",lastWeek:"[letzten] dddd [um] LT [Uhr]"},relativeTime:{future:"in %s",past:"vor %s",s:"ein paar Sekunden",ss:"%d Sekunden",m:s,mm:"%d Minuten",h:s,hh:"%d Stunden",d:s,dd:s,w:s,ww:"%d Wochen",M:s,MM:s,y:s,yy:s},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}});return n})})();var jv={exports:{}},xv=jv.exports;(function(e,t){(function(i,s){s(typeof pt=="function"?$t():i.moment)})(xv,function(i){//! moment.js locale configuration
function s(l,u){var _=l.split("_");return u%10===1&&u%100!==11?_[0]:u%10>=2&&u%10<=4&&(u%100<10||u%100>=20)?_[1]:_[2]}function n(l,u,_){var m={ss:u?"секунда_секунды_секунд":"секунду_секунды_секунд",mm:u?"минута_минуты_минут":"минуту_минуты_минут",hh:"час_часа_часов",dd:"день_дня_дней",ww:"неделя_недели_недель",MM:"месяц_месяца_месяцев",yy:"год_года_лет"};return _==="m"?u?"минута":"минуту":l+" "+s(m[_],+l)}var a=[/^янв/i,/^фев/i,/^мар/i,/^апр/i,/^ма[йя]/i,/^июн/i,/^июл/i,/^авг/i,/^сен/i,/^окт/i,/^ноя/i,/^дек/i],c=i.defineLocale("ru",{months:{format:"января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря".split("_"),standalone:"январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь".split("_")},monthsShort:{format:"янв._февр._мар._апр._мая_июня_июля_авг._сент._окт._нояб._дек.".split("_"),standalone:"янв._февр._март_апр._май_июнь_июль_авг._сент._окт._нояб._дек.".split("_")},weekdays:{standalone:"воскресенье_понедельник_вторник_среда_четверг_пятница_суббота".split("_"),format:"воскресенье_понедельник_вторник_среду_четверг_пятницу_субботу".split("_"),isFormat:/\[ ?[Вв] ?(?:прошлую|следующую|эту)? ?] ?dddd/},weekdaysShort:"вс_пн_вт_ср_чт_пт_сб".split("_"),weekdaysMin:"вс_пн_вт_ср_чт_пт_сб".split("_"),monthsParse:a,longMonthsParse:a,shortMonthsParse:a,monthsRegex:/^(январ[ья]|янв\.?|феврал[ья]|февр?\.?|марта?|мар\.?|апрел[ья]|апр\.?|ма[йя]|июн[ья]|июн\.?|июл[ья]|июл\.?|августа?|авг\.?|сентябр[ья]|сент?\.?|октябр[ья]|окт\.?|ноябр[ья]|нояб?\.?|декабр[ья]|дек\.?)/i,monthsShortRegex:/^(январ[ья]|янв\.?|феврал[ья]|февр?\.?|марта?|мар\.?|апрел[ья]|апр\.?|ма[йя]|июн[ья]|июн\.?|июл[ья]|июл\.?|августа?|авг\.?|сентябр[ья]|сент?\.?|октябр[ья]|окт\.?|ноябр[ья]|нояб?\.?|декабр[ья]|дек\.?)/i,monthsStrictRegex:/^(январ[яь]|феврал[яь]|марта?|апрел[яь]|ма[яй]|июн[яь]|июл[яь]|августа?|сентябр[яь]|октябр[яь]|ноябр[яь]|декабр[яь])/i,monthsShortStrictRegex:/^(янв\.|февр?\.|мар[т.]|апр\.|ма[яй]|июн[ья.]|июл[ья.]|авг\.|сент?\.|окт\.|нояб?\.|дек\.)/i,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY г.",LLL:"D MMMM YYYY г., H:mm",LLLL:"dddd, D MMMM YYYY г., H:mm"},calendar:{sameDay:"[Сегодня, в] LT",nextDay:"[Завтра, в] LT",lastDay:"[Вчера, в] LT",nextWeek:function(l){if(l.week()!==this.week())switch(this.day()){case 0:return"[В следующее] dddd, [в] LT";case 1:case 2:case 4:return"[В следующий] dddd, [в] LT";case 3:case 5:case 6:return"[В следующую] dddd, [в] LT"}else return this.day()===2?"[Во] dddd, [в] LT":"[В] dddd, [в] LT"},lastWeek:function(l){if(l.week()!==this.week())switch(this.day()){case 0:return"[В прошлое] dddd, [в] LT";case 1:case 2:case 4:return"[В прошлый] dddd, [в] LT";case 3:case 5:case 6:return"[В прошлую] dddd, [в] LT"}else return this.day()===2?"[Во] dddd, [в] LT":"[В] dddd, [в] LT"},sameElse:"L"},relativeTime:{future:"через %s",past:"%s назад",s:"несколько секунд",ss:n,m:n,mm:n,h:"час",hh:n,d:"день",dd:n,w:"неделя",ww:n,M:"месяц",MM:n,y:"год",yy:n},meridiemParse:/ночи|утра|дня|вечера/i,isPM:function(l){return/^(дня|вечера)$/.test(l)},meridiem:function(l,u,_){return l<4?"ночи":l<12?"утра":l<17?"дня":"вечера"},dayOfMonthOrdinalParse:/\d{1,2}-(й|го|я)/,ordinal:function(l,u){switch(u){case"M":case"d":case"DDD":return l+"-й";case"D":return l+"-го";case"w":case"W":return l+"-я";default:return l}},week:{dow:1,doy:4}});return c})})();var $v={exports:{}},Sv=$v.exports;(function(e,t){(function(i,s){s(typeof pt=="function"?$t():i.moment)})(Sv,function(i){//! moment.js locale configuration
var s=i.defineLocale("en-gb",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(n){var a=n%10,c=~~(n%100/10)===1?"th":a===1?"st":a===2?"nd":a===3?"rd":"th";return n+c},week:{dow:1,doy:4}});return s})})();var kv={exports:{}},qv=kv.exports;(function(e,t){(function(i,s){s(typeof pt=="function"?$t():i.moment)})(qv,function(i){//! moment.js locale configuration
var s=/^(janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i,n=/(janv\.?|févr\.?|mars|avr\.?|mai|juin|juil\.?|août|sept\.?|oct\.?|nov\.?|déc\.?)/i,a=/(janv\.?|févr\.?|mars|avr\.?|mai|juin|juil\.?|août|sept\.?|oct\.?|nov\.?|déc\.?|janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i,c=[/^janv/i,/^févr/i,/^mars/i,/^avr/i,/^mai/i,/^juin/i,/^juil/i,/^août/i,/^sept/i,/^oct/i,/^nov/i,/^déc/i],l=i.defineLocale("fr",{months:"janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre".split("_"),monthsShort:"janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.".split("_"),monthsRegex:a,monthsShortRegex:a,monthsStrictRegex:s,monthsShortStrictRegex:n,monthsParse:c,longMonthsParse:c,shortMonthsParse:c,weekdays:"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),weekdaysShort:"dim._lun._mar._mer._jeu._ven._sam.".split("_"),weekdaysMin:"di_lu_ma_me_je_ve_sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Aujourd’hui à] LT",nextDay:"[Demain à] LT",nextWeek:"dddd [à] LT",lastDay:"[Hier à] LT",lastWeek:"dddd [dernier à] LT",sameElse:"L"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",ss:"%d secondes",m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",d:"un jour",dd:"%d jours",w:"une semaine",ww:"%d semaines",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"},dayOfMonthOrdinalParse:/\d{1,2}(er|)/,ordinal:function(u,_){switch(_){case"D":return u+(u===1?"er":"");default:case"M":case"Q":case"DDD":case"d":return u+(u===1?"er":"e");case"w":case"W":return u+(u===1?"re":"e")}},week:{dow:1,doy:4}});return l})})();var Cv={exports:{}},Pv=Cv.exports;(function(e,t){(function(i,s){s(typeof pt=="function"?$t():i.moment)})(Pv,function(i){//! moment.js locale configuration
var s=i.defineLocale("it",{months:"gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre".split("_"),monthsShort:"gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic".split("_"),weekdays:"domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato".split("_"),weekdaysShort:"dom_lun_mar_mer_gio_ven_sab".split("_"),weekdaysMin:"do_lu_ma_me_gi_ve_sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:function(){return"[Oggi a"+(this.hours()>1?"lle ":this.hours()===0?" ":"ll'")+"]LT"},nextDay:function(){return"[Domani a"+(this.hours()>1?"lle ":this.hours()===0?" ":"ll'")+"]LT"},nextWeek:function(){return"dddd [a"+(this.hours()>1?"lle ":this.hours()===0?" ":"ll'")+"]LT"},lastDay:function(){return"[Ieri a"+(this.hours()>1?"lle ":this.hours()===0?" ":"ll'")+"]LT"},lastWeek:function(){switch(this.day()){case 0:return"[La scorsa] dddd [a"+(this.hours()>1?"lle ":this.hours()===0?" ":"ll'")+"]LT";default:return"[Lo scorso] dddd [a"+(this.hours()>1?"lle ":this.hours()===0?" ":"ll'")+"]LT"}},sameElse:"L"},relativeTime:{future:"tra %s",past:"%s fa",s:"alcuni secondi",ss:"%d secondi",m:"un minuto",mm:"%d minuti",h:"un'ora",hh:"%d ore",d:"un giorno",dd:"%d giorni",w:"una settimana",ww:"%d settimane",M:"un mese",MM:"%d mesi",y:"un anno",yy:"%d anni"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}});return s})})();var Dv={exports:{}},Tv=Dv.exports;(function(e,t){(function(i,s){s(typeof pt=="function"?$t():i.moment)})(Tv,function(i){//! moment.js locale configuration
var s="ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.".split("_"),n="ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_"),a=[/^ene/i,/^feb/i,/^mar/i,/^abr/i,/^may/i,/^jun/i,/^jul/i,/^ago/i,/^sep/i,/^oct/i,/^nov/i,/^dic/i],c=/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,l=i.defineLocale("es",{months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),monthsShort:function(u,_){return u?/-MMM-/.test(_)?n[u.month()]:s[u.month()]:s},monthsRegex:c,monthsShortRegex:c,monthsStrictRegex:/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,monthsShortStrictRegex:/^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,monthsParse:a,longMonthsParse:a,shortMonthsParse:a,weekdays:"domingo_lunes_martes_miércoles_jueves_viernes_sábado".split("_"),weekdaysShort:"dom._lun._mar._mié._jue._vie._sáb.".split("_"),weekdaysMin:"do_lu_ma_mi_ju_vi_sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY H:mm",LLLL:"dddd, D [de] MMMM [de] YYYY H:mm"},calendar:{sameDay:function(){return"[hoy a la"+(this.hours()!==1?"s":"")+"] LT"},nextDay:function(){return"[mañana a la"+(this.hours()!==1?"s":"")+"] LT"},nextWeek:function(){return"dddd [a la"+(this.hours()!==1?"s":"")+"] LT"},lastDay:function(){return"[ayer a la"+(this.hours()!==1?"s":"")+"] LT"},lastWeek:function(){return"[el] dddd [pasado a la"+(this.hours()!==1?"s":"")+"] LT"},sameElse:"L"},relativeTime:{future:"en %s",past:"hace %s",s:"unos segundos",ss:"%d segundos",m:"un minuto",mm:"%d minutos",h:"una hora",hh:"%d horas",d:"un día",dd:"%d días",w:"una semana",ww:"%d semanas",M:"un mes",MM:"%d meses",y:"un año",yy:"%d años"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4},invalidDate:"Fecha inválida"});return l})})();var Mv={exports:{}},zv=Mv.exports;(function(e,t){(function(i,s){s(typeof pt=="function"?$t():i.moment)})(zv,function(i){//! moment.js locale configuration
var s="styczeń_luty_marzec_kwiecień_maj_czerwiec_lipiec_sierpień_wrzesień_październik_listopad_grudzień".split("_"),n="stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_września_października_listopada_grudnia".split("_"),a=[/^sty/i,/^lut/i,/^mar/i,/^kwi/i,/^maj/i,/^cze/i,/^lip/i,/^sie/i,/^wrz/i,/^paź/i,/^lis/i,/^gru/i];function c(_){return _%10<5&&_%10>1&&~~(_/10)%10!==1}function l(_,m,p){var y=_+" ";switch(p){case"ss":return y+(c(_)?"sekundy":"sekund");case"m":return m?"minuta":"minutę";case"mm":return y+(c(_)?"minuty":"minut");case"h":return m?"godzina":"godzinę";case"hh":return y+(c(_)?"godziny":"godzin");case"ww":return y+(c(_)?"tygodnie":"tygodni");case"MM":return y+(c(_)?"miesiące":"miesięcy");case"yy":return y+(c(_)?"lata":"lat")}}var u=i.defineLocale("pl",{months:function(_,m){return _?/D MMMM/.test(m)?n[_.month()]:s[_.month()]:s},monthsShort:"sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paź_lis_gru".split("_"),monthsParse:a,longMonthsParse:a,shortMonthsParse:a,weekdays:"niedziela_poniedziałek_wtorek_środa_czwartek_piątek_sobota".split("_"),weekdaysShort:"ndz_pon_wt_śr_czw_pt_sob".split("_"),weekdaysMin:"Nd_Pn_Wt_Śr_Cz_Pt_So".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Dziś o] LT",nextDay:"[Jutro o] LT",nextWeek:function(){switch(this.day()){case 0:return"[W niedzielę o] LT";case 2:return"[We wtorek o] LT";case 3:return"[W środę o] LT";case 6:return"[W sobotę o] LT";default:return"[W] dddd [o] LT"}},lastDay:"[Wczoraj o] LT",lastWeek:function(){switch(this.day()){case 0:return"[W zeszłą niedzielę o] LT";case 3:return"[W zeszłą środę o] LT";case 6:return"[W zeszłą sobotę o] LT";default:return"[W zeszły] dddd [o] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"%s temu",s:"kilka sekund",ss:l,m:l,mm:l,h:l,hh:l,d:"1 dzień",dd:"%d dni",w:"tydzień",ww:l,M:"miesiąc",MM:l,y:"rok",yy:l},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}});return u})})();var Iv={exports:{}},Hv=Iv.exports;(function(e,t){(function(i,s){s(typeof pt=="function"?$t():i.moment)})(Hv,function(i){//! moment.js locale configuration
var s="jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.".split("_"),n="jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec".split("_"),a=[/^jan/i,/^feb/i,/^(maart|mrt\.?)$/i,/^apr/i,/^mei$/i,/^jun[i.]?$/i,/^jul[i.]?$/i,/^aug/i,/^sep/i,/^okt/i,/^nov/i,/^dec/i],c=/^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i,l=i.defineLocale("nl",{months:"januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december".split("_"),monthsShort:function(u,_){return u?/-MMM-/.test(_)?n[u.month()]:s[u.month()]:s},monthsRegex:c,monthsShortRegex:c,monthsStrictRegex:/^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,monthsShortStrictRegex:/^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i,monthsParse:a,longMonthsParse:a,shortMonthsParse:a,weekdays:"zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag".split("_"),weekdaysShort:"zo._ma._di._wo._do._vr._za.".split("_"),weekdaysMin:"zo_ma_di_wo_do_vr_za".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[vandaag om] LT",nextDay:"[morgen om] LT",nextWeek:"dddd [om] LT",lastDay:"[gisteren om] LT",lastWeek:"[afgelopen] dddd [om] LT",sameElse:"L"},relativeTime:{future:"over %s",past:"%s geleden",s:"een paar seconden",ss:"%d seconden",m:"één minuut",mm:"%d minuten",h:"één uur",hh:"%d uur",d:"één dag",dd:"%d dagen",w:"één week",ww:"%d weken",M:"één maand",MM:"%d maanden",y:"één jaar",yy:"%d jaar"},dayOfMonthOrdinalParse:/\d{1,2}(ste|de)/,ordinal:function(u){return u+(u===1||u===8||u>=20?"ste":"de")},week:{dow:1,doy:4}});return l})})();var Av={exports:{}},Ov=Av.exports;(function(e,t){(function(i,s){s(typeof pt=="function"?$t():i.moment)})(Ov,function(i){//! moment.js locale configuration
var s=i.defineLocale("pt",{months:"janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro".split("_"),monthsShort:"jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez".split("_"),weekdays:"Domingo_Segunda-feira_Terça-feira_Quarta-feira_Quinta-feira_Sexta-feira_Sábado".split("_"),weekdaysShort:"Dom_Seg_Ter_Qua_Qui_Sex_Sáb".split("_"),weekdaysMin:"Do_2ª_3ª_4ª_5ª_6ª_Sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY HH:mm",LLLL:"dddd, D [de] MMMM [de] YYYY HH:mm"},calendar:{sameDay:"[Hoje às] LT",nextDay:"[Amanhã às] LT",nextWeek:"dddd [às] LT",lastDay:"[Ontem às] LT",lastWeek:function(){return this.day()===0||this.day()===6?"[Último] dddd [às] LT":"[Última] dddd [às] LT"},sameElse:"L"},relativeTime:{future:"em %s",past:"há %s",s:"segundos",ss:"%d segundos",m:"um minuto",mm:"%d minutos",h:"uma hora",hh:"%d horas",d:"um dia",dd:"%d dias",w:"uma semana",ww:"%d semanas",M:"um mês",MM:"%d meses",y:"um ano",yy:"%d anos"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}});return s})})();var Lv={exports:{}},Wv=Lv.exports;(function(e,t){(function(i,s){s(typeof pt=="function"?$t():i.moment)})(Wv,function(i){//! moment.js locale configuration
function s(u,_){var m=u.split("_");return _%10===1&&_%100!==11?m[0]:_%10>=2&&_%10<=4&&(_%100<10||_%100>=20)?m[1]:m[2]}function n(u,_,m){var p={ss:_?"секунда_секунди_секунд":"секунду_секунди_секунд",mm:_?"хвилина_хвилини_хвилин":"хвилину_хвилини_хвилин",hh:_?"година_години_годин":"годину_години_годин",dd:"день_дні_днів",MM:"місяць_місяці_місяців",yy:"рік_роки_років"};return m==="m"?_?"хвилина":"хвилину":m==="h"?_?"година":"годину":u+" "+s(p[m],+u)}function a(u,_){var m={nominative:"неділя_понеділок_вівторок_середа_четвер_п’ятниця_субота".split("_"),accusative:"неділю_понеділок_вівторок_середу_четвер_п’ятницю_суботу".split("_"),genitive:"неділі_понеділка_вівторка_середи_четверга_п’ятниці_суботи".split("_")},p;return u===!0?m.nominative.slice(1,7).concat(m.nominative.slice(0,1)):u?(p=/(\[[ВвУу]\]) ?dddd/.test(_)?"accusative":/\[?(?:минулої|наступної)? ?\] ?dddd/.test(_)?"genitive":"nominative",m[p][u.day()]):m.nominative}function c(u){return function(){return u+"о"+(this.hours()===11?"б":"")+"] LT"}}var l=i.defineLocale("uk",{months:{format:"січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня".split("_"),standalone:"січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень".split("_")},monthsShort:"січ_лют_бер_квіт_трав_черв_лип_серп_вер_жовт_лист_груд".split("_"),weekdays:a,weekdaysShort:"нд_пн_вт_ср_чт_пт_сб".split("_"),weekdaysMin:"нд_пн_вт_ср_чт_пт_сб".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY р.",LLL:"D MMMM YYYY р., HH:mm",LLLL:"dddd, D MMMM YYYY р., HH:mm"},calendar:{sameDay:c("[Сьогодні "),nextDay:c("[Завтра "),lastDay:c("[Вчора "),nextWeek:c("[У] dddd ["),lastWeek:function(){switch(this.day()){case 0:case 3:case 5:case 6:return c("[Минулої] dddd [").call(this);case 1:case 2:case 4:return c("[Минулого] dddd [").call(this)}},sameElse:"L"},relativeTime:{future:"за %s",past:"%s тому",s:"декілька секунд",ss:n,m:n,mm:n,h:"годину",hh:n,d:"день",dd:n,M:"місяць",MM:n,y:"рік",yy:n},meridiemParse:/ночі|ранку|дня|вечора/,isPM:function(u){return/^(дня|вечора)$/.test(u)},meridiem:function(u,_,m){return u<4?"ночі":u<12?"ранку":u<17?"дня":"вечора"},dayOfMonthOrdinalParse:/\d{1,2}-(й|го)/,ordinal:function(u,_){switch(_){case"M":case"d":case"DDD":case"w":case"W":return u+"-й";case"D":return u+"-го";default:return u}},week:{dow:1,doy:7}});return l})})();var Rv={exports:{}},Nv=Rv.exports;(function(e,t){(function(i,s){s(typeof pt=="function"?$t():i.moment)})(Nv,function(i){//! moment.js locale configuration
var s=i.defineLocale("zh-cn",{months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"周日_周一_周二_周三_周四_周五_周六".split("_"),weekdaysMin:"日_一_二_三_四_五_六".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日Ah点mm分",LLLL:"YYYY年M月D日ddddAh点mm分",l:"YYYY/M/D",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日dddd HH:mm"},meridiemParse:/凌晨|早上|上午|中午|下午|晚上/,meridiemHour:function(n,a){return n===12&&(n=0),a==="凌晨"||a==="早上"||a==="上午"?n:a==="下午"||a==="晚上"?n+12:n>=11?n:n+12},meridiem:function(n,a,c){var l=n*100+a;return l<600?"凌晨":l<900?"早上":l<1130?"上午":l<1230?"中午":l<1800?"下午":"晚上"},calendar:{sameDay:"[今天]LT",nextDay:"[明天]LT",nextWeek:function(n){return n.week()!==this.week()?"[下]dddLT":"[本]dddLT"},lastDay:"[昨天]LT",lastWeek:function(n){return this.week()!==n.week()?"[上]dddLT":"[本]dddLT"},sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}(日|月|周)/,ordinal:function(n,a){switch(a){case"d":case"D":case"DDD":return n+"日";case"M":return n+"月";case"w":case"W":return n+"周";default:return n}},relativeTime:{future:"%s后",past:"%s前",s:"几秒",ss:"%d 秒",m:"1 分钟",mm:"%d 分钟",h:"1 小时",hh:"%d 小时",d:"1 天",dd:"%d 天",w:"1 周",ww:"%d 周",M:"1 个月",MM:"%d 个月",y:"1 年",yy:"%d 年"},week:{dow:1,doy:4}});return s})})();class di{vis;bindingsCache;constructor(t){this.vis=t.vis,this.bindingsCache={}}static getObjPropValue(t,i){if(!t)return;const s=i.split(".");let n=t;for(const a of s)if(n=n[a],!n)return;return n}getSpecialValues(t,i,s,n){switch(t){case"username.val":return this.vis.user;case"login.val":return this.vis.loginRequired;case"instance.val":return this.vis.instance;case"language.val":return this.vis.language;case"wid.val":return s;case"wname.val":return(n==null?void 0:n.name)||s;case"view.val":return i;default:return}}static formatValue(t,i,s){typeof i!="number"&&(i=2,s=i);const n=s??".,";return typeof t!="number"&&(t=parseFloat(t)),Number.isNaN(t)?"":t.toFixed(i||0).replace(n[0],n[1]).replace(/\B(?=(\d{3})+(?!\d))/g,n[0])}formatMomentDate(t,i,s,n){if(s=typeof s<"u"?s:!1,!t)return"";let a;const c=typeof t;if(c==="string")a=n(t);else if(c!=="object"){const _=parseInt(t,10);_===t?_<946681200?a=n(t):a=_<9466812e5?n(_*1e3):n(_):a=n(t)}const l=i||this.vis.dateFormat||"DD.MM.YYYY";let u;if(s&&a&&n){if(a.isSame(n(),"day")){const _=this.vis._("Today");u=n(a).format(l.replace("dddd",_).replace("ddd",_).replace("dd",_))||""}if(a.isSame(n().subtract(1,"day"),"day")){const _=this.vis._("Yesterday");u=n(a).format(l.replace("dddd",_).replace("ddd",_).replace("dd",_))||""}}else u=n(a).format(l)||"";return u}static _put(t,i,s){let n="";switch(t){case"YYYY":case"JJJJ":case"ГГГГ":case"YY":case"JJ":case"ГГ":n=i.getFullYear(),t.length===2&&(n%=100);break;case"MM":case"M":case"ММ":case"М":n=i.getMonth()+1,n<10&&t.length===2&&(n=`0${n}`);break;case"DD":case"TT":case"D":case"T":case"ДД":case"Д":n=i.getDate(),n<10&&t.length===2&&(n=`0${n}`);break;case"hh":case"SS":case"h":case"S":case"чч":case"ч":n=i.getHours(),n<10&&t.length===2&&(n=`0${n}`);break;case"mm":case"m":case"мм":case"м":n=i.getMinutes(),n<10&&t.length===2&&(n=`0${n}`);break;case"ss":case"s":case"cc":case"c":n=i.getSeconds(),n<10&&t.length===2&&(n=`0${n}`),n=n.toString();break;case"sss":case"ссс":n=i.getMilliseconds(),n<10?n=`00${n}`:n<100&&(n=`0${n}`),n=n.toString();break}return s+=n,s}formatDate(t,i,s){if((typeof i=="string"&&i.toLowerCase()==="duration"||i===!0)&&(i=!0),typeof i!="boolean"&&(s=i,i=!1),!t)return"";let n;const a=typeof t;if(a==="string")n=new Date(t);else if(a!=="object"){const l=parseInt(t,10);l===t?l<946681200?(i=!0,n=new Date(t)):n=l<9466812e5?new Date(l*1e3):new Date(l):n=new Date(t)}let c="";if(n){const l=s||this.vis.dateFormat||"DD.MM.YYYY";i&&n.setMilliseconds(n.getMilliseconds()+n.getTimezoneOffset()*60*1e3);const u="YJГMМDTДhSчmмsс";let _="";for(let m=0;m<l.length;m++)u.includes(l[m])?_+=l[m]:(c=di._put(_,n,c),_="",c+=l[m]);c=di._put(_,n,c)}return c}extractBinding(t){if(!t)return null;if(!this.vis.editMode&&this.bindingsCache[t])return ne(this.bindingsCache[t]);const i=kn(t);return i&&this.bindingsCache&&!this.vis.editMode&&(this.bindingsCache[t]=ne(i)),i}formatBinding(t){const{view:i,wid:s,widget:n,widgetData:a,moment:c}=t;let{format:l}=t;const u=t.values||this.vis.states,_=this.extractBinding(t.format);for(const m of _){let p;if(m.visOid&&(p=this.getSpecialValues(m.visOid,i,s,a),p==null&&(p=u[m.visOid])),m.operations)for(const y of m.operations)if(y.op==="eval"){let b="";const j=y.arg;for(let x=0;x<j.length;x++)if(j[x].name)if(p=this.getSpecialValues(j[x].visOid,i,s,a),p==null&&(p=j[x].visOid.startsWith("widgetOid.")?u[j[x].visOid.replace(/^widgetOid\./g,`${n.data.oid}.`)]:u[j[x].visOid]),p===null)b+=`const ${j[x].name} = null;`;else if(p===void 0)b+=`const ${j[x].name} = undefined;`;else{const A=typeof p;if(A==="string")try{p=JSON.parse(p),typeof p=="object"?b+=`const ${j[x].name} = JSON.parse("${JSON.stringify(p).replace(/\x22/g,'\\"')}");`:b+=`const ${j[x].name} = "${p}";`}catch{b+=`const ${j[x].name} = "${p}";`}else A==="object"?b+=`const ${j[x].name} = ${JSON.stringify(p)};`:b+=`const ${j[x].name} = ${p.toString()};`}const{formula:T}=y;if(T&&T.includes("widget.")){const x=ne(n);x.data=a,b+=`const widget = ${JSON.stringify(x)};`}b+=`return ${y.formula};`,b.includes('\\"')&&(b=b.replace(/\\"/g,'"'));try{p=new Function(b)(),p&&typeof p=="object"&&(p=JSON.stringify(p))}catch(x){console.error(`Error in eval[value]: ${l}`),console.error(`Error in eval[script]: ${b}`),console.error(`Error in eval[error]: ${x}`),p=0}}else{const b=y.arg;switch(y.op){case"*":b!=null&&(p=parseFloat(p)*b);break;case"/":b!=null&&(p=parseFloat(p)/b);break;case"+":b!=null&&(p=parseFloat(p)+b);break;case"-":b!=null&&(p=parseFloat(p)-b);break;case"%":b!=null&&(p=parseFloat(p)%b);break;case"round":b===void 0?p=Math.round(parseFloat(p)):p=parseFloat(p).toFixed(b);break;case"pow":b===void 0?p=parseFloat(p)*parseFloat(p):p=parseFloat(p)**b;break;case"sqrt":p=Math.sqrt(parseFloat(p));break;case"hex":p=Math.round(parseFloat(p)).toString(16);break;case"hex2":p=Math.round(parseFloat(p)).toString(16),p.length<2&&(p=`0${p}`);break;case"HEX":p=Math.round(parseFloat(p)).toString(16).toUpperCase();break;case"HEX2":p=Math.round(parseFloat(p)).toString(16).toUpperCase(),p.length<2&&(p=`0${p}`);break;case"value":p=di.formatValue(p,parseInt(b,10));break;case"array":p=b[parseInt(p,10)];break;case"date":p=this.formatDate(p,b);break;case"momentDate":if(b!=null&&typeof b=="string"){const j=b.split(",");j.length===1?p=this.formatMomentDate(p,j[0],!1,c):j.length===2?p=this.formatMomentDate(p,j[0],!!j[1],c):p="error"}break;case"min":p=parseFloat(p),p=p<b?b:p;break;case"max":p=parseFloat(p),p=p>b?b:p;break;case"random":b===void 0?p=Math.random():p=Math.random()*b;break;case"floor":p=Math.floor(parseFloat(p));break;case"ceil":p=Math.ceil(parseFloat(p));break;case"json":if(p&&typeof p=="string")try{p=JSON.parse(p)}catch{console.warn(`Cannot parse JSON string: ${p}`)}p&&typeof p=="object"&&(p=di.getObjPropValue(p,b));break;default:console.warn(`Unknown operator: ${l}`);break}}l=l.replace(m.token,p)}return l=l.replace(/{{/g,"{").replace(/}}/g,"}"),l}}const V={dialog:{height:"calc(100% - 64px)"},content:{width:"calc(100% - 50px)",height:"calc(100% - 50px)",overflow:"hidden"},edit:{display:"inline-block",width:"100%",overflow:"hidden",verticalAlign:"top"},help:{marginLeft:10,display:"inline-block",width:"100%",overflow:"hidden",verticalAlign:"top"},space:{marginLeft:4},code:{fontFamily:"monospace"},indent:{paddingLeft:40},fieldContent:{fontSize:"80%","&&&&&&":{fontSize:"80%"}},clearPadding:{"&&&&":{p:0,m:0,minHeight:"initial"}},clickable:{cursor:"pointer",textDecoration:"underline"},valueTitle:{fontFamily:"monospace",fontWeight:"bold"},valueContent:{fontFamily:"monospace"}};class An extends D.Component{inputRef;visFormatUtils;calculateTimeout=null;constructor(t){super(t);let i=this.props.widget[this.props.isStyle?"style":"data"][this.props.field.name]||"";i==null?i="":i=i.toString(),this.state={value:i,editValue:i,showSelectIdDialog:!1,showEditBindingDialog:!1,newStyle:!0,error:"",values:{}},this.inputRef=qe.createRef()}static getDerivedStateFromProps(t,i){var n;let s=((n=t.widget[t.isStyle?"style":"data"])==null?void 0:n[t.field.name])||"";return s==null?s="":s=s.toString(),s!==i.value?{value:s}:null}detectOldBindingStyle(t){this.visFormatUtils=this.visFormatUtils||new di({vis:window.vis});const i=this.visFormatUtils.extractBinding(t);return i?!i.find(s=>{var n;return(n=s.token)==null?void 0:n.includes(":")}):!1}async calculateValue(t){if(this.visFormatUtils=this.visFormatUtils||new di({vis:window.vis}),t==null)return{calculatedEditValue:"",values:{}};t=t.toString();const i=this.visFormatUtils.extractBinding(t);if(!i)return t;const s=[];i.forEach(a=>{if(a.systemOid==="widgetOid"){const u=this.props.widget.data.oid;a.visOid=a.visOid.replace(/^widgetOid\./g,`${u}.`),a.systemOid=u,a.token=a.token.replace(/:widgetOid;/g,`:${u};`),a.format=a.format.replace(/:widgetOid;/g,`:${u};`);for(const _ of a.operations)if(Array.isArray(_.arg))for(const m of _.arg)typeof _.arg=="object"&&(m.visOid=m.visOid.replace(/^widgetOid\./g,`${u}.`),m.systemOid=u)}const c=a.visOid.split(".");(c[c.length-1]==="val"||c[c.length-1]==="ts"||c[c.length-1]==="lc"||c[c.length-1]==="ack")&&c.pop();const l=c.join(".");if(s.includes(l)||s.push(l),a.operations)for(let u=0;u<a.operations.length;u++){const _=a.operations[u].arg;if(Array.isArray(_)&&(_!=null&&_.length)){for(let m=0;m<_.length;m++)if(typeof _[m]=="object"){const p=_[m].systemOid;p&&!s.includes(p)&&s.push(p)}}}});const n={};for(let a=0;a<s.length;a++)if(s[a].includes(".")){const c=await this.props.socket.getState(s[a]);c&&Object.keys(c).forEach(l=>{const u=`${s[a]}.${l}`;i.find(_=>{var m;return _.visOid===u||((m=_.operations)==null?void 0:m.find(p=>Array.isArray(p==null?void 0:p.arg)&&(p==null?void 0:p.arg.find(y=>y.visOid===u))))})&&(n[u]=c[l])})}return{calculatedEditValue:this.visFormatUtils.formatBinding({format:t,view:this.props.selectedView,wid:this.props.selectedWidgets[0],widget:q.getState().visProject[this.props.selectedView].widgets[this.props.selectedWidgets[0]],widgetData:q.getState().visProject[this.props.selectedView].widgets[this.props.selectedWidgets[0]].data,values:n,moment:X}),values:n}}onChange(t){const i=JSON.parse(JSON.stringify(q.getState().visProject)),s=this.props.field;this.props.selectedWidgets.forEach(n=>{const a=this.props.isStyle?i[this.props.selectedView].widgets[n].style:i[this.props.selectedView].widgets[n].data;a[s.name]=t}),this.props.changeProject(i),this.setState({value:t})}renderSpecialNames(){return o.jsxs("div",{children:[o.jsx("h4",{children:"Special bindings"}),o.jsx("p",{children:"There are a number of different internal bindings to provide additional information in views:"}),o.jsxs("ul",{children:[o.jsxs("li",{children:[o.jsx("b",{style:V.clickable,onClick:()=>this.insertInText("username"),children:"username"}),o.jsx("span",{style:V.space,children:"- shows logged-in user"})]}),o.jsxs("li",{children:[o.jsx("b",{style:V.clickable,onClick:()=>this.insertInText("view"),children:"view"}),o.jsx("span",{style:V.space,children:"- name of actual view"})]}),o.jsxs("li",{children:[o.jsx("b",{style:V.clickable,onClick:()=>this.insertInText("wname"),children:"wname"}),o.jsx("span",{style:V.space,children:"- widget name"})]}),o.jsxs("li",{children:[o.jsx("b",{style:V.clickable,onClick:()=>this.insertInText("widget"),children:"widget"}),o.jsxs("span",{style:V.space,children:["- is an object with all data of widget. Can be used only in JS part, like",o.jsx("span",{style:{...V.code,...V.space},children:"{a:a;widget.data.name}"})]})]}),o.jsxs("li",{children:[o.jsx("b",{style:V.clickable,onClick:()=>this.insertInText("wid"),children:"wid"}),o.jsx("span",{style:V.space,children:"- name of actual widget"})]}),o.jsxs("li",{children:[o.jsx("b",{style:V.clickable,onClick:()=>this.insertInText("language"),children:"language"}),o.jsx("span",{style:V.space,children:"- can be"}),o.jsx("b",{style:V.space,children:"de"}),",",o.jsx("b",{style:V.space,children:"en"}),o.jsx("span",{style:V.space,children:"or"}),o.jsx("b",{style:V.space,children:"ru"}),"."]}),o.jsxs("li",{children:[o.jsx("b",{style:V.clickable,onClick:()=>this.insertInText("instance"),children:"instance"}),o.jsx("span",{style:V.space,children:"- browser instance"})]}),o.jsxs("li",{children:[o.jsx("b",{style:V.clickable,onClick:()=>this.insertInText("login"),children:"login"}),o.jsx("span",{style:V.space,children:"- if login required or not (e.g., to show/hide logout button)"})]}),o.jsxs("li",{children:[o.jsx("b",{style:V.clickable,onClick:()=>this.insertInText("local_"),children:"local_*"}),o.jsxs("span",{style:V.space,children:["- if state name is started from",o.jsx("b",{style:V.space,children:"local_"}),o.jsx("span",{style:V.space,children:"it will not be reported to ioBroker but will update all widgets, that depends on this state. (Local variable for current browser session)"})]})]})]})]})}static renderHelpForNewStyle(){return o.jsxs("div",{children:[o.jsx("h4",{children:"Bindings of objects"}),o.jsx("p",{children:"Normally, most of the widgets have ObjectID attribute and this attribute can be bound with some value of object ID."}),o.jsx("p",{children:"But there is another option for how to bind *any* attribute of widget to some ObjectID."}),o.jsxs("p",{children:["Just write into attribute",o.jsx("i",{style:V.space,children:"{object.id}"}),o.jsx("span",{style:V.space,children:"and it will be bound to this object's value."})]}),o.jsx("p",{children:"If you use the special format, you can even make some simple operations with it, e.g., multiplying or formatting."}),o.jsx("p",{children:"E.g., to calculate the hypotenuse of a triangle:"}),o.jsx("p",{style:V.code,children:"{h:javascript.0.myCustom.height;w:javascript.0.myCustom.width;Math.max(20, Math.sqrt(h*h + w*w))}"}),o.jsx("p",{style:V.space,children:"will be interpreted as function:"}),o.jsxs("p",{style:V.code,children:["value = await (async function () {",o.jsx("br",{}),o.jsx("span",{style:V.indent,children:"var h = (await getState('javascript.0.myCustom.height')).val;"}),o.jsx("br",{}),o.jsx("span",{style:V.indent,children:"var w = (await getState('javascript.0.myCustom.width')).val;"}),o.jsx("br",{}),o.jsx("span",{style:V.indent,children:"return Math.max(20, Math.sqrt(h * h + w * w));"}),o.jsx("br",{}),"})();"]}),o.jsx("p",{children:"or"}),o.jsxs("p",{children:[o.jsx("span",{style:V.code,children:"{h:javascript.0.myCustom.height;w:javascript.0.myCustom.width;h*w}"}),o.jsx("span",{style:V.space,children:"will just multiply height with width."})]}),o.jsx("p",{children:"You can use *any* javascript (browser) functions. Arguments must be defined with ':', if not, it will be interpreted as formula."}),o.jsx("p",{children:"Take care about types. All of them are defined as strings. To be sure, that value will be treated as number use parseFloat function."}),o.jsx("p",{children:"So our Hypotenuse calculation will be:"}),o.jsx("p",{style:V.code,children:"{h:javascript.0.myCustom.height;w:javascript.0.myCustom.width;Math.max(20, Math.sqrt(Math.pow(parseFloat(h), 2) + Math.pow(parseFloat(w), 2)))}"})]})}renderHelpForOldStyle(){return o.jsxs("div",{children:[o.jsx("h4",{children:"Deprecated format"}),o.jsx("p",{children:"Patten has the following format:"}),o.jsx("p",{children:o.jsx("span",{style:V.code,children:"{objectID;operation1;operation2;...}"})}),o.jsx("p",{children:"The following operations are supported:"}),o.jsxs("ul",{children:[o.jsxs("li",{children:[o.jsx("b",{style:V.clickable,onClick:()=>this.insertInText("*",{oldStyle:!0,desc:"Multiply with N",args:[{type:"number",label:"N"}]}),children:"*(N)"}),"- multiplying. Argument must be in brackets, like",o.jsx("i",{style:V.space,children:'"*(4)"'}),".",o.jsx("span",{style:V.space,children:"this sample, we multiply the value with 4."})]}),o.jsxs("li",{children:[o.jsx("b",{style:V.clickable,onClick:()=>this.insertInText("+",{oldStyle:!0,desc:"Add to N",args:[{type:"number",label:"N"}]}),children:"+(N)"}),"- add. Argument must be in brackets, like",o.jsx("i",{style:V.space,children:'"+(4.5)"'}),".",o.jsx("span",{style:V.space,children:"In this sample we add to value 4.5."})]}),o.jsxs("li",{children:[o.jsx("b",{style:V.clickable,onClick:()=>this.insertInText("-",{oldStyle:!0,desc:"Subtract N from value",args:[{type:"number",label:"N"}]}),children:"-(N)"}),"- subtract. Argument must be in brackets, like",o.jsx("i",{style:V.space,children:'"-(-674.5)"'}),".",o.jsx("span",{style:V.space,children:"In this sample we subtract from value -674.5."})]}),o.jsxs("li",{children:[o.jsx("b",{style:V.clickable,onClick:()=>this.insertInText("/",{oldStyle:!0,desc:"Divide by D",args:[{type:"number",label:"D"}]}),children:"/(D)"}),"- dividing. Argument must be in brackets, like",o.jsx("i",{style:V.space,children:'"/(0.5)"'}),".",o.jsx("span",{style:V.space,children:"In this sample, we divide the value by 0.5."})]}),o.jsxs("li",{children:[o.jsx("b",{style:V.clickable,onClick:()=>this.insertInText("%",{oldStyle:!0,desc:"Modulo with M",args:[{type:"number",label:"M"}]}),children:"%(M)"}),"- modulo. Argument must be in brackets, like",o.jsx("i",{style:V.space,children:'"%(5)"'}),".",o.jsx("span",{style:V.space,children:"In this sample, we take modulo of 5."})]}),o.jsxs("li",{children:[o.jsx("b",{style:V.clickable,onClick:()=>this.insertInText("round",{oldStyle:!0,desc:"Round to integer"}),children:"round"}),"- round the value."]}),o.jsxs("li",{children:[o.jsx("b",{style:V.clickable,onClick:()=>this.insertInText("round",{oldStyle:!0,desc:"Round with R places after comma",args:[{type:"number",label:"R"}]}),children:"round(R)"}),"- round the value with N places after point, e.g.,",o.jsx("i",{children:'"34.678;round(1) => 34.7"'})]}),o.jsxs("li",{children:[o.jsx("b",{style:V.clickable,onClick:()=>this.insertInText("hex",{oldStyle:!0,desc:"convert value to hexadecimal value"}),children:"hex"}),o.jsx("b",{children:"hex"}),"- convert value to hexadecimal value. All letters are lower cased."]}),o.jsxs("li",{children:[o.jsx("b",{style:V.clickable,onClick:()=>this.insertInText("hex2",{oldStyle:!0,desc:"Convert value to hexadecimal value. If value less 16, so the leading zero will be added"}),children:"hex2"}),o.jsx("b",{children:"hex2"}),"- convert value to hexadecimal value. All letters are lower cased. If value less 16, so the leading zero will be added."]}),o.jsxs("li",{children:[o.jsx("b",{style:V.clickable,onClick:()=>this.insertInText("HEX",{oldStyle:!0,desc:"Convert value to hexadecimal value. All letters are upper cased"}),children:"HEX"}),o.jsx("b",{children:"HEX"}),"- same as hex, but upper-cased."]}),o.jsxs("li",{children:[o.jsx("b",{style:V.clickable,onClick:()=>this.insertInText("HEX2",{oldStyle:!0,desc:"Convert value to hexadecimal value. All letters are upper cased. If value less 16, so the leading zero will be added"}),children:"HEX"}),o.jsx("b",{children:"HEX2"}),"- same as hex2, but upper-cased."]}),o.jsxs("li",{children:[o.jsx("b",{style:V.clickable,onClick:()=>this.insertInText("min",{oldStyle:!0,desc:"if value is less than N, take the N, else take the value",args:[{type:"number",label:"N"}]}),children:"min(N)"}),"- if value is less than N, take the N, else value"]}),o.jsxs("li",{children:[o.jsx("b",{style:V.clickable,onClick:()=>this.insertInText("max",{oldStyle:!0,desc:"if value is greater than M, take the M, else take the value",args:[{type:"number",label:"M"}]}),children:"max(N)"}),"- if value is greater than M, take the M, else value"]}),o.jsxs("li",{children:[o.jsx("b",{style:V.clickable,onClick:()=>this.insertInText("sqrt",{oldStyle:!0,desc:"square root"}),children:"sqrt"}),"- square root"]}),o.jsxs("li",{children:[o.jsx("b",{style:V.clickable,onClick:()=>this.insertInText("pow",{oldStyle:!0,desc:"power of N",args:[{type:"number",label:"n"}]}),children:"pow(n)"}),"- power of N."]}),o.jsxs("li",{children:[o.jsx("b",{style:V.clickable,onClick:()=>this.insertInText("pow",{oldStyle:!0,desc:"power of 2"}),children:"pow"}),"- power of 2."]}),o.jsxs("li",{children:[o.jsx("b",{style:V.clickable,onClick:()=>this.insertInText("floor",{oldStyle:!0,desc:"Math.floor"}),children:"floor"}),"- Math.floor"]}),o.jsxs("li",{children:[o.jsx("b",{style:V.clickable,onClick:()=>this.insertInText("ceil",{oldStyle:!0,desc:"Math.ceil"}),children:"ceil"}),"- Math.ceil"]}),o.jsxs("li",{children:[o.jsx("b",{style:V.clickable,onClick:()=>this.insertInText("random",{oldStyle:!0,desc:"Math.random"}),children:"random"}),o.jsx("b",{style:V.clickable,onClick:()=>this.insertInText("random",{oldStyle:!0,desc:"Math.random",args:[{type:"number",label:"R"}]}),children:"random(R)"}),"- Math.random() * R, or just Math.random() if no argument"]}),o.jsxs("li",{children:[o.jsx("b",{style:V.clickable,onClick:()=>this.insertInText("formatValue",{oldStyle:!0,desc:"format value according to system settings and use decimals",args:[{type:"number",label:"decimals"}]}),children:"formatValue(decimals)"}),"- format value according to system settings and use decimals"]}),o.jsxs("li",{children:[o.jsx("b",{style:V.clickable,onClick:()=>this.insertInText("date",{oldStyle:!0,desc:'format value as date. The format is like "YYYY-MM-DD hh:mm:ss.sss"',args:[{type:"string",label:"format"}]}),children:"date(format)"}),"- format value as date. The format is like:",o.jsx("i",{style:V.space,children:'"YYYY-MM-DD hh:mm:ss.sss"'}),". Format is the same as in",o.jsx("a",{style:V.space,href:"https://github.com/iobroker/iobroker.javascript/blob/master/README.md#formatdate",target:"_blank",rel:"noreferrer",children:"iobroker.javascript"}),".",o.jsx("span",{style:V.space,children:"If no format given, so the system date format will be used."})]}),o.jsxs("li",{children:[o.jsx("b",{style:V.clickable,onClick:()=>this.insertInText("momentDate",{oldStyle:!0,desc:"format value as date using Moment.js",link:"https://momentjs.com/docs/#/displaying/format/",args:[{type:"string",label:"format"},{type:"boolean",label:"Use today or yesterday"}]}),children:"momentDate(format, useTodayOrYesterday)"}),"- format value as date using Moment.js.",o.jsx("a",{style:V.space,href:"https://momentjs.com/docs/#/displaying/format/",target:"_blank",rel:"noreferrer",children:"formats must be entered according to the moment.js library"}),".",o.jsx("span",{style:V.space,children:"With 'useTodayOrYesterday=true' the 'moment.js' format 'ddd'/'dddd' are overwritten with today / yesterday"})]}),o.jsxs("li",{children:[o.jsx("b",{style:V.clickable,onClick:()=>this.insertInText("array",{oldStyle:!0,desc:"returns the element in given array according to index (converted from value)",args:[{type:"string",label:"array elements divided by comma"}]}),children:"array(element1,element2[,element3,element4])"}),"- returns the element of index. e.g.:",o.jsx("span",{style:{...V.code,...V.space},children:"{id.ack;array(ack is false,ack is true)}"})]})]}),o.jsx("p",{children:"You can use this pattern in any text, like"}),o.jsx("p",{style:V.code,children:"My calculations with {objectID1;operation1;operation2;...} are {objectID2;operation3;operation4;...}"}),o.jsx("p",{children:"or color calculations:"}),o.jsx("p",{style:V.code,children:"#{objectRed;/(100);*(255);HEX2}{objectGreen;HEX2}{objectBlue;HEX2}"}),o.jsxs("p",{children:["To show timestamp of object write",o.jsx("b",{style:V.space,children:".ts"}),o.jsx("span",{style:V.space,children:"or"}),o.jsx("b",{style:V.space,children:".lc"}),o.jsx("span",{style:V.space,children:"(for last change) at the end of object id, e.g.:"})]}),o.jsx("p",{style:V.code,children:"Last change: {objectRed.lc;date(hh:mm)}"})]})}getSelectedText(){return this.state.editValue.substring(this.inputRef.current.selectionStart,this.inputRef.current.selectionEnd)}renderEditBindDialog(){if(!this.state.showEditBindingDialog)return null;const t=this.state.values?Object.keys(this.state.values):[];return o.jsxs(f.Dialog,{sx:{"& .MuiDialog-paper":V.dialog},open:!0,maxWidth:"lg",fullWidth:!0,children:[o.jsx(f.DialogTitle,{children:w.I18n.t("Edit binding")}),o.jsxs(f.DialogContent,{style:V.content,children:[o.jsxs("div",{style:V.edit,children:[o.jsx(f.TextField,{variant:"standard",label:this.props.label,value:this.state.editValue,inputRef:this.inputRef,autoFocus:!0,onKeyUp:i=>{i.key==="Enter"&&this.setState({showEditBindingDialog:!1},()=>this.onChange(this.state.editValue))},slotProps:{input:{endAdornment:this.state.editValue?o.jsx(f.InputAdornment,{position:"end",children:o.jsx(f.IconButton,{onClick:()=>this.setState({editValue:""}),edge:"end",children:o.jsx(S.Clear,{})})}):null}},style:{width:"calc(100% - 72px)"},onChange:i=>this.setState({editValue:i.target.value},()=>{this.calculateTimeout&&clearTimeout(this.calculateTimeout),this.calculateTimeout=setTimeout(async()=>{this.calculateTimeout=null;const{calculatedEditValue:s,values:n}=await this.calculateValue(i.target.value);this.setState({calculatedEditValue:s,values:n})},200)}),helperText:o.jsxs("span",{children:[o.jsxs("span",{style:{opacity:.6,marginRight:4},children:[w.I18n.t("Calculate values"),":"]}),this.state.calculatedEditValue]})}),o.jsx(f.Button,{variant:"contained",color:"primary",style:{marginLeft:8},title:w.I18n.t("Insert object ID"),onClick:()=>{this.setState({showSelectIdDialog:!0,selectionValue:this.getSelectedText(),selectionStart:this.inputRef.current.selectionStart,selectionEnd:this.inputRef.current.selectionEnd})},children:"..."})]}),t.length?o.jsx("div",{style:V.values,children:t.map(i=>o.jsxs("div",{children:[o.jsx("span",{style:V.valueTitle,children:i}),o.jsx("span",{children:":"}),o.jsx("span",{style:{...V.space,...V.valueContent},children:`${this.state.values[i]===null||this.state.values[i]===void 0?"null":this.state.values[i].toString()} [${typeof this.state.values[i]}]`})]},i))}):null,o.jsxs("div",{style:{...V.help,height:`calc(100% - ${71+22*t.length}px)`},children:[o.jsxs("div",{children:[w.I18n.t("Old style"),o.jsx(f.Switch,{checked:this.state.newStyle,onChange:i=>this.setState({newStyle:i.target.checked})}),w.I18n.t("New style")]}),o.jsxs("div",{style:{height:"calc(100% - 38px)",overflow:"auto"},children:[this.renderSpecialNames(),this.state.newStyle?An.renderHelpForNewStyle():this.renderHelpForOldStyle()]})]})]}),o.jsxs(f.DialogActions,{children:[o.jsx(f.Button,{variant:"contained",disabled:this.state.editValue===this.state.value,color:"primary",startIcon:o.jsx(S.Check,{}),onClick:()=>{this.setState({showEditBindingDialog:!1},()=>this.onChange(this.state.editValue)),q.dispatch(Ze(!0))},children:w.I18n.t("Apply")}),o.jsx(f.Button,{variant:"contained",color:"grey",startIcon:o.jsx(S.Cancel,{}),onClick:()=>this.setState({showEditBindingDialog:!1}),children:w.I18n.t("Cancel")})]})]},"editDialog")}static isInBrackets(t,i){let s=0;for(let n=0;n<i;n++)t[n]==="{"?s++:t[n]==="}"&&s--;return s>0}renderDialogAskToModify(){return this.state.askToModify?o.jsxs(f.Dialog,{open:!0,onClose:()=>this.setState({askToModify:null}),children:[o.jsx(f.DialogTitle,{children:w.I18n.t("Edit binding")}),o.jsx(f.DialogContent,{children:o.jsx("div",{children:w.I18n.t("Do you want to modify the value or just use it as it is?")})}),o.jsxs(f.DialogActions,{children:[o.jsx(f.Button,{variant:"contained",color:"grey",onClick:()=>{const t=this.state.askToModify;t.modify=!0,this.setState({askToModify:null},()=>this.insertInText(t.text,t))},children:w.I18n.t("Modify")}),o.jsx(f.Button,{variant:"contained",color:"grey",onClick:()=>{const t=this.state.askToModify;t.modify=!1,this.setState({askToModify:null},()=>this.insertInText(t.text,t))},children:w.I18n.t("Just use without modification")})]})]},"modifyDialog"):null}renderDialogArguments(){return this.state.askForArguments?o.jsxs(f.Dialog,{open:!0,maxWidth:"md",fullWidth:!0,onClose:()=>this.setState({askForArguments:null}),children:[o.jsx(f.DialogTitle,{children:w.I18n.t("Arguments")}),o.jsxs(f.DialogContent,{children:[o.jsx("div",{children:this.state.askForArguments.desc}),this.state.askForArguments.args[0]?o.jsx("div",{children:o.jsx(f.TextField,{variant:"standard",label:this.state.askForArguments.args[0].label,value:this.state.askForArguments.arg1===void 0?"":this.state.askForArguments.arg1,onKeyDown:t=>{if(t.key==="Enter"){const i=this.state.askForArguments;i.args=null,this.setState({askForArguments:null},()=>this.insertInText(i.text,i))}},slotProps:{input:{endAdornment:this.state.askForArguments.arg1?o.jsx(f.InputAdornment,{position:"end",children:o.jsx(f.IconButton,{onClick:()=>this.setState({askForArguments:{...this.state.askForArguments,arg1:""}}),edge:"end",children:o.jsx(S.Clear,{})})}):null}},autoFocus:!0,onChange:t=>this.setState({askForArguments:{...this.state.askForArguments,arg1:t.target.value}})})}):null,this.state.askForArguments.args[1]?o.jsx("div",{children:o.jsx(f.FormControlLabel,{label:this.state.askForArguments.args[1].label,control:o.jsx(f.Checkbox,{checked:!!this.state.askForArguments.arg2,onChange:t=>this.setState({askForArguments:{...this.state.askForArguments,arg2:t.target.checked}})})})}):null]}),o.jsxs(f.DialogActions,{children:[o.jsx(f.Button,{variant:"contained",color:"grey",onClick:()=>{const t=this.state.askForArguments;t.args=null,this.setState({askForArguments:null},()=>this.insertInText(t.text,t))},children:w.I18n.t("Apply")}),o.jsx(f.Button,{variant:"contained",color:"grey",onClick:()=>this.setState({askForArguments:null}),children:w.I18n.t("Cancel")})]})]},"argsDialog"):null}async insertInText(t,i){i=i||{};const s=i.selectionStart===void 0?this.inputRef.current.selectionStart:i.selectionStart,n=i.selectionEnd===void 0?this.inputRef.current.selectionEnd:i.selectionEnd,a=An.isInBrackets(this.state.editValue,s);if(!i.oldStyle&&i.modify===void 0&&!a){this.setState({askToModify:{...i,text:t}});return}if(i.oldStyle&&i.args){this.setState({askForArguments:{...i,text:t}});return}let c=this.state.editValue;c?!a&&!i.oldStyle?i.modify?c=`${c.substring(0,s)}{v:${t};v * 1}${c.substring(n)}`:c=`${c.substring(0,s)}{${t}}${c.substring(n)}`:i.oldStyle?i.arg1!==void 0&&i.arg2!==void 0?c=`${c.substring(0,s)};${t}(${i.arg1}, ${i.arg2})${c.substring(n)}`:i.arg1!==void 0?c=`${c.substring(0,s)};${t}(${i.arg1})${c.substring(n)}`:c=`${c.substring(0,s)};${t}${c.substring(n)}`:c=c.substring(0,s)+t+c.substring(n):i.oldStyle?i.arg1!==void 0&&i.arg2!==void 0?c=`{YOUR_OBJECT_ID;${t}(${i.arg1}, ${i.arg2})`:i.arg1!==void 0?c=`{YOUR_OBJECT_ID;${t}(${i.arg1})`:c=`{YOUR_OBJECT_ID;${t}`:i.modify?c=`{v:${t};v * 1}`:c=`{${t}}`;const{calculatedEditValue:l,values:u}=await this.calculateValue(c);this.setState({editValue:c,calculatedEditValue:l,values:u},()=>{var _;if(this.inputRef.current.focus(),this.inputRef.current.setSelectionRange)this.inputRef.current.setSelectionRange(s,s);else if((_=this.inputRef.current)!=null&&_.createTextRange){const m=this.inputRef.current.createTextRange();m.collapse(!0),m.moveEnd("character",s),m.moveStart("character",s),m.select()}})}renderSelectIdDialog(){return this.state.showSelectIdDialog?o.jsx(w.SelectID,{imagePrefix:"../",selected:this.state.selectionValue,theme:this.props.theme,onOk:async t=>{let i;Array.isArray(t)?i=t[0]:i=t,i&&await this.insertInText(i,{selectionStart:this.state.selectionStart,selectionEnd:this.state.selectionEnd})},onClose:()=>this.setState({showSelectIdDialog:!1}),socket:this.props.socket},"selectDialog"):null}render(){return[o.jsx(f.TextField,{variant:"standard",sx:V.fieldContent,fullWidth:!0,placeholder:this.props.isDifferent?w.I18n.t("different"):null,slotProps:{input:{sx:{...V.clearPadding,...V.fieldContent},endAdornment:o.jsx(f.Button,{title:w.I18n.t("Edit binding"),disabled:this.props.disabled,size:"small",variant:"contained",onClick:async()=>{const{calculatedEditValue:t,values:i}=await this.calculateValue(this.state.value);this.setState({showEditBindingDialog:!0,editValue:this.state.value,calculatedEditValue:t,values:i,newStyle:!this.detectOldBindingStyle(this.state.value)})},children:o.jsx(S.Link,{})})}},error:!!this.state.error,helperText:typeof this.state.error=="string"?w.I18n.t(this.state.error):null,disabled:this.props.disabled,value:this.state.value,onChange:t=>this.onChange(t.target.value)},"text"),this.renderEditBindDialog(),this.renderSelectIdDialog(),this.renderDialogAskToModify(),this.renderDialogArguments()]}}const pn={"group.fixed":o.jsx(S.FilterAlt,{fontSize:"small"}),locked:o.jsx(S.Lock,{fontSize:"small"})},ue={accordionRoot:{p:0,m:0,minHeight:"initial","&:before":{opacity:0}},checkBox:{marginTop:"-4px !important"},emptyMoreIcon:{width:24,height:24},fieldTitle:{width:190,fontSize:"80%",position:"relative",lineHeight:"21px"},fieldTitleDisabled:{opacity:.8},fieldTitleError:e=>({color:e.palette.error.main}),colorizeDiv:{"& svg:hover":{opacity:1},"& svg::active":{transform:"scale(0.8)"}},colorize:{display:"none",float:"right",right:0,cursor:"pointer",opacity:.3},fieldRow:{"&:hover $colorize":{display:"initial"}},fieldDivider:{width:"100%",height:2,backgroundColor:"#999999"},groupButton:{width:24,height:24},grow:{flexGrow:1},fieldInput:{width:"100%"},groupSummary:{marginTop:"10px",borderRadius:"4px",padding:"2px"},groupSummaryExpanded:{marginTop:"10px",borderTopRightRadius:"4px",borderTopLeftRadius:"4px",padding:"2px"},accordionOpenedSummary:{fontWeight:"bold"},lightedPanel:e=>e.classes.lightedPanel,accordionDetails:e=>({...e.classes.lightedPanel,borderRadius:"0 0 4px 4px",flexDirection:"column",p:0,m:0}),infoIcon:{verticalAlign:"middle",marginLeft:3},bindIconSpan:{verticalAlign:"middle",marginLeft:3,float:"right",cursor:"pointer"},bindIcon:{width:16,height:16},smallImageDiv:{width:30,height:30,display:"inline-block",float:"right"},smallImage:{maxWidth:"100%",maxHeight:"100%"},widgetIcon:{overflow:"hidden",width:40,height:40,display:"inline-block",marginRight:4},icon:{width:"100%",height:"100%",objectFit:"contain"},widgetImage:{display:"block",width:30,height:30,transformOrigin:"0 0"},coloredWidgetSet:{padding:"0 3px",borderRadius:3},widgetName:{verticalAlign:"top",display:"inline-block"},widgetType:{verticalAlign:"top",display:"inline-block",fontSize:12,fontStyle:"italic",marginLeft:8},widgetNameText:{lineHeight:"20px"},fieldHelp:e=>({fontSize:12,fontStyle:"italic",pl:"16px",color:e.palette.mode==="dark"?"#00931a":"#014807"})},Ur=34,Ev=[".png",".jpg",".svg",".gif",".apng",".avif",".webp"];let Fv=class ai extends D.Component{fieldsBefore;fieldsSignals;imageRef;recalculateTimer=null;triggerTimer=null;constructor(t){super(t);const i=window.localStorage.getItem("attributesWidget");let s;if(i&&i[0]==="{")try{s=JSON.parse(i),Object.keys(s).forEach(n=>{s[n]===!0||s[n]===1?s[n]=1:s[n]=0})}catch{s={}}else s={};this.state={cssDialogOpened:!1,jsDialogOpened:!1,clearGroup:null,showWidgetCode:window.localStorage.getItem("showWidgetCode")==="true",triggerAllOpened:0,triggerAllClosed:0,accordionOpen:s,widgetsLoaded:t.widgetsLoaded,widgetTypes:null,fields:null,transitionTime:0,bindFields:null,customFields:null,isDifferent:null,commonValues:null,widgetType:null},this.fieldsBefore=ai.getFieldsBefore(),this.fieldsSignals=[];for(let n=0;n<=3;n++)this.fieldsSignals.push(ai.getSignals(n));this.imageRef=qe.createRef()}static getFieldsBefore(){return[{name:"fixed",fields:[{name:"name"},{name:"comment"},{name:"class",type:"class"},{name:"filterkey",type:"filters"},{name:"multi-views",type:"select-views"},{name:"locked",type:"checkbox"}]},{name:"visibility",fields:[{name:"visibility-oid",type:"id"},{name:"visibility-cond",type:"select",options:["==","!=","<=",">=","<",">","consist","not consist","exist","not exist"],default:"=="},{name:"visibility-val",default:1},{name:"visibility-groups",type:"groups"},{name:"visibility-groups-action",type:"select",options:["hide","disabled"],default:"hide"}]}]}static getSignals(t){const i={name:"signals",fields:[{name:"signals-count",label:"signals-count",type:"select",options:["0","1","2","3","4","5","6"],default:"0",noTranslation:!0,immediateChange:!0}]};for(let s=0;s<t;s++){const n=[{type:"delimiter",name:"ignored"},{name:`signals-oid-${s}`,type:"id"},{name:`signals-cond-${s}`,type:"select",noTranslation:!0,options:["==","!=","<=",">=","<",">","consist","not consist","exist","not exist"],default:"=="},{name:`signals-val-${s}`,default:"true"},{name:`signals-icon-${s}`,type:"image",default:"",hidden:`!!data["signals-smallIcon-${s}"]`},{name:`signals-smallIcon-${s}`,type:"icon64",default:"",label:`signals-smallIcon-${s}`,hidden:`!!data["signals-icon-${s}"]`},{name:`signals-color-${s}`,type:"color",label:"signals-color",default:"",hidden:`!data["signals-smallIcon-${s}"] && !data["signals-text-${s}"]`},{name:`signals-icon-size-${s}`,type:"slider",min:1,max:120,step:1,default:0},{name:`signals-icon-style-${s}`},{name:`signals-text-${s}`,label:"signals-text",tooltip:"signals-text-tooltip"},{name:`signals-text-style-${s}`},{name:`signals-text-class-${s}`},{name:`signals-blink-${s}`,type:"checkbox",default:!1},{name:`signals-horz-${s}`,type:"slider",min:-20,max:120,step:1,default:0},{name:`signals-vert-${s}`,type:"slider",min:-20,max:120,step:1,default:0},{name:`signals-hide-edit-${s}`,type:"checkbox",default:!1}];i.fields=i.fields.concat(n)}return i}static getFieldsAfter(t,i){const s=[{name:"css_common",isStyle:!0,fields:[{name:"position",type:"nselect",options:["","relative","sticky"]},{name:"display",type:"nselect",options:["","inline-block"]},{name:"left",type:"dimension"},{name:"top",type:"dimension"},{name:"width",type:"dimension"},{name:"height",type:"dimension"},{name:"z-index",type:"number",min:-200,max:200},{name:"overflow-x",type:"nselect",options:["","visible","hidden","scroll","auto","initial","inherit"]},{name:"overflow-y",type:"nselect",options:["","visible","hidden","scroll","auto","initial","inherit"]},{name:"opacity",type:"text"},{name:"cursor",type:"auto",options:["alias","all-scroll","auto","cell","col-resize","context-menu","copy","crosshair","default","e-resize","ew-resize","grab","grabbing","help","move","n-resize","ne-resize","nesw-resize","ns-resize","nw-resize","nwse-resize","no-drop","none","not-allowed","pointer","progress","row-resize","s-resize","se-resize","sw-resize","text","vertical-text","w-resize","wait","zoom-in","zoom-out","initial","inherit"]},{name:"transform"}]},{name:"css_font_text",isStyle:!0,fields:[{name:"color",type:"color"},{name:"text-align",type:"nselect",options:["","left","right","center","justify","initial","inherit"]},{name:"text-shadow"},{name:"font-family",type:"auto",options:i},{name:"font-style",type:"nselect",options:["","normal","italic","oblique","initial","inherit"]},{name:"font-variant",type:"nselect",options:["","normal","small-caps","initial","inherit"]},{name:"font-weight",type:"auto",options:["normal","bold","bolder","lighter","initial","inherit"]},{name:"font-size",type:"auto",options:["medium","xx-small","x-small","small","large","x-large","xx-large","smaller","larger","initial","inherit"]},{name:"line-height"},{name:"letter-spacing"},{name:"word-spacing"}]},{name:"css_background",isStyle:!0,fields:[{name:"background"},{name:"background-color",type:"color"},{name:"background-image"},{name:"background-repeat",type:"nselect",options:["","repeat","repeat-x","repeat-y","no-repeat","initial","inherit"]},{name:"background-attachment",type:"nselect",options:["","scroll","fixed","local","initial","inherit"]},{name:"background-position"},{name:"background-size"},{name:"background-clip",type:"nselect",options:["","border-box","padding-box","content-box","initial","inherit"]},{name:"background-origin",type:"nselect",options:["","padding-box","border-box","content-box","initial","inherit"]}]},{name:"css_border",isStyle:!0,fields:[{name:"border-width"},{name:"border-style",type:"nselect",options:["","dotted","dashed","solid","double","groove","ridge","inset","outset","hidden"]},{name:"border-color",type:"color"},{name:"border-radius"}]},{name:"css_shadow_padding",isStyle:!0,fields:[{name:"padding"},{name:"padding-left"},{name:"padding-top"},{name:"padding-right"},{name:"padding-bottom"},{name:"box-shadow"},{name:"margin-left"},{name:"margin-top"},{name:"margin-right"},{name:"margin-bottom"}]},{name:"last_change",fields:[{name:"lc-oid",type:"id"},{name:"lc-type",type:"select",options:["last-change","timestamp"],default:"last-change"},{name:"lc-is-interval",type:"checkbox",default:!0},{name:"lc-is-moment",type:"checkbox",default:!1},{name:"lc-format",type:"auto",options:["YYYY.MM.DD hh:mm:ss","DD.MM.YYYY hh:mm:ss","YYYY.MM.DD","DD.MM.YYYY","YYYY/MM/DD hh:mm:ss","YYYY/MM/DD","hh:mm:ss"],default:""},{name:"lc-position-vert",type:"select",options:["top","middle","bottom"],default:"top"},{name:"lc-position-horz",type:"select",options:["left","right"],default:"right"},{name:"lc-offset-vert",type:"slider",min:-120,max:120,step:1,default:0},{name:"lc-offset-horz",type:"slider",min:-120,max:120,step:1,default:0},{name:"lc-font-size",type:"auto",options:["","medium","xx-small","x-small","small","large","x-large","xx-large","smaller","larger","initial","inherit"],default:"12px"},{name:"lc-font-family",type:"auto",default:"",options:i},{name:"lc-font-style",type:"auto",options:["","normal","italic","oblique","initial","inherit"],default:""},{name:"lc-bkg-color",type:"color",default:""},{name:"lc-color",type:"color",default:""},{name:"lc-border-width",default:"0"},{name:"lc-border-style",type:"auto",options:["","none","hidden","dotted","dashed","solid","double","groove","ridge","inset","outset","initial","inherit"],default:""},{name:"lc-border-color",type:"color",default:""},{name:"lc-border-radius",type:"slider",min:0,max:20,step:1,default:10},{name:"lc-padding",type:"slider",min:0,max:20,step:1,default:3},{name:"lc-zindex",type:"slider",min:-10,max:20,step:1,default:0}]}];return(t.style.position==="relative"||t.style.position==="sticky")&&(s[0].fields=s[0].fields.filter(n=>n.name!=="left"&&n.name!=="top")),s}static checkFunction(t,i,s,n,a){try{let c;typeof t=="function"?c=t:c=new Function("data","index","style",`return ${t}`);const l=[];for(let _=0;_<n.length;_++){const m=i[s].widgets[n[_]],p=m==null?void 0:m.data,y=m==null?void 0:m.style;if(!m){console.warn(`Strange error, that widget ${n[_]} does not exists`);continue}l.push(c(p||{},a,y||{}))}let u=l[0];if(u&&l.find((_,m)=>m>0&&!_)&&(u=!1),u)return!0}catch(c){console.error(`Cannot execute hidden on "${t}": ${c}`)}return!1}componentDidMount(){this.state.widgetsLoaded&&this.setState({widgetTypes:Yi()},()=>this.recalculateFields()),this.setAccordionState()}static getDerivedStateFromProps(t,i){let s=null;return t.widgetsLoaded&&!i.widgetsLoaded&&(s={},s.widgetsLoaded=!0,s.widgetTypes=Yi(),q.dispatch(Ze(!0))),s}recalculateFields(){var T,x,A,L,W;if(!this.state.widgetTypes)return;console.log("Recalculate fields");const t=(T=q.getState().visProject[this.props.selectedView])==null?void 0:T.widgets;let i,s;const n={},a={common:this.props.selectedWidgets.length},c=[];t&&this.props.selectedWidgets.forEach((N,Y)=>{if(i=t[N],!i||(s=this.state.widgetTypes.find(G=>G.name===i.tpl),!s))return;let H;typeof s.params=="function"?H=s.params(i.data,null,{views:q.getState().visProject,view:this.props.selectedView,socket:this.props.socket,themeType:this.props.themeType,projectName:this.props.projectName,adapterName:this.props.adapterName,instance:this.props.instance,id:N,widget:i}):H=s.params;const R=al(H,Y,a,n,s.set,i.data);R&&c.push(R)});let l;const u=[],_={},m={},p={};this.props.selectedWidgets.length>1?(l=((x=c[0])==null?void 0:x.filter(N=>a[N.name]<this.props.selectedWidgets.length?!1:(N.fields=N.fields.filter(Y=>n[`${N.name}.${Y.name}`]===this.props.selectedWidgets.length),!0)))||[],this.props.selectedWidgets.forEach((N,Y)=>{var R,G;const H=t[N];if(H)if(Y===0)_.data={...H.data},_.style={...H.style};else{Object.keys(_.data).forEach(P=>{_.data[P]!==H.data[P]&&(_.data[P]=null,m[P]=!0)});const J=_.style;Object.keys(J).forEach(P=>{J[P]!==H.style[P]&&(J[P]=null,m[P]=!0)}),(R=H.data.bindings)==null||R.forEach(P=>!u.includes(`data_${P}`)&&u.push(`data_${P}`)),(G=H.style.bindings)==null||G.forEach(P=>!u.includes(`style_${P}`)&&u.push(`style_${P}`))}})):(l=c[0],(A=t[this.props.selectedWidgets[0]].data.bindings)==null||A.forEach(N=>!u.includes(`data_${N}`)&&u.push(`data_${N}`)),(L=t[this.props.selectedWidgets[0]].style.bindings)==null||L.forEach(N=>!u.includes(`style_${N}`)&&u.push(`style_${N}`))),p.bindFields=u.sort(),p.customFields=l,p.isDifferent=m,p.commonValues=_,p.widgetType=s;let y=3;if(this.props.selectedWidgets.length===1){const N=t[this.props.selectedWidgets[0]].data;if(y=0,N["signals-count"])y=parseInt(N["signals-count"],10);else{let Y=0;for(;N[`signals-oid-${Y}`];)Y++;y=Y+1,y>1&&q.dispatch(Og({widgetId:this.props.selectedWidgets[0],viewId:this.props.selectedView,data:{...i,data:{...i.data,"signals-count":y}}}))}}const b=ai.getFieldsAfter(this.props.selectedWidgets.length===1?i:_,this.props.fonts),j=this.fieldsSignals[y]||this.fieldsSignals[3];if(l){const N=l.map(Y=>({fields:Y.fields,name:Y.name,hidden:Y.hidden,label:Y.label,index:Y.index,iterable:Y.iterable,singleName:Y.singleName}));p.fields=[...this.fieldsBefore,...N,...b,j]}t&&((W=p.fields)==null||W.forEach(N=>{const Y=N.isStyle?"style":"data",H=this.props.selectedWidgets.find(R=>N.fields.find(J=>t[R][Y][J.name]!==void 0)!==void 0);N.hasValues=H!==void 0})),p.transitionTime=0,this.setState(p,()=>this.setAccordionState()),q.dispatch(Ze(!1))}componentWillUnmount(){this.recalculateTimer&&clearTimeout(this.recalculateTimer),this.recalculateTimer=null,this.triggerTimer&&clearTimeout(this.triggerTimer),this.triggerTimer=null}renderHeader(t){var s;let i;if(this.props.selectedWidgets.length===1){const n=t[this.props.selectedWidgets[0]].tpl,a=this.state.widgetTypes.find(y=>y.name===n);let c=(a==null?void 0:a.title)||"",l=a==null?void 0:a.setColor;a!=null&&a.label&&(c=w.I18n.t(a.label)),c=c.split("<br")[0],c=c.split("<span")[0],c=c.split("<div")[0];let u=a==null?void 0:a.set;if(a!=null&&a.setLabel)u=w.I18n.t(a.setLabel);else if(u){const y=this.state.widgetTypes.find(b=>b.set===u&&b.setLabel);y&&(l=y.setColor,u=w.I18n.t(y.setLabel))}let _=(a==null?void 0:a.preview)||"";if(_.startsWith("<img")){const y=_.match(/src="([^"]+)"/);y&&y[1]&&(_=y[1])}let m;if((s=a==null?void 0:a.preview)!=null&&s.startsWith("<img")){const y=(a==null?void 0:a.preview.match(/src="([^"]+)"/))||(a==null?void 0:a.preview.match(/src='([^']+)'/));y&&(m=o.jsx("img",{src:y[1],style:ue.icon,alt:this.props.selectedWidgets[0]}))}else a!=null&&a.preview&&Ev.find(y=>a.preview.toLowerCase().endsWith(y))&&(m=o.jsx("img",{src:a==null?void 0:a.preview,style:ue.icon,alt:this.props.selectedWidgets[0]}));m||(m=o.jsx("span",{style:ue.widgetImage,ref:this.imageRef,dangerouslySetInnerHTML:{__html:a==null?void 0:a.preview}}));let p;l&&(p=w.Utils.getInvertedColor(l,this.props.themeType,!1),p==="#DDD"?p="#FFF":p==="#111"&&(p="#000")),n==="_tplGroup"&&(c=w.I18n.t("group")),t[this.props.selectedWidgets[0]].marketplace&&(u=`${t[this.props.selectedWidgets[0]].marketplace.name}`,c=`${w.I18n.t("version")} ${t[this.props.selectedWidgets[0]].marketplace.version}`),i=o.jsxs("div",{style:{display:"flex",flexWrap:"wrap"},children:[_?o.jsx("div",{style:ue.widgetIcon,children:m}):null,o.jsx("div",{style:ue.widgetName,children:this.props.selectedWidgets[0]}),o.jsxs("div",{style:ue.widgetType,children:[o.jsx("div",{style:{...ue.widgetNameText,...p?ue.coloredWidgetSet:void 0,fontWeight:"bold",color:l,backgroundColor:p},children:u}),o.jsx("div",{style:ue.widgetNameText,children:c})]}),!t[this.props.selectedWidgets[0]].marketplace&&o.jsxs(o.Fragment,{children:[window.location.port==="3000"?o.jsx(f.Button,{onClick:()=>this.setState({cssDialogOpened:!0}),children:"CSS"}):null,window.location.port==="3000"?o.jsx(f.Button,{onClick:()=>this.setState({jsDialogOpened:!0}),children:"JS"}):null,this.state.cssDialogOpened?o.jsx(mm,{onClose:()=>this.setState({cssDialogOpened:!1}),widget:t[this.props.selectedWidgets[0]],onChange:y=>{const b=ne(q.getState().visProject);b[this.props.selectedView].widgets[this.props.selectedWidgets[0]].css=y,this.props.changeProject(b)},themeType:this.props.themeType,editMode:this.props.editMode}):null,this.state.jsDialogOpened?o.jsx(fm,{onClose:()=>this.setState({jsDialogOpened:!1}),widget:t[this.props.selectedWidgets[0]],onChange:y=>{const b=ne(q.getState().visProject);b[this.props.selectedView].widgets[this.props.selectedWidgets[0]].js=y,this.props.changeProject(b)},themeType:this.props.themeType,editMode:this.props.editMode}):null]})]})}else i=this.props.selectedWidgets.join(", ");return o.jsx("div",{style:{width:"100%",overflow:"hidden"},children:i},"header")}setAccordionState(t,i){if(!this.state.fields)return;const s=t||this.state.accordionOpen,n=!this.state.fields.find(c=>s[c.name]===0||s[c.name]===2),a=!this.state.fields.find(c=>s[c.name]===1);this.props.isAllClosed!==a&&setTimeout(()=>this.props.setIsAllClosed(a),50),this.props.isAllOpened!==n&&setTimeout(()=>this.props.setIsAllOpened(n),50),t&&JSON.stringify(t)!==JSON.stringify(this.state.accordionOpen)?(window.localStorage.setItem("attributesWidget",JSON.stringify(t)),this.setState({accordionOpen:t},i?()=>i():void 0)):i&&i(),setTimeout(()=>this.setState({transitionTime:200}),500)}componentDidUpdate(){var t;if((t=this.imageRef.current)!=null&&t.children[0]){const i=this.imageRef.current.children[0].clientHeight;i>Ur&&(this.imageRef.current.style.transform=`scale(${Ur/i})`)}}onGroupMove(t,i,s,n){t.stopPropagation();const a=ne(q.getState().visProject),c=this.state.fields.find(_=>_.name===`${s.group}-${i}`),l=a[this.props.selectedView].widgets,u={...this.state.accordionOpen};if(n==="delete"){if(s.indexTo){const _=this.state.fields.find(m=>{var p;return m.singleName===s.group&&((p=m.iterable)==null?void 0:p.isLast)});for(let m=i;m<_.index;m++){const p=this.state.fields.find(b=>b.name===`${s.group}-${m}`),y=this.state.fields.find(b=>b.name===`${s.group}-${m+1}`);this.props.selectedWidgets.forEach(b=>{const j=l[b].data;p.fields.forEach((T,x)=>j[p.fields[x].name]=j[y.fields[x].name]),j[`g_${s.group}-${m}`]=j[`g_${s.group}-${m+1}`],u[`${s.group}-${m}`]=u[`${s.group}-${m+1}`]})}this.props.selectedWidgets.forEach(m=>{const p=l[m].data;_.fields.forEach(y=>{delete p[y.name]}),delete p[`g_${s.group}-${_.index}`],delete u[`${s.group}-${_.index}`],p[s.indexTo]--}),this.setAccordionState(u,()=>{this.props.changeProject(a),q.dispatch(Ze(!0))})}return}if(n==="clone"){const _=this.state.fields.find(p=>{var y;return p.singleName===s.group&&((y=p.iterable)==null?void 0:y.isLast)}),m=_.index;this.props.selectedWidgets.forEach(p=>{const y=l[p].data;for(let b=m;b>i;b--)_.fields.forEach(j=>{const T=j.name.replace(/\d?\d+$/,b.toString());y[T.replace(/\d?\d+$/,(b+1).toString())]=y[T]}),y[`g_${s.group}-${b+1}`]=y[`g_${s.group}-${b}`],u[`${s.group}-${b+1}`]=u[`${s.group}-${b}`];_.fields.forEach(b=>{const j=b.name.replace(/\d?\d+$/,i.toString());y[j.replace(/\d?\d+$/,(i+1).toString())]=y[j]}),y[`g_${s.group}-${i+1}`]=!0,u[`${s.group}-${i+1}`]=1,y[s.indexTo]=m+1}),this.setAccordionState(u,()=>{this.props.changeProject(a),q.dispatch(Ze(!0))});return}if(n==="add"){const _=this.state.fields.find(p=>{var y;return p.singleName===s.group&&((y=p.iterable)==null?void 0:y.isLast)}),m=_.index+1;this.props.selectedWidgets.forEach(p=>{const y=l[p].data;_.fields.forEach((b,j)=>{const T=_.fields[j].name.replace(/\d?\d+$/,m.toString());y[T]=b.default??null}),y[`g_${s.group}-${m}`]=!0,u[`${s.group}-${m}`]=1,y[s.indexTo]=m}),this.setAccordionState(u,()=>{this.props.changeProject(a),q.dispatch(Ze(!0))})}else{const _=i+(n==="up"?-1:1),m=this.state.fields.find(p=>p.name===`${s.group}-${_}`);this.props.selectedWidgets.forEach(p=>{const y=l[p].data,b={};Object.keys(y).sort().forEach(T=>b[T]=y[T]),l[p].data=b,c.fields.forEach((T,x)=>{const A=b[m.fields[x].name];b[m.fields[x].name]=b[T.name],b[T.name]=A});let j=b[`g_${s.group}-${_}`];b[`g_${s.group}-${_}`]=b[`g_${s.group}-${i}`],b[`g_${s.group}-${i}`]=j,u[`${s.group}-${_}`]!==u[`${s.group}-${i}`]&&(j=u[`${s.group}-${_}`],u[`${s.group}-${_}`]=u[`${s.group}-${i}`],u[`${s.group}-${i}`]=j,this.setState({accordionOpen:u}))}),this.setAccordionState(u,()=>{this.props.changeProject(a),q.dispatch(Ze(!0))})}}renderGroupHeader(t){return o.jsx(f.AccordionSummary,{sx:{"&.MuiAccordionSummary-root":w.Utils.getStyle(this.props.theme,E.clearPadding,this.state.accordionOpen[t.name]===1&&t.hasValues?ue.groupSummaryExpanded:ue.groupSummary,ue.lightedPanel),"& .MuiAccordionSummary-content":w.Utils.getStyle(this.props.theme,E.clearPadding,this.state.accordionOpen[t.name]===1&&t.hasValues&&ue.accordionOpenedSummary),"& .Mui-expanded":E.clearPadding},expandIcon:t.hasValues?o.jsx(S.ExpandMore,{}):o.jsx("div",{style:ue.emptyMoreIcon}),children:o.jsxs("div",{style:{display:"flex",justifyContent:"space-between",width:"100%",alignItems:"center"},children:[o.jsxs("div",{style:{display:"flex",alignItems:"center"},children:[pn[`group.${t.singleName||t.name}`]?pn[`group.${t.singleName||t.name}`]:null,t.label?w.I18n.t(t.label)+(t.index!==void 0?` [${t.index}]`:""):window.vis._(`group_${t.singleName||t.name}`)+(t.index!==void 0?` [${t.index}]`:"")]}),t.iterable?o.jsxs(o.Fragment,{children:[o.jsx("div",{style:ue.grow}),t.iterable.indexTo?o.jsx(f.Tooltip,{title:w.I18n.t("Clone"),slotProps:{popper:{sx:{pointerEvents:"none"}}},children:o.jsx(f.IconButton,{style:ue.groupButton,size:"small",onClick:i=>this.onGroupMove(i,t.index,t.iterable,"clone"),children:o.jsx(S.ContentCopy,{})})}):null,t.iterable.indexTo?o.jsx(f.Tooltip,{title:w.I18n.t("Delete"),slotProps:{popper:{sx:{pointerEvents:"none"}}},children:o.jsx(f.IconButton,{style:ue.groupButton,size:"small",onClick:i=>this.onGroupMove(i,t.index,t.iterable,"delete"),children:o.jsx(S.Delete,{})})}):null,t.iterable.isFirst?o.jsx("div",{style:ue.groupButton}):o.jsx(f.Tooltip,{title:w.I18n.t("Move up"),slotProps:{popper:{sx:{pointerEvents:"none"}}},children:o.jsx(f.IconButton,{style:ue.groupButton,size:"small",onClick:i=>this.onGroupMove(i,t.index,t.iterable,"up"),children:o.jsx(S.ArrowUpward,{})})}),t.iterable.isLast?t.iterable.indexTo?o.jsx(f.Tooltip,{title:w.I18n.t("Add"),slotProps:{popper:{sx:{pointerEvents:"none"}}},children:o.jsx(f.IconButton,{style:ue.groupButton,size:"small",onClick:i=>this.onGroupMove(i,t.index,t.iterable,"add"),children:o.jsx(S.Add,{})})}):o.jsx("div",{style:ue.groupButton}):o.jsx(f.Tooltip,{title:w.I18n.t("Move down"),slotProps:{popper:{sx:{pointerEvents:"none"}}},children:o.jsx(f.IconButton,{style:ue.groupButton,size:"small",onClick:i=>this.onGroupMove(i,t.index,t.iterable,"down"),children:o.jsx(S.ArrowDownward,{})})})]}):null,o.jsx("div",{children:o.jsx(f.Checkbox,{checked:t.hasValues,onClick:i=>{if(t.hasValues){const s=t.isStyle?"style":"data";let n=!1;for(const a of this.props.selectedWidgets)for(const c of t.fields){const l=q.getState().visProject[this.props.selectedView].widgets[a][s][c.name];if(l!=null){n=!0;break}}n?this.setState({clearGroup:t}):this.onGroupDelete(t)}else{const s=ne(q.getState().visProject),n=t.isStyle?"style":"data";this.props.selectedWidgets.forEach(c=>{t.fields.forEach(l=>{const u=s[this.props.selectedView].widgets[c][n];u[l.name]===void 0&&(u[l.name]=l.default||null)}),s[this.props.selectedView].widgets[c].data[`g_${t.name}`]=!0});const a={...this.state.accordionOpen};a[t.name]=1,this.setAccordionState(a,()=>this.props.changeProject(s))}i.stopPropagation(),q.dispatch(Ze(!0))},size:"small",sx:w.Utils.getStyle(this.props.theme,E.fieldContent,E.clearPadding,ue.checkBox)})})]})})}changeBinding(t,i){const s=ne(q.getState().visProject),n=t?"style":"data";for(const a of this.props.selectedWidgets){const c=s[this.props.selectedView].widgets[a];c[n].bindings.includes(i)?c[n].bindings.splice(c[n].bindings.indexOf(i),1):c[n].bindings.push(i)}this.props.changeProject(s),q.dispatch(Ze(!0))}renderFieldRow(t,i,s){if(!i)return null;const n=Lo(q.getState(),this.props.selectedView,this.props.selectedWidgets[0]);let a,c;if(i.hidden&&(i.hidden===!0||ai.checkFunction(i.hidden,q.getState().visProject,this.props.selectedView,this.props.selectedWidgets,i.index)))return null;if(i.type==="help")return o.jsx(f.Box,{component:"tr",sx:ue.fieldRow,children:o.jsx(f.Box,{component:"td",colSpan:2,sx:ue.fieldHelp,style:i.style,children:i.noTranslation?i.text:w.I18n.t(i.text)})},s);if(i.type==="delimiter")return o.jsx(f.Box,{component:"tr",sx:ue.fieldRow,children:o.jsx("td",{colSpan:2,style:{...ue.fieldDivider,...i.style}})},s);i.error&&(a=ai.checkFunction(i.error,q.getState().visProject,this.props.selectedView,this.props.selectedWidgets,i.index)),i.disabled&&(i.disabled===!0?c=!0:c=!!ai.checkFunction(i.disabled,q.getState().visProject,this.props.selectedView,this.props.selectedWidgets,i.index));let l;i.label===""?l="":i.title?l=i.title:i.label?l=w.I18n.t(i.label):l=window.vis._(i.singleName||i.name)+(i.index!==void 0?` [${i.index}]`:"");const u={};l.trim().startsWith("<b")&&(l=l.match(/<b>(.*?)<\/b>/)[1],u.fontWeight="bold",u.color="#4dabf5"),l.trim().startsWith("<i")&&(l=l.match(/<i>(.*?)<\/i>/)[1],u.fontStyle="italic");const _=this.state.bindFields.includes(t.isStyle?`style_${i.name}`:`data_${i.name}`);return i.type==="delimiter"?o.jsx(f.Box,{component:"tr",sx:ue.fieldRow,children:o.jsx("td",{colSpan:2,children:o.jsx(f.Divider,{style:{borderBottomWidth:"thick"}})})},s):o.jsxs(f.Box,{component:"tr",sx:ue.fieldRow,children:[o.jsxs(f.Box,{component:"td",sx:w.Utils.getStyle(this.props.theme,ue.fieldTitle,c&&ue.fieldTitleDisabled,a&&ue.fieldTitleError),title:i.tooltip?w.I18n.t(i.tooltip):null,style:u,children:[pn[i.singleName||i.name]?pn[i.singleName||i.name]:null,l,i.type==="image"&&!this.state.isDifferent[i.name]&&(n!=null&&n.data[i.name])?o.jsx("div",{style:ue.smallImageDiv,children:o.jsx(w.Icon,{src:n.data[i.name].startsWith("_PRJ_NAME/")?n.data[i.name].replace("_PRJ_NAME/",`../${this.props.adapterName}.${this.props.instance}/${this.props.projectName}/`):n.data[i.name],style:ue.smallImage,onError:m=>{m.target.onerror=null,m.target.style.display="none"},alt:i.name})}):null,(i.type!=="custom"||i.label)&&(i.type==="checkbox"&&i.noBinding===!1||i.type!=="checkbox"&&!i.noBinding)?_?o.jsx("span",{style:ue.bindIconSpan,title:w.I18n.t("Deactivate binding and use field as standard input"),children:o.jsx(S.LinkOff,{onClick:()=>this.props.editMode&&this.changeBinding(t.isStyle,i.name),style:{...ue.bindIcon,cursor:c?"default":void 0}})}):o.jsx("span",{style:ue.bindIconSpan,title:w.I18n.t("Use field as binding"),children:o.jsx(S.Link,{style:{...ue.bindIcon,cursor:c?"default":void 0},onClick:()=>this.props.editMode&&this.changeBinding(t.isStyle,i.name)})}):null,t.isStyle?o.jsx(f.Box,{component:"span",sx:ue.colorizeDiv,children:o.jsx(S.Colorize,{fontSize:"small",style:ue.colorize,onClick:()=>this.props.cssClone(i.name,m=>{if(m!=null){const p=ne(q.getState().visProject);this.props.selectedWidgets.forEach(y=>{p[this.props.selectedView].widgets[y]&&(p[this.props.selectedView].widgets[y].style=p[this.props.selectedView].widgets[y].style||{},p[this.props.selectedView].widgets[y].style[i.name]=m)}),this.props.changeProject(p)}})})}):null,i.tooltip?o.jsx(S.Info,{style:ue.infoIcon}):null]}),o.jsx(f.Box,{component:"td",children:o.jsx("div",{style:ue.fieldInput,children:_?o.jsx(An,{theme:this.props.theme,disabled:c,field:i,label:l,widget:this.props.selectedWidgets.length>1?this.state.commonValues:n,isStyle:t.isStyle,selectedView:this.props.selectedView,selectedWidgets:this.props.selectedWidgets,isDifferent:this.state.isDifferent[i.name],socket:this.props.socket,changeProject:this.props.changeProject}):o.jsx(Dl,{widgetType:this.state.widgetType,themeType:this.props.themeType,theme:this.props.theme,disabled:c,field:i,widget:this.props.selectedWidgets.length>1?this.state.commonValues:n,widgetId:this.props.selectedWidgets.length>1?null:this.props.selectedWidgets[0],isStyle:t.isStyle,index:t.index,isDifferent:this.state.isDifferent[i.name],selectedView:this.props.selectedView,socket:this.props.socket,changeProject:this.props.changeProject,fonts:this.props.fonts,adapterName:this.props.adapterName,instance:this.props.instance,projectName:this.props.projectName,onPxToPercent:this.props.onPxToPercent,onPercentToPx:this.props.onPercentToPx,userGroups:this.props.userGroups,error:a,selectedWidgets:this.props.selectedWidgets})})})]},s)}renderGroupBody(t){return this.state.accordionOpen[t.name]===0||!t.hasValues?null:o.jsx(f.AccordionDetails,{sx:ue.accordionDetails,children:o.jsx("table",{style:{width:"100%"},children:o.jsx("tbody",{children:t.fields.map((i,s)=>this.renderFieldRow(t,i,s))})})})}renderGroup(t){return o.jsxs(f.Accordion,{sx:{"&.MuiAccordion-root":ue.accordionRoot,"& .Mui-expanded":E.clearPadding},square:!0,elevation:0,expanded:this.state.accordionOpen[t.name]===1&&t.hasValues,onChange:(i,s)=>{const n={...this.state.accordionOpen};n[t.name]=s?1:2,this.setAccordionState(n,()=>{s||setTimeout(()=>{const a={...this.state.accordionOpen};a[t.name]=0},200)})},TransitionProps:{timeout:this.state.transitionTime},children:[this.renderGroupHeader(t),this.renderGroupBody(t)]},t.name)}onGroupDelete(t){const i=ne(q.getState().visProject),s=t.isStyle?"style":"data";this.props.selectedWidgets.forEach(n=>{t.fields.forEach(a=>{delete i[this.props.selectedView].widgets[n][s][a.name]}),delete i[this.props.selectedView].widgets[n].data[`g_${t.name}`]}),this.props.changeProject(i),q.dispatch(Ze(!0))}render(){var n;if(q.getState().recalculateFields&&!this.recalculateTimer&&(this.recalculateTimer=setTimeout(()=>{this.recalculateTimer=null,this.recalculateFields()},50)),!this.state.widgetTypes)return null;const t=(n=q.getState().visProject[this.props.selectedView])==null?void 0:n.widgets;let i=0;if(t&&this.props.selectedWidgets.forEach(a=>{t[a]&&this.state.widgetTypes.find(c=>c.name===t[a].tpl)&&i++}),!t||this.props.selectedWidgets.length!==i)return null;this.props.triggerAllOpened!==this.state.triggerAllOpened&&(this.triggerTimer=this.triggerTimer||setTimeout(()=>{var c;this.triggerTimer=null;const a={};(c=this.state.fields)==null||c.forEach(l=>a[l.name]=1),this.setState({triggerAllOpened:this.props.triggerAllOpened},()=>this.setAccordionState(a))},50)),this.props.triggerAllClosed!==this.state.triggerAllClosed&&(this.triggerTimer=this.triggerTimer||setTimeout(()=>{var c;this.triggerTimer=null;const a={};(c=this.state.fields)==null||c.forEach(l=>a[l.name]=0),this.setState({triggerAllClosed:this.props.triggerAllClosed},()=>this.setAccordionState(a))},50));let s=null;if(this.state.showWidgetCode)try{s=JSON.stringify(this.state.customFields,null,2)}catch{}return[this.renderHeader(t),this.state.fields?o.jsxs("div",{style:{height:"calc(100% - 34px)",overflowY:"auto"},children:[this.state.fields.map(a=>a.hidden&&(a.hidden===!0||ai.checkFunction(a.hidden,q.getState().visProject,this.props.selectedView,this.props.selectedWidgets,a.index))?null:this.renderGroup(a)),this.state.clearGroup?o.jsx(ot,{title:"Are you sure",onClose:()=>this.setState({clearGroup:null}),action:()=>this.onGroupDelete(this.state.clearGroup),actionTitle:"Clear",children:w.I18n.t("Fields of group will be cleaned")}):null,o.jsx(f.Button,{style:{opacity:this.state.showWidgetCode?1:0},onClick:()=>{window.localStorage.setItem("showWidgetCode",this.state.showWidgetCode?"false":"true"),this.setState({showWidgetCode:!this.state.showWidgetCode})},startIcon:o.jsx(S.Code,{}),children:this.state.showWidgetCode?w.I18n.t("hide code"):w.I18n.t("show code")}),this.state.showWidgetCode?o.jsxs("pre",{children:[JSON.stringify(Lo(q.getState(),this.props.selectedView,this.props.selectedWidgets[0]),null,2),s]}):null]},"groups"):null]}};function Vv(e){const t=D.useRef();return D.useEffect(()=>{t.current=e},[e]),t.current}const mn={blockHeader:e=>e.classes.blockHeader,lightedPanel:e=>e.classes.lightedPanel,viewTabs:e=>e.classes.viewTabs,viewTab:e=>e.classes.viewTab},Bv={View:am,Widget:Fv,CSS:Zp,Scripts:Xp},Uv=e=>{var b;const[t,i]=D.useState(window.localStorage.getItem("Attributes")?window.localStorage.getItem("Attributes"):"View"),[s,n]=D.useState(!1),[a,c]=D.useState(!0),[l,u]=D.useState(0),[_,m]=D.useState(0),p=Vv(e.selectedWidgets);if(D.useEffect(()=>{t==="Widget"&&!e.selectedWidgets.length&&i("View"),p&&!p.length&&e.selectedWidgets.length&&i("Widget")},[e.selectedWidgets]),!e.openedViews.length)return null;const y=Bv[t];return o.jsxs(o.Fragment,{children:[o.jsxs(f.Typography,{variant:"h6",gutterBottom:!0,sx:w.Utils.getStyle(e.theme,mn.blockHeader,mn.lightedPanel),style:{display:"flex",lineHeight:"34px",height:34},children:[o.jsx(S.ListAlt,{style:{marginTop:4,marginRight:4}}),w.I18n.t("Attributes"),o.jsx("div",{style:{flex:1}}),t==="View"||t==="Widget"?o.jsxs("div",{style:{textAlign:"right"},children:[s?o.jsx(f.IconButton,{size:"small",disabled:!0,children:o.jsx(S.UnfoldMore,{})}):o.jsx(f.Tooltip,{title:w.I18n.t("Expand all"),slotProps:{popper:{sx:{pointerEvents:"none"}}},children:o.jsx(f.IconButton,{size:"small",onClick:()=>u(l+1),children:o.jsx(S.UnfoldMore,{})})}),a?o.jsx(f.IconButton,{size:"small",disabled:!0,children:o.jsx(S.UnfoldLess,{})}):o.jsx(f.Tooltip,{title:w.I18n.t("Collapse all"),slotProps:{popper:{sx:{pointerEvents:"none"}}},children:o.jsx(f.IconButton,{onClick:()=>m(_+1),children:o.jsx(S.UnfoldLess,{})})})]}):null,o.jsx(f.Tooltip,{title:w.I18n.t("Hide attributes"),slotProps:{popper:{sx:{pointerEvents:"none"}}},children:o.jsx(f.IconButton,{size:"small",onClick:()=>e.onHide(!0),children:o.jsx(S.Clear,{})})})]}),o.jsx(f.Tabs,{sx:mn.viewTabs,value:t||"View",variant:"scrollable",scrollButtons:"auto",children:["View","Widget","CSS","Scripts"].map(j=>o.jsx(f.Tab,{label:w.I18n.t(j),value:j,disabled:j==="Widget"&&!e.selectedWidgets.length,sx:mn.viewTab,onClick:()=>{i(j),window.localStorage.setItem("Attributes",j)}},j))}),o.jsx("div",{style:{height:"calc(100% - 89px",overflowY:"hidden"},children:t==="Widget"&&!(e.widgetsLoaded&&e.selectedView&&((b=e.selectedWidgets)!=null&&b.length))?null:o.jsx(y,{adapterId:e.adapterId,adapterName:e.adapterName,...e,classes:{},setIsAllOpened:n,setIsAllClosed:c,isAllOpened:s,isAllClosed:a,triggerAllOpened:l,triggerAllClosed:_},t)})]})};function Yv(e){return Ee({attr:{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},child:[{tag:"path",attr:{d:"M21 12a9 9 0 1 1 -18 0a9 9 0 0 1 18 0z"},child:[]},{tag:"path",attr:{d:"M14 9a2 2 0 1 1 -4 0a2 2 0 0 1 4 0z"},child:[]},{tag:"path",attr:{d:"M12 16h.01"},child:[]}]})(e)}const Gv={blind:o.jsx(S.Blinds,{}),dimmer:o.jsx(S.TipsAndUpdates,{}),door:o.jsx(S.SensorDoor,{}),fireAlarm:o.jsx(S.Whatshot,{}),floodAlarm:o.jsx(S.Water,{}),humidity:o.jsx(S.WaterDrop,{}),levelSlider:o.jsx(S.Tune,{}),light:o.jsx(S.Lightbulb,{}),lock:o.jsx(S.Lock,{}),media:o.jsx(S.PlayArrowRounded,{}),motion:o.jsx(S.DirectionsRun,{}),rgb:o.jsx(S.Palette,{}),rgbSingle:o.jsx(S.Palette,{}),rgbwSingle:o.jsx(S.Palette,{}),ct:o.jsx(S.Palette,{}),hue:o.jsx(S.Palette,{}),socket:o.jsx(S.Power,{}),vacuumCleaner:o.jsx(Yv,{}),temperature:o.jsx(S.Thermostat,{}),thermostat:o.jsx(S.Thermostat,{}),volume:o.jsx(S.VolumeUp,{}),volumeGroup:o.jsx(S.VolumeUp,{}),weatherForecast:o.jsx(S.WbSunny,{}),window:o.jsx(S.Window,{}),windowTilt:o.jsx(S.Window,{}),unknown:o.jsx(S.QuestionMark,{})},jc=async e=>{const t=await e.getObjectViewSystem("state","","香"),i=await e.getObjectViewSystem("channel","","香"),s=await e.getObjectViewSystem("device","","香"),n=await e.getObjectViewSystem("folder","","香"),a=await e.getObjectViewSystem("enum","","香");return Object.values(t).concat(Object.values(i)).concat(Object.values(s)).concat(Object.values(n)).concat(Object.values(a)).reduce((c,l)=>(c[l._id]=l,c),{})};function ws(e,t,i){i||=".";let s="";const n=e==null?void 0:e.common;if(n){const a=n.icon;if(a)if(a.startsWith("data:image/"))s=a;else if(a.includes(".")){let c;e.type==="instance"||e.type==="adapter"?typeof n.name=="object"?s=`${i}/adapter/${n.name.en}/${a}`:s=`${i}/adapter/${n.name}/${a}`:t!=null&&t.startsWith("system.adapter.")?(c=t.split(".",3),a[0]==="/"?c[2]+=a:c[2]+=`/${a}`,s=`${i}/adapter/${c[2]}`):(c=t.split(".",2),a[0]==="/"?c[0]+=a:c[0]+=`/${a}`,s=`${i}/adapter/${c[0]}`)}else return null}return s||null}const Jv=async e=>{var y,b,j,T;const t=await jc(e),i=Object.keys(t).sort(),s=new Ug,n=[],a=["UNREACH_STICKY"],c=[Yg.Types.info],l=[],u=[],_=[];i.forEach(x=>{var A,L,W;((A=t[x])==null?void 0:A.type)==="enum"?l.push(x):(W=(L=t[x])==null?void 0:L.common)!=null&&W.smartName&&_.push(x)}),l.forEach(x=>{x.startsWith("enum.rooms.")&&u.push(x);const A=t[x].common.members;A!=null&&A.length&&A.forEach(L=>{t[L]&&(_.includes(L)||_.push(L))})});const m={id:"",objects:t,_keysOptional:i,_usedIdsOptional:n,ignoreIndicators:a,excludedTypes:c},p=[];_.forEach(x=>{m.id=x;const A=s.detect(m);A&&A.forEach(L=>{const W=L.states.find(P=>P.id).id;if(p.find(P=>P.devices.find(oe=>oe._id===W)))return;const N={_id:W,common:t[W].common,type:t[W].type,deviceType:L.type,states:L.states.filter(P=>P.id).map(P=>(t[P.id].name=P.name,t[P.id].common.role=P.defaultRole,t[P.id]))},Y=W.split(".");let H,R;(t[W].type==="channel"||t[W].type==="state")&&(Y.pop(),H=Y.join("."),t[H]&&(t[H].type==="channel"||t[H].type==="folder")?(Y.pop(),R=Y.join("."),(!t[R]||t[R].type!=="device"&&t[R].type!=="folder")&&(R=null)):H=null);const G=u.find(P=>t[P].common.members.includes(W)||H&&t[P].common.members.includes(H)?!0:R&&t[P].common.members.includes(R));let J;G?(J=p.find(P=>P._id===G),J||(J={_id:G,common:t[G].common,devices:[]},p.push(J))):(J=p.find(P=>P._id==="unknown"),J||(J={_id:"unknown",common:{name:"unknown",icon:"?"},devices:[]},p.push(J))),N.roomName=J.common.name,J.devices.push(N)})});for(const x of p)for(const A of x.devices)if(A.type==="state"||A.type==="channel"){const L=A._id.split(".");L.pop();const W=t[L.join(".")];if(W&&(W.type==="channel"||W.type==="device"||W.type==="folder")){A.common.name=((y=W.common)==null?void 0:y.name)||A.common.name,W.common.icon&&(A.common.icon=ws(W,W._id,"../..")),L.pop();const N=t[L.join(".")];(N==null?void 0:N.type)==="device"&&((b=N.common)!=null&&b.icon)&&(A.common.name=N.common.name||A.common.name,A.common.icon=ws(N,N._id,"../.."))}else A.common.name=((j=W==null?void 0:W.common)==null?void 0:j.name)||A.common.name,(T=W==null?void 0:W.common)!=null&&T.icon&&(A.common.icon=ws(W,W._id,"../.."))}else A.common.icon=ws(A,A._id,"../..");return p},Kv={deviceIcons:Gv,detectDevices:Jv,getObjectIcon:ws,allObjects:jc,getNewWidgetId:Gi,getNewWidgetIdNumber:Lg},Zv=[".png",".jpg",".svg",".gif",".apng",".avif",".webp"],Ft={widget:{borderStyle:"solid",borderColor:"gray",borderWidth:1,borderRadius:8,backgroundColor:"orange",width:"100%",display:"inline-flex",margin:4,minHeight:36},widgetTitle:{textAlign:"left",marginLeft:8,flex:1,alignSelf:"center",color:"black"},widgetImage:{width:30,height:30,transformOrigin:"0 0"},widgetImageWithSrc:{maxWidth:60,maxHeight:32,width:"auto",borderRadius:4},widgetTooltip:{"& $widgetImage":{zoom:.6},"& $widgetImageWithSrc":{height:64}},widgetImageContainer:{display:"flex",padding:4,alignItems:"center",overflow:"hidden"},widgetMarketplace:{fontSize:"80%",fontStyle:"italic"},widgetDeleted:{marginTop:9,color:"#F00"}},Yr=34,Gr=e=>{var y,b,j,T,x,A;const t=D.useRef(),i={};D.useEffect(()=>{var L;if((L=t.current)!=null&&L.children[0]){const W=t.current.children[0].clientHeight;W>Yr&&(t.current.style.transform=`scale(${Yr/W})`)}},[t]),(y=e.widgetType)!=null&&y.color?i.backgroundColor=e.widgetType.color:(b=e.widgetSetProps)!=null&&b.color?i.backgroundColor=e.widgetSetProps.color:window.visSets&&((j=window.visSets[e.widgetSet])!=null&&j.color)&&(i.backgroundColor=window.visSets[e.widgetSet].color);const s={};i.backgroundColor&&(w.Utils.isUseBright(i.backgroundColor)?s.color="white":s.color="black");let n;if((T=e.widgetType.preview)!=null&&T.startsWith("<img")){const L=e.widgetType.preview.match(/src="([^"]+)"/)||e.widgetType.preview.match(/src='([^']+)'/);L&&(n=o.jsx("img",{src:L[1],style:Ft.widgetImageWithSrc,alt:e.widgetType.name}))}else e.widgetType.preview&&(Zv.find(L=>e.widgetType.preview.toLowerCase().endsWith(L))||e.widgetSet==="__marketplace")&&(n=o.jsx("img",{src:e.widgetType.preview,style:Ft.widgetImageWithSrc,alt:e.widgetType.name,onError:L=>{L.target&&(L.target.onerror=null,L.target.src="./img/no-image.svg",L.target.style.height="24px")}}));n||(n=o.jsx("span",{style:Ft.widgetImage,ref:t,dangerouslySetInnerHTML:{__html:e.widgetType.preview}}));let a=e.widgetType.label?w.I18n.t(e.widgetType.label):window.vis._(e.widgetType.title);a=a.split("<br")[0],a=a.split("<span")[0],a=a.split("<div")[0];let c=null,l;e.widgetSet==="__marketplace"&&(c=(x=e.marketplaceUpdates)==null?void 0:x.find(L=>L.widget_id===e.widgetMarketplaceId),l=(A=e.marketplaceDeleted)==null?void 0:A.includes(e.widgetMarketplaceId));const u=o.jsx(f.Tooltip,{title:o.jsxs(f.Box,{component:"div",sx:Ft.widgetTooltip,children:[o.jsx("div",{children:n}),e.widgetType.help?o.jsx("div",{children:e.widgetType.help}):null]}),slotProps:{popper:{sx:{pointerEvents:"none"}}},placement:"right-end",children:o.jsxs("div",{style:{...Ft.widget,...i},children:[o.jsx("span",{style:{display:"none"},children:e.widgetTypeName}),o.jsxs("div",{style:{...Ft.widgetTitle,...s},children:[o.jsx("div",{children:a}),e.widgetSet==="__marketplace"&&e.marketplace&&o.jsx("div",{style:Ft.widgetMarketplace,children:`${w.I18n.t("version")} ${e.marketplace.version}`})]}),e.widgetSet==="__marketplace"&&o.jsxs(o.Fragment,{children:[o.jsx(f.Tooltip,{title:w.I18n.t("Uninstall"),slotProps:{popper:{sx:{pointerEvents:"none"}}},children:o.jsx(f.IconButton,{onClick:()=>e.uninstallWidget(e.widgetType.name),children:o.jsx(S.Delete,{})})}),c&&o.jsx(f.Tooltip,{title:`${w.I18n.t("Update to version")} ${c.version}`,slotProps:{popper:{sx:{pointerEvents:"none"}}},children:o.jsx(f.IconButton,{onClick:()=>e.updateWidgets(c),children:o.jsx(S.Update,{})})}),l&&o.jsx(f.Tooltip,{title:w.I18n.t("Widget was deleted in widgeteria"),slotProps:{popper:{sx:{pointerEvents:"none"}}},children:o.jsx(S.Block,{style:Ft.widgetDeleted})})]}),o.jsx("span",{style:Ft.widgetImageContainer,children:n})]})}),_=D.useRef(),[,m,p]=ea({type:"widget",item:()=>{var L;return{widgetType:e.widgetType,widgetSet:e.widgetSet,preview:o.jsx("div",{style:{width:((L=_.current)==null?void 0:L.offsetWidth)||100},children:u})}},collect:L=>({isDragging:L.isDragging(),handlerId:L.getHandlerId()})},[e.widgetType]);return D.useEffect(()=>{p(ia(),{captureDraggingState:!0})},[e.widgetType]),typeof e.widgetType.customPalette=="function"?e.editMode?e.widgetType.customPalette({socket:e.socket,project:q.getState().visProject,changeProject:e.changeProject,selectedView:e.selectedView,changeView:e.changeView,themeType:e.themeType,helpers:Kv}):null:o.jsx("span",{ref:e.editMode?m:null,id:`widget_${e.widgetTypeName}`,className:`widget-${e.widgetSet}`,children:o.jsx("span",{ref:_,children:u})})},Xv=e=>o.jsx("div",{children:o.jsx(f.Button,{variant:"contained",color:"primary",onClick:()=>e.setMarketplaceDialog({}),children:w.I18n.t("Open widgeteria")})}),Ne={accordionRoot:{p:0,m:0,width:"100%",minHeight:"initial","&:before":{opacity:0}},accordionOpenedSummary:{fontWeight:"bold"},groupSummary:{borderRadius:"4px",p:"2px",minHeight:0},groupSummaryExpanded:{minHeight:0,mt:0,mb:0,borderTopRightRadius:"4px",borderTopLeftRadius:"4px",p:"2px"},blockHeader:e=>e.classes.blockHeader,lightedPanel:e=>e.classes.lightedPanel,accordionDetails:e=>({...e.classes.lightedPanel,borderRadius:"0 0 4px 4px",flexDirection:"column"}),groupIcon:{width:20,height:20,marginRight:8},version:{fontSize:10,opacity:.7,fontStyle:"italic",textAlign:"left"},searchLabel:{display:"block","& label":{ml:"32px",mt:"-5px"}}},Qv=window.localStorage.getItem("developerMode")==="true";let ey=class extends D.Component{buildWidgetListTimeout=null;marketplaceLoadingStarted=!1;lang=w.I18n.getLanguage();constructor(t){super(t);const i=window.localStorage.getItem("widgets");let s;try{s=i?JSON.parse(i):{}}catch{s={}}this.state={filter:"",marketplaceUpdates:null,marketplaceDeleted:null,marketplaceLoading:!1,accordionOpen:s,widgetsList:null,widgetSetProps:null}}componentDidMount(){this.state.accordionOpen.__marketplace&&this.loadMarketplace()}loadMarketplace(){this.state.accordionOpen.__marketplace&&window.marketplaceClient&&!this.state.marketplaceUpdates&&!this.state.marketplaceLoading&&!this.marketplaceLoadingStarted&&(this.marketplaceLoadingStarted=!0,bn.registerRemotes([{name:"__marketplace",entry:`${window.marketplaceClient}/customWidgets.js`}]),this.setState({marketplaceLoading:!0},()=>{const t=bn.loadRemote("__marketplace/translations").then(s=>w.I18n.extendTranslations(s.default)),i=bn.loadRemote("__marketplace/VisMarketplace").then(s=>window.VisMarketplace=s);Promise.all([t,i]).then(async()=>{var c,l,u;const s=[],n=[],a=(l=(c=q.getState().visProject)==null?void 0:c.___settings)==null?void 0:l.marketplace;if(a&&((u=window.VisMarketplace)!=null&&u.api))for(const _ of a)try{const m=await window.VisMarketplace.api.apiGetWidget(_.widget_id);m.version!==_.version&&s.push(m)}catch(m){m.statusCode===404?n.push(_.widget_id):console.error(`Cannot check updates for ${_.widget_id}: ${m}`)}this.marketplaceLoadingStarted=!1,this.setState({marketplaceUpdates:s,marketplaceDeleted:n,marketplaceLoading:!1})}).catch(s=>console.error(`Cannot load marketplace: ${s}`))}))}buildWidgetList(){if(!this.props.widgetsLoaded){(this.state.widgetsList!==null||this.state.widgetSetProps!==null)&&this.setState({widgetsList:null,widgetSetProps:null});return}let t={};const i={};Yi().forEach(y=>{var T;const b=y.set;y.developerMode&&(i[b]=i[b]||{},i[b].developerMode=!0),y.setLabel&&(i[b]=i[b]||{},i[b].label=w.I18n.t(y.setLabel)),y.setColor&&(i[b]=i[b]||{},i[b].color=y.setColor),y.setIcon?(i[b]=i[b]||{},i[b].icon=y.setIcon):y.adapter&&!((T=i[b])!=null&&T.icon)&&(i[b]=i[b]||{},window.location.port==="3000"?i[b].icon=`./adapter/${y.adapter}/${y.adapter}.png`:i[b].icon=`../adapter/${y.adapter}/${y.adapter}.png`),y.rx&&(i[b]=i[b]||{},i[b].rx=!0),y.version&&(i[b]=i[b]||{},i[b].version=y.version);const j=y.label?w.I18n.t(y.label):window.vis._(y.title)||"";y.hidden||this.state.filter&&!j.toLowerCase().includes(this.state.filter.toLowerCase())||(t[b]=t[b]||{},t[b][y.name]=y)});const n=Object.keys(t),a=n.indexOf("basic");a!==-1&&n.splice(a,1);const c=n.indexOf("jqui");c!==-1&&n.splice(c,1);const l=n.filter(y=>{var b;return(b=i[y])==null?void 0:b.rx}).sort(),u=n.filter(y=>{var b;return!((b=i[y])!=null&&b.rx)}).sort();c!==-1&&u.unshift("jqui");const _=[...l,...u];a!==-1&&_.unshift("basic");const m={};_.forEach(y=>m[y]=t[y]),t=m,this.state.filter&&Object.keys(t).forEach(y=>{Object.keys(t[y]).length||(delete t[y],delete i[y])});const p={};Object.keys(t).forEach(y=>{p[y]=Object.values(t[y]),p[y].sort((b,j)=>b.order-j.order)}),this.setState({widgetsList:p,widgetSetProps:i},()=>{this.buildWidgetListTimeout=null})}renderMarketplace(){var i;const t=this.state.accordionOpen.__marketplace;return o.jsxs(f.Accordion,{sx:{...Ne.accordionRoot,"&.Mui-expanded":{margin:0}},elevation:0,expanded:t||!1,onChange:(s,n)=>{const a=JSON.parse(JSON.stringify(this.state.accordionOpen));a.__marketplace=n,window.localStorage.setItem("widgets",JSON.stringify(a)),this.setState({accordionOpen:a},()=>n&&this.loadMarketplace())},children:[o.jsxs(f.AccordionSummary,{id:"summary___marketplace",expandIcon:o.jsx(S.ExpandMore,{}),className:w.Utils.clsx("vis-palette-widget-set",t&&"vis-palette-summary-expanded"),sx:{...w.Utils.getStyle(this.props.theme,E.clearPadding,t?Ne.groupSummaryExpanded:Ne.groupSummary,Ne.lightedPanel,{minHeight:0}),"& .MuiAccordionSummary-content":{...E.clearPadding,...t?Ne.accordionOpenedSummary:void 0}},children:[o.jsx(w.Icon,{style:Ne.groupIcon,src:"img/marketplace.png"}),w.I18n.t("__marketplace")]}),o.jsxs(f.AccordionDetails,{sx:Ne.accordionDetails,children:[t&&this.state.marketplaceLoading?o.jsx(f.LinearProgress,{}):null,t&&this.state.marketplaceUpdates&&o.jsxs("div",{children:[o.jsx(Xv,{setMarketplaceDialog:this.props.setMarketplaceDialog}),(i=q.getState().visProject.___settings.marketplace)==null?void 0:i.map(s=>o.jsx("div",{children:o.jsx(Gr,{editMode:this.props.editMode,themeType:this.props.themeType,selectedView:this.props.selectedView,marketplace:s,marketplaceDeleted:this.state.marketplaceDeleted,marketplaceUpdates:this.state.marketplaceUpdates,uninstallWidget:this.props.uninstallWidget,updateWidgets:this.props.updateWidgets,widgetSet:"__marketplace",widgetType:{name:s.id,label:s.name,preview:`${window.apiUrl+window.webPrefix}/images/${s.image_id}`,params:"simulated"},widgetMarketplaceId:s.widget_id,widgetTypeName:s.name},s.id)},s.id))]})]})]})}async toggleDebugVersion(t){const i=await this.props.socket.getObjectViewSystem("instance","system.adapter.","system.adapter.香"),s=Object.values(i);let n=!1;const a=s.find(c=>c.common.visWidgets&&c.common.name===t);if(this.state.widgetSetProps[t].developerMode)a&&Object.keys(a.common.visWidgets).find(c=>{var l;return(l=a.common.visWidgets[c].url)==null?void 0:l.startsWith("http")})&&(Object.keys(a.common.visWidgets).forEach(c=>{typeof a.common.name=="object"?a.common.visWidgets[c].url=`${a.common.name[this.lang]||a.common.name.en}/customWidgets.js`:a.common.visWidgets[c].url=`${a.common.name}/customWidgets.js`}),await this.props.socket.setObject(a._id,a),n=!0);else{const c=s.filter(l=>l.common.visWidgets);for(let l=0;l<c.length;l++){const u=c[l].common.visWidgets;if(c[l]!==a)Object.keys(u).find(_=>{var m;return(m=u[_].url)==null?void 0:m.startsWith("http")})&&(Object.keys(u).forEach(_=>{const m=c[l].common.name;typeof m=="object"?u[_].url=`${m[this.lang]||m.en}/customWidgets.js`:u[_].url=`${m}/customWidgets.js`}),await this.props.socket.setObject(c[l]._id,c[l]),n=!0);else try{await fetch("http://localhost:4173/customWidgets.js"),Object.keys(u).forEach(_=>u[_].url="http://localhost:4173/customWidgets.js"),await this.props.socket.setObject(a._id,a),n=!0}catch{window.alert(`Please start the widget development of ${a._id.split(".")[2]} first`)}}}n&&setTimeout(()=>window.location.reload(),1e3)}buildListTrigger(t){this.buildWidgetListTimeout&&(clearTimeout(this.buildWidgetListTimeout),this.buildWidgetListTimeout=null),this.buildWidgetListTimeout=this.buildWidgetListTimeout||setTimeout(()=>{this.buildWidgetListTimeout=null,this.buildWidgetList()},t?0:100)}render(){if(!this.props.widgetsLoaded)return null;if(!this.state.widgetsList)return this.buildListTrigger(!0),null;const t=!Object.keys(this.state.widgetsList).find(s=>!this.state.accordionOpen[s]),i=!Object.keys(this.state.widgetsList).find(s=>this.state.accordionOpen[s]);return o.jsxs(o.Fragment,{children:[o.jsxs(f.Typography,{variant:"h6",gutterBottom:!0,sx:w.Utils.getStyle(this.props.theme,Ne.blockHeader,Ne.lightedPanel),style:{display:"flex",lineHeight:"34px"},children:[o.jsx(S.Palette,{style:{marginTop:4,marginRight:4}}),o.jsx("span",{style:{verticalAlign:"middle"},children:w.I18n.t("Palette")}),o.jsx("div",{style:{flex:1}}),t?o.jsx(f.IconButton,{size:"small",disabled:!0,children:o.jsx(S.UnfoldMore,{})}):o.jsx(f.Tooltip,{title:w.I18n.t("Expand all"),slotProps:{popper:{sx:{pointerEvents:"none"}}},children:o.jsx(f.IconButton,{size:"small",onClick:()=>{const s=this.state.accordionOpen.__marketplace,n={};Object.keys(this.state.widgetsList).forEach(a=>n[a]=!0),Object.assign(this.state.accordionOpen,{__marketplace:s}),window.localStorage.setItem("widgets",JSON.stringify(n)),this.setState({accordionOpen:n})},children:o.jsx(S.UnfoldMore,{})})}),i?o.jsx(f.IconButton,{size:"small",disabled:!0,children:o.jsx(S.UnfoldLess,{})}):o.jsx(f.Tooltip,{title:w.I18n.t("Collapse all"),slotProps:{popper:{sx:{pointerEvents:"none"}}},children:o.jsx(f.IconButton,{size:"small",onClick:()=>{const s={};Object.keys(this.state.widgetsList).forEach(n=>s[n]=!1),Object.assign(this.state.accordionOpen,{__marketplace:!1}),window.localStorage.setItem("widgets",JSON.stringify(s)),this.setState({accordionOpen:s})},children:o.jsx(S.UnfoldLess,{})})}),o.jsx(f.Tooltip,{title:w.I18n.t("Hide palette"),slotProps:{popper:{sx:{pointerEvents:"none"}}},children:o.jsx(f.IconButton,{size:"small",onClick:()=>this.props.onHide(!0),children:o.jsx(S.Clear,{})})})]}),o.jsx(f.TextField,{variant:"standard",fullWidth:!0,value:this.state.filter,onChange:s=>this.setState({filter:s.target.value},()=>this.buildListTrigger()),placeholder:w.I18n.t("Search"),sx:Ne.searchLabel,slotProps:{input:{sx:Ne.clearPadding,endAdornment:this.state.filter?o.jsx(f.IconButton,{size:"small",onClick:()=>this.setState({filter:""},()=>this.buildListTrigger()),children:o.jsx(S.Clear,{style:{width:22,height:22}})}):null,startAdornment:o.jsx(f.InputAdornment,{position:"start",children:o.jsx(S.Search,{})})}}}),o.jsxs("div",{style:{display:"flex",flexDirection:"column",alignItems:"center",gap:10,textAlign:"center",overflowY:"auto",height:"calc(100% - 86px)",opacity:this.props.editMode?void 0:.3},children:[o.jsx("div",{style:{width:"100%"}}),this.renderMarketplace(),Object.keys(this.state.widgetsList).map((s,n)=>{var c,l,u,_,m;let a=null;return(c=this.state.widgetSetProps[s])!=null&&c.version&&(Qv?a=o.jsx("div",{style:{...Ne.version,cursor:"pointer",color:this.state.widgetSetProps[s].developerMode?"#ff4242":"inherit",fontWeight:this.state.widgetSetProps[s].developerMode?"bold":"inherit"},onClick:()=>this.toggleDebugVersion(s),children:(l=this.state.widgetSetProps[s])==null?void 0:l.version}):a=o.jsx("div",{style:Ne.version,children:(u=this.state.widgetSetProps[s])==null?void 0:u.version})),o.jsxs(f.Accordion,{sx:{...Ne.accordionRoot,"&.Mui-expanded":{margin:0}},elevation:0,expanded:this.state.accordionOpen[s]||!1,onChange:(p,y)=>{const b=JSON.parse(JSON.stringify(this.state.accordionOpen));b[s]=y,window.localStorage.setItem("widgets",JSON.stringify(b)),this.setState({accordionOpen:b})},children:[o.jsxs(f.AccordionSummary,{id:`summary_${s}`,expandIcon:o.jsx(S.ExpandMore,{}),className:w.Utils.clsx("vis-palette-widget-set",this.state.accordionOpen[s]&&"vis-palette-summary-expanded"),sx:{...w.Utils.getStyle(this.props.theme,E.clearPadding,this.state.accordionOpen[s]?Ne.groupSummaryExpanded:Ne.groupSummary,Ne.lightedPanel),"&.Mui-expanded":{minHeight:0},"& .MuiAccordionSummary-content":{...E.clearPadding,...this.state.accordionOpen[s]?Ne.accordionOpenedSummary:void 0}},children:[(_=this.state.widgetSetProps[s])!=null&&_.icon?o.jsx(w.Icon,{style:Ne.groupIcon,src:this.state.widgetSetProps[s].icon}):null,(m=this.state.widgetSetProps[s])!=null&&m.label?this.state.widgetSetProps[s].label.startsWith("Vis 2 - ")?this.state.widgetSetProps[s].label.substring(8):this.state.widgetSetProps[s].label:w.I18n.t(s)]}),o.jsxs(f.AccordionDetails,{sx:Ne.accordionDetails,children:[a,o.jsx("div",{children:this.state.accordionOpen[s]?this.state.widgetsList[s].map(p=>p.name==="_tplGroup"?null:o.jsx(Gr,{changeProject:this.props.changeProject,changeView:this.props.changeView,editMode:this.props.editMode,selectedView:this.props.selectedView,socket:this.props.socket,themeType:this.props.themeType,widgetSet:s,widgetSetProps:this.state.widgetSetProps[s],widgetType:p,widgetTypeName:p.name},p.name)):null})]})]},n)})]})]})}};function xc(e){return Ee({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{d:"M20 2H10c-1.103 0-2 .897-2 2v4H4c-1.103 0-2 .897-2 2v10c0 1.103.897 2 2 2h10c1.103 0 2-.897 2-2v-4h4c1.103 0 2-.897 2-2V4c0-1.103-.897-2-2-2zM4 20V10h10l.002 10H4zm16-6h-4v-4c0-1.103-.897-2-2-2h-4V4h10v10z"},child:[]}]})(e)}function $c(e){return Ee({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{d:"M10 6.5C10 4.57 8.43 3 6.5 3S3 4.57 3 6.5 4.57 10 6.5 10a3.45 3.45 0 0 0 1.613-.413l2.357 2.528-2.318 2.318A3.46 3.46 0 0 0 6.5 14C4.57 14 3 15.57 3 17.5S4.57 21 6.5 21s3.5-1.57 3.5-3.5c0-.601-.166-1.158-.434-1.652l2.269-2.268L17 19.121a3 3 0 0 0 2.121.879H22L9.35 8.518c.406-.572.65-1.265.65-2.018zM6.5 8C5.673 8 5 7.327 5 6.5S5.673 5 6.5 5 8 5.673 8 6.5 7.327 8 6.5 8zm0 11c-.827 0-1.5-.673-1.5-1.5S5.673 16 6.5 16s1.5.673 1.5 1.5S7.327 19 6.5 19z"},child:[]},{tag:"path",attr:{d:"m17 4.879-3.707 4.414 1.414 1.414L22 4h-2.879A3 3 0 0 0 17 4.879z"},child:[]}]})(e)}function eo(e){return Ee({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{d:"M11 16h2V7h3l-4-5-4 5h3z"},child:[]},{tag:"path",attr:{d:"M5 22h14c1.103 0 2-.897 2-2v-9c0-1.103-.897-2-2-2h-4v2h4v9H5v-9h4V9H5c-1.103 0-2 .897-2 2v9c0 1.103.897 2 2 2z"},child:[]}]})(e)}function Si(e){return Ee({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{d:"m12 18 4-5h-3V2h-2v11H8z"},child:[]},{tag:"path",attr:{d:"M19 9h-4v2h4v9H5v-9h4V9H5c-1.103 0-2 .897-2 2v9c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-9c0-1.103-.897-2-2-2z"},child:[]}]})(e)}function Sc(e){return Ee({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{d:"M20 11V5c0-1.103-.897-2-2-2h-3a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1H4c-1.103 0-2 .897-2 2v13c0 1.103.897 2 2 2h7c0 1.103.897 2 2 2h7c1.103 0 2-.897 2-2v-7c0-1.103-.897-2-2-2zm-9 2v5H4V5h3v2h8V5h3v6h-5c-1.103 0-2 .897-2 2zm2 7v-7h7l.001 7H13z"},child:[]}]})(e)}const Vt={viewManageBlock:e=>e.classes.viewManageBlock,viewManageButtonActions:e=>e.classes.viewManageButtonActions,folderName:{marginLeft:8,fontWeight:"bold",cursor:"pointer"},icon:e=>({cursor:"grab",display:"inline-block",lineHeight:"16px",color:e.palette.mode==="dark"?"#bad700":"#f3bf00"}),noDrop:{opacity:.4},root:{borderStyle:"dashed",borderRadius:4,borderWidth:1,borderColor:"rgba(128, 128, 128, 0)",lineHeight:"32px",verticalAlign:"middle"},rootCanDrop:{borderColor:"rgba(200, 200, 200, 1)"}},ty=e=>{const t=o.jsxs(f.Box,{component:"div",sx:Vt.viewManageBlock,children:[e.foldersCollapsed.includes(e.folder.id)?o.jsx(wr,{fontSize:"small"}):o.jsx(Sn,{fontSize:"small"}),o.jsx("span",{style:Vt.folderName,children:e.folder.name})]}),i=q.getState().visProject,[{canDrop:s},n]=ta(()=>({accept:["view","folder"],drop:()=>({folder:e.folder}),canDrop:(u,_)=>{if(_.getItemType()==="view")return i[u.name].parentId!==e.folder.id;if(_.getItemType()==="folder"){let m=e.folder;if(m.id===u.folder.parentId)return!1;const p=i.___settings.folders;for(;;){if(m.id===u.folder.id)return!1;if(!m.parentId)return!0;const y=m.parentId;m=p.find(b=>b.id===y)}}return!1},collect:u=>({isOver:u.isOver(),canDrop:u.canDrop()})}),[i]),[{isDraggingThisItem:a},c,l]=ea({type:"folder",item:()=>({folder:e.folder,preview:o.jsx("div",{children:t})}),end:(u,_)=>{const m=_.getDropResult();u&&m&&e.moveFolder(u.folder.id,m.folder.id)},collect:u=>({isDraggingThisItem:u.isDragging(),handlerId:u.getHandlerId()})},[i]);return D.useEffect(()=>{l(ia(),{captureDraggingState:!0})},[i]),D.useEffect(()=>{e.setIsDragging(a?e.folder.id:"")},[a]),console.log(`${e.folder.name} ${e.isDragging} ${s}`),o.jsxs(f.Box,{component:"div",ref:n,sx:w.Utils.getStyle(e.theme,Vt.root,Vt.viewManageBlock,e.isDragging&&!s&&Vt.noDrop,e.isDragging&&s&&Vt.rootCanDrop),children:[o.jsx(f.Box,{component:"div",sx:Vt.icon,ref:c,title:w.I18n.t("Drag me"),children:e.foldersCollapsed.includes(e.folder.id)?o.jsx(wr,{fontSize:"large",onClick:()=>{const u=JSON.parse(JSON.stringify(e.foldersCollapsed));u.splice(u.indexOf(e.folder.id),1),e.setFoldersCollapsed(u),window.localStorage.setItem("ViewsManager.foldersCollapsed",JSON.stringify(u))}}):o.jsx(Sn,{fontSize:"large",onClick:()=>{const u=JSON.parse(JSON.stringify(e.foldersCollapsed));u.push(e.folder.id),e.setFoldersCollapsed(u),window.localStorage.setItem("ViewsManager.foldersCollapsed",JSON.stringify(u))}})}),o.jsx("span",{style:Vt.folderName,onClick:()=>{const u=JSON.parse(JSON.stringify(e.foldersCollapsed)),_=u.indexOf(e.folder.id);_!==-1?u.splice(_,1):u.push(e.folder.id),e.setFoldersCollapsed(u),window.localStorage.setItem("ViewsManager.foldersCollapsed",JSON.stringify(u))},children:e.folder.name}),o.jsxs(f.Box,{component:"span",sx:Vt.viewManageButtonActions,children:[e.editMode?o.jsx(f.Tooltip,{title:w.I18n.t("Add view"),slotProps:{popper:{sx:{pointerEvents:"none"}}},children:o.jsx(f.IconButton,{size:"small",onClick:()=>e.showDialog("add",null,e.folder.id),children:o.jsx(S.Add,{})})}):null,e.editMode?o.jsx(f.Tooltip,{title:w.I18n.t("Add sub-folder"),slotProps:{popper:{sx:{pointerEvents:"none"}}},children:o.jsx(f.IconButton,{size:"small",onClick:()=>{e.setFolderDialog("add"),e.setFolderDialogName(""),e.setFolderDialogParentId(e.folder.id)},children:o.jsx(S.CreateNewFolder,{})})}):null,e.editMode?o.jsx(f.Tooltip,{title:w.I18n.t("Rename"),slotProps:{popper:{sx:{pointerEvents:"none"}}},children:o.jsx(f.IconButton,{size:"small",onClick:()=>{e.setFolderDialog("rename"),e.setFolderDialogName(e.folder.name),e.setFolderDialogId(e.folder.id)},children:o.jsx(S.Edit,{})})}):null,e.editMode?o.jsx(f.Tooltip,{title:w.I18n.t("Delete"),slotProps:{popper:{sx:{pointerEvents:"none"}}},children:o.jsx("span",{children:o.jsx(f.IconButton,{size:"small",onClick:()=>{e.setFolderDialog("delete"),e.setFolderDialogId(e.folder.id)},disabled:!!(q.getState().visProject.___settings.folders.find(u=>u.parentId===e.folder.id)||Object.values(i).find(u=>u.parentId===e.folder.id)),children:o.jsx(S.Delete,{})})})}):null]})]})},iy=e=>{const[{canDrop:t,isOver:i},s]=ta(()=>({accept:["view","folder"],drop:()=>({folder:{id:null}}),canDrop:(n,a)=>a.getItemType()==="view"?!!q.getState().visProject[n.name].parentId:a.getItemType()==="folder"?!!n.folder.parentId:!1,collect:n=>({isOver:n.isOver(),canDrop:n.canDrop()})}),[q.getState().visProject]);return D.useEffect(()=>{e.setIsOverRoot(i&&t)},[i,t]),e.isDragging&&t?o.jsx("div",{ref:s,children:o.jsx("div",{style:{height:34,width:"calc(100% - 7px)",opacity:.7},children:w.I18n.t("Drop here to add to root")})}):null},wt={viewManageBlock:e=>e.classes.viewManageBlock,viewManageButtonActions:e=>e.classes.viewManageButtonActions,icon:{cursor:"grab",display:"inline-block",lineHeight:"18px"},name:e=>({cursor:"pointer","&:hover":{color:e.palette.primary.main}}),dragging:e=>({color:e.palette.secondary.main}),noDrop:{opacity:.4},visibleView:e=>({color:e.palette.primary.main}),selected:e=>({backgroundColor:e.palette.mode==="dark"?e.palette.primary.dark:e.palette.primary.light})},sy=e=>{const t=o.jsxs(f.Box,{component:"div",sx:wt.viewManageBlock,children:[o.jsx(S.InsertDriveFile,{}),o.jsx(f.Tooltip,{title:w.I18n.t(e.openedViews.includes(e.name)?"Hide":"Show"),slotProps:{popper:{sx:{pointerEvents:"none"}}},children:o.jsx(f.IconButton,{size:"small",onClick:()=>e.toggleView(e.name,!e.openedViews.includes(e.name)),children:e.openedViews.includes(e.name)?o.jsx(S.Visibility,{}):o.jsx(S.VisibilityOff,{})})}),o.jsx("span",{children:e.name})]}),i=q.getState().visProject,[{isDraggingThisItem:s},n,a]=ea({type:"view",item:()=>({name:e.name,preview:o.jsx("div",{children:t})}),end:(l,u)=>{const _=u.getDropResult();l&&_&&e.moveView(l.name,_.folder.id)},collect:l=>({isDraggingThisItem:l.isDragging(),handlerId:l.getHandlerId()})},[i]);D.useEffect(()=>{a(ia(),{captureDraggingState:!0})},[i]),D.useEffect(()=>{e.setIsDragging(s?e.name:"")},[s]);const c=()=>{e.toggleView(e.name,!0,!0)};return o.jsx(f.Box,{sx:w.Utils.getStyle(e.theme,e.isDragging===e.name?wt.dragging:e.isDragging?wt.noDrop:void 0,e.selectedView===e.name&&wt.selected),children:o.jsxs(f.Box,{component:"div",sx:wt.viewManageBlock,children:[e.hasPermissions?o.jsx("div",{style:wt.icon,ref:n,title:w.I18n.t("Drag me"),children:o.jsx(S.InsertDriveFile,{})}):o.jsx(S.InsertDriveFile,{color:"disabled"}),o.jsx(f.Tooltip,{title:w.I18n.t(e.openedViews.includes(e.name)?"Hide":"Show"),slotProps:{popper:{sx:{pointerEvents:"none"}}},children:o.jsx(f.IconButton,{disabled:!e.hasPermissions,size:"small",onClick:()=>e.toggleView(e.name,!e.openedViews.includes(e.name)),sx:e.isDragging===e.name?wt.dragging:e.isDragging?wt.noDrop:void 0,children:e.openedViews.includes(e.name)?o.jsx(S.Visibility,{style:w.Utils.getStyle(e.theme,wt.visibleView)}):o.jsx(S.VisibilityOff,{})})}),e.hasPermissions?o.jsx(f.Box,{component:"span",onClick:c,sx:wt.name,children:e.name}):o.jsx("span",{style:{color:"grey"},children:e.name}),o.jsxs(f.Box,{component:"span",sx:wt.viewManageButtonActions,children:[e.editMode&&e.hasPermissions?o.jsx(f.Tooltip,{title:w.I18n.t("Import"),slotProps:{popper:{sx:{pointerEvents:"none"}}},children:o.jsx(f.IconButton,{onClick:()=>e.setImportDialog(e.name),size:"small",children:o.jsx(Si,{})})}):null,o.jsx(f.Tooltip,{title:w.I18n.t("Export"),slotProps:{popper:{sx:{pointerEvents:"none"}}},children:o.jsx(f.IconButton,{onClick:()=>e.setExportDialog(e.name),size:"small",children:o.jsx(eo,{})})}),e.editMode&&e.hasPermissions?o.jsx(f.Tooltip,{title:w.I18n.t("Rename"),slotProps:{popper:{sx:{pointerEvents:"none"}}},children:o.jsx(f.IconButton,{onClick:()=>e.showDialog("rename",e.name),size:"small",children:o.jsx(S.Edit,{})})}):null,e.editMode&&e.hasPermissions?o.jsx(f.Tooltip,{title:w.I18n.t("Copy"),slotProps:{popper:{sx:{pointerEvents:"none"}}},children:o.jsx(f.IconButton,{onClick:()=>e.showDialog("copy",e.name),size:"small",children:o.jsx(S.FileCopy,{})})}):null,e.editMode&&e.hasPermissions?o.jsx(f.Tooltip,{title:w.I18n.t("Delete"),slotProps:{popper:{sx:{pointerEvents:"none"}}},children:o.jsx(f.IconButton,{onClick:()=>e.showDialog("delete",e.name),size:"small",children:o.jsx(S.Delete,{})})}):null]})]})})},ny=e=>o.jsx(ot,{onClose:e.onClose,title:w.I18n.t('Export "%s"',e.view),closeTitle:"Close",action:()=>w.Utils.copyToClipboard(JSON.stringify(q.getState().visProject[e.view],null,2)),actionTitle:"Copy to clipboard",actionNoClose:!0,ActionIcon:S.FileCopy,children:o.jsx(Pt,{type:"json",themeType:e.themeType,value:JSON.stringify(q.getState().visProject[e.view],null,2),height:200})}),oy=e=>{const t=q.getState().visProject,[i,s]=D.useState(t[e.view]?JSON.stringify(t[e.view],null,2):`{
"settings": {
"style": {}
},
"widgets": {},
"activeWidgets": {}
}`),[n,a]=D.useState(e.view),[c,l]=D.useState([]),u=D.useRef(null);return D.useEffect(()=>{var _;(_=u.current)==null||_.editor.getSession().on("changeAnnotation",()=>{u.current&&l(u.current.editor.getSession().getAnnotations())})},[u.current]),o.jsxs(ot,{onClose:e.onClose,title:"Import view",closeTitle:"Close",actionTitle:"Import",action:()=>e.importViewAction(n,i),actionDisabled:!n.length||!!c.length,children:[o.jsx(Pt,{type:"json",themeType:e.themeType,value:i,onChange:_=>s(_),height:200}),o.jsx("div",{children:o.jsx(f.TextField,{variant:"standard",fullWidth:!0,label:w.I18n.t("View name"),value:n,onChange:_=>a(_.target.value)})})]})};D.createContext(void 0);var Xo=(e,t)=>({x:e.x-t.x,y:e.y-t.y}),ay=(e,t)=>({x:e.x+t.x,y:e.y+t.y}),ry=e=>{let t=e.getInitialClientOffset(),i=e.getInitialSourceClientOffset();return t===null||i===null?{x:0,y:0}:Xo(t,i)},ly=(e,t)=>{switch(e){case"left":case"top-start":case"bottom-start":return 0;case"right":case"top-end":case"bottom-end":return t.width;default:return t.width/2}},cy=(e,t)=>{switch(e){case"top":case"top-start":case"top-end":return 0;case"bottom":case"bottom-start":case"bottom-end":return t.height;default:return t.height/2}},dy=(e,t,i="center",s={x:0,y:0})=>{let n=e.getClientOffset();if(n===null)return null;if(!t.current||!t.current.getBoundingClientRect)return Xo(n,ry(e));let a=t.current.getBoundingClientRect(),c={x:ly(i,a),y:cy(i,a)};return ay(Xo(n,c),s)},uy=e=>{let t=`translate(${e.x.toFixed(1)}px, ${e.y.toFixed(1)}px)`;return{pointerEvents:"none",position:"fixed",top:0,left:0,transform:t,WebkitTransform:t}},_y=e=>{let t=D.useRef(null),i=vh(s=>({currentOffset:dy(s,t,e==null?void 0:e.placement,e==null?void 0:e.padding),isDragging:s.isDragging(),itemType:s.getItemType(),item:s.getItem(),monitor:s}));return!i.isDragging||i.currentOffset===null?{display:!1}:{display:!0,itemType:i.itemType,item:i.item,style:uy(i.currentOffset),monitor:i.monitor,ref:t}};const kc=()=>{const e=_y(),t=e.display,{item:i,style:s}=e;return t?o.jsx("div",{style:{...s,zIndex:1e3},children:i.preview}):null};function gy(){let e=!1;const t=navigator.userAgent||navigator.vendor||window.opera;return(/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series([46])0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(t)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br([ev])w|bumb|bw-([nu])|c55\/|capi|ccwa|cdm-|cell|chtm|cldc|cmd-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc-s|devi|dica|dmob|do([cp])o|ds(12|-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly([-_])|g1 u|g560|gene|gf-5|g-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd-([mpt])|hei-|hi(pt|ta)|hp( i|ip)|hs-c|ht(c([- _agpst])|tp)|hu(aw|tc)|i-(20|go|ma)|i230|iac([ \-/])|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja([tv])a|jbro|jemu|jigs|kddi|keji|kgt([ /])|klon|kpt |kwc-|kyo([ck])|le(no|xi)|lg( g|\/([klu])|50|54|-[a-w])|libw|lynx|m1-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t([- ov])|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30([02])|n50([025])|n7(0([01])|10)|ne(([cm])-|on|tf|wf|wg|wt)|nok([6i])|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan([adt])|pdxg|pg(13|-([1-8]|c))|phil|pire|pl(ay|uc)|pn-2|po(ck|rt|se)|prox|psio|pt-g|qa-a|qc(07|12|21|32|60|-[2-7]|i-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h-|oo|p-)|sdk\/|se(c([-01])|47|mc|nd|ri)|sgh-|shar|sie([-m])|sk-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h-|v-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl-|tdg-|tel([im])|tim-|t-mo|to(pl|sh)|ts(70|m-|m3|m5)|tx-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c([- ])|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas-|your|zeto|zte-/i.test(t.substr(0,4)))&&(e=!0),e}function qc(){return gy()?"ontouchstart"in window||navigator.maxTouchPoints>0||navigator.msMaxTouchPoints>0:!1}const ka=(e,t,i=!1)=>{const s=D.useRef(null);return D.useEffect(()=>{let n;return e&&(n=setInterval(()=>{var a;(i?(a=s.current)!=null&&a.editor:s.current)&&(i?s.current.editor.focus():s.current.focus(),t&&(i?s.current.editor.selectAll():s.current.select()),clearInterval(n))},100)),()=>clearInterval(n)},[e,i,t]),s},hy=e=>{const t=ka(e.dialog&&e.dialog!=="delete",e.dialog==="add");if(!e.dialog)return null;const i=q.getState().visProject.___settings.folders.find(b=>b.id===e.dialogFolder),s={delete:`${w.I18n.t('Do you want to delete folder "%s"',i==null?void 0:i.name)}?`,rename:`${w.I18n.t('Rename folder "%s"',i==null?void 0:i.name)}`,add:e.dialogParentId?w.I18n.t("Add sub-folder"):w.I18n.t("Add folder")},n={delete:w.I18n.t("Delete"),rename:w.I18n.t("Rename"),add:w.I18n.t("Add")},u={delete:()=>{const b=ne(q.getState().visProject);b.___settings.folders.splice(b.___settings.folders.findIndex(j=>j.id===e.dialogFolder),1),e.changeProject(b)},rename:()=>{const b=ne(q.getState().visProject);b.___settings.folders.find(j=>j.id===e.dialogFolder).name=e.dialogName,e.changeProject(b)},add:()=>{const b=ne(q.getState().visProject);b.___settings.folders.push({id:Wg(),name:e.dialogName,parentId:e.dialogParentId}),e.changeProject(b)}},_={rename:w.I18n.t("New name"),add:w.I18n.t("Name")},p={delete:Jg,rename:Kg,add:Gg}[e.dialog];let y=!1;return e.dialog!=="delete"&&(y=e.dialogName===""||e.dialogName===(i==null?void 0:i.name)),o.jsx(ot,{title:s[e.dialog],noTranslation:!0,actionTitle:n[e.dialog],onClose:()=>{e.closeDialog(),e.setDialogFolder(null)},ActionIcon:p||null,action:u[e.dialog],actionColor:e.dialog==="delete"?"secondary":"primary",actionDisabled:y,children:e.dialog==="delete"?null:o.jsx(f.TextField,{variant:"standard",label:_[e.dialog],inputRef:t,fullWidth:!0,value:e.dialogName,onChange:b=>e.setDialogName(b.target.value)})})},fn={dialog:{minWidth:400,minHeight:300},topBar:{flexDirection:"row",borderRadius:4,marginBottom:12},folderContainer:{clear:"right","& $viewManageButtonActions":{visibility:"hidden"},"&:hover $viewManageButtonActions":{visibility:"initial"}},viewContainer:{clear:"right","& $viewManageButtonActions":{visibility:"hidden"},"&:hover $viewManageButtonActions":{visibility:"initial"}}},py=e=>{const[t,i]=D.useState(!1),[s,n]=D.useState(!1),[a,c]=D.useState(null),[l,u]=D.useState(""),[_,m]=D.useState(null),[p,y]=D.useState(null),[b,j]=D.useState(""),[T,x]=D.useState(!1),[A,L]=D.useState([]);D.useEffect(()=>{window.localStorage.getItem("ViewsManager.foldersCollapsed")&&L(JSON.parse(window.localStorage.getItem("ViewsManager.foldersCollapsed")))},[]);const{visProject:W,activeUser:N}=q.getState(),Y=(P,oe)=>{const z=ne(W);z.___settings.folders.find(K=>K.id===P).parentId=oe,e.changeProject(z)},H=(P,oe)=>{const z=ne(W);z[P].parentId=oe,e.changeProject(z)},R=(P,oe)=>{const z=ne(W),K=JSON.parse(oe);if(K.parentId!==void 0&&delete K.parentId,!K||!K.settings||!K.widgets){console.warn('Cannot import view: view is non-existing or missing one of the required properties "settings, widgets"');return}const Z=ne(K.widgets);z[P]={...K,widgets:{},activeWidgets:[]};for(const[F,Q]of Object.entries(Z))if(ri(Q))qn({group:Q,widgets:z[P].widgets,groupMembers:Z,project:z});else if(!Q.groupid){const le=Gi(z);z[P].widgets[le]=Z[F]}K.name=P,e.changeProject(z)},G=P=>Object.keys(W).filter(oe=>!oe.startsWith("___")).filter(oe=>P?W[oe].parentId===P:!W[oe].parentId).sort((oe,z)=>oe.toLowerCase().localeCompare(z.toLowerCase())).map((oe,z)=>o.jsx("div",{style:fn.viewContainer,children:o.jsx(sy,{name:oe,setIsDragging:j,isDragging:b,moveView:H,setExportDialog:i,setImportDialog:n,selectedView:e.selectedView,theme:e.theme,openedViews:q.getState().visProject.___settings.openedViews,...e,hasPermissions:cl({view:oe,user:N,project:W,editMode:e.editMode})})},z)),J=P=>W.___settings.folders.filter(z=>P?z.parentId===P:!z.parentId).sort((z,K)=>z.name.toLowerCase().localeCompare(K.name.toLowerCase())).map((z,K)=>o.jsxs("div",{children:[o.jsx("div",{style:fn.folderContainer,children:o.jsx(ty,{setIsDragging:j,isDragging:b,folder:z,theme:e.theme,editMode:e.editMode,setFolderDialog:c,setFolderDialogName:u,setFolderDialogId:m,setFolderDialogParentId:y,moveFolder:Y,foldersCollapsed:A,setFoldersCollapsed:L,showDialog:e.showDialog})}),A.includes(z.id)?null:o.jsxs("div",{style:{paddingLeft:10},children:[J(z.id),G(z.id)]})]},K));return o.jsxs(ot,{onClose:e.onClose,title:"Manage views",closeTitle:"Close",children:[o.jsx("div",{style:fn.dialog,children:o.jsxs(rl,{backend:qc()?gl:ll,children:[o.jsx(kc,{}),e.editMode?o.jsxs(f.AppBar,{position:"static",style:fn.topBar,children:[e.editMode?o.jsx(f.Tooltip,{title:w.I18n.t("Add view"),slotProps:{popper:{sx:{pointerEvents:"none"}}},children:o.jsx(f.IconButton,{size:"small",onClick:()=>e.showDialog("add",e.name,null,P=>{P&&e.onClose()}),children:o.jsx(S.Add,{})})}):null,e.editMode?o.jsx(f.Tooltip,{title:w.I18n.t("Import"),slotProps:{popper:{sx:{pointerEvents:"none"}}},children:o.jsx(f.IconButton,{onClick:()=>n(""),size:"small",children:o.jsx(Si,{})})}):null,e.editMode?o.jsx(f.Tooltip,{title:w.I18n.t("Add folder"),slotProps:{popper:{sx:{pointerEvents:"none"}}},children:o.jsx(f.IconButton,{size:"small",onClick:()=>{c("add"),u(""),y(null)},children:o.jsx(S.CreateNewFolder,{})})}):null,e.editMode?o.jsx(f.Tooltip,{title:w.I18n.t("Show all views"),slotProps:{popper:{sx:{pointerEvents:"none"}}},children:o.jsx(f.IconButton,{size:"small",onClick:async()=>{const P=ne(q.getState().visProject),oe=Object.keys(P).filter(z=>!z.startsWith("___"));for(const z of oe)P.___settings.openedViews.push(z);await e.changeProject(P,!1)},children:o.jsx(S.Visibility,{})})}):null,e.editMode?o.jsx(f.Tooltip,{title:w.I18n.t("Hide all views"),slotProps:{popper:{sx:{pointerEvents:"none"}}},children:o.jsx(f.IconButton,{size:"small",onClick:async()=>{const P=ne(q.getState().visProject);P.___settings.openedViews=[],await e.changeProject(P,!1)},children:o.jsx(S.VisibilityOff,{})})}):null]}):null,o.jsxs("div",{style:{width:"100%",borderStyle:"dashed",borderRadius:4,borderWidth:1,borderColor:T?"rgba(200, 200, 200, 1)":"rgba(128, 128, 128, 0)",lineHeight:"32px",verticalAlign:"middle"},children:[J(),G(),o.jsx(iy,{isDragging:b,setIsOverRoot:x})]})]})}),a?o.jsx(hy,{dialog:a,dialogFolder:_,dialogName:l,dialogParentId:p,closeDialog:()=>c(null),setDialogFolder:m,setDialogName:u,changeProject:e.changeProject}):null,s!==!1?o.jsx(oy,{onClose:()=>n(!1),view:s||"",importViewAction:R,themeType:e.themeType}):null,t!==!1?o.jsx(ny,{onClose:()=>i(!1),view:t||"",themeType:e.themeType}):null]})},it={navMain:e=>({borderBottom:"1px solid transparent","&:hover":{borderBottom:`1px solid ${e.palette.mode==="dark"?"#BBB":"#555"}`}}),listItemButton:{padding:0,margin:0},nav:{padding:0},menuItem:{borderBottom:"1px dashed gray"},primary:{width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontSize:14},secondary:{fontSize:10,position:"absolute",bottom:-8,right:20},coloredSecondary:{borderRadius:3,padding:"0 3px",opacity:.7},icon:{width:24,height:24,objectFit:"contain"},menuItemMainText:{fontWeight:"bold",display:"inline-block",verticalAlign:"top"},menuItemIcon:{marginRight:4,display:"inline-block",height:24},menuToolbar:e=>({pl:1,pr:1,backgroundColor:e.palette.mode==="dark"?e.palette.secondary.dark:e.palette.secondary.light})};class my extends D.Component{constructor(t){super(t),this.state={elAnchor:null}}render(){const t=this.props,i=t.value||[];let s,n=null,a,c;if(i.length===1){const _=t.options.find(m=>m.value===i[0]);_?(s=_.name,n=_.subName,a=_.color,c=_.icon?o.jsx("img",{src:_.icon,style:it.icon,alt:_.name}):null):s=i[0]}else s=i.join(", ");t.id&&(s=o.jsx("span",{id:t.id,children:s}));let l;a&&(l=w.Utils.getInvertedColor(a,t.themeType,!1),l==="#DDD"?l="#FFF":l==="#111"&&(l="#000"));const u=!t.label;return o.jsxs(f.FormControl,{variant:"standard",style:{margin:"0px 10px"},children:[t.label?o.jsx(f.InputLabel,{shrink:!0,children:t.label}):null,o.jsx(f.List,{component:"nav",style:{width:t.width,marginTop:u?0:16},sx:w.Utils.getStyle(this.props.theme,it.navMain,u&&it.nav),children:o.jsxs(f.ListItemButton,{onClick:_=>this.setState({elAnchor:_.currentTarget}),style:it.listItemButton,children:[c?o.jsx(f.ListItemIcon,{style:{minWidth:28},children:c}):null,o.jsx(f.ListItemText,{sx:{"&.MuiListItemText-root":it.listItemButton,"& .MuiListItemText-primary":it.primary,"& .MuiListItemText-secondary":it.secondary},primary:s,secondary:o.jsx("span",{style:{...a?it.coloredSecondary:void 0,color:a,background:l,whiteSpace:"nowrap"},children:n})}),o.jsx(f.ListItemIcon,{style:{minWidth:16},children:this.state.elAnchor?o.jsx(S.ArrowDropUp,{}):o.jsx(S.ArrowDropDown,{})})]})}),o.jsxs(f.Menu,{open:!!this.state.elAnchor,anchorEl:this.state.elAnchor,onClose:()=>this.setState({elAnchor:null}),children:[o.jsxs(f.Box,{sx:it.menuToolbar,children:[w.I18n.t("All"),o.jsx(f.Button,{disabled:i.length===t.options.length,onClick:()=>this.props.setSelectedWidgets(t.options.map(_=>_.value)),startIcon:o.jsx(f.Checkbox,{style:{opacity:i.length===t.options.length?.5:1},checked:!0}),children:w.I18n.t("Select")}),o.jsx(f.Button,{disabled:!i.length,onClick:()=>this.props.setSelectedWidgets([]),startIcon:o.jsx(f.Checkbox,{style:{opacity:i.length?1:.5}}),children:w.I18n.t("Unselect")})]}),t.options.map(_=>o.jsx(f.MenuItem,{value:_.value,style:it.menuItem,onClick:()=>this.setState({elAnchor:null},()=>t.onChange([_.value])),children:o.jsxs("div",{style:{display:"flex"},children:[o.jsx("div",{children:o.jsx(f.Checkbox,{checked:t.value.includes(_.value),onClick:m=>{m.stopPropagation(),m.preventDefault();const p=[...i];p.includes(_.value)?p.splice(p.indexOf(_.value),1):p.push(_.value),t.onChange(p)}})}),o.jsxs("div",{children:[_.icon?o.jsx("div",{style:it.menuItemIcon,children:o.jsx("img",{src:_.icon,style:it.icon,alt:_.name})}):null,o.jsx("div",{style:it.menuItemMainText,children:_.name}),o.jsx("div",{style:{...a?it.coloredSecondary:void 0,fontSize:10,fontStyle:"italic",color:_.color,background:_.color?w.Utils.getInvertedColor(_.color,t.themeType,!1):void 0},children:_.subName})]})]})},_.value))]})]})}}const Bt={toolbarBlock:{display:"flex",flexDirection:"column",alignItems:"center",borderRightStyle:"solid",padding:"0px 10px",borderWidth:1},disabled:e=>({color:e.palette.action.disabled}),toolbarItems:{display:"flex",flexDirection:"row",flex:1},toolbarCol:{display:"flex",flexDirection:"column"},toolbarRow:{display:"flex",flexDirection:"row"},toolbarLabel:{fontSize:"72%",opacity:"80%",paddingTop:4}};class qa extends qe.Component{constructor(t){super(t),this.state={opened:null}}closeMenu(){this.setState({opened:null})}onAction=(t,i)=>{if(this.closeMenu(),t.onAction){t.onAction(i);return}if(i!==void 0&&t.field){const{visProject:s}=q.getState(),n=ne(s);n[this.props.selectedView].settings[t.field]=i,this.props.changeProject(n)}};getItemSelect(t,i,s){return o.jsxs(f.FormControl,{variant:"standard",style:{margin:"0px 10px"},children:[this.props.toolbarHeight!=="veryNarrow"?o.jsx(f.InputLabel,{shrink:!0,children:w.I18n.t(t.name)}):null,o.jsx(f.Select,{variant:"standard",style:{width:t.width},value:t.value?t.value:s,onChange:n=>this.onAction(t,n.target.value),children:t.items.map(n=>o.jsx(f.MenuItem,{value:n.value,children:w.I18n.t(n.name)},n.value))})]},i)}getItemMultiselect(t,i,s){return o.jsx(my,{theme:this.props.theme,id:t.id,label:this.props.toolbarHeight!=="veryNarrow"?t.doNotTranslateName?t.name:w.I18n.t(t.name):null,width:t.width,value:t.value?t.value:s,onChange:n=>this.onAction(t,n),setSelectedWidgets:this.props.setSelectedWidgets,options:t.items.map(n=>({name:n.name,subname:n.subName,value:n.value,color:n.color,icon:n.icon})),themeType:this.props.themeType},i)}getItemCheckbox(t,i,s){return o.jsx(f.FormControlLabel,{control:o.jsx(f.Checkbox,{checked:s,onChange:n=>this.onAction(t,n.target.checked),size:"small"}),label:w.I18n.t(t.name)},i)}getItemIconButton(t,i,s){return this.props.toolbarHeight!=="veryNarrow"&&s?o.jsx("div",{style:{textAlign:"center"},children:o.jsxs(f.ButtonBase,{sx:t.disabled?Bt.disabled:void 0,onClick:()=>this.onAction(t),disabled:t.disabled,style:{flexDirection:"column",width:60,borderRadius:4,height:"100%",justifyContent:"start",color:t.color||void 0},children:[o.jsx("div",{children:o.jsx(t.Icon,{fontSize:t.size?t.size:"small"})}),o.jsx("div",{children:w.I18n.t(t.name)}),t.subName?o.jsx("div",{style:{fontSize:10,opacity:.6},children:t.subName}):null]})},i):o.jsx(f.Tooltip,{title:w.I18n.t(t.name),slotProps:{popper:{sx:{pointerEvents:"none"}}},children:o.jsx("div",{children:o.jsx(f.IconButton,{color:t.selected?"primary":void 0,size:"small",disabled:t.disabled,onClick:()=>this.onAction(t),style:{height:s?"100%":null,color:t.color},children:o.jsx(t.Icon,{fontSize:t.size?t.size:"small"})},i)})},i)}getItem(t,i,s){const{visProject:n}=q.getState(),a=n[this.props.selectedView];if(!t||t.hide)return null;let c=a&&t.field?a.settings[t.field]:null;return t.field&&c==null&&(c=""),t.type==="select"?this.getItemSelect(t,i,c):t.type==="multiselect"?this.getItemMultiselect(t,i,c):t.type==="checkbox"?this.getItemCheckbox(t,i,c):t.type==="icon-button"?this.getItemIconButton(t,i,s):t.type==="text"?o.jsx("span",{style:Bt.text,children:`${w.I18n.t(t.text)}:`},i):t.type==="button"?o.jsx(f.Button,{variant:"outlined",onClick:()=>this.onAction(t),size:"small",style:Bt.button,children:w.I18n.t(t.name)},i):t.type==="divider"?o.jsx(f.Divider,{orientation:"vertical",flexItem:!0,style:{margin:"0px 10px"}},i):o.jsx(f.TextField,{variant:"standard",value:c,type:t.type,onChange:l=>this.onAction(t,l.target.value),InputLabelProps:{shrink:!0},label:this.props.toolbarHeight!=="veryNarrow"?w.I18n.t(t.name):null,style:Bt.textInput},i)}render(){let t=this.props.group.items;const i=this.props.group.name,s=this.props.group.doNotTranslateName;if(this.props.toolbarHeight==="veryNarrow"){const a=[];t.forEach(c=>{Array.isArray(c)?c.forEach(l=>{Array.isArray(l)?l.forEach(u=>a.push(u)):a.push(l)}):a.push(c)}),t=a}const n=o.jsxs("div",{style:{...Bt.toolbarBlock,borderRightWidth:this.props.last?0:void 0},children:[o.jsx("div",{style:Bt.toolbarItems,children:t.map((a,c)=>Array.isArray(a)?o.jsx("div",{style:Bt.toolbarCol,children:a.map((l,u)=>o.jsx("div",{style:Bt.toolbarRow,children:l.map((_,m)=>this.getItem(_,m,!1))},u))},c):this.getItem(a,c,!0))}),this.props.toolbarHeight==="full"?o.jsx("div",{style:Bt.toolbarLabel,children:o.jsx("span",{children:typeof i=="string"?s?i:w.I18n.t(i):i})}):null]});return this.props.group.compact?[o.jsx(f.Tooltip,{title:w.I18n.t(this.props.group.compact.tooltip),slotProps:{popper:{sx:{pointerEvents:"none"}}},children:o.jsx(f.IconButton,{onClick:a=>this.setState({opened:this.state.opened?null:a.currentTarget}),style:{height:"100%"},children:this.props.group.compact.icon||o.jsx(S.Menu,{})})},"icon"),o.jsx(f.Menu,{onClose:()=>this.closeMenu(),open:!!this.state.opened,anchorEl:this.state.opened,sx:{"& .MuiList-root":{border:"2px solid grey",borderRadius:4}},children:n},"menu")]:n}}const fy=e=>{const t=ka(!!e.dialog&&e.dialog!=="delete",e.dialog==="add"),i=async()=>{const j=e.dialogView||e.selectedView,T=ne(q.getState().visProject);delete T[j],await e.changeView(Object.keys(T).filter(x=>!x.startsWith("__"))[0]),await e.changeProject(T),e.closeDialog()},s=async()=>{var T;const j=ne(q.getState().visProject);j[e.dialogName.trim()]={name:e.dialogName,parentId:e.dialogParentId,settings:{style:{}},widgets:{},activeWidgets:[]},await e.changeProject(j),await e.changeView(e.dialogName.trim()),e.closeDialog(),(T=e.dialogCallback)==null||T.cb(e.dialogName.trim())},n=j=>{const{project:T,oldViewName:x}=j;for(const[A,L]of Object.entries(T))if(A!=="___settings"){for(const W of Object.values(L.widgets))if(W.tpl==="tplContainerView"&&W.data.contains_view===x&&(W.data.contains_view=e.dialogName),W.tpl==="tplStatefulContainerView8")for(const[N,Y]of Object.entries(W.data))N.startsWith("contains_view")&&Y===x&&(W.data[N]=e.dialogName)}},a=async()=>{var A;const j=e.dialogView||e.selectedView,T=e.dialogName.trim(),x=ne(q.getState().visProject);x[T]=x[j],delete x[j],n({project:x,oldViewName:j}),await e.changeProject(x),await e.changeView(T),e.closeDialog(),(A=e.dialogCallback)==null||A.cb(T)},c=async()=>{var A;const j=e.dialogView||e.selectedView,T=ne(q.getState().visProject);T[e.dialogName]={...T[j],widgets:{},activeWidgets:[]};const x=ne(T[j].widgets);for(const[L,W]of Object.entries(x))if(ri(W))qn({group:W,widgets:T[e.dialogName].widgets,groupMembers:x,project:T});else if(!W.groupid){const N=Gi(T);T[e.dialogName].widgets[N]=x[L]}await e.changeProject(T),await e.changeView(e.dialogName),e.closeDialog(),(A=e.dialogCallback)==null||A.cb(e.dialogName)},l={delete:w.I18n.t('Do you want to delete view "%s"?',e.dialogView||e.selectedView),copy:w.I18n.t('Copy view "%s"',e.dialogView||e.selectedView),rename:w.I18n.t('Rename view "%s"',e.dialogView||e.selectedView),add:w.I18n.t("Add view")},u={delete:w.I18n.t("Delete"),copy:w.I18n.t("Create copy"),rename:w.I18n.t("Rename"),add:w.I18n.t("Add")},_={delete:i,copy:c,rename:a,add:s},m={copy:w.I18n.t("Name of copy"),rename:w.I18n.t("New name"),add:w.I18n.t("Name")},y={delete:S.Delete,copy:S.FileCopy,rename:S.Edit,add:S.Add}[e.dialog];let b=!1;return e.dialog!=="delete"&&(!e.dialogName||q.getState().visProject[e.dialogName.trim()])&&(b=!0),e.dialog?o.jsx(ot,{title:l[e.dialog],noTranslation:e.noTranslation,actionTitle:u[e.dialog],onClose:()=>{e.closeDialog(),e.setDialogView(null),e.setDialogParentId(null)},ActionIcon:y||null,action:_[e.dialog],actionColor:e.dialog==="delete"?"secondary":"primary",actionDisabled:b,children:e.dialog==="delete"?null:o.jsx(f.TextField,{inputRef:t,variant:"standard",label:m[e.dialog],fullWidth:!0,value:e.dialogName,onChange:j=>e.setDialogName(j.target.value)})}):null},Jr={label:{maxWidth:180,textOverflow:"ellipsis",display:"inline-block",whiteSpace:"nowrap",overflow:"hidden"},projectLabel:{cursor:"pointer",fontWeight:"bold"}},wy=e=>{const[t,i]=D.useState(null),[s,n]=D.useState(null),[a,c]=D.useState(""),[l,u]=D.useState(null),[_,m]=D.useState(null),p=(b,j,T,x)=>{j=j||e.selectedView;const A={add:w.I18n.t("New view"),rename:j,copy:`${j} ${w.I18n.t("Copy noun")}`};i(b),u(j),m(T),c(A[b]),n(x?{cb:x}:null)},y={name:o.jsx("span",{style:Jr.label,children:o.jsx(f.Tooltip,{title:w.I18n.t("Current project"),slotProps:{popper:{sx:{pointerEvents:"none"}}},children:o.jsx("span",{style:Jr.projectLabel,onClick:()=>e.setProjectsDialog(!0),children:e.projectName})})}),items:[{type:"icon-button",Icon:S.Add,name:"Add new view",onAction:()=>p("add"),disabled:!!e.selectedGroup||!e.editMode},[[{type:"icon-button",Icon:S.Edit,name:"Rename view",onAction:()=>p("rename"),disabled:!!e.selectedGroup||!e.editMode}],[{type:"icon-button",Icon:S.Delete,name:"Delete actual view",onAction:()=>p("delete"),disabled:!!e.selectedGroup||!e.editMode}]],{type:"icon-button",Icon:S.Menu,name:"Manage views",onAction:()=>e.setViewsManager(!0),disabled:!!e.selectedGroup}]};return o.jsxs(o.Fragment,{children:[o.jsx(qa,{group:y,theme:e.theme,changeProject:e.changeProject,selectedView:e.selectedView,setSelectedWidgets:e.setSelectedWidgets,themeType:e.themeType,toolbarHeight:e.toolbarHeight}),e.viewsManager?o.jsx(py,{onClose:()=>e.setViewsManager(!1),showDialog:p,theme:e.theme,changeProject:e.changeProject,editMode:e.editMode,selectedView:e.selectedView,themeName:e.themeName,themeType:e.themeType,toggleView:e.toggleView}):null,t?o.jsx(fy,{dialog:t,dialogView:l,dialogName:a,dialogCallback:s,noTranslation:!0,dialogParentId:_,closeDialog:()=>i(null),setDialogView:u,setDialogName:c,setDialogParentId:m,changeProject:e.changeProject,changeView:e.changeView,selectedView:e.selectedView}):null]})};function by(e){return Ee({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M11 2h2v5h8v3h-8v4h5v3h-5v5h-2v-5H6v-3h5v-4H3V7h8z"},child:[]}]})(e)}function vy(e){return Ee({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M4 22H2V2h2v20zM22 7H6v3h16V7zm-6 7H6v3h10v-3z"},child:[]}]})(e)}function yy(e){return Ee({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M20 2h2v20h-2V2zM2 10h16V7H2v3zm6 7h10v-3H8v3z"},child:[]}]})(e)}function jy(e){return Ee({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M22 22H2v-2h20v2zM10 2H7v16h3V2zm7 6h-3v10h3V8z"},child:[]}]})(e)}function xy(e){return Ee({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M22 11h-5V6h-3v5h-4V3H7v8H1.84v2H7v8h3v-8h4v5h3v-5h5z"},child:[]}]})(e)}function $y(e){return Ee({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M22 2v2H2V2h20zM7 22h3V6H7v16zm7-6h3V6h-3v10z"},child:[]}]})(e)}function Sy(e){return Ee({attr:{viewBox:"0 0 24 24",fill:"none"},child:[{tag:"path",attr:{d:"M13 7H11V17H13V7Z",fill:"currentColor"},child:[]},{tag:"path",attr:{d:"M5.99996 7.75732L7.41418 9.17154L5.58572 11L9.99996 11V13L5.58579 13L7.41418 14.8284L5.99996 16.2426L1.75732 12L5.99996 7.75732Z",fill:"currentColor"},child:[]},{tag:"path",attr:{d:"M18 16.2427L16.5858 14.8285L18.4143 13H14V11L18.4142 11L16.5858 9.17161L18 7.75739L22.2427 12L18 16.2427Z",fill:"currentColor"},child:[]}]})(e)}function ky(e){return Ee({attr:{viewBox:"0 0 24 24",fill:"none"},child:[{tag:"path",attr:{d:"M7 11L7 13H17V11H7Z",fill:"currentColor"},child:[]},{tag:"path",attr:{d:"M7.75732 18L9.17154 16.5858L11 18.4143V14H13V18.4142L14.8284 16.5858L16.2426 18L12 22.2427L7.75732 18Z",fill:"currentColor"},child:[]},{tag:"path",attr:{d:"M16.2427 5.99996L14.8285 7.41418L13 5.58572V9.99996H11L11 5.58579L9.17161 7.41418L7.75739 5.99996L12 1.75732L16.2427 5.99996Z",fill:"currentColor"},child:[]}]})(e)}function qy(e){return Ee({attr:{viewBox:"0 0 1024 1024"},child:[{tag:"path",attr:{d:"M840 836H184c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h656c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8zm0-724H184c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h656c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8zM610.8 378c6 0 9.4-7 5.7-11.7L515.7 238.7a7.14 7.14 0 0 0-11.3 0L403.6 366.3a7.23 7.23 0 0 0 5.7 11.7H476v268h-62.8c-6 0-9.4 7-5.7 11.7l100.8 127.5c2.9 3.7 8.5 3.7 11.3 0l100.8-127.5c3.7-4.7.4-11.7-5.7-11.7H548V378h62.8z"},child:[]}]})(e)}function Cy(e){return Ee({attr:{viewBox:"0 0 1024 1024"},child:[{tag:"path",attr:{d:"M180 176h-60c-4.4 0-8 3.6-8 8v656c0 4.4 3.6 8 8 8h60c4.4 0 8-3.6 8-8V184c0-4.4-3.6-8-8-8zm724 0h-60c-4.4 0-8 3.6-8 8v656c0 4.4 3.6 8 8 8h60c4.4 0 8-3.6 8-8V184c0-4.4-3.6-8-8-8zM785.3 504.3L657.7 403.6a7.23 7.23 0 0 0-11.7 5.7V476H378v-62.8c0-6-7-9.4-11.7-5.7L238.7 508.3a7.14 7.14 0 0 0 0 11.3l127.5 100.8c4.7 3.7 11.7.4 11.7-5.7V548h268v62.8c0 6 7 9.4 11.7 5.7l127.5-100.8c3.8-2.9 3.8-8.5.2-11.4z"},child:[]}]})(e)}function Py(e){return Ee({attr:{t:"1569683739097",viewBox:"0 0 1024 1024",version:"1.1"},child:[{tag:"path",attr:{d:"M912 820.1V203.9c28-9.9 48-36.6 48-67.9 0-39.8-32.2-72-72-72-31.3 0-58 20-67.9 48H203.9C194 84 167.3 64 136 64c-39.8 0-72 32.2-72 72 0 31.3 20 58 48 67.9v616.2C84 830 64 856.7 64 888c0 39.8 32.2 72 72 72 31.3 0 58-20 67.9-48h616.2c9.9 28 36.6 48 67.9 48 39.8 0 72-32.2 72-72 0-31.3-20-58-48-67.9zM888 112c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zM136 912c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24z m0-752c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24z m704 680H184V184h656v656z m48 72c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24z"},child:[]},{tag:"path",attr:{d:"M288 474h448c8.8 0 16-7.2 16-16V282c0-8.8-7.2-16-16-16H288c-8.8 0-16 7.2-16 16v176c0 8.8 7.2 16 16 16z m56-136h336v64H344v-64zM288 758h448c8.8 0 16-7.2 16-16V566c0-8.8-7.2-16-16-16H288c-8.8 0-16 7.2-16 16v176c0 8.8 7.2 16 16 16z m56-136h336v64H344v-64z"},child:[]}]})(e)}function Dy(e){return Ee({attr:{t:"1569683823033",viewBox:"0 0 1024 1024",version:"1.1"},child:[{tag:"path",attr:{d:"M736 550H288c-8.8 0-16 7.2-16 16v176c0 8.8 7.2 16 16 16h448c8.8 0 16-7.2 16-16V566c0-8.8-7.2-16-16-16z m-56 136H344v-64h336v64zM888 816c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72z m0 96c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24zM736 266H288c-8.8 0-16 7.2-16 16v176c0 8.8 7.2 16 16 16h448c8.8 0 16-7.2 16-16V282c0-8.8-7.2-16-16-16z m-56 136H344v-64h336v64zM888 208c39.8 0 72-32.2 72-72s-32.2-72-72-72-72 32.2-72 72 32.2 72 72 72z m0-96c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zM136 64c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72z m0 96c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24zM136 816c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72z m0 96c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24z"},child:[]}]})(e)}function Cc(e){return Ee({attr:{viewBox:"0 0 24 24",fill:"currentColor"},child:[{tag:"path",attr:{d:"M11 3C11.5523 3 12 3.44772 12 4V6H17C17.5523 6 18 6.44772 18 7V12H20C20.5523 12 21 12.4477 21 13V20C21 20.5523 20.5523 21 20 21H13C12.4477 21 12 20.5523 12 20V18H7C6.44772 18 6 17.5523 6 17V12H4C3.44772 12 3 11.5523 3 11V4C3 3.44772 3.44772 3 4 3H11ZM16 8H8V16H16V8Z"},child:[]}]})(e)}function Pc(e){return Ee({attr:{viewBox:"0 0 24 24",fill:"currentColor"},child:[{tag:"path",attr:{d:"M11 3C11.5523 3 12 3.44772 12 4V6H17C17.5523 6 18 6.44772 18 7V12H20C20.5523 12 21 12.4477 21 13V20C21 20.5523 20.5523 21 20 21H13C12.4477 21 12 20.5523 12 20V18H7C6.44772 18 6 17.5523 6 17V12H4C3.44772 12 3 11.5523 3 11V4C3 3.44772 3.44772 3 4 3H11ZM16 8H12V11C12 11.5523 11.5523 12 11 12H8V16H12V13C12 12.4477 12.4477 12 13 12H16V8Z"},child:[]}]})(e)}const Dc=e=>{const[t,i]=D.useState(""),[s,n]=D.useState(!1),a=()=>{var y,b;const{visProject:c}=q.getState(),l=ne(c),u=JSON.parse(t),_={};let m=0,p=0;for(const j of u)if(ri(j)){const T=Wo(c,m++);_[T]=j;let x;do x=u.find(A=>A.groupid===j._id),x&&(x.groupid=T);while(x)}else{const T=Gi(c,p++);if(_[T]=j,j.grouped&&j.groupid&&((b=(y=_[j.groupid])==null?void 0:y.data)!=null&&b.members)){const x=_[j.groupid].data.members.indexOf(j._id);x!==-1&&(_[j.groupid].data.members[x]=T)}}Object.keys(_).forEach(j=>{delete _[j]._id,!ri(_[j])&&e.selectedGroup!==void 0&&(_[j].grouped=!0,_[j].groupid=e.selectedGroup,l[e.selectedView].widgets[e.selectedGroup].data.members.push(j))}),l[e.selectedView].widgets={...l[e.selectedView].widgets,..._},e.changeProject(l)};return o.jsxs(f.Dialog,{onClose:e.onClose,fullWidth:!0,open:!0,maxWidth:"lg",children:[o.jsx(f.DialogTitle,{children:w.I18n.t("Import widgets")}),o.jsx(f.DialogContent,{children:o.jsx(Pt,{type:"json",error:s,themeType:e.themeType,value:t,onChange:c=>{try{c&&JSON.parse(c),n(!1)}catch{n(!0)}i(c)},height:300})}),o.jsxs(f.DialogActions,{children:[o.jsx(f.Button,{variant:"contained",onClick:()=>{a(),e.onClose()},color:"primary",disabled:!t||s,startIcon:o.jsx(S.ImportExport,{}),children:w.I18n.t("Import")}),o.jsx(f.Button,{variant:"contained",color:"grey",onClick:e.onClose,startIcon:o.jsx(S.Close,{}),children:w.I18n.t("Close")})]})]})},Tc=e=>{var c;const t=e.selectedWidgets.map(l=>{const u=ne(e.widgets[l]);return u._id=l,u}),i=[];let s=1,n=1;const a=t.length;for(let l=0;l<a;l++){const u=t[l];if(u.tpl==="_tplGroup"){const _=`f${s.toString().padStart(6,"0")}`;if(s++,(c=u.data)!=null&&c.members){const m=[];for(let p=0;p<u.data.members.length;p++){const y=u.data.members[p];if(i.includes(y))continue;const b=ne(e.widgets[y]);b._id=`i${n.toString().padStart(6,"0")}`,n++,m.push(b._id),b.groupid=_,b.grouped=!0,t.push(b),i.push(y)}u.data.members=m}u._id=_}else u._id.startsWith("w")&&(u.grouped?(delete u.grouped,delete u.groupid,delete u._id):(u._id=`i${n.toString().padStart(6,"0")}`,n++))}return o.jsx(ot,{onClose:e.onClose,title:"Export widgets",closeTitle:"Close",action:()=>{w.Utils.copyToClipboard(JSON.stringify(t,null,2)),e.onClose(),window.alert(w.I18n.t("Copied to clipboard"))},actionTitle:"Copy to clipboard",actionNoClose:!0,ActionIcon:S.FileCopy,children:o.jsx(Pt,{type:"json",themeType:e.themeType,value:JSON.stringify(t,null,2),height:200})})},Ty=e=>{var u;const[t,i]=D.useState([]),s=q.getState().visProject,[n,a]=D.useState(s[e.selectedView].filterWidgets||[]),[c,l]=D.useState(s[e.selectedView].filterInvert||!1);return D.useEffect(()=>{const _=[],m=s[e.selectedView].widgets;Object.values(m).forEach(p=>{p.data&&p.data.filterkey&&p.data.filterkey.split(",").forEach(y=>{y=y.trim();const b=_.findIndex(j=>j.key===y);b===-1?_.push({key:y,count:1}):_[b].count++})}),i(_)},[s,e.selectedView]),o.jsxs(f.Dialog,{open:!0,onClose:e.onClose,children:[o.jsx(f.DialogTitle,{children:w.I18n.t("Set widgets filter for edit mode")}),o.jsxs(f.DialogContent,{children:[t.length>1?o.jsx(f.Button,{disabled:t.length===n.length,color:"primary",onClick:()=>a([...t.map(_=>_.key)]),variant:"contained",children:w.I18n.t("Select all")}):null,t.length>1?o.jsx(f.Button,{disabled:!n.length,color:"grey",style:{marginLeft:10},onClick:()=>a([]),variant:"contained",children:w.I18n.t("Unselect all")}):null,o.jsxs("div",{style:{width:"100%",display:"flex",alignItems:"center",justifyContent:"space-between"},children:[o.jsxs(f.Box,{style:{opacity:c?.5:1,display:"flex",alignItems:"center"},children:[w.I18n.t("Hide selected widgets"),o.jsx(S.VisibilityOff,{style:{marginLeft:8}})]}),o.jsx(f.Switch,{checked:c,onChange:_=>l(_.target.checked)}),o.jsxs(f.Box,{style:{opacity:c?1:.5,display:"flex",alignItems:"center"},children:[o.jsx(S.Visibility,{style:{marginRight:8}}),w.I18n.t("Show only selected widgets")]})]}),o.jsxs("div",{children:[t.length?null:o.jsx("div",{style:{marginTop:20,fontStyle:"italic",fontSize:"smaller"},children:w.I18n.t("To use it, define by some widget the filter key")}),t.map(_=>o.jsxs(f.ListItemButton,{onClick:()=>{const m=[...n],p=m.indexOf(_.key);p!==-1?m.splice(p,1):m.push(_.key),a(m)},children:[o.jsx(f.ListItemAvatar,{children:o.jsx(f.Checkbox,{checked:n.includes(_.key)})}),o.jsx(f.ListItemText,{primary:o.jsxs(o.Fragment,{children:[o.jsx("span",{children:_.key}),_.count>1?o.jsx("span",{style:{marginLeft:10,opacity:.7,fontStyle:"italic",fontSize:"0.8em"},children:w.I18n.t("%s widgets",_.count)}):null]})})]},_.key))]})]}),o.jsxs(f.DialogActions,{children:[(u=s[e.selectedView].filterWidgets)!=null&&u.length?o.jsx(f.Button,{disabled:!t.length,variant:"outlined",onClick:()=>{const _=JSON.parse(JSON.stringify(s));_[e.selectedView].filterWidgets=[],e.changeProject(_),e.onClose()},color:"primary",startIcon:o.jsx(S.LayersClear,{}),children:w.I18n.t("Clear filter")}):null,o.jsx(f.Button,{disabled:!t.length,variant:"contained",autoFocus:!0,onClick:()=>{const _=JSON.parse(JSON.stringify(s));_[e.selectedView].filterWidgets=n,_[e.selectedView].filterInvert=c,e.changeProject(_),e.onClose()},color:"primary",startIcon:o.jsx(S.FilterAlt,{}),children:w.I18n.t("Apply")}),o.jsx(f.Button,{variant:"contained",onClick:e.onClose,color:"grey",startIcon:o.jsx(S.Close,{}),children:w.I18n.t("ra_Cancel")})]})]})},My=e=>{var _;const[t,i]=D.useState(!1),[s,n]=D.useState(!1),[a,c]=D.useState(!1),l=(_=q.getState().visProject)==null?void 0:_[e.selectedView],u=D.useMemo(()=>{var b;if(!e.widgetsLoaded||!e.openedViews.length||!l)return null;const m=Yi(),p=l.widgets,y=Object.keys(p).filter(j=>e.selectedGroup?p[j].groupid===e.selectedGroup||j===e.selectedGroup:!p[j].groupid);return{name:"Widgets",items:[{type:"icon-button",Icon:S.FilterAlt,name:"Filter widgets",color:(b=l.filterWidgets)!=null&&b.length?"#c00000":void 0,disabled:!e.editMode,onAction:()=>c(!0)},{type:"multiselect",name:w.I18n.t("Active widget(s) from %s",y.length),doNotTranslateName:!0,id:"tests-vis-selected-widget",items:y.map(j=>{var R,G;const T=p[j].tpl,x=m.find(J=>J.name===T);let A=(x==null?void 0:x.title)||"",L=x?x.setColor:"#FF0000";x!=null&&x.label&&(A=w.I18n.t(x.label)),A=A.split("<br")[0],A=A.split("<span")[0],A=A.split("<div")[0];let W=x==null?void 0:x.set;if(x!=null&&x.setLabel)W=w.I18n.t(x.setLabel);else if(W){const J=m.find(P=>P.set===W&&P.setLabel);J&&(L=J.setColor,W=w.I18n.t(J.setLabel))}let N=x?x.preview||"":"icon/question.svg";if(N.startsWith("<img")){const J=N.match(/src="([^"]+)"/);J&&J[1]&&(N=J[1])}let Y;p[j]&&((R=p[j].data)!=null&&R.name)?Y=o.jsxs("span",{children:[o.jsx("span",{children:(G=p[j].data)==null?void 0:G.name}),o.jsx("span",{style:{marginLeft:4,fontSize:10,fontStyle:"italic",opacity:.8},children:`[${j}]`})]}):Y=j;let H=x?`(${W} - ${T==="_tplGroup"?w.I18n.t("group"):A})`:T;return p[j].marketplace&&(H=`${p[j].marketplace.name} (${w.I18n.t("version")} ${p[j].marketplace.version})`),{name:Y,subName:H,value:j,color:L,icon:N.startsWith("<")?"":N}}),width:240,value:e.selectedWidgets,onAction:j=>e.setSelectedWidgets(j)},[[{type:"icon-button",Icon:S.Delete,name:"Delete widgets",disabled:!e.selectedWidgets.length||e.selectedGroup&&e.selectedWidgets.includes(e.selectedGroup),onAction:()=>e.deleteWidgets()}],[{type:"icon-button",Icon:S.FileCopy,name:"Clone widget",disabled:!e.selectedWidgets.length||e.selectedGroup&&e.selectedWidgets.includes(e.selectedGroup),onAction:()=>e.cloneWidgets()}]],{type:"divider"},[[{type:"icon-button",Icon:$c,name:"Cut",size:"normal",disabled:!e.selectedWidgets.length||e.selectedGroup&&e.selectedWidgets.includes(e.selectedGroup),onAction:()=>e.cutWidgets()},{type:"icon-button",Icon:xc,name:"Copy",size:"normal",disabled:!e.selectedWidgets.length||e.selectedGroup&&e.selectedWidgets.includes(e.selectedGroup),onAction:()=>e.copyWidgets()}],[{type:"icon-button",Icon:Sc,name:"Paste",size:"normal",disabled:!Object.keys(e.widgetsClipboard.widgets).length,onAction:()=>e.pasteWidgets()}]],{type:"icon-button",Icon:S.Undo,name:"Undo",subName:`(${e.historyCursor+1} / ${e.history.length})`,onAction:e.undo,disabled:!e.editMode||e.historyCursor===0},{type:"icon-button",Icon:S.Redo,name:"Redo",onAction:e.redo,disabled:!e.editMode||e.historyCursor===e.history.length-1},{type:"divider"},window.innerWidth>1410?[[{type:"icon-button",Icon:vy,name:"Align horizontal/left",size:"normal",disabled:e.selectedWidgets.length<2,onAction:()=>e.alignWidgets("left")},{type:"icon-button",Icon:$y,name:"Align vertical/top",size:"normal",disabled:e.selectedWidgets.length<2,onAction:()=>e.alignWidgets("top")},{type:"icon-button",Icon:by,name:"Align horizontal/center",size:"normal",disabled:e.selectedWidgets.length<2,onAction:()=>e.alignWidgets("horizontal-center")},{type:"icon-button",Icon:Sy,name:"Align horizontal/equal",size:"normal",disabled:e.selectedWidgets.length<2,onAction:()=>e.alignWidgets("horizontal-equal")},{type:"icon-button",Icon:Cy,name:"Align width. Press more time to get the desired width.",size:"normal",disabled:e.selectedWidgets.length<2,onAction:()=>e.alignWidgets("width")},{type:"icon-button",Icon:Cc,name:"Bring to front",size:"normal",disabled:!e.selectedWidgets.length,onAction:()=>e.orderWidgets("front")}],[{type:"icon-button",Icon:yy,name:"Align horizontal/right",size:"normal",disabled:e.selectedWidgets.length<2,onAction:()=>e.alignWidgets("right")},{type:"icon-button",Icon:jy,name:"Align vertical/bottom",size:"normal",disabled:e.selectedWidgets.length<2,onAction:()=>e.alignWidgets("bottom")},{type:"icon-button",Icon:xy,name:"Align vertical/center",size:"normal",disabled:e.selectedWidgets.length<2,onAction:()=>e.alignWidgets("vertical-center")},{type:"icon-button",Icon:ky,name:"Align vertical/equal",size:"normal",disabled:e.selectedWidgets.length<2,onAction:()=>e.alignWidgets("vertical-equal")},{type:"icon-button",Icon:qy,name:"Align height. Press more time to get the desired height.",size:"normal",disabled:e.selectedWidgets.length<2,onAction:()=>e.alignWidgets("height")},{type:"icon-button",Icon:Pc,name:"Send to back",size:"normal",disabled:!e.selectedWidgets.length,onAction:()=>e.orderWidgets("back")}]]:null,window.innerWidth>1410?{type:"divider"}:null,[[{type:"icon-button",Icon:S.OpenInNew,name:"Lock dragging",selected:e.lockDragging,onAction:()=>e.toggleLockDragging()}],[{type:"icon-button",Icon:e.widgetHint==="hide"?S.VisibilityOff:S.Visibility,color:e.widgetHint==="light"?"white":"black",name:`Toggle widget hint (${e.widgetHint})`,onAction:()=>e.toggleWidgetHint()}]],{type:"divider"},[[{type:"icon-button",Icon:Si,name:"Import widgets",size:"normal",disabled:!e.editMode,onAction:()=>n(!0)}],[{type:"icon-button",Icon:eo,name:"Export widgets",size:"normal",disabled:!e.selectedWidgets.length,onAction:()=>i(!0)}]]]}},[e.selectedGroup,e.selectedWidgets,e.editMode,e.lockDragging,e.widgetHint,e.historyCursor,e.history.length,e.widgetsLoaded,e.openedViews.length,l]);return!e.widgetsLoaded||!e.openedViews.length||!q.getState().visProject[e.selectedView]?null:o.jsxs(o.Fragment,{children:[o.jsx(qa,{theme:e.theme,group:u,changeProject:e.changeProject,selectedView:e.selectedView,setSelectedWidgets:e.setSelectedWidgets,themeType:e.themeType,toolbarHeight:e.toolbarHeight}),s?o.jsx(Dc,{onClose:()=>n(!1),changeProject:e.changeProject,selectedView:e.selectedView,selectedGroup:e.selectedGroup,themeType:e.themeType}):null,t?o.jsx(Tc,{onClose:()=>i(!1),widgets:q.getState().visProject[e.selectedView].widgets,selectedWidgets:e.selectedWidgets,themeType:e.themeType}):null,a?o.jsx(Ty,{onClose:()=>c(!1),changeProject:e.changeProject,selectedView:e.selectedView}):null]})},wn={dialog:{width:400},field:{display:"flex",alignItems:"center",padding:"4px 0px",marginBottom:"10px"}};function zy(e){const[t,i]=D.useState(0),[s,n]=D.useState(!1),[a,c]=D.useState({}),[l,u]=D.useState("");D.useEffect(()=>{const p={...q.getState().visProject.___settings};p.reloadOnEdit===void 0&&(p.reloadOnEdit=!0);const y=(window.localStorage.getItem("visInstance")||"").replace(/^"/,"").replace(/"$/,"");u(y),e.socket.readDir(`${e.adapterName}.${e.adapterInstance}`,e.projectName).then(b=>{var T;const j=b.find(x=>x.file==="vis-views.json");(j!=null&&j.mode||(T=j==null?void 0:j.acl)!=null&&T.permissions)&&i(j.mode||j.acl.permissions)}),c(p)},[]);const _=[{type:"select",name:"Reload all browsers if project changed",field:"reloadOnEdit",fullWidth:!0,items:[{value:!0,name:"reload"},{value:!1,name:"no_reload"}]},{type:"checkbox",name:"Dark reconnect screen",field:"darkReloadScreen"},{name:"States Debounce Time (millis)",field:"statesDebounceTime",type:"number"},{type:"raw",Node:o.jsxs("div",{style:{width:"100%",display:"flex",gap:8,alignItems:"baseline"},children:[o.jsx(f.TextField,{variant:"standard",style:{flexGrow:1},label:w.I18n.t("Browser instance ID"),value:l||"",onChange:p=>u(p.target.value),slotProps:{input:{endAdornment:l?o.jsx(f.IconButton,{onClick:()=>w.Utils.copyToClipboard(l),children:o.jsx(S.ContentCopy,{})}):null,sx:{...E.clearPadding,...E.fieldContent}}}}),o.jsx(f.Button,{variant:"contained",color:"grey",style:{whiteSpace:"nowrap"},onClick:()=>{let p=(Math.random()*4294967296).toString(16);p=`0000000${p}`,p=p.substring(p.length-8),window.localStorage.setItem("visInstance",p),window.vis.instance=p,u(p)},startIcon:o.jsx(S.Refresh,{}),children:w.I18n.t("Create instance")})]})},{type:"switchMode"},{name:"Browser tab title",type:"text",field:"title"},{name:"Browser tab favicon",type:"image",field:"favicon"},{type:"select",name:"Body overflow",field:"bodyOverflow",help:"Default: auto",noTranslate:!0,fullWidth:!1,items:[{value:"auto",name:"auto"},{value:"scroll",name:"scroll"},{value:"hidden",name:"hidden"},{value:"visible",name:"visible"}]}],m=()=>{const p=ne(q.getState().visProject);p.___settings=a,e.changeProject(p),e.onClose()};return o.jsx(ot,{onClose:e.onClose,title:"Project settings",ActionIcon:S.Save,action:m,actionTitle:"Save",actionDisabled:JSON.stringify(q.getState().visProject.___settings)===JSON.stringify(a),children:o.jsxs("div",{style:wn.dialog,children:[_.map((p,y)=>{let b;if(p.type==="raw")return o.jsx("div",{style:wn.field,children:p.Node},"raw");if(p.type==="switchMode")return o.jsx("div",{style:wn.field,children:o.jsx(f.FormControlLabel,{label:w.I18n.t("Available for all"),control:o.jsx(f.Switch,{checked:!!(t&96),onChange:x=>{e.socket.getRawSocket().emit("chmodFile",`${e.adapterName}.${e.adapterInstance}`,`${e.projectName}/*`,{mode:x.target.checked?1604:1536},(A,L)=>{var W;if(A)window.alert(A);else{const N=L.find(Y=>Y.file==="vis-views.json");(N!=null&&N.mode||(W=N==null?void 0:N.acl)!=null&&W.permissions)&&i(N.mode||N.acl.permissions)}})}})})},"switchMode");const j=a[p.field],T=x=>{const A=ne(a);A[p.field]=x,c(A),dl(A.title,A.favicon,{themeType:e.theme.palette.mode,adapterName:e.adapterName,instance:e.adapterInstance,projectName:e.projectName})};if(p.type==="checkbox")b=o.jsx(f.FormControlLabel,{control:o.jsx(f.Checkbox,{checked:!!j,onChange:x=>T(x.target.checked)}),label:w.I18n.t(p.name)});else if(p.type==="select")b=o.jsxs(f.FormControl,{variant:"standard",style:{marginBottom:10},fullWidth:!0,children:[o.jsx(f.InputLabel,{children:w.I18n.t(p.name)}),o.jsx(f.Select,{variant:"standard",value:j||"",onChange:x=>T(x.target.value),children:p.items.map((x,A)=>o.jsx(f.MenuItem,{value:x.value,children:p.noTranslate?x.name:w.I18n.t(x.name)},x.name||A.toString()))}),p.help?o.jsx(f.FormHelperText,{children:w.I18n.t(p.help)}):null]});else if(p.type==="image"){let x;s&&(x=j||"",x.startsWith("../")?x=x.substring(3):x.startsWith("_PRJ_NAME/")&&(x=x.replace("_PRJ_NAME/",`../${e.adapterName}.${e.adapterInstance}/${e.projectName}/`))),b=o.jsxs(o.Fragment,{children:[o.jsx(f.TextField,{variant:"standard",fullWidth:!0,slotProps:{input:{sx:{...E.clearPadding,...E.fieldContent},endAdornment:o.jsx(f.Button,{tabIndex:-1,style:{minWidth:30},size:"small",onClick:()=>n(!0),children:"..."})}},label:w.I18n.t(p.name),value:j||"",onChange:A=>T(A.target.value)}),s?o.jsx(w.SelectFile,{title:w.I18n.t("Select file"),onClose:()=>n(!1),restrictToFolder:`${e.adapterName}.${e.adapterInstance}/${e.projectName}`,allowNonRestricted:!0,allowUpload:!0,allowDownload:!0,allowCreateFolder:!0,allowDelete:!0,allowView:!0,showToolbar:!0,imagePrefix:"../",selected:x,filterByType:"images",theme:e.theme,onOk:A=>{let L=Array.isArray(A)?A[0]:A;const W=`${e.adapterName}.${e.adapterInstance}/${e.projectName}/`;L.startsWith(W)?L=`_PRJ_NAME/${L.substring(W.length)}`:L.startsWith("/")?L=`..${L}`:L.startsWith(".")||(L=`../${L}`),T(L),n(!1)},socket:e.socket}):null]})}else b=o.jsx(f.TextField,{variant:"standard",fullWidth:!0,value:j||"",onChange:x=>T(x.target.value),label:w.I18n.t(p.name),helperText:p.help?w.I18n.t(p.help):null,type:p.type});return o.jsx("div",{style:wn.field,children:b},p.field||y.toString())}),o.jsx(f.Button,{style:{marginBottom:10},color:"grey",variant:"contained",onClick:()=>e.socket.sendTo(`${e.adapterName}.${e.adapterInstance}`,"rebuild",null).then(()=>{window.alert(w.I18n.t("Rebuild of HTML pages was started")),e.onClose()}).catch(p=>window.alert(`Cannot rebuild: ${p}`)),startIcon:o.jsx(S.Refresh,{}),children:w.I18n.t("Rebuild HTML pages")}),o.jsx(f.Button,{style:{opacity:window.localStorage.getItem("developerMode")==="true"?1:0},variant:"contained",onClick:async()=>{var p;if(window.localStorage.getItem("developerMode")==="true"){window.localStorage.removeItem("developerMode");const y=await e.socket.getObjectViewSystem("instance","system.adapter.","system.adapter.香"),b=Object.values(y);for(let j=0;j<b.length;j++)(p=b[j].common)!=null&&p.visWidgets&&Object.keys(b[j].common.visWidgets).find(T=>{var x;return(x=b[j].common.visWidgets[T].url)==null?void 0:x.startsWith("http")})&&(Object.keys(b[j].common.visWidgets).forEach(T=>{const x=b[j].common.name;typeof x=="object"?b[j].common.visWidgets[T].url=`${x.en}/customWidgets.js`:b[j].common.visWidgets[T].url=`${x}/customWidgets.js`}),await e.socket.setObject(b[j]._id,b[j]))}else window.localStorage.setItem("developerMode","true");window.location.reload()},children:"Development mode"})]})})}const Mc=async e=>{var n;const t=await e.getObjectViewSystem("host","system.host.","system.host.香"),i=Object.keys(t).map(a=>`${a}.alive`);if(!i.length)return null;const s=await e.getForeignStates(i);for(const a in s)if((n=s[a])!=null&&n.val)return a.substring(0,a.length-6);return null},zc=e=>{const[t,i]=D.useState(""),[s,n]=D.useState(null),[a,c]=D.useState(!1),[l,u]=D.useState(!1),[_,m]=D.useState(!1),p=()=>{if(e.projects.includes(t)&&!a){c(!0);return}m(!0),Mc(e.socket).then(j=>{if(!j){window.alert(w.I18n.t("No live hosts found!")),m(!1);return}let T=setTimeout(()=>{T=null,m(!1),window.alert(w.I18n.t("Cannot upload project: timeout"))},6e4);e.socket.getRawSocket().emit("sendToHost",j,"writeDirAsZip",{id:`${e.adapterName}.${e.instance}`,name:t||"main",data:s.split(",")[1]},async x=>{m(!1),T&&clearTimeout(T),T=null,x.error?window.alert(w.I18n.t("Cannot upload project: %s",x.error)):e.projectName!==t||e.openNewProjectOnCreate?e.openNewProjectOnCreate?e.onClose(!0,t):(await e.refreshProjects(!1),u(!0)):(await e.refreshProjects(!0),e.onClose(!0,t))})})},y=a?o.jsx(w.Confirm,{title:w.I18n.t("Project already exists."),text:w.I18n.t("Do you want to overwrite it?"),ok:w.I18n.t("Overwrite"),cancel:w.I18n.t("Cancel"),onClose:j=>{c(!1),j&&p()}}):null,b=l?o.jsx(w.Confirm,{title:w.I18n.t('Project "%s" was successfully imported',t),text:w.I18n.t("Open it?",t),ok:w.I18n.t("Open"),cancel:w.I18n.t("Ignore"),onClose:j=>{u(!1),j&&e.loadProject(t),e.onClose(j,t)}}):null;return o.jsxs(ot,{title:"Import project",onClose:()=>e.onClose(),actionNoClose:!0,action:p,actionTitle:"Import",ActionIcon:Si,actionDisabled:!(t!=null&&t.length)||!s||_,closeDisabled:_,children:[o.jsx(Rg,{disabled:_,themeType:e.themeType,onUpload:(j,T)=>{j.match(/^\d\d\d\d-\d\d-\d\d-/)?i(j.substring(11).replace(/\.zip$/i,"")):i(j.replace(/\.zip$/i,"")),n(T)},accept:{"application/zip":[".zip"]}}),o.jsx("div",{style:{marginTop:10},children:o.jsx(f.TextField,{variant:"standard",fullWidth:!0,disabled:_,label:w.I18n.t("Project name"),helperText:e.projects.includes(t)?w.I18n.t("Project already exists"):"",error:e.projects.includes(t),value:t,onChange:j=>i(j.target.value.replace(/[^\da-zA-Z\-_.]/,""))})}),y,b]})},Iy=e=>{const t=ka(e.dialog&&e.dialog!=="delete",e.dialog==="add");if(!e.dialog)return null;const i={delete:w.I18n.t('Do you want to delete project "%s"?',e.dialogProject),rename:w.I18n.t('Rename project "%s"',e.dialogProject),add:w.I18n.t("Add project")},s={delete:w.I18n.t("Delete"),rename:w.I18n.t("Rename"),add:w.I18n.t("Add")},l={delete:()=>e.deleteProject(e.dialogProject),rename:()=>e.renameProject(e.dialogProject,e.dialogName),add:()=>e.addProject(e.dialogName)},u={rename:w.I18n.t("New name"),add:w.I18n.t("Name")},m={delete:S.Delete,rename:S.Edit,add:S.Add}[e.dialog];let p=!1;return e.dialog!=="delete"&&(p=e.dialogName===""||e.projects.includes(e.dialogName)),o.jsx(ot,{title:i[e.dialog],actionTitle:s[e.dialog],noTranslation:!0,onClose:()=>{e.closeDialog(),e.setDialogProject(null)},ActionIcon:m||null,action:l[e.dialog],actionColor:e.dialog==="delete"?"secondary":"primary",actionDisabled:p,children:e.dialog==="delete"?null:o.jsx(f.TextField,{variant:"standard",label:u[e.dialog],inputRef:t,fullWidth:!0,value:e.dialogName,onChange:y=>e.setDialogName(y.target.value)})})};class Ca extends qe.Component{adminUser="admin";constructor(t){super(t),this.state={users:[],projectPermissions:new Map,viewPermissions:{},widgetPermissions:{},cardOpen:{}}}async componentDidMount(){var u,_,m,p;const t=await this.props.socket.getObjectViewSystem("user","system.user.","system.user.香"),{visProject:i}=q.getState(),s=new Map,n={},a={},c=Object.values(t).find(y=>y._id==="system.user.admin"),l=typeof(c==null?void 0:c.common.name)=="object"?c!=null&&c.common.name&&(c.common.name[w.I18n.getLanguage()]||c.common.name.en)||"":(c==null?void 0:c.common.name)||"";this.adminUser=l||this.adminUser;for(const y of Object.keys(t)){s.set(y,((u=i.___settings.permissions)==null?void 0:u[y])??us);for(const[b,j]of Object.entries(i))if(b!=="___settings"){n[b]||(n[b]=new Map),n[b].set(y,((m=(_=j.settings)==null?void 0:_.permissions)==null?void 0:m[y])??us);for(const[T,x]of Object.entries(j.widgets))a[T]||(a[T]=new Map),a[T].set(y,((p=x.permissions)==null?void 0:p[y])??us)}}this.setState({users:Object.keys(t),projectPermissions:s,viewPermissions:n,widgetPermissions:a})}onSave(){const t=ne(q.getState().visProject);t.___settings.permissions===void 0&&(t.___settings.permissions={});for(const[i,s]of this.state.projectPermissions)if(i!==this.adminUser){t.___settings.permissions[i]=s;for(const[n,a]of Object.entries(t))if(n!=="___settings"){a.settings===void 0&&(a.settings={}),a.settings.permissions===void 0&&(a.settings.permissions={}),a.settings.permissions[i]=this.state.viewPermissions[n].get(i)??us;for(const[c,l]of Object.entries(a.widgets))l.permissions===void 0&&(l.permissions={}),l.permissions[i]=this.state.widgetPermissions[c].get(i)??us}}this.props.changeProject(t),this.props.onClose()}static renderInfoDialog(){return o.jsxs("div",{style:{display:"inline-flex",alignItems:"center",border:"1px solid",borderRadius:"5px",width:"100%"},children:[o.jsx(S.Info,{sx:{margin:"4px"}}),o.jsx("div",{style:{margin:"6px",fontSize:"12px"},children:o.jsxs("p",{style:{margin:0},children:[w.I18n.t("Only the admin user can change permissions"),o.jsx("br",{}),w.I18n.t("Read = Runtime access"),o.jsx("br",{}),w.I18n.t("Write = Edit mode access")]})})]})}renderWidgetPermissions(t){var l,u,_,m,p,y,b,j;const{view:i,user:s,activeUser:n,wid:a,widget:c}=t;return o.jsxs("div",{style:{display:"flex"},children:[o.jsx("p",{style:{margin:"auto",fontSize:12},children:`${c.data.name?`${c.data.name} (${a})`:a}:`}),o.jsxs("div",{style:{width:"100%",alignSelf:"center",display:"flex",justifyContent:"flex-end",alignItems:"center"},children:[o.jsx(f.Checkbox,{disabled:s===this.adminUser||n!==this.adminUser||!((l=this.state.projectPermissions.get(s))!=null&&l.read)||!((u=this.state.viewPermissions[i].get(s))!=null&&u.read),checked:(m=(_=this.state.widgetPermissions[a])==null?void 0:_.get(s))==null?void 0:m.read,onClick:()=>{const T=this.state,x=this.state.widgetPermissions[a].get(s);T.widgetPermissions[a].set(s,{read:!(x!=null&&x.read),write:!!(x!=null&&x.write)}),this.setState(T)}}),w.I18n.t("Read"),o.jsx(f.Checkbox,{disabled:s===this.adminUser||n!==this.adminUser||!((p=this.state.projectPermissions.get(s))!=null&&p.write)||!((y=this.state.viewPermissions[i].get(s))!=null&&y.write),checked:(j=(b=this.state.widgetPermissions[a])==null?void 0:b.get(s))==null?void 0:j.write,onClick:()=>{const T=this.state,x=this.state.widgetPermissions[a].get(s);T.widgetPermissions[a].set(s,{read:!!(x!=null&&x.read),write:!(x!=null&&x.write)}),this.setState(T)}}),w.I18n.t("Write")]})]},`${s}-${i}-${a}`)}renderViewPermissions(t){var l,u,_,m,p,y;const{view:i,user:s,activeUser:n,visProject:a}=t,c=`${s}-${i}`;return o.jsxs($r,{sx:{border:"1px solid rgba(211,211,211,0.6)",marginTop:"5px"},children:[o.jsx(Sr,{title:i,titleTypographyProps:{fontWeight:"bold",fontSize:12},action:o.jsx("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center"},children:o.jsxs("div",{style:{display:"flex"},children:[o.jsxs("div",{style:{width:"100%",alignSelf:"center",display:"flex",justifyContent:"flex-end",alignItems:"center"},children:[o.jsx(f.Checkbox,{disabled:s===this.adminUser||n!==this.adminUser||!((l=this.state.projectPermissions.get(s))!=null&&l.read),checked:(_=(u=this.state.viewPermissions[i])==null?void 0:u.get(s))==null?void 0:_.read,onClick:()=>{const b=this.state,j=this.state.viewPermissions[i].get(s);b.viewPermissions[i].set(s,{read:!(j!=null&&j.read),write:!!(j!=null&&j.write)}),this.setState(b)}}),w.I18n.t("Read"),o.jsx(f.Checkbox,{disabled:s===this.adminUser||n!==this.adminUser||!((m=this.state.projectPermissions.get(s))!=null&&m.write),checked:(y=(p=this.state.viewPermissions[i])==null?void 0:p.get(s))==null?void 0:y.write,onClick:()=>{const b=this.state,j=this.state.viewPermissions[i].get(s);b.viewPermissions[i].set(s,{read:!!(j!=null&&j.read),write:!(j!=null&&j.write)}),this.setState(b)}}),w.I18n.t("Write")]}),o.jsx(Cr,{onClick:()=>{this.setState({cardOpen:{...this.state.cardOpen,[c]:!this.state.cardOpen[c]}})},"aria-label":"expand",size:"small",children:this.state.cardOpen[c]?o.jsx(jr,{}):o.jsx(xr,{})})]})},c)}),o.jsx(kr,{in:this.state.cardOpen[c],sx:{borderTop:"1px solid rgba(211,211,211,0.6)"},children:o.jsx(qr,{children:this.state.cardOpen[c]?Object.entries(a[i].widgets).map(([b,j])=>this.renderWidgetPermissions({...t,wid:b,widget:j})):null})})]})}render(){const{activeUser:t,visProject:i}=q.getState();return o.jsxs(ot,{title:"Permissions",onClose:()=>this.props.onClose(),actionNoClose:!0,action:()=>this.onSave(),actionTitle:"Save",ActionIcon:S.Check,actionDisabled:!1,closeDisabled:!1,minWidth:"600px",children:[Ca.renderInfoDialog(),this.state.users.map(s=>{var n,a;return o.jsxs($r,{sx:{border:"1px solid rgba(211,211,211,0.6)",marginTop:"5px"},children:[o.jsx(Sr,{title:s,titleTypographyProps:{fontWeight:"bold",fontSize:12},action:o.jsx("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center"},children:o.jsxs("div",{children:[o.jsx(f.Checkbox,{disabled:s===this.adminUser||t!==this.adminUser,checked:(n=this.state.projectPermissions.get(s))==null?void 0:n.read,onClick:()=>{const c=this.state,l=this.state.projectPermissions.get(s);c.projectPermissions.set(s,{read:!(l!=null&&l.read),write:!!(l!=null&&l.write)}),this.setState(c)}}),w.I18n.t("Read"),o.jsx(f.Checkbox,{disabled:s===this.adminUser||t!==this.adminUser,checked:(a=this.state.projectPermissions.get(s))==null?void 0:a.write,onClick:()=>{const c=this.state,l=this.state.projectPermissions.get(s);c.projectPermissions.set(s,{read:!!(l!=null&&l.read),write:!(l!=null&&l.write)}),this.setState(c)}}),w.I18n.t("Write"),o.jsx(Cr,{onClick:()=>{this.setState({cardOpen:{...this.state.cardOpen,[s]:!this.state.cardOpen[s]}})},"aria-label":"expand",size:"small",children:this.state.cardOpen[s]?o.jsx(jr,{}):o.jsx(xr,{})})]})},s)}),o.jsx(kr,{in:this.state.cardOpen[s],sx:{borderTop:"1px solid rgba(211,211,211,0.6)"},children:o.jsx(qr,{children:this.state.cardOpen[s]?Object.keys(i).map(c=>c==="___settings"?null:this.renderViewPermissions({visProject:i,view:c,user:s,activeUser:t})):null})})]},s)})]})}}const oi={projectBlock:{display:"flex",alignItems:"center"},projectButton:{justifyContent:"left",textTransform:"none"},viewManageButtonActions:{textAlign:"right",width:220},dialog:{minWidth:400,minHeight:300},topBar:{flexDirection:"row",borderRadius:4,marginBottom:12},button:{margin:4},blink:{animation:"my-vis-blink 3s infinite"}},Hy=e=>{const[t,i]=D.useState(null),[s,n]=D.useState(""),[a,c]=D.useState(null),[l,u]=D.useState(null),[_,m]=D.useState(!1),[p,y]=D.useState(null),[b,j]=D.useState(!1),[T,x]=D.useState(!1);if(!e.projects)return null;const A=(N,Y)=>{Y=Y||e.selectedView;const H={add:"New project",rename:Y,delete:""};i(N),c(Y),n(H[N])},L=async(N,Y)=>{j(N);const H=await Mc(e.socket);if(!H){j(!1),window.alert(w.I18n.t("No live hosts found!"));return}e.socket.getRawSocket().emit("sendToHost",H,"readDirAsZip",{id:`${e.adapterName}.${e.instance}`,name:N||"main",options:{settings:Y}},R=>{if(R.error)j(!1),window.alert(R.error);else{const G=new Date;let J=G.getFullYear().toString(),P=G.getMonth()+1,oe=P.toString();P<10&&(oe=`0${P}`),J+=`-${oe}`,P=G.getDate(),P<10&&(oe=`0${P}`),J+=`-${oe}-`,j(!1),window.$("body").append(`<a id="zip_download" href="data: application/zip;base64,${R.data}" download="${J}${N}.zip"></a>`),document.getElementById("zip_download").click(),document.getElementById("zip_download").remove()}})},W=o.jsxs(f.Menu,{onClose:()=>u(!1),open:!!l,anchorEl:p,children:[o.jsx(f.MenuItem,{onClick:async()=>{y(null),u(null),await L(l)},children:w.I18n.t("normal")}),o.jsx(f.MenuItem,{onClick:async()=>{y(null),u(null),await L(l,!0)},children:w.I18n.t("anonymize")})]});return o.jsxs(ot,{onClose:e.onClose,title:"Manage projects",closeTitle:"Close",closeDisabled:!e.projects.length||!!b,children:[o.jsx("style",{children:`
@keyframes my-vis-blink {
0% {
background-color: ${e.theme.palette.primary.light};
}
50% {
background-color: ${e.theme.palette.secondary.main};
}
}
`}),o.jsxs("div",{style:oi.dialog,children:[o.jsxs(f.AppBar,{position:"static",style:oi.topBar,children:[o.jsx(f.Tooltip,{title:w.I18n.t("Add"),slotProps:{popper:{sx:{pointerEvents:"none"}}},children:o.jsx(f.IconButton,{onClick:()=>A("add"),size:"small",style:{...oi.button,...e.projects.length?void 0:oi.blink},children:o.jsx(S.Add,{})})}),o.jsx(f.Tooltip,{title:w.I18n.t("Import"),slotProps:{popper:{sx:{pointerEvents:"none"}}},children:o.jsx(f.IconButton,{onClick:()=>x(!0),size:"small",style:{...oi.button,width:34},children:o.jsx(Si,{fontSize:"medium"})})})]}),e.projects.sort((N,Y)=>N.toLowerCase().localeCompare(Y)).map((N,Y)=>o.jsxs("div",{style:oi.projectBlock,children:[o.jsx(f.Button,{fullWidth:!0,style:oi.projectButton,color:N===e.projectName?"primary":"grey",onClick:()=>window.location.href=`?${N}`,startIcon:o.jsx(S.FileCopy,{}),children:N}),o.jsxs("span",{style:oi.viewManageButtonActions,children:[o.jsx(f.Tooltip,{title:w.I18n.t("Permissions"),slotProps:{popper:{sx:{pointerEvents:"none"}}},children:b===N?o.jsx(f.CircularProgress,{size:22}):o.jsx(f.IconButton,{onClick:H=>{y(H.currentTarget),e.projectName!==N&&e.loadProject(N),m(!!N)},size:"small",children:o.jsx(S.Person,{fontSize:"medium"})})}),o.jsx(f.Tooltip,{title:w.I18n.t("Export"),slotProps:{popper:{sx:{pointerEvents:"none"}}},children:b===N?o.jsx(f.CircularProgress,{size:22}):o.jsx(f.IconButton,{onClick:H=>{y(H.currentTarget),u(N)},size:"small",children:o.jsx(eo,{fontSize:"medium"})})}),o.jsx(f.Tooltip,{title:w.I18n.t("Edit"),slotProps:{popper:{sx:{pointerEvents:"none"}}},children:o.jsx("span",{children:o.jsx(f.IconButton,{size:"small",onClick:()=>A("rename",N),disabled:!!b,children:o.jsx(S.Edit,{})})})}),o.jsx(f.Tooltip,{title:w.I18n.t("Delete"),onClick:()=>A("delete",N),slotProps:{popper:{sx:{pointerEvents:"none"}}},children:o.jsx("span",{children:o.jsx(f.IconButton,{size:"small",disabled:!!b,children:o.jsx(S.Delete,{})})})})]})]},Y))]}),W,t?o.jsx(Iy,{dialog:t,dialogProject:a,dialogName:s,closeDialog:()=>i(null),setDialogProject:c,setDialogName:n,addProject:e.addProject,deleteProject:e.deleteProject,projects:e.projects,renameProject:e.renameProject}):null,_?o.jsx(Ca,{socket:e.socket,changeProject:e.changeProject,onClose:()=>m(!1)}):null,T?o.jsx(zc,{projects:e.projects,themeType:e.themeType,onClose:(N,Y)=>{x(!1),N&&e.projectName!==Y?window.location.href=`?${Y}`:N&&e.onClose()},projectName:e.projectName,socket:e.socket,refreshProjects:e.refreshProjects,loadProject:e.loadProject,adapterName:e.adapterName,instance:e.instance,openNewProjectOnCreate:!0}):null]})},Ay=e=>{const[t,i]=D.useState(!1),[s,n]=D.useState(!1),[a,c]=D.useState(!1),l={name:"Projects",compact:window.innerWidth<1230?{tooltip:"Projects",icon:o.jsx(S.Menu,{})}:void 0,items:[{type:"icon-button",Icon:S.Settings,name:"Settings",onAction:()=>i(!0)},{type:"icon-button",Icon:S.Menu,name:"Manage projects",onAction:()=>e.setProjectsDialog(!0)},{type:"icon-button",Icon:S.List,name:"Objects",onAction:()=>n(!0)},{type:"icon-button",Icon:S.FileCopy,name:"Files",onAction:()=>c(!0)}]};return o.jsxs(o.Fragment,{children:[o.jsx(qa,{group:l,last:!0,changeProject:e.changeProject,theme:e.theme,selectedView:e.selectedView,setSelectedWidgets:e.setSelectedWidgets,themeType:e.themeType,toolbarHeight:e.toolbarHeight}),t?o.jsx(zy,{theme:e.theme,onClose:()=>i(!1),adapterName:e.adapterName,adapterInstance:e.instance,projectName:e.projectName,changeProject:e.changeProject,socket:e.socket}):null,e.projectsDialog?o.jsx(Hy,{onClose:()=>e.setProjectsDialog(!1),adapterName:e.adapterName,instance:e.instance,addProject:e.addProject,changeProject:e.changeProject,deleteProject:e.deleteProject,loadProject:e.loadProject,projectName:e.projectName,projects:e.projects,refreshProjects:e.refreshProjects,renameProject:e.renameProject,selectedView:e.selectedView,socket:e.socket,themeType:e.themeType,theme:e.theme}):null,s?o.jsx(w.SelectID,{imagePrefix:"../",onClose:()=>n(!1),socket:e.socket,title:w.I18n.t("Browse objects"),columns:["role","func","val","name"],notEditable:!1,theme:e.theme,onOk:u=>{const _=Array.isArray(u)?u[0]:u;w.Utils.copyToClipboard(_),n(!1),window.alert(w.I18n.t("Copied"))},ok:w.I18n.t("Copy to clipboard"),cancel:w.I18n.t("ra_Close")}):null,a?o.jsx(w.SelectFile,{title:w.I18n.t("Browse files"),onClose:()=>c(!1),restrictToFolder:`${e.adapterName}.${e.instance}/${e.projectName}`,allowNonRestricted:!0,allowUpload:!0,allowDownload:!0,allowCreateFolder:!0,allowDelete:!0,allowView:!0,showToolbar:!0,theme:e.theme,imagePrefix:"../",selected:"",showTypeSelector:!0,onOk:u=>{let _=Array.isArray(u)?u[0]:u;const m=`${e.adapterName}.${e.instance}/${e.projectName}/`;_.startsWith(m)?_=`_PRJ_NAME/${_.substring(m.length)}`:_.startsWith("/")?_=`..${_}`:_.startsWith(".")||(_=`../${_}`),w.Utils.copyToClipboard(_),c(!1),window.alert(w.I18n.t("ra_Copied %s",_))},socket:e.socket,ok:w.I18n.t("Copy to clipboard"),cancel:w.I18n.t("ra_Close")}):null]})},dt={right:{float:"right",display:"inline-flex",flexDirection:"column",position:"relative"},rightBlock:{display:"flex",alignItems:"center",justifyContent:"end"},icon:{width:22,height:22},lightedPanel:e=>e.classes.lightedPanel,toolbar:e=>e.classes.toolbar,narrowToolbar:{pt:"4px",pb:"4px"},heightButton:{},saveIcon:e=>({animation:`blink 2000ms ${e.transitions.easing.easeInOut}`,color:e.palette.primary.main}),version:{fontStyle:"italic",marginRight:10,opacity:.7,fontSize:10,textAlign:"right"}};class Oy extends qe.Component{rightRef;lang;runtimeURL;constructor(t){super(t),this.state={right:!1,lastCommand:window.localStorage.getItem("Vis.lastCommand")||"close",upload:0},this.rightRef=qe.createRef(),this.lang=w.I18n.getLanguage(),this.runtimeURL=window.location.pathname.endsWith("/edit.html")?`./?${t.projectName}#${t.selectedView}`:`?${t.projectName}&runtime=true#${t.selectedView}`}componentDidMount(){this.props.socket.subscribeState(`system.adapter.${this.props.adapterName}.upload`,this.onUpload)}componentWillUnmount(){this.props.socket.unsubscribeState(`system.adapter.${this.props.adapterName}.upload`,this.onUpload)}onUpload=(t,i)=>{(i!=null&&i.val||(i==null?void 0:i.val)===0)&&this.setState({upload:i.val})};async onReload(){window.localStorage.setItem("Vis.lastCommand","reload"),await this.props.socket.setState(`${this.props.adapterName}.${this.props.instance}.control.instance`,{val:"*",ack:!0}),await this.props.socket.setState(`${this.props.adapterName}.${this.props.instance}.control.data`,{val:null,ack:!0}),await this.props.socket.setState(`${this.props.adapterName}.${this.props.instance}.control.command`,{val:"refresh",ack:!0}),this.setState({right:!1,lastCommand:"reload"})}renderDropMenu(){return o.jsxs(f.Menu,{open:this.state.right,anchorEl:this.rightRef.current,onClose:()=>this.setState({right:!1}),anchorOrigin:{vertical:"bottom",horizontal:"left"},children:[o.jsxs(f.MenuItem,{onClick:()=>{window.localStorage.setItem("Vis.lastCommand","close"),this.setState({lastCommand:"close",right:!1}),window.location.href=this.runtimeURL},children:[o.jsx(S.Close,{style:{marginRight:8,color:this.props.themeType==="dark"?"#6388fd":"#5fa5fe"}}),w.I18n.t("Close editor")]}),o.jsxs(f.MenuItem,{onClick:()=>{window.localStorage.setItem("Vis.lastCommand","open"),this.setState({lastCommand:"open",right:!1}),window.open(this.runtimeURL,"vis-2.runtime")},children:[o.jsx(S.PlayArrow,{style:{marginRight:8,color:this.props.themeType==="dark"?"#50ff50":"#008800"}}),w.I18n.t("Open runtime in new window")]}),o.jsxs(f.MenuItem,{onClick:()=>this.onReload(),children:[o.jsx(S.Sync,{style:{marginRight:8,color:this.props.themeType==="dark"?"#ffa947":"#884900"}}),w.I18n.t("Reload all runtimes")]})]})}renderUserPart(){var n,a,c,l;let t;this.props.toolbarHeight==="narrow"?t=o.jsx(f.Tooltip,{title:w.I18n.t("Narrow panel"),slotProps:{popper:{sx:{pointerEvents:"none"}}},children:o.jsx(f.IconButton,{style:dt.heightButton,onClick:()=>this.props.setToolbarHeight("veryNarrow"),children:o.jsx(S.KeyboardDoubleArrowUp,{})})}):this.props.toolbarHeight==="veryNarrow"?t=o.jsx(f.Tooltip,{title:w.I18n.t("Full panel"),slotProps:{popper:{sx:{pointerEvents:"none"}}},children:o.jsx(f.IconButton,{style:dt.heightButton,onClick:()=>this.props.setToolbarHeight("full"),children:o.jsx(S.KeyboardDoubleArrowDown,{})})}):t=o.jsx(f.Tooltip,{title:w.I18n.t("Hide panel names"),slotProps:{popper:{sx:{pointerEvents:"none"}}},children:o.jsx(f.IconButton,{style:dt.heightButton,onClick:()=>this.props.setToolbarHeight("narrow"),children:o.jsx(S.KeyboardArrowUp,{})})});const i=this.props.currentUser?o.jsxs("div",{style:dt.rightBlock,children:[(a=(n=this.props.currentUser)==null?void 0:n.common)!=null&&a.icon?o.jsx(w.Icon,{src:((l=(c=this.props.currentUser)==null?void 0:c.common)==null?void 0:l.icon)||"",style:dt.icon}):o.jsx(S.Person,{fontSize:"small"}),o.jsx("span",{style:{paddingRight:8,marginLeft:8},children:w.Utils.getObjectNameFromObj(this.props.currentUser,this.lang)}),this.props.socket.isSecure?o.jsx(f.Tooltip,{title:w.I18n.t("Exit"),slotProps:{popper:{sx:{pointerEvents:"none"}}},children:o.jsx(f.IconButton,{size:"small",onClick:async()=>{try{await this.props.socket.logout()}catch(u){console.error(u);return}window.location.reload()},children:o.jsx(S.ExitToApp,{})})}):null]}):null;let s;return this.state.lastCommand==="close"?s=o.jsx(f.Tooltip,{title:w.I18n.t("Close editor"),slotProps:{popper:{sx:{pointerEvents:"none"}}},children:o.jsx(f.IconButton,{size:"small",onClick:()=>window.location.href=this.runtimeURL,children:o.jsx(S.Close,{style:{color:this.props.themeType==="dark"?"#6388fd":"#5fa5fe"}})})}):this.state.lastCommand==="open"?s=o.jsx(f.Tooltip,{title:w.I18n.t("Open runtime in new window"),slotProps:{popper:{sx:{pointerEvents:"none"}}},children:o.jsx(f.IconButton,{size:"small",onClick:()=>window.open(this.runtimeURL,"vis-2.runtime"),children:o.jsx(S.PlayArrow,{style:{color:this.props.themeType==="dark"?"#50ff50":"#008800"}})})}):this.state.lastCommand==="reload"&&(s=o.jsx(f.Tooltip,{title:w.I18n.t("Reload all runtimes"),slotProps:{popper:{sx:{pointerEvents:"none"}}},children:o.jsx(f.IconButton,{size:"small",onClick:()=>void this.onReload(),children:o.jsx(S.Sync,{style:{color:this.props.themeType==="dark"?"#ffa947":"#884900"}})})})),o.jsxs("span",{style:dt.right,children:[this.state.upload?o.jsx(f.LinearProgress,{variant:"determinate",value:this.state.upload,style:{position:"absolute",top:0,left:0,right:0}}):null,o.jsxs("div",{style:dt.rightBlock,children:[this.props.needSave?o.jsx(S.Save,{fontSize:"small",style:w.Utils.getStyle(this.props.theme,dt.saveIcon)}):null,this.props.toolbarHeight==="veryNarrow"?i:null,t,o.jsx(w.ToggleThemeMenu,{toggleTheme:this.props.toggleTheme,themeName:this.props.themeName,t:w.I18n.t}),s,o.jsx(f.IconButton,{ref:this.rightRef,onClick:()=>this.setState({right:!this.state.right}),size:"small",children:o.jsx(S.ArrowDropDown,{})}),this.renderDropMenu()]}),this.props.toolbarHeight!=="veryNarrow"?i:null,this.props.toolbarHeight==="full"&&this.props.version?o.jsxs("span",{style:dt.version,children:["v",this.props.version]}):null]})}render(){return o.jsxs(f.Box,{component:"div",sx:dt.lightedPanel,children:[o.jsx("style",{children:`
@keyframes blink {
0% {
opacity: 0;
}
50% {
opacity: 1;
}
100% {
opacity: 0;
}
}
`}),this.renderUserPart(),o.jsxs(f.Box,{component:"div",sx:w.Utils.getStyle(this.props.theme,dt.toolbar,this.props.toolbarHeight!=="full"&&dt.narrowToolbar),style:{alignItems:"initial"},children:[o.jsx(wy,{toolbarHeight:this.props.toolbarHeight,changeProject:this.props.changeProject,changeView:this.props.changeView,editMode:this.props.editMode,projectName:this.props.projectName,selectedGroup:this.props.selectedGroup,selectedView:this.props.selectedView,setProjectsDialog:this.props.setProjectsDialog,setSelectedWidgets:this.props.setSelectedWidgets,setViewsManager:this.props.setViewsManager,themeName:this.props.themeName,themeType:this.props.themeType,theme:this.props.theme,toggleView:this.props.toggleView,viewsManager:this.props.viewsManager}),o.jsx(My,{toolbarHeight:this.props.toolbarHeight,alignWidgets:this.props.alignWidgets,changeProject:this.props.changeProject,cloneWidgets:this.props.cloneWidgets,copyWidgets:this.props.copyWidgets,cutWidgets:this.props.cutWidgets,deleteWidgets:this.props.deleteWidgets,editMode:this.props.editMode,history:this.props.history,historyCursor:this.props.historyCursor,lockDragging:this.props.lockDragging,openedViews:this.props.openedViews,orderWidgets:this.props.orderWidgets,pasteWidgets:this.props.pasteWidgets,redo:this.props.redo,selectedGroup:this.props.selectedGroup,selectedView:this.props.selectedView,selectedWidgets:this.props.selectedWidgets,setSelectedWidgets:this.props.setSelectedWidgets,themeType:this.props.themeType,theme:this.props.theme,toggleLockDragging:this.props.toggleLockDragging,toggleWidgetHint:this.props.toggleWidgetHint,undo:this.props.undo,widgetHint:this.props.widgetHint,widgetsClipboard:this.props.widgetsClipboard,widgetsLoaded:this.props.widgetsLoaded}),o.jsx(Ay,{theme:this.props.theme,toolbarHeight:this.props.toolbarHeight,adapterName:this.props.adapterName,changeProject:this.props.changeProject,instance:this.props.instance,projectName:this.props.projectName,projectsDialog:this.props.projectsDialog,selectedView:this.props.selectedView,setProjectsDialog:this.props.setProjectsDialog,setSelectedWidgets:this.props.setSelectedWidgets,socket:this.props.socket,themeType:this.props.themeType,addProject:this.props.addProject,deleteProject:this.props.deleteProject,loadProject:this.props.loadProject,projects:this.props.projects,refreshProjects:this.props.refreshProjects,renameProject:this.props.renameProject})]})]})}}class Ly extends D.Component{render(){return o.jsxs(f.Dialog,{open:!0,onClose:()=>this.props.onClose(),maxWidth:"xl",fullWidth:!0,children:[o.jsx(f.DialogTitle,{children:this.props.title||w.I18n.t("Code")}),o.jsx(f.DialogContent,{children:o.jsx(Pt,{type:this.props.mode||"html",themeType:this.props.themeType,readOnly:!0,value:this.props.code})}),o.jsxs(f.DialogActions,{children:[o.jsx(f.Button,{variant:"contained",onClick:()=>{w.Utils.copyToClipboard(this.props.code),window.alert(w.I18n.t("Copied to clipboard"))},startIcon:o.jsx(S.ContentCopy,{}),color:"primary",children:w.I18n.t("Copy to clipboard")}),o.jsx(f.Button,{variant:"contained",color:"grey",startIcon:o.jsx(S.Close,{}),onClick:()=>this.props.onClose(),children:w.I18n.t("Close")})]})]})}}const Wy=e=>o.jsx(ot,{onClose:e.onClose,title:"Do you want to create first demo project?",action:()=>e.addProject("Demo project"),actionTitle:"Yes",closeTitle:"No"});function Ry(e,t){if(e.match(/^[a-z]+:\/\//i))return e;if(e.match(/^\/\//))return window.location.protocol+e;if(e.match(/^[a-z]+:/i))return e;const i=document.implementation.createHTMLDocument(),s=i.createElement("base"),n=i.createElement("a");return i.head.appendChild(s),i.body.appendChild(n),t&&(s.href=t),n.href=e,n.href}const Ny=(()=>{let e=0;const t=()=>`0000${(Math.random()*36**4<<0).toString(36)}`.slice(-4);return()=>(e+=1,`u${t()}${e}`)})();function hi(e){const t=[];for(let i=0,s=e.length;i<s;i++)t.push(e[i]);return t}let Wi=null;function Ic(e={}){return Wi||(e.includeStyleProperties?(Wi=e.includeStyleProperties,Wi):(Wi=hi(window.getComputedStyle(document.documentElement)),Wi))}function On(e,t){const s=(e.ownerDocument.defaultView||window).getComputedStyle(e).getPropertyValue(t);return s?parseFloat(s.replace("px","")):0}function Ey(e){const t=On(e,"border-left-width"),i=On(e,"border-right-width");return e.clientWidth+t+i}function Fy(e){const t=On(e,"border-top-width"),i=On(e,"border-bottom-width");return e.clientHeight+t+i}function Hc(e,t={}){const i=t.width||Ey(e),s=t.height||Fy(e);return{width:i,height:s}}function Vy(){let e,t;try{t=process}catch{}const i=t&&t.env?t.env.devicePixelRatio:null;return i&&(e=parseInt(i,10),Number.isNaN(e)&&(e=1)),e||window.devicePixelRatio||1}const at=16384;function By(e){(e.width>at||e.height>at)&&(e.width>at&&e.height>at?e.width>e.height?(e.height*=at/e.width,e.width=at):(e.width*=at/e.height,e.height=at):e.width>at?(e.height*=at/e.width,e.width=at):(e.width*=at/e.height,e.height=at))}function Ln(e){return new Promise((t,i)=>{const s=new Image;s.onload=()=>{s.decode().then(()=>{requestAnimationFrame(()=>t(s))})},s.onerror=i,s.crossOrigin="anonymous",s.decoding="async",s.src=e})}async function Uy(e){return Promise.resolve().then(()=>new XMLSerializer().serializeToString(e)).then(encodeURIComponent).then(t=>`data:image/svg+xml;charset=utf-8,${t}`)}async function Yy(e,t,i){const s="http://www.w3.org/2000/svg",n=document.createElementNS(s,"svg"),a=document.createElementNS(s,"foreignObject");return n.setAttribute("width",`${t}`),n.setAttribute("height",`${i}`),n.setAttribute("viewBox",`0 0 ${t} ${i}`),a.setAttribute("width","100%"),a.setAttribute("height","100%"),a.setAttribute("x","0"),a.setAttribute("y","0"),a.setAttribute("externalResourcesRequired","true"),n.appendChild(a),a.appendChild(e),Uy(n)}const nt=(e,t)=>{if(e instanceof t)return!0;const i=Object.getPrototypeOf(e);return i===null?!1:i.constructor.name===t.name||nt(i,t)};function Gy(e){const t=e.getPropertyValue("content");return`${e.cssText} content: '${t.replace(/'|"/g,"")}';`}function Jy(e,t){return Ic(t).map(i=>{const s=e.getPropertyValue(i),n=e.getPropertyPriority(i);return`${i}: ${s}${n?" !important":""};`}).join(" ")}function Ky(e,t,i,s){const n=`.${e}:${t}`,a=i.cssText?Gy(i):Jy(i,s);return document.createTextNode(`${n}{${a}}`)}function Kr(e,t,i,s){const n=window.getComputedStyle(e,i),a=n.getPropertyValue("content");if(a===""||a==="none")return;const c=Ny();try{t.className=`${t.className} ${c}`}catch{return}const l=document.createElement("style");l.appendChild(Ky(c,i,n,s)),t.appendChild(l)}function Zy(e,t,i){Kr(e,t,":before",i),Kr(e,t,":after",i)}const Zr="application/font-woff",Xr="image/jpeg",Xy={woff:Zr,woff2:Zr,ttf:"application/font-truetype",eot:"application/vnd.ms-fontobject",png:"image/png",jpg:Xr,jpeg:Xr,gif:"image/gif",tiff:"image/tiff",svg:"image/svg+xml",webp:"image/webp"};function Qy(e){const t=/\.([^./]*?)$/g.exec(e);return t?t[1]:""}function Pa(e){const t=Qy(e).toLowerCase();return Xy[t]||""}function ej(e){return e.split(/,/)[1]}function Qo(e){return e.search(/^(data:)/)!==-1}function tj(e,t){return`data:${t};base64,${e}`}async function Ac(e,t,i){const s=await fetch(e,t);if(s.status===404)throw new Error(`Resource "${s.url}" not found`);const n=await s.blob();return new Promise((a,c)=>{const l=new FileReader;l.onerror=c,l.onloadend=()=>{try{a(i({res:s,result:l.result}))}catch(u){c(u)}},l.readAsDataURL(n)})}const Oo={};function ij(e,t,i){let s=e.replace(/\?.*/,"");return i&&(s=e),/ttf|otf|eot|woff2?/i.test(s)&&(s=s.replace(/.*\//,"")),t?`[${t}]${s}`:s}async function Da(e,t,i){const s=ij(e,t,i.includeQueryParams);if(Oo[s]!=null)return Oo[s];i.cacheBust&&(e+=(/\?/.test(e)?"&":"?")+new Date().getTime());let n;try{const a=await Ac(e,i.fetchRequestInit,({res:c,result:l})=>(t||(t=c.headers.get("Content-Type")||""),ej(l)));n=tj(a,t)}catch(a){n=i.imagePlaceholder||"";let c=`Failed to fetch resource: ${e}`;a&&(c=typeof a=="string"?a:a.message),c&&console.warn(c)}return Oo[s]=n,n}async function sj(e){const t=e.toDataURL();return t==="data:,"?e.cloneNode(!1):Ln(t)}async function nj(e,t){if(e.currentSrc){const a=document.createElement("canvas"),c=a.getContext("2d");a.width=e.clientWidth,a.height=e.clientHeight,c==null||c.drawImage(e,0,0,a.width,a.height);const l=a.toDataURL();return Ln(l)}const i=e.poster,s=Pa(i),n=await Da(i,s,t);return Ln(n)}async function oj(e,t){var i;try{if(!((i=e==null?void 0:e.contentDocument)===null||i===void 0)&&i.body)return await to(e.contentDocument.body,t,!0)}catch{}return e.cloneNode(!1)}async function aj(e,t){return nt(e,HTMLCanvasElement)?sj(e):nt(e,HTMLVideoElement)?nj(e,t):nt(e,HTMLIFrameElement)?oj(e,t):e.cloneNode(Oc(e))}const rj=e=>e.tagName!=null&&e.tagName.toUpperCase()==="SLOT",Oc=e=>e.tagName!=null&&e.tagName.toUpperCase()==="SVG";async function lj(e,t,i){var s,n;if(Oc(t))return t;let a=[];return rj(e)&&e.assignedNodes?a=hi(e.assignedNodes()):nt(e,HTMLIFrameElement)&&(!((s=e.contentDocument)===null||s===void 0)&&s.body)?a=hi(e.contentDocument.body.childNodes):a=hi(((n=e.shadowRoot)!==null&&n!==void 0?n:e).childNodes),a.length===0||nt(e,HTMLVideoElement)||await a.reduce((c,l)=>c.then(()=>to(l,i)).then(u=>{u&&t.appendChild(u)}),Promise.resolve()),t}function cj(e,t,i){const s=t.style;if(!s)return;const n=window.getComputedStyle(e);n.cssText?(s.cssText=n.cssText,s.transformOrigin=n.transformOrigin):Ic(i).forEach(a=>{let c=n.getPropertyValue(a);a==="font-size"&&c.endsWith("px")&&(c=`${Math.floor(parseFloat(c.substring(0,c.length-2)))-.1}px`),nt(e,HTMLIFrameElement)&&a==="display"&&c==="inline"&&(c="block"),a==="d"&&t.getAttribute("d")&&(c=`path(${t.getAttribute("d")})`),s.setProperty(a,c,n.getPropertyPriority(a))})}function dj(e,t){nt(e,HTMLTextAreaElement)&&(t.innerHTML=e.value),nt(e,HTMLInputElement)&&t.setAttribute("value",e.value)}function uj(e,t){if(nt(e,HTMLSelectElement)){const i=t,s=Array.from(i.children).find(n=>e.value===n.getAttribute("value"));s&&s.setAttribute("selected","")}}function _j(e,t,i){return nt(t,Element)&&(cj(e,t,i),Zy(e,t,i),dj(e,t),uj(e,t)),t}async function gj(e,t){const i=e.querySelectorAll?e.querySelectorAll("use"):[];if(i.length===0)return e;const s={};for(let a=0;a<i.length;a++){const l=i[a].getAttribute("xlink:href");if(l){const u=e.querySelector(l),_=document.querySelector(l);!u&&_&&!s[l]&&(s[l]=await to(_,t,!0))}}const n=Object.values(s);if(n.length){const a="http://www.w3.org/1999/xhtml",c=document.createElementNS(a,"svg");c.setAttribute("xmlns",a),c.style.position="absolute",c.style.width="0",c.style.height="0",c.style.overflow="hidden",c.style.display="none";const l=document.createElementNS(a,"defs");c.appendChild(l);for(let u=0;u<n.length;u++)l.appendChild(n[u]);e.appendChild(c)}return e}async function to(e,t,i){return!i&&t.filter&&!t.filter(e)?null:Promise.resolve(e).then(s=>aj(s,t)).then(s=>lj(e,s,t)).then(s=>_j(e,s,t)).then(s=>gj(s,t))}const Lc=/url\((['"]?)([^'"]+?)\1\)/g,hj=/url\([^)]+\)\s*format\((["']?)([^"']+)\1\)/g,pj=/src:\s*(?:url\([^)]+\)\s*format\([^)]+\)[,;]\s*)+/g;function mj(e){const t=e.replace(/([.*+?^${}()|\[\]\/\\])/g,"\\$1");return new RegExp(`(url\\(['"]?)(${t})(['"]?\\))`,"g")}function fj(e){const t=[];return e.replace(Lc,(i,s,n)=>(t.push(n),i)),t.filter(i=>!Qo(i))}async function wj(e,t,i,s,n){try{const a=i?Ry(t,i):t,c=Pa(t);let l;return n||(l=await Da(a,c,s)),e.replace(mj(t),`$1${l}$3`)}catch{}return e}function bj(e,{preferredFontFormat:t}){return t?e.replace(pj,i=>{for(;;){const[s,,n]=hj.exec(i)||[];if(!n)return"";if(n===t)return`src: ${s};`}}):e}function Wc(e){return e.search(Lc)!==-1}async function Rc(e,t,i){if(!Wc(e))return e;const s=bj(e,i);return fj(s).reduce((a,c)=>a.then(l=>wj(l,c,t,i)),Promise.resolve(s))}async function Ri(e,t,i){var s;const n=(s=t.style)===null||s===void 0?void 0:s.getPropertyValue(e);if(n){const a=await Rc(n,null,i);return t.style.setProperty(e,a,t.style.getPropertyPriority(e)),!0}return!1}async function vj(e,t){await Ri("background",e,t)||await Ri("background-image",e,t),await Ri("mask",e,t)||await Ri("-webkit-mask",e,t)||await Ri("mask-image",e,t)||await Ri("-webkit-mask-image",e,t)}async function yj(e,t){const i=nt(e,HTMLImageElement);if(!(i&&!Qo(e.src))&&!(nt(e,SVGImageElement)&&!Qo(e.href.baseVal)))return;const s=i?e.src:e.href.baseVal,n=await Da(s,Pa(s),t);await new Promise((a,c)=>{e.onload=a,e.onerror=t.onImageErrorHandler?(...u)=>{try{a(t.onImageErrorHandler(...u))}catch(_){c(_)}}:c;const l=e;l.decode&&(l.decode=a),l.loading==="lazy"&&(l.loading="eager"),i?(e.srcset="",e.src=n):e.href.baseVal=n})}async function jj(e,t){const s=hi(e.childNodes).map(n=>Nc(n,t));await Promise.all(s).then(()=>e)}async function Nc(e,t){nt(e,Element)&&(await vj(e,t),await yj(e,t),await jj(e,t))}function xj(e,t){const{style:i}=e;t.backgroundColor&&(i.backgroundColor=t.backgroundColor),t.width&&(i.width=`${t.width}px`),t.height&&(i.height=`${t.height}px`);const s=t.style;return s!=null&&Object.keys(s).forEach(n=>{i[n]=s[n]}),e}const Qr={};async function el(e){let t=Qr[e];if(t!=null)return t;const s=await(await fetch(e)).text();return t={url:e,cssText:s},Qr[e]=t,t}async function tl(e,t){let i=e.cssText;const s=/url\(["']?([^"')]+)["']?\)/g,a=(i.match(/url\([^)]+\)/g)||[]).map(async c=>{let l=c.replace(s,"$1");return l.startsWith("https://")||(l=new URL(l,e.url).href),Ac(l,t.fetchRequestInit,({result:u})=>(i=i.replace(c,`url(${u})`),[c,u]))});return Promise.all(a).then(()=>i)}function il(e){if(e==null)return[];const t=[],i=/(\/\*[\s\S]*?\*\/)/gi;let s=e.replace(i,"");const n=new RegExp("((@.*?keyframes [\\s\\S]*?){([\\s\\S]*?}\\s*?)})","gi");for(;;){const u=n.exec(s);if(u===null)break;t.push(u[0])}s=s.replace(n,"");const a=/@import[\s\S]*?url\([^)]*\)[\s\S]*?;/gi,c="((\\s*?(?:\\/\\*[\\s\\S]*?\\*\\/)?\\s*?@media[\\s\\S]*?){([\\s\\S]*?)}\\s*?})|(([\\s\\S]*?){([\\s\\S]*?)})",l=new RegExp(c,"gi");for(;;){let u=a.exec(s);if(u===null){if(u=l.exec(s),u===null)break;a.lastIndex=l.lastIndex}else l.lastIndex=a.lastIndex;t.push(u[0])}return t}async function $j(e,t){const i=[],s=[];return e.forEach(n=>{if("cssRules"in n)try{hi(n.cssRules||[]).forEach((a,c)=>{if(a.type===CSSRule.IMPORT_RULE){let l=c+1;const u=a.href,_=el(u).then(m=>tl(m,t)).then(m=>il(m).forEach(p=>{try{n.insertRule(p,p.startsWith("@import")?l+=1:n.cssRules.length)}catch(y){console.error("Error inserting rule from remote css",{rule:p,error:y})}})).catch(m=>{console.error("Error loading remote css",m.toString())});s.push(_)}})}catch(a){const c=e.find(l=>l.href==null)||document.styleSheets[0];n.href!=null&&s.push(el(n.href).then(l=>tl(l,t)).then(l=>il(l).forEach(u=>{c.insertRule(u,c.cssRules.length)})).catch(l=>{console.error("Error loading remote stylesheet",l)})),console.error("Error inlining remote css file",a)}}),Promise.all(s).then(()=>(e.forEach(n=>{if("cssRules"in n)try{hi(n.cssRules||[]).forEach(a=>{i.push(a)})}catch(a){console.error(`Error while reading CSS rules from ${n.href}`,a)}}),i))}function Sj(e){return e.filter(t=>t.type===CSSRule.FONT_FACE_RULE).filter(t=>Wc(t.style.getPropertyValue("src")))}async function kj(e,t){if(e.ownerDocument==null)throw new Error("Provided element is not within a Document");const i=hi(e.ownerDocument.styleSheets),s=await $j(i,t);return Sj(s)}function Ec(e){return e.trim().replace(/["']/g,"")}function qj(e){const t=new Set;function i(s){(s.style.fontFamily||getComputedStyle(s).fontFamily).split(",").forEach(a=>{t.add(Ec(a))}),Array.from(s.children).forEach(a=>{a instanceof HTMLElement&&i(a)})}return i(e),t}async function Cj(e,t){const i=await kj(e,t),s=qj(e);return(await Promise.all(i.filter(a=>s.has(Ec(a.style.fontFamily))).map(a=>{const c=a.parentStyleSheet?a.parentStyleSheet.href:null;return Rc(a.cssText,c,t)}))).join(`
`)}async function Pj(e,t){const i=t.fontEmbedCSS!=null?t.fontEmbedCSS:t.skipFonts?null:await Cj(e,t);if(i){const s=document.createElement("style"),n=document.createTextNode(i);s.appendChild(n),e.firstChild?e.insertBefore(s,e.firstChild):e.appendChild(s)}}async function Dj(e,t={}){const{width:i,height:s}=Hc(e,t),n=await to(e,t,!0);return await Pj(n,t),await Nc(n,t),xj(n,t),await Yy(n,i,s)}async function Tj(e,t={}){const{width:i,height:s}=Hc(e,t),n=await Dj(e,t),a=await Ln(n),c=document.createElement("canvas"),l=c.getContext("2d"),u=t.pixelRatio||Vy(),_=t.canvasWidth||i,m=t.canvasHeight||s;return c.width=_*u,c.height=m*u,t.skipAutoScale||By(c),c.style.width=`${_}`,c.style.height=`${m}`,t.backgroundColor&&(l.fillStyle=t.backgroundColor,l.fillRect(0,0,c.width,c.height)),l.drawImage(a,0,0,c.width,c.height),c}async function Mj(e,t={}){return(await Tj(e,t)).toDataURL()}var Fc={exports:{}};const zj=Object.freeze(Object.defineProperty({__proto__:null,default:rh,getMenuUtilityClass:lh,menuClasses:ch},Symbol.toStringTag,{value:"Module"})),Ij=xi(zj),Hj=xi(cm),Aj=xi(Zg),Oj=xi(lm),Lj=Object.freeze(Object.defineProperty({__proto__:null,boxClasses:dh,default:uh},Symbol.toStringTag,{value:"Module"})),Wj=xi(Lj),Rj=xi(rm),Nj=xi(dm);(function(e){var t=o,i=Ij,s=D,n=Hj,a=Aj,c=Oj,l=Wj,u=Rj,_=Nj;function m(Z,F){return Object.keys(F).forEach(function(Q){Q==="default"||Q==="__esModule"||Object.prototype.hasOwnProperty.call(Z,Q)||Object.defineProperty(Z,Q,{enumerable:!0,get:function(){return F[Q]}})}),Z}function p(Z){return Z&&Z.__esModule?Z.default:Z}function y(Z,F,Q,le){Object.defineProperty(Z,F,{get:Q,set:le,enumerable:!0,configurable:!0})}var b={},j={};y(j,"ContextMenu",()=>J);var T={};y(T,"nestedMenuItemsFromObject",()=>G);var x={};y(x,"IconMenuItem",()=>N);const A=(0,a.styled)(p(n))({display:"flex",justifyContent:"space-between",paddingLeft:"4px",paddingRight:"4px"}),L=(0,a.styled)(p(c))({paddingLeft:"8px",paddingRight:"8px",textAlign:"left"}),W=(0,a.styled)(p(l))({display:"flex"}),N=(0,s.forwardRef)(function({MenuItemProps:F,className:Q,label:le,leftIcon:ge,renderLabel:ve,rightIcon:ce,...se},C){return(0,t.jsxs)(A,{...F,ref:C,className:Q,...se,children:[(0,t.jsxs)(W,{children:[ge,ve?ve():(0,t.jsx)(L,{children:le})]}),ce]})});var Y={};y(Y,"NestedMenuItem",()=>R);const H=Z=>(0,t.jsx)(p(u),{...Z,children:(0,t.jsx)("path",{d:"M9.29 6.71c-.39.39-.39 1.02 0 1.41L13.17 12l-3.88 3.88c-.39.39-.39 1.02 0 1.41.39.39 1.02.39 1.41 0l4.59-4.59c.39-.39.39-1.02 0-1.41L10.7 6.7c-.38-.38-1.02-.38-1.41.01z"})}),R=(0,s.forwardRef)(function(F,Q){const{parentMenuOpen:le,label:ge,renderLabel:ve,rightIcon:ce=(0,t.jsx)(H,{}),leftIcon:se=null,children:C,className:M,tabIndex:k,ContainerProps:I={},MenuProps:re,delay:Je=0,...he}=F,{ref:He,...Re}=I,Xi=(0,s.useRef)(null);(0,s.useImperativeHandle)(Q,()=>Xi.current);const Mt=(0,s.useRef)(null);(0,s.useImperativeHandle)(He,()=>Mt.current);const ki=(0,s.useRef)(null),Qi=(0,s.useRef)(null),[io,qi]=(0,s.useState)(!1),so=Ye=>{Qi.current=setTimeout(()=>{F.disabled||qi(!0),Re.onMouseEnter&&Re.onMouseEnter(Ye)},Je)},no=Ye=>{Qi.current&&clearTimeout(Qi.current),qi(!1),Re.onMouseLeave&&Re.onMouseLeave(Ye)},Es=()=>{var pi;const Ye=((pi=Mt.current)==null?void 0:pi.ownerDocument.activeElement)??null;if(ki.current==null)return!1;for(const Ue of ki.current.children)if(Ue===Ye)return!0;return!1},Fs=Ye=>{Ye.target===Mt.current&&!F.disabled&&qi(!0),Re.onFocus&&Re.onFocus(Ye)},tt=Ye=>{var Ue,ts,Ci;if(Ye.key==="Escape")return;Es()&&Ye.stopPropagation();const pi=(Ue=Mt.current)==null?void 0:Ue.ownerDocument.activeElement;if(Ye.key==="ArrowLeft"&&Es()&&((ts=Mt.current)==null||ts.focus()),Ye.key==="ArrowRight"&&Ye.target===Mt.current&&Ye.target===pi){const ei=(Ci=ki.current)==null?void 0:Ci.children[0];ei==null||ei.focus()}},es=io&≤let Vs;return F.disabled||(Vs=k!==void 0?k:-1),(0,t.jsxs)("div",{...Re,ref:Mt,onFocus:Fs,tabIndex:Vs,onMouseEnter:so,onMouseLeave:no,onKeyDown:tt,children:[(0,t.jsx)(N,{MenuItemProps:he,className:M,ref:Xi,leftIcon:se,rightIcon:ce,label:ge,renderLabel:ve}),(0,t.jsx)(p(i),{style:{pointerEvents:"none"},anchorEl:Xi.current,anchorOrigin:{horizontal:"right",vertical:"top"},transformOrigin:{horizontal:"left",vertical:"top"},open:es,autoFocus:!1,disableAutoFocus:!0,disableEnforceFocus:!0,onClose:()=>{qi(!1)},...re,children:(0,t.jsx)("div",{ref:ki,style:{pointerEvents:"auto"},children:C})})]})});R.displayName="NestedMenuItem";function G({menuItemsData:Z,isOpen:F,handleClose:Q}){return Z.map(le=>{const{leftIcon:ge,rightIcon:ve,label:ce,items:se,callback:C,sx:M,disabled:k,delay:I}=le;return se&&se.length>0?(0,t.jsx)(R,{leftIcon:ge,rightIcon:ve,label:ce,parentMenuOpen:F,sx:M,delay:I,disabled:k,children:G({handleClose:Q,isOpen:F,menuItemsData:se})},ce):(0,t.jsx)(N,{leftIcon:ge,rightIcon:ve,label:ce,onClick:re=>{Q(),C&&C(re,le)},sx:M,disabled:k},ce)})}const J=(0,s.forwardRef)(function({children:F,menuItems:Q,menuItemsData:le},ge){const ve=ge??(0,s.useRef)(null),[ce,se]=(0,s.useState)(null),[C,M]=(0,s.useState)(null),k=()=>se(null),I=he=>{if(ce!==null&&se(null),he.button!==2)return;const He=ve.current.getBoundingClientRect();he.clientX<He.left||he.clientX>He.right||he.clientY<He.top||he.clientY>He.bottom||M({left:he.clientX,top:he.clientY})},re=he=>{const He=he.clientY,Re=he.clientX;C!==null&&C.top===He&&C.left===Re&&se({left:he.clientX,top:he.clientY})},Je=Q??(le&&G({handleClose:k,isOpen:!!ce,menuItemsData:le}));return(0,t.jsxs)("div",{ref:ve,onContextMenu:he=>he.preventDefault(),onMouseDown:I,onMouseUp:re,children:[ce&&(0,t.jsx)(p(i),{onContextMenu:he=>he.preventDefault(),open:!!ce,onClose:()=>se(null),anchorReference:"anchorPosition",anchorPosition:ce,children:Je}),F]})});var P={};y(P,"NestedDropdown",()=>z);const oe=Z=>(0,t.jsx)(p(u),{...Z,children:(0,t.jsx)("path",{d:"M8.12 9.29 12 13.17l3.88-3.88c.39-.39 1.02-.39 1.41 0 .39.39.39 1.02 0 1.41l-4.59 4.59c-.39.39-1.02.39-1.41 0L6.7 10.7a.9959.9959 0 0 1 0-1.41c.39-.38 1.03-.39 1.42 0z"})}),z=(0,s.forwardRef)(function(F,Q){const[le,ge]=(0,s.useState)(null),ve=!!le,{menuItemsData:ce,onClick:se,ButtonProps:C,MenuProps:M,...k}=F,I=he=>{ge(he.currentTarget),se&&se(he)},re=()=>ge(null),Je=G({handleClose:re,isOpen:ve,menuItemsData:(ce==null?void 0:ce.items)??[]});return(0,t.jsxs)("div",{ref:Q,...k,children:[(0,t.jsx)(p(_),{onClick:I,endIcon:(0,t.jsx)(oe,{}),...C,children:(ce==null?void 0:ce.label)??"Menu"}),(0,t.jsx)(p(i),{anchorEl:le,open:ve,onClose:re,...M,children:Je})]})});m(b,j),m(b,x),m(b,P),m(b,Y),m(b,T);var K={};m(e.exports,b),m(e.exports,K)})(Fc);var sl=Fc.exports;const Vc=(e,t,i)=>e.map((s,n)=>!s||s.hide?null:s.items?o.jsx(sl.NestedMenuItem,{leftIcon:s.leftIcon,disabled:s.disabled,label:o.jsx("span",{style:{width:40},children:w.I18n.t(s.label)}),parentMenuOpen:t,onContextMenu:a=>{a.stopPropagation(),a.preventDefault()},children:Vc(s.items,t,i)},n):o.jsx(sl.IconMenuItem,{onClick:()=>{s.onClick&&s.onClick(),i()},disabled:s.disabled,label:[o.jsxs("span",{style:{display:"flex",alignItems:"center",...s.style},children:[o.jsx("span",{style:{width:40},children:s.leftIcon}),w.I18n.t(s.label)]},"main"),s.subLabel?o.jsx("span",{style:{fontSize:10,fontWeight:"normal",display:"block",paddingLeft:40,marginTop:-6},children:s.subLabel},"second"):null],onContextMenu:a=>{a.stopPropagation(),a.preventDefault(),s.onClick&&s.onClick(),i()}},n)),Ej=e=>{const[t,i]=D.useState(null),s=async n=>{e.disabled||n.ctrlKey||n.shiftKey||(n.preventDefault(),t&&(i(null),await new Promise(a=>{setTimeout(a,200)})),i({top:n.pageY,left:n.pageX}))};return o.jsxs("div",{onContextMenu:s,style:{height:"100%",width:"100%"},children:[e.children,t?o.jsx(f.Menu,{open:!0,onClose:()=>i(null),anchorReference:"anchorPosition",anchorPosition:t,children:Vc(e.menuItemsData(t),!!t,()=>i(null))}):null]})},Fj=e=>{const[t,i]=D.useState(!1),[s,n]=D.useState(!1),a=q.getState().visProject;if(!a[e.selectedView]&&Object.keys(a).length>1)return null;const c=Object.keys(a).length<=1?null:l=>{var j,T;const u=a[e.selectedView],_=l?Object.keys(u.widgets).filter(x=>{var L;const A=(L=window.document.getElementById(x))==null?void 0:L.getBoundingClientRect();return u.widgets[x].grouped?!1:A&&l.left>=A.left&&l.left<=A.right&&l.top>=A.top&&l.top<=A.bottom}):[];let m=null,p="",y=_.length>1;if(u&&_[0]&&u.widgets[_[0]]&&u.widgets[_[0]].tpl){if((j=u.widgets[_[0]].data)!=null&&j.locked&&(y=!0),p=_[0],(T=u.widgets[_[0]].data)!=null&&T.name)p=u.widgets[_[0]].data.name,m=_[0];else{const x=u.widgets[_[0]].tpl;if(x==="_tplGroup")m=w.I18n.t("Group");else{const A=u.widgets[_[0]].widgetSet,L=Yi().find(W=>W.name===x&&W.set===A);m=L?L.title:x}}u.widgets[_[0]].marketplace&&(m=`${u.widgets[_[0]].marketplace.name} (${w.I18n.t("version")} ${u.widgets[_[0]].marketplace.version})`)}const b=a[e.selectedView].widgets[e.selectedWidgets[0]];return[{leftIcon:o.jsx(S.Widgets,{}),hide:_.length!==1,label:p,subLabel:m,style:{fontWeight:"bold"},disabled:!0},{hide:!y,label:"Select",items:[{label:"all",hide:_.length===1,onClick:()=>e.setSelectedWidgets(_)},..._.map(x=>({label:x,onClick:()=>e.setSelectedWidgets([x])}))]},{leftIcon:o.jsx(Py,{}),label:"Group widgets",onClick:()=>e.groupWidgets(),hide:e.selectedWidgets.length<2},{leftIcon:o.jsx(Dy,{}),label:"Ungroup",subLabel:b!=null&&b.marketplace?w.I18n.t("convert from widgeteria widget"):null,onClick:()=>e.ungroupWidgets(),hide:e.selectedWidgets.length!==1||b.tpl!=="_tplGroup"},window.VisMarketplace?{leftIcon:o.jsx("img",{src:"./img/marketplace.png",alt:"widgeteria",style:{width:16,height:16,verticalAlign:"middle"}}),label:"Add to widgeteria",onClick:async()=>{const x=e.selectedWidgets.map(R=>{const G=JSON.parse(JSON.stringify(a[e.selectedView].widgets[R]));return G._id=R,G.isRoot=!0,delete G.marketplace,G.widgetSet=window.visWidgetTypes.find(J=>J.name===G.tpl).set,G}),A=[];let L=1,W=1;const N=x.length;for(let R=0;R<N;R++){const G=x[R];if(G.tpl==="_tplGroup"){const J=`f${L.toString().padStart(6,"0")}`;if(L++,G.data&&G.data.members){const P=[];for(let oe=0;oe<G.data.members.length;oe++){const z=G.data.members[oe];if(A.includes(z))continue;const K=JSON.parse(JSON.stringify(a[e.selectedView].widgets[z]));K._id=`i${W.toString().padStart(6,"0")}`,K.widgetSet=window.visWidgetTypes.find(Z=>Z.name===K.tpl).set,W++,P.push(K._id),K.groupid=J,K.grouped=!0,delete K.isRoot,delete K.marketplace,x.push(K),A.push(z)}G.data.members=P}G._id=J}else G._id.startsWith("w")&&(G.grouped?(delete G.grouped,delete G.groupid,delete G._id):(G._id=`i${W.toString().padStart(6,"0")}`,W++))}const Y=document.getElementsByClassName("vis-editmode-resizer");for(let R=0;R<Y.length;R++){const G=Y[R];G.style.display="none"}const H=document.getElementById(e.selectedWidgets[0]);if(H){const R=H.style.position;H.style.position="initial";const G=await Mj(H);H.style.position=R;for(let J=0;J<Y.length;J++){const P=Y[J];P.style.display="block"}e.setMarketplaceDialog({addPage:!0,widget:{widget:x,image:G}})}},hide:e.selectedWidgets.length!==1||b.tpl!=="_tplGroup"||b.marketplace}:null,{label:"Edit group",onClick:()=>e.setSelectedGroup(e.selectedWidgets[0]),hide:e.selectedWidgets.length!==1||b.tpl!=="_tplGroup"||b.marketplace},{leftIcon:o.jsx(xc,{}),label:"Copy",onClick:()=>e.copyWidgets(),disabled:!e.selectedWidgets.length},{leftIcon:o.jsx($c,{}),label:"Cut",onClick:()=>e.cutWidgets(),disabled:!e.selectedWidgets.length},{leftIcon:o.jsx(Sc,{}),label:"Paste",onClick:()=>e.pasteWidgets(),disabled:!Object.keys(e.widgetsClipboard.widgets).length},{leftIcon:o.jsx(S.Delete,{fontSize:"small"}),label:"Delete",onClick:()=>e.deleteWidgets(),disabled:!e.selectedWidgets.length},{label:"More",items:[{leftIcon:o.jsx(S.Lock,{fontSize:"small"}),label:"Lock",onClick:()=>e.lockWidgets("lock"),disabled:!e.selectedWidgets.length},{leftIcon:o.jsx(S.LockOpen,{fontSize:"small"}),label:"Unlock",onClick:()=>e.lockWidgets("unlock"),disabled:!e.selectedWidgets.length},{leftIcon:o.jsx(Cc,{}),label:"Bring to front",onClick:()=>e.orderWidgets("front"),disabled:!e.selectedWidgets.length},{leftIcon:o.jsx(Pc,{}),label:"Sent to back",onClick:()=>e.orderWidgets("back"),disabled:!e.selectedWidgets.length},{leftIcon:o.jsx(eo,{}),label:"Export widgets",onClick:()=>i(!0),disabled:!e.selectedWidgets.length},{leftIcon:o.jsx(Si,{}),label:"Import widgets",onClick:()=>n(!0)}]}]};return o.jsxs(o.Fragment,{children:[c?o.jsx(Ej,{menuItemsData:c,disabled:e.disabled,children:e.children}):e.children,s?o.jsx(Dc,{onClose:()=>n(!1),changeProject:e.changeProject,selectedView:e.selectedView,themeType:e.themeType}):null,t?o.jsx(Tc,{onClose:()=>i(!1),widgets:a[e.selectedView].widgets,selectedWidgets:e.selectedWidgets,themeType:e.themeType}):null]})};window.systemDictionary={};window.systemLang="en";function Vj(e,t,i){if(!e)return"";if(t=t||window.systemLang||"en",i=i||window.systemDictionary||{},i&&i[e]){let s=i[e][t];if(s||t!=="en"&&(s=i[e].en,s))return s}else typeof e=="string"&&!e.match(/_tooltip$/)||typeof e!="string"&&console.warn(`Trying to translate non-text: ${e}`);return e}window._=(e,t,i,s)=>{e=Vj(e);let n=e.indexOf("%s");if(n!==-1)e=e.replace("%s",(t==null?void 0:t.toString())||"");else return e;if(n=e.indexOf("%s"),n!==-1)e=e.replace("%s",(i==null?void 0:i.toString())||"");else return e;return n=e.indexOf("%s"),n!==-1&&(e=e.replace("%s",(s==null?void 0:s.toString())||"")),e};window.addWords=e=>Object.assign(window.systemDictionary||{},e);window.addWords({"No connection to Server":{en:"No connection to Server",de:"Keine Verbindung zum Server",ru:"Нет соединения с сервером",pt:"Nenhuma conexão ao servidor",nl:"Geen verbinding met server",fr:"Pas de connexion au serveur",it:"Nessuna connessione al server",es:"Sin conexión al servidor",pl:"Brak połączenia z serwerem",uk:"Немає з'єднання з сервером","zh-cn":"没有与服务器的连接"},"Loading Views...":{en:"Loading Views...",de:"Lade Views...",ru:"Загрузка пользовательских страниц...",pt:"Carregando páginas ...",nl:"Pagina's laden ...",fr:"Chargement des pages ...",it:"Caricamento pagine ...",es:"Cargando páginas ...",pl:"Ładowanie stron ...",uk:"Завантаження сторінок ...","zh-cn":"加载页面......"},"Connecting to Server...":{en:"Connecting to Server...",de:"Verbinde mit dem Server...",ru:"Соединение с сервером...",pt:"Conectando ao servidor...",nl:"Verbinden met de server...",fr:"Connexion au serveur...",it:"Connessione al server...",es:"Conectando al servidor...",pl:"Łączenie z serwerem...",uk:"З'єднання з сервером...","zh-cn":"连接到服务器..."},"Loading data objects...":{en:"Loading data...",de:"Lade Daten...",ru:"Загрузка данных...",pt:"Carregando dados...",nl:"Data laden...",fr:"Chargement des données...",it:"Caricamento dati...",es:"Cargando datos...",pl:"Ładowanie danych...",uk:"Завантаження даних...","zh-cn":"加载数据中..."},"Loading data values...":{en:"Loading values...",de:"Lade Werte...",ru:"Загрузка значений...",pt:"Carregando valores ...",nl:"Waarden laden ...",fr:"Chargement des valeurs ...",it:"Caricamento valori ...",es:"Cargando valores ...",pl:"Ładowanie wartości ...",uk:"Завантаження значень ...","zh-cn":"载入值..."},"error - View doesn't exist":{en:"View doesn't exist!",de:"View existiert nicht!",ru:"Страница не существует!",pt:"erro - a página não existe",nl:"error - Page bestaat niet",fr:"error - La page n'existe pas",it:"errore - La pagina non esiste",es:"error - la página no existe",pl:"błąd - strona nie istnieje",uk:"помилка - сторінка не існує","zh-cn":"错误 - 页面不存在"},"no views found!":{en:"No views found!",de:"Keine Views gefunden!",ru:"Не найдено страниц!",pt:"Nenhuma página encontrada!",nl:"Geen pagina's gevonden!",fr:"Aucune page trouvée!",it:"Nessuna pagina trovata!",es:"No se encontraron páginas!",pl:"Nie znaleziono stron!",uk:"Не знайдено сторінок!","zh-cn":"找不到页面!"},"No valid license found!":{en:"No valid vis license found! Please check vis settings.",de:"Keine gültige vis Lizenz gefunden! Bitte vis Einstellungen prüfen.",ru:"Действительная лицензия не найдена! Пожалуйста, проверьте настройки.",pt:"Nenhuma licença válida encontrada! Por favor, verifique vis instance.",nl:"Geen geldige licentie gevonden! Controleer de vis-aankondiging.",fr:"Aucune licence valide trouvée ! Veuillez vérifier vis instance.",it:"Nessuna licenza valida trovata! Si prega di controllare di persona.",es:"No se encontró ninguna licencia válida! Por favor, compruebe la instancia de visita.",pl:"Nie znaleziono ważnej licencji! Proszę sprawdzić vis instance.",uk:"Не знайдено дійсної ліцензії! Будь ласка, перевірте налаштування vis.","zh-cn":"找不到有效的许可证!请检查vis实例。"},"No Views found on Server":{en:"No Views found on Server",de:"Keine Views am Server gefunden.",ru:"На сервере не найдено никаких страниц.",pt:"Nenhuma página encontrada no servidor",nl:"Geen pagina's gevonden op server",fr:"Aucune page trouvée sur le serveur",it:"Nessuna pagina trovata sul server",es:"No se encontraron páginas en el servidor",pl:"Nie znaleziono stron na serwerze",uk:"На сервері не знайдено жодних сторінок","zh-cn":"在服务器上找不到页面"},"All changes are saved locally. To reset changes clear the cache.":{en:"All changes are saved locally. To reset changes clear the browser cache.",de:"Alle Änderungen sind lokal gespeichert. Um Änderungen zu löschen, lösche Browsercache.",ru:"Все изменения сохранены локально. Для отмены локальных изменений очистите кеш броузера.",pt:"Todas as alterações são salvas localmente. Para redefinir as alterações, limpe o cache do navegador.",nl:"Alle wijzigingen worden lokaal opgeslagen. Als u de wijzigingen opnieuw wilt instellen, wist u de cache van de browser.",fr:"Toutes les modifications sont enregistrées localement. Pour réinitialiser les modifications, effacez le cache du navigateur.",it:"Tutte le modifiche sono salvate localmente. Per ripristinare le modifiche, cancellare la cache del browser.",es:"Todos los cambios se guardan localmente. Para restablecer los cambios borra el caché del navegador.",pl:"Wszystkie zmiany są zapisywane lokalnie. Aby zresetować zmiany, wyczyść pamięć podręczną przeglądarki.",uk:"Всі зміни зберігаються локально. Щоб скинути зміни, очистіть кеш браузера.","zh-cn":"所有更改都保存在本地。要重置更改,请清除浏览器缓存。"},"please use /vis/edit.html instead of /vis/?edit":{en:"Please use /vis/edit.html instead of /vis/?edit",de:"Bitte geben Sie /vis/edit.html statt /vis/?edit",ru:"Используйте /vis/edit.html вместо /vis/?edit",pt:"Por favor, use /vis/edit.html em vez de /vis/?edit",nl:"Gebruik alsjeblieft /vis/edit.html in plaats van /vis/?edit",fr:"Veuillez utiliser /vis/edit.html au lieu de /vis/?edit",it:"Utilizza /vis/edit.html invece di /vis/?edit",es:"Utilice /vis/edit.html en lugar de /vis/?edit",pl:"Użyj /vis/edit.html zamiast /vis/?edit",uk:"Будь ласка, використовуйте /vis/edit.html замість /vis/?edit","zh-cn":"请使用/vis/edit.html而不是/vis/?edit"},"no views found on server.\nCreate new %s ?":{en:`no views found on server.
Create new %s?`,de:`Keine Views am Server gefunden am.
Erzeugen %s?`,ru:"На сервере не найдено никаких страниц. Создать %s?",pt:`nenhuma vista encontrada no servidor.
Crie novos %s?`,nl:`geen weergaven gevonden op server.
Nieuwe %s maken?`,fr:`aucune vue trouvée sur le serveur.
Créer un nouveau %s?`,it:`nessuna vista trovata sul server.
Crea nuovo %s?`,es:`No se han encontrado vistas en el servidor.
Crear nuevo %s?`,pl:`nie znaleziono widoków na serwerze.
Utwórz nowy %s?`,uk:`на сервері не знайдено жодних сторінок.
Створити новий %s?`,"zh-cn":`在服务器上找不到任何视图
创建新的 %s?`},"Update found, loading new Files...":{en:"Update found.<br/>Loading new Files...",de:"Neue Version gefunden.<br/>Lade neue Dateien...",ru:"Обнаружено Обновление.<br/>Загружаю новые файлы...",pt:"Atualização encontrada. <br/> Carregando novos arquivos ...",nl:"Update gevonden. <br/> Nieuwe bestanden laden ...",fr:"Mise à jour trouvée. <br/> Chargement de nouveaux fichiers ...",it:"Aggiornamento trovato. <br/> Caricamento di nuovi file ...",es:"Actualización encontrada. <br/> Cargando nuevos archivos ...",pl:"Znaleziono aktualizację. <br/> Ładowanie nowych plików ...",uk:"Оновлення знайдено. <br/> Завантаження нових файлів ...","zh-cn":"找到更新。<br/>加载新文件..."},"Loading Widget-Sets...":{en:"Loading Widget-Sets...",de:"Lade Widget-Sätze...",ru:"Загрузка наборов элементов...",pt:"Carregando Conjuntos de Widget ...",nl:"Widgetsets laden ...",fr:"Chargement des ensembles de widgets ...",it:"Caricamento widget-set ...",es:"Cargando conjuntos de widgets ...",pl:"Ładowanie zestawów widgetów ...",uk:"Завантаження наборів віджетів ...","zh-cn":"正在加载Widget-Sets ..."},"error: view not found.":{en:"Error: view not found",de:"Fehler: View wurde nicht gefunden",ru:"Ошибка: Страница не существует",pt:"Erro: página não encontrada",nl:"Fout: pagina niet gevonden",fr:"Erreur: page non trouvée",it:"Errore: pagina non trovata",es:"Error: página no encontrada",pl:"Błąd: strona nie znaleziona",uk:"Помилка: сторінка не знайдена","zh-cn":"错误:找不到页面"},"error: view container recursion.":{en:"Error: view container recursion",de:"Fehler: View ist rekursiv",ru:"Ошибка: Страница вызывет саму себя",pt:"Erro: recursão do contêiner de página",nl:"Fout: paginacontainer-recursie",fr:"Erreur: récursivité du conteneur de page",it:"Errore: ricorsione del contenitore della pagina",es:"Error: página de recursión del contenedor.",pl:"Błąd: rekursja kontenera strony",uk:"Помилка: рекурсія контейнера сторінки","zh-cn":"错误:页面容器递归"},"Cannot execute %s for %s, because of insufficient permissions":{en:"Cannot execute %s for %s, because of insufficient permissions.",de:"Kann das Kommando '%s' für %s nicht ausführen, weil nicht genügend Zugriffsrechte vorhanden sind.",ru:"Не могу выполнить '%s' для %s, так как недостаточно прав.",pt:"Não é possível executar %s para %s, devido a permissões insuficientes.",nl:"Kan %s niet uitvoeren voor %s, vanwege onvoldoende machtigingen.",fr:"Impossible d'exécuter %s pour %s en raison d'autorisations insuffisantes.",it:"Impossibile eseguire %s per %s, a causa di autorizzazioni insufficienti.",es:"No se puede ejecutar %s para %s, debido a permisos insuficientes.",pl:"Nie można wykonać %s dla %s, z powodu niewystarczających uprawnień.",uk:"Неможливо виконати %s для %s через недостатні права.","zh-cn":"由于权限不足,无法为%s执行%s。"},"Insufficient permissions":{en:"Insufficient permissions",de:"Nicht genügend Zugriffsrechte",ru:"Недостаточно прав",pt:"Permissões insuficientes",nl:"Onvoldoende rechten",fr:"Permissions insuffisantes",it:"Permessi insufficienti",es:"Permisos insuficientes",pl:"Niewystarczające uprawnienia",uk:"Недостатньо прав","zh-cn":"权限不足"},"View disabled for user %s":{en:"View disabled for user <b>%s</b>",de:"View ist für Anwender <b>%s</b> deaktiviert",ru:"Страница недоступна для пользователя <b>%s</b>",pt:"Visualização desativada para o usuário <b>%s</b>",nl:"Weergave uitgeschakeld voor gebruiker <b>%s</b>",fr:"Affichage désactivé pour l'utilisateur <b>%s</b>",it:"Visualizza disabilitato per l'utente <b>%s</b>",es:"Vista deshabilitada para el usuario <b>%s</b>",pl:"Widok wyłączony dla użytkownika <b>%s</b>",uk:"Відображення вимкнено для користувача <b>%s</b>","zh-cn":"用户<b>%s</b>的视图已停用"},Today:{en:"Today",de:"Heute",ru:"Cегодня",pt:"Hoje",nl:"Vandaag",fr:"Aujourd'hui",it:"Oggi",es:"Hoy",pl:"Dzisiaj",uk:"Сьогодні","zh-cn":"今天"},Yesterday:{en:"Yesterday",de:"Gestern",ru:"Вчерашний день",pt:"Ontem",nl:"Gisteren",fr:"Hier",it:"Ieri",es:"Ayer",pl:"Wczoraj",uk:"Вчора","zh-cn":"昨天"}});function Bc(e,t,i){if(!e)return"";if(t||=window.systemLang,i||=window.systemDictionary,i[e]){let s=i[e][t];if(s||t!=="en"&&(s=i[e].en,s))return s}else typeof e=="string"&&!e.match(/_tooltip$/)||typeof e!="string"&&console.warn(`Trying to translate non-text: ${e}`);return e}function Bj(e,t,i,s){return e=Bc(e),!e.includes("%s")||(e=e.replace("%s",t),!e.includes("%s"))||(e=e.replace("%s",i),!e.includes("%s"))?e:e.replace("%s",s)}class Ae extends qe.Component{isTouch;debounceInterval;fontNames;ID_CONTROL_INSTANCE;ID_CONTROL_DATA;ID_CONTROL_COMMAND;formatUtils;userName;visCommonCssLoaded;oldTime;systemConfig;_cmdData;_cmdInstance;wakeUpDetectorInterval;lastChangedView;allWidgets;subscribes;scripts;visUserCssLoaded;linkContext;statesDebounce;statesDebounceTime;vis;instance;refSound;lastChange;_authInfo;_authRunning;conn;visContext;widgetChangeHandlers;canStates;viewsActiveFilter;defaultMode;can;refViews;onChangeCallbacks;wakeUpCallbacks;fontTimer;preloadImagesCacheImgs;preloadImagesCacheSrcs;constructor(t){var i,s;super(t),window.jQuery=window.$,window.$=window.jQuery,window.systemLang=t.lang||window.systemLang||"en",this.state={ready:!1,legacyRequestedViews:[],timeInterval:JSON.parse(window.localStorage.getItem("timeInterval"))||"week",timeStart:JSON.parse(window.localStorage.getItem("timeStart"))||null},X.locale(window.systemLang),this.can=window.can,this.scripts=null,this.isTouch="ontouchstart"in document.documentElement,this.debounceInterval=700,this.subscribes={},this.allWidgets={},this.wakeUpCallbacks=[],this.widgetChangeHandlers={},this.refViews={},this.fontNames=["Verdana, Geneva, sans-serif",'Georgia, "Times New Roman", Times, serif','"Courier New", Courier, monospace',"Arial, Helvetica, sans-serif","Tahoma, Geneva, sans-serif",'"Trebuchet MS", Arial, Helvetica, sans-serif','"Arial Black", Gadget, sans-serif','"Times New Roman", Times, serif','"Palatino Linotype", "Book Antiqua", Palatino, serif','"Lucida Sans Unicode", "Lucida Grande", sans-serif','"MS Serif", "New York", serif','"Comic Sans MS", cursive'],this.viewsActiveFilter={},this.statesDebounce={},this.onChangeCallbacks=[],this.ID_CONTROL_INSTANCE=`${this.props.adapterName}.${this.props.instance}.control.instance`,this.ID_CONTROL_DATA=`${this.props.adapterName}.${this.props.instance}.control.data`,this.ID_CONTROL_COMMAND=`${this.props.adapterName}.${this.props.instance}.control.command`,this.linkContext={IDs:[],visibility:{},signals:{},lastChanges:{},bindings:{},unregisterChangeHandler:this.unregisterChangeHandler,registerChangeHandler:this.registerChangeHandler,subscribe:this.subscribe,unsubscribe:this.unsubscribe,getViewRef:this.getViewRef,registerViewRef:this.registerViewRef,unregisterViewRef:this.unregisterViewRef},this.refSound=/^((?!chrome|android).)*safari/i.test(window.navigator.userAgent)?qe.createRef():null,this.conn=this.createConnection(),this.canStates=this.initCanObjects(),this.vis=this.createLegacyVisObject(),window._=this.vis._,window.vis=this.vis,window.translateWord=Bc,window._setTimeout=(n,a,c,l,u,_,m,p)=>setTimeout(()=>n(c,l,u,_,m,p),a),window._setInterval=(n,a,c,l,u,_,m,p)=>setInterval(()=>n(c,l,u,_,m,p),a),this.formatUtils=new di({vis:this.vis}),this.loadLegacyObjects().then(()=>this.loadEditWords()).then(()=>(this.userName=this.props.currentUser._id.replace("system.user.",""),this.vis.user=this.userName,this.vis.loginRequired=this.props.socket.isSecure,this.props.socket.getSystemConfig())).then(n=>{var a,c;return this.vis.dateFormat=n.common.dateFormat,this.vis.isFloatComma=n.common.isFloatComma,this.vis.language=n.common.language||"en",this.systemConfig=n,this.props.socket.subscribeState(this.ID_CONTROL_INSTANCE,this.onStateChange),this.props.socket.subscribeState(this.ID_CONTROL_DATA,this.onStateChange),this.props.socket.subscribeState(this.ID_CONTROL_COMMAND,this.onStateChange),(c=(a=this.props).setLoadingText)==null||c.call(a,"Load widgets..."),this.loadWidgets()}).then(()=>{var n,a;(a=(n=this.props).setLoadingText)==null||a.call(n,null),this.setState({ready:!0})}),(s=(i=this.props).onFontsUpdate)==null||s.call(i,this.fontNames)}static getCurrentPath(){const t=window.location.hash.replace(/^#/,"").split("/").map(i=>decodeURIComponent(i));return{view:t.shift(),path:t}}static buildPath(t,i){return i&&typeof i=="string"&&(i.includes("/")?i=i.split("/"):i=[i]),Array.isArray(i)&&i.length?`#${encodeURIComponent(t)}/${i.map(s=>encodeURIComponent(s)).join("/")}`:`#${encodeURIComponent(t)}`}setTimeInterval=t=>{this.setState({timeInterval:t}),window.localStorage.setItem("timeInterval",JSON.stringify(t))};setTimeStart=t=>{this.setState({timeStart:t}),window.localStorage.setItem("timeStart",JSON.stringify(t))};detectWakeUp(){this.oldTime=Date.now(),this.wakeUpDetectorInterval=this.wakeUpDetectorInterval||setInterval(()=>{const t=Date.now();t>this.oldTime+1e4?(this.oldTime=t,this.wakeUpCallbacks.forEach(i=>{if(typeof i.cb=="function")try{i.cb(i.wid)}catch(s){console.error(`Cannot wakeup ${i.wid}: ${s}`)}})):this.oldTime=t},2500)}componentDidMount(){window.$.ui.dialog.prototype._appendTo=function(){const t=this.options.wid,i=q.getState().visProject,s=Object.keys(i).find(n=>{var a;return(a=i[n].widgets)==null?void 0:a[t]});return!s&&console.warn(`Cannot find view for widget "${t}"!`),this.document.find(s?`#visview_${s.replace(/\s/g,"_")}`:"body").eq(0)},window.localStorage.getItem("visInstance")||this.vis.generateInstance(),this.detectWakeUp()}componentWillUnmount(){this.wakeUpDetectorInterval&&(clearInterval(this.wakeUpDetectorInterval),this.wakeUpDetectorInterval=null),Object.keys(this.subscribes).forEach(n=>this.props.socket.unsubscribeState(n,this.onStateChange)),this.props.socket.unsubscribeState(this.ID_CONTROL_INSTANCE,this.onStateChange),this.props.socket.unsubscribeState(this.ID_CONTROL_DATA,this.onStateChange),this.props.socket.unsubscribeState(this.ID_CONTROL_COMMAND,this.onStateChange);let t=window.document.getElementById("#vis_user_scripts");t&&(t.remove(),t=null);let i=window.document.getElementById("#vis_common_user");i&&(i.remove(),i=null);let s=window.document.getElementById("#vis_user");s&&(s.remove(),s=null),this.subscribes={}}loadLegacyObjects(){var t,i;return this.props.runtime?Promise.resolve():((i=(t=this.props).setLoadingText)==null||i.call(t,"Loading objects..."),this.conn.getObjects().then(s=>{this.vis.objects=s}))}buildLegacyStructures=()=>{var t,i;this.buildLegacySubscribing(),(i=(t=this.vis.binds.materialdesign)==null?void 0:t.helper)!=null&&i.subscribeStatesAtRuntime&&!this.vis.binds.materialdesign.helper.subscribeStatesAtRuntime.__inited&&(this.vis.binds.materialdesign.helper.subscribeStatesAtRuntime=(s,n,a,c)=>{c&&console.log(`[subscribeStatesAtRuntime] ${n} (${s}) subscribe states at runtime`),a==null||a()},this.vis.binds.materialdesign.helper.subscribeStatesAtRuntime.__inited=!0)};buildLegacySubscribing(){this.vis.subscribing={activeViews:[],byViews:{},active:[],IDs:[]},Object.keys(q.getState().visProject).forEach(t=>{t!=="___settings"&&(this.vis.subscribing.byViews[t]=[],this.vis.subscribing.activeViews.push(t))})}createLegacyVisObject(){return this.props.showLegacyFileSelector&&(window.jQuery.fm=(t,i)=>{this.props.showLegacyFileSelector((s,n)=>i(s,n),t)}),{version:2,states:this.canStates,objects:{},isTouch:this.isTouch,activeWidgets:[],navChangeCallbacks:[],editMode:!!this.props.editMode,binds:{basic:null,table:null,jqplot:null,jqueryui:null,swipe:null},views:q.getState().visProject,activeView:this.props.selectedView,language:this.props.lang,user:"",projectPrefix:this.props.projectName,_:Bj,dateFormat:"",instance:(window.localStorage.getItem("visInstance")||"").replace(/^"/,"").replace(/"$/,""),loginRequired:!1,viewsActiveFilter:this.viewsActiveFilter,onChangeCallbacks:this.onChangeCallbacks,subscribing:{activeViews:[],byViews:{},active:[],IDs:[]},conn:this.conn,lastChangedView:null,updateContainers:()=>{const t=this.refViews;Object.keys(t).forEach(i=>t[i].onCommand("updateContainers"))},renderView:(t,i,s,n)=>{if(typeof i=="boolean"&&(n=s,s=void 0,i=t),console.warn("renderView not implemented: ",t,i,s),this.state.legacyRequestedViews.includes(t))n==null||n(t,i);else{const a=[...this.state.legacyRequestedViews];a.push(t),this.setState({legacyRequestedViews:a},()=>setTimeout(()=>n==null?void 0:n(t,i),100))}},updateFilter:t=>{var i;return t||=this.props.activeView,this.refViews[t]&&(i=this.refViews[t])!=null&&i.onCommand?this.refViews[t].onCommand("collectFilters"):[]},destroyUnusedViews:()=>{console.warn("destroyUnusedViews not implemented")},changeFilter:(t,i,s,n,a,c)=>this.changeFilter(t,i,s,n,a,c),detectBounce:(t,i)=>{if(!this.isTouch)return!1;const s=Date.now();if(this.lastChange&&s-this.lastChange<this.debounceInterval)return!0;let n=t.tagName.toLowerCase();for(;n!=="div";)t=t.parentNode,n=t.tagName.toLowerCase();const a=t[`__vis_${i?"lcu":"lc"}`];return a&&s-a<this.debounceInterval?(console.log("click: filtered out"),!0):(t[`__vis_${i?"lcu":"lc"}`]=s,!1)},setValue:this.setValue,subscribe:this.subscribe,unsubscribe:this.unsubscribe,changeView:(t,i,s,n,a,c)=>{typeof i=="object"&&(c=a,a=n,s=n,i=t),!i&&t&&(i=t),typeof s=="function"&&(c=s),typeof n=="function"&&(c=n),typeof a=="function"&&(c=a),this.changeView(i),c==null||c(t,i)},getCurrentPath(){return Ae.getCurrentPath()},navigateInView(t){const i=Ae.getCurrentPath(),s=Ae.buildPath(i.view,t);window.location.hash!==s&&(window.location.hash=s)},onWakeUp:(t,i)=>{typeof t=="string"&&i===void 0&&(i=t,t=null),i||console.warn("No widget ID for onWakeUp callback! Please fix"),console.warn("onWakeUp not implemented"),t?this.wakeUpCallbacks.push({cb:t,wid:i}):this.wakeUpCallbacks=this.wakeUpCallbacks.filter(s=>s.wid!==i)},inspectWidgets:(t,i,s,n,a)=>{console.warn("inspectWidgets not implemented: ",t,i,s,n,a)},showMessage:(t,i,s,n,a)=>this.showMessage(t,i,s,n,a),showWidgetHelper:(t,i,s,n)=>{console.warn("showWidgetHelper not implemented: ",t,i,s,n)},findNearestResolution:(t,i)=>Ae.findNearestResolution(t,i),addFont:t=>{this.fontNames.includes(t)||(this.fontNames.push(t),this.props.onFontsUpdate&&(this.fontTimer&&clearTimeout(this.fontTimer),this.fontTimer=setTimeout(()=>{this.fontTimer=null,this.props.onFontsUpdate(this.fontNames)})))},registerOnChange:(t,i,s)=>{s||console.warn("No widget ID for registerOnChange callback! Please fix"),this.onChangeCallbacks.find(n=>n.callback===t&&n.arg===i&&(!s||n.wid===s))||this.onChangeCallbacks.push({callback:t,arg:i,wid:s})},unregisterOnChange:(t,i,s)=>{s||console.warn("No widget ID for unregisterOnChange callback! Please fix");const n=this.onChangeCallbacks.findIndex(a=>a.callback===t&&(i==null||a.arg===i)&&(!s||a.wid===s));n>=0&&this.onChangeCallbacks.splice(n,1)},generateInstance:()=>{let t=(Math.random()*4294967296).toString(16);return t=`0000000${t}`,t=t.substring(t.length-8),window.vis.instance=t,window.localStorage.setItem("visInstance",t),this.instance},findByRoles:(t,i)=>{typeof i!="object"?i=[i]:i=ne(i);const s={},n=t.split(".");n.pop();const a=n.join("."),c=new RegExp(`^${a.replace(/\./g,"\\.")}\\.`);for(const l in this.vis.objects)if(c.test(l)&&this.vis.objects[l].common&&this.vis.objects[l].type==="state"){for(let u=0;u<i.length;u++)if(this.vis.objects[l].common.role===i[u]){s[i[u]]=l,i.splice(u,1);break}else if(!i.length)break}if(i.length){n.pop();const l=n.join("."),u=new RegExp(`^${l.replace(/\./g,"\\.")}\\.`);for(const _ in this.vis.objects)if(u.test(_)&&this.vis.objects[_].common&&this.vis.objects[_].type==="state"){for(let m=0;m<i.length;m++)if(this.vis.objects[_].common.role===i[m]){s[i[m]]=_,i.splice(m,1);break}if(!i.length)break}}return s},findByName:(t,i)=>{const s=t.split(".");s.pop();const a=`${s.join(".")}.${i}`;if(a in this.vis.objects&&this.vis.objects[a].common&&this.vis.objects[a].type==="state")return a;s.pop();const c=s.join("."),l=new RegExp(`^${c.replace(/\./g,"\\.")}\\..*\\.${i}`);for(const u in this.vis.objects)if(l.test(u)&&this.vis.objects[u].common&&this.vis.objects[u].type==="state")return u;return!1},hideShowAttr:t=>console.warn("hideShowAttr is deprecated: ",t),bindingsCache:{},extractBinding:(t,i)=>{if(!i&&this.props.editMode||!t)return null;if(this.vis.bindingsCache[t])return JSON.parse(JSON.stringify(this.vis.bindingsCache[t]));const s=kn(t);return s&&(this.vis.bindingsCache[t]=JSON.parse(JSON.stringify(s))),s},formatBinding:(t,i,s,n,a,c)=>this.formatUtils.formatBinding({format:t,view:i,wid:s,widget:n,widgetData:a,values:c,moment:X}),getViewOfWidget:t=>{var s,n;const i=q.getState().visProject;for(const a in i)if(a!=="___settings"&&(n=(s=i[a])==null?void 0:s.widgets)!=null&&n[t])return a;return null},confirmMessage:(t,i,s,n,a)=>this.props.onConfirmDialog(t,i,s,n,a),config:{},showCode:(t,i,s)=>this.props.onShowCode(t,i,s),findCommonAttributes:()=>{},bindWidgetClick:()=>{},preloadImages:t=>{this.preloadImagesCacheImgs||=[],this.preloadImagesCacheSrcs||=[],Array.isArray(t)||(t=[t]);for(let i=0;i<t.length;i++)if(!this.preloadImagesCacheSrcs.includes(t[i])){const s=new Image;s.src=t[i],this.preloadImagesCacheImgs.push(s),this.preloadImagesCacheSrcs.push(t[i])}},updateStates:t=>{t&&Object.keys(t).forEach(i=>{let s=t[i];if(i.startsWith("local_")){s={val:br(i),ts:Date.now(),lc:Date.now(),ack:!1,from:`system.adapter.${this.props.adapterName}.${this.props.instance}`,user:this.props.currentUser?this.props.currentUser._id:"system.user.admin",q:0},this.onStateChange(i,s);return}s&&this.setValue(i,s.val)})},getHistory:(t,i,s)=>{i||={},i.timeout||=2e3;let n=setTimeout(()=>{n=null,s("timeout")},i.timeout);this.props.socket.getHistory(t,i).then(a=>{n&&(clearTimeout(n),n=null),s(null,a)}).catch(a=>{n&&(clearTimeout(n),n=null),s(a)})},getHttp:(t,i)=>this.props.socket.getRawSocket().emit("httpGet",t,s=>i==null?void 0:i(s)),formatDate:(t,i,s)=>this.formatUtils.formatDate(t,i,s),widgets:this.allWidgets,editSelect:this.props.runtime?null:(t,i,s,n,a)=>{console.log("DEPRECATED!!!!! please remove vis.editSelect"),typeof s=="function"&&(a=n,n=s,s=!1);const c={input:`<select type="text" id="inspect_${t}">`};if(a&&(c.onchange=a),n&&(c.init=n),i.length&&i[0]!==void 0)for(let l=0;l<i.length;l++)c.input+=`<option value="${i[l]}">${s?i[l]:window.vis._(i[l])}</option>`;else for(const l in i)c.input+=`<option value="${i[l]}">${l}</option>`;return c.input+="</select>",c},isWidgetHidden:(t,i,s,n)=>{n||=q.getState().visProject[t].widgets[i].data;const a=n["visibility-oid"],c=n["visibility-cond"];if(a){if(s==null&&(s=this.canStates.attr(`${a}.val`)),s==null)return c==="not exist";let l=n["visibility-val"];if(!c||l===void 0||l===null)return c==="not exist";if(s==="null"&&c!=="exist"&&c!=="not exist")return!1;const u=typeof s;switch(u==="boolean"||s==="false"||s==="true"?l=l==="true"||l===!0||l===1||l==="1":u==="number"?l=parseFloat(l):u==="object"&&(s=JSON.stringify(s)),c){case"==":return l=l.toString(),s=s.toString(),s==="1"&&(s="true"),l==="1"&&(l="true"),s==="0"&&(s="false"),l==="0"&&(l="false"),l!==s;case"!=":return l=l.toString(),s=s.toString(),s==="1"&&(s="true"),l==="1"&&(l="true"),s==="0"&&(s="false"),l==="0"&&(l="false"),l===s;case">=":return s<l;case"<=":return s>l;case">":return s<=l;case"<":return s>=l;case"consist":return l=l.toString(),s=s.toString(),!s.toString().includes(l);case"not consist":return l=l.toString(),s=s.toString(),s.toString().includes(l);case"exist":return s==="null";case"not exist":return s!=="null";default:return console.log(`Unknown visibility condition for ${i}: ${c}`),!1}}else return c==="not exist"},getUserGroups:()=>this.props.userGroups}}changeFilter(t,i,s,n,a,c){var l,u;t||=this.props.activeView,(u=(l=this.refViews[t])==null?void 0:l.onCommand)==null||u.call(l,"changeFilter",{filter:i,showEffect:s,showDuration:n,hideEffect:a,hideDuration:c})}onCommand=(t,i,s)=>{var n,a;(a=(n=this.refViews[t])==null?void 0:n.onCommand)==null||a.call(n,i,s)};showMessage(t,i,s,n,a){typeof s=="number"&&(a=n,n=s,s=null),typeof i=="function"?(a=i,i=null):typeof s=="function"?(a=s,s=null):typeof n=="function"&&(a=n,n=null),this.setState({showMessage:{message:t,title:i,icon:s,width:n,callback:a}})}renderMessageDialog(){return this.state.showMessage?o.jsxs(f.Dialog,{open:!0,onClose:()=>{const t=this.state.showMessage.callback;typeof t=="function"&&t(!1),this.setState({showMessage:null})},maxWidth:"md",children:[o.jsx(f.DialogTitle,{children:this.state.showMessage.title||w.I18n.t("Message")}),o.jsxs(f.DialogContent,{children:[this.state.showMessage.icon==="alert"?o.jsx(S.Warning,{}):null,this.state.showMessage.message]}),o.jsxs(f.DialogActions,{children:[o.jsx(f.Button,{variant:"contained",onClick:()=>{const t=this.state.showMessage.callback;typeof t=="function"&&t(!0),this.setState({showMessage:null})},color:"primary",startIcon:o.jsx(S.Check,{}),children:w.I18n.t("Ok")}),this.state.showMessage.callback?o.jsx(f.Button,{variant:"contained",color:"grey",onClick:()=>{const t=this.state.showMessage.callback;typeof t=="function"&&t(!1),this.setState({showMessage:null})},startIcon:o.jsx(S.Close,{}),children:w.I18n.t("Cancel")}):null]})]},"__messageDialog"):null}createConnection(){return{namespace:this.props.adapterId,logError:t=>{console.error(`Error: ${t}`),this.props.socket.log(t,"error")},getIsConnected:()=>this.props.socket.isConnected(),getGroups:(t,i,s)=>(typeof t=="function"&&(s=t,t=null,i=!1),typeof t=="boolean"&&(s=i,i=t,t=null),typeof i=="function"&&(s=i,i=!1),t||="",this.readGroups(t,!i).then(n=>s(n)).catch(n=>s(n))),getConfig:(t,i)=>(typeof t=="function"&&(i=t,t=!1),this.props.socket.getSystemConfig(!t).then(s=>i(null,s.common)).catch(s=>i(s))),getObjects:async t=>{const i=[];return i.push(new Promise((s,n)=>this.props.socket.getRawSocket().emit("getObjects",(a,c)=>{if(a){n(a);return}s(c)}))),i.push(this.props.socket.getEnums(void 0,!t)),i.push(this.props.socket.getObjectViewSystem("instance","system.adapter.","system.adapter.香")),i.push(this.props.socket.getObjectViewSystem("chart","","香")),i.push(this.props.socket.getObjectViewSystem("channel","","香")),i.push(this.props.socket.getObjectViewSystem("device","","香")),Promise.all(i).then(s=>{var c,l;const n=s[0]||{};for(let u=1;u<s.length;u++)s[u]&&Object.assign(n,s[u]);const a=`system.adapter.${this.props.adapterName}.${this.props.instance}`;return(l=(c=n[a])==null?void 0:c.native)!=null&&l.defaultFileMode&&(this.defaultMode=n[a].native.defaultFileMode),n})},getLoggedUser:t=>this.props.socket.getCurrentUser().then(i=>t(this.props.socket.isSecure,i)),subscribe:(t,i)=>{this.subscribe(t),i==null||i()},unsubscribe:(t,i)=>{this.unsubscribe(t),i==null||i()},authenticate:(t,i,s)=>{this._authRunning=!0,t!==void 0&&(this._authInfo={user:t,hash:i+s,salt:s})},getStates:(t,i)=>{if(!(t!=null&&t.length)){i==null||i(null,{});return}this.props.socket.getForeignStates(t).then(s=>i(null,s)).catch(s=>i(s||"Authentication required"))},setState:(t,i,s)=>{if(!t){s==null||s(new Error("No id"));return}this.props.socket.setState(t,i).then(()=>s==null?void 0:s()).catch(n=>s==null?void 0:s(n))},sendTo:(t,i,s,n)=>{this.props.socket.sendTo(t,i,s).then(a=>n==null?void 0:n(a)).catch(a=>n==null?void 0:n(a))},setReloadTimeout:()=>{},setReconnectInterval:()=>{},getUser:()=>this.userName,sendCommand:(t,i,s,n)=>this.props.socket.setState(this.ID_CONTROL_INSTANCE,{val:t||"notdefined",ack:!0}).then(()=>this.props.socket.setState(this.ID_CONTROL_DATA,{val:s,ack:!0})).then(()=>this.props.socket.setState(this.ID_CONTROL_COMMAND,{val:i,ack:n===void 0?!0:n})).catch(a=>console.error(`Cannot set state: ${a}`)),readFile:(t,i)=>{let s=this.conn.namespace;if(t[0]==="/"){const n=t.split("/");s=n[1],n.splice(0,2),t=n.join("/")}return yi(this.props.socket,s,t,!0).then(n=>{setTimeout(()=>i(null,n.file,t,n.mimeType),0)}).catch(n=>i(n))},getHistory:(t,i,s)=>{i||={},i.timeout||=2e3;let n=setTimeout(()=>{n=null,s(new Error("timeout"))},i.timeout);this.props.socket.getHistory(t,i).then(a=>{n&&(clearTimeout(n),n=null),s(null,a)}).catch(a=>{n&&(clearTimeout(n),n=null),s(a)})},getHttp:(t,i)=>this.props.socket.getRawSocket().emit("httpGet",t,s=>i==null?void 0:i(s)),_socket:{emit:(t,i,s)=>{let n;t==="getObject"?n=this.props.socket.getObject(i):t==="getState"?n=this.props.socket.getState(i):t==="getStates"&&(n=this.props.socket.getStates(i)),n instanceof Promise?n.then(a=>s==null?void 0:s(null,a)).catch(a=>s==null?void 0:s(a)):console.warn(`Unknown command in _socket.emit: ${t}`)}}}}registerViewRef=(t,i,s)=>{this.refViews[t]&&this.refViews[t].ref===i?console.error(`Someone tries to register same ref for view ${t}`):(this.refViews[t]&&console.error(`Someone tries to register new ref for view ${t}`),this.refViews[t]={ref:i,onCommand:s})};unregisterViewRef=(t,i)=>{this.refViews[t]&&this.refViews[t].ref===i?delete this.refViews[t]:this.refViews[t]&&(this.refViews[t]&&console.error(`Someone tries to unregister new ref for view ${t}`),delete this.refViews[t])};getViewRef=t=>{var i;return(i=this.refViews[t])==null?void 0:i.ref};static findNearestResolution(t,i){let s,n;i!=null?(s=t,n=i,t=!1):(s=window.document.body.clientWidth,n=window.document.body.clientHeight);let a=null;const c=[];let l=1e4;const{visProject:u}=q.getState();if(Object.keys(u).forEach(_=>{if(_!=="___settings"&&u[_].settings&&u[_].settings.useAsDefault){const m=parseInt(u[_].settings.sizex,10);Math.abs(m-s)/m<.2&&c.push(_)}}),c.forEach(_=>{if(_!=="___settings"&&u[_].settings){const m=parseInt(u[_].settings.sizey,10);Math.abs(m-n)<l&&(a=_,l=Math.abs(m-n))}}),!a){const _=s/n;l=1e4,Object.keys(u).forEach(m=>{var p;if(m!=="___settings"&&((p=u[m].settings)!=null&&p.useAsDefault)){const y=parseInt(u[m].settings.sizex,10),b=parseInt(u[m].settings.sizey,10);b&&Math.abs(_-y/b)<l&&(a=m,l=Math.abs(_-y/b))}})}return!a&&t&&(a=Object.keys(u).find(_=>{var m;return _!=="___settings"&&((m=u[_].settings)==null?void 0:m.useAsDefault)}),a||=Object.keys(u).find(_=>_!=="___settings")),a}async readGroups(t,i){const s=await this.props.socket.getGroups(!i),n={};if(t){const a=`system.group.${t}`;s.filter(c=>c._id.startsWith(`${a}.`)||c._id===a).forEach(c=>n[c._id]=c)}else s.forEach(a=>n[a._id]=a);return n}initCanObjects(){return new this.can.Map({"nothing_selected.val":null})}_setValue(t,i){const s=this.canStates.attr(`${t}.val`);this.onStateChange(t,{val:i,ack:!1}),!t.startsWith("local_")&&this.props.socket.setState(t,{val:i,ack:!1}).catch(n=>{console.error(`Cannot set ${t} with "${i}: ${n}`),s===void 0?(this.canStates.removeAttr(`${t}.val`),this.canStates.removeAttr(`${t}.q`),this.canStates.removeAttr(`${t}.from`),this.canStates.removeAttr(`${t}.ts`),this.canStates.removeAttr(`${t}.lc`),this.canStates.removeAttr(`${t}.ack`)):this.canStates.attr(`${t}.val`,s)})}setValue=(t,i)=>{if(!t){console.log(`ID is null for val=${JSON.stringify(i)}`);return}this.statesDebounce[t]?this.statesDebounce[t].state=i:(this._setValue(t,i),this.statesDebounce[t]={timeout:setTimeout(()=>{this.statesDebounce[t]&&(this.statesDebounce[t].state!==null&&this.statesDebounce[t].state!==void 0&&this._setValue(t,this.statesDebounce[t].state),delete this.statesDebounce[t])},this.statesDebounceTime,t),state:null})};static async loadScriptsOfOneWidgetSet(t){for(const{oldScript:i,newScript:s}of t)try{s.appendChild(document.createTextNode(i.innerHTML)),i.parentNode.replaceChild(s,i),await new Promise((n,a)=>{s.onerror=a,s.onload=n})}catch(n){console.error(`Cannot load script "${s.src}": ${JSON.stringify(n)}`)}}static loadedSources=[];static async setInnerHTML(t,i,s){var c,l,u;t.innerHTML=i;const n=Array.from(t.querySelectorAll("script")),a={};for(let _=0;_<n.length;_++){const m=n[_],p=m.getAttribute("src");if(p&&Ae.loadedSources.includes(p))continue;Ae.loadedSources.push(p);const y=document.createElement("script");let b="default";if(Array.from(m.attributes).forEach(j=>{try{j.name==="data-widgetset"?b=j.value:y.setAttribute(j.name,j.value)}catch(T){console.error(`WTF?? in ${j.ownerElement.id}: ${T}`)}}),!s||b==="default"||s.includes(b))if(p)a[b]||=[],a[b].push({newScript:y,oldScript:m});else{let j=setTimeout(T=>{console.error(`Cannot load ${T}`)},500,((c=m.attributes.id)==null?void 0:c.value)||((l=m.attributes["data-widgetset"])==null?void 0:l.value));try{y.appendChild(document.createTextNode(m.innerHTML)),m.parentNode.replaceChild(y,m),clearTimeout(j),j=null}catch(T){console.error(`Cannot set inner HTML of ${(u=m.text)==null?void 0:u.substring(0,500)}: ${T}`)}}else console.log(`Skip script "${b}" ${p||"inline"}`)}await Promise.all(Object.keys(a).map(_=>Ae.loadScriptsOfOneWidgetSet(a[_])))}loadEditWords(){return this.props.runtime?Promise.resolve():new Promise(t=>{const i=document.createElement("script");i.setAttribute("src","lib/js/visEditWords.js"),i.onload=t,window.document.head.appendChild(i)})}async loadWidgets(){var t,i;try{const n=await(await fetch("widgets.html")).text(),a=document.createElement("div");document.body.appendChild(a),await Ae.setInnerHTML(a,n,this.props.runtime&&Ro.getUsedWidgetSets(q.getState().visProject)),(i=(t=this.props).onLoaded)==null||i.call(t)}catch(s){console.error(`Cannot load widgets: ${s}`),console.error(`Cannot load widgets: ${JSON.stringify(s.stack)}`)}}updateWidget(t,i,s,n,a,c){this.widgetChangeHandlers[i]&&this.widgetChangeHandlers[i](s,n,a,c)}registerChangeHandler=(t,i)=>{this.props.editMode&&this.widgetChangeHandlers[t]&&console.error("Someone installs handler without to remove it!"),this.widgetChangeHandlers[t]=i};unregisterChangeHandler=(t,i)=>{this.widgetChangeHandlers[t]===i&&delete this.widgetChangeHandlers[t]};onUserCommand(t,i,s){var a,c;const n=(window.localStorage.getItem("visInstance")||"").replace(/^"/,"").replace(/"$/,"");if(t==null?t="":t=t.toString(),t&&typeof t=="string"&&(t=t.replace(/^"/,"").replace(/"$/,"")),!t||t!==n&&t!=="FFFFFFFF"&&!t.includes("*"))return!1;if(this.props.editMode&&i!=="tts"&&i!=="playSound")return i!=="changedView"&&window.alert(w.I18n.t("Received user command: %s",JSON.stringify({instance:t,command:i,data:s}))),!0;switch(i){case"alert":{const[l,u,_]=s.split(";");this.showMessage(l,u,_);break}case"changedView":return!1;case"changeView":{const l=s.split("/");if(!q.getState().visProject[l[0]]&&l[1]){const u=l.shift();if(u!==this.props.projectName){const m=l.join("/");return window.location.search.includes("runtime=")?document.location.href=`./?${u}&runtime=true#${m}`:document.location.href=`./?${u}#${m}`,!0}const _=l.shift();this.changeView(_,l.join("/"))}else{const u=l.shift();this.changeView(u,l.join("/"))}break}case"refresh":case"reload":setTimeout(()=>window.location.reload(),1);break;case"dialog":case"dialogOpen":{const{visProject:l}=q.getState(),u=window.document.getElementById(s)||window.document.querySelector(`[data-dialog-name="${s}"]`),_=Object.keys(l).find(m=>{var p;return(p=l[m].widgets)==null?void 0:p[s]});_&&((a=this.refViews[_])!=null&&a.onCommand)&&this.refViews[_].onCommand("openDialog",s),u!=null&&u._showDialog?u._showDialog(!0):window.jQuery(`#${s}_dialog`).dialog("open");break}case"dialogClose":{const{visProject:l}=q.getState(),u=window.document.getElementById(s)||window.document.querySelector(`[data-dialog-name="${s}"]`),_=Object.keys(l).find(m=>{var p;return(p=l[m].widgets)==null?void 0:p[s]});_&&((c=this.refViews[_])!=null&&c.onCommand)&&this.refViews[_].onCommand("closeDialog",s),u!=null&&u._showDialog?u._showDialog(!1):window.jQuery(`#${s}_dialog`).dialog("close");break}case"popup":window.open(s);break;case"playSound":setTimeout(()=>{var u;let l;if(s!=null&&s.match(/^http(s)?:\/\//)?l=s:l=`${window.location.protocol}//${window.location.hostname}:${window.location.port}${s}`,l+=`?${Date.now()}`,(u=this.refSound)!=null&&u.current)this.refSound.current.setAttribute("src",l),this.refSound.current.setAttribute("muted",!1),this.refSound.current.play();else if(typeof Audio<"u")new Audio(l).play().catch(m=>console.error(`Cannot play sound: ${m}`));else{let _=window.document.getElementById("external_sound");_||(_=document.createElement("audio"),_.setAttribute("id","external_sound"),window.document.body.appendChild(_)),_.setAttribute("src",l),_.play()}},1);break;case"tts":typeof window.app<"u"&&window.app.tts(s);break;default:this.conn.logError(`unknown external command ${i}`)}return!1}onStateChange=(t,i)=>{var n,a,c,l;if(!t||i===null||typeof i!="object")return;if(t===this.ID_CONTROL_COMMAND){if(i.ack||i.ts&&Date.now()-i.ts>5e3)return;let u;if(i.val&&typeof i.val=="string"&&i.val[0]==="{"&&i.val[i.val.length-1]==="}")try{u=JSON.parse(i.val)}catch{console.warn(`Command seems to be an object, but cannot parse it: ${i.val}`)}u!=null&&u.instance?this.onUserCommand(u.instance,u.command,u.data)&&this.props.socket.setState(t,{val:"",ack:!0}).catch(_=>console.error(`Cannot reset ${t}: ${_}`)):this.onUserCommand(this._cmdInstance,i.val,this._cmdData)&&this.props.socket.setState(t,{val:"",ack:!0}).catch(_=>console.error(`Cannot reset ${t}: ${_}`));return}if(t===this.ID_CONTROL_DATA){if(i.ack||this._cmdData!==void 0&&i.ts&&Date.now()-i.ts>5e3)return;this._cmdData=i.val;return}if(t===this.ID_CONTROL_INSTANCE){if(i.ack||this._cmdInstance!==void 0&&i.ts&&Date.now()-i.ts>5e3)return;this._cmdInstance=i.val;return}const s={};s[`${t}.val`]=i.val,i.ts!==void 0&&(s[`${t}.ts`]=i.ts),i.ack!==void 0&&(s[`${t}.ack`]=i.ack),i.lc!==void 0&&(s[`${t}.lc`]=i.lc),i.q!==void 0&&i.q!==null&&(s[`${t}.q`]=i.q);try{this.canStates.attr(s)}catch(u){this.props.socket.log(`Error: can't create states object for ${t}(${u}): ${JSON.stringify(u.stack)}`,"error")}(n=this.linkContext.visibility[t])==null||n.forEach(u=>this.updateWidget(u.view,u.widget,"visibility",u)),(a=this.linkContext.signals[t])==null||a.forEach(u=>this.updateWidget(u.view,u.widget,"signal",u,t)),(c=this.linkContext.lastChanges[t])==null||c.forEach(u=>this.updateWidget(u.view,u.widget,"lastChange",u,t)),(l=this.linkContext.bindings[t])==null||l.forEach(u=>this.updateWidget(u.view,u.widget,"binding",u,t)),this.onChangeCallbacks.forEach(u=>{try{u.callback(u.arg,t,i.val,i.ack,i.ts)}catch(_){this.props.socket.log(`Error: can't update states object for ${t}(${_}): ${JSON.stringify(_.stack)}`,"error")}})};subscribe=t=>{Array.isArray(t)||(t=[t]),t.forEach(i=>{this.subscribes[i]?this.subscribes[i]++:(this.subscribes[i]=1,console.log(`[${new Date().toISOString()}] +SUBSCRIBE: ${i}`),this.createCanState(i),i.startsWith("local_")||this.props.socket.subscribeState(i,this.onStateChange))})};createCanState(t){const i=`${t}.val`;if(this.canStates[i]===void 0||this.canStates[i]===null){const s=Date.now(),n={};t.startsWith("local_")?n[i]=br(t):(n[i]="null",n[`${t}.ts`]=s,n[`${t}.ack`]=!1,n[`${t}.lc`]=s,n[`${t}.q`]=0);try{this.canStates.attr(n)}catch(a){this.props.socket.log(`Error: can't create states object for ${t}(${a}): ${JSON.stringify(a.stack)}`,"error")}}}unsubscribe=t=>{Array.isArray(t)||(t=[t]),t.forEach(i=>{this.subscribes[i]&&(this.subscribes[i]--,this.subscribes[i]||(console.log(`[${new Date().toISOString()}] -UNSUBSCRIBE: ${i}`),i.startsWith("local_")||this.props.socket.unsubscribeState(i,this.onStateChange),delete this.subscribes[i]))})};updateCustomScripts(){const{visProject:t}=q.getState();if(t){if(this.props.editMode){if(this.scripts){this.scripts=null;let i=window.document.getElementById("#vis_user_scripts");i&&(i.remove(),i=null)}}else if(t.___settings&&this.scripts!==(t.___settings.scripts||"")){this.scripts=t.___settings.scripts||"";let i=window.document.getElementById("#vis_user_scripts");if(i)i.innerHTML=this.scripts;else{i=window.document.createElement("script"),i.setAttribute("id","vis_user_scripts"),i.innerHTML=`try {
${this.scripts}
} catch (error) {
console.error('Cannot execute user script: ' + error);
}`;try{window.document.head.appendChild(i)}catch(s){console.error(`Cannot execute user script: ${s}`)}}}}}static applyUserStyles(t,i){let s=window.document.getElementById(t);if(s)s.innerHTML=i;else if(s=window.document.createElement("style"),s.setAttribute("id",t),s.innerHTML=i,t==="vis_common_user"){const n=window.document.getElementById("vis_user");n?window.document.body.insertBefore(s,n):window.document.body.appendChild(s)}else t==="vis_user"&&window.document.body.appendChild(s)}updateCommonCss(){(!this.visCommonCssLoaded||this.props.visCommonCss&&this.visCommonCssLoaded!==this.props.visCommonCss)&&(this.visCommonCssLoaded=this.props.visCommonCss||!0,this.props.visCommonCss?Ae.applyUserStyles("vis_common_user",this.visCommonCssLoaded||""):yi(this.props.socket,this.props.adapterId,"vis-common-user.css").then(t=>{this.visCommonCssLoaded=t||!0,Ae.applyUserStyles("vis_common_user",t||"")}).catch(t=>console.warn(`Common user CSS not found: ${t}`)))}updateUserCss(){(!this.visUserCssLoaded||this.props.visUserCss&&this.visUserCssLoaded!==this.props.visUserCss)&&(this.visUserCssLoaded=this.props.visUserCss||!0,this.props.visUserCss?Ae.applyUserStyles("vis_user",this.visUserCssLoaded||""):yi(this.props.socket,`${this.props.adapterName}.${this.props.instance}`,`${this.props.projectName}/vis-user.css`).then(t=>{this.visUserCssLoaded=t||!0,Ae.applyUserStyles("vis_user",t||"")}).catch(t=>console.warn(`User CSS "${this.props.projectName}/vis-user.css" not found: ${t}`)))}changeView=(t,i)=>{this.props.editMode?window.alert(w.I18n.t("Ignored in edit mode")):window.location.hash=Ae.buildPath(t,i)};render(){var s;if(!this.state.ready||this.props.widgetsLoaded<2)return this.props.renderAlertDialog&&this.props.runtime?o.jsxs(o.Fragment,{children:[o.jsx(f.LinearProgress,{}),this.props.renderAlertDialog()]}):o.jsx(f.LinearProgress,{});const{visProject:t}=q.getState();this.vis.editMode=this.props.editMode,this.vis.activeView=this.props.activeView,this.vis.views=t,this.updateCustomScripts(),this.updateCommonCss(),this.updateUserCss(),this.lastChangedView!==this.props.activeView&&!this.props.editMode&&(this.lastChangedView=this.props.activeView,window.vis.conn.sendCommand(window.vis.instance,"changedView",this.props.projectName?`${this.props.projectName}/${this.props.activeView}`:this.props.activeView),(s=window.jQuery)==null||s.call(window,window).trigger("viewChanged",this.props.activeView)),this.visContext={$$:window.$$,VisView:vr,activeView:this.props.activeView,adapterName:this.props.adapterName,allWidgets:this.allWidgets,askAboutInclude:this.props.askAboutInclude,buildLegacyStructures:this.buildLegacyStructures,can:this.can,canStates:this.canStates,changeProject:this.props.changeProject,changeView:this.changeView,dateFormat:this.vis.dateFormat,disableInteraction:this.props.disableInteraction,editModeComponentStyle:this.props.editModeComponentStyle,formatUtils:this.formatUtils,instance:this.props.instance,jQuery:window.jQuery,lang:this.props.lang,linkContext:this.linkContext,lockDragging:this.props.lockDragging,moment:X,onCommand:this.onCommand,onIgnoreMouseEvents:this.props.runtime?null:this.props.onIgnoreMouseEvents,onWidgetsChanged:this.props.runtime?null:this.props.onWidgetsChanged,projectName:this.props.projectName,registerEditorCallback:this.props.runtime?null:this.props.registerEditorCallback,runtime:this.props.runtime,setSelectedGroup:this.props.runtime?null:this.props.setSelectedGroup,setSelectedWidgets:this.props.runtime?null:this.props.setSelectedWidgets,setTimeInterval:this.setTimeInterval,setTimeStart:this.setTimeStart,setValue:this.setValue,showWidgetNames:this.props.showWidgetNames,socket:this.props.socket,systemConfig:this.systemConfig,theme:this.props.theme,themeName:this.props.themeName,themeType:this.props.themeType,timeInterval:this.state.timeInterval,timeStart:this.state.timeStart,toggleTheme:this.props.toggleTheme,user:this.userName,userGroups:this.props.userGroups,views:t,widgetHint:this.props.widgetHint};const i=Object.keys(t).map(n=>{var a;return n!=="___settings"&&(n===this.props.activeView||(a=t[n].settings)!=null&&a.alwaysRender&&!this.props.selectedGroup||!this.props.editMode&&this.state.legacyRequestedViews.includes(n))?o.jsx(vr,{theme:this.props.theme,context:this.visContext,activeView:this.props.activeView,editMode:this.props.editMode,viewsActiveFilter:this.viewsActiveFilter,selectedGroup:this.props.runtime?null:this.props.selectedGroup,selectedWidgets:this.props.runtime?null:this.props.selectedWidgets,view:n},n):null});return this.refSound&&i.push(o.jsx("audio",{ref:this.refSound,id:"external_sound",autoPlay:!0,muted:!0},"__audio_145")),this.props.renderAlertDialog&&this.props.runtime&&i.push(this.props.renderAlertDialog()),i.push(this.renderMessageDialog()),i}}const Uj="Add",Yj="Administrator",Gj="All",Jj="Aluminium1",Kj="Aluminium2",Zj="Apply",Xj="Attributes",Qj="Basic",ex="Benutzer",tx="Bricks",ix="CSS",sx="Cancel",nx="Clear",ox="Clone",ax="Close",rx="Colorful",lx="Comment",cx="Copy",dx="Create",ux="Cut",_x="Default",gx="Delete",hx="Devices",px="Disabled",mx="Duplicate",fx="Edit",wx="Elements",bx="Enabled",vx="Enter",yx="Explanation",jx="Export",xx="Files",$x="Fr",Sx="For all projects",kx="Grid",qx="Group",Cx="Height",Px="Hide",Dx="High",Tx="Horizontal",Mx="Icon",zx="Ignore",Ix="Image",Hx="Import",Ax="Instance",Ox="Lock",Lx="Message",Wx="Mo",Rx="Modify",Nx="More",Ex="Name",Fx="Navigation",Vx="No",Bx="Normal",Ux="OFF",Yx="ON",Gx="Objects",Jx="Ok",Kx="Open",Zx="Options",Xx="Order",Qx="Orientation",e$="Palette",t$="Paste",i$="Percent",s$="Permissions",n$="Priority",o$="Projects",a$="Read",r$="Redo",l$="Reloading",c$="Rename",d$="Resolution",u$="Sa",_$="Save",g$="Scripts",h$="Search",p$="Select",m$="Settings",f$="Show",w$="Style",b$="Su",v$="Tabs",y$="Temperature",j$="Th",x$="Theme",$$="Title",S$="Tu",k$="Type",q$="Undo",C$="Ungroup",P$="Uninstall",D$="Unlock",T$="Unselect",M$="Update",z$="Value",I$="Vertical",H$="View",A$="We",O$="Weekend",L$="Widget",W$="Widgets",R$="Width",N$="Write",E$="Writer",F$="Yes",V$="Widgeteria",B$="All",U$="Tooltip by false",Y$="Tooltip by true",G$="anonymize",J$="For all",K$="none",Z$="Add all left",X$="Arrow",Q$="Border color",eS="Border radius",tS="Circle",iS="Custom polygon",sS="Multiple selection",nS="Dropdown menu",oS="Horizontal buttons",aS="Vertical buttons",rS="Hexagone",lS="Line",cS='No "No filter" option',dS="No filter",uS='"No filter" label',_S="Hide corner",gS="Octagone",hS="Pentagone",pS="Pin",mS="continuous",fS="Detected",wS="english",bS="Height (px)",vS="Active",yS="Inactive",jS='Click the "Allow" button above to enable your microphone.',xS="Permission to use microphone is blocked. To change, go to chrome://settings/contentExceptions#media-stream",$S="Permission to use microphone was denied.",SS='No microphone was found. Ensure that a microphone is installed and that <a href="//support.google.com/chrome/bin/answer.py?hl=en&answer=1407892"> microphone settings</a> are configured correctly.',kS='No speech was detected. You may need to adjust your <a href="//support.google.com/chrome/bin/answer.py?hl=en&answer=1407892">microphone settings</a>.',qS="Speak now.",CS="Click on the microphone icon and begin speaking.",PS='Web Speech API is not supported by this browser. Upgrade to <a href="//www.google.com/chrome">Chrome</a> version 25 or later.',DS="Key word color",TS="Text color, if key word found",MS="Keywords",zS="No image",IS="No results",HS="No help text",AS="russian",OS="Sent",LS="single",WS="Speech mode",RS="start/stop",NS="Started",ES="Text sent color",FS="Text color, when text sent to processing it",VS="Width (px)",BS="Square",US="Star",YS="Sub-view",GS="Triangle",JS="block",KS="color",ZS="Color by false",XS="Color by true",QS="copy",ek="For this project",tk="Special",ik="different",sk="display",nk="flex",ok="flexible",ak="Folder",rk="Group",lk="Name",ck="Type",dk="Attributes",uk=`You can define in attributes of group's widget the special names in format "%yourCustomName%" and it will appear in the "Attributes" settings. After that you can provide name and type of custom attributes.`,_k="Icon by false",gk="Icon by true",hk="You can change group size, by selecting it in the drop down widget selector or by clicking on this text",pk="Text",mk="These CSS are applyed to all projects",fk="These CSS are applied only to this project",wk="hide",bk="horizontal",vk="hr",yk="Icon size in pixels",jk="You can upload your own icon up to 10k bytes as base64. It will be saved in project directly. If you want to upload SVG file do not forget to set currentColor attribute.",xk="Image height",$k="Image height",Sk="Invert icon",kk="Invert icon",qk="Close",Ck="Example",Pk="Percents",Dk="Active color",Tk="Am/Pm",Mk="As date",zk="Usage of full parseable date",Ik="As string",Hk="auto",Ak="Binary control",Ok='Deprecated. Use "Binary control" widget. Keeped just for compatibility with vis.1',Lk="Button color",Wk="Dialog close button",Rk='Deprecated. Use "Input" widget. Keeped just for compatibility with vis.1',Nk="Jump to URL",Ek="Jump to URL (In new Window)",Fk='Deprecated. Use first widget with "Open in new window" option. Keeped just for compatibility with vis.1',Vk='Deprecated. Use first widget with "Go to view" option. Keeped just for compatibility with vis.1',Bk="Button text",Uk="Use view name as title",Yk="Clearable",Gk="Color",Jk="Button=>Page dialog",Kk="Container dialog",Zk="Icon=>Page dialog",Xk="Dialog name",Qk="Set state by dialog open",e1="Disable future",t1="Disable past",i1="Display week number",s1="Equal text lengths",n1='If activated, the lengths of texts for true and false will be equal, so the icon will stay on the same place in "off" and "on" states.',o1="External dialog",a1='This dialog is not visible on page, but it can be opened by external command "dialogOpen" with dialog name or widget ID as parameter.',r1="False",l1="From other object",c1="From static value",d1="Generate",u1="Value",_1="Hide close button",g1="This URL will be called in browser",h1="HTML",p1="HTML Dialog",m1="External dialog",f1="HTML by false",w1="HTML is only configurable if text and icon are empty",b1="HTML by true",v1="Icon",y1="Active icon",j1="Icon Dialog",x1="Call URL in backend",$1="Increment with Icon",S1="Jump to URL (with icon)",k1="Icon for maximum",q1="Boolean icon button",C1="Push button",P1="Toggle button with icon",D1="Image",T1="Active image",M1="Image height",z1="Image for maximum",I1="Increment/Decrement",H1="Input",A1="Input of date",O1="Input of time",L1="Input with button",W1="Invert icon",R1="Inverted",N1="jQuery Style",E1="Maximum value",F1="Minimal value",V1="Title",B1="Go to view",U1="Navigation Button",Y1="Navigation icon",G1="Navigation with password",J1="Not equal width",K1="Off",Z1="Working ID",X1="On",Q1="Only icon",e0="As list",t0="Orientation",i0="Password",s0="User must enter password to open dialog, go to page or URL",n0="Push mode",o0="By pressing the button, “true” will be written and when you release the button, will be written “false”.",a0="Radio buttons (on/off)",r0="Radio list with values",l0="Radio button (steps)",c0="range",d0="Read only",u0="Repeat delay",_0="Repeat interval",g0="Select all on focus",h0="On focus all text will be selected, so it can be fast deleted or changed without pressing backspace button",p0="Select from list",m0="Styled",f0="Write timeout",w0="single",b0="Slider",v0="Deprecated. Use slider widget with orientation set to vertical. Keeped just for compatibility with vis.1",y0="Vertical slider",j0='Deprecated. Use "States control" widget with "increment/decrement" option. Keeped just for compatibility with vis.1',x0="States control",$0="Step minute",S0="Test value",k0="Text",q0="Active text",C0="Text for maximum",P0="Toggle",D0="Tooltip",T0="True",M0="Type",z0="Unit",I0="Call URL by click",H0="URL in Backend",A0="URL in Browser",O0="This URL will be called in background by ioBroker engine",L0="Value",W0="Display label",R0="Variant",N0="Navigation view",E0="Wide format",F0="Title",V0="With enter button",B0='Deprecated. Use "Wirte state" widget with "increment/decrement" option. Keeped just for compatibility with vis.1',U0="Write value",Y0="Filled",G0="Outlined",J0="%s matching results",K0="Round",Z0="Sharp",X0="Two-tone",Q0="Upload",e2="never",t2="no reload",i2="none",s2="normal",n2="optional",o2="You can drag and drop any item or click on the item with which the selected widget will be swapped",a2="Orientation",r2="Profile",l2="reload",c2="basic",d2="It is used for special purposes, like jaeger-design navigation",u2="Text by false",_2="Text by true",g2="String",h2="version",p2="vertical",m2="Resizable",f2="Cannot use recursive views",w2="Use view",b2="View in widget",v2="View not defined",y2="Hide indication",j2="Threshold",x2="Swipe",$2="Color",S2="Tab",k2="Tabs",q2="Number",C2="Icon",P2="Color",D2="Icon size",T2="Image",M2="Overflow X",z2="Overflow Y",I2="Title",H2="View",A2="Variant",O2="centered",L2="Default",W2="full width",R2="Vertical",N2="No one project yet exists.",E2={"%s from %s":"%s from %s","%s widgets":"%s widgets","(Maximal file size is %s)":"(Maximal file size is %s)","-attachment":"-attachment","-clip":"-clip","-color":"-color","-image":"-image","-origin":"-origin","-position":"-position","-repeat":"-repeat","-size":"-size","1 day":"1 day","1 hour":"1 hour","1 minute":"1 minute","1 second":"1 second","10 minutes":"10 minutes","10 seconds":"10 seconds","12 hours":"12 hours","15 m.":"15 m.","2 hours":"2 hours","2 seconds":"2 seconds","20 seconds":"20 seconds","3 hours":"3 hours","30 m.":"30 m.","30 minutes":"30 minutes","30 seconds":"30 seconds","5 minutes":"5 minutes","5 seconds":"5 seconds","6 hours":"6 hours","Activation state":"Activation state","Active widget(s) from %s":"Active widget(s) from %s",Add:Uj,"Add folder":"Add folder","Add new child folder":"Add new child folder","Add new child profile":"Add new child profile","Add new or update existing widget":`Add new or update existing widget
`,"Add new view":"Add new view","Add profile":"Add profile","Add project":"Add project","Add sub-folder":"Add sub-folder","Add to widgeteria":"Add to widgeteria","Add view":"Add view",Administrator:Yj,"Align height. Press more time to get the desired height.":"Align height. Press more time to get the desired height.","Align horizontal/center":"Align horizontal/center","Align horizontal/equal":"Align horizontal/equal","Align horizontal/left":"Align horizontal/left","Align horizontal/right":"Align horizontal/right","Align vertical/bottom":"Align vertical/bottom","Align vertical/center":"Align vertical/center","Align vertical/equal":"Align vertical/equal","Align vertical/top":"Align vertical/top","Align width. Press more time to get the desired width.":"Align width. Press more time to get the desired width.",All:Gj,Aluminium1:Jj,Aluminium2:Kj,"App bar":"Application bar",Apply:Zj,"Apply ALL navigation properties to all views":"Apply ALL navigation properties to all views","Apply to all views":"Apply this property to all views, where the navigation is activated","Are you sure":"Are you sure","Are you sure to delete widgets %s?":"Are you sure to delete widgets %s?",Attributes:Xj,"Available for all":"Project accessible by all users","Background class":"Background class","Background color":"Background color","Background color if selected":"Background color if selected","Bar color":"Background color","Bar icon":"Icon","Bar image":"Image","Bar text":"Caption",Basic:Qj,Benutzer:ex,"Blue flowers":"Blue flowers","Blue marine":"Blue marine","Blue marine lines":"Blue marine lines","Blueprint grid":"Blueprint grid","Body overflow":"Body overflow",Bricks:tx,"Bring to front":"Bring to front","Browse files":"Browse files","Browse objects":"Browse objects","Browse the widgeteria":"Browse the widgeteria","Browser instance ID":"Browser instance ID","Browser tab favicon":"Browser tab favicon","Browser tab title":"Browser tab title","By horizontal menu do not show text if icon provided":"By horizontal menu do not show text if icon provided",CSS:ix,"CSS Class":"CSS Class","CSS Common":"CSS Common","CSS Font & Text":"CSS Font & Text","CSS background (background-...)":"CSS background (background-...)",Cancel:sx,"Cannot use recursive views":"Cannot use recursive views","Carbon fibre":"Carbon fibre","Carbon fibre1":"Carbon fibre1","Chevron icon color":"Color of the show button",Clear:nx,"Clear filter":"Clear filter","Click to close":"Click to close",Clone:ox,"Clone widget":"Clone widget",Close:ax,"Close all":"Collapse all","Close all but current view":"Close all but current view","Close editor":"Close editor","Collapse all":"Collapse all",Colorful:rx,"Column gap":"Column gap","Column width":"Column width",Comment:lx,"Convert %s to %s":"Convert %s to %s","Copied %s":"Copied %s","Copied to clipboard":"Copied to clipboard",Copy:cx,"Copy noun":"Copy","Copy to clipboard":"Copy to clipboard",'Copy view "%s"':'Copy view "%s"',Create:dx,"Create copy":"Create copy","Create instance":"Create instance","Create new project":"Create new project",'Create or import new "vis-2" project':'Create or import new "vis-2" project',"Current project":"Current project",Cut:ux,"Dark reconnect screen":"Dark reconnect screen","Deactivate binding and use field as standard input":"Deactivate binding and use field as standard input",Default:_x,"Default view":"Default view","Default: auto":'Default: "auto"',Delete:gx,"Delete actual view":"Delete actual view","Delete widgets":"Delete widgets","Destroy inactive view":"Destroy inactive view","Detected new version of vis files. Reloading in 2 seconds...":"Detected new version of vis files. Reloading in 2 seconds...",Devices:hx,Disabled:px,"Do not ask again":"Do not ask again","Do not hide menu":"Do not hide menu completely","Do you want to create first demo project?":"Do you want to create first demo project?",'Do you want to delete folder "%s"':'Do you want to delete folder "%s"','Do you want to delete project "%s"?':'Do you want to delete project "%s"?','Do you want to delete view "%s"?':'Do you want to delete view "%s"?','Do you want to include "%s" widget into "%s"?':'Do you want to include "%s" widget into "%s"?',"Drag me":"Drag me","Drop the files here ...":"Drop the files here ...",Duplicate:mx,"Duplicate folder":"Duplicate folder","Duplicate profile":"Duplicate the profile",Edit:fx,"Edit binding":"Edit binding","Edit folder":"Edit folder","Edit group":"Edit group","Edit profile":"Edit profile",Elements:wx,Enabled:bx,Enter:vx,"Enter password":"Enter password","Enter the browser instances divided by comma":"Enter the browser instances divided by comma","Expand all":"Expand all",Explanation:yx,Export:jx,'Export "%s"':'Export "%s"',"Export widgets":"Export widgets","External dialog":"External dialog","Fields of group will be cleaned":"Fields of group will be cleaned","File too large":"File too large",Files:xx,"Filter widgets":"Filter widgets","Fm dark background":"Fm dark background","Fm light background":"Fm light background","Following views will be changed":"Following views will be changed","For widgets with relative position":"For widgets with relative position",Fr:$x,"Full HD - Landscape":"Full HD - Landscape","Full HD - Portrait":"Full HD - Portrait","Full panel":"Full panel","Galaxy Fold - Landscape":"Galaxy Fold - Landscape","Galaxy Fold - Portrait":"Galaxy Fold - Portrait",Global:Sx,"Gradient box":"Gradient box","Gray 0":"Gray 0","Gray 1":"Gray 1",Grid:kx,Group:qx,"Group view css background":"Group view css background","Group widgets":"Group widgets","H gradient black 0":"H gradient black 0","H gradient black 1":"H gradient black 1","H gradient black 2":"H gradient black 2","H gradient black 3":"H gradient black 3","H gradient black 4":"H gradient black 4","H gradient black 5":"H gradient black 5","H gradient blue 0":"H gradient blue 0","H gradient blue 1":"H gradient blue 1","H gradient blue 2":"H gradient blue 2","H gradient blue 3":"H gradient blue 3","H gradient blue 4":"H gradient blue 4","H gradient blue 5":"H gradient blue 5","H gradient blue 6":"H gradient blue 6","H gradient blue 7":"H gradient blue 7","H gradient gray 0":"H gradient gray 0","H gradient gray 1":"H gradient gray 1","H gradient gray 2":"H gradient gray 2","H gradient gray 3":"H gradient gray 3","H gradient gray 4":"H gradient gray 4","H gradient gray 5":"H gradient gray 5","H gradient gray 6":"H gradient gray 6","H gradient green 0":"H gradient green 0","H gradient green 1":"H gradient green 1","H gradient green 2":"H gradient green 2","H gradient green 3":"H gradient green 3","H gradient green 4":"H gradient green 4","H gradient orange 0":"H gradient orange 0","H gradient orange 1":"H gradient orange 1","H gradient orange 2":"H gradient orange 2","H gradient orange 3":"H gradient orange 3","H gradient yellow 0":"H gradient yellow 0","H gradient yellow 1":"H gradient yellow 1","H gradient yellow 2":"H gradient yellow 2","H gradient yellow 3":"H gradient yellow 3","HD - Landscape":"HD - Landscape","HD - Portrait":"HD - Portrait",Height:Cx,Hide:Px,"Hide after selection":"Hide after selection","Hide all views":"Hide all views","Hide attributes":"Hide attributes","Hide menu":"Hide menu","Hide palette":"Hide palette","Hide panel names":"Hide panel names","Hide selected widgets":"Hide selected widgets",High:Dx,"High priority":"High priority","Highest eg. Holiday":"Highest eg. Holiday",Horizontal:Tx,Icon:Mx,"If user not in group":"If user not in group",Ignore:zx,"Ignored in edit mode":"Ignored in edit mode",Image:Ix,Import:Hx,"Import project":"Import project","Import widgets":"Import widgets","Include widget?":"Include widget?","Initial filter":"Initial filter",Instance:Ax,"Invalid file type":"Invalid file type","Jump to widget by double click":"Jump to widget by double click on widget","Just use without modification":"Just use without modification","Keep on old place":"Keep on old place","Limit background color":"Background color","Limit border color":"Border color","Limit border style":"Border style","Limit border width":"Border width","Limit only for instances":"Limit only for instances","Limit screen":"Limit screen","Lined paper":"Lined paper","Load project file...":"Loading project file...","Load widgets...":"Loading widgets...","Loading objects...":"Loading objects...",Lock:Ox,"Lock dragging":"Lock dragging","Manage projects":"Projects","Manage views":"Views","Menu header text":"Menu header text","Menu header text color":"Menu header text color","Menu width":"Menu width",Message:Lx,Mo:Wx,Modify:Rx,More:Nx,"Move down":"Move down","Move to new place":"Move to new place","Move up":"Move up","Move widget down or press longer to open re-order menu":"Move widget down or press longer to open re-order menu","Move widget up or press longer to open re-order menu":"Move widget up or press longer to open re-order menu",Name:Ex,"Name is not unique":"Name is not unique","Name of copy":"Name of copy","Narrow panel":"Narrow panel",Navigation:Fx,"Nest Hub - Landscape":"Nest Hub - Landscape","Nest Hub - Portrait":"Nest Hub - Portrait","Nest Hub Max - Landscape":"Nest Hub Max - Landscape","Nest Hub Max - Portrait":"Nest Hub Max - Portrait","New name":"New name","New view":"New view",No:Vx,"No background":"No background",Normal:Bx,OFF:Ux,ON:Yx,Objects:Gx,Ok:Jx,"On/Off":"On/Off","One parameter":"One parameter","Only for desktop":"Only for desktop","Only for groups":"Only for groups","Only the admin user can change permissions":"Only the admin user can change permissions",Open:Kx,"Open all":"Expand all","Open it?":"Open it?","Open runtime in new window":"Open runtime in new window","Open widgeteria":"Open widgeteria",Options:Zx,Order:Xx,Orientation:Qx,Palette:e$,Paste:t$,Percent:i$,Permissions:s$,"Pixel 5 - Landscape":"Pixel 5 - Landscape","Pixel 5 - Portrait":"Pixel 5 - Portrait",Priority:n$,'Project "%s" does not exist':'Project "%s" does not exist','Project "%s" was successfully imported':'Project "%s" was successfully imported',"Project already exists":"Project already exists","Project name":"Project name","Project settings":"Project settings","Project was updated":"Project was updated","Project was updated by another browser instance. Do you want to reload it?":"Project was updated by another browser instance. Do you want to reload it?",Projects:o$,"Radial blue":"Radial blue",Read:a$,"Read = Runtime access":"Read = Runtime access","Read about currentColor in SVG":"Read about currentColor in SVG","Rebuild HTML pages":"Rebuild HTML pages","Rebuild of HTML pages was started":"Rebuild of HTML pages was started","Received user command: %s":"Received user command: %s","Reconnect interval":"Reconnect interval",Redo:r$,"Reload all browsers if project changed":"Reload all browsers if project changed","Reload all runtimes":"Reload all runtimes","Reload if sleep longer than":"Reload if sleep longer than","Reload now":"Reload now",Reloading:l$,Rename:c$,'Rename folder "%s"':'Rename folder "%s"','Rename project "%s"':'Rename project "%s"',"Rename view":"Rename view",'Rename view "%s"':'Rename view "%s"',"Render always":"Render always","Reset all intervals to following value:":"Reset all intervals to following value:",Resolution:d$,"Responsive settings":"Responsive settings","Row gap":"Row gap",Sa:u$,"Samsung Galaxy A51/71 - Landscape":"Samsung Galaxy A51/71 - Landscape","Samsung Galaxy A51/71 - Portrait":"Samsung Galaxy A51/71 - Portrait","Samsung Galaxy S20 Ultra - Landscape":"Samsung Galaxy S20 Ultra - Landscape","Samsung Galaxy S20 Ultra - Portrait":"Samsung Galaxy S20 Ultra - Portrait","Samsung Galaxy S8+ - Landscape":"Samsung Galaxy S8+ - Landscape","Samsung Galaxy S8+ - Portrait":"Samsung Galaxy S8+ - Portrait",Save:_$,Scripts:g$,Search:h$,Select:p$,"Select all":"Select all","Select object ID":"Select object ID","Select or create profile in left menu":"Select or create profile in left menu","Select project":"Select project","Select vis-2 project":'Select "vis-2" project',"Send to back":"Send to back","Sent to back":"Sent to back",Set:"Set","Set all periods to one value":"Set all periods to one value","Set widgets filter for edit mode":"Hide widgets (that have filter key) in edit mode",Settings:m$,"Should it be moved to new place?":"Should it be moved to new place?",Show:f$,"Show all views":"Show all views","Show app bar":"Show","Show background of button":"Background of show button","Show navigation":"Show navigation","Show only selected widgets":"Show only selected widgets","Show only toolbar on the top and hide menu itself":"Show only toolbar on the top and hide menu itself","Show palette":"Show palette","Show this attribute by all views":"Show this attribute by all views","Show view":"Show view","Specify filter to see more icons":"Specify filter to see more icons","States Debounce Time (millis)":"States Debounce Time (millis)",Style:w$,"Style of menu button only when the menu is hidden":"Style of menu button only when the menu is hidden",Su:b$,"Surface Duo - Landscape":"Surface Duo - Landscape","Surface Duo - Portrait":"Surface Duo - Portrait","Surface Pro 7 - Landscape":"Surface Pro 7 - Landscape","Surface Pro 7 - Portrait":"Surface Pro 7 - Portrait","Switch to group edit mode by double click":"Switch to group edit mode by double click on widget",Tabs:v$,Temperature:y$,"Text color":"Text color","Text color if selected":"Text color if selected","Text edit":"Text edit",Th:j$,Theme:x$,"This view will be shown only to defined groups":"This view will be shown only to defined groups",'This widget is already used in "%s"':'This widget is already used in "%s"',Title:$$,"To use it, define by some widget the filter key":"To use it, define by some widget the filter key","Toggle runtime":"Toggle runtime","Toggle widget hint (dark)":"Toggle widget hint (dark)","Toggle widget hint (hide)":"Toggle widget hint (hide)","Toggle widget hint (light)":"Toggle widget hint (light)",Tu:S$,Type:k$,Undo:q$,Ungroup:C$,Uninstall:P$,'Unknown widget type "%s"':'Unknown widget type "%s"',Unlock:D$,Unselect:T$,Update:M$,"Usage of widget %s":"Usage of widget %s","Use background":"Use background","Use field as binding":"Use field as binding","User defined":"User defined",Value:z$,Vertical:I$,View:H$,"View not defined":"View not defined",We:A$,Weekend:O$,Widget:L$,"Widget CSS":"Widget CSS","Widget JS":"Widget JS","Widget was deleted in widgeteria":"Widget was deleted in widgeteria",Widgets:W$,Width:R$,"Width x height (px)":"Width x height (px)",Write:N$,"Write = Edit mode access":"Write = Edit mode access",Writer:E$,"Wrong password":"Wrong password",Yes:F$,"You can open dialog with following script:":"You can open dialog with following script:","You can provide here the state that controls the activation of this profile":"You can provide here the state that controls the activation of this profile",__marketplace:V$,ace_All:B$,"ace_CaseSensitive Search":"CaseSensitive Search","ace_RegExp Search":"RegExp Search","ace_Search In Selection":"Search In Selection","ace_Search for":"Search for","ace_Toggle Replace mode":"Toggle Replace mode","ace_Whole Word Search":"Whole Word Search",alt_false:U$,alt_true:Y$,anonymize:G$,apply_to_all:J$,attr_none:K$,basic_all_filters:Z$,basic_arrow:X$,basic_borderColor:Q$,basic_borderRadius:eS,basic_circle:tS,basic_custom:iS,basic_filter_multiple:sS,basic_filter_type_dropdown:nS,basic_filter_type_horizontal_buttons:oS,basic_filter_type_vertical_buttons:aS,basic_hexagone:rS,basic_line:lS,basic_no_all_option:cS,basic_no_filter:dS,basic_no_filter_text:uS,basic_node_hide_corner:_S,basic_octagone:gS,basic_pentagone:hS,basic_pin:pS,basic_speech2text_continuous:mS,basic_speech2text_detected:fS,basic_speech2text_en_us:wS,basic_speech2text_height:bS,basic_speech2text_image_active:vS,basic_speech2text_image_inactive:yS,basic_speech2text_info_allow:jS,basic_speech2text_info_blocked:xS,basic_speech2text_info_denied:$S,basic_speech2text_info_no_microphone:SS,basic_speech2text_info_no_speech:kS,basic_speech2text_info_speak_now:qS,basic_speech2text_info_start:CS,basic_speech2text_info_upgrade:PS,basic_speech2text_key_word_color:DS,basic_speech2text_key_word_color_tooltip:TS,basic_speech2text_keywords:MS,basic_speech2text_no_image:zS,basic_speech2text_no_results:IS,basic_speech2text_no_text:HS,basic_speech2text_ru_ru:AS,basic_speech2text_sent:OS,basic_speech2text_single:LS,basic_speech2text_speech_mode:WS,basic_speech2text_start_stop:RS,basic_speech2text_started:NS,basic_speech2text_text_sent_color:ES,basic_speech2text_text_sent_color_tooltip:FS,basic_speech2text_width:VS,basic_square:BS,basic_star:US,basic_sub_view:YS,basic_triangle:GS,block:JS,color:KS,color_false:ZS,color_true:XS,"convert from widgeteria widget":"convert from widgeteria widget",copy:QS,css_project:ek,custom_icons:tk,different:ik,display:sk,"finish searching":"searching finished",flex:nk,flexible:ok,folder:ak,"font-family":"font-family","font-size":"font-size","font-style":"font-style","font-variant":"font-variant","font-weight":"font-weight",group:rk,group_attrName:lk,group_attrType:ck,group_fields:dk,group_help:uk,group_icon_false:_k,group_icon_true:gk,group_size_hint:hk,group_text:pk,help_css_global:mk,help_css_project:fk,hide:wk,"hide code":"hide code",horizontal:bk,hr:vk,"iPad Air - Landscape":"iPad Air - Landscape","iPad Air - Portrait":"iPad Air - Portrait","iPad Mini - Landscape":"iPad Mini - Landscape","iPad Mini - Portrait":"iPad Mini - Portrait","iPad Pro - Landscape":"iPad Pro - Landscape","iPad Pro - Portrait":"iPad Pro - Portrait","iPhone 12 Pro - Landscape":"iPhone 12 Pro - Landscape","iPhone 12 Pro - Portrait":"iPhone 12 Pro - Portrait","iPhone SE - Landscape":"iPhone SE - Landscape","iPhone SE - Portrait":"iPhone SE - Portrait","iPhone XR - Landscape":"iPhone XR - Landscape","iPhone XR - Portrait":"iPhone XR - Portrait",icon_size_in_pixels:yk,icon_upload_hint:jk,imageHeight_false:xk,imageHeight_true:$k,invert_icon_false:Sk,invert_icon_true:kk,"jqui_Add new value":"Add new value","jqui_Are you sure?":"Are you sure?","jqui_Bulk edit":"Bulk edit",jqui_Close:qk,jqui_Example:Ck,"jqui_Generate states":"Generate states","jqui_Generate steps":"Generate steps","jqui_Maximum value":"Maximum value","jqui_Minimum value":"Minimum value","jqui_Number settings":"Number settings",jqui_Percents:Pk,"jqui_Replace to":"Replace with","jqui_Select file":"Select image","jqui_Write state":"Write state",jqui_active_color:Dk,jqui_ampm:Tk,jqui_asDate:Mk,jqui_asFullDate:zk,jqui_as_string:Ik,jqui_auto:Hk,jqui_binary_control:Ak,jqui_button_binary_control_note:Ok,jqui_button_color:Lk,jqui_button_dialog_close:Wk,jqui_button_input_note:Rk,jqui_button_link:Nk,jqui_button_link_blank:Ek,jqui_button_link_blank_note:Fk,jqui_button_nav_blank_note:Vk,jqui_button_text:Bk,jqui_buttontext_view:Uk,jqui_clearable:Yk,jqui_color:Gk,jqui_container_button_dialog:Jk,jqui_container_dialog:Kk,jqui_container_icon_dialog:Zk,jqui_dialog_name:Xk,jqui_dialog_set_id_tooltip:Qk,jqui_disableFuture:e1,jqui_disablePast:t1,jqui_displayWeekNumber:i1,jqui_equal_text_length:s1,jqui_equal_text_length_tooltip:n1,jqui_external_dialog:o1,jqui_external_dialog_tooltip:a1,jqui_false:r1,jqui_from_oid:l1,jqui_from_value:c1,jqui_generate:d1,jqui_group_value:u1,jqui_hide_close_button:_1,jqui_href_tooltip:g1,jqui_html:h1,jqui_html_dialog:p1,jqui_html_external_dialog:m1,jqui_html_false:f1,jqui_html_tooltip:w1,jqui_html_true:b1,jqui_icon:v1,jqui_icon_active:y1,jqui_icon_dialog:j1,jqui_icon_http_get:x1,jqui_icon_increment:$1,jqui_icon_link:S1,jqui_icon_max:k1,jqui_icon_state_bool:q1,jqui_icon_state_push_button:C1,jqui_icon_toggle:P1,jqui_image:D1,jqui_image_active:T1,jqui_image_height:M1,jqui_image_max:z1,jqui_increment_decrement:I1,jqui_input:H1,jqui_input_date:A1,jqui_input_time:O1,jqui_input_with_button:L1,jqui_invert_icon:W1,jqui_inverted:R1,jqui_jquery_style:N1,jqui_max:E1,jqui_min:F1,jqui_name:V1,jqui_nav_view:B1,jqui_navigation_button:U1,jqui_navigation_icon:Y1,jqui_navigation_password:G1,jqui_not_equal_length:J1,jqui_off:K1,jqui_oid_working:Z1,jqui_on:X1,jqui_only_icon:Q1,jqui_open:e0,jqui_orientation:t0,jqui_password:i0,jqui_password_tooltip:s0,jqui_push_mode:n0,jqui_push_mode_tooltip:o0,jqui_radio_buttons_on_off:a0,jqui_radio_list:r0,jqui_radio_steps:l0,jqui_range:c0,jqui_read_only:d0,jqui_repeat_delay:u0,jqui_repeat_interval:_0,jqui_select_all_on_focus:g0,jqui_select_all_on_focus_tooltip:h0,jqui_select_list:p0,jqui_set_label:m0,jqui_set_timeout:f0,jqui_single:w0,jqui_slider:b0,jqui_slider_note:v0,jqui_slider_vertical:y0,jqui_state_note:j0,jqui_states_control:x0,jqui_stepMinute:$0,jqui_test:S0,jqui_text:k0,jqui_text_active:q0,jqui_text_max:C0,jqui_toggle:P0,jqui_tooltip:D0,jqui_true:T0,jqui_type:M0,jqui_unit:z0,jqui_url_group:I0,jqui_url_in_background:H0,jqui_url_in_browser:A0,jqui_url_tooltip:O0,jqui_value:L0,jqui_value_label_display:W0,jqui_variant:R0,jqui_view_group:N0,jqui_wideFormat:E0,jqui_widgetTitle:F0,jqui_with_enter_button:V0,jqui_write_state_note:B0,jqui_write_value:U0,"letter-spacing":"letter-spacing","line-height":"line-height",material_icons_baseline:Y0,"material_icons_knx-uf":"knx-uf",material_icons_outline:G0,material_icons_result:J0,material_icons_round:K0,material_icons_sharp:Z0,material_icons_twotone:X0,material_icons_upload:Q0,"multi-views":"Show in Views",never:e2,no_reload:t2,none:i2,normal:s2,"not defined":"not defined","not-specified":"not defined",optional:n2,order_help:o2,orientation:a2,profile:r2,"qui_Bool SVG":"Boolean SVG",reload:l2,"search text":"Search text",set_basic:c2,"signals-color":"Color","signals-count":"Number of signals","signals-smallIcon-0":"Small icon [0]","signals-smallIcon-1":"Small Icon [1]","signals-smallIcon-2":"Small icon [3]","signals-text":"Text or template","signals-text-0":"Text [0]","signals-text-1":"Text [1]","signals-text-2":"Text [2]","signals-text-tooltip":"You can use %s to show current value in text",sub_view_tooltip:d2,"text-shadow":"text-shadow",text_false:u2,text_true:_2,"to version":"to version",value_string:g2,version:h2,vertical:p2,"vis-2-widgets-basic-autoSetDelay":"Delay for auto-write","vis-2-widgets-basic-input_value":"Input value","vis-2-widgets-basic-noStyle":"No style",visResizable:m2,vis_2_widgets_basic_cannot_recursive:f2,vis_2_widgets_basic_contains_view:w2,vis_2_widgets_basic_view_in_widget:b2,vis_2_widgets_basic_view_not_defined:v2,vis_2_widgets_swipe_hide_indication_label:y2,vis_2_widgets_swipe_threshold_label:j2,vis_2_widgets_widgets_swipe_label:x2,vis_2_widgets_widgets_tabs_color:$2,vis_2_widgets_widgets_tabs_group_tab:S2,vis_2_widgets_widgets_tabs_label:k2,vis_2_widgets_widgets_tabs_show_tabs:q2,vis_2_widgets_widgets_tabs_tab_icon:C2,vis_2_widgets_widgets_tabs_tab_icon_color:P2,vis_2_widgets_widgets_tabs_tab_icon_size:D2,vis_2_widgets_widgets_tabs_tab_image:T2,vis_2_widgets_widgets_tabs_tab_overflow_x:M2,vis_2_widgets_widgets_tabs_tab_overflow_y:z2,vis_2_widgets_widgets_tabs_tab_title:I2,vis_2_widgets_widgets_tabs_tab_view:H2,vis_2_widgets_widgets_tabs_variant:A2,vis_2_widgets_widgets_tabs_variant_centered:O2,vis_2_widgets_widgets_tabs_variant_default:L2,vis_2_widgets_widgets_tabs_variant_full_width:W2,vis_2_widgets_widgets_tabs_vertical:R2,welcome_message:N2,"word-spacing":"word-spacing"},F2="Hinzufügen",V2="Administrator",B2="Alle",U2="Aluminium1",Y2="Aluminium2",G2="Anwenden",J2="Attribute",K2="Basic",Z2="Benutzer",X2="Ziegel",Q2="CSS",eq="Abbrechen",tq="Löschen",iq="Klonen",sq="Schließen",nq="Bunt",oq="Kommentar",aq="Kopieren",rq="Erzeugen",lq="Ausschneiden",cq="Standard",dq="Löschen",uq="Geräte",_q="Deaktiviert",gq="Kopieren",hq="Bearbeiten",pq="Elemente",mq="Ermöglicht",fq="Eingeben",wq="Erläuterung",bq="Export",vq="Dateien",yq="Fr",jq="Für alle Projekte",xq="Netz",$q="Gruppe",Sq="Höhe",kq="Ausblenden",qq="Hoch",Cq="Horizontal",Pq="Symbol",Dq="Ignorieren",Tq="Bild",Mq="Importieren",zq="Beispiel",Iq="Sperren",Hq="Nachricht",Aq="Mo",Oq="Ändern",Lq="Mehr",Wq="Name",Rq="Navigation",Nq="Nein",Eq="Normal",Fq="AUS",Vq="AN",Bq="Objekte",Uq="OK",Yq="Öffnen",Gq="Optionen",Jq="Reihenfolge",Kq="Orientierung",Zq="Palette",Xq="Einfügen",Qq="Prozent",eC="Berechtigungen",tC="Priorität",iC="Projekte",sC="Lesen",nC="Redo",oC="Neuladen",aC="Umbenennen",rC="Auflösung",lC="Sa",cC="Speichern",dC="Skripte",uC="Suche",_C="Auswählen",gC="Einstell.",hC="Zeigen",pC="Stil",mC="So",fC="Tabs",wC="Temperatur",bC="Do",vC="Thema",yC="Titel",jC="Di",xC="Typ",$C="Undo",SC="Gruppierung aufheben",kC="Deinstallieren",qC="Freischalten",CC="Aufheben",PC="Aktualisieren",DC="Wert",TC="Vertikal",MC="Seite",zC="Mi",IC="Wochenende",HC="Widget",AC="Widgets",OC="Breite",LC="Schreiben",WC="Schriftsteller",RC="Ja",NC="Widgeteria",EC="Alle",FC="Tooltip bei false",VC="Tooltip bei true",BC="anonymisieren",UC="Für alle",YC="none",GC="Alle verbleibenden",JC="Pfeil",KC="Randfarbe",ZC="Grenzradius",XC="Kreis",QC="Benutzerdefiniertes Polygon",eP="Mehrfachauswahl",tP="Dropdown-Menü",iP="Horizontale Tasten",sP="Vertikale Tasten",nP="Sechseck",oP="Linie",aP="Keine Option „Kein Filter“.",rP="Kein Filter",lP="Etikett „Kein Filter“.",cP="Ecke ausblenden",dP="Achteck",uP="Pentagon",_P="Stift",gP="dauerhaft zuhören",hP="Erkannt",pP="Englisch",mP="Höhe (px)",fP="Aktiv",wP="Inaktiv",bP="Klicken Sie oben auf die Schaltfläche „Zulassen“, um Ihr Mikrofon zu aktivieren.",vP="Die Berechtigung zur Nutzung des Mikrofons ist gesperrt. Um Änderungen vorzunehmen, gehen Sie zu chrome://settings/contentExceptions#media-stream",yP="Die Erlaubnis zur Nutzung des Mikrofons wurde verweigert.",jP='Es wurde kein Mikrofon gefunden. Stellen Sie sicher, dass ein Mikrofon installiert ist und die <a href="//support.google.com/chrome/bin/answer.py?hl=de&answer=1407892">Mikrofoneinstellungen</a> richtig konfiguriert sind.',xP='Es wurde keine Sprache erkannt. Möglicherweise müssen Sie Ihre <a href="//support.google.com/chrome/bin/answer.py?hl=de&answer=1407892">Mikrofoneinstellungen</a> anpassen.',$P="Sprich jetzt.",SP="Klicken Sie auf das Mikrofonsymbol und beginnen Sie zu sprechen.",kP='Die Web Speech API wird von diesem Browser nicht unterstützt. Führen Sie ein Upgrade auf <a href="//www.google.com/chrome">Chrome</a> Version 25 oder höher durch.',qP="Schlüsselwortfarbe",CP="Textfarbe, wenn Schlüsselwort gefunden wird",PP="Schlüsselwörter",DP="Kein Bild",TP="Keine Ergebnisse",MP="Kein Hilfetext",zP="Russisch",IP="Gesendet",HP="einzel",AP="Sprachmodus",OP="Start stop",LP="Gestartet",WP="Text wird in Farbe gesendet",RP="Textfarbe, wenn Text zur Verarbeitung gesendet wird",NP="Breite (px)",EP="Quadrat",FP="Stern",VP="Unteransicht",BP="Dreieck",UP="Block",YP="Farbe",GP="Farbe bei falsch",JP="Farbe bei wahr",KP="Kopie",ZP="Für dieses Projekt",XP="Special",QP="unterschiedlich",eD="Anzeige",tD="biegen",iD="flexibel",sD="Ordner",nD="Gruppe",oD="Name",aD="Typ",rD="Attribute",lD='Sie können in den Attributen des Gruppen-Widgets die speziellen Namen im Format "%yourCustomName%" definieren und sie werden in den "Attribute"-Einstellungen angezeigt. Danach können Sie Name und Typ der benutzerdefinierten Attribute angeben.',cD="Symbol von false",dD="Symbol von true",uD="Sie können die Gruppengröße ändern, indem Sie sie im Dropdown-Widget-Selektor auswählen oder auf diesen Text klicken",_D="Text",gD="Diese CSS werden auf alle Projekte angewendet",hD="Diese CSS werden nur auf dieses Projekt angewendet",pD="ausblenden",mD="horizontal",fD="St",wD="Symbolgröße in Pixel",bD="Sie können Ihr eigenes Symbol mit bis zu 10 KB als Base64 hochladen. Es wird direkt im Projekt gespeichert. Wenn Sie eine SVG-Datei hochladen möchten, vergessen Sie nicht, das Attribut currentColor festzulegen.",vD="Bildhöhe",yD="Bildhöhe",jD="Symbol umkehren",xD="Symbol umkehren",$D="Schließen",SD="Beispiel",kD="Prozente",qD="Aktive Farbe",CD="Vormittags/Nachmittags",PD="Als Datum",DD="Verwendung des vollständig analysierbaren Datums",TD="Als String",MD="Auto",zD="Binäre Steuerung",ID="Veraltet. Verwenden Sie das Widget „Binäre Steuerung“. Wird nur aus Kompatibilitätsgründen mit vis.1 beibehalten",HD="Knopffarbe",AD="Knopf zum Schließen des Dialogs",OD="Veraltet. Verwenden Sie das Widget „Eingabe“. Wird nur aus Kompatibilitätsgründen mit vis.1 beibehalten",LD="Zur URL springen",WD="Zur URL springen (in neuem Fenster)",RD="Veraltet. Verwenden Sie das erste Widget mit der Option „In neuem Fenster öffnen“. Wird nur aus Kompatibilitätsgründen mit vis.1 beibehalten",ND="Veraltet. Verwenden Sie das erste Widget mit der Option „Zur Ansicht gehen“. Wird nur aus Kompatibilitätsgründen mit vis.1 beibehalten",ED="Schaltflächentext",FD="Verwenden Sie den Ansichtsnamen als Titel",VD="Abräumbar",BD="Farbe",UD="Schaltfläche=>Seitendialog",YD="Container-Dialog",GD="Symbol=>Seitendialog",JD="Dialogname",KD="Zustand durch Öffnen des Dialogs setzen",ZD="Zukunft deaktivieren",XD="Vergangenheit deaktivieren",QD="Wochennummer anzeigen",eT="Gleiche Textlängen",tT="Wenn diese Option aktiviert ist, sind die Textlängen für „wahr“ und „falsch“ gleich, sodass das Symbol im „Aus“- und „Ein“-Zustand an derselben Stelle bleibt.",iT="Externer Dialog",sT="Dieser Dialog ist auf der Seite nicht sichtbar, kann aber mit dem externen Befehl „dialogOpen“ mit dem Dialognamen oder der Widget-ID als Parameter geöffnet werden.",nT="FALSCH",oT="Von einem Objekt",aT="Vom statischen Wert",rT="Generieren",lT="Wert",cT="Schaltfläche „Schließen“ ausblenden",dT="Diese URL wird im Browser aufgerufen",uT="HTML",_T="HTML-Dialog",gT="Externer Dialog",hT="HTML bei false",pT="HTML ist nur konfigurierbar, wenn Text und Symbol leer sind",mT="HTML bei true",fT="Symbol",wT="Aktives Symbol",bT="Symboldialog",vT="Aufruf-URL im Backend",yT="Mit Icon erhöhen",jT="Zur URL springen (mit Symbol)",xT="Symbol für Maximum",$T="Boolesche Symbolschaltfläche",ST="Druckknopf",kT="Umschalttaste mit Symbol",qT="Bild",CT="Aktives Bild",PT="Bildhöhe",DT="Bild für Maximum",TT="Inkrementieren/Dekrementieren",MT="Eingabe",zT="Eingabe des Datums",IT="Zeiteingabe",HT="Eingabe mit Taste",AT="Symbol umkehren",OT="Invertiert",LT="jQuery-Stil",WT="Höchster Wert",RT="Minimaler Wert",NT="Titel",ET="Zur Seite gehen",FT="Navigationstaste",VT="Navigationssymbol",BT="Navigation mit Passwort",UT="Nicht gleich breit",YT="Aus",GT="Arbeitsausweis",JT="An",KT="Nur Symbol",ZT="Als Liste",XT="Orientierung",QT="Passwort",eM="Der Benutzer muss ein Passwort eingeben, um den Dialog zu öffnen und zur Seite oder URL zu gelangen",tM="Drück-Modus",iM="Durch Drücken der Taste wird „true“ geschrieben und wenn Sie die Taste loslassen, wird „false“ geschrieben.",sM="Optionsfelder (ein/aus)",nM="Radioliste mit Werten",oM="Optionsfeld (Schritte)",aM="Reichweite",rM="Schreibgeschützt",lM="Wiederholungsverzögerung",cM="Wiederholungsintervall",dM="Wählen Sie alle im Fokus",uM="Beim Fokussieren wird der gesamte Text ausgewählt, sodass er schnell gelöscht oder geändert werden kann, ohne die Rücktaste drücken zu müssen",_M="Aus Liste auswählen",gM="Gestylt",hM="Timeout schreiben",pM="einzel",mM="Schieberegler",fM="Veraltet. Verwenden Sie das Schieberegler-Widget mit vertikaler Ausrichtung. Wird nur aus Kompatibilitätsgründen mit vis.1 beibehalten",wM="Vertikaler Schieberegler",bM="Veraltet. Verwenden Sie das Widget „Zustände steuern“ mit der Option „Erhöhen/Verringern“. Wird nur aus Kompatibilitätsgründen mit vis.1 beibehalten",vM="Zustände steuern",yM="Schrittminute",jM="Testwert",xM="Text",$M="Aktiver Text",SM="Text für Maximum",kM="Umschalten",qM="Tooltip",CM="WAHR",PM="Typ",DM="Einheit",TM="URL per Klick aufrufen",MM="URL im Backend",zM="URL im Browser",IM="Diese URL wird im Hintergrund von der ioBroker-Engine aufgerufen",HM="Wert",AM="Etikett anzeigen",OM="Variante",LM="Navigationsansicht",WM="Breitformat",RM="Titel",NM="Mit Enter-Taste",EM="Veraltet. Verwenden Sie das Widget „Wert schreiben“ mit der Option „Inkrementieren/Dekrementieren“. Wird nur aus Kompatibilitätsgründen mit vis.1 beibehalten",FM="Wert schreiben",VM="Gefüllt",BM="Umgerissen",UM="%s übereinstimmende Ergebnisse",YM="Gerundet",GM="Spitzige",JM="Zweifarbig",KM="Hochladen",ZM="noch nie",XM="kein Neuladen",QM="keiner",ez="normal",tz="Optional",iz="Sie können jedes Element per Drag-and-Drop verschieben oder auf das Element klicken, mit dem das ausgewählte Widget ausgetauscht werden soll",sz="Orientierung",nz="Profil",oz="neu laden",az="Basic",rz="Es wird für spezielle Zwecke verwendet, beispielsweise für die Jaeger-Design-Navigation",lz="Text von false",cz="Text von true",dz="Zeichenfolge",uz="Ausführung",_z="vertikal",gz="Der Größe veränderbar",hz="Rekursive Views können nicht verwendet werden",pz="Seite",mz="View Im Widget",fz="View nicht definiert",wz="Anzeige ausblenden",bz="Schwelle",vz="Swipe",yz="Farbe",jz="Tab",xz="Registerkarten",$z="Anzahl",Sz="Symbol",kz="Farbe",qz="Symbolgröße",Cz="Bild",Pz="Überlauf X",Dz="Überlauf Y",Tz="Titel",Mz="Seite",zz="Variante",Iz="zentriert",Hz="Standard",Az="Gesamtbreite",Oz="Vertikal",Lz="Es existiert noch kein Projekt.",Wz={"%s from %s":"%s von %s","%s widgets":"%s Widgets","(Maximal file size is %s)":"(Maximale Dateigröße ist %s)","-attachment":"-attachment","-clip":"-clip","-color":"-color","-image":"-image","-origin":"-origin","-position":"-position","-repeat":"-repeat","-size":"-size","1 day":"1 Tag","1 hour":"1 Stunde","1 minute":"1 Minute","1 second":"1 Sekunde","10 minutes":"10 Minuten","10 seconds":"10 Sekunden","12 hours":"12 Stunden","15 m.":"15 M.","2 hours":"2 Stunden","2 seconds":"2 Sekunden","20 seconds":"20 Sekunden","3 hours":"3 Stunden","30 m.":"30 M.","30 minutes":"30 Minuten","30 seconds":"30 Sekunden","5 minutes":"5 Minuten","5 seconds":"5 Sekunden","6 hours":"6 Stunden","Activation state":"Aktivierungsstatus","Active widget(s) from %s":"Aktive(s) Widget(s) von %s",Add:F2,"Add folder":"Ordner hinzufügen","Add new child folder":"Neuen untergeordneten Ordner hinzufügen","Add new child profile":"Neues Kinderprofil hinzufügen","Add new or update existing widget":`Neues Widget hinzufügen oder vorhandenes aktualisieren
`,"Add new view":"Neue Seite","Add profile":"Profil hinzufügen","Add project":"Projekt hinzufügen","Add sub-folder":"Unterordner hinzufügen","Add to widgeteria":"Zur Widgeteria hinzufügen","Add view":"Seite hinzufügen",Administrator:V2,"Align height. Press more time to get the desired height.":"Höhe ausrichten. Länger drücken, um die gewünschte Höhe zu erhalten.","Align horizontal/center":"Horizontal/mittig ausrichten","Align horizontal/equal":"Horizontal/gleich ausrichten","Align horizontal/left":"Horizontal/links ausrichten","Align horizontal/right":"Horizontal/rechts ausrichten","Align vertical/bottom":"Vertikal/unten ausrichten","Align vertical/center":"Senkrecht/mittig ausrichten","Align vertical/equal":"Senkrecht/gleich ausrichten","Align vertical/top":"Senkrecht/oben ausrichten","Align width. Press more time to get the desired width.":"Breite ausrichten. Länger drücken, um die gewünschte Breite zu erhalten.",All:B2,Aluminium1:U2,Aluminium2:Y2,"App bar":"Anwendungsleiste",Apply:G2,"Apply ALL navigation properties to all views":"ALLE Navigationseigenschaften auf alle Ansichten anwenden","Apply to all views":"Diese Eigenschaft auf alle Ansichten anwenden wo Navigation aktiviert ist","Are you sure":"Bist du dir sicher","Are you sure to delete widgets %s?":"Die Widgets %s wirklich löschen?",Attributes:J2,"Available for all":"Projekt für alle Benutzer zugänglich","Background class":"Hintergrundklasse","Background color":"Hintergrundfarbe","Background color if selected":"Hintergrundfarbe, falls ausgewählt","Bar color":"Hintergrundfarbe","Bar icon":"Symbol","Bar image":"Bild","Bar text":"Untertitel",Basic:K2,Benutzer:Z2,"Blue flowers":"Blaue Blumen","Blue marine":"Blaue Marine","Blue marine lines":"Blaue Marinelinien","Blueprint grid":"Planraster","Body overflow":"Body overflow",Bricks:X2,"Bring to front":"Nach vorne bringen","Browse files":"Dateien durchsuchen","Browse objects":"Objekte durchsuchen","Browse the widgeteria":"Die Widgeteria durchsuchen ","Browser instance ID":"Browserinstanz-ID","Browser tab favicon":"Favicon der Browser-Registerkarte","Browser tab title":"Titel der Browser-Registerkarte","By horizontal menu do not show text if icon provided":"Bei horizontalem Menü wird kein Text angezeigt, wenn ein Symbol vorhanden ist",CSS:Q2,"CSS Class":"CSS-Klasse","CSS Common":"CSS allgemein","CSS Font & Text":"CSS-Schriftart und -Text","CSS background (background-...)":"CSS-Hintergrund (background-...)",Cancel:eq,"Cannot use recursive views":"Rekursive Seiten können nicht verwendet werden","Carbon fibre":"Kohlenstoff-Faser","Carbon fibre1":"Kohlefaser1","Chevron icon color":"Farbe der Show-Schaltfläche",Clear:tq,"Clear filter":"Filter löschen","Click to close":"Zum Schließen klicken",Clone:iq,"Clone widget":"Widget klonen",Close:sq,"Close all":"Alles ausblenden","Close all but current view":"Alle außer der aktuellen Ansicht schließen","Close editor":"Editor schließen","Collapse all":"Alles zusammenklappen",Colorful:nq,"Column gap":"Spaltenlücke","Column width":"Spaltenbreite",Comment:oq,"Convert %s to %s":"%s in %s konvertieren","Copied %s":"%s kopiert","Copied to clipboard":"In die Zwischenablage kopiert",Copy:aq,"Copy noun":"Kopie","Copy to clipboard":"In die Zwischenablage kopieren",'Copy view "%s"':'Seite "%s" kopieren',Create:rq,"Create copy":"Kopie erstellen","Create instance":"Instanz erstellen","Create new project":"Neues Projekt erstellen",'Create or import new "vis-2" project':'Ein neues "vis-2"-Projekt erstellen oder importieren ',"Current project":"Aktuelles Projekt",Cut:lq,"Dark reconnect screen":"Dunkler Bildschirm zum erneuten Verbinden","Deactivate binding and use field as standard input":"Bindung deaktivieren und Feld als Standardeingabe verwenden",Default:cq,"Default view":"Standardansicht","Default: auto":"Standard: „auto“",Delete:dq,"Delete actual view":"Aktuelle Seite löschen","Delete widgets":"Widgets löschen","Destroy inactive view":"Inaktive Seite zerstören","Detected new version of vis files. Reloading in 2 seconds...":"Neue Version von vis-Dateien erkannt. Neuladen in 2 Sekunden...",Devices:uq,Disabled:_q,"Do not ask again":"Frag nicht nochmal","Do not hide menu":"Menü nicht komplett ausblenden","Do you want to create first demo project?":"Ein erstes Demo-Projekt erstellen?",'Do you want to delete folder "%s"':"Möchten Sie den Ordner „%s“ löschen?",'Do you want to delete project "%s"?':"Möchten Sie das Projekt „%s“ löschen?",'Do you want to delete view "%s"?':"Die Seite „%s“ löschen?",'Do you want to include "%s" widget into "%s"?':"Möchten Sie das Widget „%s“ in „%s“ einbinden?","Drag me":"Zieh mich","Drop the files here ...":"Legen Sie die Dateien hier ab ...",Duplicate:gq,"Duplicate folder":"Ordner kopieren","Duplicate profile":"Profil kopieren",Edit:hq,"Edit binding":"Bindung bearbeiten","Edit folder":"Ordner bearbeiten","Edit group":"Gruppe bearbeiten","Edit profile":"Profil bearbeiten",Elements:pq,Enabled:mq,Enter:fq,"Enter password":"Passwort eingeben","Enter the browser instances divided by comma":"Geben Sie die Browserinstanzen durch Komma getrennt ein","Expand all":"Alle ausklappen",Explanation:wq,Export:bq,'Export "%s"':'Export "%s"',"Export widgets":"Widgets exportieren","External dialog":"Externer Dialog","Fields of group will be cleaned":"Gruppenfelder werden gereinigt","File too large":"Datei zu groß",Files:vq,"Filter widgets":"Widgets filtern","Fm dark background":"Fm dunkler Hintergrund","Fm light background":"FM heller Hintergrund","Following views will be changed":"Folgende Ansichten werden geändert","For widgets with relative position":"Für Widgets mit relativer Position",Fr:yq,"Full HD - Landscape":"Full HD - Querformat","Full HD - Portrait":"Full-HD – Hochformat","Full panel":"Vollständige Platte","Galaxy Fold - Landscape":"Galaxy Fold - Landschaft","Galaxy Fold - Portrait":"Galaxy Fold - Hochformat",Global:jq,"Gradient box":"Verlaufsbox","Gray 0":"Grau 0","Gray 1":"Grau 1",Grid:xq,Group:$q,"Group view css background":"Gruppenansicht CSS-Hintergrund","Group widgets":"Gruppieren","H gradient black 0":"H-Farbverlauf schwarz 0","H gradient black 1":"H-Farbverlauf schwarz 1","H gradient black 2":"H-Farbverlauf schwarz 2","H gradient black 3":"H Farbverlauf schwarz 3","H gradient black 4":"H-Farbverlauf schwarz 4","H gradient black 5":"H Farbverlauf schwarz 5","H gradient blue 0":"H-Farbverlauf blau 0","H gradient blue 1":"H-Farbverlauf blau 1","H gradient blue 2":"H-Farbverlauf blau 2","H gradient blue 3":"H-Farbverlauf blau 3","H gradient blue 4":"H-Farbverlauf blau 4","H gradient blue 5":"H-Farbverlauf blau 5","H gradient blue 6":"H-Farbverlauf blau 6","H gradient blue 7":"H-Farbverlauf blau 7","H gradient gray 0":"H Gradient Grau 0","H gradient gray 1":"H Farbverlauf Grau 1","H gradient gray 2":"H Farbverlauf Grau 2","H gradient gray 3":"H Farbverlauf grau 3","H gradient gray 4":"H Farbverlauf grau 4","H gradient gray 5":"H Farbverlauf grau 5","H gradient gray 6":"H Farbverlauf grau 6","H gradient green 0":"H-Gradienten grün 0","H gradient green 1":"H-Gradienten grün 1","H gradient green 2":"H-Farbverlauf grün 2","H gradient green 3":"H-Farbverlauf grün 3","H gradient green 4":"H-Gradientengrün 4","H gradient orange 0":"H-Farbverlauf orange 0","H gradient orange 1":"H-Farbverlauf orange 1","H gradient orange 2":"H-Verlauf orange 2","H gradient orange 3":"H-Farbverlauf orange 3","H gradient yellow 0":"H Gradient gelb 0","H gradient yellow 1":"H-Farbverlauf gelb 1","H gradient yellow 2":"H-Farbverlauf gelb 2","H gradient yellow 3":"H-Farbverlauf gelb 3","HD - Landscape":"HD - Landschaft","HD - Portrait":"HD - Hochformat",Height:Sq,Hide:kq,"Hide after selection":"Nach Auswahl ausblenden","Hide all views":"Alle Seiten ausblenden","Hide attributes":"Attribute ausblenden","Hide menu":"Menü ausblenden","Hide palette":"Palette ausblenden","Hide panel names":"Bedienfeldnamen ausblenden","Hide selected widgets":"Ausgewählte Widgets ausblenden",High:qq,"High priority":"Hohe Priorität","Highest eg. Holiday":"Höchste zB. Urlaub",Horizontal:Cq,Icon:Pq,"If user not in group":"Wenn der Benutzer nicht in der Gruppe ist",Ignore:Dq,"Ignored in edit mode":"Im Bearbeitungsmodus ignoriert",Image:Tq,Import:Mq,"Import project":"Projekt importieren","Import widgets":"Widgets importieren","Include widget?":"Widget einbinden?","Initial filter":"Anfangsfilter",Instance:zq,"Invalid file type":"ungültiger Dateityp","Jump to widget by double click":"Springen Sie zum Widget, indem Sie auf das Widget doppelklicken","Just use without modification":"Einfach ohne Modifikation verwenden","Keep on old place":"Am alten Ort lassen","Limit background color":"Hintergrundfarbe","Limit border color":"Randfarbe","Limit border style":"Grenzstil","Limit border width":"Rahmenbreite","Limit only for instances":"Begrenzen nur für Instanzen","Limit screen":"Bildschirm begrenzen","Lined paper":"Liniertes Papier","Load project file...":"Projektdatei wird geladen...","Load widgets...":"Widgets werden geladen...","Loading objects...":"Objekte werden geladen...",Lock:Iq,"Lock dragging":"Ziehen sperren","Manage projects":"Projekte","Manage views":"Seiten","Menu header text":"Kopfzeilentext des Menüs","Menu header text color":"Textfarbe des Kopfzeilentexts","Menu width":"Menübreite",Message:Hq,Mo:Aq,Modify:Oq,More:Lq,"Move down":"Nach unten schieben","Move to new place":"An einen neuen Ort ziehen","Move up":"Nach oben schieben","Move widget down or press longer to open re-order menu":"Sas Widget nach unten bewegen oder länger drücken, um das Sortierungsmenü zu öffnen","Move widget up or press longer to open re-order menu":"Das Widget nach oben bewegen oder länger drücken, um das Sortierungsmenü zu öffnen",Name:Wq,"Name is not unique":"Name ist nicht eindeutig","Name of copy":"Name der Kopie","Narrow panel":"Schmale Platte",Navigation:Rq,"Nest Hub - Landscape":"Nest Hub – Querformat","Nest Hub - Portrait":"Nest Hub – Hochformat","Nest Hub Max - Landscape":"Nest Hub Max – Querformat","Nest Hub Max - Portrait":"Nest Hub Max – Hochformat","New name":"Neuer Name","New view":"Neue Seite",No:Nq,"No background":"Kein Hintergrund",Normal:Eq,OFF:Fq,ON:Vq,Objects:Bq,Ok:Uq,"On/Off":"An aus","One parameter":"Ein Parameter","Only for desktop":"Nur für Desktop","Only for groups":"Nur für Gruppen","Only the admin user can change permissions":"Nur der Admin-Benutzer kann Berechtigungen ändern",Open:Yq,"Open all":"Alle ausklappen","Open it?":"Öffnen es?","Open runtime in new window":"Runtime in neuem Fenster öffnen","Open widgeteria":"Widgeteria öffnen",Options:Gq,Order:Jq,Orientation:Kq,Palette:Zq,Paste:Xq,Percent:Qq,Permissions:eC,"Pixel 5 - Landscape":"Pixel 5 – Querformat","Pixel 5 - Portrait":"Pixel 5 – Hochformat",Priority:tC,'Project "%s" does not exist':"Projekt „%s“ existiert nicht",'Project "%s" was successfully imported':"Projekt „%s“ wurde erfolgreich importiert","Project already exists":"Projekt existiert bereits","Project name":"Projektname","Project settings":"Projekteinstellungen","Project was updated":"Projekt wurde aktualisiert","Project was updated by another browser instance. Do you want to reload it?":"Das Projekt wurde von einer anderen Browserinstanz aktualisiert. Möchten Sie es neu laden?",Projects:iC,"Radial blue":"Strahlend blau",Read:sC,"Read = Runtime access":"Lesen = Laufzeitzugriff","Read about currentColor in SVG":"Lesen Sie mehr über currentColor in SVG","Rebuild HTML pages":"HTML-Seiten neu erstellen","Rebuild of HTML pages was started":"Der Neuaufbau der HTML-Seiten wurde gestartet","Received user command: %s":"Benutzerbefehl erhalten: %s","Reconnect interval":"Wiederverbindungsintervall",Redo:nC,"Reload all browsers if project changed":"Bei Projektänderung alle Browser neu laden","Reload all runtimes":"Alle Browser mit vis neuladen","Reload if sleep longer than":"Browser erneut laden, falls Ruhemodus länger aktiv war als","Reload now":"Jetzt neu laden",Reloading:oC,Rename:aC,'Rename folder "%s"':'Ordner "%s" umbenennen','Rename project "%s"':"Projekt „%s“ umbenennen","Rename view":"Seite umbenennen",'Rename view "%s"':"Seite „%s“ umbenennen","Render always":"Immer rendern","Reset all intervals to following value:":"Alle Intervalle auf folgenden Wert zurücksetzen:",Resolution:rC,"Responsive settings":"Responsive Einstellungen","Row gap":"Reihenlücke",Sa:lC,"Samsung Galaxy A51/71 - Landscape":"Samsung Galaxy A51/71 - Querformat","Samsung Galaxy A51/71 - Portrait":"Samsung Galaxy A51/71 - Hochformat","Samsung Galaxy S20 Ultra - Landscape":"Samsung Galaxy S20 Ultra - Querformat","Samsung Galaxy S20 Ultra - Portrait":"Samsung Galaxy S20 Ultra - Hochformat","Samsung Galaxy S8+ - Landscape":"Samsung Galaxy S8+ - Querformat","Samsung Galaxy S8+ - Portrait":"Samsung Galaxy S8+ - Hochformat",Save:cC,Scripts:dC,Search:uC,Select:_C,"Select all":"Alle selektieren","Select object ID":"Die Objekt-ID auswählen ","Select or create profile in left menu":"Ein Profil im linken Menü wählen oder erstellen","Select project":"Projekt auswählen","Select vis-2 project":"Das Projekt „vis-2“ wählen","Send to back":"Nach hinten schicken","Sent to back":"Nach hinten geschickt",Set:"Setzen","Set all periods to one value":"Alle Zeiträume auf einen Wert setzen","Set widgets filter for edit mode":"Widgets (mit Filterschlüssel) im Bearbeitungsmodus ausblenden",Settings:gC,"Should it be moved to new place?":"Sollte es an einen neuen Ort verlegt werden?",Show:hC,"Show all views":"Alle Seiten anzeigen","Show app bar":"Anzeigen","Show background of button":"Hintergrund der Show-Schaltfläche","Show navigation":"Navigation anzeigen","Show only selected widgets":"Nur ausgewählte Widgets anzeigen","Show only toolbar on the top and hide menu itself":"Nur die Symbolleiste am oberen Rand anzeigen und das Menü selbst ausblenden","Show palette":"Palette anzeigen","Show this attribute by all views":"Dieses Attribut in allen Ansichten anzeigen","Show view":"Seite zeigen","Specify filter to see more icons":"EinenFilter angeben, um weitere Symbole anzuzeigen","States Debounce Time (millis)":"Zustands-Entprellzeit (Millisekunden)",Style:pC,"Style of menu button only when the menu is hidden":"Stil der Menütaste nur, wenn das Menü ausgeblendet ist",Su:mC,"Surface Duo - Landscape":"Surface Duo - Landschaft","Surface Duo - Portrait":"Surface Duo – Hochformat","Surface Pro 7 - Landscape":"Surface Pro 7 – Querformat","Surface Pro 7 - Portrait":"Surface Pro 7 – Hochformat","Switch to group edit mode by double click":"Wechseln Sie in den Gruppenbearbeitungsmodus, indem Sie auf das Widget doppelklicken",Tabs:fC,Temperature:wC,"Text color":"Textfarbe","Text color if selected":"Textfarbe, falls ausgewählt","Text edit":"Text bearbeiten",Th:bC,Theme:vC,"This view will be shown only to defined groups":"Diese Seite wird nur definierten Gruppen angezeigt",'This widget is already used in "%s"':"Dieses Widget wird bereits in „%s“ verwendet",Title:yC,"To use it, define by some widget the filter key":"Um es zu verwenden, definieren Sie über ein Widget den Filterschlüssel","Toggle runtime":"Runtime umschalten","Toggle widget hint (dark)":"Widget-Hinweis umschalten (dunkel)","Toggle widget hint (hide)":"Widget-Hinweis umschalten (ausblenden)","Toggle widget hint (light)":"Widget-Hinweis umschalten (hell)",Tu:jC,Type:xC,Undo:$C,Ungroup:SC,Uninstall:kC,'Unknown widget type "%s"':"Unbekannter Widget-Typ „%s“",Unlock:qC,Unselect:CC,Update:PC,"Usage of widget %s":"Verwendung des Widgets %s","Use background":"Hintergrund verwenden","Use field as binding":"Feld als Bindung verwenden","User defined":"Benutzerdefinierten",Value:DC,Vertical:TC,View:MC,"View not defined":"Seite nicht definiert",We:zC,Weekend:IC,Widget:HC,"Widget CSS":"Widget-CSS","Widget JS":"Widget JS","Widget was deleted in widgeteria":"Das Widget wurde in der Widgeteria gelöscht",Widgets:AC,Width:OC,"Width x height (px)":"Breite x Höhe (px)",Write:LC,"Write = Edit mode access":"Schreiben = Zugriff auf den Bearbeitungsmodus",Writer:WC,"Wrong password":"Falsches Passwort",Yes:RC,"You can open dialog with following script:":"Sie können den Dialog mit dem folgenden Skript öffnen:","You can provide here the state that controls the activation of this profile":"Sie können hier den Status angeben, der die Aktivierung dieses Profils steuert",__marketplace:NC,ace_All:EC,"ace_CaseSensitive Search":"Suche nach Groß- und Kleinschreibung","ace_RegExp Search":"RegExp-Suche","ace_Search In Selection":"In Auswahl suchen","ace_Search for":"Suchen nach","ace_Toggle Replace mode":"Ersetzungsmodus wechseln ","ace_Whole Word Search":"Suche nach ganzen Wörtern",alt_false:FC,alt_true:VC,anonymize:BC,apply_to_all:UC,attr_none:YC,basic_all_filters:GC,basic_arrow:JC,basic_borderColor:KC,basic_borderRadius:ZC,basic_circle:XC,basic_custom:QC,basic_filter_multiple:eP,basic_filter_type_dropdown:tP,basic_filter_type_horizontal_buttons:iP,basic_filter_type_vertical_buttons:sP,basic_hexagone:nP,basic_line:oP,basic_no_all_option:aP,basic_no_filter:rP,basic_no_filter_text:lP,basic_node_hide_corner:cP,basic_octagone:dP,basic_pentagone:uP,basic_pin:_P,basic_speech2text_continuous:gP,basic_speech2text_detected:hP,basic_speech2text_en_us:pP,basic_speech2text_height:mP,basic_speech2text_image_active:fP,basic_speech2text_image_inactive:wP,basic_speech2text_info_allow:bP,basic_speech2text_info_blocked:vP,basic_speech2text_info_denied:yP,basic_speech2text_info_no_microphone:jP,basic_speech2text_info_no_speech:xP,basic_speech2text_info_speak_now:$P,basic_speech2text_info_start:SP,basic_speech2text_info_upgrade:kP,basic_speech2text_key_word_color:qP,basic_speech2text_key_word_color_tooltip:CP,basic_speech2text_keywords:PP,basic_speech2text_no_image:DP,basic_speech2text_no_results:TP,basic_speech2text_no_text:MP,basic_speech2text_ru_ru:zP,basic_speech2text_sent:IP,basic_speech2text_single:HP,basic_speech2text_speech_mode:AP,basic_speech2text_start_stop:OP,basic_speech2text_started:LP,basic_speech2text_text_sent_color:WP,basic_speech2text_text_sent_color_tooltip:RP,basic_speech2text_width:NP,basic_square:EP,basic_star:FP,basic_sub_view:VP,basic_triangle:BP,block:UP,color:YP,color_false:GP,color_true:JP,"convert from widgeteria widget":"Konvertieren aus dem Widgeteria-Widget",copy:KP,css_project:ZP,custom_icons:XP,different:QP,display:eD,"finish searching":"Suche beendet",flex:tD,flexible:iD,folder:sD,"font-family":"Schriftfamilie","font-size":"Schriftgröße","font-style":"Schriftstil","font-variant":"Schriftart-Variante","font-weight":"Schriftstärke",group:nD,group_attrName:oD,group_attrType:aD,group_fields:rD,group_help:lD,group_icon_false:cD,group_icon_true:dD,group_size_hint:uD,group_text:_D,help_css_global:gD,help_css_project:hD,hide:pD,"hide code":"Code verstecken",horizontal:mD,hr:fD,"iPad Air - Landscape":"iPad Air - Querformat","iPad Air - Portrait":"iPad Air – Hochformat","iPad Mini - Landscape":"iPad Mini - Querformat","iPad Mini - Portrait":"iPad Mini - Hochformat","iPad Pro - Landscape":"iPad Pro - Querformat","iPad Pro - Portrait":"iPad Pro - Hochformat","iPhone 12 Pro - Landscape":"iPhone 12 Pro - Querformat","iPhone 12 Pro - Portrait":"iPhone 12 Pro - Hochformat","iPhone SE - Landscape":"iPhone SE - Querformat","iPhone SE - Portrait":"iPhone SE - Hochformat","iPhone XR - Landscape":"iPhone XR - Querformat","iPhone XR - Portrait":"iPhone XR - Hochformat",icon_size_in_pixels:wD,icon_upload_hint:bD,imageHeight_false:vD,imageHeight_true:yD,invert_icon_false:jD,invert_icon_true:xD,"jqui_Add new value":"Fügen Sie neuen Wert hinzu","jqui_Are you sure?":"Bist du sicher?","jqui_Bulk edit":"Bulk-Bearbeitung",jqui_Close:$D,jqui_Example:SD,"jqui_Generate states":"Zustände generieren","jqui_Generate steps":"Schritte generieren","jqui_Maximum value":"Höchster Wert","jqui_Minimum value":"Mindestwert","jqui_Number settings":"Nummerneinstellungen",jqui_Percents:kD,"jqui_Replace to":"Ersetzen mit","jqui_Select file":"Bild auswählen","jqui_Write state":"Schreibstatus",jqui_active_color:qD,jqui_ampm:CD,jqui_asDate:PD,jqui_asFullDate:DD,jqui_as_string:TD,jqui_auto:MD,jqui_binary_control:zD,jqui_button_binary_control_note:ID,jqui_button_color:HD,jqui_button_dialog_close:AD,jqui_button_input_note:OD,jqui_button_link:LD,jqui_button_link_blank:WD,jqui_button_link_blank_note:RD,jqui_button_nav_blank_note:ND,jqui_button_text:ED,jqui_buttontext_view:FD,jqui_clearable:VD,jqui_color:BD,jqui_container_button_dialog:UD,jqui_container_dialog:YD,jqui_container_icon_dialog:GD,jqui_dialog_name:JD,jqui_dialog_set_id_tooltip:KD,jqui_disableFuture:ZD,jqui_disablePast:XD,jqui_displayWeekNumber:QD,jqui_equal_text_length:eT,jqui_equal_text_length_tooltip:tT,jqui_external_dialog:iT,jqui_external_dialog_tooltip:sT,jqui_false:nT,jqui_from_oid:oT,jqui_from_value:aT,jqui_generate:rT,jqui_group_value:lT,jqui_hide_close_button:cT,jqui_href_tooltip:dT,jqui_html:uT,jqui_html_dialog:_T,jqui_html_external_dialog:gT,jqui_html_false:hT,jqui_html_tooltip:pT,jqui_html_true:mT,jqui_icon:fT,jqui_icon_active:wT,jqui_icon_dialog:bT,jqui_icon_http_get:vT,jqui_icon_increment:yT,jqui_icon_link:jT,jqui_icon_max:xT,jqui_icon_state_bool:$T,jqui_icon_state_push_button:ST,jqui_icon_toggle:kT,jqui_image:qT,jqui_image_active:CT,jqui_image_height:PT,jqui_image_max:DT,jqui_increment_decrement:TT,jqui_input:MT,jqui_input_date:zT,jqui_input_time:IT,jqui_input_with_button:HT,jqui_invert_icon:AT,jqui_inverted:OT,jqui_jquery_style:LT,jqui_max:WT,jqui_min:RT,jqui_name:NT,jqui_nav_view:ET,jqui_navigation_button:FT,jqui_navigation_icon:VT,jqui_navigation_password:BT,jqui_not_equal_length:UT,jqui_off:YT,jqui_oid_working:GT,jqui_on:JT,jqui_only_icon:KT,jqui_open:ZT,jqui_orientation:XT,jqui_password:QT,jqui_password_tooltip:eM,jqui_push_mode:tM,jqui_push_mode_tooltip:iM,jqui_radio_buttons_on_off:sM,jqui_radio_list:nM,jqui_radio_steps:oM,jqui_range:aM,jqui_read_only:rM,jqui_repeat_delay:lM,jqui_repeat_interval:cM,jqui_select_all_on_focus:dM,jqui_select_all_on_focus_tooltip:uM,jqui_select_list:_M,jqui_set_label:gM,jqui_set_timeout:hM,jqui_single:pM,jqui_slider:mM,jqui_slider_note:fM,jqui_slider_vertical:wM,jqui_state_note:bM,jqui_states_control:vM,jqui_stepMinute:yM,jqui_test:jM,jqui_text:xM,jqui_text_active:$M,jqui_text_max:SM,jqui_toggle:kM,jqui_tooltip:qM,jqui_true:CM,jqui_type:PM,jqui_unit:DM,jqui_url_group:TM,jqui_url_in_background:MM,jqui_url_in_browser:zM,jqui_url_tooltip:IM,jqui_value:HM,jqui_value_label_display:AM,jqui_variant:OM,jqui_view_group:LM,jqui_wideFormat:WM,jqui_widgetTitle:RM,jqui_with_enter_button:NM,jqui_write_state_note:EM,jqui_write_value:FM,"letter-spacing":"Buchstaben-Abstand","line-height":"Zeilenhöhe",material_icons_baseline:VM,"material_icons_knx-uf":"knx-uf",material_icons_outline:BM,material_icons_result:UM,material_icons_round:YM,material_icons_sharp:GM,material_icons_twotone:JM,material_icons_upload:KM,"multi-views":"Zeige in Views",never:ZM,no_reload:XM,none:QM,normal:ez,"not defined":"nicht definiert","not-specified":"nicht definiert",optional:tz,order_help:iz,orientation:sz,profile:nz,"qui_Bool SVG":"Boolesches SVG",reload:oz,"search text":"Suchtext",set_basic:az,"signals-color":"Farbe","signals-count":"Anzahl der Signale","signals-smallIcon-0":"Kleines Symbol [0]","signals-smallIcon-1":"Kleines Symbol [1]","signals-smallIcon-2":"Kleines Symbol [3]","signals-text":"Text oder Vorlage","signals-text-0":"Text [0]","signals-text-1":"Text [1]","signals-text-2":"Text [2]","signals-text-tooltip":"Sie können %s verwenden, um den aktuellen Wert im Text anzuzeigen",sub_view_tooltip:rz,"text-shadow":"Text-Schatten",text_false:lz,text_true:cz,"to version":"zur Version",value_string:dz,version:uz,vertical:_z,"vis-2-widgets-basic-autoSetDelay":"Verzögerung für automatisches Schreiben","vis-2-widgets-basic-input_value":"Eingegebener Wert","vis-2-widgets-basic-noStyle":"Kein Style",visResizable:gz,vis_2_widgets_basic_cannot_recursive:hz,vis_2_widgets_basic_contains_view:pz,vis_2_widgets_basic_view_in_widget:mz,vis_2_widgets_basic_view_not_defined:fz,vis_2_widgets_swipe_hide_indication_label:wz,vis_2_widgets_swipe_threshold_label:bz,vis_2_widgets_widgets_swipe_label:vz,vis_2_widgets_widgets_tabs_color:yz,vis_2_widgets_widgets_tabs_group_tab:jz,vis_2_widgets_widgets_tabs_label:xz,vis_2_widgets_widgets_tabs_show_tabs:$z,vis_2_widgets_widgets_tabs_tab_icon:Sz,vis_2_widgets_widgets_tabs_tab_icon_color:kz,vis_2_widgets_widgets_tabs_tab_icon_size:qz,vis_2_widgets_widgets_tabs_tab_image:Cz,vis_2_widgets_widgets_tabs_tab_overflow_x:Pz,vis_2_widgets_widgets_tabs_tab_overflow_y:Dz,vis_2_widgets_widgets_tabs_tab_title:Tz,vis_2_widgets_widgets_tabs_tab_view:Mz,vis_2_widgets_widgets_tabs_variant:zz,vis_2_widgets_widgets_tabs_variant_centered:Iz,vis_2_widgets_widgets_tabs_variant_default:Hz,vis_2_widgets_widgets_tabs_variant_full_width:Az,vis_2_widgets_widgets_tabs_vertical:Oz,welcome_message:Lz,"word-spacing":"Wortabstand"},Rz="Добавить",Nz="Администратор",Ez="Все",Fz="Алюминий1",Vz="Алюминий2",Bz="Применить",Uz="Свойства",Yz="Базовые",Gz="Бенютцер",Jz="Кирпичи",Kz="CSS",Zz="Отмена",Xz="чистый",Qz="Клонировать",eI="Закрыть",tI="Красочный",iI="Комментарий",sI="Копировать",nI="Создать",oI="Вырезать",aI="По умолчанию",rI="Удалить",lI="Устройства",cI="Деактивировано",dI="Копировать",uI="Редактировать",_I="Элементы",gI="Включено",hI="Применить",pI="Объяснение",mI="Экспорт",fI="Файлы",wI="Пт",bI="Для всех проектов",vI="Сетка",yI="Группа",jI="Высота",xI="Скрывать",$I="Высокий",SI="Горизонтальный",kI="Значок",qI="Игнорировать",CI="Изображение",PI="Импорт",DI="Пример",TI="Замок",MI="Сообщение",zI="Пн",II="Буду изменить",HI="Более",AI="Имя",OI="Навигация",LI="Нет",WI="Обычный",RI="ВЫКЛ",NI="ВКЛ",EI="Объекты",FI="Ok",VI="Открыть",BI="Опции",UI="Заказ",YI="Ориентация",GI="Палитра",JI="Вставить",KI="Процентов",ZI="Разрешения",XI="Приоритет",QI="Проекты",eH="Читать",tH="Повторить",iH="Перезагрузка",sH="Переименовать",nH="Разрешение",oH="Сб",aH="Сохранять",rH="Скрипты",lH="Поиск",cH="Выбрать",dH="Настр.",uH="Показывать",_H="Стиль",gH="Вс",hH="Вкладки",pH="Температура",mH="Чт",fH="Тема",wH="Заголовок",bH="Вт",vH="Тип",yH="Отмена",jH="Разгруппировать",xH="Удалить",$H="Разблокировать",SH="Отменить выбор",kH="Обновить",qH="Значение",CH="Вертикальный",PH="Страница",DH="Ср",TH="выходные",MH="Виджет",zH="Виджеты",IH="Ширина",HH="Писать",AH="Писатель",OH="Да",LH="Виджетерия",WH="Все",RH="Подсказка при false",NH="Подсказка при true",EH="анонимизировать",FH="Для всех",VH="none",BH="Добавить все, что осталось",UH="Стрелка",YH="Цвет границы",GH="Радиус границы",JH="Круг",KH="Произвольный полигон",ZH="Множественный выбор",XH="Выпадающее меню",QH="Горизонтальные кнопки",eA="Вертикальные кнопки",tA="шестиугольник",iA="Линия",sA="Нет опции «Без фильтра»",nA="Нет фильтра",oA="Ярлык «Без фильтра»",aA="Скрыть угол",rA="Октагон",lA="Пентагон",cA="Приколоть",dA="непрерывный",uA="Обнаружено",_A="английский",gA="Высота (пикселей)",hA="Активный",pA="Неактивный",mA="Нажмите кнопку «Разрешить» выше, чтобы включить микрофон.",fA="Разрешение на использование микрофона заблокировано. Чтобы изменить, перейдите по адресу chrome://settings/contentExceptions#media-stream.",wA="В разрешении на использование микрофона было отказано.",bA='Микрофон не найден. Убедитесь, что микрофон установлен и что <a href="//support.google.com/chrome/bin/answer.py?hl=en&answer=1407892"> настройки микрофона</a> настроены правильно.',vA='Речь не обнаружена. Возможно, вам потребуется изменить <a href="//support.google.com/chrome/bin/answer.py?hl=en&answer=1407892">настройки микрофона</a>.',yA="Говорите сейчас.",jA="Нажмите на значок микрофона и начните говорить.",xA='API веб-речи не поддерживается этим браузером. Обновите <a href="//www.google.com/chrome">Chrome</a> до версии 25 или более поздней.',$A="Ключевое слово цвет",SA="Цвет текста, если найдено ключевое слово",kA="Ключевые слова",qA="Нет изображения",CA="Без результатов",PA="Нет текста справки",DA="русский",TA="Отправил",MA="одинокий",zA="Речевой режим",IA="старт/стоп",HA="Начал",AA="Цвет отправленного текста",OA="Цвет текста, когда текст отправляется на обработку",LA="Ширина (пикселей)",WA="Квадрат",RA="Звезда",NA="Подстраница",EA="Треугольник",FA="блокировать",VA="цвет",BA="Цвет по ложному",UA="Цвет по истине",YA="Копия",GA="Для этого проекта",JA="Спец.",KA="разные",ZA="отображать",XA="сгибаться",QA="гибкий",eO="Папка",tO="Группа",iO="Имя",sO="Тип",nO="Атрибуты",oO='Вы можете определить в атрибутах виджета группы специальные имена в формате "%yourCustomName%" и они появятся в настройках "Атрибуты". После этого вы можете указать имя и тип пользовательских атрибутов.',aO="Иконка при false",rO="Иконка при true",lO="Вы можете изменить размер группы, выбрав его в раскрывающемся селекторе виджетов или щелкнув этот текст.",cO="Текст",dO="Эти CSS применяются ко всем проектам",uO="Эти CSS применяются только к этому проекту",_O="Спрятать",gO="горизонтально",hO="ч.",pO="Размер значка в пикселях",mO="Вы можете загрузить свой собственный значок размером до 10 КБ в формате base64. Он будет сохранен непосредственно в проекте. Если вы хотите загрузить SVG-файл, не забудьте установить атрибут currentColor.",fO="Высота изображения",wO="Высота изображения",bO="Инвертировать значок",vO="Инвертировать значок",yO="Закрыть",jO="Пример",xO="Проценты",$O="Активный цвет",SO="До полудня после полудня",kO="Как дата",qO="Использование полной анализируемой даты",CO="Как строка",PO="авто",DO="Двоичное управление",TO="Устарело. Используйте виджет «Двоичное управление». Сохранено только для совместимости с vis.1.",MO="Цвет кнопки",zO="Кнопка закрытия диалога",IO="Устарело. Используйте виджет «Ввод». Сохранено только для совместимости с vis.1.",HO="Перейти к URL-адресу",AO="Перейти к URL (в новом окне)",OO="Устарело. Используйте первый виджет с опцией «Открыть в новом окне». Сохранено только для совместимости с vis.1",LO="Устарело. Используйте первый виджет с опцией «Перейти к просмотру». Сохранено только для совместимости с vis.1.",WO="Текст кнопки",RO="Использовать имя представления в качестве заголовка",NO="Очищаемый",EO="Цвет",FO="Кнопка=>Диалог страницы",VO="Диалог контейнера",BO="Значок=>Диалоговое окно страницы",UO="Имя диалога",YO="Установить состояние при открытии диалога",GO="Отключить будущее",JO="Отключить прошлое",KO="Отображение номера недели",ZO="Одинаковая длина текста",XO="Если эта опция активирована, длина текстов для true и false будет одинаковой, поэтому значок останется на одном и том же месте в состояниях «выключено» и «включено».",QO="Внешний диалог",eL="Этот диалог не виден на странице, но его можно открыть внешней командой «dialogOpen» с именем диалога или идентификатором виджета в качестве параметра.",tL="ЛОЖЬ",iL="С другого объекта",sL="Из статического значения",nL="Генерировать",oL="Значение",aL="Скрыть кнопку закрытия",rL="Этот URL будет вызываться в браузере",lL="HTML",cL="HTML-диалог",dL="Внешний диалог",uL="HTML при выкл",_L="HTML можно настроить только в том случае, если текст и значок пусты.",gL="HTML при вкл",hL="Икона",pL="Активный значок",mL="Диалоговое окно со значками",fL="URL-адрес вызова в бэкэнде",wL="Увеличение с помощью значка",bL="Перейти к URL (со значком)",vL="Значок для максимума",yL="Логическая кнопка со значком",jL="Нажать кнопку",xL="Кнопка переключения со значком",$L="Изображение",SL="Активное изображение",kL="Высота изображения",qL="Изображение на максимум",CL="Увеличение/Уменьшение",PL="Вход",DL="Ввод даты",TL="Ввод времени",ML="Ввод с помощью кнопки",zL="Инвертировать значок",IL="Перевернутый",HL="Стиль jQuery",AL="Максимальное значение",OL="Минимальное значение",LL="Заголовок",WL="Перейти к странице",RL="Кнопка навигации",NL="Значок навигации",EL="Навигация с паролем",FL="Не равная ширина",VL="Выкл.",BL="Рабочий идентификатор",UL="Вкл.",YL="Только значок",GL="Как список",JL="Ориентация",KL="Пароль",ZL="Пользователь должен ввести пароль, чтобы открыть диалоговое окно, перейти на страницу или URL-адрес.",XL="Режим нажатия",QL="При нажатии кнопки будет написано «истина», при отпускании кнопки будет написано «ложь».",eW="Радиокнопки (вкл/выкл)",tW="Список радио со значениями",iW="Радиокнопка (c шагами)",sW="диапазон",nW="Только чтение",oW="Задержка повтора",aW="Интервал повторения",rW="Выбрать все в фокусе",lW="В фокусе весь текст будет выделен, поэтому его можно быстро удалить или изменить, не нажимая кнопку возврата.",cW="Выбрать из списка",dW="Стилизованные",uW="Тайм-аут записи",_W="один",gW="Слайдер",hW="Устарело. Используйте виджет-слайдер с вертикальной ориентацией. Сохранено только для совместимости с vis.1.",pW="Вертикальный слайдер",mW="Устарело. Используйте виджет «Управление состояниями» с опцией «увеличить/уменьшить». Сохранено только для совместимости с vis.1.",fW="Штаты контролируют",wW="Шаг минута",bW="Тестовое значение",vW="Текст",yW="Активный текст",jW="Текст для максимума",xW="Переключать",$W="Подсказка",SW="Истинный",kW="Тип",qW="Единица",CW="URL-адрес вызова по клику",PW="URL-адрес в бэкэнде",DW="URL-адрес в браузере",TW="Этот URL будет вызываться в фоновом режиме движком ioBroker.",MW="Значение",zW="Отображать этикетку",IW="Вариант",HW="Просмотр навигации",AW="Широкий формат",OW="Заголовок",LW="С кнопкой ввода",WW="Устарело. Используйте виджет «Состояние записи» с опцией «увеличить/уменьшить». Сохранено только для совместимости с vis.1.",RW="Запись значения",NW="Заполненные",EW="Обрисованные",FW="%s совпадающих результатов",VW="Закруглённые",BW="Заострённые",UW="Двухцветные",YW="Загрузить",GW="никогда",JW="нет перезагрузки",KW="никто",ZW="обычный",XW="по желанию",QW="Вы можете перетащить любой элемент или щелкнуть элемент, с которым выбранный виджет будет заменен",eR="Ориентация",tR="Профиль",iR="перезагрузить",sR="базовый",nR="Он используется для специальных целей, таких как навигация jaeger-design.",oR="Текст от ложного",aR="Текст правда",rR="Текстовая строка",lR="версия",cR="вертикально",dR="Изменяемый размер",uR="Невозможно использовать рекурсивные страницы",_R="Страница",gR="Страница в виджете",hR="Страница не определена",pR="Скрыть индикацию",mR="Порог",fR="Swipe",wR="Цвет",bR="Вкладка",vR="Вкладки",yR="Количество",jR="Икона",xR="Цвет",$R="Размер значка",SR="Изображение",kR="Переполнение X",qR="Переполнение Y",CR="Заголовок",PR="Вид",DR="Вариант",TR="сосредоточенный",MR="По умолчанию",zR="полная ширина",IR="Вертикальный",HR="Ни одного проекта пока не существует.",AR={"%s from %s":"%s из %s","%s widgets":"%s виджетов","(Maximal file size is %s)":"(Максимальный размер файла – %s)","-attachment":"-attachment","-clip":"-clip","-color":"-color","-image":"-image","-origin":"-origin","-position":"-position","-repeat":"-repeat","-size":"-size","1 day":"1 день","1 hour":"1 час","1 minute":"1 минута","1 second":"1 секунда","10 minutes":"10 минут","10 seconds":"10 секунд","12 hours":"12 часов","15 m.":"15 м.","2 hours":"два часа","2 seconds":"2 секунды","20 seconds":"20 секунд","3 hours":"3 часа","30 m.":"30 м.","30 minutes":"30 минут","30 seconds":"30 секунд","5 minutes":"5 минут","5 seconds":"5 секунд","6 hours":"6 часов","Activation state":"Состояние активации","Active widget(s) from %s":"Активные виджеты от %s",Add:Rz,"Add folder":"Добавить папку","Add new child folder":"Добавить новую дочернюю папку","Add new child profile":"Добавить новый дочерний профиль","Add new or update existing widget":`Добавить новый или обновить существующий виджет
`,"Add new view":"Новая страница","Add profile":"Добавить профиль","Add project":"Добавить проект","Add sub-folder":"Добавить подпапку","Add to widgeteria":"Добавить в виджетерию","Add view":"Добавить страницу",Administrator:Nz,"Align height. Press more time to get the desired height.":"Выровнять высоту. Нажмите еще раз, чтобы получить желаемую высоту.","Align horizontal/center":"Выровнять по горизонтали/по центру","Align horizontal/equal":"Выровнять по горизонтали/на одинаковом расстоянии","Align horizontal/left":"Выровнять по горизонтали/слева","Align horizontal/right":"Выровнять по горизонтали/справа","Align vertical/bottom":"Выровнять по вертикали/снизу","Align vertical/center":"Выровнять по вертикали/по центру","Align vertical/equal":"Выровнять вертикально/на одинаковом расстоянии","Align vertical/top":"Выровнять по вертикали/сверху","Align width. Press more time to get the desired width.":"Выровнять ширину. Нажмите еще раз, чтобы получить желаемую ширину.",All:Ez,Aluminium1:Fz,Aluminium2:Vz,"App bar":"Панель приложений",Apply:Bz,"Apply ALL navigation properties to all views":"Применить ВСЕ свойства навигации ко всем представлениям","Apply to all views":"Применить это свойство ко всем представлениям","Are you sure":"Ты уверен","Are you sure to delete widgets %s?":"Вы уверены, что хотите удалить виджеты %s?",Attributes:Uz,"Available for all":"Проект доступен всем пользователям","Background class":"Фоновый класс","Background color":"Фоновый цвет","Background color if selected":"Цвет фона, если выбран","Bar color":"Фоновый цвет","Bar icon":"Икона","Bar image":"Изображение","Bar text":"Подпись",Basic:Yz,Benutzer:Gz,"Blue flowers":"Синие цветы","Blue marine":"Синий морской","Blue marine lines":"Синие морские линии","Blueprint grid":"Сетка чертежей","Body overflow":"Body overflow",Bricks:Jz,"Bring to front":"На передний план","Browse files":"Просмотр файлов","Browse objects":"Просмотр объектов","Browse the widgeteria":"Просмотрите виджетерию","Browser instance ID":"Идентификатор экземпляра браузера","Browser tab favicon":"Значок вкладки браузера","Browser tab title":"Заголовок вкладки браузера","By horizontal menu do not show text if icon provided":"В горизонтальном меню не показывать текст, если есть иконка",CSS:Kz,"CSS Class":"CSS-класс","CSS Common":"CSS Основные","CSS Font & Text":"CSS-шрифт и текст","CSS background (background-...)":"CSS Фон (background-...)",Cancel:Zz,"Cannot use recursive views":"Невозможно использовать рекурсивные страницы","Carbon fibre":"Углеродное волокно","Carbon fibre1":"Углеродное волокно1","Chevron icon color":"Цвет кнопки «Показать»",Clear:Xz,"Clear filter":"Очистить фильтр","Click to close":"Нажмите, чтобы закрыть",Clone:Qz,"Clone widget":"Клонировать виджет",Close:eI,"Close all":"Свернуть все","Close all but current view":"Закрыть все, кроме текущего вида","Close editor":"Закрыть редактор","Collapse all":"Свернуть все",Colorful:tI,"Column gap":"Разрыв столбца","Column width":"Ширина колонки",Comment:iI,"Convert %s to %s":"Преобразовать %s в %s","Copied %s":"Скопировано %s","Copied to clipboard":"Скопировано в буфер обмена",Copy:sI,"Copy noun":"Копия","Copy to clipboard":"Скопировать в буфер обмена",'Copy view "%s"':'Копировать страницу "%s"',Create:nI,"Create copy":"Создать копию","Create instance":"Создать","Create new project":"Создать новый проект",'Create or import new "vis-2" project':'Создать или импортировать новый проект "vis-2"',"Current project":"Текущий проект",Cut:oI,"Dark reconnect screen":"Темный экран повторного подключения","Deactivate binding and use field as standard input":"Деактивировать привязку и использовать поле в качестве стандартного ввода",Default:aI,"Default view":"Вид по умолчанию","Default: auto":"По умолчанию: «auto»",Delete:rI,"Delete actual view":"Удалить текущую страницу","Delete widgets":"Удалить виджеты","Destroy inactive view":"Уничтожить неактивную страницу","Detected new version of vis files. Reloading in 2 seconds...":"Обнаружена новая версия файлов vis. Перезагружается через 2 секунды...",Devices:lI,Disabled:cI,"Do not ask again":"Не спрашивай снова","Do not hide menu":"Не скрывать меню полностью","Do you want to create first demo project?":"Хотите создать первый демонстрационный проект?",'Do you want to delete folder "%s"':'Вы хотите удалить папку "%s"','Do you want to delete project "%s"?':'Вы хотите удалить проект "%s"?','Do you want to delete view "%s"?':'Вы хотите удалить страницу "%s"?','Do you want to include "%s" widget into "%s"?':"Вы хотите включить виджет «%s» в «%s»?","Drag me":"Перетащите меня","Drop the files here ...":"Закинь файлы сюда...",Duplicate:dI,"Duplicate folder":"Копировать папку","Duplicate profile":"Копировать профиль",Edit:uI,"Edit binding":"Изменить привязку","Edit folder":"Редактировать папку","Edit group":"Редактировать группу","Edit profile":"Редактировать профиль",Elements:_I,Enabled:gI,Enter:hI,"Enter password":"Введите пароль","Enter the browser instances divided by comma":"Введите экземпляры браузера, разделенные запятой.","Expand all":"Раскрыть все",Explanation:pI,Export:mI,'Export "%s"':'Экспорт "%s"',"Export widgets":"Экспорт виджетов","External dialog":"Внешний диалог","Fields of group will be cleaned":"Поля группы будут очищены","File too large":"Файл слишком большой",Files:fI,"Filter widgets":"Фильтровать виджеты","Fm dark background":"FM темный фон","Fm light background":"FM светлый фон","Following views will be changed":"Следующие представления будут изменены","For widgets with relative position":"Для виджетов с относительным положением",Fr:wI,"Full HD - Landscape":"Full HD - Пейзаж","Full HD - Portrait":"Full HD - Портрет","Full panel":"Полная панель","Galaxy Fold - Landscape":"Galaxy Fold — Пейзаж","Galaxy Fold - Portrait":"Galaxy Fold — Портрет",Global:bI,"Gradient box":"Градиентный контур","Gray 0":"Серый 0","Gray 1":"Серый 1",Grid:vI,Group:yI,"Group view css background":"Групповой вид фона css","Group widgets":"Сгруппировать виджеты","H gradient black 0":"H градиент черный 0","H gradient black 1":"H градиент черный 1","H gradient black 2":"H градиент черный 2","H gradient black 3":"H градиент черный 3","H gradient black 4":"H градиент черный 4","H gradient black 5":"H градиент черный 5","H gradient blue 0":"H градиент синий 0","H gradient blue 1":"H градиент синий 1","H gradient blue 2":"H градиент синий 2","H gradient blue 3":"H градиент синий 3","H gradient blue 4":"H градиент синий 4","H gradient blue 5":"H градиент синий 5","H gradient blue 6":"H градиент синий 6","H gradient blue 7":"H градиент синий 7","H gradient gray 0":"H градиент серый 0","H gradient gray 1":"H градиент серый 1","H gradient gray 2":"H градиент серый 2","H gradient gray 3":"H градиент серый 3","H gradient gray 4":"H градиент серый 4","H gradient gray 5":"H градиент серый 5","H gradient gray 6":"H градиент серый 6","H gradient green 0":"H градиент зеленый 0","H gradient green 1":"H градиент зеленый 1","H gradient green 2":"H градиент зеленый 2","H gradient green 3":"H градиент зеленый 3","H gradient green 4":"H градиент зеленый 4","H gradient orange 0":"H градиент оранжевый 0","H gradient orange 1":"H градиент оранжевый 1","H gradient orange 2":"H градиент оранжевый 2","H gradient orange 3":"H градиент оранжевый 3","H gradient yellow 0":"H градиент желтый 0","H gradient yellow 1":"H градиент желтый 1","H gradient yellow 2":"H градиент желтый 2","H gradient yellow 3":"H градиент желтый 3","HD - Landscape":"HD-пейзаж","HD - Portrait":"HD – Портрет",Height:jI,Hide:xI,"Hide after selection":"Скрыть после выбора","Hide all views":"Скрыть все представления","Hide attributes":"Скрыть свойства","Hide menu":"Скрыть меню","Hide palette":"Скрыть палитру","Hide panel names":"Скрыть названия панелей","Hide selected widgets":"Скрыть выбранные виджеты",High:$I,"High priority":"Высокий приоритет","Highest eg. Holiday":"Наивысший, например. День отдыха",Horizontal:SI,Icon:kI,"If user not in group":"Если пользователь не в группе",Ignore:qI,"Ignored in edit mode":"Игнорируется в режиме редактирования",Image:CI,Import:PI,"Import project":"Импорт проекта","Import widgets":"Импорт виджетов","Include widget?":"Включить виджет?","Initial filter":"Начальный фильтр",Instance:DI,"Invalid file type":"Неверный тип файла","Jump to widget by double click":"Перейти к виджету двойным щелчком по виджету","Just use without modification":"Просто используйте без изменений","Keep on old place":"Держись на старом месте","Limit background color":"Фоновый цвет","Limit border color":"Цвет границы","Limit border style":"Стиль границы","Limit border width":"Ширина рамки","Limit only for instances":"Ограничение только для экземпляров","Limit screen":"Ограничить экран","Lined paper":"Линованной бумаги","Load project file...":"Загрузка файла проекта...","Load widgets...":"Загрузка виджетов...","Loading objects...":"Загрузка объектов...",Lock:TI,"Lock dragging":"Блокировка перетаскивания","Manage projects":"Проекты","Manage views":"Страницы","Menu header text":"Текст заголовка меню","Menu header text color":"Цвет текста заголовка меню","Menu width":"Ширина меню",Message:MI,Mo:zI,Modify:II,More:HI,"Move down":"Вниз","Move to new place":"Переехать на новое место","Move up":"Вверх","Move widget down or press longer to open re-order menu":"Переместите виджет вниз или нажмите дольше, чтобы открыть меню изменения порядка","Move widget up or press longer to open re-order menu":"Переместите виджет вверх или нажмите дольше, чтобы открыть меню изменения порядка",Name:AI,"Name is not unique":"Имя не уникальное","Name of copy":"Название копии","Narrow panel":"Узкая панель",Navigation:OI,"Nest Hub - Landscape":"Гнездо Хаб — Пейзаж","Nest Hub - Portrait":"Nest Hub — портрет","Nest Hub Max - Landscape":"Nest Hub Max — Пейзаж","Nest Hub Max - Portrait":"Nest Hub Max — портретная ориентация","New name":"Новое имя","New view":"Новая страница",No:LI,"No background":"Без фона",Normal:WI,OFF:RI,ON:NI,Objects:EI,Ok:FI,"On/Off":"Вкл выкл","One parameter":"Один параметр","Only for desktop":"Только для рабочего стола","Only for groups":"Только для групп","Only the admin user can change permissions":"Только пользователь-администратор может изменять разрешения",Open:VI,"Open all":"Раскрыть все","Open it?":"Открой это?","Open runtime in new window":"Открыть среду выполнения в новом окне","Open widgeteria":"Открыть виджетерию",Options:BI,Order:UI,Orientation:YI,Palette:GI,Paste:JI,Percent:KI,Permissions:ZI,"Pixel 5 - Landscape":"Пиксель 5 – Пейзаж","Pixel 5 - Portrait":"Пиксель 5 – Портрет",Priority:XI,'Project "%s" does not exist':'Проект "%s" не существует','Project "%s" was successfully imported':'Проект "%s" успешно импортирован',"Project already exists":"Проект уже существует","Project name":"Название проекта","Project settings":"Настройки проекта","Project was updated":"Проект обновлен","Project was updated by another browser instance. Do you want to reload it?":"Проект был обновлен другим экземпляром браузера. Вы хотите перезагрузить его?",Projects:QI,"Radial blue":"Радиальный синий",Read:eH,"Read = Runtime access":"Чтение = доступ во время выполнения","Read about currentColor in SVG":"Прочтите о currentColor в SVG.","Rebuild HTML pages":"Перестройть HTML-страницы","Rebuild of HTML pages was started":"Началась перестройка HTML-страниц","Received user command: %s":"Полученная пользовательская команда: %s","Reconnect interval":"Интервал повторного подключения",Redo:tH,"Reload all browsers if project changed":"Перезагрузите все браузеры, если проект изменился","Reload all runtimes":"Перезагрузить все среды выполнения","Reload if sleep longer than":"Перезагрузите, если спите дольше, чем","Reload now":"Перезагрузить сейчас",Reloading:iH,Rename:sH,'Rename folder "%s"':'Переименовать папку "%s"','Rename project "%s"':'Переименовать проект "%s"',"Rename view":"Переименовать страницу",'Rename view "%s"':'Переименовать страницу "%s"',"Render always":"Всегда отрисовывать","Reset all intervals to following value:":"Сбросьте все интервалы до следующего значения:",Resolution:nH,"Responsive settings":"Адаптивные настройки","Row gap":"Разрыв строки",Sa:oH,"Samsung Galaxy A51/71 - Landscape":"Samsung Galaxy A51/71 — Пейзаж","Samsung Galaxy A51/71 - Portrait":"Samsung Galaxy A51/71 — Портрет","Samsung Galaxy S20 Ultra - Landscape":"Samsung Galaxy S20 Ultra — Пейзаж","Samsung Galaxy S20 Ultra - Portrait":"Samsung Galaxy S20 Ultra — портрет","Samsung Galaxy S8+ - Landscape":"Samsung Galaxy S8+ — Пейзаж","Samsung Galaxy S8+ - Portrait":"Samsung Galaxy S8+ — Портрет",Save:aH,Scripts:rH,Search:lH,Select:cH,"Select all":"Выбрать все","Select object ID":"Выберите идентификатор объекта","Select or create profile in left menu":"Выберите или создайте профиль в левом меню","Select project":"Выберите проект","Select vis-2 project":'Выберите проект "vis-2"',"Send to back":"На задний план","Sent to back":"Отправлено на задний план",Set:"Установить","Set all periods to one value":"Установите для всех периодов одно значение","Set widgets filter for edit mode":"Скрыть виджеты (с ключом фильтра) в режиме редактирования",Settings:dH,"Should it be moved to new place?":"Стоит ли его перенести на новое место?",Show:uH,"Show all views":"Показать все виды","Show app bar":"Показать","Show background of button":"Фон кнопки «Показать»","Show navigation":"Показать навигацию","Show only selected widgets":"Показать только выбранные виджеты","Show only toolbar on the top and hide menu itself":"Показывайте только панель инструментов сверху и скрывайте само меню","Show palette":"Показать палитру","Show this attribute by all views":"Показать этот атрибут во всех представлениях","Show view":"Показать страницу","Specify filter to see more icons":"Укажите фильтр, чтобы увидеть больше значков","States Debounce Time (millis)":"Время игнорирования дребезга (млн)",Style:_H,"Style of menu button only when the menu is hidden":"Стиль кнопки меню только в том случае, если меню скрыто",Su:gH,"Surface Duo - Landscape":"Surface Duo - Пейзаж","Surface Duo - Portrait":"Surface Duo — портрет","Surface Pro 7 - Landscape":"Surface Pro 7 — Пейзаж","Surface Pro 7 - Portrait":"Surface Pro 7 — Портрет","Switch to group edit mode by double click":"Переключитесь в режим группового редактирования, дважды щелкнув виджет.",Tabs:hH,Temperature:pH,"Text color":"Цвет текста","Text color if selected":"Цвет текста, если выбран","Text edit":"Редактировать текст",Th:mH,Theme:fH,"This view will be shown only to defined groups":"Эта страница будет отображаться только для определенных групп",'This widget is already used in "%s"':'Этот виджет уже используется в "%s"',Title:wH,"To use it, define by some widget the filter key":"Чтобы использовать его, определите каким-либо виджетом ключ фильтра","Toggle runtime":"Переключить среду выполнения","Toggle widget hint (dark)":"Переключить подсказку виджета (темный)","Toggle widget hint (hide)":"Включить подсказку виджета (скрыть)","Toggle widget hint (light)":"Переключить подсказку виджета (светлая)",Tu:bH,Type:vH,Undo:yH,Ungroup:jH,Uninstall:xH,'Unknown widget type "%s"':'Неизвестный тип виджета "%s"',Unlock:$H,Unselect:SH,Update:kH,"Usage of widget %s":"Использование виджета %s","Use background":"Использовать фон","Use field as binding":"Использовать поле как привязку","User defined":"Определяемые пользователем",Value:qH,Vertical:CH,View:PH,"View not defined":"Страница не определена",We:DH,Weekend:TH,Widget:MH,"Widget CSS":"Виджет CSS","Widget JS":"Виджет JS","Widget was deleted in widgeteria":"Виджет был удален в виджете",Widgets:zH,Width:IH,"Width x height (px)":"Ширина х высота (px)",Write:HH,"Write = Edit mode access":"Write = доступ к режиму редактирования",Writer:AH,"Wrong password":"Неправильный пароль",Yes:OH,"You can open dialog with following script:":"Вы можете открыть диалог с помощью следующего скрипта:","You can provide here the state that controls the activation of this profile":"Вы можете указать здесь состояние, которое контролирует включение этого профиля",__marketplace:LH,ace_All:WH,"ace_CaseSensitive Search":"Поиск с учетом регистра","ace_RegExp Search":"Поиск по регулярному выражению","ace_Search In Selection":"Искать в выборе","ace_Search for":"Искать","ace_Toggle Replace mode":"Переключить режим замены","ace_Whole Word Search":"Поиск всего слова",alt_false:RH,alt_true:NH,anonymize:EH,apply_to_all:FH,attr_none:VH,basic_all_filters:BH,basic_arrow:UH,basic_borderColor:YH,basic_borderRadius:GH,basic_circle:JH,basic_custom:KH,basic_filter_multiple:ZH,basic_filter_type_dropdown:XH,basic_filter_type_horizontal_buttons:QH,basic_filter_type_vertical_buttons:eA,basic_hexagone:tA,basic_line:iA,basic_no_all_option:sA,basic_no_filter:nA,basic_no_filter_text:oA,basic_node_hide_corner:aA,basic_octagone:rA,basic_pentagone:lA,basic_pin:cA,basic_speech2text_continuous:dA,basic_speech2text_detected:uA,basic_speech2text_en_us:_A,basic_speech2text_height:gA,basic_speech2text_image_active:hA,basic_speech2text_image_inactive:pA,basic_speech2text_info_allow:mA,basic_speech2text_info_blocked:fA,basic_speech2text_info_denied:wA,basic_speech2text_info_no_microphone:bA,basic_speech2text_info_no_speech:vA,basic_speech2text_info_speak_now:yA,basic_speech2text_info_start:jA,basic_speech2text_info_upgrade:xA,basic_speech2text_key_word_color:$A,basic_speech2text_key_word_color_tooltip:SA,basic_speech2text_keywords:kA,basic_speech2text_no_image:qA,basic_speech2text_no_results:CA,basic_speech2text_no_text:PA,basic_speech2text_ru_ru:DA,basic_speech2text_sent:TA,basic_speech2text_single:MA,basic_speech2text_speech_mode:zA,basic_speech2text_start_stop:IA,basic_speech2text_started:HA,basic_speech2text_text_sent_color:AA,basic_speech2text_text_sent_color_tooltip:OA,basic_speech2text_width:LA,basic_square:WA,basic_star:RA,basic_sub_view:NA,basic_triangle:EA,block:FA,color:VA,color_false:BA,color_true:UA,"convert from widgeteria widget":"конвертировать из виджета widgeteria",copy:YA,css_project:GA,custom_icons:JA,different:KA,display:ZA,"finish searching":"поиск завершен",flex:XA,flexible:QA,folder:eO,"font-family":"семейство шрифтов","font-size":"размер шрифта","font-style":"стиль шрифта","font-variant":"вариант шрифта","font-weight":"вес шрифта",group:tO,group_attrName:iO,group_attrType:sO,group_fields:nO,group_help:oO,group_icon_false:aO,group_icon_true:rO,group_size_hint:lO,group_text:cO,help_css_global:dO,help_css_project:uO,hide:_O,"hide code":"скрыть код",horizontal:gO,hr:hO,"iPad Air - Landscape":"iPad Air — альбомная ориентация","iPad Air - Portrait":"iPad Air — Портрет","iPad Mini - Landscape":"iPad Mini — альбомная ориентация","iPad Mini - Portrait":"iPad Mini — Портрет","iPad Pro - Landscape":"iPad Pro — альбомная ориентация","iPad Pro - Portrait":"iPad Pro — Портрет","iPhone 12 Pro - Landscape":"iPhone 12 Pro — альбомная ориентация","iPhone 12 Pro - Portrait":"iPhone 12 Pro — портретная ориентация","iPhone SE - Landscape":"iPhone SE — альбомная ориентация","iPhone SE - Portrait":"iPhone SE — Портрет","iPhone XR - Landscape":"iPhone XR — альбомная ориентация","iPhone XR - Portrait":"iPhone XR — Портрет",icon_size_in_pixels:pO,icon_upload_hint:mO,imageHeight_false:fO,imageHeight_true:wO,invert_icon_false:bO,invert_icon_true:vO,"jqui_Add new value":"Добавить новое значение","jqui_Are you sure?":"Вы уверены?","jqui_Bulk edit":"Массовое редактирование",jqui_Close:yO,jqui_Example:jO,"jqui_Generate states":"Генерировать состояния","jqui_Generate steps":"Создание шагов","jqui_Maximum value":"Максимальное значение","jqui_Minimum value":"Минимальное значение","jqui_Number settings":"Настройки номера",jqui_Percents:xO,"jqui_Replace to":"Заменить","jqui_Select file":"Выберите изображение","jqui_Write state":"Написать состояние",jqui_active_color:$O,jqui_ampm:SO,jqui_asDate:kO,jqui_asFullDate:qO,jqui_as_string:CO,jqui_auto:PO,jqui_binary_control:DO,jqui_button_binary_control_note:TO,jqui_button_color:MO,jqui_button_dialog_close:zO,jqui_button_input_note:IO,jqui_button_link:HO,jqui_button_link_blank:AO,jqui_button_link_blank_note:OO,jqui_button_nav_blank_note:LO,jqui_button_text:WO,jqui_buttontext_view:RO,jqui_clearable:NO,jqui_color:EO,jqui_container_button_dialog:FO,jqui_container_dialog:VO,jqui_container_icon_dialog:BO,jqui_dialog_name:UO,jqui_dialog_set_id_tooltip:YO,jqui_disableFuture:GO,jqui_disablePast:JO,jqui_displayWeekNumber:KO,jqui_equal_text_length:ZO,jqui_equal_text_length_tooltip:XO,jqui_external_dialog:QO,jqui_external_dialog_tooltip:eL,jqui_false:tL,jqui_from_oid:iL,jqui_from_value:sL,jqui_generate:nL,jqui_group_value:oL,jqui_hide_close_button:aL,jqui_href_tooltip:rL,jqui_html:lL,jqui_html_dialog:cL,jqui_html_external_dialog:dL,jqui_html_false:uL,jqui_html_tooltip:_L,jqui_html_true:gL,jqui_icon:hL,jqui_icon_active:pL,jqui_icon_dialog:mL,jqui_icon_http_get:fL,jqui_icon_increment:wL,jqui_icon_link:bL,jqui_icon_max:vL,jqui_icon_state_bool:yL,jqui_icon_state_push_button:jL,jqui_icon_toggle:xL,jqui_image:$L,jqui_image_active:SL,jqui_image_height:kL,jqui_image_max:qL,jqui_increment_decrement:CL,jqui_input:PL,jqui_input_date:DL,jqui_input_time:TL,jqui_input_with_button:ML,jqui_invert_icon:zL,jqui_inverted:IL,jqui_jquery_style:HL,jqui_max:AL,jqui_min:OL,jqui_name:LL,jqui_nav_view:WL,jqui_navigation_button:RL,jqui_navigation_icon:NL,jqui_navigation_password:EL,jqui_not_equal_length:FL,jqui_off:VL,jqui_oid_working:BL,jqui_on:UL,jqui_only_icon:YL,jqui_open:GL,jqui_orientation:JL,jqui_password:KL,jqui_password_tooltip:ZL,jqui_push_mode:XL,jqui_push_mode_tooltip:QL,jqui_radio_buttons_on_off:eW,jqui_radio_list:tW,jqui_radio_steps:iW,jqui_range:sW,jqui_read_only:nW,jqui_repeat_delay:oW,jqui_repeat_interval:aW,jqui_select_all_on_focus:rW,jqui_select_all_on_focus_tooltip:lW,jqui_select_list:cW,jqui_set_label:dW,jqui_set_timeout:uW,jqui_single:_W,jqui_slider:gW,jqui_slider_note:hW,jqui_slider_vertical:pW,jqui_state_note:mW,jqui_states_control:fW,jqui_stepMinute:wW,jqui_test:bW,jqui_text:vW,jqui_text_active:yW,jqui_text_max:jW,jqui_toggle:xW,jqui_tooltip:$W,jqui_true:SW,jqui_type:kW,jqui_unit:qW,jqui_url_group:CW,jqui_url_in_background:PW,jqui_url_in_browser:DW,jqui_url_tooltip:TW,jqui_value:MW,jqui_value_label_display:zW,jqui_variant:IW,jqui_view_group:HW,jqui_wideFormat:AW,jqui_widgetTitle:OW,jqui_with_enter_button:LW,jqui_write_state_note:WW,jqui_write_value:RW,"letter-spacing":"Межбуквенное расстояние","line-height":"высота линии",material_icons_baseline:NW,"material_icons_knx-uf":"knx-uf",material_icons_outline:EW,material_icons_result:FW,material_icons_round:VW,material_icons_sharp:BW,material_icons_twotone:UW,material_icons_upload:YW,"multi-views":"Показать на страницах",never:GW,no_reload:JW,none:KW,normal:ZW,"not defined":"не определено","not-specified":"не определено",optional:XW,order_help:QW,orientation:eR,profile:tR,"qui_Bool SVG":"Бинарный SVG",reload:iR,"search text":"Текст поиска",set_basic:sR,"signals-color":"Цвет","signals-count":"Количество сигналов","signals-smallIcon-0":"Маленький значок [0]","signals-smallIcon-1":"Маленький значок [1]","signals-smallIcon-2":"Маленький значок [3]","signals-text":"Текст или шаблон","signals-text-0":"Текст [0]","signals-text-1":"Текст [1]","signals-text-2":"Текст [2]","signals-text-tooltip":"Вы можете использовать %s для отображения текущего значения в тексте.",sub_view_tooltip:nR,"text-shadow":"тень текста",text_false:oR,text_true:aR,"to version":"к версии",value_string:rR,version:lR,vertical:cR,"vis-2-widgets-basic-autoSetDelay":"Задержка для автозаписи","vis-2-widgets-basic-input_value":"Входное значение","vis-2-widgets-basic-noStyle":"Нет стиля",visResizable:dR,vis_2_widgets_basic_cannot_recursive:uR,vis_2_widgets_basic_contains_view:_R,vis_2_widgets_basic_view_in_widget:gR,vis_2_widgets_basic_view_not_defined:hR,vis_2_widgets_swipe_hide_indication_label:pR,vis_2_widgets_swipe_threshold_label:mR,vis_2_widgets_widgets_swipe_label:fR,vis_2_widgets_widgets_tabs_color:wR,vis_2_widgets_widgets_tabs_group_tab:bR,vis_2_widgets_widgets_tabs_label:vR,vis_2_widgets_widgets_tabs_show_tabs:yR,vis_2_widgets_widgets_tabs_tab_icon:jR,vis_2_widgets_widgets_tabs_tab_icon_color:xR,vis_2_widgets_widgets_tabs_tab_icon_size:$R,vis_2_widgets_widgets_tabs_tab_image:SR,vis_2_widgets_widgets_tabs_tab_overflow_x:kR,vis_2_widgets_widgets_tabs_tab_overflow_y:qR,vis_2_widgets_widgets_tabs_tab_title:CR,vis_2_widgets_widgets_tabs_tab_view:PR,vis_2_widgets_widgets_tabs_variant:DR,vis_2_widgets_widgets_tabs_variant_centered:TR,vis_2_widgets_widgets_tabs_variant_default:MR,vis_2_widgets_widgets_tabs_variant_full_width:zR,vis_2_widgets_widgets_tabs_vertical:IR,welcome_message:HR,"word-spacing":"межсловный интервал"},OR="Adicionar",LR="Administrador",WR="Todos",RR="Alumínio1",NR="Alumínio2",ER="Aplicar",FR="Atributos",VR="Básico",BR="Benutzer",UR="Tijolos",YR="CSS",GR="Cancelar",JR="Claro",KR="Clone",ZR="Perto",XR="Colorido",QR="Comente",eN="cópia de",tN="Crio",iN="Corte",sN="Predefinição",nN="Excluir",oN="Dispositivos",aN="Desabilitado",rN="Duplicado",lN="Editar",cN="Elementos",dN="Habilitado",uN="Digitar",_N="Explicação",gN="Exportar",hN="arquivos",pN="Fr",mN="Para todos os projetos",fN="Rede",wN="Grupo",bN="Altura",vN="Esconder",yN="Alto",jN="Horizontal",xN="Ícone",$N="Ignorar",SN="Imagem",kN="Importar",qN="Instância",CN="Trancar",PN="Mensagem",DN="Mo",TN="Modificar",MN="Mais",zN="Nome",IN="Navegação",HN="Não",AN="Normal",ON="OFF",LN="ON",WN="Objetos",RN="OK",NN="Abrir",EN="Opções",FN="Ordem",VN="Orientação",BN="Paleta",UN="Colar",YN="Por cento",GN="Permissões",JN="Prioridade",KN="Projetos",ZN="Ler",XN="Refazer",QN="Recarregando",eE="Renomear",tE="Resolução",iE="Sá",sE="Salvar",nE="Scripts",oE="Procurar",aE="Selecionar",rE="Definições",lE="mostrar",cE="Estilo",dE="Su",uE="Guias",_E="Temperatura",gE="Th",hE="Tema",pE="Título",mE="Tu",fE="Modelo",wE="Desfazer",bE="Desagrupar",vE="Desinstalar",yE="Desbloquear",jE="Desmarcar",xE="Atualizar",$E="Valor",SE="Vertical",kE="Visão",qE="Mi",CE="Final de semana",PE="Ferramenta",DE="Widgets",TE="Largura",ME="Escrever",zE="Escritor",IE="Sim",HE="Widgeteria",AE="Todos",OE="Dica de ferramenta por falso",LE="Dica por true",WE="anonimizar",RE="Para todos",NE="none",EE="Adicione tudo o que resta",FE="Seta",VE="Cor da borda",BE="Raio da borda",UE="Círculo",YE="Polígono personalizado",GE="Seleção múltipla",JE="Menu suspenso",KE="Botões horizontais",ZE="Botões verticais",XE="Hexágono",QE="Linha",eF='Sem opção "Sem filtro"',tF="Sem filtro",iF='Etiqueta "Sem filtro"',sF="Ocultar canto",nF="Octógono",oF="Pentágono",aF="Alfinete",rF="contínuo",lF="Detectou",cF="inglês",dF="Altura (px)",uF="Ativo",_F="Inativo",gF='Clique no botão "Permitir" acima para ativar seu microfone.',hF="A permissão para usar o microfone está bloqueada. Para alterar, vá para chrome://settings/contentExceptions#media-stream",pF="A permissão para usar microfone foi negada.",mF='Nenhum microfone foi encontrado. Verifique se há um microfone instalado e se as <a href="//support.google.com/chrome/bin/answer.py?hl=pt-BR&answer=1407892"> configurações do microfone</a> estão configuradas corretamente.',fF='Nenhuma fala foi detectada. Talvez seja necessário ajustar as <a href="//support.google.com/chrome/bin/answer.py?hl=pt-BR&answer=1407892">configurações do microfone</a>.',wF="Fale agora.",bF="Clique no ícone do microfone e comece a falar.",vF='A API Web Speech não é compatível com este navegador. Atualize para o <a href="//www.google.com/chrome">Chrome</a> versão 25 ou posterior.',yF="Cor da palavra-chave",jF="Cor do texto, se a palavra-chave for encontrada",xF="Palavras-chave",$F="Nenhuma imagem",SF="Nenhum resultado",kF="Nenhum texto de ajuda",qF="russo",CF="Enviado",PF="solteiro",DF="Modo de fala",TF="iniciar/parar",MF="Iniciado",zF="Cor do texto enviado",IF="Cor do texto, quando o texto é enviado para processamento",HF="Largura (px)",AF="Quadrado",OF="Estrela",LF="Subvisualização",WF="Triângulo",RF="quadra",NF="cor",EF="Cor por falso",FF="Cor por verdadeiro",VF="cópia",BF="Para este projeto",UF="Especial",YF="diferente",GF="exibição",JF="flexionar",KF="flexível",ZF="Pasta",XF="Grupo",QF="Nome",e4="Tipo",t4="Atributos",i4='Você pode definir nos atributos do widget do grupo os nomes especiais no formato "%yourCustomName%" e aparecerá nas configurações de "Attributes". Depois disso, você pode fornecer o nome e o tipo de atributos personalizados.',s4="Ícone por falso",n4="Ícone por verdadeiro",o4="Você pode alterar o tamanho do grupo, selecionando-o no seletor de widget suspenso ou clicando neste texto",a4="Texto",r4="Esses CSS são aplicados a todos os projetos",l4="Esses CSS são aplicados apenas a este projeto",c4="ocultar",d4="horizontal",u4="horas",_4="Tamanho do ícone em pixels",g4="Você pode fazer upload de seu próprio ícone de até 10k bytes como base64. Ele será salvo diretamente no projeto. Se você deseja fazer upload do arquivo SVG, não se esqueça de definir o atributo currentColor.",h4="Altura da imagem",p4="Altura da imagem",m4="Ícone de inversão",f4="Ícone de inversão",w4="Fechar",b4="Exemplo",v4="Porcentagens",y4="Cor ativa",j4="Manhã tarde",x4="Como data",$4="Uso de data analisável completa",S4="Como corda",k4="auto",q4="Controle binário",C4='Descontinuada. Use o widget "Controle binário". Mantido apenas para compatibilidade com vis.1',P4="Cor do botao",D4="Botão fechar caixa de diálogo",T4='Descontinuada. Use o widget "Entrada". Mantido apenas para compatibilidade com vis.1',M4="Ir para URL",z4="Ir para URL (em nova janela)",I4='Descontinuada. Use o primeiro widget com a opção "Abrir em nova janela". Mantido apenas para compatibilidade com vis.1',H4='Descontinuada. Use o primeiro widget com a opção "Ir para visualizar". Mantido apenas para compatibilidade com vis.1',A4="Botão de texto",O4="Use o nome da visualização como título",L4="Eliminável",W4="Cor",R4="Botão=>Caixa de diálogo Página",N4="Caixa de diálogo do contêiner",E4="Ícone=>Caixa de diálogo Página",F4="Nome da caixa de diálogo",V4="Definir estado pela caixa de diálogo aberta",B4="Desativar futuro",U4="Desativar passado",Y4="Exibir número da semana",G4="Comprimentos de texto iguais",J4='Se ativado, os comprimentos dos textos para verdadeiro e falso serão iguais, então o ícone permanecerá no mesmo lugar nos estados "desligado" e "ligado".',K4="Diálogo externo",Z4='Esta caixa de diálogo não é visível na página, mas pode ser aberta pelo comando externo "dialogOpen" com o nome da caixa de diálogo ou ID do widget como parâmetro.',X4="Falso",Q4="De outro objeto",e8="Do valor estático",t8="Gerar",i8="Valor",s8="Ocultar botão fechar",n8="Este URL será chamado no navegador",o8="HTML",a8="Caixa de diálogo HTML",r8="Diálogo externo",l8="HTML por falso",c8="O HTML só é configurável se o texto e o ícone estiverem vazios",d8="HTML por verdadeiro",u8="Ícone",_8="Ícone ativo",g8="Caixa de diálogo de ícones",h8="URL de chamada no back-end",p8="Incrementar com ícone",m8="Ir para URL (com ícone)",f8="Ícone para máximo",w8="Botão de ícone booleano",b8="Botão de apertar",v8="Botão de alternância com ícone",y8="Imagem",j8="Imagem ativa",x8="Altura da imagem",$8="Imagem para máximo",S8="Incremento/Decremento",k8="Entrada",q8="Entrada de data",C8="Entrada de tempo",P8="Entrada com botão",D8="Ícone de inversão",T8="Invertido",M8="Estilo jQuery",z8="Valor máximo",I8="Valor mínimo",H8="Título",A8="Ir para ver",O8="Botão de navegação",L8="Ícone de navegação",W8="Navegação com senha",R8="Largura diferente",N8="Desligado",E8="ID de trabalho",F8="Hab.",V8="Único ícone",B8="Como lista",U8="Orientação",Y8="Senha",G8="O usuário deve inserir a senha para abrir a caixa de diálogo, ir para a página ou URL",J8="Modo push",K8="Ao pressionar o botão será escrito “true” e ao soltar o botão será escrito “false”.",Z8="Botões de rádio (ligar/desligar)",X8="Lista de rádio com valores",Q8="Botão de opção (etapas)",eV="faixa",tV="Somente leitura",iV="Atraso de repetição",sV="Intervalo de repetição",nV="Selecione tudo em foco",oV="Em foco, todo o texto será selecionado, para que possa ser excluído ou alterado rapidamente sem pressionar o botão backspace",aV="Selecione na lista",rV="estilizado",lV="Tempo limite de gravação",cV="solteiro",dV="Controle deslizante",uV="Descontinuada. Use o widget deslizante com orientação definida como vertical. Mantido apenas para compatibilidade com vis.1",_V="Controle deslizante vertical",gV='Descontinuada. Use o widget "Controle de estados" com a opção "incremento/decremento". Mantido apenas para compatibilidade com vis.1',hV="Controle dos Estados",pV="Passo minuto",mV="Valor de teste",fV="Texto",wV="Texto ativo",bV="Texto para máximo",vV="Alternar",yV="Dica",jV="Verdadeiro",xV="Tipo",$V="Unidade",SV="URL de chamada por clique",kV="URL no back-end",qV="URL no navegador",CV="Este URL será chamado em segundo plano pelo mecanismo ioBroker",PV="Valor",DV="Etiqueta de exibição",TV="Variante",MV="Visualização de navegação",zV="Formato amplo",IV="Título",HV="Com botão entrar",AV='Descontinuada. Use o widget "Wirte state" com a opção "incremento/decremento". Mantido apenas para compatibilidade com vis.1',OV="Escrever valor",LV="Preenchidas",WV="Delineado",RV="%s resultados correspondentes",NV="Redondo",EV="Afiado",FV="Dois tons",VV="Carregar",BV="Nunca",UV="sem recarga",YV="Nenhum",GV="normal",JV="opcional",KV="Você pode arrastar e soltar qualquer item ou clicar no item com o qual o widget selecionado será trocado",ZV="Orientação",XV="Perfil",QV="recarregar",e3="básico",t3="É usado para fins especiais, como navegação Jaeger-design",i3="Texto por falso",s3="Texto por verdadeiro",n3="corda",o3="versão",a3="vertical",r3="Redimensionável",l3="Não é possível usar visualizações recursivas",c3="Usar visualização",d3="Ver no widget",u3="Visualização não definida",_3="Ocultar indicação",g3="Limite",h3="Swipe",p3="Cor",m3="Aba",f3="Guias",w3="Número",b3="Ícone",v3="Cor",y3="Tamanho do ícone",j3="Imagem",x3="Estouro X",$3="Estouro Y",S3="Título",k3="Visualizar",q3="Variante",C3="centrado",P3="Padrão",D3="largura completa",T3="Vertical",M3="Nenhum projeto ainda existe.",z3={"%s from %s":"%s de %s","%s widgets":"%s widgets","(Maximal file size is %s)":"(O tamanho máximo do arquivo é %s)","-attachment":"-attachment","-clip":"-clip","-color":"-color","-image":"-image","-origin":"-origin","-position":"-position","-repeat":"-repeat","-size":"-size","1 day":"1 dia","1 hour":"1 hora","1 minute":"1 minuto","1 second":"1 segundo","10 minutes":"10 minutos","10 seconds":"10 segundos","12 hours":"12 horas","15 m.":"15 m.","2 hours":"2 horas","2 seconds":"2 segundos","20 seconds":"20 segundos","3 hours":"3 horas","30 m.":"30 m.","30 minutes":"30 minutos","30 seconds":"30 segundos","5 minutes":"5 minutos","5 seconds":"5 segundos","6 hours":"6 horas","Activation state":"Estado de ativação","Active widget(s) from %s":"Widget(s) ativo(s) de %s",Add:OR,"Add folder":"Adicionar pasta","Add new child folder":"Adicionar nova pasta filha","Add new child profile":"Adicionar novo perfil de criança","Add new or update existing widget":`Adicionar widget novo ou atualizar existente
`,"Add new view":"Nova visualização","Add profile":"Adicionar perfil","Add project":"Adicionar projeto","Add sub-folder":"Adicionar subpasta","Add to widgeteria":"Adicionar à widgeteria","Add view":"Adicionar visualização",Administrator:LR,"Align height. Press more time to get the desired height.":"Alinhar a altura. Pressione mais tempo para obter a altura desejada.","Align horizontal/center":"Alinhar horizontal/centro","Align horizontal/equal":"Alinhar horizontal/igual","Align horizontal/left":"Alinhar horizontal/esquerda","Align horizontal/right":"Alinhar horizontal/direita","Align vertical/bottom":"Alinhar vertical/inferior","Align vertical/center":"Alinhar vertical/centro","Align vertical/equal":"Alinhar vertical/igual","Align vertical/top":"Alinhar vertical/superior","Align width. Press more time to get the desired width.":"Alinhar a largura. Pressione mais tempo para obter a largura desejada.",All:WR,Aluminium1:RR,Aluminium2:NR,"App bar":"Barra de aplicativos",Apply:ER,"Apply ALL navigation properties to all views":"Aplicar TODAS as propriedades de navegação a todas as exibições","Apply to all views":"Aplicar esta propriedade a todas as visualizações","Are you sure":"Tem certeza","Are you sure to delete widgets %s?":"Tem certeza de excluir os widgets %s?",Attributes:FR,"Available for all":"Projeto acessível a todos os usuários","Background class":"Classe de fundo","Background color":"Cor de fundo","Background color if selected":"Cor de fundo, se selecionada","Bar color":"Cor de fundo","Bar icon":"Ícone","Bar image":"Imagem","Bar text":"Rubrica",Basic:VR,Benutzer:BR,"Blue flowers":"Flores azuis","Blue marine":"Azul marinho","Blue marine lines":"Linhas marinhas azuis","Blueprint grid":"Grade de planta","Body overflow":"Body overflow",Bricks:UR,"Bring to front":"Traga para frente","Browse files":"Procurar arquivos","Browse objects":"Procurar objetos","Browse the widgeteria":"Navegue pela widgeteria","Browser instance ID":"ID da instância do navegador","Browser tab favicon":"Favicon da aba do navegador","Browser tab title":"Título da guia do navegador","By horizontal menu do not show text if icon provided":"No menu horizontal, não mostrar o texto se o ícone for fornecido",CSS:YR,"CSS Class":"Classe CSS","CSS Common":"CSS comum","CSS Font & Text":"CSS Fonte e texto","CSS background (background-...)":"CSS Plano de fundo (background-...)",Cancel:GR,"Cannot use recursive views":"Não é possível usar visualizações recursivas","Carbon fibre":"Fibra de carbono","Carbon fibre1":"Fibra de carbono1","Chevron icon color":"Cor do botão mostrar",Clear:JR,"Clear filter":"Filtro limpo","Click to close":"Clique para fechar",Clone:KR,"Clone widget":"Clonar widget",Close:ZR,"Close all":"Recolher todos","Close all but current view":"Fechar tudo exceto a visualização atual","Close editor":"Fechar editor","Collapse all":"Recolher todos",Colorful:XR,"Column gap":"Lacuna de coluna","Column width":"Largura da coluna",Comment:QR,"Convert %s to %s":"Converter %s para %s","Copied %s":"Copiado %s","Copied to clipboard":"Copiado para a área de transferência",Copy:eN,"Copy noun":"cópia de","Copy to clipboard":"Copiar para área de transferência",'Copy view "%s"':'Copiar visualização "%s"',Create:tN,"Create copy":"Criar cópia","Create instance":"Criar instância","Create new project":"Criar novo projeto",'Create or import new "vis-2" project':'Crie ou importe um novo projeto "vis-2"',"Current project":"Projeto atual",Cut:iN,"Dark reconnect screen":"Tela de reconexão escura","Deactivate binding and use field as standard input":"Desative a vinculação e use o campo como entrada padrão",Default:sN,"Default view":"Visualização padrão","Default: auto":'Padrão: "auto"',Delete:nN,"Delete actual view":"Excluir visualização real","Delete widgets":"Excluir widgets","Destroy inactive view":"Destruir vista inativa","Detected new version of vis files. Reloading in 2 seconds...":"Detectada nova versão dos arquivos vis. Recarregando em 2 segundos...",Devices:oN,Disabled:aN,"Do not ask again":"Não pergunte novamente","Do not hide menu":"Não esconda o menu completamente","Do you want to create first demo project?":"Deseja criar o primeiro projeto de demonstração?",'Do you want to delete folder "%s"':'Deseja deletar a pasta "%s"','Do you want to delete project "%s"?':'Deseja excluir o projeto "%s"?','Do you want to delete view "%s"?':'Deseja excluir a visualização "%s"?','Do you want to include "%s" widget into "%s"?':'Deseja incluir o widget "%s" em "%s"?',"Drag me":"Arraste-me","Drop the files here ...":"Solte os arquivos aqui...",Duplicate:rN,"Duplicate folder":"Duplique a pasta","Duplicate profile":"Duplique o perfil",Edit:lN,"Edit binding":"Editar vinculação","Edit folder":"Editar pasta","Edit group":"Editar grupo","Edit profile":"Editar Perfil",Elements:cN,Enabled:dN,Enter:uN,"Enter password":"Digite a senha","Enter the browser instances divided by comma":"Insira as instâncias do navegador divididas por vírgula","Expand all":"Expandir todos",Explanation:_N,Export:gN,'Export "%s"':'Exportar "%s"',"Export widgets":"Exportar widgets","External dialog":"Diálogo externo","Fields of group will be cleaned":"Os campos do grupo serão limpos","File too large":"Arquivo muito grande",Files:hN,"Filter widgets":"Filtrar widgets","Fm dark background":"Fm fundo escuro","Fm light background":"Fundo de luz fm","Following views will be changed":"As seguintes visualizações serão alteradas","For widgets with relative position":"Para widgets com posição relativa",Fr:pN,"Full HD - Landscape":"Full HD - Paisagem","Full HD - Portrait":"Full HD - Retrato","Full panel":"Painel completo","Galaxy Fold - Landscape":"Galaxy Fold - Paisagem","Galaxy Fold - Portrait":"Galaxy Fold - Retrato",Global:mN,"Gradient box":"Caixa de gradiente","Gray 0":"Cinza 0","Gray 1":"Cinza 1",Grid:fN,Group:wN,"Group view css background":"Plano de fundo css de visualização de grupo","Group widgets":"Agrupar widgets","H gradient black 0":"H gradiente preto 0","H gradient black 1":"H gradiente preto 1","H gradient black 2":"H gradiente preto 2","H gradient black 3":"H gradiente preto 3","H gradient black 4":"H gradiente preto 4","H gradient black 5":"H gradiente preto 5","H gradient blue 0":"H gradiente azul 0","H gradient blue 1":"H gradiente azul 1","H gradient blue 2":"H gradiente azul 2","H gradient blue 3":"H gradiente azul 3","H gradient blue 4":"H gradiente azul 4","H gradient blue 5":"H gradiente azul 5","H gradient blue 6":"H gradiente azul 6","H gradient blue 7":"H gradiente azul 7","H gradient gray 0":"H gradiente cinza 0","H gradient gray 1":"H gradiente cinza 1","H gradient gray 2":"H gradiente cinza 2","H gradient gray 3":"H gradiente cinza 3","H gradient gray 4":"H gradiente cinza 4","H gradient gray 5":"H gradiente cinza 5","H gradient gray 6":"H gradiente cinza 6","H gradient green 0":"H gradiente verde 0","H gradient green 1":"H gradiente verde 1","H gradient green 2":"H gradiente verde 2","H gradient green 3":"H gradiente verde 3","H gradient green 4":"H gradiente verde 4","H gradient orange 0":"H gradiente laranja 0","H gradient orange 1":"H gradiente laranja 1","H gradient orange 2":"H gradiente laranja 2","H gradient orange 3":"H gradiente laranja 3","H gradient yellow 0":"H gradiente amarelo 0","H gradient yellow 1":"H gradiente amarelo 1","H gradient yellow 2":"H gradiente amarelo 2","H gradient yellow 3":"H gradiente amarelo 3","HD - Landscape":"HD - Paisagem","HD - Portrait":"HD - Retrato",Height:bN,Hide:vN,"Hide after selection":"Ocultar após seleção","Hide all views":"Ocultar todas as visualizações","Hide attributes":"Ocultar atributos","Hide menu":"Ocultar menu","Hide palette":"Ocultar paleta","Hide panel names":"Ocultar nomes de painéis","Hide selected widgets":"Ocultar widgets selecionados",High:yN,"High priority":"Prioridade máxima","Highest eg. Holiday":"Mais alto, por exemplo. Feriado",Horizontal:jN,Icon:xN,"If user not in group":"Se o usuário não estiver no grupo",Ignore:$N,"Ignored in edit mode":"Ignorado no modo de edição",Image:SN,Import:kN,"Import project":"Importar projeto","Import widgets":"Importar widgets","Include widget?":"Incluir widget?","Initial filter":"Filtro inicial",Instance:qN,"Invalid file type":"Tipo de arquivo inválido","Jump to widget by double click":"Vá para o widget clicando duas vezes no widget","Just use without modification":"Basta usar sem modificação","Keep on old place":"Manter no lugar antigo","Limit background color":"Cor de fundo","Limit border color":"Cor da borda","Limit border style":"Estilo de borda","Limit border width":"Largura da borda","Limit only for instances":"Limite apenas para instâncias","Limit screen":"Tela limite","Lined paper":"Papel pautado","Load project file...":"Carregando arquivo do projeto...","Load widgets...":"Carregando widgets...","Loading objects...":"Carregando objetos...",Lock:CN,"Lock dragging":"Bloquear arrastando","Manage projects":"Gerenciar projetos","Manage views":"Gerenciar visualizações","Menu header text":"Texto do cabeçalho do menu","Menu header text color":"Cor do texto do cabeçalho do menu","Menu width":"Largura do menu",Message:PN,Mo:DN,Modify:TN,More:MN,"Move down":"Mover para baixo","Move to new place":"Mover para um novo local","Move up":"Subir","Move widget down or press longer to open re-order menu":"Mova o widget para baixo ou pressione mais para abrir o menu de reordenar","Move widget up or press longer to open re-order menu":"Mova o widget para cima ou pressione mais para abrir o menu de reordenar",Name:zN,"Name is not unique":"O nome não é único","Name of copy":"Nome da cópia","Narrow panel":"Painel estreito",Navigation:IN,"Nest Hub - Landscape":"Nest Hub - Paisagem","Nest Hub - Portrait":"Nest Hub - Retrato","Nest Hub Max - Landscape":"Nest Hub Max - Paisagem","Nest Hub Max - Portrait":"Nest Hub Max - Retrato","New name":"Novo nome","New view":"Nova visualização",No:HN,"No background":"Sem plano de fundo",Normal:AN,OFF:ON,ON:LN,Objects:WN,Ok:RN,"On/Off":"Ligado desligado","One parameter":"Um parâmetro","Only for desktop":"Somente para desktop","Only for groups":"Apenas para grupos","Only the admin user can change permissions":"Somente o usuário administrador pode alterar as permissões",Open:NN,"Open all":"Expandir todos","Open it?":"Abra?","Open runtime in new window":"Abra o tempo de execução em uma nova janela","Open widgeteria":"Widgeteria aberta",Options:EN,Order:FN,Orientation:VN,Palette:BN,Paste:UN,Percent:YN,Permissions:GN,"Pixel 5 - Landscape":"Pixel 5 - Paisagem","Pixel 5 - Portrait":"Pixel 5 - Retrato",Priority:JN,'Project "%s" does not exist':'O projeto "%s" não existe','Project "%s" was successfully imported':'O projeto "%s" foi importado com sucesso',"Project already exists":"O projeto já existe","Project name":"Nome do Projeto","Project settings":"Configurações do projeto","Project was updated":"O projeto foi atualizado","Project was updated by another browser instance. Do you want to reload it?":"O projeto foi atualizado por outra instância do navegador. Deseja recarregá-lo?",Projects:KN,"Radial blue":"Azul radial",Read:ZN,"Read = Runtime access":"Leitura = acesso ao tempo de execução","Read about currentColor in SVG":"Leia sobre currentColor em SVG","Rebuild HTML pages":"Reconstruir páginas HTML","Rebuild of HTML pages was started":"A reconstrução das páginas HTML foi iniciada","Received user command: %s":"Comando de usuário recebido: %s","Reconnect interval":"Intervalo de reconexão",Redo:XN,"Reload all browsers if project changed":"Recarregue todos os navegadores se o projeto for alterado","Reload all runtimes":"Recarregue todos os ambientes de execução","Reload if sleep longer than":"Recarregue se dormir mais de","Reload now":"Recarregar agora",Reloading:QN,Rename:eE,'Rename folder "%s"':'Renomeie a pasta "%s"','Rename project "%s"':'Renomear projeto "%s"',"Rename view":"Renomear visualização",'Rename view "%s"':'Renomear a visualização "%s"',"Render always":"Renderizar sempre","Reset all intervals to following value:":"Redefina todos os intervalos para o seguinte valor:",Resolution:tE,"Responsive settings":"Configurações responsivas","Row gap":"Lacuna entre linhas",Sa:iE,"Samsung Galaxy A51/71 - Landscape":"Samsung Galaxy A51/71 - Paisagem","Samsung Galaxy A51/71 - Portrait":"Samsung Galaxy A51/71 - Retrato","Samsung Galaxy S20 Ultra - Landscape":"Samsung Galaxy S20 Ultra - Paisagem","Samsung Galaxy S20 Ultra - Portrait":"Samsung Galaxy S20 Ultra - Retrato","Samsung Galaxy S8+ - Landscape":"Samsung Galaxy S8+ - Paisagem","Samsung Galaxy S8+ - Portrait":"Samsung Galaxy S8+ - Retrato",Save:sE,Scripts:nE,Search:oE,Select:aE,"Select all":"Selecionar tudo","Select object ID":"Selecione o ID do objeto","Select or create profile in left menu":"Selecione ou crie um perfil no menu esquerdo","Select project":"Selecione o projeto","Select vis-2 project":'Selecione o projeto "vis-2"',"Send to back":"Enviar para trás","Sent to back":"Enviado para trás",Set:"Definir","Set all periods to one value":"Defina todos os períodos para um valor","Set widgets filter for edit mode":"Ocultar widgets (que possuem chave de filtro) no modo de edição",Settings:rE,"Should it be moved to new place?":"Deve ser movido para um novo local?",Show:lE,"Show all views":"Mostrar todas as visualizações","Show app bar":"Mostrar","Show background of button":"Plano de fundo do botão Mostrar","Show navigation":"Mostrar navegação","Show only selected widgets":"Mostrar apenas widgets selecionados","Show only toolbar on the top and hide menu itself":"Mostrar apenas a barra de ferramentas na parte superior e ocultar o próprio menu","Show palette":"Mostrar paleta","Show this attribute by all views":"Mostrar este atributo em todas as visualizações","Show view":"Mostrar visualização","Specify filter to see more icons":"Especifique o filtro para ver mais ícones","States Debounce Time (millis)":"Estados Debounce Time (milis)",Style:cE,"Style of menu button only when the menu is hidden":"Estilo do botão de menu apenas quando o menu está oculto",Su:dE,"Surface Duo - Landscape":"Surface Duo - Paisagem","Surface Duo - Portrait":"Surface Duo - Retrato","Surface Pro 7 - Landscape":"Surface Pro 7 - Paisagem","Surface Pro 7 - Portrait":"Surface Pro 7 - Retrato","Switch to group edit mode by double click":"Mude para o modo de edição de grupo clicando duas vezes no widget",Tabs:uE,Temperature:_E,"Text color":"Cor do texto","Text color if selected":"Cor do texto, se selecionado","Text edit":"edição de texto",Th:gE,Theme:hE,"This view will be shown only to defined groups":"Esta vista será mostrada apenas para grupos definidos",'This widget is already used in "%s"':'Este widget já é usado em "%s"',Title:pE,"To use it, define by some widget the filter key":"Para usá-lo, defina por algum widget a chave de filtro","Toggle runtime":"Alternar tempo de execução","Toggle widget hint (dark)":"Alternar dica de widget (escuro)","Toggle widget hint (hide)":"Alternar dica de widget (ocultar)","Toggle widget hint (light)":"Alternar dica de widget (luz)",Tu:mE,Type:fE,Undo:wE,Ungroup:bE,Uninstall:vE,'Unknown widget type "%s"':'Tipo de widget desconhecido "%s"',Unlock:yE,Unselect:jE,Update:xE,"Usage of widget %s":"Uso do widget %s","Use background":"Usar plano de fundo","Use field as binding":"Usar campo como vinculação","User defined":"Usuário definido",Value:$E,Vertical:SE,View:kE,"View not defined":"Visualização não definida",We:qE,Weekend:CE,Widget:PE,"Widget CSS":"CSS do widget","Widget JS":"Widget JS","Widget was deleted in widgeteria":"O widget foi deletado na widgeteria",Widgets:DE,Width:TE,"Width x height (px)":"Largura x altura (px)",Write:ME,"Write = Edit mode access":"Gravar = acesso ao modo de edição",Writer:zE,"Wrong password":"Senha incorreta",Yes:IE,"You can open dialog with following script:":"Você pode abrir a caixa de diálogo com o seguinte script:","You can provide here the state that controls the activation of this profile":"Você pode fornecer aqui o estado que controla a habilitação deste perfil",__marketplace:HE,ace_All:AE,"ace_CaseSensitive Search":"Pesquisa que diferencia maiúsculas de minúsculas","ace_RegExp Search":"Pesquisa RegExp","ace_Search In Selection":"Pesquisar na seleção","ace_Search for":"Procurar","ace_Toggle Replace mode":"Alternar modo Substituir","ace_Whole Word Search":"Pesquisa de palavras inteiras",alt_false:OE,alt_true:LE,anonymize:WE,apply_to_all:RE,attr_none:NE,basic_all_filters:EE,basic_arrow:FE,basic_borderColor:VE,basic_borderRadius:BE,basic_circle:UE,basic_custom:YE,basic_filter_multiple:GE,basic_filter_type_dropdown:JE,basic_filter_type_horizontal_buttons:KE,basic_filter_type_vertical_buttons:ZE,basic_hexagone:XE,basic_line:QE,basic_no_all_option:eF,basic_no_filter:tF,basic_no_filter_text:iF,basic_node_hide_corner:sF,basic_octagone:nF,basic_pentagone:oF,basic_pin:aF,basic_speech2text_continuous:rF,basic_speech2text_detected:lF,basic_speech2text_en_us:cF,basic_speech2text_height:dF,basic_speech2text_image_active:uF,basic_speech2text_image_inactive:_F,basic_speech2text_info_allow:gF,basic_speech2text_info_blocked:hF,basic_speech2text_info_denied:pF,basic_speech2text_info_no_microphone:mF,basic_speech2text_info_no_speech:fF,basic_speech2text_info_speak_now:wF,basic_speech2text_info_start:bF,basic_speech2text_info_upgrade:vF,basic_speech2text_key_word_color:yF,basic_speech2text_key_word_color_tooltip:jF,basic_speech2text_keywords:xF,basic_speech2text_no_image:$F,basic_speech2text_no_results:SF,basic_speech2text_no_text:kF,basic_speech2text_ru_ru:qF,basic_speech2text_sent:CF,basic_speech2text_single:PF,basic_speech2text_speech_mode:DF,basic_speech2text_start_stop:TF,basic_speech2text_started:MF,basic_speech2text_text_sent_color:zF,basic_speech2text_text_sent_color_tooltip:IF,basic_speech2text_width:HF,basic_square:AF,basic_star:OF,basic_sub_view:LF,basic_triangle:WF,block:RF,color:NF,color_false:EF,color_true:FF,"convert from widgeteria widget":"converter de widget widgeteria",copy:VF,css_project:BF,custom_icons:UF,different:YF,display:GF,"finish searching":"procura terminada",flex:JF,flexible:KF,folder:ZF,"font-family":"família de fontes","font-size":"tamanho da fonte","font-style":"estilo de fonte","font-variant":"variante de fonte","font-weight":"espessura da fonte",group:XF,group_attrName:QF,group_attrType:e4,group_fields:t4,group_help:i4,group_icon_false:s4,group_icon_true:n4,group_size_hint:o4,group_text:a4,help_css_global:r4,help_css_project:l4,hide:c4,"hide code":"ocultar código",horizontal:d4,hr:u4,"iPad Air - Landscape":"iPad Air - Paisagem","iPad Air - Portrait":"iPad Air - Retrato","iPad Mini - Landscape":"iPad Mini - Paisagem","iPad Mini - Portrait":"iPad Mini - Retrato","iPad Pro - Landscape":"iPad Pro - Paisagem","iPad Pro - Portrait":"iPad Pro - Retrato","iPhone 12 Pro - Landscape":"iPhone 12 Pro - Paisagem","iPhone 12 Pro - Portrait":"iPhone 12 Pro - Retrato","iPhone SE - Landscape":"iPhone SE - Paisagem","iPhone SE - Portrait":"iPhone SE - Retrato","iPhone XR - Landscape":"iPhone XR - Paisagem","iPhone XR - Portrait":"iPhone XR - Retrato",icon_size_in_pixels:_4,icon_upload_hint:g4,imageHeight_false:h4,imageHeight_true:p4,invert_icon_false:m4,invert_icon_true:f4,"jqui_Add new value":"Adicionar novo valor","jqui_Are you sure?":"Tem certeza?","jqui_Bulk edit":"Edição em massa",jqui_Close:w4,jqui_Example:b4,"jqui_Generate states":"Gerar estados","jqui_Generate steps":"Gerar etapas","jqui_Maximum value":"Valor máximo","jqui_Minimum value":"Valor mínimo","jqui_Number settings":"Configurações de número",jqui_Percents:v4,"jqui_Replace to":"Substituir com","jqui_Select file":"Selecione a imagem","jqui_Write state":"Escrever estado",jqui_active_color:y4,jqui_ampm:j4,jqui_asDate:x4,jqui_asFullDate:$4,jqui_as_string:S4,jqui_auto:k4,jqui_binary_control:q4,jqui_button_binary_control_note:C4,jqui_button_color:P4,jqui_button_dialog_close:D4,jqui_button_input_note:T4,jqui_button_link:M4,jqui_button_link_blank:z4,jqui_button_link_blank_note:I4,jqui_button_nav_blank_note:H4,jqui_button_text:A4,jqui_buttontext_view:O4,jqui_clearable:L4,jqui_color:W4,jqui_container_button_dialog:R4,jqui_container_dialog:N4,jqui_container_icon_dialog:E4,jqui_dialog_name:F4,jqui_dialog_set_id_tooltip:V4,jqui_disableFuture:B4,jqui_disablePast:U4,jqui_displayWeekNumber:Y4,jqui_equal_text_length:G4,jqui_equal_text_length_tooltip:J4,jqui_external_dialog:K4,jqui_external_dialog_tooltip:Z4,jqui_false:X4,jqui_from_oid:Q4,jqui_from_value:e8,jqui_generate:t8,jqui_group_value:i8,jqui_hide_close_button:s8,jqui_href_tooltip:n8,jqui_html:o8,jqui_html_dialog:a8,jqui_html_external_dialog:r8,jqui_html_false:l8,jqui_html_tooltip:c8,jqui_html_true:d8,jqui_icon:u8,jqui_icon_active:_8,jqui_icon_dialog:g8,jqui_icon_http_get:h8,jqui_icon_increment:p8,jqui_icon_link:m8,jqui_icon_max:f8,jqui_icon_state_bool:w8,jqui_icon_state_push_button:b8,jqui_icon_toggle:v8,jqui_image:y8,jqui_image_active:j8,jqui_image_height:x8,jqui_image_max:$8,jqui_increment_decrement:S8,jqui_input:k8,jqui_input_date:q8,jqui_input_time:C8,jqui_input_with_button:P8,jqui_invert_icon:D8,jqui_inverted:T8,jqui_jquery_style:M8,jqui_max:z8,jqui_min:I8,jqui_name:H8,jqui_nav_view:A8,jqui_navigation_button:O8,jqui_navigation_icon:L8,jqui_navigation_password:W8,jqui_not_equal_length:R8,jqui_off:N8,jqui_oid_working:E8,jqui_on:F8,jqui_only_icon:V8,jqui_open:B8,jqui_orientation:U8,jqui_password:Y8,jqui_password_tooltip:G8,jqui_push_mode:J8,jqui_push_mode_tooltip:K8,jqui_radio_buttons_on_off:Z8,jqui_radio_list:X8,jqui_radio_steps:Q8,jqui_range:eV,jqui_read_only:tV,jqui_repeat_delay:iV,jqui_repeat_interval:sV,jqui_select_all_on_focus:nV,jqui_select_all_on_focus_tooltip:oV,jqui_select_list:aV,jqui_set_label:rV,jqui_set_timeout:lV,jqui_single:cV,jqui_slider:dV,jqui_slider_note:uV,jqui_slider_vertical:_V,jqui_state_note:gV,jqui_states_control:hV,jqui_stepMinute:pV,jqui_test:mV,jqui_text:fV,jqui_text_active:wV,jqui_text_max:bV,jqui_toggle:vV,jqui_tooltip:yV,jqui_true:jV,jqui_type:xV,jqui_unit:$V,jqui_url_group:SV,jqui_url_in_background:kV,jqui_url_in_browser:qV,jqui_url_tooltip:CV,jqui_value:PV,jqui_value_label_display:DV,jqui_variant:TV,jqui_view_group:MV,jqui_wideFormat:zV,jqui_widgetTitle:IV,jqui_with_enter_button:HV,jqui_write_state_note:AV,jqui_write_value:OV,"letter-spacing":"espaçamento entre letras","line-height":"altura da linha",material_icons_baseline:LV,"material_icons_knx-uf":"knx-uf",material_icons_outline:WV,material_icons_result:RV,material_icons_round:NV,material_icons_sharp:EV,material_icons_twotone:FV,material_icons_upload:VV,"multi-views":"Mostrar em visualizações",never:BV,no_reload:UV,none:YV,normal:GV,"not defined":"não definido","not-specified":"não definido",optional:JV,order_help:KV,orientation:ZV,profile:XV,"qui_Bool SVG":"SVG booleano",reload:QV,"search text":"Texto de pesquisa",set_basic:e3,"signals-color":"Cor","signals-count":"Número de sinais","signals-smallIcon-0":"Ícone pequeno [0]","signals-smallIcon-1":"Ícone pequeno [1]","signals-smallIcon-2":"Ícone pequeno [3]","signals-text":"Texto ou modelo","signals-text-0":"Texto [0]","signals-text-1":"Texto [1]","signals-text-2":"Texto [2]","signals-text-tooltip":"Você pode usar %s para mostrar o valor atual no texto",sub_view_tooltip:t3,"text-shadow":"sombra de texto",text_false:i3,text_true:s3,"to version":"para versão",value_string:n3,version:o3,vertical:a3,"vis-2-widgets-basic-autoSetDelay":"Atraso para gravação automática","vis-2-widgets-basic-input_value":"Valor de entrada","vis-2-widgets-basic-noStyle":"Sem estilo",visResizable:r3,vis_2_widgets_basic_cannot_recursive:l3,vis_2_widgets_basic_contains_view:c3,vis_2_widgets_basic_view_in_widget:d3,vis_2_widgets_basic_view_not_defined:u3,vis_2_widgets_swipe_hide_indication_label:_3,vis_2_widgets_swipe_threshold_label:g3,vis_2_widgets_widgets_swipe_label:h3,vis_2_widgets_widgets_tabs_color:p3,vis_2_widgets_widgets_tabs_group_tab:m3,vis_2_widgets_widgets_tabs_label:f3,vis_2_widgets_widgets_tabs_show_tabs:w3,vis_2_widgets_widgets_tabs_tab_icon:b3,vis_2_widgets_widgets_tabs_tab_icon_color:v3,vis_2_widgets_widgets_tabs_tab_icon_size:y3,vis_2_widgets_widgets_tabs_tab_image:j3,vis_2_widgets_widgets_tabs_tab_overflow_x:x3,vis_2_widgets_widgets_tabs_tab_overflow_y:$3,vis_2_widgets_widgets_tabs_tab_title:S3,vis_2_widgets_widgets_tabs_tab_view:k3,vis_2_widgets_widgets_tabs_variant:q3,vis_2_widgets_widgets_tabs_variant_centered:C3,vis_2_widgets_widgets_tabs_variant_default:P3,vis_2_widgets_widgets_tabs_variant_full_width:D3,vis_2_widgets_widgets_tabs_vertical:T3,welcome_message:M3,"word-spacing":"espaçamento entre palavras"},I3="Toevoegen",H3="Beheerder",A3="Alle",O3="Aluminium1",L3="Aluminium2",W3="Toepassen",R3="attributen",N3="Basis",E3="Benutzer",F3="Bakstenen",V3="CSS",B3="Annuleren",U3="Duidelijk",Y3="Kloon",G3="Dichtbij",J3="Kleurrijk",K3="Opmerking",Z3="Kopiëren",X3="Creëren",Q3="Snee",eB="Standaard",tB="Verwijderen",iB="Apparaten",sB="Gehandicapt",nB="Duplicaat",oB="Bewerking",aB="elementen",rB="Ingeschakeld",lB="Binnenkomen",cB="Uitleg",dB="Exporteren",uB="Bestanden",_B="Fr",gB="Voor alle projecten",hB="Rooster",pB="Groep",mB="Hoogte",fB="Verbergen",wB="Hoog",bB="Horizontaal",vB="Icoon",yB="Negeren",jB="Afbeelding",xB="Importeren",$B="Voorbeeld",SB="Op slot doen",kB="Bericht",qB="Mo",CB="Bewerken",PB="Meer",DB="Naam",TB="Navigatie",MB="Nee",zB="normaal",IB="OFF",HB="ON",AB="Voorwerpen",OB="OK",LB="Open",WB="Opties",RB="Volgorde",NB="Oriëntatie",EB="Palet",FB="Plakken",VB="procent",BB="Rechten",UB="Prioriteit",YB="Projecten",GB="Lezen",JB="Opnieuw doen",KB="Herladen",ZB="Hernoemen",XB="Oplossing",QB="Sa",e6="Opslaan",t6="Scripts",i6="Zoeken",s6="Selecteer",n6="Instellingen",o6="Show",a6="Stijl",r6="Su",l6="Tabbladen",c6="Temperatuur",d6="Th",u6="Thema",_6="Titel",g6="Tu",h6="Type",p6="ongedaan maken",m6="Degroeperen",f6="Verwijderen",w6="Ontgrendelen",b6="Deselecteer",v6="Update",y6="Waarde",j6="Verticaal",x6="Visie",$6="Mi",S6="Weekend",k6="Widget",q6="Widgets",C6="Breedte",P6="Schrijven",D6="auteur",T6="Ja",M6="Widgetaria",z6="Alle",I6="Tooltip door false",H6="Tooltip van true",A6="anonimiseren",O6="Voor iedereen",L6="none",W6="Voeg alles links toe",R6="Pijl",N6="Rand kleur",E6="Randradius",F6="Cirkel",V6="Aangepaste veelhoek",B6="Meerdere selectie",U6="Drop-down menu",Y6="Horizontale knoppen",G6="Verticale knoppen",J6="Zeshoek",K6="Lijn",Z6='Geen optie "Geen filter".',X6="Geen filter",Q6='Etiket "Geen filter".',e7="Verberg hoek",t7="Achthoek",i7="Pentagon",s7="Pin",n7="continu",o7="Gedetecteerd",a7="Engels",r7="Hoogte (px)",l7="Actief",c7="Inactief",d7="Klik op de knop 'Toestaan' hierboven om uw microfoon in te schakelen.",u7="Toestemming om de microfoon te gebruiken is geblokkeerd. Ga naar chrome://settings/contentExceptions#media-stream om dit te wijzigen",_7="Toestemming voor het gebruik van de microfoon is geweigerd.",g7='Er is geen microfoon gevonden. Zorg ervoor dat er een microfoon is geïnstalleerd en dat <a href="//support.google.com/chrome/bin/answer.py?hl=nl&answer=1407892">microfooninstellingen</a> correct zijn geconfigureerd.',h7='Er werd geen spraak gedetecteerd. Mogelijk moet u uw <a href="//support.google.com/chrome/bin/answer.py?hl=nl&answer=1407892">microfooninstellingen</a> aanpassen.',p7="Nu spreken.",m7="Klik op het microfoonpictogram en begin te spreken.",f7='Web Speech API wordt niet ondersteund door deze browser. Upgrade naar <a href="//www.google.com/chrome">Chrome</a> versie 25 of hoger.',w7="Sleutelwoord kleur",b7="Tekstkleur, indien sleutelwoord gevonden",v7="Trefwoorden",y7="Geen afbeelding",j7="Geen resultaten",x7="Geen helptekst",$7="Russisch",S7="Verstuurd",k7="enkel",q7="Spraakmodus",C7="start Stop",P7="Begonnen",D7="Kleur verzonden tekst",T7="Tekstkleur, wanneer tekst wordt verzonden om deze te verwerken",M7="Breedte (px)",z7="Vierkant",I7="Ster",H7="Subweergave",A7="Driehoek",O7="blok",L7="kleur",W7="Kleur op false",R7="Kleur op waar",N7="kopie",E7="Voor dit project",F7="Speciaal",V7="verschillend",B7="Scherm",U7="buigen",Y7="flexibel",G7="Map",J7="Groep",K7="Naam",Z7="Type",X7="attributen",Q7='U kunt in de attributen van de groepswidget de speciale namen definiëren in de indeling "%yourCustomName%" en deze zal verschijnen in de "Attributen"-instellingen. Daarna kunt u de naam en het type aangepaste kenmerken opgeven.',eU="Icoon door false",tU="Icoon van waar",iU="U kunt de groepsgrootte wijzigen door deze te selecteren in de vervolgkeuzewidgetkiezer of door op deze tekst te klikken",sU="Tekst",nU="Deze CSS wordt toegepast op alle projecten",oU="Deze CSS wordt alleen toegepast op dit project",aU="verbergen",rU="horizontaal",lU="uur",cU="Pictogramgrootte in pixels",dU="U kunt uw eigen pictogram tot 10k bytes uploaden als base64. Het wordt direct in het project opgeslagen. Als u een SVG-bestand wilt uploaden, vergeet dan niet het currentColor-kenmerk in te stellen.",uU="Hoogte afbeelding",_U="Hoogte afbeelding",gU="Pictogram omkeren",hU="Pictogram omkeren",pU="Dichtbij",mU="Voorbeeld",fU="Procenten",wU="Actieve kleur",bU="AM PM",vU="Als datum",yU="Gebruik van volledige parseerbare datum",jU="Als touwtje",xU="auto",$U="Binaire controle",SU='Verouderd. Gebruik de widget "Binaire controle". Alleen bewaard voor compatibiliteit met vis.1',kU="Knop kleur",qU="Dialoogvenster sluitknop",CU='Verouderd. Gebruik de "Invoer"-widget. Alleen bewaard voor compatibiliteit met vis.1',PU="Spring naar URL",DU="Spring naar URL (in nieuw venster)",TU='Verouderd. Gebruik de eerste widget met de optie "Openen in nieuw venster". Alleen behouden voor compatibiliteit met vis.1',MU='Verouderd. Gebruik de eerste widget met de optie "Ga naar weergave". Alleen bewaard voor compatibiliteit met vis.1',zU="Knop tekst",IU="Gebruik de weergavenaam als titel",HU="Verwijderbaar",AU="Kleur",OU="Button=>Paginadialoogvenster",LU="Containerdialoogvenster",WU="Icon=>Paginadialoogvenster",RU="Dialoognaam",NU="Status instellen door dialoogvenster te openen",EU="Toekomst uitschakelen",FU="Schakel verleden uit",VU="Weeknummer weergeven",BU="Gelijke tekstlengtes",UU='Indien geactiveerd, zullen de lengtes van de teksten voor waar en onwaar gelijk zijn, zodat het pictogram op dezelfde plaats blijft in de status "uit" en "aan".',YU="Externe dialoog",GU='Dit dialoogvenster is niet zichtbaar op de pagina, maar kan worden geopend via het externe commando "dialogOpen" met de dialoognaam of widget-ID als parameter.',JU="Vals",KU="Van ander voorwerp",ZU="Van statische waarde",XU="Genereer",QU="Waarde",e5="Sluitknop verbergen",t5="Deze URL wordt in de browser aangeroepen",i5="HTML",s5="HTML-dialoogvenster",n5="Externe dialoog",o5="HTML door false",a5="HTML kan alleen worden geconfigureerd als tekst en pictogram leeg zijn",r5="HTML door waar",l5="Icoon",c5="Actief icoon",d5="Pictogramdialoog",u5="Aanroep-URL in backend",_5="Verhogen met Icoon",g5="Spring naar URL (met icoon)",h5="Icoon voor maximum",p5="Booleaanse pictogramknop",m5="Druk op de knop",f5="Schakelknop met pictogram",w5="Afbeelding",b5="Actief beeld",v5="Hoogte afbeelding",y5="Afbeelding voor maximaal",j5="Verhogen/verlagen",x5="Invoer",$5="Invoer van datum",S5="Invoer van tijd",k5="Ingang met knop",q5="Pictogram omkeren",C5="Omgekeerd",P5="jQuery-stijl",D5="Maximale waarde",T5="Minimale waarde",M5="Titel",z5="Ga naar bekijken",I5="Navigatieknop",H5="Navigatiepictogram",A5="Navigatie met wachtwoord",O5="Niet gelijke breedte",L5="Uit",W5="Werkende ID",R5="Ing.",N5="Alleen icoon",E5="Als lijst",F5="Oriëntatie",V5="Wachtwoord",B5="De gebruiker moet een wachtwoord invoeren om het dialoogvenster te openen en naar de pagina of URL te gaan",U5="Push-modus",Y5="Als u op de knop drukt, wordt 'true' geschreven en als u de knop loslaat, wordt 'false' geschreven.",G5="Keuzerondjes (aan/uit)",J5="Radiolijst met waarden",K5="Keuzerondje (stappen)",Z5="bereik",X5="Alleen lezen",Q5="Herhalingsvertraging",eY="Herhaal interval",tY="Selecteer alles met focus",iY="Bij focus wordt alle tekst geselecteerd, zodat deze snel kan worden verwijderd of gewijzigd zonder op de backspace-knop te drukken",sY="Selecteer uit de lijst",nY="Gestileerd",oY="Time-out schrijven",aY="enkel",rY="Schuifregelaar",lY="Verouderd. Gebruik de schuifwidget met de oriëntatie ingesteld op verticaal. Alleen bewaard voor compatibiliteit met vis.1",cY="Verticale schuifregelaar",dY='Verouderd. Gebruik de widget "Statescontrole" met de optie "verhogen/verlagen". Alleen bewaard voor compatibiliteit met vis.1',uY="Controle door staten",_Y="Stap minuut",gY="Testwaarde",hY="Tekst",pY="Actieve tekst",mY="Tekst voor maximaal",fY="Schakelaar",wY="Tooltip",bY="WAAR",vY="Type",yY="Eenheid",jY="Bel URL door te klikken",xY="URL in back-end",$Y="URL in browser",SY="Deze URL wordt op de achtergrond aangeroepen door de ioBroker-engine",kY="Waarde",qY="Etiket weergeven",CY="Variant",PY="Navigatieweergave",DY="Breed formaat",TY="Titel",MY="Met enterknop",zY='Verouderd. Gebruik de widget "Wirte state" met de optie "verhogen/verlagen". Alleen bewaard voor compatibiliteit met vis.1',IY="Schrijf waarde",HY="Gevuld",AY="geschetst",OY="%s overeenkomende resultaten",LY="Ronde",WY="Scherp",RY="Twee toon",NY="Uploaden",EY="nooit",FY="geen herladen",VY="geen",BY="normaal",UY="optioneel",YY="U kunt elk item slepen en neerzetten of klikken op het item waarmee de geselecteerde widget wordt verwisseld",GY="oriëntatie",JY="Profiel",KY="herladen",ZY="basis",XY="Het wordt gebruikt voor speciale doeleinden, zoals navigatie in jaeger-design",QY="Tekst door false",eG="Tekst door waar",tG="snaar",iG="versie",sG="verticaal",nG="Aanpasbaar",oG="Kan recursieve weergaven niet gebruiken",aG="Gebruik weergave",rG="Bekijk in widget",lG="Weergave niet gedefinieerd",cG="Indicatie verbergen",dG="Drempelwaarde",uG="Swipe",_G="Kleur",gG="tabblad",hG="Tabbladen",pG="Nummer",mG="Icoon",fG="Kleur",wG="Pictogram grootte",bG="Afbeelding",vG="Overloop X",yG="Overloop Y",jG="Titel",xG="Weergave",$G="Variant",SG="gecentreerd",kG="Standaard",qG="volle breedte",CG="Verticaal",PG="Er is nog geen enkel project.",DG={"%s from %s":"%s van %s","%s widgets":"%s widgets","(Maximal file size is %s)":"(Maximale bestandsgrootte is %s)","-attachment":"-attachment","-clip":"-clip","-color":"-color","-image":"-image","-origin":"-origin","-position":"-position","-repeat":"-repeat","-size":"-size","1 day":"1 dag","1 hour":"1 uur","1 minute":"1 minuut","1 second":"1 seconde","10 minutes":"10 minuten","10 seconds":"10 seconden","12 hours":"12 uren","15 m.":"15 m.","2 hours":"twee uur","2 seconds":"2 seconden","20 seconds":"20 seconden","3 hours":"3 uur","30 m.":"30 m.","30 minutes":"30 minuten","30 seconds":"30 seconden","5 minutes":"5 minuten","5 seconds":"5 seconden","6 hours":"6 uur","Activation state":"Activeringsstatus:","Active widget(s) from %s":"Actieve widget(s) van %s",Add:I3,"Add folder":"Map toevoegen","Add new child folder":"Nieuwe onderliggende map toevoegen","Add new child profile":"Nieuw kinderprofiel toevoegen","Add new or update existing widget":`Nieuwe widget toevoegen of bestaande widget bijwerken
`,"Add new view":"Nieuwe weergave","Add profile":"Profiel toevoegen","Add project":"Project toevoegen","Add sub-folder":"Submap toevoegen","Add to widgeteria":"Toevoegen aan widgeteria","Add view":"Weergave toevoegen",Administrator:H3,"Align height. Press more time to get the desired height.":"Hoogte uitlijnen. Druk meer tijd om de gewenste hoogte te krijgen.","Align horizontal/center":"Horizontaal/midden uitlijnen","Align horizontal/equal":"Horizontaal/gelijk uitlijnen","Align horizontal/left":"Horizontaal/links uitlijnen","Align horizontal/right":"Horizontaal/rechts uitlijnen","Align vertical/bottom":"Lijn verticaal/onder uit","Align vertical/center":"Verticaal/midden uitlijnen","Align vertical/equal":"Lijn verticaal/gelijk uit","Align vertical/top":"Lijn verticaal/boven uit","Align width. Press more time to get the desired width.":"Breedte uitlijnen. Druk meer tijd om de gewenste breedte te krijgen.",All:A3,Aluminium1:O3,Aluminium2:L3,"App bar":"Toepassingsbalk",Apply:W3,"Apply ALL navigation properties to all views":"Pas ALLE navigatie-eigenschappen toe op alle weergaven","Apply to all views":"Pas deze eigenschap toe op alle weergaven","Are you sure":"Weet je het zeker","Are you sure to delete widgets %s?":"Weet je zeker dat je widgets %s wilt verwijderen?",Attributes:R3,"Available for all":"Project toegankelijk voor alle gebruikers","Background class":"Achtergrondklas","Background color":"Achtergrond kleur","Background color if selected":"Achtergrondkleur indien geselecteerd","Bar color":"Achtergrond kleur","Bar icon":"Icoon","Bar image":"Afbeelding","Bar text":"Ondertiteling",Basic:N3,Benutzer:E3,"Blue flowers":"Blauwe bloemen","Blue marine":"Marine blauw","Blue marine lines":"Blauwe zeelijnen","Blueprint grid":"Blauwdrukraster","Body overflow":"Body overflow",Bricks:F3,"Bring to front":"Naar voren brengen","Browse files":"Bestanden doorbladeren","Browse objects":"Door objecten bladeren","Browse the widgeteria":"Blader door de widgeteria","Browser instance ID":"ID van browserinstantie","Browser tab favicon":"Browsertabblad favicon","Browser tab title":"Titel van browsertabblad","By horizontal menu do not show text if icon provided":"Bij horizontaal menu geen tekst tonen als pictogram aanwezig is",CSS:V3,"CSS Class":"CSS-klasse","CSS Common":"CSS algemeen","CSS Font & Text":"CSS-lettertype en tekst","CSS background (background-...)":"CSS achtergrond (background-...)",Cancel:B3,"Cannot use recursive views":"Kan recursieve weergaven niet gebruiken","Carbon fibre":"Koolstofvezel","Carbon fibre1":"Koolstofvezel1","Chevron icon color":"Kleur van de showknop",Clear:U3,"Clear filter":"Filter wissen","Click to close":"Klik om te sluiten",Clone:Y3,"Clone widget":"Kloon-widget",Close:G3,"Close all":"Alles inklappen","Close all but current view":"Sluit alles behalve de huidige weergave","Close editor":"Bewerker sluiten","Collapse all":"Alles inklappen",Colorful:J3,"Column gap":"Kolomafstand","Column width":"Kolombreedte",Comment:K3,"Convert %s to %s":"Converteer %s naar %s","Copied %s":"%s gekopieerd","Copied to clipboard":"Gekopieerd naar het klembord",Copy:Z3,"Copy noun":"Kopiëren","Copy to clipboard":"Kopieer naar klembord",'Copy view "%s"':'Kopieer weergave "%s"',Create:X3,"Create copy":"Kopie maken","Create instance":"Instantie maken","Create new project":"Maak een nieuw project aan",'Create or import new "vis-2" project':'Maak of importeer een nieuw "vis-2"-project',"Current project":"Huidige project",Cut:Q3,"Dark reconnect screen":"Donker scherm voor opnieuw verbinden","Deactivate binding and use field as standard input":"Deactiveer binding en gebruik veld als standaardinvoer",Default:eB,"Default view":"Standaard weergave","Default: auto":'Standaard: "auto"',Delete:tB,"Delete actual view":"Werkelijke weergave verwijderen","Delete widgets":"Widgets verwijderen","Destroy inactive view":"Inactieve weergave vernietigen","Detected new version of vis files. Reloading in 2 seconds...":"Nieuwe versie van vis-bestanden gedetecteerd. Herladen in 2 seconden...",Devices:iB,Disabled:sB,"Do not ask again":"Niet meer vragen","Do not hide menu":"Verberg het menu niet volledig","Do you want to create first demo project?":"Wilt u een eerste demoproject maken?",'Do you want to delete folder "%s"':'Wilt u map "%s" verwijderen','Do you want to delete project "%s"?':'Wilt u project "%s" verwijderen?','Do you want to delete view "%s"?':'Wilt u weergave "%s" verwijderen?','Do you want to include "%s" widget into "%s"?':'Wilt u de widget "%s" opnemen in "%s"?',"Drag me":"Sleep mij","Drop the files here ...":"Zet de bestanden hier neer...",Duplicate:nB,"Duplicate folder":"Dupliceer de map","Duplicate profile":"Dupliceer het profiel",Edit:oB,"Edit binding":"Binding bewerken","Edit folder":"Map bewerken","Edit group":"Groep bewerken","Edit profile":"Bewerk profiel",Elements:aB,Enabled:rB,Enter:lB,"Enter password":"Voer wachtwoord in","Enter the browser instances divided by comma":"Voer de browserinstanties in, gescheiden door komma's","Expand all":"Alles uitvouwen",Explanation:cB,Export:dB,'Export "%s"':'Exporteren "%s"',"Export widgets":"Widgets exporteren","External dialog":"Externe dialoog","Fields of group will be cleaned":"Velden van de groep worden opgeschoond","File too large":"Bestand te groot",Files:uB,"Filter widgets":"Filterwidgets","Fm dark background":"Fm donkere achtergrond","Fm light background":"FM lichte achtergrond","Following views will be changed":"De volgende weergaven zullen worden gewijzigd","For widgets with relative position":"Voor widgets met relatieve positie",Fr:_B,"Full HD - Landscape":"Full HD - Landschap","Full HD - Portrait":"Full HD - Portret","Full panel":"Volledig paneel","Galaxy Fold - Landscape":"Galaxy Fold - Liggend","Galaxy Fold - Portrait":"Galaxy Fold - Portret",Global:gB,"Gradient box":"Verloopdoos","Gray 0":"Grijs 0","Gray 1":"Grijs 1",Grid:hB,Group:pB,"Group view css background":"Groepsweergave css-achtergrond","Group widgets":"Groepeer widgets samen","H gradient black 0":"H verloop zwart 0","H gradient black 1":"H verloop zwart 1","H gradient black 2":"H verloop zwart 2","H gradient black 3":"H verloop zwart 3","H gradient black 4":"H verloop zwart 4","H gradient black 5":"H verloop zwart 5","H gradient blue 0":"H gradiënt blauw 0","H gradient blue 1":"H verloop blauw 1","H gradient blue 2":"H verloop blauw 2","H gradient blue 3":"H verloop blauw 3","H gradient blue 4":"H verloop blauw 4","H gradient blue 5":"H verloop blauw 5","H gradient blue 6":"H verloop blauw 6","H gradient blue 7":"H verloop blauw 7","H gradient gray 0":"H gradiënt grijs 0","H gradient gray 1":"H verloop grijs 1","H gradient gray 2":"H verloop grijs 2","H gradient gray 3":"H verloop grijs 3","H gradient gray 4":"H verloop grijs 4","H gradient gray 5":"H verloop grijs 5","H gradient gray 6":"H verloop grijs 6","H gradient green 0":"H gradiënt groen 0","H gradient green 1":"H verloop groen 1","H gradient green 2":"H verloop groen 2","H gradient green 3":"H verloop groen 3","H gradient green 4":"H verloop groen 4","H gradient orange 0":"H verloop oranje 0","H gradient orange 1":"H verloop oranje 1","H gradient orange 2":"H verloop oranje 2","H gradient orange 3":"H verloop oranje 3","H gradient yellow 0":"H gradiënt geel 0","H gradient yellow 1":"H verloop geel 1","H gradient yellow 2":"H verloop geel 2","H gradient yellow 3":"H verloop geel 3","HD - Landscape":"HD - Landschap","HD - Portrait":"HD - Portret",Height:mB,Hide:fB,"Hide after selection":"Verbergen na selectie","Hide all views":"Verberg alle weergaven","Hide attributes":"Kenmerken verbergen","Hide menu":"Menu verbergen","Hide palette":"Palet verbergen","Hide panel names":"Paneelnamen verbergen","Hide selected widgets":"Verberg geselecteerde widgets",High:wB,"High priority":"Hoge prioriteit","Highest eg. Holiday":"Hoogste bijv. Vakantie",Horizontal:bB,Icon:vB,"If user not in group":"Indien gebruiker niet in groep",Ignore:yB,"Ignored in edit mode":"Genegeerd in bewerkingsmodus",Image:jB,Import:xB,"Import project":"Project importeren","Import widgets":"Widgets importeren","Include widget?":"Widget toevoegen?","Initial filter":"Eerste filter",Instance:$B,"Invalid file type":"Ongeldig bestandstype","Jump to widget by double click":"Spring naar widget door te dubbelklikken op widget","Just use without modification":"Gewoon gebruiken zonder wijziging","Keep on old place":"Blijf op de oude plek","Limit background color":"Achtergrond kleur","Limit border color":"Rand kleur","Limit border style":"Randstijl","Limit border width":"Grensbreedte","Limit only for instances":"Alleen limiet voor instanties","Limit screen":"Beperk scherm","Lined paper":"Lijntjes papier","Load project file...":"Projectbestand laden...","Load widgets...":"Widgets laden...","Loading objects...":"Objecten laden...",Lock:SB,"Lock dragging":"Vergrendelen slepen","Manage projects":"Projecten beheren","Manage views":"Weergaven beheren","Menu header text":"Menukoptekst","Menu header text color":"Tekstkleur menukop","Menu width":"Menubreedte",Message:kB,Mo:qB,Modify:CB,More:PB,"Move down":"Naar beneden verplaatsen","Move to new place":"Verhuizen naar nieuwe plek","Move up":"Ga omhoog","Move widget down or press longer to open re-order menu":"Verplaats de widget naar beneden of druk langer om het menu voor opnieuw bestellen te openen","Move widget up or press longer to open re-order menu":"Beweeg de widget omhoog of druk langer om het bestelmenu te openen",Name:DB,"Name is not unique":"Naam is niet uniek","Name of copy":"Naam van exemplaar","Narrow panel":"smal paneel",Navigation:TB,"Nest Hub - Landscape":"Nest Hub - Liggend","Nest Hub - Portrait":"Nest Hub - Portret","Nest Hub Max - Landscape":"Nest Hub Max - Liggend","Nest Hub Max - Portrait":"Nest Hub Max - Portret","New name":"Nieuwe naam","New view":"Nieuw uitzicht",No:MB,"No background":"Geen achtergrond",Normal:zB,OFF:IB,ON:HB,Objects:AB,Ok:OB,"On/Off":"Aan uit","One parameter":"Eén parameter","Only for desktop":"Alleen voor desktop","Only for groups":"Alleen voor groepen","Only the admin user can change permissions":"Alleen de admin-gebruiker kan machtigingen wijzigen",Open:LB,"Open all":"Alles uitvouwen","Open it?":"Open het?","Open runtime in new window":"Open runtime in nieuw venster","Open widgeteria":"Widgeteria openen",Options:WB,Order:RB,Orientation:NB,Palette:EB,Paste:FB,Percent:VB,Permissions:BB,"Pixel 5 - Landscape":"Pixel 5 - Liggend","Pixel 5 - Portrait":"Pixel 5 - Portret",Priority:UB,'Project "%s" does not exist':'Project "%s" bestaat niet','Project "%s" was successfully imported':'Project "%s" is succesvol geïmporteerd',"Project already exists":"Project bestaat al","Project name":"Naam van het project","Project settings":"Projectinstellingen","Project was updated":"Project is bijgewerkt","Project was updated by another browser instance. Do you want to reload it?":"Project is bijgewerkt door een andere browserinstantie. Wil je hem herladen?",Projects:YB,"Radial blue":"Radiaal blauw",Read:GB,"Read = Runtime access":"Lezen = Runtime-toegang","Read about currentColor in SVG":"Lees meer over currentColor in SVG","Rebuild HTML pages":"HTML-pagina's opnieuw opbouwen","Rebuild of HTML pages was started":"Heropbouw van HTML-pagina's is gestart","Received user command: %s":"Gebruikersopdracht ontvangen: %s","Reconnect interval":"Interval opnieuw verbinden",Redo:JB,"Reload all browsers if project changed":"Laad alle browsers opnieuw als het project is gewijzigd","Reload all runtimes":"Alle runtimes opnieuw laden","Reload if sleep longer than":"Herladen als je langer slaapt dan","Reload now":"Nu opnieuw laden",Reloading:KB,Rename:ZB,'Rename folder "%s"':'Hernoem map "%s"','Rename project "%s"':'Hernoem project "%s"',"Rename view":"Weergave hernoemen",'Rename view "%s"':'Hernoem weergave "%s"',"Render always":"Altijd renderen","Reset all intervals to following value:":"Reset alle intervallen naar de volgende waarde:",Resolution:XB,"Responsive settings":"Responsieve instellingen","Row gap":"Rijafstand",Sa:QB,"Samsung Galaxy A51/71 - Landscape":"Samsung Galaxy A51/71 - Liggend","Samsung Galaxy A51/71 - Portrait":"Samsung Galaxy A51/71 - Portret","Samsung Galaxy S20 Ultra - Landscape":"Samsung Galaxy S20 Ultra - Liggend","Samsung Galaxy S20 Ultra - Portrait":"Samsung Galaxy S20 Ultra - Portret","Samsung Galaxy S8+ - Landscape":"Samsung Galaxy S8+ - Liggend","Samsung Galaxy S8+ - Portrait":"Samsung Galaxy S8+ - Portret",Save:e6,Scripts:t6,Search:i6,Select:s6,"Select all":"Selecteer alles","Select object ID":"Selecteer object-ID","Select or create profile in left menu":"Selecteer of maak een profiel aan in het linkermenu","Select project":"Selecteer project","Select vis-2 project":'Selecteer "vis-2"-project',"Send to back":"Stuur naar terug","Sent to back":"Verzonden naar terug",Set:"Set","Set all periods to one value":"Zet alle perioden op één waarde","Set widgets filter for edit mode":"Verberg widgets (die een filtersleutel hebben) in de bewerkingsmodus",Settings:n6,"Should it be moved to new place?":"Moet het naar een nieuwe plek worden verplaatst?",Show:o6,"Show all views":"Toon alle weergaven","Show app bar":"Show","Show background of button":"Achtergrond van knop Toon","Show navigation":"Toon navigatie","Show only selected widgets":"Toon alleen geselecteerde widgets","Show only toolbar on the top and hide menu itself":"Toon alleen de werkbalk bovenaan en verberg het menu zelf","Show palette":"Toon palet","Show this attribute by all views":"Toon dit attribuut bij alle weergaven","Show view":"Toon weergave","Specify filter to see more icons":"Geef een filter op om meer pictogrammen te zien","States Debounce Time (millis)":"Debouncetijd van staten (millis)",Style:a6,"Style of menu button only when the menu is hidden":"Stijl van menuknop alleen als het menu verborgen is",Su:r6,"Surface Duo - Landscape":"Surface Duo - Liggend","Surface Duo - Portrait":"Surface Duo - Portret","Surface Pro 7 - Landscape":"Surface Pro 7 - Liggend","Surface Pro 7 - Portrait":"Surface Pro 7 - Staand","Switch to group edit mode by double click":"Schakel over naar de groepsbewerkingsmodus door te dubbelklikken op de widget",Tabs:l6,Temperature:c6,"Text color":"Tekst kleur","Text color if selected":"Tekstkleur indien geselecteerd","Text edit":"Tekst bewerken",Th:d6,Theme:u6,"This view will be shown only to defined groups":"Deze weergave wordt alleen getoond aan gedefinieerde groepen",'This widget is already used in "%s"':'Deze widget wordt al gebruikt in "%s"',Title:_6,"To use it, define by some widget the filter key":"Om het te gebruiken, definieert u door een widget de filtersleutel","Toggle runtime":"Toggle runtime","Toggle widget hint (dark)":"Widget-hint omschakelen (donker)","Toggle widget hint (hide)":"Widgethint in-/uitschakelen (verbergen)","Toggle widget hint (light)":"Widget-hint omschakelen (licht)",Tu:g6,Type:h6,Undo:p6,Ungroup:m6,Uninstall:f6,'Unknown widget type "%s"':'Onbekend widgettype "%s"',Unlock:w6,Unselect:b6,Update:v6,"Usage of widget %s":"Gebruik van widget %s","Use background":"Achtergrond gebruiken","Use field as binding":"Gebruik veld als bindend","User defined":"Gebruiker gedefinieerde",Value:y6,Vertical:j6,View:x6,"View not defined":"Weergave niet gedefinieerd",We:$6,Weekend:S6,Widget:k6,"Widget CSS":"Widget-CSS","Widget JS":"Widget-JS","Widget was deleted in widgeteria":"Widget is verwijderd in widgeteria",Widgets:q6,Width:C6,"Width x height (px)":"Breedte x hoogte (px)",Write:P6,"Write = Edit mode access":"Schrijven = Toegang tot bewerkingsmodus",Writer:D6,"Wrong password":"Verkeerd wachtwoord",Yes:T6,"You can open dialog with following script:":"U kunt een dialoogvenster openen met het volgende script:","You can provide here the state that controls the activation of this profile":"U kunt hier de status opgeven die de mogelijkheid van dit profiel bepaalt",__marketplace:M6,ace_All:z6,"ace_CaseSensitive Search":"Hoofdlettergevoelig zoeken","ace_RegExp Search":"RegExp-zoekopdracht","ace_Search In Selection":"Zoeken in selectie","ace_Search for":"Zoeken","ace_Toggle Replace mode":"Schakel de vervangingsmodus in","ace_Whole Word Search":"Zoeken op hele woorden",alt_false:I6,alt_true:H6,anonymize:A6,apply_to_all:O6,attr_none:L6,basic_all_filters:W6,basic_arrow:R6,basic_borderColor:N6,basic_borderRadius:E6,basic_circle:F6,basic_custom:V6,basic_filter_multiple:B6,basic_filter_type_dropdown:U6,basic_filter_type_horizontal_buttons:Y6,basic_filter_type_vertical_buttons:G6,basic_hexagone:J6,basic_line:K6,basic_no_all_option:Z6,basic_no_filter:X6,basic_no_filter_text:Q6,basic_node_hide_corner:e7,basic_octagone:t7,basic_pentagone:i7,basic_pin:s7,basic_speech2text_continuous:n7,basic_speech2text_detected:o7,basic_speech2text_en_us:a7,basic_speech2text_height:r7,basic_speech2text_image_active:l7,basic_speech2text_image_inactive:c7,basic_speech2text_info_allow:d7,basic_speech2text_info_blocked:u7,basic_speech2text_info_denied:_7,basic_speech2text_info_no_microphone:g7,basic_speech2text_info_no_speech:h7,basic_speech2text_info_speak_now:p7,basic_speech2text_info_start:m7,basic_speech2text_info_upgrade:f7,basic_speech2text_key_word_color:w7,basic_speech2text_key_word_color_tooltip:b7,basic_speech2text_keywords:v7,basic_speech2text_no_image:y7,basic_speech2text_no_results:j7,basic_speech2text_no_text:x7,basic_speech2text_ru_ru:$7,basic_speech2text_sent:S7,basic_speech2text_single:k7,basic_speech2text_speech_mode:q7,basic_speech2text_start_stop:C7,basic_speech2text_started:P7,basic_speech2text_text_sent_color:D7,basic_speech2text_text_sent_color_tooltip:T7,basic_speech2text_width:M7,basic_square:z7,basic_star:I7,basic_sub_view:H7,basic_triangle:A7,block:O7,color:L7,color_false:W7,color_true:R7,"convert from widgeteria widget":"converteren van widgeteria-widget",copy:N7,css_project:E7,custom_icons:F7,different:V7,display:B7,"finish searching":"zoeken klaar",flex:U7,flexible:Y7,folder:G7,"font-family":"font-familie","font-size":"lettertypegrootte","font-style":"lettertype","font-variant":"lettertype-variant","font-weight":"lettertype dikte",group:J7,group_attrName:K7,group_attrType:Z7,group_fields:X7,group_help:Q7,group_icon_false:eU,group_icon_true:tU,group_size_hint:iU,group_text:sU,help_css_global:nU,help_css_project:oU,hide:aU,"hide code":"code verbergen",horizontal:rU,hr:lU,"iPad Air - Landscape":"iPad Air - Liggend","iPad Air - Portrait":"iPad Air - Portret","iPad Mini - Landscape":"iPad Mini - Liggend","iPad Mini - Portrait":"iPad Mini - Portret","iPad Pro - Landscape":"iPad Pro - Liggend","iPad Pro - Portrait":"iPad Pro - Portret","iPhone 12 Pro - Landscape":"iPhone 12 Pro - Liggend","iPhone 12 Pro - Portrait":"iPhone 12 Pro - Portret","iPhone SE - Landscape":"iPhone SE - Liggend","iPhone SE - Portrait":"iPhone SE - Portret","iPhone XR - Landscape":"iPhone XR - Liggend","iPhone XR - Portrait":"iPhone XR - Portret",icon_size_in_pixels:cU,icon_upload_hint:dU,imageHeight_false:uU,imageHeight_true:_U,invert_icon_false:gU,invert_icon_true:hU,"jqui_Add new value":"Voeg nieuwe waarde toe","jqui_Are you sure?":"Weet je het zeker?","jqui_Bulk edit":"Bulkbewerking",jqui_Close:pU,jqui_Example:mU,"jqui_Generate states":"Genereer staten","jqui_Generate steps":"Genereer stappen","jqui_Maximum value":"Maximale waarde","jqui_Minimum value":"Minimale waarde","jqui_Number settings":"Nummerinstellingen",jqui_Percents:fU,"jqui_Replace to":"Vervangen door","jqui_Select file":"Selecteer afbeelding","jqui_Write state":"Schrijf staat",jqui_active_color:wU,jqui_ampm:bU,jqui_asDate:vU,jqui_asFullDate:yU,jqui_as_string:jU,jqui_auto:xU,jqui_binary_control:$U,jqui_button_binary_control_note:SU,jqui_button_color:kU,jqui_button_dialog_close:qU,jqui_button_input_note:CU,jqui_button_link:PU,jqui_button_link_blank:DU,jqui_button_link_blank_note:TU,jqui_button_nav_blank_note:MU,jqui_button_text:zU,jqui_buttontext_view:IU,jqui_clearable:HU,jqui_color:AU,jqui_container_button_dialog:OU,jqui_container_dialog:LU,jqui_container_icon_dialog:WU,jqui_dialog_name:RU,jqui_dialog_set_id_tooltip:NU,jqui_disableFuture:EU,jqui_disablePast:FU,jqui_displayWeekNumber:VU,jqui_equal_text_length:BU,jqui_equal_text_length_tooltip:UU,jqui_external_dialog:YU,jqui_external_dialog_tooltip:GU,jqui_false:JU,jqui_from_oid:KU,jqui_from_value:ZU,jqui_generate:XU,jqui_group_value:QU,jqui_hide_close_button:e5,jqui_href_tooltip:t5,jqui_html:i5,jqui_html_dialog:s5,jqui_html_external_dialog:n5,jqui_html_false:o5,jqui_html_tooltip:a5,jqui_html_true:r5,jqui_icon:l5,jqui_icon_active:c5,jqui_icon_dialog:d5,jqui_icon_http_get:u5,jqui_icon_increment:_5,jqui_icon_link:g5,jqui_icon_max:h5,jqui_icon_state_bool:p5,jqui_icon_state_push_button:m5,jqui_icon_toggle:f5,jqui_image:w5,jqui_image_active:b5,jqui_image_height:v5,jqui_image_max:y5,jqui_increment_decrement:j5,jqui_input:x5,jqui_input_date:$5,jqui_input_time:S5,jqui_input_with_button:k5,jqui_invert_icon:q5,jqui_inverted:C5,jqui_jquery_style:P5,jqui_max:D5,jqui_min:T5,jqui_name:M5,jqui_nav_view:z5,jqui_navigation_button:I5,jqui_navigation_icon:H5,jqui_navigation_password:A5,jqui_not_equal_length:O5,jqui_off:L5,jqui_oid_working:W5,jqui_on:R5,jqui_only_icon:N5,jqui_open:E5,jqui_orientation:F5,jqui_password:V5,jqui_password_tooltip:B5,jqui_push_mode:U5,jqui_push_mode_tooltip:Y5,jqui_radio_buttons_on_off:G5,jqui_radio_list:J5,jqui_radio_steps:K5,jqui_range:Z5,jqui_read_only:X5,jqui_repeat_delay:Q5,jqui_repeat_interval:eY,jqui_select_all_on_focus:tY,jqui_select_all_on_focus_tooltip:iY,jqui_select_list:sY,jqui_set_label:nY,jqui_set_timeout:oY,jqui_single:aY,jqui_slider:rY,jqui_slider_note:lY,jqui_slider_vertical:cY,jqui_state_note:dY,jqui_states_control:uY,jqui_stepMinute:_Y,jqui_test:gY,jqui_text:hY,jqui_text_active:pY,jqui_text_max:mY,jqui_toggle:fY,jqui_tooltip:wY,jqui_true:bY,jqui_type:vY,jqui_unit:yY,jqui_url_group:jY,jqui_url_in_background:xY,jqui_url_in_browser:$Y,jqui_url_tooltip:SY,jqui_value:kY,jqui_value_label_display:qY,jqui_variant:CY,jqui_view_group:PY,jqui_wideFormat:DY,jqui_widgetTitle:TY,jqui_with_enter_button:MY,jqui_write_state_note:zY,jqui_write_value:IY,"letter-spacing":"letterafstand","line-height":"lijnhoogte",material_icons_baseline:HY,"material_icons_knx-uf":"knx-uf",material_icons_outline:AY,material_icons_result:OY,material_icons_round:LY,material_icons_sharp:WY,material_icons_twotone:RY,material_icons_upload:NY,"multi-views":"Weergeven in weergaven",never:EY,no_reload:FY,none:VY,normal:BY,"not defined":"niet gedefinieerd","not-specified":"niet gedefinieerd",optional:UY,order_help:YY,orientation:GY,profile:JY,"qui_Bool SVG":"Booleaanse SVG",reload:KY,"search text":"Zoek tekst",set_basic:ZY,"signals-color":"Kleur","signals-count":"Aantal signalen","signals-smallIcon-0":"Klein pictogram [0]","signals-smallIcon-1":"Klein icoontje [1]","signals-smallIcon-2":"Klein icoontje [3]","signals-text":"Tekst of sjabloon","signals-text-0":"Tekst [0]","signals-text-1":"Tekst [1]","signals-text-2":"Tekst [2]","signals-text-tooltip":"U kunt %s gebruiken om de huidige waarde in tekst weer te geven",sub_view_tooltip:XY,"text-shadow":"schaduw tekst",text_false:QY,text_true:eG,"to version":"naar versie",value_string:tG,version:iG,vertical:sG,"vis-2-widgets-basic-autoSetDelay":"Vertraging voor automatisch schrijven","vis-2-widgets-basic-input_value":"Invoerwaarde","vis-2-widgets-basic-noStyle":"Geen stijl",visResizable:nG,vis_2_widgets_basic_cannot_recursive:oG,vis_2_widgets_basic_contains_view:aG,vis_2_widgets_basic_view_in_widget:rG,vis_2_widgets_basic_view_not_defined:lG,vis_2_widgets_swipe_hide_indication_label:cG,vis_2_widgets_swipe_threshold_label:dG,vis_2_widgets_widgets_swipe_label:uG,vis_2_widgets_widgets_tabs_color:_G,vis_2_widgets_widgets_tabs_group_tab:gG,vis_2_widgets_widgets_tabs_label:hG,vis_2_widgets_widgets_tabs_show_tabs:pG,vis_2_widgets_widgets_tabs_tab_icon:mG,vis_2_widgets_widgets_tabs_tab_icon_color:fG,vis_2_widgets_widgets_tabs_tab_icon_size:wG,vis_2_widgets_widgets_tabs_tab_image:bG,vis_2_widgets_widgets_tabs_tab_overflow_x:vG,vis_2_widgets_widgets_tabs_tab_overflow_y:yG,vis_2_widgets_widgets_tabs_tab_title:jG,vis_2_widgets_widgets_tabs_tab_view:xG,vis_2_widgets_widgets_tabs_variant:$G,vis_2_widgets_widgets_tabs_variant_centered:SG,vis_2_widgets_widgets_tabs_variant_default:kG,vis_2_widgets_widgets_tabs_variant_full_width:qG,vis_2_widgets_widgets_tabs_vertical:CG,welcome_message:PG,"word-spacing":"woordspatiëring"},TG="Ajouter",MG="Administrateur",zG="Tous",IG="Aluminium1",HG="Aluminium2",AG="Appliquer",OG="Les attributs",LG="De base",WG="Benutzer",RG="Briques",NG="CSS",EG="Annuler",FG="Dégager",VG="Cloner",BG="Proche",UG="Coloré",YG="Commentaire",GG="Copie",JG="Créer",KG="Couper",ZG="Défaut",XG="Effacer",QG="Dispositifs",e9="Désactivée",t9="Dupliquer",i9="Éditer",s9="Éléments",n9="Activée",o9="Entrer",a9="Explication",r9="Exporter",l9="Des dossiers",c9="Fr",d9="Pour tous les projets",u9="Grille",_9="Groupe",g9="Hauteur",h9="Cacher",p9="Haute",m9="Horizontal",f9="Icône",w9="Ignorer",b9="Image",v9="Importer",y9="Exemple",j9="Bloquer",x9="Message",$9="Mo",S9="Modifier",k9="Suite",q9="Nom",C9="La navigation",P9="Non",D9="Normal",T9="OFF",M9="ON",z9="Objets",I9="Ok",H9="Ouvrir",A9="Choix",O9="Commande",L9="Orientation",W9="Palette",R9="Pâte",N9="Pour cent",E9="Autorisations",F9="Priorité",V9="Projets",B9="Lire",U9="Refaire",Y9="Rechargement",G9="Renommer",J9="Résolution",K9="Sa",Z9="sauvegarder",X9="Scénarios",Q9="Chercher",eJ="Sélectionner",tJ="Réglages",iJ="Spectacle",sJ="Style",nJ="Su",oJ="Onglets",aJ="Température",rJ="Th",lJ="Thème",cJ="Titre",dJ="Ma",uJ="Taper",_J="annuler",gJ="Dissocier",hJ="Désinstaller",pJ="Ouvrir",mJ="Désélectionner",fJ="Mettre à jour",wJ="Valeur",bJ="Verticale",vJ="Voir",yJ="Mi",jJ="Fin de semaine",xJ="Widget",$J="Widget",SJ="Largeur",kJ="Écrire",qJ="Écrivain",CJ="Oui",PJ="Widgeteria",DJ="Tous",TJ="Info-bulle par false",MJ="Info-bulle par true",zJ="anonymiser",IJ="Pour tous",HJ="inherit",AJ="Ajouter tout ce qui reste",OJ="Flèche",LJ="Couleur de la bordure",WJ="Rayon de la frontière",RJ="Cercle",NJ="Polygone personnalisé",EJ="Sélection multiple",FJ="Menu déroulant",VJ="Boutons horizontaux",BJ="Boutons verticaux",UJ="Hexagone",YJ="Doubler",GJ=`Pas d'option "Pas de filtre"`,JJ="Pas de filtre",KJ='Étiquette "Pas de filtre"',ZJ="Cacher le coin",XJ="Octogone",QJ="Pentagone",eK="Épingle",tK="continu",iK="Détecté",sK="Anglais",nK="Hauteur (px)",oK="Actif",aK="Inactif",rK='Cliquez sur le bouton "Autoriser" ci-dessus pour activer votre microphone.',lK="L'autorisation d'utiliser le microphone est bloquée. Pour modifier, accédez à chrome://settings/contentExceptions#media-stream",cK="L'autorisation d'utiliser le microphone a été refusée.",dK=`Aucun microphone n'a été trouvé. Assurez-vous qu'un microphone est installé et que les <a href="//support.google.com/chrome/bin/answer.py?hl=en&answer=1407892"> paramètres du microphone</a> sont correctement configurés.`,uK=`Aucune parole n'a été détectée. Vous devrez peut-être ajuster vos <a href="//support.google.com/chrome/bin/answer.py?hl=en&answer=1407892">paramètres du microphone</a>.`,_K="Parlez maintenant.",gK="Cliquez sur l'icône du microphone et commencez à parler.",hK=`L'API Web Speech n'est pas prise en charge par ce navigateur. Passez à <a href="//www.google.com/chrome">Chrome</a> version 25 ou ultérieure.`,pK="Couleur du mot clé",mK="Couleur du texte, si mot clé trouvé",fK="Mots clés",wK="Pas d'image",bK="Aucun résultat",vK="Aucun texte d'aide",yK="russe",jK="Envoyé",xK="célibataire",$K="Mode parole",SK="commencer arrêter",kK="Commencé",qK="Couleur du texte envoyé",CK="Couleur du texte, lorsque le texte est envoyé pour le traiter",PK="Largeur (px)",DK="Carré",TK="Étoile",MK="Sous-vue",zK="Triangle",IK="bloquer",HK="Couleur",AK="Couleur par faux",OK="Couleur par vrai",LK="copie",WK="Pour ce projet",RK="Spécial",NK="différent",EK="affichage",FK="fléchir",VK="flexible",BK="Dossier",UK="Groupe",YK="Nom",GK="Taper",JK="Les attributs",KK='Vous pouvez définir dans les attributs du widget du groupe les noms spéciaux au format "%yourCustomName%" et ils apparaîtront dans les paramètres "Attributs". Après cela, vous pouvez fournir le nom et le type des attributs personnalisés.',ZK="Icône par false",XK="Icône par vrai",QK="Vous pouvez modifier la taille du groupe, en le sélectionnant dans le sélecteur de widget déroulant ou en cliquant sur ce texte",eZ="Texte",tZ="Ces CSS sont appliquées à tous les projets",iZ="Ces CSS ne s'appliquent qu'à ce projet",sZ="cacher",nZ="horizontal",oZ="les heures",aZ="Taille de l'icône en pixels",rZ="Vous pouvez télécharger votre propre icône jusqu'à 10 000 octets en base64. Il sera enregistré directement dans le projet. Si vous souhaitez télécharger un fichier SVG, n'oubliez pas de définir l'attribut currentColor.",lZ="Hauteur de l'image",cZ="Hauteur de l'image",dZ="Icône Inverser",uZ="Icône Inverser",_Z="Fermer",gZ="Exemple",hZ="Pourcentages",pZ="Couleur active",mZ="Matin après-midi",fZ="Comme date",wZ="Utilisation de la date analysable complète",bZ="En tant que chaîne",vZ="auto",yZ="Contrôle binaire",jZ='Obsolète. Utilisez le widget "Contrôle binaire". Conservé uniquement pour des raisons de compatibilité avec vis.1',xZ="Couleur du bouton",$Z="Bouton de fermeture de la boîte de dialogue",SZ='Obsolète. Utilisez le widget "Entrée". Conservé uniquement pour des raisons de compatibilité avec vis.1',kZ="Aller à l'URL",qZ="Aller à l'URL (dans une nouvelle fenêtre)",CZ=`Obsolète. Utilisez le premier widget avec l'option "Ouvrir dans une nouvelle fenêtre". Conservé uniquement pour la compatibilité avec vis.1`,PZ=`Obsolète. Utilisez le premier widget avec l'option "Aller à la vue". Conservé uniquement pour des raisons de compatibilité avec vis.1`,DZ="Texte du bouton",TZ="Utiliser le nom de la vue comme titre",MZ="Effacable",zZ="Couleur",IZ="Bouton => Boîte de dialogue Page",HZ="Boîte de dialogue Conteneur",AZ="Icône => Boîte de dialogue Page",OZ="Nom de la boîte de dialogue",LZ="Définir l'état en ouvrant la boîte de dialogue",WZ="Désactiver le futur",RZ="Désactiver le passé",NZ="Afficher le numéro de la semaine",EZ="Longueurs de texte égales",FZ=`Si activé, les longueurs des textes pour vrai et faux seront égales, donc l'icône restera au même endroit dans les états "off" et "on".`,VZ="Boîte de dialogue externe",BZ=`Cette boîte de dialogue n'est pas visible sur la page, mais elle peut être ouverte par la commande externe "dialogOpen" avec le nom de la boîte de dialogue ou l'ID du widget en paramètre.`,UZ="FAUX",YZ="Depuis un autre objet",GZ="À partir d'une valeur statique",JZ="Générer",KZ="Valeur",ZZ="Masquer le bouton de fermeture",XZ="Cette URL sera appelée dans le navigateur",QZ="HTML",eX="Boîte de dialogue HTML",tX="Boîte de dialogue externe",iX="HTML par faux",sX="HTML n'est configurable que si le texte et l'icône sont vides",nX="HTML par vrai",oX="Icône",aX="Icône active",rX="Boîte de dialogue d'icône",lX="URL d'appel dans le backend",cX="Incrémenter avec l'icône",dX="Aller à l'URL (avec icône)",uX="Icône pour maximum",_X="Bouton icône booléenne",gX="Bouton poussoir",hX="Bouton bascule avec icône",pX="Image",mX="Image active",fX="Hauteur de l'image",wX="Image pour un maximum",bX="Incrémenter/Décrémenter",vX="Saisir",yX="Saisie de la date",jX="Saisie du temps",xX="Saisie avec bouton",$X="Icône Inverser",SX="Inversé",kX="Style jQuery",qX="Valeur maximum",CX="Valeur minimale",PX="Titre",DX="Aller voir",TX="Bouton de navigation",MX="Icône de navigation",zX="Navigation avec mot de passe",IX="Pas la même largeur",HX="Désactivé",AX="ID de travail",OX="Act.",LX="Seule icône",WX="Comme liste",RX="Orientation",NX="Mot de passe",EX="L'utilisateur doit saisir un mot de passe pour ouvrir la boîte de dialogue, accéder à la page ou à l'URL",FX="Mode poussée",VX="En appuyant sur le bouton, « vrai » sera écrit et lorsque vous relâcherez le bouton, « faux » sera écrit.",BX="Boutons radio (marche/arrêt)",UX="Liste radio avec valeurs",YX="Bouton radio (étapes)",GX="gamme",JX="Lecture seulement",KX="Délai de répétition",ZX="Répéter l'intervalle",XX="Sélectionnez tout sur la mise au point",QX="Au focus, tout le texte sera sélectionné, il peut donc être rapidement supprimé ou modifié sans appuyer sur le bouton de retour arrière",eQ="Sélectionner dans la liste",tQ="Stylisé",iQ="Délai d'écriture",sQ="célibataire",nQ="Glissière",oQ="Obsolète. Utilisez le widget curseur avec une orientation définie sur verticale. Conservé uniquement pour des raisons de compatibilité avec vis.1",aQ="Curseur vertical",rQ=`Obsolète. Utilisez le widget "Contrôle des états" avec l'option "incrémenter/décrémenter". Conservé uniquement pour des raisons de compatibilité avec vis.1`,lQ="Contrôle des États",cQ="Minute de pas",dQ="Valeur de test",uQ="Texte",_Q="Texte actif",gQ="Texte pour maximum",hQ="Basculer",pQ="Info-bulle",mQ="Vrai",fQ="Taper",wQ="Unité",bQ="URL d'appel par clic",vQ="URL dans le backend",yQ="URL dans le navigateur",jQ="Cette URL sera appelée en arrière-plan par le moteur ioBroker",xQ="Valeur",$Q="Afficher l'étiquette",SQ="Une variante",kQ="Vue de navigation",qQ="Grand format",CQ="Titre",PQ="Avec le bouton Entrée",DQ=`Obsolète. Utilisez le widget "Wirte state" avec l'option "incrémenter/décrémenter". Conservé uniquement pour des raisons de compatibilité avec vis.1`,TQ="Écrire la valeur",MQ="Rempli",zQ="Décrit",IQ="%s résultats correspondants",HQ="Tour",AQ="Tranchant",OQ="Deux tons",LQ="Télécharger",WQ="jamais",RQ="pas de rechargement",NQ="rien",EQ="Ordinaire",FQ="optionnel",VQ="Vous pouvez faire glisser et déposer n'importe quel élément ou cliquer sur l'élément avec lequel le widget sélectionné sera échangé",BQ="Orientation",UQ="Profil",YQ="recharger",GQ="de base",JQ="Il est utilisé à des fins spéciales, comme la navigation Jaeger-Design.",KQ="Texte par faux",ZQ="Texte par vrai",XQ="Chaîne de caractères",QQ="version",eee="vertical",tee="Redimensionnable",iee="Impossible d'utiliser les vues récursives",see="Utiliser la vue",nee="Afficher dans le widget",oee="Vue non définie",aee="Masquer l'indication",ree="Seuil",lee="Swipe",cee="Couleur",dee="Languette",uee="Onglets",_ee="Nombre",gee="Icône",hee="Couleur",pee="Taille de l'icône",mee="Image",fee="Débordement X",wee="Débordement Y",bee="Titre",vee="Voir",yee="Une variante",jee="centré",xee="Défaut",$ee="pleine largeur",See="Vertical",kee="Aucun projet n'existe encore.",qee={"%s from %s":"%s de %s","%s widgets":"%s widgets","(Maximal file size is %s)":"(La taille maximale du fichier est %s)","-attachment":"-attachment","-clip":"-clip","-color":"-color","-image":"-image","-origin":"-origin","-position":"-position","-repeat":"-repeat","-size":"-size","1 day":"Un jour","1 hour":"1 heure","1 minute":"1 minute","1 second":"1 seconde","10 minutes":"10 minutes","10 seconds":"10 secondes","12 hours":"12 heures","15 m.":"15 m.","2 hours":"2 heures","2 seconds":"2 secondes","20 seconds":"20 secondes","3 hours":"3 heures","30 m.":"30 m.","30 minutes":"30 minutes","30 seconds":"30 secondes","5 minutes":"5 minutes","5 seconds":"5 secondes","6 hours":"6 heures","Activation state":"État d'activation","Active widget(s) from %s":"Widget(s) actif(s) de %s",Add:TG,"Add folder":"Ajouter le dossier","Add new child folder":"Ajouter un nouveau dossier enfant","Add new child profile":"Ajouter un nouveau profil enfant","Add new or update existing widget":`Ajouter un nouveau widget ou mettre à jour un widget existant
`,"Add new view":"Nouvelle vue","Add profile":"Ajouter un profil","Add project":"Ajouter un projet","Add sub-folder":"Ajouter un sous-dossier","Add to widgeteria":"Ajouter à la widgeteria","Add view":"Ajouter une vue",Administrator:MG,"Align height. Press more time to get the desired height.":"Aligner la hauteur. Appuyez plus longtemps pour obtenir la hauteur souhaitée.","Align horizontal/center":"Aligner horizontalement/centrer","Align horizontal/equal":"Aligner horizontalement/égal","Align horizontal/left":"Aligner horizontalement/gauche","Align horizontal/right":"Aligner horizontalement/à droite","Align vertical/bottom":"Aligner vertical/bas","Align vertical/center":"Aligner verticalement/centrer","Align vertical/equal":"Aligner vertical/égal","Align vertical/top":"Aligner vertical/haut","Align width. Press more time to get the desired width.":"Aligner la largeur. Appuyez plus de temps pour obtenir la largeur souhaitée.",All:zG,Aluminium1:IG,Aluminium2:HG,"App bar":"Barre d'application",Apply:AG,"Apply ALL navigation properties to all views":"Appliquer TOUTES les propriétés de navigation à toutes les vues","Apply to all views":"Appliquer cette propriété à toutes les vues","Are you sure":"Êtes-vous sûr","Are you sure to delete widgets %s?":"Êtes-vous sûr de vouloir supprimer les widgets %s ?",Attributes:OG,"Available for all":"Projet accessible par tous les utilisateurs","Background class":"Classe d'arrière-plan","Background color":"Couleur de l'arrière plan","Background color if selected":"Couleur d'arrière-plan si sélectionnée","Bar color":"Couleur de l'arrière plan","Bar icon":"Icône","Bar image":"Image","Bar text":"Légende",Basic:LG,Benutzer:WG,"Blue flowers":"Fleurs bleues","Blue marine":"Bleu marine","Blue marine lines":"Lignes marines bleues","Blueprint grid":"Grille de plan","Body overflow":"Body overflow",Bricks:RG,"Bring to front":"Mettre au premier plan","Browse files":"Parcourir les fichiers","Browse objects":"Parcourir les objets","Browse the widgeteria":"Parcourir la widgeteria","Browser instance ID":"ID d'instance de navigateur","Browser tab favicon":"Favicon de l'onglet du navigateur","Browser tab title":"Titre de l'onglet du navigateur","By horizontal menu do not show text if icon provided":"Dans le menu horizontal, ne pas afficher le texte si l'icône est fournie",CSS:NG,"CSS Class":"Classe CSS","CSS Common":"CSS commun","CSS Font & Text":"CSS Police et texte","CSS background (background-...)":"CSS Arrière-plan (background-...)",Cancel:EG,"Cannot use recursive views":"Impossible d'utiliser les vues récursives","Carbon fibre":"Fibre de carbone","Carbon fibre1":"Fibre de carbone1","Chevron icon color":"Couleur du bouton Afficher",Clear:FG,"Clear filter":"Effacer le filtre","Click to close":"Cliquez pour fermer",Clone:VG,"Clone widget":"Cloner le widget",Close:BG,"Close all":"Tout réduire","Close all but current view":"Fermer tout sauf la vue actuelle","Close editor":"Fermer l'éditeur","Collapse all":"Réduire tout",Colorful:UG,"Column gap":"Écart de colonne","Column width":"Largeur de colonne",Comment:YG,"Convert %s to %s":"Convertir %s en %s","Copied %s":"%s copié","Copied to clipboard":"Copié dans le presse-papier",Copy:GG,"Copy noun":"Copie","Copy to clipboard":"Copier dans le presse-papier",'Copy view "%s"':'Copier la vue "%s"',Create:JG,"Create copy":"Créer une copie","Create instance":"Créer une","Create new project":"Créer un nouveau projet",'Create or import new "vis-2" project':'Créer ou importer un nouveau projet "vis-2"',"Current project":"Projet en cours",Cut:KG,"Dark reconnect screen":"Écran de reconnexion sombre","Deactivate binding and use field as standard input":"Désactiver la liaison et utiliser le champ comme entrée standard",Default:ZG,"Default view":"Vue par défaut","Default: auto":'Par défaut : "auto"',Delete:XG,"Delete actual view":"Supprimer la vue actuelle","Delete widgets":"Supprimer les widgets","Destroy inactive view":"Détruire la vue inactive","Detected new version of vis files. Reloading in 2 seconds...":"Détection d'une nouvelle version des fichiers vis. Rechargement en 2 secondes...",Devices:QG,Disabled:e9,"Do not ask again":"Ne demande plus","Do not hide menu":"Ne masquez pas complètement le menu","Do you want to create first demo project?":"Voulez-vous créer un premier projet de démonstration ?",'Do you want to delete folder "%s"':'Voulez-vous supprimer le dossier "%s"','Do you want to delete project "%s"?':'Voulez-vous supprimer le projet "%s" ?','Do you want to delete view "%s"?':'Souhaitez-vous supprimer la vue "%s" ?','Do you want to include "%s" widget into "%s"?':"Voulez-vous inclure le widget « %s » dans « %s » ?","Drag me":"Tire moi","Drop the files here ...":"Déposez les fichiers ici...",Duplicate:t9,"Duplicate folder":"Dupliquer le dossier","Duplicate profile":"Dupliquer le profil",Edit:i9,"Edit binding":"Modifier la liaison","Edit folder":"Modifier le dossier","Edit group":"Modifier le groupe","Edit profile":"Editer le profil",Elements:s9,Enabled:n9,Enter:o9,"Enter password":"Entrer le mot de passe","Enter the browser instances divided by comma":"Entrez les instances du navigateur divisées par une virgule","Expand all":"Développer tout",Explanation:a9,Export:r9,'Export "%s"':'Exporter "%s"',"Export widgets":"Exporter des widgets","External dialog":"Boîte de dialogue externe","Fields of group will be cleaned":"Les champs du groupe seront nettoyés","File too large":"Fichier trop large",Files:l9,"Filter widgets":"Filtrer les widgets","Fm dark background":"Fm fond sombre","Fm light background":"Fond clair FM","Following views will be changed":"Les vues suivantes seront modifiées","For widgets with relative position":"Pour les widgets avec position relative",Fr:c9,"Full HD - Landscape":"Full HD - Paysage","Full HD - Portrait":"Full HD - Portrait","Full panel":"Panneau complet","Galaxy Fold - Landscape":"Galaxy Fold - Paysage","Galaxy Fold - Portrait":"Galaxy Fold - Portrait",Global:d9,"Gradient box":"Boîte dégradée","Gray 0":"Gris 0","Gray 1":"Gris 1",Grid:u9,Group:_9,"Group view css background":"Arrière-plan CSS de la vue de groupe","Group widgets":"Regrouper les widgets","H gradient black 0":"H dégradé noir 0","H gradient black 1":"H dégradé noir 1","H gradient black 2":"H dégradé noir 2","H gradient black 3":"H dégradé noir 3","H gradient black 4":"H dégradé noir 4","H gradient black 5":"H dégradé noir 5","H gradient blue 0":"H bleu dégradé 0","H gradient blue 1":"H bleu dégradé 1","H gradient blue 2":"H bleu dégradé 2","H gradient blue 3":"H bleu dégradé 3","H gradient blue 4":"H bleu dégradé 4","H gradient blue 5":"H bleu dégradé 5","H gradient blue 6":"H bleu dégradé 6","H gradient blue 7":"H bleu dégradé 7","H gradient gray 0":"H gris dégradé 0","H gradient gray 1":"H gris dégradé 1","H gradient gray 2":"H gris dégradé 2","H gradient gray 3":"H gris dégradé 3","H gradient gray 4":"H gris dégradé 4","H gradient gray 5":"H gris dégradé 5","H gradient gray 6":"H gris dégradé 6","H gradient green 0":"H dégradé vert 0","H gradient green 1":"H dégradé vert 1","H gradient green 2":"H dégradé vert 2","H gradient green 3":"H dégradé vert 3","H gradient green 4":"H dégradé vert 4","H gradient orange 0":"H orange dégradé 0","H gradient orange 1":"H orange dégradé 1","H gradient orange 2":"H dégradé orange 2","H gradient orange 3":"H dégradé orange 3","H gradient yellow 0":"H jaune dégradé 0","H gradient yellow 1":"H dégradé jaune 1","H gradient yellow 2":"H dégradé jaune 2","H gradient yellow 3":"H dégradé jaune 3","HD - Landscape":"HD-Paysage","HD - Portrait":"HD-Portrait",Height:g9,Hide:h9,"Hide after selection":"Masquer après la sélection","Hide all views":"Masquer toutes les vues","Hide attributes":"Masquer les attributs","Hide menu":"Masquer le menu","Hide palette":"Masquer la palette","Hide panel names":"Masquer les noms des panneaux","Hide selected widgets":"Masquer les widgets sélectionnés",High:p9,"High priority":"Haute priorité","Highest eg. Holiday":"Le plus élevé, par ex. Vacance",Horizontal:m9,Icon:f9,"If user not in group":"Si l'utilisateur n'est pas dans le groupe",Ignore:w9,"Ignored in edit mode":"Ignoré en mode édition",Image:b9,Import:v9,"Import project":"Importer un projet","Import widgets":"Importer des widgets","Include widget?":"Inclure le widget ?","Initial filter":"Filtre initial",Instance:y9,"Invalid file type":"type de fichier invalide","Jump to widget by double click":"Aller au widget en double-cliquant sur le widget","Just use without modification":"A utiliser sans modification","Keep on old place":"Gardez l'ancien endroit","Limit background color":"Couleur de l'arrière plan","Limit border color":"Couleur de la bordure","Limit border style":"Style de bordure","Limit border width":"Largeur de la bordure","Limit only for instances":"Limite uniquement pour les instances","Limit screen":"Écran de limite","Lined paper":"Papier ligné","Load project file...":"Chargement du fichier de projet...","Load widgets...":"Chargement des widgets...","Loading objects...":"Chargement d'objets...",Lock:j9,"Lock dragging":"Verrouiller le glissement","Manage projects":"Gérer des projets","Manage views":"Gérer les vues","Menu header text":"Texte d'en-tête de menu","Menu header text color":"Couleur du texte de l’en-tête du menu","Menu width":"Largeur du menu",Message:x9,Mo:$9,Modify:S9,More:k9,"Move down":"Descendre","Move to new place":"Déplacer vers un nouvel endroit","Move up":"Déplacer vers le haut","Move widget down or press longer to open re-order menu":"Déplacez le widget vers le bas ou appuyez plus longtemps pour ouvrir le menu de réorganisation","Move widget up or press longer to open re-order menu":"Déplacez le widget vers le haut ou appuyez plus longtemps pour ouvrir le menu de réorganisation",Name:q9,"Name is not unique":"Le nom n'est pas unique","Name of copy":"Nom de la copie","Narrow panel":"Panneau étroit",Navigation:C9,"Nest Hub - Landscape":"Nest Hub - Paysage","Nest Hub - Portrait":"Nest Hub - Portrait","Nest Hub Max - Landscape":"Nest Hub Max - Paysage","Nest Hub Max - Portrait":"Nest Hub Max – Portrait","New name":"Nouveau nom","New view":"Nouvelle vue",No:P9,"No background":"Pas de fond",Normal:D9,OFF:T9,ON:M9,Objects:z9,Ok:I9,"On/Off":"Allumé éteint","One parameter":"Un paramètre","Only for desktop":"Uniquement pour ordinateur de bureau","Only for groups":"Uniquement pour les groupes","Only the admin user can change permissions":"Seul l'utilisateur administrateur peut modifier les autorisations",Open:H9,"Open all":"Développer tout","Open it?":"L'ouvrir ?","Open runtime in new window":"Ouvrir le runtime dans une nouvelle fenêtre","Open widgeteria":"Widgeteria ouverte",Options:A9,Order:O9,Orientation:L9,Palette:W9,Paste:R9,Percent:N9,Permissions:E9,"Pixel 5 - Landscape":"Pixel 5 - Paysage","Pixel 5 - Portrait":"Pixel 5 - Portrait",Priority:F9,'Project "%s" does not exist':`Le projet "%s" n'existe pas`,'Project "%s" was successfully imported':'Le projet "%s" a été importé avec succès',"Project already exists":"Le projet existe déjà","Project name":"Nom du projet","Project settings":"Paramètres du projet","Project was updated":"Le projet a été mis à jour","Project was updated by another browser instance. Do you want to reload it?":"Le projet a été mis à jour par une autre instance de navigateur. Voulez-vous le recharger ?",Projects:V9,"Radial blue":"Bleu radial",Read:B9,"Read = Runtime access":"Lecture = accès à l'exécution","Read about currentColor in SVG":"En savoir plus sur currentColor en SVG","Rebuild HTML pages":"Reconstruire les pages HTML","Rebuild of HTML pages was started":"La reconstruction des pages HTML a commencé","Received user command: %s":"Commande utilisateur reçue : %s","Reconnect interval":"Intervalle de reconnexion",Redo:U9,"Reload all browsers if project changed":"Recharger tous les navigateurs si le projet a changé","Reload all runtimes":"Recharger tous les runtimes","Reload if sleep longer than":"Rechargez si vous dormez plus longtemps que","Reload now":"Recharger maintenant",Reloading:Y9,Rename:G9,'Rename folder "%s"':'Renommer le dossier "%s"','Rename project "%s"':'Renommer le projet "%s"',"Rename view":"Renommer la vue",'Rename view "%s"':'Renommer la vue "%s"',"Render always":"Toujours rendre","Reset all intervals to following value:":"Réinitialiser tous les intervalles à la valeur suivante :",Resolution:J9,"Responsive settings":"Paramètres réactifs","Row gap":"Écart de ligne",Sa:K9,"Samsung Galaxy A51/71 - Landscape":"Samsung Galaxy A51/71 - Paysage","Samsung Galaxy A51/71 - Portrait":"Samsung Galaxy A51/71 - Portrait","Samsung Galaxy S20 Ultra - Landscape":"Samsung Galaxy S20 Ultra - Paysage","Samsung Galaxy S20 Ultra - Portrait":"Samsung Galaxy S20 Ultra - Portrait","Samsung Galaxy S8+ - Landscape":"Samsung Galaxy S8+ - Paysage","Samsung Galaxy S8+ - Portrait":"Samsung Galaxy S8+ - Portrait",Save:Z9,Scripts:X9,Search:Q9,Select:eJ,"Select all":"Tout sélectionner","Select object ID":"Sélectionnez l'ID de l'objet","Select or create profile in left menu":"Sélectionnez ou créez un profil dans le menu de gauche","Select project":"Sélectionnez un projet","Select vis-2 project":'Sélectionnez le projet "vis-2"',"Send to back":"Envoyer au fond","Sent to back":"Renvoyé à l'arrière",Set:"Régler","Set all periods to one value":"Définir toutes les périodes sur une valeur","Set widgets filter for edit mode":"Masquer les widgets (qui ont une clé de filtre) en mode édition",Settings:tJ,"Should it be moved to new place?":"Doit-il être déplacé vers un nouvel endroit ?",Show:iJ,"Show all views":"Afficher toutes les vues","Show app bar":"Montrer","Show background of button":"Arrière-plan du bouton Afficher","Show navigation":"Afficher la navigation","Show only selected widgets":"Afficher uniquement les widgets sélectionnés","Show only toolbar on the top and hide menu itself":"Afficher uniquement la barre d'outils en haut et masquer le menu lui-même","Show palette":"Montrer la palette","Show this attribute by all views":"Afficher cet attribut dans toutes les vues","Show view":"Afficher la vue","Specify filter to see more icons":"Spécifiez le filtre pour voir plus d'icônes","States Debounce Time (millis)":"Temps anti-rebond des États (millis)",Style:sJ,"Style of menu button only when the menu is hidden":"Style du bouton de menu uniquement lorsque le menu est caché",Su:nJ,"Surface Duo - Landscape":"Surface Duo - Paysage","Surface Duo - Portrait":"Surface Duo - Portrait","Surface Pro 7 - Landscape":"Surface Pro 7 - Paysage","Surface Pro 7 - Portrait":"Surface Pro 7 - Portrait","Switch to group edit mode by double click":"Passez en mode d'édition de groupe en double-cliquant sur le widget",Tabs:oJ,Temperature:aJ,"Text color":"Couleur du texte","Text color if selected":"Couleur du texte si sélectionné","Text edit":"Modification de texte",Th:rJ,Theme:lJ,"This view will be shown only to defined groups":"Cette vue ne sera montrée qu'aux groupes définis",'This widget is already used in "%s"':'Ce widget est déjà utilisé dans "%s"',Title:cJ,"To use it, define by some widget the filter key":"Pour l'utiliser, définissez par un widget la clé de filtre","Toggle runtime":"Basculer l'exécution","Toggle widget hint (dark)":"Basculer l'indicateur de widget (sombre)","Toggle widget hint (hide)":"Basculer l'indice de widget (masquer)","Toggle widget hint (light)":"Basculer l'indicateur de widget (léger)",Tu:dJ,Type:uJ,Undo:_J,Ungroup:gJ,Uninstall:hJ,'Unknown widget type "%s"':'Type de widget inconnu "%s"',Unlock:pJ,Unselect:mJ,Update:fJ,"Usage of widget %s":"Utilisation du widget %s","Use background":"Utiliser l'arrière-plan","Use field as binding":"Utiliser le champ comme liaison","User defined":"Défini par l'utilisateur",Value:wJ,Vertical:bJ,View:vJ,"View not defined":"Vue non définie",We:yJ,Weekend:jJ,Widget:xJ,"Widget CSS":"CSS des widgets","Widget JS":"WidgetJS","Widget was deleted in widgeteria":"Le widget a été supprimé dans la widgeteria",Widgets:$J,Width:SJ,"Width x height (px)":"Largeur x hauteur (px)",Write:kJ,"Write = Edit mode access":"Ecrire = Accès au mode édition",Writer:qJ,"Wrong password":"Mauvais mot de passe",Yes:CJ,"You can open dialog with following script:":"Vous pouvez ouvrir la boîte de dialogue avec le script suivant :","You can provide here the state that controls the activation of this profile":"Vous pouvez fournir ici l'état qui contrôle l'activation de ce profil",__marketplace:PJ,ace_All:DJ,"ace_CaseSensitive Search":"Recherche sensible à la casse","ace_RegExp Search":"Recherche RegExp","ace_Search In Selection":"Rechercher dans la sélection","ace_Search for":"Rechercher","ace_Toggle Replace mode":"Basculer le mode Remplacer","ace_Whole Word Search":"Recherche par mot entier",alt_false:TJ,alt_true:MJ,anonymize:zJ,apply_to_all:IJ,attr_none:HJ,basic_all_filters:AJ,basic_arrow:OJ,basic_borderColor:LJ,basic_borderRadius:WJ,basic_circle:RJ,basic_custom:NJ,basic_filter_multiple:EJ,basic_filter_type_dropdown:FJ,basic_filter_type_horizontal_buttons:VJ,basic_filter_type_vertical_buttons:BJ,basic_hexagone:UJ,basic_line:YJ,basic_no_all_option:GJ,basic_no_filter:JJ,basic_no_filter_text:KJ,basic_node_hide_corner:ZJ,basic_octagone:XJ,basic_pentagone:QJ,basic_pin:eK,basic_speech2text_continuous:tK,basic_speech2text_detected:iK,basic_speech2text_en_us:sK,basic_speech2text_height:nK,basic_speech2text_image_active:oK,basic_speech2text_image_inactive:aK,basic_speech2text_info_allow:rK,basic_speech2text_info_blocked:lK,basic_speech2text_info_denied:cK,basic_speech2text_info_no_microphone:dK,basic_speech2text_info_no_speech:uK,basic_speech2text_info_speak_now:_K,basic_speech2text_info_start:gK,basic_speech2text_info_upgrade:hK,basic_speech2text_key_word_color:pK,basic_speech2text_key_word_color_tooltip:mK,basic_speech2text_keywords:fK,basic_speech2text_no_image:wK,basic_speech2text_no_results:bK,basic_speech2text_no_text:vK,basic_speech2text_ru_ru:yK,basic_speech2text_sent:jK,basic_speech2text_single:xK,basic_speech2text_speech_mode:$K,basic_speech2text_start_stop:SK,basic_speech2text_started:kK,basic_speech2text_text_sent_color:qK,basic_speech2text_text_sent_color_tooltip:CK,basic_speech2text_width:PK,basic_square:DK,basic_star:TK,basic_sub_view:MK,basic_triangle:zK,block:IK,color:HK,color_false:AK,color_true:OK,"convert from widgeteria widget":"convertir à partir du widget widgeteria",copy:LK,css_project:WK,custom_icons:RK,different:NK,display:EK,"finish searching":"recherche terminée",flex:FK,flexible:VK,folder:BK,"font-family":"famille de polices","font-size":"taille de police","font-style":"le style de police","font-variant":"variante de police","font-weight":"poids de la police",group:UK,group_attrName:YK,group_attrType:GK,group_fields:JK,group_help:KK,group_icon_false:ZK,group_icon_true:XK,group_size_hint:QK,group_text:eZ,help_css_global:tZ,help_css_project:iZ,hide:sZ,"hide code":"masquer le code",horizontal:nZ,hr:oZ,"iPad Air - Landscape":"iPad Air - Paysage","iPad Air - Portrait":"iPad Air - Portrait","iPad Mini - Landscape":"iPad Mini - Paysage","iPad Mini - Portrait":"iPad Mini - Portrait","iPad Pro - Landscape":"iPad Pro - Paysage","iPad Pro - Portrait":"iPad Pro - Portrait","iPhone 12 Pro - Landscape":"iPhone 12 Pro - Paysage","iPhone 12 Pro - Portrait":"iPhone 12 Pro - Portrait","iPhone SE - Landscape":"iPhone SE - Paysage","iPhone SE - Portrait":"iPhone SE - Portrait","iPhone XR - Landscape":"iPhone XR - Paysage","iPhone XR - Portrait":"iPhone XR - Portrait",icon_size_in_pixels:aZ,icon_upload_hint:rZ,imageHeight_false:lZ,imageHeight_true:cZ,invert_icon_false:dZ,invert_icon_true:uZ,"jqui_Add new value":"Ajouter une nouvelle valeur","jqui_Are you sure?":"Es-tu sûr?","jqui_Bulk edit":"Modification groupée",jqui_Close:_Z,jqui_Example:gZ,"jqui_Generate states":"Générer des états","jqui_Generate steps":"Générer des étapes","jqui_Maximum value":"Valeur maximum","jqui_Minimum value":"Valeur minimum","jqui_Number settings":"Paramètres numériques",jqui_Percents:hZ,"jqui_Replace to":"Remplacer par","jqui_Select file":"Sélectionner une image","jqui_Write state":"État d'écriture",jqui_active_color:pZ,jqui_ampm:mZ,jqui_asDate:fZ,jqui_asFullDate:wZ,jqui_as_string:bZ,jqui_auto:vZ,jqui_binary_control:yZ,jqui_button_binary_control_note:jZ,jqui_button_color:xZ,jqui_button_dialog_close:$Z,jqui_button_input_note:SZ,jqui_button_link:kZ,jqui_button_link_blank:qZ,jqui_button_link_blank_note:CZ,jqui_button_nav_blank_note:PZ,jqui_button_text:DZ,jqui_buttontext_view:TZ,jqui_clearable:MZ,jqui_color:zZ,jqui_container_button_dialog:IZ,jqui_container_dialog:HZ,jqui_container_icon_dialog:AZ,jqui_dialog_name:OZ,jqui_dialog_set_id_tooltip:LZ,jqui_disableFuture:WZ,jqui_disablePast:RZ,jqui_displayWeekNumber:NZ,jqui_equal_text_length:EZ,jqui_equal_text_length_tooltip:FZ,jqui_external_dialog:VZ,jqui_external_dialog_tooltip:BZ,jqui_false:UZ,jqui_from_oid:YZ,jqui_from_value:GZ,jqui_generate:JZ,jqui_group_value:KZ,jqui_hide_close_button:ZZ,jqui_href_tooltip:XZ,jqui_html:QZ,jqui_html_dialog:eX,jqui_html_external_dialog:tX,jqui_html_false:iX,jqui_html_tooltip:sX,jqui_html_true:nX,jqui_icon:oX,jqui_icon_active:aX,jqui_icon_dialog:rX,jqui_icon_http_get:lX,jqui_icon_increment:cX,jqui_icon_link:dX,jqui_icon_max:uX,jqui_icon_state_bool:_X,jqui_icon_state_push_button:gX,jqui_icon_toggle:hX,jqui_image:pX,jqui_image_active:mX,jqui_image_height:fX,jqui_image_max:wX,jqui_increment_decrement:bX,jqui_input:vX,jqui_input_date:yX,jqui_input_time:jX,jqui_input_with_button:xX,jqui_invert_icon:$X,jqui_inverted:SX,jqui_jquery_style:kX,jqui_max:qX,jqui_min:CX,jqui_name:PX,jqui_nav_view:DX,jqui_navigation_button:TX,jqui_navigation_icon:MX,jqui_navigation_password:zX,jqui_not_equal_length:IX,jqui_off:HX,jqui_oid_working:AX,jqui_on:OX,jqui_only_icon:LX,jqui_open:WX,jqui_orientation:RX,jqui_password:NX,jqui_password_tooltip:EX,jqui_push_mode:FX,jqui_push_mode_tooltip:VX,jqui_radio_buttons_on_off:BX,jqui_radio_list:UX,jqui_radio_steps:YX,jqui_range:GX,jqui_read_only:JX,jqui_repeat_delay:KX,jqui_repeat_interval:ZX,jqui_select_all_on_focus:XX,jqui_select_all_on_focus_tooltip:QX,jqui_select_list:eQ,jqui_set_label:tQ,jqui_set_timeout:iQ,jqui_single:sQ,jqui_slider:nQ,jqui_slider_note:oQ,jqui_slider_vertical:aQ,jqui_state_note:rQ,jqui_states_control:lQ,jqui_stepMinute:cQ,jqui_test:dQ,jqui_text:uQ,jqui_text_active:_Q,jqui_text_max:gQ,jqui_toggle:hQ,jqui_tooltip:pQ,jqui_true:mQ,jqui_type:fQ,jqui_unit:wQ,jqui_url_group:bQ,jqui_url_in_background:vQ,jqui_url_in_browser:yQ,jqui_url_tooltip:jQ,jqui_value:xQ,jqui_value_label_display:$Q,jqui_variant:SQ,jqui_view_group:kQ,jqui_wideFormat:qQ,jqui_widgetTitle:CQ,jqui_with_enter_button:PQ,jqui_write_state_note:DQ,jqui_write_value:TQ,"letter-spacing":"l'espacement des lettres","line-height":"hauteur de la ligne",material_icons_baseline:MQ,"material_icons_knx-uf":"knx-uf",material_icons_outline:zQ,material_icons_result:IQ,material_icons_round:HQ,material_icons_sharp:AQ,material_icons_twotone:OQ,material_icons_upload:LQ,"multi-views":"Afficher dans les vues",never:WQ,no_reload:RQ,none:NQ,normal:EQ,"not defined":"non défini","not-specified":"non défini",optional:FQ,order_help:VQ,orientation:BQ,profile:UQ,"qui_Bool SVG":"SVG booléen",reload:YQ,"search text":"Texte de recherche",set_basic:GQ,"signals-color":"Couleur","signals-count":"Nombre de signaux","signals-smallIcon-0":"Petite icône [0]","signals-smallIcon-1":"Petite icône [1]","signals-smallIcon-2":"Petite icône [3]","signals-text":"Texte ou modèle","signals-text-0":"Texte [0]","signals-text-1":"Texte [1]","signals-text-2":"Texte [2]","signals-text-tooltip":"Vous pouvez utiliser %s pour afficher la valeur actuelle dans le texte",sub_view_tooltip:JQ,"text-shadow":"ombre de texte",text_false:KQ,text_true:ZQ,"to version":"à la version",value_string:XQ,version:QQ,vertical:eee,"vis-2-widgets-basic-autoSetDelay":"Délai d'écriture automatique","vis-2-widgets-basic-input_value":"Valeur d'entrée","vis-2-widgets-basic-noStyle":"Aucun style",visResizable:tee,vis_2_widgets_basic_cannot_recursive:iee,vis_2_widgets_basic_contains_view:see,vis_2_widgets_basic_view_in_widget:nee,vis_2_widgets_basic_view_not_defined:oee,vis_2_widgets_swipe_hide_indication_label:aee,vis_2_widgets_swipe_threshold_label:ree,vis_2_widgets_widgets_swipe_label:lee,vis_2_widgets_widgets_tabs_color:cee,vis_2_widgets_widgets_tabs_group_tab:dee,vis_2_widgets_widgets_tabs_label:uee,vis_2_widgets_widgets_tabs_show_tabs:_ee,vis_2_widgets_widgets_tabs_tab_icon:gee,vis_2_widgets_widgets_tabs_tab_icon_color:hee,vis_2_widgets_widgets_tabs_tab_icon_size:pee,vis_2_widgets_widgets_tabs_tab_image:mee,vis_2_widgets_widgets_tabs_tab_overflow_x:fee,vis_2_widgets_widgets_tabs_tab_overflow_y:wee,vis_2_widgets_widgets_tabs_tab_title:bee,vis_2_widgets_widgets_tabs_tab_view:vee,vis_2_widgets_widgets_tabs_variant:yee,vis_2_widgets_widgets_tabs_variant_centered:jee,vis_2_widgets_widgets_tabs_variant_default:xee,vis_2_widgets_widgets_tabs_variant_full_width:$ee,vis_2_widgets_widgets_tabs_vertical:See,welcome_message:kee,"word-spacing":"espacement des mots"},Cee="Aggiungere",Pee="Amministratore",Dee="Tutto",Tee="alluminio1",Mee="Alluminio2",zee="Fare domanda a",Iee="Attributi",Hee="Di base",Aee="Benutzer",Oee="Mattoni",Lee="CSS",Wee="Annulla",Ree="Chiaro",Nee="Clone",Eee="Chiudere",Fee="Colorato",Vee="Commento",Bee="copia",Uee="Creare",Yee="Tagliare",Gee="Predefinito",Jee="Elimina",Kee="Dispositivi",Zee="Disabilitato",Xee="Duplicare",Qee="Modificare",ete="Elementi",tte="Abilitato",ite="accedere",ste="Spiegazione",nte="Esportare",ote="File",ate="Fr",rte="Per tutti i progetti",lte="Griglia",cte="Gruppo",dte="Altezza",ute="Nascondere",_te="Alto",gte="Orizzontale",hte="Icona",pte="Ignorare",mte="Immagine",fte="Importare",wte="Esempio",bte="Serratura",vte="Messaggio",yte="Mo",jte="Modificare",xte="Di più",$te="Nome",Ste="Navigazione",kte="No",qte="Normale",Cte="OFF",Pte="ON",Dte="Oggetti",Tte="Ok",Mte="Aprire",zte="Opzioni",Ite="Ordine",Hte="Orientamento",Ate="Tavolozza",Ote="Incolla",Lte="Per cento",Wte="Autorizzazioni",Rte="Priorità",Nte="Progetti",Ete="Leggere",Fte="Rifare",Vte="Ricaricamento",Bte="Rinominare",Ute="Risoluzione",Yte="Sa",Gte="Salva",Jte="Script",Kte="Ricerca",Zte="Selezionare",Xte="Impost.",Qte="Mostrare",eie="Stile",tie="Su",iie="Schede",sie="Temperatura",nie="Th",oie="Tema",aie="Titolo",rie="tu",lie="Tipo",cie="Annullare",die="Separa",uie="Disinstalla",_ie="Sbloccare",gie="Deseleziona",hie="Aggiornare",pie="Valore",mie="Verticale",fie="Visualizzazione",wie="Mi",bie="Fine settimana",vie="Aggeggio",yie="Widget",jie="Larghezza",xie="Scrivere",$ie="scrittore",Sie="sì",kie="Widgeteria",qie="Tutto",Cie="Descrizione comando false",Pie="Descrizione comando true",Die="anonimizzare",Tie="Per tutti",Mie="none",zie="Aggiungi tutto quello che resta",Iie="Freccia",Hie="Colore del bordo",Aie="Raggio del confine",Oie="Cerchio",Lie="Poligono personalizzato",Wie="Selezione multipla",Rie="Menu a discesa",Nie="Pulsanti orizzontali",Eie="Pulsanti verticali",Fie="Esagono",Vie="Linea",Bie='Nessuna opzione "Nessun filtro".',Uie="Senza Filtro",Yie='Etichetta "Nessun filtro".',Gie="Nascondi angolo",Jie="Ottagono",Kie="Pentagono",Zie="Spillo",Xie="continuo",Qie="Rilevato",ese="inglese",tse="Altezza (px)",ise="Attivo",sse="Inattivo",nse='Fai clic sul pulsante "Consenti" in alto per abilitare il microfono.',ose="L'autorizzazione all'uso del microfono è bloccata. Per modificare, vai a chrome://settings/contentExceptions#media-stream",ase="Il permesso di utilizzare il microfono è stato negato.",rse='Nessun microfono trovato. Assicurati che sia installato un microfono e che le <a href="//support.google.com/chrome/bin/answer.py?hl=it&answer=1407892"> impostazioni del microfono</a> siano configurate correttamente.',lse='Non è stato rilevato alcun parlato. Potrebbe essere necessario modificare le <a href="//support.google.com/chrome/bin/answer.py?hl=it&answer=1407892">impostazioni del microfono</a>.',cse="Parla adesso.",dse="Fare clic sull'icona del microfono e iniziare a parlare.",use=`L'API Web Speech non è supportata da questo browser. Esegui l'upgrade a <a href="//www.google.com/chrome">Chrome</a> versione 25 o successiva.`,_se="Colore della parola chiave",gse="Colore del testo, se è stata trovata la parola chiave",hse="Parole chiave",pse="Nessuna immagine",mse="Nessun risultato",fse="Nessun testo di aiuto",wse="russo",bse="Inviato",vse="separare",yse="Modalità vocale",jse="avviare/interrompere",xse="Iniziato",$se="Colore del testo inviato",Sse="Colore del testo, quando il testo viene inviato per elaborarlo",kse="Larghezza (px)",qse="Piazza",Cse="Stella",Pse="Vista secondaria",Dse="Triangolo",Tse="bloccare",Mse="colore",zse="Colore per falso",Ise="Colore per vero",Hse="copia",Ase="Per questo progetto",Ose="Speciale",Lse="diverso",Wse="Schermo",Rse="flettere",Nse="flessibile",Ese="Cartella",Fse="Gruppo",Vse="Nome",Bse="Tipo",Use="Attributi",Yse='Puoi definire negli attributi del widget del gruppo i nomi speciali nel formato "%yourCustomName%" e appariranno nelle impostazioni "Attributi". Successivamente è possibile fornire il nome e il tipo di attributi personalizzati.',Gse="Icona di falso",Jse="Icona di vero",Kse="Puoi modificare la dimensione del gruppo, selezionandolo nel selettore del widget a discesa o facendo clic su questo testo",Zse="Testo",Xse="Questi CSS vengono applicati a tutti i progetti",Qse="Questi CSS vengono applicati solo a questo progetto",ene="nascondere",tne="orizzontale",ine="ore",sne="Dimensione dell'icona in pixel",nne="Puoi caricare la tua icona fino a 10k byte come base64. Verrà salvato direttamente nel progetto. Se desideri caricare il file SVG, non dimenticare di impostare l'attributo currentColor.",one="Altezza dell'immagine",ane="Altezza dell'immagine",rne="Icona inverti",lne="Icona inverti",cne="Vicino",dne="Esempio",une="Percentuali",_ne="Colore attivo",gne="Am PM",hne="Come data",pne="Utilizzo della data intera analizzabile",mne="Come stringa",fne="auto",wne="Controllo binario",bne='Deprecato. Utilizza il widget "Controllo binario". Mantenuto solo per compatibilità con vis.1',vne="Colore del pulsante",yne="Pulsante di chiusura della finestra di dialogo",jne='Deprecato. Utilizza il widget "Inserisci". Mantenuto solo per compatibilità con vis.1',xne="Vai all'URL",$ne="Passa all'URL (in una nuova finestra)",Sne=`Deprecato. Usa il primo widget con l'opzione "Apri in una nuova finestra". Mantenuto solo per compatibilità con vis.1`,kne=`Deprecato. Utilizza il primo widget con l'opzione "Vai a visualizzare". Mantenuto solo per compatibilità con vis.1`,qne="Testo del pulsante",Cne="Utilizza il nome della vista come titolo",Pne="Cancellabile",Dne="Colore",Tne="Pulsante => Finestra di dialogo Pagina",Mne="Finestra di dialogo del contenitore",zne="Icona=>Finestra di dialogo Pagina",Ine="Nome della finestra di dialogo",Hne="Imposta stato aprendo la finestra di dialogo",Ane="Disabilita futuro",One="Disabilita passato",Lne="Visualizza il numero della settimana",Wne="Uguali lunghezze del testo",Rne=`Se attivata, la lunghezza dei testi per vero e falso sarà uguale, quindi l'icona rimarrà nello stesso posto negli stati "off" e "on".`,Nne="Dialogo esterno",Ene=`Questa finestra di dialogo non è visibile nella pagina, ma può essere aperta tramite il comando esterno "dialogOpen" con il nome della finestra di dialogo o l'ID widget come parametro.`,Fne="Falso",Vne="Da altro oggetto",Bne="Dal valore statico",Une="creare",Yne="Valore",Gne="Nascondi pulsante di chiusura",Jne="Questo URL verrà chiamato nel browser",Kne="HTML",Zne="Finestra di dialogo HTML",Xne="Dialogo esterno",Qne="HTML da false",eoe="L'HTML è configurabile solo se il testo e l'icona sono vuoti",toe="HTML per true",ioe="Icona",soe="Icona attiva",noe="Finestra di dialogo delle icone",ooe="Chiama l'URL nel back-end",aoe="Incremento con l'icona",roe="Passa all'URL (con icona)",loe="Icona per il massimo",coe="Pulsante icona booleana",doe="Premi il bottone",uoe="Pulsante di attivazione/disattivazione con icona",_oe="Immagine",goe="Immagine attiva",hoe="Altezza dell'immagine",poe="Immagine per il massimo",moe="Incremento/Decremento",foe="Ingresso",woe="Immissione della data",boe="Immissione dell'ora",voe="Ingresso con pulsante",yoe="Icona inverti",joe="Invertito",xoe="Stile jQuery",$oe="Valore massimo",Soe="Valore minimo",koe="Titolo",qoe="Vai a vedere",Coe="Pulsante di navigazione",Poe="Icona di navigazione",Doe="Navigazione con password",Toe="Larghezza non uguale",Moe="Spento",zoe="Documento d'identità funzionante",Ioe="Ab.",Hoe="Solo icona",Aoe="Come elenco",Ooe="Orientamento",Loe="Parola d'ordine",Woe="L'utente deve inserire la password per aprire la finestra di dialogo, andare alla pagina o all'URL",Roe="Modalità push",Noe="Premendo il pulsante verrà scritto “true” mentre al rilascio del pulsante verrà scritto “false”.",Eoe="Pulsanti di opzione (on/off)",Foe="Elenco radio con valori",Voe="Pulsante di opzione (passi)",Boe="allineare",Uoe="Sola lettura",Yoe="Ripeti il ritardo",Goe="Intervallo di ripetizione",Joe="Seleziona tutto a fuoco",Koe="Al fuoco verrà selezionato tutto il testo, quindi può essere eliminato o modificato rapidamente senza premere il pulsante Backspace",Zoe="Seleziona dall'elenco",Xoe="Stile",Qoe="Scrivi timeout",eae="separare",tae="Dispositivo di scorrimento",iae="Deprecato. Utilizza il widget slider con l'orientamento impostato su verticale. Mantenuto solo per compatibilità con vis.1",sae="Cursore verticale",nae=`Deprecato. Utilizza il widget "Controllo stati" con l'opzione "incremento/decremento". Mantenuto solo per compatibilità con vis.1`,oae="Controllo degli Stati",aae="Passo minuto",rae="Valore di prova",lae="Testo",cae="Testo attivo",dae="Testo per il massimo",uae="Attiva/disattiva",_ae="Descrizione comando",gae="VERO",hae="Tipo",pae="Unità",mae="Chiama l'URL con un clic",fae="URL nel back-end",wae="URL nel browser",bae="Questo URL verrà richiamato in background dal motore ioBroker",vae="Valore",yae="Visualizza etichetta",jae="Variante",xae="Visualizzazione navigazione",$ae="Formato ampio",Sae="Titolo",kae="Con il pulsante Invio",qae=`Deprecato. Utilizza il widget "Wirte state" con l'opzione "incremento/decremento". Mantenuto solo per compatibilità con vis.1`,Cae="Scrivi valore",Pae="Riempito",Dae="Delineato",Tae="%s risultati corrispondenti",Mae="Girare",zae="Affilato",Iae="Due toni",Hae="Caricamento",Aae="mai",Oae="nessuna ricarica",Lae="nessuno",Wae="normale",Rae="opzionale",Nae="Puoi trascinare e rilasciare qualsiasi elemento o fare clic sull'elemento con cui verrà scambiato il widget selezionato",Eae="Orientamento",Fae="Profilo",Vae="ricaricare",Bae="di base",Uae="Viene utilizzato per scopi speciali, come la navigazione Jaeger-Design",Yae="Testo falso",Gae="Testo vero",Jae="Corda",Kae="versione",Zae="verticale",Xae="Ridimensionabile",Qae="Impossibile utilizzare visualizzazioni ricorsive",ere="Usa vista",tre="Visualizza nel widget",ire="Vista non definita",sre="Nascondi indicazione",nre="Soglia",ore="Swipe",are="Colore",rre="Scheda",lre="Schede",cre="Numero",dre="Icona",ure="Colore",_re="Dimensione dell'icona",gre="Immagine",hre="Traboccamento X",pre="Traboccamento Y",mre="Titolo",fre="Visualizzazione",wre="Variante",bre="centrato",vre="Predefinito",yre="intera larghezza",jre="Verticale",xre="Non esiste ancora un progetto.",$re={"%s from %s":"%s da %s","%s widgets":"%s widget","(Maximal file size is %s)":"(La dimensione massima del file è %s)","-attachment":"-attachment","-clip":"-clip","-color":"-color","-image":"-image","-origin":"-origin","-position":"-position","-repeat":"-repeat","-size":"-size","1 day":"1 giorno","1 hour":"1 ora","1 minute":"1 minuto","1 second":"1 secondo","10 minutes":"10 minuti","10 seconds":"10 secondi","12 hours":"12 ore","15 m.":"15 m.","2 hours":"2 ore","2 seconds":"2 secondi","20 seconds":"20 secondi","3 hours":"3 ore","30 m.":"30 m.","30 minutes":"30 minuti","30 seconds":"30 secondi","5 minutes":"5 minuti","5 seconds":"5 secondi","6 hours":"6 ore","Activation state":"Stato di attivazione","Active widget(s) from %s":"Widget attivi da %s",Add:Cee,"Add folder":"Aggiungi cartella","Add new child folder":"Aggiungi nuova cartella figlio","Add new child profile":"Aggiungi nuovo profilo bambino","Add new or update existing widget":`Aggiungi un nuovo widget o aggiorna quello esistente
`,"Add new view":"Nuova vista","Add profile":"Aggiungi profilo","Add project":"Aggiungi progetto","Add sub-folder":"Aggiungi sottocartella","Add to widgeteria":"Aggiungi alla widgeteria","Add view":"Aggiungi vista",Administrator:Pee,"Align height. Press more time to get the desired height.":"Allinea l'altezza. Premere più tempo per ottenere l'altezza desiderata.","Align horizontal/center":"Allinea orizzontale/centro","Align horizontal/equal":"Allinea orizzontale/uguale","Align horizontal/left":"Allinea orizzontale/sinistra","Align horizontal/right":"Allinea orizzontale/destra","Align vertical/bottom":"Allinea verticale/in basso","Align vertical/center":"Allinea verticale/centro","Align vertical/equal":"Allinea verticale/uguale","Align vertical/top":"Allinea verticale/in alto","Align width. Press more time to get the desired width.":"Allinea la larghezza. Premere più volte per ottenere la larghezza desiderata.",All:Dee,Aluminium1:Tee,Aluminium2:Mee,"App bar":"Barra delle applicazioni",Apply:zee,"Apply ALL navigation properties to all views":"Applica TUTTE le proprietà di navigazione a tutte le viste","Apply to all views":"Applica questa proprietà a tutte le viste","Are you sure":"Sei sicuro","Are you sure to delete widgets %s?":"Sei sicuro di eliminare i widget %s?",Attributes:Iee,"Available for all":"Progetto accessibile a tutti gli utenti","Background class":"Classe di fondo","Background color":"Colore di sfondo","Background color if selected":"Colore di sfondo se selezionato","Bar color":"Colore di sfondo","Bar icon":"Icona","Bar image":"Immagine","Bar text":"Didascalia",Basic:Hee,Benutzer:Aee,"Blue flowers":"Fiori blu","Blue marine":"Marina blu","Blue marine lines":"Linee marine blu","Blueprint grid":"Griglia del progetto","Body overflow":"Body overflow",Bricks:Oee,"Bring to front":"Portare in primo piano","Browse files":"Sfoglia i file","Browse objects":"Sfoglia gli oggetti","Browse the widgeteria":"Sfoglia la widgeteria","Browser instance ID":"ID istanza del browser","Browser tab favicon":"Icona preferita della scheda del browser","Browser tab title":"Titolo della scheda del browser","By horizontal menu do not show text if icon provided":"Per il menu orizzontale non mostrare il testo se è presente un'icona",CSS:Lee,"CSS Class":"Classe CSS","CSS Common":"CSS comune","CSS Font & Text":"CSS Carattere e testo","CSS background (background-...)":"CSS Sfondo (background-...)",Cancel:Wee,"Cannot use recursive views":"Impossibile utilizzare visualizzazioni ricorsive","Carbon fibre":"Fibra di carbonio","Carbon fibre1":"Fibra di carbonio1","Chevron icon color":"Colore del pulsante Mostra",Clear:Ree,"Clear filter":"Filtro pulito","Click to close":"Clicca per chiudere",Clone:Nee,"Clone widget":"Clona widget",Close:Eee,"Close all":"Comprimi tutto","Close all but current view":"Chiudi tutto tranne la visualizzazione corrente","Close editor":"Chiudi editore","Collapse all":"Comprimi tutto",Colorful:Fee,"Column gap":"Spazio tra le colonne","Column width":"Larghezza della colonna",Comment:Vee,"Convert %s to %s":"Converti %s in %s","Copied %s":"Copiato %s","Copied to clipboard":"Copiato negli appunti",Copy:Bee,"Copy noun":"copia","Copy to clipboard":"Copia negli appunti",'Copy view "%s"':'Copia vista "%s"',Create:Uee,"Create copy":"Crea copia","Create instance":"Crea istanza","Create new project":"Crea nuovo progetto",'Create or import new "vis-2" project':'Crea o importa un nuovo progetto "vis-2".',"Current project":"Progetto attuale",Cut:Yee,"Dark reconnect screen":"Schermo di riconnessione scuro","Deactivate binding and use field as standard input":"Disattiva l'associazione e utilizza il campo come input standard",Default:Gee,"Default view":"Visualizzazione predefinita","Default: auto":'Predefinito: "auto"',Delete:Jee,"Delete actual view":"Elimina vista effettiva","Delete widgets":"Elimina i widget","Destroy inactive view":"Distruggi la vista inattiva","Detected new version of vis files. Reloading in 2 seconds...":"Rilevata nuova versione dei file vis. Ricarica in 2 secondi...",Devices:Kee,Disabled:Zee,"Do not ask again":"Non chiedere di nuovo","Do not hide menu":"Non nascondere completamente il menu","Do you want to create first demo project?":"Vuoi creare il primo progetto demo?",'Do you want to delete folder "%s"':'Vuoi eliminare la cartella "%s"','Do you want to delete project "%s"?':'Vuoi eliminare il progetto "%s"?','Do you want to delete view "%s"?':'Vuoi eliminare la vista "%s"?','Do you want to include "%s" widget into "%s"?':'Vuoi includere il widget "%s" in "%s"?',"Drag me":"Trascinami","Drop the files here ...":"Trascina qui i file...",Duplicate:Xee,"Duplicate folder":"Duplica la cartella","Duplicate profile":"Duplica il profilo",Edit:Qee,"Edit binding":"Modifica rilegatura","Edit folder":"Modifica cartella","Edit group":"Modifica gruppo","Edit profile":"Modifica Profilo",Elements:ete,Enabled:tte,Enter:ite,"Enter password":"Inserire la password","Enter the browser instances divided by comma":"Inserisci le istanze del browser divise da virgole","Expand all":"Espandi tutto",Explanation:ste,Export:nte,'Export "%s"':'Esportare "%s"',"Export widgets":"Esporta widget","External dialog":"Dialogo esterno","Fields of group will be cleaned":"I campi del gruppo verranno puliti","File too large":"File troppo grande",Files:ote,"Filter widgets":"Filtra i widget","Fm dark background":"Fm sfondo scuro","Fm light background":"Sfondo chiaro","Following views will be changed":"Le visualizzazioni seguenti verranno modificate","For widgets with relative position":"Per i widget con posizione relativa",Fr:ate,"Full HD - Landscape":"Full HD - Paesaggio","Full HD - Portrait":"Full HD - Ritratto","Full panel":"Pannello completo","Galaxy Fold - Landscape":"Galaxy Fold - Paesaggio","Galaxy Fold - Portrait":"Galaxy Fold - Ritratto",Global:rte,"Gradient box":"Casella sfumata","Gray 0":"Grigio 0","Gray 1":"grigio 1",Grid:lte,Group:cte,"Group view css background":"Sfondo css di visualizzazione di gruppo","Group widgets":"Raggruppa i widget insieme","H gradient black 0":"Gradiente H nero 0","H gradient black 1":"Nero sfumato H 1","H gradient black 2":"Nero sfumato H 2","H gradient black 3":"Nero sfumato H 3","H gradient black 4":"Nero sfumato H 4","H gradient black 5":"Nero sfumato H 5","H gradient blue 0":"H blu sfumato 0","H gradient blue 1":"H blu sfumato 1","H gradient blue 2":"H blu sfumato 2","H gradient blue 3":"H blu sfumato 3","H gradient blue 4":"H blu sfumato 4","H gradient blue 5":"Blu sfumato H 5","H gradient blue 6":"H blu sfumato 6","H gradient blue 7":"H blu sfumato 7","H gradient gray 0":"H grigio sfumato 0","H gradient gray 1":"Grigio sfumato H 1","H gradient gray 2":"Grigio sfumato H 2","H gradient gray 3":"Grigio sfumato H 3","H gradient gray 4":"H grigio sfumato 4","H gradient gray 5":"Grigio sfumato H 5","H gradient gray 6":"Grigio sfumato H 6","H gradient green 0":"Gradiente H verde 0","H gradient green 1":"H verde sfumato 1","H gradient green 2":"H verde sfumato 2","H gradient green 3":"H verde sfumato 3","H gradient green 4":"H verde sfumato 4","H gradient orange 0":"Gradiente H arancione 0","H gradient orange 1":"Sfumatura H arancione 1","H gradient orange 2":"Gradiente H arancione 2","H gradient orange 3":"Sfumatura H arancione 3","H gradient yellow 0":"Gradiente H giallo 0","H gradient yellow 1":"Giallo sfumato H 1","H gradient yellow 2":"H giallo sfumato 2","H gradient yellow 3":"H giallo sfumato 3","HD - Landscape":"HD - Paesaggio","HD - Portrait":"HD - Ritratto",Height:dte,Hide:ute,"Hide after selection":"Nascondi dopo la selezione","Hide all views":"Nascondi tutte le visualizzazioni","Hide attributes":"Nascondi attributi","Hide menu":"Nascondi menù","Hide palette":"Nascondi tavolozza","Hide panel names":"Nascondi i nomi dei pannelli","Hide selected widgets":"Nascondi i widget selezionati",High:_te,"High priority":"Priorità alta","Highest eg. Holiday":"Il più alto ad es. Vacanza",Horizontal:gte,Icon:hte,"If user not in group":"Se l'utente non è nel gruppo",Ignore:pte,"Ignored in edit mode":"Ignorato in modalità di modifica",Image:mte,Import:fte,"Import project":"Importa progetto","Import widgets":"Importa widget","Include widget?":"Includere il widget?","Initial filter":"Filtro iniziale",Instance:wte,"Invalid file type":"tipo di file non valido","Jump to widget by double click":"Vai al widget facendo doppio clic sul widget","Just use without modification":"Basta usare senza modifiche","Keep on old place":"Mantieni il vecchio posto","Limit background color":"Colore di sfondo","Limit border color":"Colore del bordo","Limit border style":"Stile del bordo","Limit border width":"Larghezza del bordo","Limit only for instances":"Limite solo per le istanze","Limit screen":"Schermata Limite","Lined paper":"Carta a righe","Load project file...":"Caricamento file di progetto...","Load widgets...":"Caricamento widget...","Loading objects...":"Caricamento oggetti...",Lock:bte,"Lock dragging":"Blocca trascinamento","Manage projects":"Gestisci progetti","Manage views":"Gestisci le visualizzazioni","Menu header text":"Testo dell'intestazione del menu","Menu header text color":"Colore del testo dell'intestazione del menu","Menu width":"Larghezza del menù",Message:vte,Mo:yte,Modify:jte,More:xte,"Move down":"Abbassati","Move to new place":"Spostati in un nuovo posto","Move up":"Andare avanti","Move widget down or press longer to open re-order menu":"Sposta il widget verso il basso o premi più a lungo per aprire il menu di riordino","Move widget up or press longer to open re-order menu":"Sposta il widget in alto o premi più a lungo per aprire il menu di riordino",Name:$te,"Name is not unique":"Il nome non è univoco","Name of copy":"Nome della copia","Narrow panel":"Pannello stretto",Navigation:Ste,"Nest Hub - Landscape":"Nest Hub - Orizzontale","Nest Hub - Portrait":"Nest Hub - Ritratto","Nest Hub Max - Landscape":"Nest Hub Max - Orizzontale","Nest Hub Max - Portrait":"Nest Hub Max - Ritratto","New name":"Nuovo nome","New view":"Nuova vista",No:kte,"No background":"Nessuno sfondo",Normal:qte,OFF:Cte,ON:Pte,Objects:Dte,Ok:Tte,"On/Off":"Acceso spento","One parameter":"Un parametro","Only for desktop":"Solo per desktop","Only for groups":"Solo per gruppi","Only the admin user can change permissions":"Solo l'utente amministratore può modificare le autorizzazioni",Open:Mte,"Open all":"Espandi tutto","Open it?":"Aprirlo?","Open runtime in new window":"Apri runtime in una nuova finestra","Open widgeteria":"Apri widgeteria",Options:zte,Order:Ite,Orientation:Hte,Palette:Ate,Paste:Ote,Percent:Lte,Permissions:Wte,"Pixel 5 - Landscape":"Pixel 5 - Paesaggio","Pixel 5 - Portrait":"Pixel 5 - Ritratto",Priority:Rte,'Project "%s" does not exist':'Il progetto "%s" non esiste','Project "%s" was successfully imported':'Il progetto "%s" è stato importato con successo',"Project already exists":"Il progetto esiste già","Project name":"Nome del progetto","Project settings":"Impostazioni del progetto","Project was updated":"Il progetto è stato aggiornato","Project was updated by another browser instance. Do you want to reload it?":"Il progetto è stato aggiornato da un'altra istanza del browser. Vuoi ricaricarlo?",Projects:Nte,"Radial blue":"Blu radiale",Read:Ete,"Read = Runtime access":"Lettura = Accesso runtime","Read about currentColor in SVG":"Leggi informazioni su currentColor in SVG","Rebuild HTML pages":"Ricostruire le pagine HTML","Rebuild of HTML pages was started":"La ricostruzione delle pagine HTML è stata avviata","Received user command: %s":"Comando utente ricevuto: %s","Reconnect interval":"Intervallo di riconnessione",Redo:Fte,"Reload all browsers if project changed":"Ricarica tutti i browser se il progetto è cambiato","Reload all runtimes":"Ricarica tutti i runtime","Reload if sleep longer than":"Ricarica se dormi più a lungo di","Reload now":"Ricarica ora",Reloading:Vte,Rename:Bte,'Rename folder "%s"':'Rinomina la cartella "%s"','Rename project "%s"':'Rinomina il progetto "%s"',"Rename view":"Rinomina vista",'Rename view "%s"':'Rinomina vista "%s"',"Render always":"Rendi sempre","Reset all intervals to following value:":"Reimposta tutti gli intervalli al seguente valore:",Resolution:Ute,"Responsive settings":"Impostazioni reattive","Row gap":"Spazio tra le file",Sa:Yte,"Samsung Galaxy A51/71 - Landscape":"Samsung Galaxy A51/71 - Orizzontale","Samsung Galaxy A51/71 - Portrait":"Samsung Galaxy A51/71 - Ritratto","Samsung Galaxy S20 Ultra - Landscape":"Samsung Galaxy S20 Ultra - Orizzontale","Samsung Galaxy S20 Ultra - Portrait":"Samsung Galaxy S20 Ultra - Ritratto","Samsung Galaxy S8+ - Landscape":"Samsung Galaxy S8+ - Orizzontale","Samsung Galaxy S8+ - Portrait":"Samsung Galaxy S8+ - Ritratto",Save:Gte,Scripts:Jte,Search:Kte,Select:Zte,"Select all":"Seleziona tutto","Select object ID":"Seleziona l'ID dell'oggetto","Select or create profile in left menu":"Seleziona o crea un profilo nel menu a sinistra","Select project":"Seleziona progetto","Select vis-2 project":'Seleziona il progetto "vis-2".',"Send to back":"Mandare indietro","Sent to back":"Mandato indietro",Set:"Set","Set all periods to one value":"Imposta tutti i periodi su un valore","Set widgets filter for edit mode":"Nascondi i widget (che hanno la chiave del filtro) in modalità di modifica",Settings:Xte,"Should it be moved to new place?":"Dovrebbe essere spostato in un nuovo posto?",Show:Qte,"Show all views":"Mostra tutte le visualizzazioni","Show app bar":"Spettacolo","Show background of button":"Sfondo del pulsante Mostra","Show navigation":"Mostra la navigazione","Show only selected widgets":"Mostra solo i widget selezionati","Show only toolbar on the top and hide menu itself":"Mostra solo la barra degli strumenti in alto e nascondi il menu stesso","Show palette":"Mostra tavolozza","Show this attribute by all views":"Mostra questo attributo per tutte le visualizzazioni","Show view":"Mostra vista","Specify filter to see more icons":"Specifica il filtro per vedere più icone","States Debounce Time (millis)":"Tempo di rimbalzo degli Stati (milli)",Style:eie,"Style of menu button only when the menu is hidden":"Stile del pulsante del menu solo quando il menu è nascosto",Su:tie,"Surface Duo - Landscape":"Surface Duo - Paesaggio","Surface Duo - Portrait":"Surface Duo - Ritratto","Surface Pro 7 - Landscape":"Surface Pro 7 - Orizzontale","Surface Pro 7 - Portrait":"Surface Pro 7 - Ritratto","Switch to group edit mode by double click":"Passa alla modalità di modifica del gruppo facendo doppio clic sul widget",Tabs:iie,Temperature:sie,"Text color":"Colore del testo","Text color if selected":"Colore del testo se selezionato","Text edit":"Modifica del testo",Th:nie,Theme:oie,"This view will be shown only to defined groups":"Questa vista verrà mostrata solo ai gruppi definiti",'This widget is already used in "%s"':'Questo widget è già utilizzato in "%s"',Title:aie,"To use it, define by some widget the filter key":"Per usarlo, definisci da qualche widget la chiave del filtro","Toggle runtime":"Attiva/disattiva il tempo di esecuzione","Toggle widget hint (dark)":"Attiva/disattiva suggerimento widget (scuro)","Toggle widget hint (hide)":"Attiva/disattiva suggerimento widget (nascondi)","Toggle widget hint (light)":"Attiva/disattiva suggerimento widget (chiaro)",Tu:rie,Type:lie,Undo:cie,Ungroup:die,Uninstall:uie,'Unknown widget type "%s"':'Tipo di widget sconosciuto "%s"',Unlock:_ie,Unselect:gie,Update:hie,"Usage of widget %s":"Utilizzo del widget %s","Use background":"Usa lo sfondo","Use field as binding":"Utilizza il campo come vincolante","User defined":"Definito dall'utente",Value:pie,Vertical:mie,View:fie,"View not defined":"Vista non definita",We:wie,Weekend:bie,Widget:vie,"Widget CSS":"Widget CSS","Widget JS":"Widget JS","Widget was deleted in widgeteria":"Il widget è stato eliminato in widgeteria",Widgets:yie,Width:jie,"Width x height (px)":"Larghezza x altezza (px)",Write:xie,"Write = Edit mode access":"Scrittura = accesso alla modalità modifica",Writer:$ie,"Wrong password":"Password errata",Yes:Sie,"You can open dialog with following script:":"È possibile aprire la finestra di dialogo con il seguente script:","You can provide here the state that controls the activation of this profile":"Puoi fornire qui lo stato che controlla l'abilitazione di questo profilo",__marketplace:kie,ace_All:qie,"ace_CaseSensitive Search":"Ricerca con distinzione tra maiuscole e minuscole","ace_RegExp Search":"Ricerca RegExp","ace_Search In Selection":"Cerca nella selezione","ace_Search for":"Cercare","ace_Toggle Replace mode":"Attiva/disattiva la modalità Sostituisci","ace_Whole Word Search":"Ricerca di parole intere",alt_false:Cie,alt_true:Pie,anonymize:Die,apply_to_all:Tie,attr_none:Mie,basic_all_filters:zie,basic_arrow:Iie,basic_borderColor:Hie,basic_borderRadius:Aie,basic_circle:Oie,basic_custom:Lie,basic_filter_multiple:Wie,basic_filter_type_dropdown:Rie,basic_filter_type_horizontal_buttons:Nie,basic_filter_type_vertical_buttons:Eie,basic_hexagone:Fie,basic_line:Vie,basic_no_all_option:Bie,basic_no_filter:Uie,basic_no_filter_text:Yie,basic_node_hide_corner:Gie,basic_octagone:Jie,basic_pentagone:Kie,basic_pin:Zie,basic_speech2text_continuous:Xie,basic_speech2text_detected:Qie,basic_speech2text_en_us:ese,basic_speech2text_height:tse,basic_speech2text_image_active:ise,basic_speech2text_image_inactive:sse,basic_speech2text_info_allow:nse,basic_speech2text_info_blocked:ose,basic_speech2text_info_denied:ase,basic_speech2text_info_no_microphone:rse,basic_speech2text_info_no_speech:lse,basic_speech2text_info_speak_now:cse,basic_speech2text_info_start:dse,basic_speech2text_info_upgrade:use,basic_speech2text_key_word_color:_se,basic_speech2text_key_word_color_tooltip:gse,basic_speech2text_keywords:hse,basic_speech2text_no_image:pse,basic_speech2text_no_results:mse,basic_speech2text_no_text:fse,basic_speech2text_ru_ru:wse,basic_speech2text_sent:bse,basic_speech2text_single:vse,basic_speech2text_speech_mode:yse,basic_speech2text_start_stop:jse,basic_speech2text_started:xse,basic_speech2text_text_sent_color:$se,basic_speech2text_text_sent_color_tooltip:Sse,basic_speech2text_width:kse,basic_square:qse,basic_star:Cse,basic_sub_view:Pse,basic_triangle:Dse,block:Tse,color:Mse,color_false:zse,color_true:Ise,"convert from widgeteria widget":"convertire dal widget widgeteria",copy:Hse,css_project:Ase,custom_icons:Ose,different:Lse,display:Wse,"finish searching":"ricerca finita",flex:Rse,flexible:Nse,folder:Ese,"font-family":"famiglia di font","font-size":"dimensione del font","font-style":"stile carattere","font-variant":"font-variante","font-weight":"peso del carattere",group:Fse,group_attrName:Vse,group_attrType:Bse,group_fields:Use,group_help:Yse,group_icon_false:Gse,group_icon_true:Jse,group_size_hint:Kse,group_text:Zse,help_css_global:Xse,help_css_project:Qse,hide:ene,"hide code":"nascondi il codice",horizontal:tne,hr:ine,"iPad Air - Landscape":"iPad Air - Paesaggio","iPad Air - Portrait":"iPad Air - Ritratto","iPad Mini - Landscape":"iPad Mini - Paesaggio","iPad Mini - Portrait":"iPad Mini - Ritratto","iPad Pro - Landscape":"iPad Pro - Orizzontale","iPad Pro - Portrait":"iPad Pro - Ritratto","iPhone 12 Pro - Landscape":"iPhone 12 Pro - Orizzontale","iPhone 12 Pro - Portrait":"iPhone 12 Pro - Ritratto","iPhone SE - Landscape":"iPhone SE - Paesaggio","iPhone SE - Portrait":"iPhone SE - Ritratto","iPhone XR - Landscape":"iPhone XR - Orizzontale","iPhone XR - Portrait":"iPhone XR - Ritratto",icon_size_in_pixels:sne,icon_upload_hint:nne,imageHeight_false:one,imageHeight_true:ane,invert_icon_false:rne,invert_icon_true:lne,"jqui_Add new value":"Aggiungi nuovo valore","jqui_Are you sure?":"Sei sicuro?","jqui_Bulk edit":"Modifica collettiva",jqui_Close:cne,jqui_Example:dne,"jqui_Generate states":"Genera stati","jqui_Generate steps":"Genera passaggi","jqui_Maximum value":"Valore massimo","jqui_Minimum value":"Valore minimo","jqui_Number settings":"Impostazioni del numero",jqui_Percents:une,"jqui_Replace to":"Sostituirlo con","jqui_Select file":"Seleziona l'immagine","jqui_Write state":"Scrivi stato",jqui_active_color:_ne,jqui_ampm:gne,jqui_asDate:hne,jqui_asFullDate:pne,jqui_as_string:mne,jqui_auto:fne,jqui_binary_control:wne,jqui_button_binary_control_note:bne,jqui_button_color:vne,jqui_button_dialog_close:yne,jqui_button_input_note:jne,jqui_button_link:xne,jqui_button_link_blank:$ne,jqui_button_link_blank_note:Sne,jqui_button_nav_blank_note:kne,jqui_button_text:qne,jqui_buttontext_view:Cne,jqui_clearable:Pne,jqui_color:Dne,jqui_container_button_dialog:Tne,jqui_container_dialog:Mne,jqui_container_icon_dialog:zne,jqui_dialog_name:Ine,jqui_dialog_set_id_tooltip:Hne,jqui_disableFuture:Ane,jqui_disablePast:One,jqui_displayWeekNumber:Lne,jqui_equal_text_length:Wne,jqui_equal_text_length_tooltip:Rne,jqui_external_dialog:Nne,jqui_external_dialog_tooltip:Ene,jqui_false:Fne,jqui_from_oid:Vne,jqui_from_value:Bne,jqui_generate:Une,jqui_group_value:Yne,jqui_hide_close_button:Gne,jqui_href_tooltip:Jne,jqui_html:Kne,jqui_html_dialog:Zne,jqui_html_external_dialog:Xne,jqui_html_false:Qne,jqui_html_tooltip:eoe,jqui_html_true:toe,jqui_icon:ioe,jqui_icon_active:soe,jqui_icon_dialog:noe,jqui_icon_http_get:ooe,jqui_icon_increment:aoe,jqui_icon_link:roe,jqui_icon_max:loe,jqui_icon_state_bool:coe,jqui_icon_state_push_button:doe,jqui_icon_toggle:uoe,jqui_image:_oe,jqui_image_active:goe,jqui_image_height:hoe,jqui_image_max:poe,jqui_increment_decrement:moe,jqui_input:foe,jqui_input_date:woe,jqui_input_time:boe,jqui_input_with_button:voe,jqui_invert_icon:yoe,jqui_inverted:joe,jqui_jquery_style:xoe,jqui_max:$oe,jqui_min:Soe,jqui_name:koe,jqui_nav_view:qoe,jqui_navigation_button:Coe,jqui_navigation_icon:Poe,jqui_navigation_password:Doe,jqui_not_equal_length:Toe,jqui_off:Moe,jqui_oid_working:zoe,jqui_on:Ioe,jqui_only_icon:Hoe,jqui_open:Aoe,jqui_orientation:Ooe,jqui_password:Loe,jqui_password_tooltip:Woe,jqui_push_mode:Roe,jqui_push_mode_tooltip:Noe,jqui_radio_buttons_on_off:Eoe,jqui_radio_list:Foe,jqui_radio_steps:Voe,jqui_range:Boe,jqui_read_only:Uoe,jqui_repeat_delay:Yoe,jqui_repeat_interval:Goe,jqui_select_all_on_focus:Joe,jqui_select_all_on_focus_tooltip:Koe,jqui_select_list:Zoe,jqui_set_label:Xoe,jqui_set_timeout:Qoe,jqui_single:eae,jqui_slider:tae,jqui_slider_note:iae,jqui_slider_vertical:sae,jqui_state_note:nae,jqui_states_control:oae,jqui_stepMinute:aae,jqui_test:rae,jqui_text:lae,jqui_text_active:cae,jqui_text_max:dae,jqui_toggle:uae,jqui_tooltip:_ae,jqui_true:gae,jqui_type:hae,jqui_unit:pae,jqui_url_group:mae,jqui_url_in_background:fae,jqui_url_in_browser:wae,jqui_url_tooltip:bae,jqui_value:vae,jqui_value_label_display:yae,jqui_variant:jae,jqui_view_group:xae,jqui_wideFormat:$ae,jqui_widgetTitle:Sae,jqui_with_enter_button:kae,jqui_write_state_note:qae,jqui_write_value:Cae,"letter-spacing":"spaziatura del carattere","line-height":"altezza della linea",material_icons_baseline:Pae,"material_icons_knx-uf":"knx-uf",material_icons_outline:Dae,material_icons_result:Tae,material_icons_round:Mae,material_icons_sharp:zae,material_icons_twotone:Iae,material_icons_upload:Hae,"multi-views":"Mostra nelle viste",never:Aae,no_reload:Oae,none:Lae,normal:Wae,"not defined":"non definito","not-specified":"non definito",optional:Rae,order_help:Nae,orientation:Eae,profile:Fae,"qui_Bool SVG":"SVG booleano",reload:Vae,"search text":"Cerca testo",set_basic:Bae,"signals-color":"Colore","signals-count":"Numero di segnali","signals-smallIcon-0":"Icona piccola [0]","signals-smallIcon-1":"Icona piccola [1]","signals-smallIcon-2":"Icona piccola [3]","signals-text":"Testo o modello","signals-text-0":"Testo [0]","signals-text-1":"Testo [1]","signals-text-2":"Testo [2]","signals-text-tooltip":"Puoi usare %s per mostrare il valore corrente nel testo",sub_view_tooltip:Uae,"text-shadow":"testo-ombra",text_false:Yae,text_true:Gae,"to version":"alla versione",value_string:Jae,version:Kae,vertical:Zae,"vis-2-widgets-basic-autoSetDelay":"Ritardo per la scrittura automatica","vis-2-widgets-basic-input_value":"Valore immesso","vis-2-widgets-basic-noStyle":"Nessuno stile",visResizable:Xae,vis_2_widgets_basic_cannot_recursive:Qae,vis_2_widgets_basic_contains_view:ere,vis_2_widgets_basic_view_in_widget:tre,vis_2_widgets_basic_view_not_defined:ire,vis_2_widgets_swipe_hide_indication_label:sre,vis_2_widgets_swipe_threshold_label:nre,vis_2_widgets_widgets_swipe_label:ore,vis_2_widgets_widgets_tabs_color:are,vis_2_widgets_widgets_tabs_group_tab:rre,vis_2_widgets_widgets_tabs_label:lre,vis_2_widgets_widgets_tabs_show_tabs:cre,vis_2_widgets_widgets_tabs_tab_icon:dre,vis_2_widgets_widgets_tabs_tab_icon_color:ure,vis_2_widgets_widgets_tabs_tab_icon_size:_re,vis_2_widgets_widgets_tabs_tab_image:gre,vis_2_widgets_widgets_tabs_tab_overflow_x:hre,vis_2_widgets_widgets_tabs_tab_overflow_y:pre,vis_2_widgets_widgets_tabs_tab_title:mre,vis_2_widgets_widgets_tabs_tab_view:fre,vis_2_widgets_widgets_tabs_variant:wre,vis_2_widgets_widgets_tabs_variant_centered:bre,vis_2_widgets_widgets_tabs_variant_default:vre,vis_2_widgets_widgets_tabs_variant_full_width:yre,vis_2_widgets_widgets_tabs_vertical:jre,welcome_message:xre,"word-spacing":"spaziatura delle parole"},Sre="Agregar",kre="Administrador",qre="Todo",Cre="Aluminio1",Pre="Aluminio2",Dre="Aplicar",Tre="Atributos",Mre="Básico",zre="Benutzer",Ire="Ladrillos",Hre="CSS",Are="Cancelar",Ore="Claro",Lre="Clon",Wre="Cerca",Rre="Vistoso",Nre="Comentario",Ere="Dupdo",Fre="Crear",Vre="Corte",Bre="Defecto",Ure="Borrar",Yre="Dispositivos",Gre="Discapacitado",Jre="Duplicar",Kre="Editar",Zre="Elementos",Xre="Activado",Qre="Ingresar",ele="Explicación",tle="Exportar",ile="Archivos",sle="Fr",nle="Para todos los proyectos",ole="Cuadrícula",ale="Grupo",rle="Altura",lle="Ocultar",cle="Elevado",dle="Horizontal",ule="Icono",_le="Ignorar",gle="Imagen",hle="Importar",ple="Instancia",mle="Cerrar",fle="Mensaje",wle="Mes",ble="Modificar",vle="Más",yle="Nombre",jle="Navegación",xle="No",$le="Normal",Sle="OFF",kle="SOBRE",qle="Objetos",Cle="OK",Ple="Abierto",Dle="Opciones",Tle="Orden",Mle="Orientación",zle="Paleta",Ile="Pegar",Hle="Por ciento",Ale="Permisos",Ole="Prioridad",Lle="Proyectos",Wle="Leer",Rle="Rehacer",Nle="recargando",Ele="Rebautizar",Fle="Resolución",Vle="Sa",Ble="Ahorrar",Ule="Guiones",Yle="Buscar",Gle="Seleccione",Jle="Ajustes",Kle="Espectáculo",Zle="Estilo",Xle="Su",Qle="Pestañas",ece="Temperatura",tce="Th",ice="Tema",sce="Título",nce="Tu",oce="Escribe",ace="Deshacer",rce="Desagrupar",lce="Desinstalar",cce="desbloquear",dce="Deseleccionar",uce="Actualizar",_ce="Valor",gce="Vertical",hce="Vista",pce="Mi",mce="Fin de semana",fce="Widget",wce="Widgets",bce="Ancho",vce="Escribir",yce="Escritor",jce="Sí",xce="wigeteria",$ce="Todo",Sce="Información sobre herramientas por falso",kce="Información sobre herramientas por verdadero",qce="anonimizar",Cce="Para todos",Pce="none",Dce="Añadir todo lo que queda",Tce="Flecha",Mce="Color del borde",zce="Radio del borde",Ice="Círculo",Hce="polígono personalizado",Ace="Selección múltiple",Oce="Menú desplegable",Lce="Botones horizontales",Wce="Botones verticales",Rce="hexágono",Nce="Línea",Ece='No hay opción "Sin filtro"',Fce="Sin filtro",Vce='Etiqueta "Sin filtro"',Bce="Ocultar esquina",Uce="octágono",Yce="Pentágono",Gce="Alfiler",Jce="continuo",Kce="Detectado",Zce="inglés",Xce="Altura (píxeles)",Qce="Activo",ede="Inactivo",tde='Haga clic en el botón "Permitir" de arriba para habilitar su micrófono.',ide="El permiso para usar el micrófono está bloqueado. Para cambiar, vaya a chrome://settings/contentExceptions#media-stream",sde="Se denegó el permiso para utilizar el micrófono.",nde='No se encontró ningún micrófono. Asegúrate de que haya un micrófono instalado y que la <a href="//support.google.com/chrome/bin/answer.py?hl=en&answer=1407892"> configuración del micrófono</a> esté configurada correctamente.',ode='No se detectó ninguna voz. Es posible que tengas que ajustar la <a href="//support.google.com/chrome/bin/answer.py?hl=en&answer=1407892">configuración del micrófono</a>.',ade="Habla ahora.",rde="Haga clic en el icono del micrófono y comience a hablar.",lde='Este navegador no admite Web Speech API. Actualice a <a href="//www.google.com/chrome">Chrome</a> versión 25 o posterior.',cde="Color de la palabra clave",dde="Color del texto, si se encuentra la palabra clave",ude="Palabras clave",_de="Sin imágen",gde="No hay resultados",hde="No hay texto de ayuda",pde="ruso",mde="Enviado",fde="soltero",wde="Modo de voz",bde="iniciar/detener",vde="Comenzó",yde="Color del texto enviado",jde="Color del texto, cuando el texto se envía para procesarlo.",xde="Ancho (px)",$de="Cuadrado",Sde="Estrella",kde="Subvista",qde="Triángulo",Cde="bloquear",Pde="color",Dde="Color por falso",Tde="Color por verdadero",Mde="copia",zde="Para este proyecto",Ide="Especial",Hde="diferente",Ade="monitor",Ode="flexionar",Lde="flexible",Wde="Carpeta",Rde="Grupo",Nde="Nombre",Ede="Tipo",Fde="Atributos",Vde='Puede definir en los atributos del widget del grupo los nombres especiales en formato "%yourCustomName%" y aparecerán en la configuración de "Atributos". Después de eso, puede proporcionar el nombre y el tipo de atributos personalizados.',Bde="Icono de falso",Ude="Icono de verdadero",Yde="Puede cambiar el tamaño del grupo, seleccionándolo en el selector desplegable de widgets o haciendo clic en este texto",Gde="Texto",Jde="Estos CSS se aplican a todos los proyectos.",Kde="Estos CSS se aplican solo a este proyecto",Zde="ocultar",Xde="horizontal",Qde="horas",eue="Tamaño del icono en píxeles",tue="Puedes cargar tu propio icono de hasta 10k bytes como base64. Se guardará directamente en el proyecto. Si desea cargar un archivo SVG, no olvide configurar el atributo currentColor.",iue="Altura de imagen",sue="Altura de imagen",nue="Icono de invertir",oue="Icono de invertir",aue="Cerca",rue="Ejemplo",lue="Porcentajes",cue="color activo",due="Am PM",uue="como fecha",_ue="Uso de fecha analizable completa",gue="Como cuerda",hue="auto",pue="control binario",mue='Obsoleto. Utilice el widget "Control binario". Mantenido solo por compatibilidad con vis.1',fue="Color del boton",wue="Botón de cerrar diálogo",bue='Obsoleto. Utilice el widget "Entrada". Mantenido solo por compatibilidad con vis.1',vue="Saltar a URL",yue="Saltar a URL (en ventana nueva)",jue='Obsoleto. Utilice el primer widget con la opción "Abrir en ventana nueva". Mantenido solo por compatibilidad con vis.1',xue='Obsoleto. Utilice el primer widget con la opción "Ir a ver". Mantenido solo por compatibilidad con vis.1',$ue="Botón de texto",Sue="Usar el nombre de la vista como título",kue="Borrable",que="Color",Cue="Botón=>Diálogo de página",Pue="Diálogo de contenedor",Due="Icono=>Diálogo de página",Tue="Nombre del cuadro de diálogo",Mue="Establecer estado por cuadro de diálogo abierto",zue="Deshabilitar futuro",Iue="Desactivar pasado",Hue="Mostrar número de semana",Aue="Longitudes de texto iguales",Oue='Si se activa, las longitudes de los textos para verdadero y falso serán iguales, por lo que el ícono permanecerá en el mismo lugar en los estados "apagado" y "encendido".',Lue="Diálogo externo",Wue='Este cuadro de diálogo no es visible en la página, pero se puede abrir mediante el comando externo "dialogOpen" con el nombre del cuadro de diálogo o el ID del widget como parámetro.',Rue="FALSO",Nue="De otro objeto",Eue="De valor estático",Fue="Generar",Vue="Valor",Bue="Ocultar botón de cerrar",Uue="Esta URL se llamará en el navegador",Yue="HTML",Gue="Diálogo HTML",Jue="Diálogo externo",Kue="HTML por falso",Zue="HTML solo se puede configurar si el texto y el ícono están vacíos",Xue="HTML por verdadero",Que="Icono",e_e="Icono activo",t_e="Diálogo de iconos",i_e="URL de llamada en backend",s_e="Incrementar con icono",n_e="Saltar a URL (con icono)",o_e="Icono de máximo",a_e="Botón de icono booleano",r_e="Presionar el botón",l_e="Botón de alternar con icono",c_e="Imagen",d_e="Imagen activa",u_e="Altura de imagen",__e="Imagen para máximo",g_e="Incremento/Decremento",h_e="Aporte",p_e="Entrada de fecha",m_e="entrada de tiempo",f_e="Entrada con botón",w_e="Icono de invertir",b_e="invertido",v_e="Estilo jQuery",y_e="Valor máximo",j_e="Valor mínimo",x_e="Título",$_e="Ir a ver",S_e="Botón de navegación",k_e="Icono de navegación",q_e="Navegación con contraseña",C_e="No igual ancho",P_e="Apagado",D_e="Identificación de trabajo",T_e="Act.",M_e="Solo icono",z_e="como lista",I_e="Orientación",H_e="Contraseña",A_e="El usuario debe ingresar la contraseña para abrir el cuadro de diálogo, ir a la página o URL",O_e="Modo de empuje",L_e="Al presionar el botón se escribirá “verdadero” y al soltar el botón se escribirá “falso”.",W_e="Botones de radio (encendido/apagado)",R_e="Lista de radio con valores.",N_e="Botón de radio (pasos)",E_e="rango",F_e="Solo lectura",V_e="Retardo de repetición",B_e="Intervalo de repetición",U_e="Seleccionar todo en foco",Y_e="Al enfocar, se seleccionará todo el texto, por lo que se puede eliminar o cambiar rápidamente sin presionar el botón de retroceso",G_e="Seleccionar de la lista",J_e="con estilo",K_e="Escribir tiempo de espera",Z_e="soltero",X_e="Control deslizante",Q_e="Obsoleto. Utilice el widget deslizante con orientación establecida en vertical. Mantenido solo por compatibilidad con vis.1",ege="control deslizante vertical",tge='Obsoleto. Utilice el widget "Control de estados" con la opción "incrementar/decrementar". Mantenido solo por compatibilidad con vis.1',ige="control de los estados",sge="Paso minuto",nge="Valor de prueba",oge="Texto",age="Texto activo",rge="Texto para máximo",lge="Palanca",cge="Información sobre herramientas",dge="Verdadero",uge="Tipo",_ge="Unidad",gge="URL de llamada por clic",hge="URL en back-end",pge="URL en el navegador",mge="Esta URL será llamada en segundo plano por el motor ioBroker",fge="Valor",wge="Etiqueta de visualización",bge="Variante",vge="Vista de navegación",yge="Formato amplio",jge="Título",xge="Con botón de entrada",$ge='Obsoleto. Utilice el widget "Estado de escritura" con la opción "incrementar/decrementar". Mantenido solo por compatibilidad con vis.1',Sge="Escribir valor",kge="Lleno",qge="contorneado",Cge="%s resultados coincidentes",Pge="Redondo",Dge="Agudo",Tge="Dos tonos",Mge="Subir",zge="nunca",Ige="no recarga",Hge="ninguna",Age="normal",Oge="Opcional",Lge="Puede arrastrar y soltar cualquier elemento o hacer clic en el elemento con el que se intercambiará el widget seleccionado",Wge="Orientación",Rge="Perfil",Nge="recargar",Ege="básico",Fge="Se utiliza para fines especiales, como la navegación de diseño jaeger.",Vge="Texto por falso",Bge="Texto por verdadero",Uge="Cuerda",Yge="versión",Gge="vertical",Jge="Redimensionable",Kge="No se pueden usar vistas recursivas",Zge="Usar vista",Xge="Ver en widget",Qge="Vista no definida",ehe="Ocultar indicación",the="Límite",ihe="Swipe",she="Color",nhe="Pestaña",ohe="Pestañas",ahe="Número",rhe="Icono",lhe="Color",che="Tamaño de ícono",dhe="Imagen",uhe="Desbordamiento X",_he="Desbordamiento Y",ghe="Título",hhe="Vista",phe="Variante",mhe="centrado",fhe="Por defecto",whe="ancho completo",bhe="Vertical",vhe="Aún no existe ningún proyecto.",yhe={"%s from %s":"%s de %s","%s widgets":"%s widgets","(Maximal file size is %s)":"(El tamaño máximo de archivo es %s)","-attachment":"-attachment","-clip":"-clip","-color":"-color","-image":"-image","-origin":"-origin","-position":"-position","-repeat":"-repeat","-size":"-size","1 day":"1 día","1 hour":"1 hora","1 minute":"1 minuto","1 second":"1 segundo","10 minutes":"10 minutos","10 seconds":"10 segundos","12 hours":"12 horas","15 m.":"15 m.","2 hours":"2 horas","2 seconds":"2 segundos","20 seconds":"20 segundos","3 hours":"3 horas","30 m.":"30 m.","30 minutes":"30 minutos","30 seconds":"30 segundos","5 minutes":"5 minutos","5 seconds":"5 segundos","6 hours":"6 horas","Activation state":"Estado de activación","Active widget(s) from %s":"Widget(s) activo(s) de %s",Add:Sre,"Add folder":"Agregar carpeta","Add new child folder":"Agregar nueva carpeta secundaria","Add new child profile":"Agregar nuevo perfil de niño","Add new or update existing widget":`Agregar widget nuevo o actualizar el existente
`,"Add new view":"Nueva vista","Add profile":"Agregar perfil","Add project":"Agregar proyecto","Add sub-folder":"Añadir subcarpeta","Add to widgeteria":"Añadir a widgeteria","Add view":"Agregar vista",Administrator:kre,"Align height. Press more time to get the desired height.":"Alinear altura. Presione más tiempo para obtener la altura deseada.","Align horizontal/center":"Alinear horizontal/centro","Align horizontal/equal":"Alinear horizontal/igual","Align horizontal/left":"Alinear horizontal/izquierda","Align horizontal/right":"Alinear horizontal/derecha","Align vertical/bottom":"Alinear vertical/inferior","Align vertical/center":"Alinear vertical/centro","Align vertical/equal":"Alinear vertical/igual","Align vertical/top":"Alinear vertical/superior","Align width. Press more time to get the desired width.":"Alinee el ancho. Presione más tiempo para obtener el ancho deseado.",All:qre,Aluminium1:Cre,Aluminium2:Pre,"App bar":"barra de aplicaciones",Apply:Dre,"Apply ALL navigation properties to all views":"Aplicar TODAS las propiedades de navegación a todas las vistas","Apply to all views":"Aplicar esta propiedad a todas las vistas.","Are you sure":"Está seguro","Are you sure to delete widgets %s?":"¿Estás seguro de eliminar los widgets %s?",Attributes:Tre,"Available for all":"Proyecto accesible para todos los usuarios","Background class":"Clase de fondo","Background color":"Color de fondo","Background color if selected":"Color de fondo si se selecciona","Bar color":"Color de fondo","Bar icon":"Icono","Bar image":"Imagen","Bar text":"Subtítulo",Basic:Mre,Benutzer:zre,"Blue flowers":"Flores azules","Blue marine":"Azul marino","Blue marine lines":"Líneas marinas azules","Blueprint grid":"Rejilla de planos","Body overflow":"Body overflow",Bricks:Ire,"Bring to front":"Traer al frente","Browse files":"Búsqueda de archivos","Browse objects":"Examinar objetos","Browse the widgeteria":"Explorar la widgeteria","Browser instance ID":"ID de instancia del navegador","Browser tab favicon":"Favicono de la pestaña del navegador","Browser tab title":"Título de la pestaña del navegador","By horizontal menu do not show text if icon provided":"Por menú horizontal no mostrar texto si icono proporcionado",CSS:Hre,"CSS Class":"Clase CSS","CSS Common":"CSS común","CSS Font & Text":"CSS Fuente y texto","CSS background (background-...)":"CSS Fondo (background-...)",Cancel:Are,"Cannot use recursive views":"No se pueden usar vistas recursivas","Carbon fibre":"Fibra de carbón","Carbon fibre1":"fibra de carbono1","Chevron icon color":"Color del botón mostrar",Clear:Ore,"Clear filter":"Filtro claro","Click to close":"Haga clic para cerrar",Clone:Lre,"Clone widget":"Widget de clonación",Close:Wre,"Close all":"Desplegar todo","Close all but current view":"Cerrar todo menos la vista actual","Close editor":"Cerrar editor","Collapse all":"Desplegar todo",Colorful:Rre,"Column gap":"Espacio entre columnas","Column width":"Ancho de columna",Comment:Nre,"Convert %s to %s":"Convertir %s a %s","Copied %s":"%s copiado","Copied to clipboard":"Copiado al portapapeles",Copy:Ere,"Copy noun":"Copiar","Copy to clipboard":"Copiar al portapapeles",'Copy view "%s"':'Copiar vista "%s"',Create:Fre,"Create copy":"Crear copia","Create instance":"Crear instancia","Create new project":"Crear nuevo proyecto",'Create or import new "vis-2" project':'Crear o importar un nuevo proyecto "vis-2"',"Current project":"Proyecto actual",Cut:Vre,"Dark reconnect screen":"Pantalla de reconexión oscura","Deactivate binding and use field as standard input":"Desactivar el enlace y utilizar el campo como entrada estándar",Default:Bre,"Default view":"Vista predeterminada","Default: auto":'Predeterminado: "auto"',Delete:Ure,"Delete actual view":"Eliminar vista real","Delete widgets":"Eliminar widgets","Destroy inactive view":"Destruir vista inactiva","Detected new version of vis files. Reloading in 2 seconds...":"Nueva versión detectada de archivos vis. Recargando en 2 segundos...",Devices:Yre,Disabled:Gre,"Do not ask again":"No preguntes de nuevo","Do not hide menu":"No ocultar el menú por completo","Do you want to create first demo project?":"¿Quieres crear el primer proyecto de demostración?",'Do you want to delete folder "%s"':'¿Desea eliminar la carpeta "%s"?','Do you want to delete project "%s"?':'¿Desea eliminar el proyecto "%s"?','Do you want to delete view "%s"?':'¿Desea eliminar la vista "%s"?','Do you want to include "%s" widget into "%s"?':'¿Quieres incluir el widget "%s" en "%s"?',"Drag me":"Arrástrame","Drop the files here ...":"Suelta los archivos aquí...",Duplicate:Jre,"Duplicate folder":"Duplica la carpeta","Duplicate profile":"Duplica el perfil",Edit:Kre,"Edit binding":"Editar enlace","Edit folder":"Editar carpeta","Edit group":"Editar grupo","Edit profile":"Editar perfil",Elements:Zre,Enabled:Xre,Enter:Qre,"Enter password":"Introducir la contraseña","Enter the browser instances divided by comma":"Introduzca las instancias del navegador divididas por coma","Expand all":"Expandir todo",Explanation:ele,Export:tle,'Export "%s"':'Exportar "%s"',"Export widgets":"Exportar widgets","External dialog":"Diálogo externo","Fields of group will be cleaned":"Se limpiarán campos de grupo","File too large":"Archivo demasiado grande",Files:ile,"Filter widgets":"Filtrar widgets","Fm dark background":"fondo oscuro fm","Fm light background":"fondo claro fm","Following views will be changed":"Se cambiarán las siguientes vistas","For widgets with relative position":"Para widgets con posición relativa",Fr:sle,"Full HD - Landscape":"Full HD - Paisaje","Full HD - Portrait":"Full HD - Retrato","Full panel":"panel completo","Galaxy Fold - Landscape":"Galaxy Fold - Apaisado","Galaxy Fold - Portrait":"Galaxy Fold - Retrato",Global:nle,"Gradient box":"cuadro de degradado","Gray 0":"gris 0","Gray 1":"gris 1",Grid:ole,Group:ale,"Group view css background":"Fondo css de vista de grupo","Group widgets":"Agrupar widgets","H gradient black 0":"H degradado negro 0","H gradient black 1":"H degradado negro 1","H gradient black 2":"H degradado negro 2","H gradient black 3":"H degradado negro 3","H gradient black 4":"H degradado negro 4","H gradient black 5":"H degradado negro 5","H gradient blue 0":"H degradado azul 0","H gradient blue 1":"H degradado azul 1","H gradient blue 2":"H degradado azul 2","H gradient blue 3":"H degradado azul 3","H gradient blue 4":"H degradado azul 4","H gradient blue 5":"H degradado azul 5","H gradient blue 6":"H azul degradado 6","H gradient blue 7":"H degradado azul 7","H gradient gray 0":"H gris degradado 0","H gradient gray 1":"H gris degradado 1","H gradient gray 2":"H gris degradado 2","H gradient gray 3":"H gris degradado 3","H gradient gray 4":"H gris degradado 4","H gradient gray 5":"H gris degradado 5","H gradient gray 6":"H gris degradado 6","H gradient green 0":"H degradado verde 0","H gradient green 1":"H degradado verde 1","H gradient green 2":"H degradado verde 2","H gradient green 3":"H degradado verde 3","H gradient green 4":"H degradado verde 4","H gradient orange 0":"H degradado naranja 0","H gradient orange 1":"H degradado naranja 1","H gradient orange 2":"H degradado naranja 2","H gradient orange 3":"H degradado naranja 3","H gradient yellow 0":"H degradado amarillo 0","H gradient yellow 1":"H degradado amarillo 1","H gradient yellow 2":"H degradado amarillo 2","H gradient yellow 3":"H degradado amarillo 3","HD - Landscape":"HD - Paisaje","HD - Portrait":"HD - Retrato",Height:rle,Hide:lle,"Hide after selection":"Ocultar después de la selección","Hide all views":"Ocultar todas las vistas","Hide attributes":"Ocultar atributos","Hide menu":"Ocultar el menú","Hide palette":"Ocultar paleta","Hide panel names":"Ocultar nombres de paneles","Hide selected widgets":"Ocultar widgets seleccionados",High:cle,"High priority":"Alta prioridad","Highest eg. Holiday":"Más alto, por ejemplo. Fiesta",Horizontal:dle,Icon:ule,"If user not in group":"Si el usuario no está en el grupo",Ignore:_le,"Ignored in edit mode":"Ignorado en el modo de edición",Image:gle,Import:hle,"Import project":"Importar proyecto","Import widgets":"Importar widgets","Include widget?":"¿Incluir widget?","Initial filter":"Filtro inicial",Instance:ple,"Invalid file type":"tipo de archivo invalido","Jump to widget by double click":"Saltar al widget haciendo doble clic en el widget","Just use without modification":"Solo uso sin modificaciones.","Keep on old place":"Mantener en el lugar antiguo","Limit background color":"Color de fondo","Limit border color":"Color del borde","Limit border style":"Estilo de borde","Limit border width":"Ancho del borde","Limit only for instances":"Limitar solo por instancias","Limit screen":"Pantalla límite","Lined paper":"Papel rayado","Load project file...":"Cargando archivo de proyecto...","Load widgets...":"Cargando widgets...","Loading objects...":"Cargando objetos...",Lock:mle,"Lock dragging":"Arrastrar bloqueo","Manage projects":"Administrar proyectos","Manage views":"Administrar vistas","Menu header text":"Texto del encabezado del menú","Menu header text color":"Color del texto del encabezado del menú","Menu width":"Ancho del menú",Message:fle,Mo:wle,Modify:ble,More:vle,"Move down":"Mover hacia abajo","Move to new place":"Mover a un nuevo lugar","Move up":"Ascender","Move widget down or press longer to open re-order menu":"Mueva el widget hacia abajo o presione más para abrir el menú de reordenación","Move widget up or press longer to open re-order menu":"Mueve el widget hacia arriba o mantén presionado para abrir el menú de reordenación",Name:yle,"Name is not unique":"El nombre no es único","Name of copy":"Nombre de la copia","Narrow panel":"panel estrecho",Navigation:jle,"Nest Hub - Landscape":"Nest Hub - Horizontal","Nest Hub - Portrait":"Nest Hub - Retrato","Nest Hub Max - Landscape":"Nest Hub Max - Paisaje","Nest Hub Max - Portrait":"Nest Hub Max - Retrato","New name":"Nuevo nombre","New view":"Nueva vista",No:xle,"No background":"sin fondo",Normal:$le,OFF:Sle,ON:kle,Objects:qle,Ok:Cle,"On/Off":"Encendido apagado","One parameter":"Un parámetro","Only for desktop":"Sólo para escritorio","Only for groups":"Solo para grupos","Only the admin user can change permissions":"Sólo el usuario administrador puede cambiar los permisos",Open:Ple,"Open all":"Expandir todo","Open it?":"¿Abrelo?","Open runtime in new window":"Abrir el tiempo de ejecución en una nueva ventana","Open widgeteria":"Widgetería abierta",Options:Dle,Order:Tle,Orientation:Mle,Palette:zle,Paste:Ile,Percent:Hle,Permissions:Ale,"Pixel 5 - Landscape":"Píxel 5 - Paisaje","Pixel 5 - Portrait":"Píxel 5 - Retrato",Priority:Ole,'Project "%s" does not exist':'El proyecto "%s" no existe','Project "%s" was successfully imported':'El proyecto "%s" se importó con éxito',"Project already exists":"Proyecto ya existe","Project name":"Nombre del proyecto","Project settings":"Configuración del proyecto","Project was updated":"El proyecto fue actualizado","Project was updated by another browser instance. Do you want to reload it?":"El proyecto fue actualizado por otra instancia del navegador. ¿Quieres recargarlo?",Projects:Lle,"Radial blue":"azul radial",Read:Wle,"Read = Runtime access":"Lectura = acceso al tiempo de ejecución","Read about currentColor in SVG":"Lea sobre currentColor en SVG","Rebuild HTML pages":"Reconstruir páginas HTML","Rebuild of HTML pages was started":"Se ha iniciado la reconstrucción de las páginas HTML","Received user command: %s":"Comando de usuario recibido: %s","Reconnect interval":"Intervalo de reconexión",Redo:Rle,"Reload all browsers if project changed":"Vuelva a cargar todos los navegadores si el proyecto cambió","Reload all runtimes":"Recargar todos los tiempos de ejecución","Reload if sleep longer than":"Vuelva a cargar si duerme más de","Reload now":"recargar ahora",Reloading:Nle,Rename:Ele,'Rename folder "%s"':'Cambiar el nombre de la carpeta "%s"','Rename project "%s"':'Renombrar proyecto "%s"',"Rename view":"Renombrar vista",'Rename view "%s"':'Cambiar el nombre de la vista "%s"',"Render always":"renderizar siempre","Reset all intervals to following value:":"Restablezca todos los intervalos al siguiente valor:",Resolution:Fle,"Responsive settings":"Configuraciones receptivas","Row gap":"Espacio entre filas",Sa:Vle,"Samsung Galaxy A51/71 - Landscape":"Samsung Galaxy A51/71 - Horizontal","Samsung Galaxy A51/71 - Portrait":"Samsung Galaxy A51/71 - Retrato","Samsung Galaxy S20 Ultra - Landscape":"Samsung Galaxy S20 Ultra - Horizontal","Samsung Galaxy S20 Ultra - Portrait":"Samsung Galaxy S20 Ultra - Retrato","Samsung Galaxy S8+ - Landscape":"Samsung Galaxy S8+ - Apaisado","Samsung Galaxy S8+ - Portrait":"Samsung Galaxy S8+ - Retrato",Save:Ble,Scripts:Ule,Search:Yle,Select:Gle,"Select all":"Seleccionar todo","Select object ID":"Seleccionar ID de objeto","Select or create profile in left menu":"Seleccionar o crear perfil en el menú de la izquierda","Select project":"Seleccionar proyecto","Select vis-2 project":'Seleccionar proyecto "vis-2"',"Send to back":"Enviar al fondo","Sent to back":"Enviado a la espalda",Set:"Colocar","Set all periods to one value":"Establecer todos los períodos en un valor","Set widgets filter for edit mode":"Ocultar widgets (que tienen clave de filtro) en el modo de edición",Settings:Jle,"Should it be moved to new place?":"¿Debería trasladarse a un nuevo lugar?",Show:Kle,"Show all views":"Mostrar todas las vistas","Show app bar":"Espectáculo","Show background of button":"Fondo del botón Mostrar","Show navigation":"Mostrar navegación","Show only selected widgets":"Mostrar solo los widgets seleccionados","Show only toolbar on the top and hide menu itself":"Mostrar sólo la barra de herramientas en la parte superior y ocultar el propio menú","Show palette":"Mostrar paleta","Show this attribute by all views":"Mostrar este atributo en todas las vistas.","Show view":"Mostrar vista","Specify filter to see more icons":"Especificar filtro para ver más iconos","States Debounce Time (millis)":"Estados Tiempo de rebote (milis)",Style:Zle,"Style of menu button only when the menu is hidden":"Estilo del botón de menú sólo cuando el menú está oculto",Su:Xle,"Surface Duo - Landscape":"Surface Duo - Paisaje","Surface Duo - Portrait":"Surface Duo - Retrato","Surface Pro 7 - Landscape":"Surface Pro 7 - Horizontal","Surface Pro 7 - Portrait":"Surface Pro 7 - Retrato","Switch to group edit mode by double click":"Cambie al modo de edición de grupo haciendo doble clic en el widget",Tabs:Qle,Temperature:ece,"Text color":"Color de texto","Text color if selected":"Color del texto si se selecciona","Text edit":"Edición de texto",Th:tce,Theme:ice,"This view will be shown only to defined groups":"Esta vista se mostrará solo a grupos definidos",'This widget is already used in "%s"':'Este widget ya se usa en "%s"',Title:sce,"To use it, define by some widget the filter key":"Para usarlo, defina por algún widget la clave de filtro","Toggle runtime":"Alternar tiempo de ejecución","Toggle widget hint (dark)":"Alternar sugerencia de widget (oscura)","Toggle widget hint (hide)":"Alternar sugerencia de widget (ocultar)","Toggle widget hint (light)":"Alternar sugerencia de widget (luz)",Tu:nce,Type:oce,Undo:ace,Ungroup:rce,Uninstall:lce,'Unknown widget type "%s"':'Tipo de widget desconocido "%s"',Unlock:cce,Unselect:dce,Update:uce,"Usage of widget %s":"Uso del widget %s","Use background":"Usar fondo","Use field as binding":"Usar campo como enlace","User defined":"Usuario definido",Value:_ce,Vertical:gce,View:hce,"View not defined":"Vista no definida",We:pce,Weekend:mce,Widget:fce,"Widget CSS":"Widget CSS","Widget JS":"Widget JS","Widget was deleted in widgeteria":"El widget fue eliminado en widgeteria",Widgets:wce,Width:bce,"Width x height (px)":"Ancho x alto (px)",Write:vce,"Write = Edit mode access":"Escritura = acceso al modo de edición",Writer:yce,"Wrong password":"Contraseña incorrecta",Yes:jce,"You can open dialog with following script:":"Puede abrir el diálogo con el siguiente script:","You can provide here the state that controls the activation of this profile":"Puede proporcionar aquí el estado que controla la habilitación de este perfil",__marketplace:xce,ace_All:$ce,"ace_CaseSensitive Search":"Búsqueda sensible a mayúsculas y minúsculas","ace_RegExp Search":"Búsqueda de expresiones regulares","ace_Search In Selection":"Buscar en selección","ace_Search for":"Buscar","ace_Toggle Replace mode":"Alternar modo de reemplazo","ace_Whole Word Search":"Búsqueda de palabras completas",alt_false:Sce,alt_true:kce,anonymize:qce,apply_to_all:Cce,attr_none:Pce,basic_all_filters:Dce,basic_arrow:Tce,basic_borderColor:Mce,basic_borderRadius:zce,basic_circle:Ice,basic_custom:Hce,basic_filter_multiple:Ace,basic_filter_type_dropdown:Oce,basic_filter_type_horizontal_buttons:Lce,basic_filter_type_vertical_buttons:Wce,basic_hexagone:Rce,basic_line:Nce,basic_no_all_option:Ece,basic_no_filter:Fce,basic_no_filter_text:Vce,basic_node_hide_corner:Bce,basic_octagone:Uce,basic_pentagone:Yce,basic_pin:Gce,basic_speech2text_continuous:Jce,basic_speech2text_detected:Kce,basic_speech2text_en_us:Zce,basic_speech2text_height:Xce,basic_speech2text_image_active:Qce,basic_speech2text_image_inactive:ede,basic_speech2text_info_allow:tde,basic_speech2text_info_blocked:ide,basic_speech2text_info_denied:sde,basic_speech2text_info_no_microphone:nde,basic_speech2text_info_no_speech:ode,basic_speech2text_info_speak_now:ade,basic_speech2text_info_start:rde,basic_speech2text_info_upgrade:lde,basic_speech2text_key_word_color:cde,basic_speech2text_key_word_color_tooltip:dde,basic_speech2text_keywords:ude,basic_speech2text_no_image:_de,basic_speech2text_no_results:gde,basic_speech2text_no_text:hde,basic_speech2text_ru_ru:pde,basic_speech2text_sent:mde,basic_speech2text_single:fde,basic_speech2text_speech_mode:wde,basic_speech2text_start_stop:bde,basic_speech2text_started:vde,basic_speech2text_text_sent_color:yde,basic_speech2text_text_sent_color_tooltip:jde,basic_speech2text_width:xde,basic_square:$de,basic_star:Sde,basic_sub_view:kde,basic_triangle:qde,block:Cde,color:Pde,color_false:Dde,color_true:Tde,"convert from widgeteria widget":"convertir de widget de widgeteria",copy:Mde,css_project:zde,custom_icons:Ide,different:Hde,display:Ade,"finish searching":"búsqueda terminada",flex:Ode,flexible:Lde,folder:Wde,"font-family":"Familia tipográfica","font-size":"tamaño de fuente","font-style":"Estilo de fuente","font-variant":"variante de fuente","font-weight":"peso de fuente",group:Rde,group_attrName:Nde,group_attrType:Ede,group_fields:Fde,group_help:Vde,group_icon_false:Bde,group_icon_true:Ude,group_size_hint:Yde,group_text:Gde,help_css_global:Jde,help_css_project:Kde,hide:Zde,"hide code":"ocultar código",horizontal:Xde,hr:Qde,"iPad Air - Landscape":"iPad Air - Paisaje","iPad Air - Portrait":"iPad Air - Retrato","iPad Mini - Landscape":"iPad Mini - Paisaje","iPad Mini - Portrait":"iPad Mini - Retrato","iPad Pro - Landscape":"iPad Pro - Paisaje","iPad Pro - Portrait":"iPad Pro - Retrato","iPhone 12 Pro - Landscape":"iPhone 12 Pro - Paisaje","iPhone 12 Pro - Portrait":"iPhone 12 Pro - Retrato","iPhone SE - Landscape":"iPhone SE - Paisaje","iPhone SE - Portrait":"iPhone SE - Retrato","iPhone XR - Landscape":"iPhone XR - Paisaje","iPhone XR - Portrait":"iPhone XR - Retrato",icon_size_in_pixels:eue,icon_upload_hint:tue,imageHeight_false:iue,imageHeight_true:sue,invert_icon_false:nue,invert_icon_true:oue,"jqui_Add new value":"Agregar nuevo valor","jqui_Are you sure?":"¿Está seguro?","jqui_Bulk edit":"Edición masiva",jqui_Close:aue,jqui_Example:rue,"jqui_Generate states":"Generar estados","jqui_Generate steps":"Generar pasos","jqui_Maximum value":"Valor máximo","jqui_Minimum value":"Valor mínimo","jqui_Number settings":"Configuraciones numéricas",jqui_Percents:lue,"jqui_Replace to":"Reemplazar con","jqui_Select file":"Seleccionar imagen","jqui_Write state":"Escribir estado",jqui_active_color:cue,jqui_ampm:due,jqui_asDate:uue,jqui_asFullDate:_ue,jqui_as_string:gue,jqui_auto:hue,jqui_binary_control:pue,jqui_button_binary_control_note:mue,jqui_button_color:fue,jqui_button_dialog_close:wue,jqui_button_input_note:bue,jqui_button_link:vue,jqui_button_link_blank:yue,jqui_button_link_blank_note:jue,jqui_button_nav_blank_note:xue,jqui_button_text:$ue,jqui_buttontext_view:Sue,jqui_clearable:kue,jqui_color:que,jqui_container_button_dialog:Cue,jqui_container_dialog:Pue,jqui_container_icon_dialog:Due,jqui_dialog_name:Tue,jqui_dialog_set_id_tooltip:Mue,jqui_disableFuture:zue,jqui_disablePast:Iue,jqui_displayWeekNumber:Hue,jqui_equal_text_length:Aue,jqui_equal_text_length_tooltip:Oue,jqui_external_dialog:Lue,jqui_external_dialog_tooltip:Wue,jqui_false:Rue,jqui_from_oid:Nue,jqui_from_value:Eue,jqui_generate:Fue,jqui_group_value:Vue,jqui_hide_close_button:Bue,jqui_href_tooltip:Uue,jqui_html:Yue,jqui_html_dialog:Gue,jqui_html_external_dialog:Jue,jqui_html_false:Kue,jqui_html_tooltip:Zue,jqui_html_true:Xue,jqui_icon:Que,jqui_icon_active:e_e,jqui_icon_dialog:t_e,jqui_icon_http_get:i_e,jqui_icon_increment:s_e,jqui_icon_link:n_e,jqui_icon_max:o_e,jqui_icon_state_bool:a_e,jqui_icon_state_push_button:r_e,jqui_icon_toggle:l_e,jqui_image:c_e,jqui_image_active:d_e,jqui_image_height:u_e,jqui_image_max:__e,jqui_increment_decrement:g_e,jqui_input:h_e,jqui_input_date:p_e,jqui_input_time:m_e,jqui_input_with_button:f_e,jqui_invert_icon:w_e,jqui_inverted:b_e,jqui_jquery_style:v_e,jqui_max:y_e,jqui_min:j_e,jqui_name:x_e,jqui_nav_view:$_e,jqui_navigation_button:S_e,jqui_navigation_icon:k_e,jqui_navigation_password:q_e,jqui_not_equal_length:C_e,jqui_off:P_e,jqui_oid_working:D_e,jqui_on:T_e,jqui_only_icon:M_e,jqui_open:z_e,jqui_orientation:I_e,jqui_password:H_e,jqui_password_tooltip:A_e,jqui_push_mode:O_e,jqui_push_mode_tooltip:L_e,jqui_radio_buttons_on_off:W_e,jqui_radio_list:R_e,jqui_radio_steps:N_e,jqui_range:E_e,jqui_read_only:F_e,jqui_repeat_delay:V_e,jqui_repeat_interval:B_e,jqui_select_all_on_focus:U_e,jqui_select_all_on_focus_tooltip:Y_e,jqui_select_list:G_e,jqui_set_label:J_e,jqui_set_timeout:K_e,jqui_single:Z_e,jqui_slider:X_e,jqui_slider_note:Q_e,jqui_slider_vertical:ege,jqui_state_note:tge,jqui_states_control:ige,jqui_stepMinute:sge,jqui_test:nge,jqui_text:oge,jqui_text_active:age,jqui_text_max:rge,jqui_toggle:lge,jqui_tooltip:cge,jqui_true:dge,jqui_type:uge,jqui_unit:_ge,jqui_url_group:gge,jqui_url_in_background:hge,jqui_url_in_browser:pge,jqui_url_tooltip:mge,jqui_value:fge,jqui_value_label_display:wge,jqui_variant:bge,jqui_view_group:vge,jqui_wideFormat:yge,jqui_widgetTitle:jge,jqui_with_enter_button:xge,jqui_write_state_note:$ge,jqui_write_value:Sge,"letter-spacing":"espaciado de letras","line-height":"altura de la línea",material_icons_baseline:kge,"material_icons_knx-uf":"knx-uf",material_icons_outline:qge,material_icons_result:Cge,material_icons_round:Pge,material_icons_sharp:Dge,material_icons_twotone:Tge,material_icons_upload:Mge,"multi-views":"Mostrar en Vistas",never:zge,no_reload:Ige,none:Hge,normal:Age,"not defined":"no definida","not-specified":"no definida",optional:Oge,order_help:Lge,orientation:Wge,profile:Rge,"qui_Bool SVG":"SVG booleano",reload:Nge,"search text":"Buscar texto",set_basic:Ege,"signals-color":"Color","signals-count":"Número de señales","signals-smallIcon-0":"Icono pequeño [0]","signals-smallIcon-1":"Icono pequeño [1]","signals-smallIcon-2":"Icono pequeño [3]","signals-text":"Texto o plantilla","signals-text-0":"Texto [0]","signals-text-1":"Texto [1]","signals-text-2":"Texto [2]","signals-text-tooltip":"Puede utilizar %s para mostrar el valor actual en texto",sub_view_tooltip:Fge,"text-shadow":"sombra de texto",text_false:Vge,text_true:Bge,"to version":"a versión",value_string:Uge,version:Yge,vertical:Gge,"vis-2-widgets-basic-autoSetDelay":"Retraso para la escritura automática","vis-2-widgets-basic-input_value":"Valor de entrada","vis-2-widgets-basic-noStyle":"Sin estilo",visResizable:Jge,vis_2_widgets_basic_cannot_recursive:Kge,vis_2_widgets_basic_contains_view:Zge,vis_2_widgets_basic_view_in_widget:Xge,vis_2_widgets_basic_view_not_defined:Qge,vis_2_widgets_swipe_hide_indication_label:ehe,vis_2_widgets_swipe_threshold_label:the,vis_2_widgets_widgets_swipe_label:ihe,vis_2_widgets_widgets_tabs_color:she,vis_2_widgets_widgets_tabs_group_tab:nhe,vis_2_widgets_widgets_tabs_label:ohe,vis_2_widgets_widgets_tabs_show_tabs:ahe,vis_2_widgets_widgets_tabs_tab_icon:rhe,vis_2_widgets_widgets_tabs_tab_icon_color:lhe,vis_2_widgets_widgets_tabs_tab_icon_size:che,vis_2_widgets_widgets_tabs_tab_image:dhe,vis_2_widgets_widgets_tabs_tab_overflow_x:uhe,vis_2_widgets_widgets_tabs_tab_overflow_y:_he,vis_2_widgets_widgets_tabs_tab_title:ghe,vis_2_widgets_widgets_tabs_tab_view:hhe,vis_2_widgets_widgets_tabs_variant:phe,vis_2_widgets_widgets_tabs_variant_centered:mhe,vis_2_widgets_widgets_tabs_variant_default:fhe,vis_2_widgets_widgets_tabs_variant_full_width:whe,vis_2_widgets_widgets_tabs_vertical:bhe,welcome_message:vhe,"word-spacing":"espacio entre palabras"},jhe="Dodać",xhe="Administrator",$he="Wszystko",She="Aluminium1",khe="Aluminium2",qhe="Stosować",Che="Atrybuty",Phe="Podstawowy",Dhe="Benutzer",The="Cegły",Mhe="CSS",zhe="Anulować",Ihe="Jasne",Hhe="Klon",Ahe="Blisko",Ohe="Kolorowy",Lhe="Komentarz",Whe="Kopiuj",Rhe="Tworzyć",Nhe="Skaleczenie",Ehe="Domyślna",Fhe="Kasować",Vhe="Urządzenia",Bhe="Wyłączone",Uhe="Duplikować",Yhe="Edytować",Ghe="Elementy",Jhe="Włączony",Khe="Wchodzić",Zhe="Wyjaśnienie",Xhe="Eksport",Qhe="Akta",epe="Fr",tpe="Dla wszystkich projektów",ipe="Krata",spe="Grupa",npe="Wysokość",ope="Ukrywać",ape="Wysoka",rpe="Poziomy",lpe="Ikona",cpe="Ignorować",dpe="Obraz",upe="Import",_pe="Instancja",gpe="Zamek",hpe="Wiadomość",ppe="Mo",mpe="Modyfikować",fpe="Więcej",wpe="Nazwa",bpe="Nawigacja",vpe="Nie",ype="Normalna",jpe="OFF",xpe="ON",$pe="Obiekty",Spe="Ok",kpe="otwarty",qpe="Opcje",Cpe="Zamówienie",Ppe="Orientacja",Dpe="Paleta",Tpe="Pasta",Mpe="Procent",zpe="Uprawnienia",Ipe="Priorytet",Hpe="Projektowanie",Ape="Czytać",Ope="Przerobić",Lpe="Ponowne ładowanie",Wpe="Przemianować",Rpe="Rezolucja",Npe="Sa",Epe="Ratować",Fpe="Skrypty",Vpe="Szukaj",Bpe="Wybierz",Upe="Ustawienia",Ype="Pokazać",Gpe="Styl",Jpe="Su",Kpe="Zakładki",Zpe="Temperatura",Xpe="Th",Qpe="Motyw",eme="Tytuł",tme="Tu",ime="Rodzaj",sme="Cofnij",nme="Rozgrupuj",ome="Odinstaluj",ame="Odblokować",rme="Odznacz",lme="Aktualizacja",cme="Wartość",dme="Pionowy",ume="Pogląd",_me="Mi",gme="Weekend",hme="Widżet",pme="Widżety",mme="Szerokość",fme="Pisać",wme="Pisarz",bme="TAk",vme="Widżeteria",yme="Wszystko",jme="Etykietka przez false",xme="Etykietka zawiera prawdę",$me="anonimizować",Sme="Dla wszystkich",kme="none",qme="Dodaj wszystko, co zostało",Cme="Strzałka",Pme="Kolor ramki",Dme="Promień granicy",Tme="Koło",Mme="Niestandardowy wielokąt",zme="Wybór wielokrotny",Ime="Menu rozwijane",Hme="Przyciski poziome",Ame="Pionowe przyciski",Ome="Sześciokąt",Lme="Linia",Wme="Brak opcji „Bez filtra”.",Rme="Bez filtra",Nme="Etykieta „Brak filtra”.",Eme="Ukryj narożnik",Fme="Oktagon",Vme="Pentagon",Bme="Szpilka",Ume="ciągły",Yme="Wykryto",Gme="język angielski",Jme="Wysokość (px)",Kme="Aktywny",Zme="Nieaktywny",Xme="Kliknij przycisk „Zezwalaj” powyżej, aby włączyć mikrofon.",Qme="Zezwolenie na używanie mikrofonu jest zablokowane. Aby zmienić, przejdź do chrome://settings/contentExceptions#media-stream",efe="Odmówiono pozwolenia na użycie mikrofonu.",tfe='Nie znaleziono mikrofonu. Upewnij się, że mikrofon jest zainstalowany i że <a href="//support.google.com/chrome/bin/answer.py?hl=pl&answer=1407892">ustawienia mikrofonu</a> są prawidłowo skonfigurowane.',ife='Nie wykryto mowy. Może być konieczne dostosowanie <a href="//support.google.com/chrome/bin/answer.py?hl=pl&answer=1407892">ustawień mikrofonu</a>.',sfe="Mów teraz.",nfe="Kliknij ikonę mikrofonu i zacznij mówić.",ofe='Ta przeglądarka nie obsługuje interfejsu Web Speech API. Uaktualnij przeglądarkę do <a href="//www.google.com/chrome">Chrome</a> w wersji 25 lub nowszej.',afe="Kolor słowa kluczowego",rfe="Kolor tekstu, jeśli znaleziono słowo kluczowe",lfe="Słowa kluczowe",cfe="Brak obrazka",dfe="Brak wyników",ufe="Brak tekstu pomocy",_fe="Rosyjski",gfe="Wysłano",hfe="pojedynczy",pfe="Tryb mowy",mfe="zacząć zakończyć",ffe="Rozpoczęty",wfe="Tekst wysłany w kolorze",bfe="Kolor tekstu, gdy tekst jest wysyłany do przetworzenia",vfe="Szerokość (px)",yfe="Kwadrat",jfe="Gwiazda",xfe="Widok podrzędny",$fe="Trójkąt",Sfe="blok",kfe="kolor",qfe="Pokoloruj według fałszu",Cfe="Kolor zgodny z prawdą",Pfe="Kopia",Dfe="Dla tego projektu",Tfe="Specjalny",Mfe="inny; różny",zfe="wyświetlacz",Ife="przewód",Hfe="elastyczny",Afe="Teczka",Ofe="Grupa",Lfe="Nazwa",Wfe="Typ",Rfe="Atrybuty",Nfe='Możesz zdefiniować w atrybutach widżetu grupy specjalne nazwy w formacie "%twojaCustomName%" i pojawią się one w ustawieniach "Atrybuty". Następnie możesz podać nazwę i typ atrybutów niestandardowych.',Efe="Ikona fałszywa",Ffe="Ikona zgodnie z prawdą",Vfe="Możesz zmienić rozmiar grupy, wybierając ją w rozwijanym selektorze widżetów lub klikając ten tekst",Bfe="Tekst",Ufe="Te CSS mają zastosowanie do wszystkich projektów",Yfe="Te CSS są stosowane tylko do tego projektu",Gfe="ukryć",Jfe="poziomy",Kfe="godziny",Zfe="Rozmiar ikony w pikselach",Xfe="Możesz przesłać własną ikonę o rozmiarze do 10 KB w formacie base64. Zostanie on zapisany bezpośrednio w projekcie. Jeśli chcesz przesłać plik SVG, nie zapomnij ustawić atrybutu currentColor.",Qfe="Wysokość obrazu",ewe="Wysokość obrazu",twe="Odwróć ikonę",iwe="Odwróć ikonę",swe="Zamknąć",nwe="Przykład",owe="Procenty",awe="Aktywny kolor",rwe="Jestem/Po południu",lwe="Jako data",cwe="Użycie pełnej daty możliwej do analizy",dwe="Jako ciąg",uwe="automatyczny",_we="Sterowanie binarne",gwe="Przestarzałe. Użyj widżetu „Kontrola binarna”. Zachowane tylko ze względu na kompatybilność z vis.1",hwe="Kolor przycisku",pwe="Przycisk zamykania okna dialogowego",mwe="Przestarzałe. Użyj widżetu „Wejście”. Zachowane tylko ze względu na kompatybilność z vis.1",fwe="Przejdź do adresu URL",wwe="Przejdź do adresu URL (w nowym oknie)",bwe="Przestarzałe. Użyj pierwszego widżetu z opcją „Otwórz w nowym oknie”. Zachowany tylko ze względu na zgodność z wersją vis.1",vwe="Przestarzałe. Użyj pierwszego widgetu z opcją „Przejdź do widoku”. Zachowane tylko ze względu na kompatybilność z vis.1",ywe="Przycisk tekstowy",jwe="Użyj nazwy widoku jako tytułu",xwe="Usuwalne",$we="Kolor",Swe="Przycisk=>Okno strony",kwe="Okno dialogowe kontenera",qwe="Ikona=>Okno strony",Cwe="Nazwa okna dialogowego",Pwe="Ustaw stan przez otwarte okno dialogowe",Dwe="Wyłącz przyszłość",Twe="Wyłącz przeszłość",Mwe="Wyświetl numer tygodnia",zwe="Równa długość tekstu",Iwe="Jeśli jest aktywowane, długości tekstów dla prawdy i fałszu będą równe, więc ikona pozostanie w tym samym miejscu w stanach „wyłączony” i „włączony”.",Hwe="Okno zewnętrzne",Awe="To okno dialogowe nie jest widoczne na stronie, ale można je otworzyć za pomocą zewnętrznego polecenia „dialogOpen” z nazwą okna dialogowego lub identyfikatorem widżetu jako parametrem.",Owe="FAŁSZ",Lwe="Z innego obiektu",Wwe="Od wartości statycznej",Rwe="Generować",Nwe="Wartość",Ewe="Ukryj przycisk zamykania",Fwe="Ten adres URL zostanie wywołany w przeglądarce",Vwe="HTML",Bwe="Okno HTML",Uwe="Okno zewnętrzne",Ywe="HTML przez fałsz",Gwe="HTML można konfigurować tylko wtedy, gdy tekst i ikona są puste",Jwe="HTML według prawdy",Kwe="Ikona",Zwe="Aktywna ikona",Xwe="Ikona okna dialogowego",Qwe="Adres URL wywołania w zapleczu",ebe="Przyrost za pomocą ikony",tbe="Przejdź do adresu URL (z ikoną)",ibe="Ikona maksimum",sbe="Przycisk z ikoną logiczną",nbe="Naciśnij przycisk",obe="Przycisk przełączania z ikoną",abe="Obraz",rbe="Aktywny obraz",lbe="Wysokość obrazu",cbe="Obraz maksymalnie",dbe="Zwiększanie/zmniejszanie",ube="Wejście",_be="Wprowadzanie daty",gbe="Wprowadzanie czasu",hbe="Wejście za pomocą przycisku",pbe="Odwróć ikonę",mbe="Odwrotny",fbe="Styl jQuery",wbe="Maksymalna wartość",bbe="Minimalna wartość",vbe="Tytuł",ybe="Przejdź do widoku",jbe="Przycisk nawigacji",xbe="Ikona nawigacji",$be="Nawigacja z hasłem",Sbe="Nie równa szerokość",kbe="Wyłączony",qbe="Identyfikator roboczy",Cbe="Włączony",Pbe="Tylko ikona",Dbe="Jako lista",Tbe="Orientacja",Mbe="Hasło",zbe="Użytkownik musi wprowadzić hasło, aby otworzyć okno dialogowe, przejść do strony lub adresu URL",Ibe="Tryb pchania",Hbe="Po naciśnięciu przycisku zostanie zapisane „prawda”, a po zwolnieniu przycisku zostanie zapisane „fałsz”.",Abe="Przyciski opcji (wł./wył.)",Obe="Lista radiowa z wartościami",Lbe="Przycisk opcji (kroki)",Wbe="zakres",Rbe="Tylko czytać",Nbe="Powtórz opóźnienie",Ebe="Powtórz interwał",Fbe="Zaznacz wszystko na fokusie",Vbe="Po zaznaczeniu cały tekst zostanie zaznaczony, więc można go szybko usunąć lub zmienić bez naciskania przycisku Backspace",Bbe="Wybierz z listy",Ube="stylizowany",Ybe="Limit czasu zapisu",Gbe="pojedynczy",Jbe="Suwak",Kbe="Przestarzałe. Użyj widżetu suwaka z orientacją ustawioną na pionową. Zachowane tylko ze względu na kompatybilność z vis.1",Zbe="Suwak pionowy",Xbe="Przestarzałe. Użyj widżetu „Kontrola stanów” z opcją „zwiększ/zmniejsz”. Zachowane tylko ze względu na zgodność z vis.1",Qbe="Kontrola państw",eve="Krok minuta",tve="Wartość testowa",ive="Tekst",sve="Aktywny tekst",nve="Tekst na maksimum",ove="Przełącznik",ave="Etykietka",rve="PRAWDA",lve="Typ",cve="Jednostka",dve="Zadzwoń do adresu URL po kliknięciu",uve="Adres URL w zapleczu",_ve="Adres URL w przeglądarce",gve="Ten adres URL zostanie wywołany w tle przez silnik ioBroker",hve="Wartość",pve="Wyświetl etykietę",mve="Wariant",fve="Widok nawigacji",wve="Szeroki format",bve="Tytuł",vve="Z przyciskiem Enter",yve="Przestarzałe. Użyj widżetu „Zapisz stan” z opcją „zwiększ/zmniejsz”. Zachowane tylko ze względu na kompatybilność z vis.1",jve="Zapisz wartość",xve="Wypełniony",$ve="Przedstawione",Sve="%s pasujących wyników",kve="Okrągły",qve="Ostry",Cve="Dwutonowy",Pve="Wgrywać",Dve="nigdy",Tve="bez przeładowania",Mve="Żaden",zve="normalna",Ive="opcjonalny",Hve="Możesz przeciągnąć i upuścić dowolny element lub kliknąć element, z którym wybrany widżet zostanie zamieniony",Ave="Orientacja",Ove="Profil",Lve="przeładować",Wve="podstawowy",Rve="Służy do celów specjalnych, takich jak nawigacja według projektu Jaeger",Nve="Tekst fałszywy",Eve="Tekst zgodny z prawdą",Fve="strunowy",Vve="wersja",Bve="pionowy",Uve="Zmienny rozmiar",Yve="Nie można używać widoków rekurencyjnych",Gve="Użyj widoku",Jve="Zobacz w widżecie",Kve="Widok niezdefiniowany",Zve="Ukryj wskazanie",Xve="Próg",Qve="Swipe",eye="Kolor",tye="Patka",iye="Zakładki",sye="Numer",nye="Ikona",oye="Kolor",aye="Rozmiar ikony",rye="Obraz",lye="Przepełnienie X",cye="Przepełnienie Y",dye="Tytuł",uye="Pogląd",_ye="Wariant",gye="wyśrodkowany",hye="Domyślny",pye="pełna szerokość",mye="Pionowy",fye="Żaden projekt jeszcze nie istnieje.",wye={"%s from %s":"%s od %s","%s widgets":"%s widżetów","(Maximal file size is %s)":"(Maksymalny rozmiar pliku to %s)","-attachment":"-attachment","-clip":"-clip","-color":"-color","-image":"-image","-origin":"-origin","-position":"-position","-repeat":"-repeat","-size":"-size","1 day":"1 dzień","1 hour":"1 godzina","1 minute":"1 minuta","1 second":"1 sekunda","10 minutes":"10 minut","10 seconds":"10 sekund","12 hours":"12 godzin","15 m.":"15 m.","2 hours":"2 godziny","2 seconds":"2 sekundy","20 seconds":"20 sekund","3 hours":"3 godziny","30 m.":"30 m.","30 minutes":"30 minut","30 seconds":"30 sekund","5 minutes":"5 minut","5 seconds":"5 sekund","6 hours":"6 godzin","Activation state":"Stan aktywacji","Active widget(s) from %s":"Aktywne widżety z %s",Add:jhe,"Add folder":"Dodaj folder","Add new child folder":"Dodaj nowy folder podrzędny","Add new child profile":"Dodaj nowy profil dziecka","Add new or update existing widget":`Dodaj nowy lub zaktualizuj istniejący widżet
`,"Add new view":"Nowy widok","Add profile":"Dodaj profil","Add project":"Dodaj projekt","Add sub-folder":"Dodaj podfolder","Add to widgeteria":"Dodaj do widgeterii","Add view":"Dodaj widok",Administrator:xhe,"Align height. Press more time to get the desired height.":"Wyrównaj wysokość. Naciśnij więcej czasu, aby uzyskać pożądaną wysokość.","Align horizontal/center":"Wyrównaj poziomo/środek","Align horizontal/equal":"Wyrównaj poziomo/równo","Align horizontal/left":"Wyrównaj poziomo/lewo","Align horizontal/right":"Wyrównaj poziomo/do prawej","Align vertical/bottom":"Wyrównaj pionowo/do dołu","Align vertical/center":"Wyrównaj w pionie/środku","Align vertical/equal":"Wyrównaj pionowo/równe","Align vertical/top":"Wyrównaj pionowo/do góry","Align width. Press more time to get the desired width.":"Wyrównaj szerokość. Naciśnij więcej czasu, aby uzyskać żądaną szerokość.",All:$he,Aluminium1:She,Aluminium2:khe,"App bar":"Pasek aplikacji",Apply:qhe,"Apply ALL navigation properties to all views":"Zastosuj WSZYSTKIE właściwości nawigacji do wszystkich widoków","Apply to all views":"Zastosuj tę właściwość do wszystkich widoków","Are you sure":"Jesteś pewny","Are you sure to delete widgets %s?":"Czy na pewno chcesz usunąć widżety %s?",Attributes:Che,"Available for all":"Projekt dostępny dla wszystkich użytkowników","Background class":"Klasa podstawowa","Background color":"Kolor tła","Background color if selected":"Kolor tła, jeśli został wybrany","Bar color":"Kolor tła","Bar icon":"Ikona","Bar image":"Obraz","Bar text":"Podpis",Basic:Phe,Benutzer:Dhe,"Blue flowers":"Niebieskie kwiaty","Blue marine":"Niebieski morski","Blue marine lines":"Niebieskie linie morskie","Blueprint grid":"Siatka schematu","Body overflow":"Body overflow",Bricks:The,"Bring to front":"Przesuń na wierzch","Browse files":"Przeglądaj pliki","Browse objects":"Przeglądaj obiekty","Browse the widgeteria":"Przeglądaj widgeterię","Browser instance ID":"Identyfikator instancji przeglądarki","Browser tab favicon":"Ikona karty przeglądarki","Browser tab title":"Tytuł zakładki przeglądarki","By horizontal menu do not show text if icon provided":"W menu poziomym nie wyświetlaj tekstu, jeśli podano ikonę",CSS:Mhe,"CSS Class":"Klasa CSS","CSS Common":"CSS Wspólne","CSS Font & Text":"CSS Czcionka i tekst","CSS background (background-...)":"CSS Tło (background-...)",Cancel:zhe,"Cannot use recursive views":"Nie można używać widoków rekurencyjnych","Carbon fibre":"Włókno węglowe","Carbon fibre1":"Włókno węglowe1","Chevron icon color":"Kolor przycisku pokazu",Clear:Ihe,"Clear filter":"Czysty filtr","Click to close":"Kliknij, aby zamknąć",Clone:Hhe,"Clone widget":"Klonuj widżet",Close:Ahe,"Close all":"Zwinąć wszystkie","Close all but current view":"Zamknij wszystkie oprócz bieżącego widoku","Close editor":"Zamknij edytor","Collapse all":"Zwinąć wszystkie",Colorful:Ohe,"Column gap":"Odstęp kolumny","Column width":"Szerokość kolumny",Comment:Lhe,"Convert %s to %s":"Konwertuj %s na %s","Copied %s":"Skopiowano %s","Copied to clipboard":"Skopiowane do schowka",Copy:Whe,"Copy noun":"Kopiuj","Copy to clipboard":"Skopiuj do schowka",'Copy view "%s"':"Kopiuj widok „%s”",Create:Rhe,"Create copy":"Utwórz kopię","Create instance":"Utwórz instancję","Create new project":"Utwórz nowy projekt",'Create or import new "vis-2" project':"Utwórz lub zaimportuj nowy projekt „vis-2”.","Current project":"Bieżący projekt",Cut:Nhe,"Dark reconnect screen":"Ciemny ekran ponownego połączenia","Deactivate binding and use field as standard input":"Dezaktywuj powiązanie i użyj pola jako standardowego wejścia",Default:Ehe,"Default view":"Widok domyślny","Default: auto":"Wartość domyślna: „auto”",Delete:Fhe,"Delete actual view":"Usuń aktualny widok","Delete widgets":"Usuń widżety","Destroy inactive view":"Zniszcz nieaktywny widok","Detected new version of vis files. Reloading in 2 seconds...":"Wykryto nową wersję plików vis. Ponowne ładowanie za 2 sekundy...",Devices:Vhe,Disabled:Bhe,"Do not ask again":"Nie pytaj ponownie","Do not hide menu":"Nie ukrywaj całkowicie menu","Do you want to create first demo project?":"Chcesz stworzyć pierwszy projekt demo?",'Do you want to delete folder "%s"':'Czy chcesz usunąć folder "%s"','Do you want to delete project "%s"?':"Czy chcesz usunąć projekt „%s”?",'Do you want to delete view "%s"?':"Czy chcesz usunąć widok „%s”?",'Do you want to include "%s" widget into "%s"?':"Czy chcesz dołączyć widżet „%s” do „%s”?","Drag me":"Pociągnij mnie","Drop the files here ...":"Upuść pliki tutaj...",Duplicate:Uhe,"Duplicate folder":"Zduplikuj folder","Duplicate profile":"Powiel profil",Edit:Yhe,"Edit binding":"Edytuj wiązanie","Edit folder":"Edytuj folder","Edit group":"Edytuj grupę","Edit profile":"Edytuj profil",Elements:Ghe,Enabled:Jhe,Enter:Khe,"Enter password":"Wprowadź hasło","Enter the browser instances divided by comma":"Wprowadź wystąpienia przeglądarki podzielone przecinkiem","Expand all":"Rozwiń wszystkie",Explanation:Zhe,Export:Xhe,'Export "%s"':'Eksport "%s"',"Export widgets":"Eksportuj widżety","External dialog":"Okno zewnętrzne","Fields of group will be cleaned":"Pola grupy zostaną wyczyszczone","File too large":"Plik zbyt duży",Files:Qhe,"Filter widgets":"Filtruj widżety","Fm dark background":"Fm ciemne tło","Fm light background":"Jasne tło fm","Following views will be changed":"Następujące widoki ulegną zmianie","For widgets with relative position":"W przypadku widżetów o względnej pozycji",Fr:epe,"Full HD - Landscape":"Full HD — krajobraz","Full HD - Portrait":"Full HD — Portret","Full panel":"Pełny panel","Galaxy Fold - Landscape":"Galaxy Fold - Krajobraz","Galaxy Fold - Portrait":"Galaxy Fold - Portret",Global:tpe,"Gradient box":"Gradientowe pudełko","Gray 0":"Szary 0","Gray 1":"Szary 1",Grid:ipe,Group:spe,"Group view css background":"Widok grupowy w tle css","Group widgets":"Grupuj widżety razem","H gradient black 0":"H gradient czarny 0","H gradient black 1":"H gradient czarny 1","H gradient black 2":"H gradient czarny 2","H gradient black 3":"H gradient czarny 3","H gradient black 4":"H gradient czarny 4","H gradient black 5":"H gradient czarny 5","H gradient blue 0":"H gradient niebieski 0","H gradient blue 1":"H gradient niebieski 1","H gradient blue 2":"H gradient niebieski 2","H gradient blue 3":"H gradient niebieski 3","H gradient blue 4":"H gradient niebieski 4","H gradient blue 5":"H gradient niebieski 5","H gradient blue 6":"H gradient niebieski 6","H gradient blue 7":"H gradient niebieski 7","H gradient gray 0":"H gradient szary 0","H gradient gray 1":"H gradient szary 1","H gradient gray 2":"H gradient szary 2","H gradient gray 3":"H gradient szary 3","H gradient gray 4":"H gradient szary 4","H gradient gray 5":"H gradient szary 5","H gradient gray 6":"H gradient szary 6","H gradient green 0":"H gradient zielony 0","H gradient green 1":"H gradient zielony 1","H gradient green 2":"H gradient zielony 2","H gradient green 3":"H gradient zielony 3","H gradient green 4":"H gradient zielony 4","H gradient orange 0":"H gradient pomarańczowy 0","H gradient orange 1":"H gradient pomarańczowy 1","H gradient orange 2":"H gradient pomarańczowy 2","H gradient orange 3":"H gradient pomarańczowy 3","H gradient yellow 0":"H gradient żółty 0","H gradient yellow 1":"H gradient żółty 1","H gradient yellow 2":"H gradient żółty 2","H gradient yellow 3":"H gradient żółty 3","HD - Landscape":"HD – Krajobraz","HD - Portrait":"HD - Portret",Height:npe,Hide:ope,"Hide after selection":"Ukryj po zaznaczeniu","Hide all views":"Ukryj wszystkie widoki","Hide attributes":"Ukryj atrybuty","Hide menu":"Ukryj menu","Hide palette":"Ukryj paletę","Hide panel names":"Ukryj nazwy paneli","Hide selected widgets":"Ukryj wybrane widżety",High:ape,"High priority":"Wysoki priorytet","Highest eg. Holiday":"Najwyższy np. Wakacje",Horizontal:rpe,Icon:lpe,"If user not in group":"Jeśli użytkownik nie jest w grupie",Ignore:cpe,"Ignored in edit mode":"Ignorowane w trybie edycji",Image:dpe,Import:upe,"Import project":"Importuj projekt","Import widgets":"Importuj widżety","Include widget?":"Dołącz widżet?","Initial filter":"Filtr początkowy",Instance:_pe,"Invalid file type":"Nieprawidłowy typ pliku","Jump to widget by double click":"Przejdź do widżetu, klikając dwukrotnie widżet","Just use without modification":"Po prostu użyj bez modyfikacji","Keep on old place":"Trzymaj się starego miejsca","Limit background color":"Kolor tła","Limit border color":"Kolor ramki","Limit border style":"Styl graniczny","Limit border width":"Szerokość granicy","Limit only for instances":"Ogranicz tylko do instancji","Limit screen":"Ogranicz ekran","Lined paper":"Papier w linie","Load project file...":"Ładowanie pliku projektu...","Load widgets...":"Ładowanie widżetów...","Loading objects...":"Ładowanie obiektów...",Lock:gpe,"Lock dragging":"Zablokuj przeciąganie","Manage projects":"Zarządzaj projektami","Manage views":"Zarządzaj widokami","Menu header text":"Tekst nagłówka menu","Menu header text color":"Kolor tekstu nagłówka menu","Menu width":"Szerokość menu",Message:hpe,Mo:ppe,Modify:mpe,More:fpe,"Move down":"Padnij","Move to new place":"Przenieś się w nowe miejsce","Move up":"Podnieść","Move widget down or press longer to open re-order menu":"Przesuń widżet w dół lub naciśnij dłużej, aby otworzyć menu zmiany kolejności","Move widget up or press longer to open re-order menu":"Przesuń widżet w górę lub naciśnij dłużej, aby otworzyć menu zmiany kolejności",Name:wpe,"Name is not unique":"Nazwa nie jest unikalna","Name of copy":"Nazwa kopii","Narrow panel":"Wąski panel",Navigation:bpe,"Nest Hub - Landscape":"Nest Hub – Krajobraz","Nest Hub - Portrait":"Nest Hub – portret","Nest Hub Max - Landscape":"Nest Hub Max — poziomy","Nest Hub Max - Portrait":"Nest Hub Max — portret","New name":"Nowe imie","New view":"Nowy widok",No:vpe,"No background":"Brak tła",Normal:ype,OFF:jpe,ON:xpe,Objects:$pe,Ok:Spe,"On/Off":"Wł/Wył","One parameter":"Jeden parametr","Only for desktop":"Tylko na komputery stacjonarne","Only for groups":"Tylko dla grup","Only the admin user can change permissions":"Tylko administrator może zmieniać uprawnienia",Open:kpe,"Open all":"Rozwiń wszystkie","Open it?":"Otwórz to?","Open runtime in new window":"Otwórz środowisko uruchomieniowe w nowym oknie","Open widgeteria":"Otwórz widgeterię",Options:qpe,Order:Cpe,Orientation:Ppe,Palette:Dpe,Paste:Tpe,Percent:Mpe,Permissions:zpe,"Pixel 5 - Landscape":"Piksel 5 – Krajobraz","Pixel 5 - Portrait":"Piksel 5 – Portret",Priority:Ipe,'Project "%s" does not exist':'Projekt "%s" nie istnieje','Project "%s" was successfully imported':"Projekt „%s” został pomyślnie zaimportowany","Project already exists":"Projekt już istnieje","Project name":"Nazwa Projektu","Project settings":"Ustawienia projektu","Project was updated":"Projekt został zaktualizowany","Project was updated by another browser instance. Do you want to reload it?":"Projekt został zaktualizowany przez inną instancję przeglądarki. Czy chcesz go ponownie załadować?",Projects:Hpe,"Radial blue":"Promieniowy niebieski",Read:Ape,"Read = Runtime access":"Odczyt = dostęp w czasie wykonywania","Read about currentColor in SVG":"Przeczytaj o bieżącym kolorze w SVG","Rebuild HTML pages":"Przebudowa stron HTML","Rebuild of HTML pages was started":"Przebudowa stron HTML została rozpoczęta","Received user command: %s":"Otrzymano polecenie użytkownika: %s","Reconnect interval":"Interwał ponownego łączenia",Redo:Ope,"Reload all browsers if project changed":"Załaduj ponownie wszystkie przeglądarki, jeśli projekt się zmienił","Reload all runtimes":"Odśwież wszystkie środowiska wykonawcze","Reload if sleep longer than":"Załaduj ponownie, jeśli śpisz dłużej niż","Reload now":"Załaduj ponownie teraz",Reloading:Lpe,Rename:Wpe,'Rename folder "%s"':'Zmień nazwę folderu "%s"','Rename project "%s"':"Zmień nazwę projektu „%s”","Rename view":"Zmień nazwę widoku",'Rename view "%s"':"Zmień nazwę widoku „%s”","Render always":"Renderuj zawsze","Reset all intervals to following value:":"Zresetuj wszystkie interwały do następującej wartości:",Resolution:Rpe,"Responsive settings":"Ustawienia responsywne","Row gap":"Odstęp między wierszami",Sa:Npe,"Samsung Galaxy A51/71 - Landscape":"Samsung Galaxy A51/71 - Pejzaż","Samsung Galaxy A51/71 - Portrait":"Samsung Galaxy A51/71 - Portret","Samsung Galaxy S20 Ultra - Landscape":"Samsung Galaxy S20 Ultra - Pejzaż","Samsung Galaxy S20 Ultra - Portrait":"Samsung Galaxy S20 Ultra - Portret","Samsung Galaxy S8+ - Landscape":"Samsung Galaxy S8+ - Pejzaż","Samsung Galaxy S8+ - Portrait":"Samsung Galaxy S8+ - Portret",Save:Epe,Scripts:Fpe,Search:Vpe,Select:Bpe,"Select all":"Zaznacz wszystko","Select object ID":"Wybierz identyfikator obiektu","Select or create profile in left menu":"Wybierz lub utwórz profil w lewym menu","Select project":"Wybierz projekt","Select vis-2 project":"Wybierz projekt „vis-2”.","Send to back":"Wyślij wstecz","Sent to back":"Wysłane do tyłu",Set:"Ustawić","Set all periods to one value":"Ustaw wszystkie okresy na jedną wartość","Set widgets filter for edit mode":"Ukryj widżety (które mają klucz filtra) w trybie edycji",Settings:Upe,"Should it be moved to new place?":"Czy należy go przenieść w nowe miejsce?",Show:Ype,"Show all views":"Pokaż wszystkie widoki","Show app bar":"Pokazywać","Show background of button":"Tło przycisku Pokaż","Show navigation":"Pokaż nawigację","Show only selected widgets":"Pokaż tylko wybrane widżety","Show only toolbar on the top and hide menu itself":"Pokaż tylko pasek narzędzi na górze i ukryj samo menu","Show palette":"Pokaż paletę","Show this attribute by all views":"Pokaż ten atrybut we wszystkich widokach","Show view":"Pokaż widok","Specify filter to see more icons":"Określ filtr, aby zobaczyć więcej ikon","States Debounce Time (millis)":"Stany odbicia czasu (milis)",Style:Gpe,"Style of menu button only when the menu is hidden":"Styl przycisku menu tylko wtedy, gdy menu jest ukryte",Su:Jpe,"Surface Duo - Landscape":"Surface Duo — krajobraz","Surface Duo - Portrait":"Surface Duo — portret","Surface Pro 7 - Landscape":"Surface Pro 7 — poziomy","Surface Pro 7 - Portrait":"Surface Pro 7 — portret","Switch to group edit mode by double click":"Przejdź do trybu edycji grupy, klikając dwukrotnie widżet",Tabs:Kpe,Temperature:Zpe,"Text color":"Kolor tekstu","Text color if selected":"Kolor tekstu, jeśli został wybrany","Text edit":"Edycja tekstu",Th:Xpe,Theme:Qpe,"This view will be shown only to defined groups":"Ten widok będzie widoczny tylko dla zdefiniowanych grup",'This widget is already used in "%s"':"Ten widżet jest już używany w „%s”",Title:eme,"To use it, define by some widget the filter key":"Aby go użyć, zdefiniuj przez jakiś widżet klucz filtru","Toggle runtime":"Przełącz czas działania","Toggle widget hint (dark)":"Przełącz podpowiedź widżetu (ciemna)","Toggle widget hint (hide)":"Przełącz podpowiedź widżetu (ukryj)","Toggle widget hint (light)":"Przełącz podpowiedź widżetu (jasna)",Tu:tme,Type:ime,Undo:sme,Ungroup:nme,Uninstall:ome,'Unknown widget type "%s"':"Nieznany typ widżetu „%s”",Unlock:ame,Unselect:rme,Update:lme,"Usage of widget %s":"Użycie widżetu %s","Use background":"Użyj tła","Use field as binding":"Użyj pola jako wiązania","User defined":"Określony przez użytkownika",Value:cme,Vertical:dme,View:ume,"View not defined":"Widok niezdefiniowany",We:_me,Weekend:gme,Widget:hme,"Widget CSS":"Widżet CSS","Widget JS":"Widżet JS","Widget was deleted in widgeteria":"Widżet został usunięty w widżeterii",Widgets:pme,Width:mme,"Width x height (px)":"Szerokość x wysokość (px)",Write:fme,"Write = Edit mode access":"Zapis = Dostęp do trybu edycji",Writer:wme,"Wrong password":"Złe hasło",Yes:bme,"You can open dialog with following script:":"Możesz otworzyć okno dialogowe za pomocą następującego skryptu:","You can provide here the state that controls the activation of this profile":"Możesz tutaj podać stan, który kontroluje włączenie tego profilu",__marketplace:vme,ace_All:yme,"ace_CaseSensitive Search":"Wyszukiwanie z uwzględnieniem wielkości liter","ace_RegExp Search":"Wyszukiwanie wyrażeń regularnych","ace_Search In Selection":"Szukaj w zaznaczeniu","ace_Search for":"Szukaj","ace_Toggle Replace mode":"Przełącz tryb zastępowania","ace_Whole Word Search":"Wyszukiwanie całego słowa",alt_false:jme,alt_true:xme,anonymize:$me,apply_to_all:Sme,attr_none:kme,basic_all_filters:qme,basic_arrow:Cme,basic_borderColor:Pme,basic_borderRadius:Dme,basic_circle:Tme,basic_custom:Mme,basic_filter_multiple:zme,basic_filter_type_dropdown:Ime,basic_filter_type_horizontal_buttons:Hme,basic_filter_type_vertical_buttons:Ame,basic_hexagone:Ome,basic_line:Lme,basic_no_all_option:Wme,basic_no_filter:Rme,basic_no_filter_text:Nme,basic_node_hide_corner:Eme,basic_octagone:Fme,basic_pentagone:Vme,basic_pin:Bme,basic_speech2text_continuous:Ume,basic_speech2text_detected:Yme,basic_speech2text_en_us:Gme,basic_speech2text_height:Jme,basic_speech2text_image_active:Kme,basic_speech2text_image_inactive:Zme,basic_speech2text_info_allow:Xme,basic_speech2text_info_blocked:Qme,basic_speech2text_info_denied:efe,basic_speech2text_info_no_microphone:tfe,basic_speech2text_info_no_speech:ife,basic_speech2text_info_speak_now:sfe,basic_speech2text_info_start:nfe,basic_speech2text_info_upgrade:ofe,basic_speech2text_key_word_color:afe,basic_speech2text_key_word_color_tooltip:rfe,basic_speech2text_keywords:lfe,basic_speech2text_no_image:cfe,basic_speech2text_no_results:dfe,basic_speech2text_no_text:ufe,basic_speech2text_ru_ru:_fe,basic_speech2text_sent:gfe,basic_speech2text_single:hfe,basic_speech2text_speech_mode:pfe,basic_speech2text_start_stop:mfe,basic_speech2text_started:ffe,basic_speech2text_text_sent_color:wfe,basic_speech2text_text_sent_color_tooltip:bfe,basic_speech2text_width:vfe,basic_square:yfe,basic_star:jfe,basic_sub_view:xfe,basic_triangle:$fe,block:Sfe,color:kfe,color_false:qfe,color_true:Cfe,"convert from widgeteria widget":"konwertować z widżetu widgeteria",copy:Pfe,css_project:Dfe,custom_icons:Tfe,different:Mfe,display:zfe,"finish searching":"wyszukiwanie zakończone",flex:Ife,flexible:Hfe,folder:Afe,"font-family":"rodzina czcionek","font-size":"rozmiar czcionki","font-style":"styl czcionki","font-variant":"wariant-czcionki","font-weight":"grubość czcionki",group:Ofe,group_attrName:Lfe,group_attrType:Wfe,group_fields:Rfe,group_help:Nfe,group_icon_false:Efe,group_icon_true:Ffe,group_size_hint:Vfe,group_text:Bfe,help_css_global:Ufe,help_css_project:Yfe,hide:Gfe,"hide code":"ukryj kod",horizontal:Jfe,hr:Kfe,"iPad Air - Landscape":"iPad Air — poziomy","iPad Air - Portrait":"iPad Air — portret","iPad Mini - Landscape":"iPad Mini — poziomy","iPad Mini - Portrait":"iPad Mini — portret","iPad Pro - Landscape":"iPad Pro — poziomy","iPad Pro - Portrait":"iPad Pro — Portret","iPhone 12 Pro - Landscape":"iPhone 12 Pro — poziomy","iPhone 12 Pro - Portrait":"iPhone 12 Pro — portret","iPhone SE - Landscape":"iPhone SE — poziomy","iPhone SE - Portrait":"iPhone SE — portret","iPhone XR - Landscape":"iPhone XR — poziomy","iPhone XR - Portrait":"iPhone XR — portret",icon_size_in_pixels:Zfe,icon_upload_hint:Xfe,imageHeight_false:Qfe,imageHeight_true:ewe,invert_icon_false:twe,invert_icon_true:iwe,"jqui_Add new value":"Dodaj nową wartość","jqui_Are you sure?":"Jesteś pewny?","jqui_Bulk edit":"Edycja zbiorcza",jqui_Close:swe,jqui_Example:nwe,"jqui_Generate states":"Generuj stany","jqui_Generate steps":"Generuj kroki","jqui_Maximum value":"Maksymalna wartość","jqui_Minimum value":"Minimalna wartość","jqui_Number settings":"Ustawienia liczb",jqui_Percents:owe,"jqui_Replace to":"Zamienić","jqui_Select file":"Wybierz obraz","jqui_Write state":"Napisz stan",jqui_active_color:awe,jqui_ampm:rwe,jqui_asDate:lwe,jqui_asFullDate:cwe,jqui_as_string:dwe,jqui_auto:uwe,jqui_binary_control:_we,jqui_button_binary_control_note:gwe,jqui_button_color:hwe,jqui_button_dialog_close:pwe,jqui_button_input_note:mwe,jqui_button_link:fwe,jqui_button_link_blank:wwe,jqui_button_link_blank_note:bwe,jqui_button_nav_blank_note:vwe,jqui_button_text:ywe,jqui_buttontext_view:jwe,jqui_clearable:xwe,jqui_color:$we,jqui_container_button_dialog:Swe,jqui_container_dialog:kwe,jqui_container_icon_dialog:qwe,jqui_dialog_name:Cwe,jqui_dialog_set_id_tooltip:Pwe,jqui_disableFuture:Dwe,jqui_disablePast:Twe,jqui_displayWeekNumber:Mwe,jqui_equal_text_length:zwe,jqui_equal_text_length_tooltip:Iwe,jqui_external_dialog:Hwe,jqui_external_dialog_tooltip:Awe,jqui_false:Owe,jqui_from_oid:Lwe,jqui_from_value:Wwe,jqui_generate:Rwe,jqui_group_value:Nwe,jqui_hide_close_button:Ewe,jqui_href_tooltip:Fwe,jqui_html:Vwe,jqui_html_dialog:Bwe,jqui_html_external_dialog:Uwe,jqui_html_false:Ywe,jqui_html_tooltip:Gwe,jqui_html_true:Jwe,jqui_icon:Kwe,jqui_icon_active:Zwe,jqui_icon_dialog:Xwe,jqui_icon_http_get:Qwe,jqui_icon_increment:ebe,jqui_icon_link:tbe,jqui_icon_max:ibe,jqui_icon_state_bool:sbe,jqui_icon_state_push_button:nbe,jqui_icon_toggle:obe,jqui_image:abe,jqui_image_active:rbe,jqui_image_height:lbe,jqui_image_max:cbe,jqui_increment_decrement:dbe,jqui_input:ube,jqui_input_date:_be,jqui_input_time:gbe,jqui_input_with_button:hbe,jqui_invert_icon:pbe,jqui_inverted:mbe,jqui_jquery_style:fbe,jqui_max:wbe,jqui_min:bbe,jqui_name:vbe,jqui_nav_view:ybe,jqui_navigation_button:jbe,jqui_navigation_icon:xbe,jqui_navigation_password:$be,jqui_not_equal_length:Sbe,jqui_off:kbe,jqui_oid_working:qbe,jqui_on:Cbe,jqui_only_icon:Pbe,jqui_open:Dbe,jqui_orientation:Tbe,jqui_password:Mbe,jqui_password_tooltip:zbe,jqui_push_mode:Ibe,jqui_push_mode_tooltip:Hbe,jqui_radio_buttons_on_off:Abe,jqui_radio_list:Obe,jqui_radio_steps:Lbe,jqui_range:Wbe,jqui_read_only:Rbe,jqui_repeat_delay:Nbe,jqui_repeat_interval:Ebe,jqui_select_all_on_focus:Fbe,jqui_select_all_on_focus_tooltip:Vbe,jqui_select_list:Bbe,jqui_set_label:Ube,jqui_set_timeout:Ybe,jqui_single:Gbe,jqui_slider:Jbe,jqui_slider_note:Kbe,jqui_slider_vertical:Zbe,jqui_state_note:Xbe,jqui_states_control:Qbe,jqui_stepMinute:eve,jqui_test:tve,jqui_text:ive,jqui_text_active:sve,jqui_text_max:nve,jqui_toggle:ove,jqui_tooltip:ave,jqui_true:rve,jqui_type:lve,jqui_unit:cve,jqui_url_group:dve,jqui_url_in_background:uve,jqui_url_in_browser:_ve,jqui_url_tooltip:gve,jqui_value:hve,jqui_value_label_display:pve,jqui_variant:mve,jqui_view_group:fve,jqui_wideFormat:wve,jqui_widgetTitle:bve,jqui_with_enter_button:vve,jqui_write_state_note:yve,jqui_write_value:jve,"letter-spacing":"odstępy między literami","line-height":"Wysokość linii",material_icons_baseline:xve,"material_icons_knx-uf":"knx-uf",material_icons_outline:$ve,material_icons_result:Sve,material_icons_round:kve,material_icons_sharp:qve,material_icons_twotone:Cve,material_icons_upload:Pve,"multi-views":"Pokaż w widokach",never:Dve,no_reload:Tve,none:Mve,normal:zve,"not defined":"Nie określono","not-specified":"Nie określono",optional:Ive,order_help:Hve,orientation:Ave,profile:Ove,"qui_Bool SVG":"Wartość logiczna SVG",reload:Lve,"search text":"Wyszukaj tekst",set_basic:Wve,"signals-color":"Kolor","signals-count":"Liczba sygnałów","signals-smallIcon-0":"Mała ikona [0]","signals-smallIcon-1":"Mała ikona [1]","signals-smallIcon-2":"Mała ikona [3]","signals-text":"Tekst lub szablon","signals-text-0":"Tekst [0]","signals-text-1":"Tekst [1]","signals-text-2":"Tekst [2]","signals-text-tooltip":"Możesz użyć %s, aby wyświetlić bieżącą wartość w tekście",sub_view_tooltip:Rve,"text-shadow":"cień tekstu",text_false:Nve,text_true:Eve,"to version":"do wersji",value_string:Fve,version:Vve,vertical:Bve,"vis-2-widgets-basic-autoSetDelay":"Opóźnienie automatycznego zapisu","vis-2-widgets-basic-input_value":"Wartość wejściowa","vis-2-widgets-basic-noStyle":"Brak stylu",visResizable:Uve,vis_2_widgets_basic_cannot_recursive:Yve,vis_2_widgets_basic_contains_view:Gve,vis_2_widgets_basic_view_in_widget:Jve,vis_2_widgets_basic_view_not_defined:Kve,vis_2_widgets_swipe_hide_indication_label:Zve,vis_2_widgets_swipe_threshold_label:Xve,vis_2_widgets_widgets_swipe_label:Qve,vis_2_widgets_widgets_tabs_color:eye,vis_2_widgets_widgets_tabs_group_tab:tye,vis_2_widgets_widgets_tabs_label:iye,vis_2_widgets_widgets_tabs_show_tabs:sye,vis_2_widgets_widgets_tabs_tab_icon:nye,vis_2_widgets_widgets_tabs_tab_icon_color:oye,vis_2_widgets_widgets_tabs_tab_icon_size:aye,vis_2_widgets_widgets_tabs_tab_image:rye,vis_2_widgets_widgets_tabs_tab_overflow_x:lye,vis_2_widgets_widgets_tabs_tab_overflow_y:cye,vis_2_widgets_widgets_tabs_tab_title:dye,vis_2_widgets_widgets_tabs_tab_view:uye,vis_2_widgets_widgets_tabs_variant:_ye,vis_2_widgets_widgets_tabs_variant_centered:gye,vis_2_widgets_widgets_tabs_variant_default:hye,vis_2_widgets_widgets_tabs_variant_full_width:pye,vis_2_widgets_widgets_tabs_vertical:mye,welcome_message:fye,"word-spacing":"odstępy między wyrazami"},bye="додати",vye="Адміністратор",yye="все",jye="Алюміній1",xye="Алюміній2",$ye="Застосувати",Sye="Атрибути",kye="Базовий",qye="Бенуцер",Cye="Цегла",Pye="CSS",Dye="Скасувати",Tye="ясно",Mye="Клон",zye="Закрити",Iye="Барвистий",Hye="коментар",Aye="Копія",Oye="Створити",Lye="Вирізати",Wye="За замовчуванням",Rye="Видалити",Nye="Пристрої",Eye="Вимкнено",Fye="дублікат",Vye="Редагувати",Bye="Елементи",Uye="Увімкнено",Yye="Введіть",Gye="Пояснення",Jye="Експорт",Kye="Файли",Zye="О",Xye="Для всіх проектів",Qye="Сітка",eje="Група",tje="Висота",ije="Сховати",sje="Високий",nje="Горизонтальний",oje="значок",aje="Ігнорувати",rje="Зображення",lje="Імпорт",cje="Екземпляр",dje="Замок",uje="повідомлення",_je="пн",gje="Змінити",hje="більше",pje="Ім'я",mje="Навігація",fje="Ні",wje="нормальний",bje="ВИМКНЕНО",vje="УВІМКНЕНО",yje="Об'єкти",jje="Ok",xje="ВІДЧИНЕНО",$je="Опції",Sje="порядок",kje="Орієнтація",qje="Палітра",Cje="Вставити",Pje="Відсоток",Dje="Дозволи",Tje="Пріоритет",Mje="Проекти",zje="Прочитайте",Ije="Повторити",Hje="Перезавантаження",Aje="Перейменувати",Oje="роздільна здатність",Lje="Sa",Wje="зберегти",Rje="Сценарії",Nje="Пошук",Eje="Виберіть",Fje="Налашт.",Vje="Показати",Bje="Стиль",Uje="Нд",Yje="Вкладки",Gje="Температура",Jje="чт",Kje="Тема",Zje="Назва",Xje="вт",Qje="Тип",exe="Скасувати",txe="Розгрупувати",ixe="Видалити",sxe="Розблокувати",nxe="Скасувати вибір",oxe="оновлення",axe="Значення",rxe="Вертикальний",lxe="Переглянути",cxe="ми",dxe="Вихідні",uxe="Віджет",_xe="Віджети",gxe="Ширина",hxe="Напишіть",pxe="Письменник",mxe="Так",fxe="Віджетерія",wxe="все",bxe="Підказка від false",vxe="Підказка від true",yxe="анонімізувати",jxe="Для усіх",xxe="none",$xe="Додайте всі ліві",Sxe="Стрілка",kxe="Колір рамки",qxe="Радіус кордону",Cxe="Коло",Pxe="Довільний полігон",Dxe="Множинний вибір",Txe="Випадаюче меню",Mxe="Горизонтальні кнопки",zxe="Вертикальні кнопки",Ixe="Шестикутник",Hxe="лінія",Axe='Немає опції "Без фільтра".',Oxe="Без фільтра",Lxe="Мітка «Без фільтра».",Wxe="Приховати куточок",Rxe="Восьмикутник",Nxe="П'ятикутник",Exe="Pin",Fxe="безперервний",Vxe="Виявлено",Bxe="англійська",Uxe="Висота (px)",Yxe="Активний",Gxe="Неактивний",Jxe="Натисніть кнопку «Дозволити» вище, щоб увімкнути мікрофон.",Kxe="Дозвіл на використання мікрофона заблоковано. Щоб змінити, перейдіть на сторінку chrome://settings/contentExceptions#media-stream",Zxe="У дозволі на використання мікрофона відмовлено.",Xxe='Мікрофон не знайдено. Переконайтеся, що встановлено мікрофон і що <a href="//support.google.com/chrome/bin/answer.py?hl=uk&answer=1407892"> налаштування мікрофона</a> налаштовано правильно.',Qxe='Мовлення не виявлено. Можливо, вам знадобиться змінити <a href="//support.google.com/chrome/bin/answer.py?hl=uk&answer=1407892">налаштування мікрофона</a>.',e$e="Говори зараз.",t$e="Натисніть на значок мікрофона та почніть говорити.",i$e='Web Speech API не підтримується цим браузером. Оновіть до <a href="//www.google.com/chrome">Chrome</a> версії 25 або новішої.',s$e="Колір ключового слова",n$e="Колір тексту, якщо ключове слово знайдено",o$e="Ключові слова",a$e="Немає зображення",r$e="Немає результатів",l$e="Немає довідкового тексту",c$e="російський",d$e="Надісланий",u$e="неодружений",_$e="Режим мовлення",g$e="старт/зупинка",h$e="розпочато",p$e="Текст надіслано кольоровим",m$e="Колір тексту, коли текст надсилається на обробку",f$e="Ширина (px)",w$e="Майдан",b$e="зірка",v$e="Підвид",y$e="Трикутник",j$e="блокувати",x$e="колір",$$e="Колір за фальшивим",S$e="Колір за правдою",k$e="копія",q$e="Для цього проекту",C$e="Спеціальні",P$e="інший",D$e="дисплей",T$e="flex",M$e="гнучкий",z$e="Папка",I$e="Група",H$e="Ім'я",A$e="Тип",O$e="Атрибути",L$e='Ви можете визначити в атрибутах віджета групи спеціальні назви у форматі "%yourCustomName%" і вони відображатимуться в налаштуваннях "Атрибути". Після цього ви можете вказати назву та тип настроюваних атрибутів.',W$e="Значок від false",R$e="Значок від true",N$e="Ви можете змінити розмір групи, вибравши його у випадаючому списку віджетів або клацнувши цей текст",E$e="текст",F$e="Ці CSS застосовуються до всіх проектів",V$e="Ці CSS застосовуються лише до цього проекту",B$e="приховати",U$e="горизонтальний",Y$e="год",G$e="Розмір значка в пікселях",J$e="Ви можете завантажити власну піктограму розміром до 10 Кбайт як base64. Він буде збережений безпосередньо в проекті. Якщо ви хочете завантажити файл SVG, не забудьте встановити атрибут currentColor.",K$e="Висота зображення",Z$e="Висота зображення",X$e="Інвертувати значок",Q$e="Інвертувати значок",eSe="Закрити",tSe="приклад",iSe="Відсотки",sSe="Активний колір",nSe="Дообіду, після обіду",oSe="Як дата",aSe="Використання повної аналізованої дати",rSe="Як рядок",lSe="авто",cSe="Двійковий контроль",dSe="Застаріле. Використовуйте віджет «Двійковий контроль». Збережено тільки для сумісності з vis.1",uSe="Колір кнопки",_Se="Кнопка закриття діалогового вікна",gSe="Застаріле. Використовуйте віджет «Введення». Збережено тільки для сумісності з vis.1",hSe="Перейти до URL",pSe="Перейти до URL (у новому вікні)",mSe="Застаріле. Використовуйте перший віджет із опцією «Відкрити в новому вікні». Збережено тільки для сумісності з vis.1",fSe="Застаріле. Використовуйте перший віджет із опцією «Перейти до перегляду». Збережено тільки для сумісності з vis.1",wSe="Текст кнопки",bSe="Використовуйте назву перегляду як назву",vSe="Очищається",ySe="колір",jSe="Кнопка=>Діалог сторінки",xSe="Діалог контейнера",$Se="Icon=>Діалог сторінки",SSe="Назва діалогу",kSe="Установити стан відкритим діалоговим вікном",qSe="Вимкнути майбутнє",CSe="Вимкнути минуле",PSe="Показати номер тижня",DSe="Рівна довжина тексту",TSe="Якщо активовано, довжина текстів для true та false буде однаковою, тому значок залишатиметься на тому самому місці у «вимкненому» та «увімкненому» станах.",MSe="Зовнішній діалог",zSe='Це діалогове вікно не відображається на сторінці, але його можна відкрити зовнішньою командою "dialogOpen" із назвою діалогового вікна або ідентифікатором віджета як параметром.',ISe="помилковий",HSe="З іншого об'єкта",ASe="Від статичного значення",OSe="Генерувати",LSe="Значення",WSe="Приховати кнопку закриття",RSe="Ця URL-адреса буде викликана в браузері",NSe="HTML",ESe="Діалог HTML",FSe="Зовнішній діалог",VSe="HTML через false",BSe="HTML можна налаштувати, лише якщо текст і піктограма порожні",USe="HTML від true",YSe="значок",GSe="Активний значок",JSe="Діалогове вікно піктограм",KSe="URL-адреса виклику в серверній частині",ZSe="Збільшення за допомогою значка",XSe="Перейти до URL-адреси (зі значком)",QSe="Піктограма максимуму",eke="Логічна кнопка піктограми",tke="Нажимна Кнопка",ike="Кнопка-перемикач із піктограмою",ske="Зображення",nke="Активне зображення",oke="Висота зображення",ake="Зображення на максимум",rke="Приріст/Зменшення",lke="Введення",cke="Введення дати",dke="Введення часу",uke="Вхід за допомогою кнопки",_ke="Інвертувати значок",gke="Перевернутий",hke="Стиль jQuery",pke="Максимальне значення",mke="Мінімальна вартість",fke="Назва",wke="Перейти до перегляду",bke="Кнопка навігації",vke="Значок навігації",yke="Навігація з паролем",jke="Не однакова ширина",xke="Вимкнено",$ke="Робочий ID",Ske="Увімкнено",kke="Тільки значок",qke="Як список",Cke="Орієнтація",Pke="Пароль",Dke="Користувач повинен ввести пароль, щоб відкрити діалогове вікно, перейти на сторінку або URL",Tke="Режим Push",Mke="При натисканні кнопки буде написано «true», а коли ви відпустите кнопку, буде написано «false».",zke="Перемикачі (увімкнення/вимкнення)",Ike="Список радіостанцій зі значеннями",Hke="Перемикач (кроки)",Ake="діапазон",Oke="Лише для читання",Lke="Повторити затримку",Wke="Інтервал повторення",Rke="Вибрати все у фокусі",Nke="У фокусі буде виділено весь текст, тому його можна швидко видалити або змінити, не натискаючи кнопку Backspace",Eke="Виберіть зі списку",Fke="Стилізована",Vke="Написати тайм-аут",Bke="неодружений",Uke="повзунок",Yke="Застаріле. Використовуйте віджет-повзунок із вертикальною орієнтацією. Збережено тільки для сумісності з vis.1",Gke="Вертикальний слайдер",Jke="Застаріле. Використовуйте віджет «Контроль станів» із опцією «збільшення/зменшення». Збережено тільки для сумісності з vis.1",Kke="Державний контроль",Zke="Крокова хвилина",Xke="Перевірочне значення",Qke="текст",e1e="Активний текст",t1e="Текст на максимум",i1e="Перемикач",s1e="Підказка",n1e="правда",o1e="Тип",a1e="одиниця",r1e="Виклик URL за кліком",l1e="URL у серверній частині",c1e="URL у браузері",d1e="Ця URL-адреса викликатиметься у фоновому режимі системою ioBroker",u1e="Значення",_1e="Етикетка дисплея",g1e="Варіант",h1e="Перегляд навігації",p1e="Широкий формат",m1e="Назва",f1e="З кнопкою введення",w1e='Застаріле. Використовуйте віджет "Wirte state" з опцією "increment/decrement". Збережено тільки для сумісності з vis.1',b1e="Напишіть значення",v1e="Заповнений",y1e="Окреслено",j1e="%s відповідних результатів",x1e="Круглий",$1e="Гострий",S1e="Двоколірний",k1e="Завантажити",q1e="ніколи",C1e="без перезавантажень",P1e="немає",D1e="нормально",T1e="необов'язковий",M1e="Ви можете перетягнути будь-який елемент або клацнути елемент, яким буде замінено вибраний віджет",z1e="Орієнтація",I1e="Профіль",H1e="перезавантажити",A1e="базовый",O1e="Використовується для спеціальних цілей, як-от навігація Jaeger-design",L1e="Текст від false",W1e="Текст від правда",R1e="рядок",N1e="версія",E1e="вертикальний",F1e="Змінний розмір",V1e="Не можна використовувати рекурсивні перегляди",B1e="Перегляд",U1e="Переглянути у віджеті",Y1e="Перегляд не визначено",G1e="Приховати позначку",J1e="поріг",K1e="Swipe",Z1e="Колір",X1e="вкладка",Q1e="Вкладки",e0e="Номер",t0e="значок",i0e="колір",s0e="Розмір значка",n0e="Зображення",o0e="Переповнення X",a0e="Перелив Y",r0e="Назва",l0e="Переглянути",c0e="Варіант",d0e="по центру",u0e="За замовчуванням",_0e="повна ширина",g0e="Вертикальний",h0e="Жодного проекту ще немає.",p0e={"%s from %s":"%s від %s","%s widgets":"Віджети %s","(Maximal file size is %s)":"(Максимальний розмір файлу %s)","-attachment":"-attachment","-clip":"-clip","-color":"-color","-image":"-image","-origin":"-origin","-position":"-position","-repeat":"-repeat","-size":"-size","1 day":"1 день","1 hour":"1 година","1 minute":"1 хвилина","1 second":"1 секунда","10 minutes":"10 хвилин","10 seconds":"10 секунд","12 hours":"12 годин","15 m.":"15 м.","2 hours":"2 години","2 seconds":"2 секунди","20 seconds":"20 секунд","3 hours":"3 години","30 m.":"30 м.","30 minutes":"30 хвилин","30 seconds":"30 секунд","5 minutes":"5 хвилин","5 seconds":"5 секунд","6 hours":"6 годин","Activation state":"Стан активації","Active widget(s) from %s":"Активні віджети від %s",Add:bye,"Add folder":"Додати папку","Add new child folder":"Додати нову дочірню папку","Add new child profile":"Додати новий профіль дитини","Add new or update existing widget":`Додайте новий або оновіть наявний віджет
`,"Add new view":"Новий вигляд","Add profile":"Додати профіль","Add project":"Додати проект","Add sub-folder":"Додати вкладену папку","Add to widgeteria":"Додати до widgeteria","Add view":"Додати вид",Administrator:vye,"Align height. Press more time to get the desired height.":"Вирівняти висоту. Натисніть більше часу, щоб отримати потрібну висоту.","Align horizontal/center":"Вирівняти по горизонталі/по центру","Align horizontal/equal":"Вирівняти горизонтально/рівно","Align horizontal/left":"Вирівняти горизонтально/ліворуч","Align horizontal/right":"Вирівняти горизонтально/праворуч","Align vertical/bottom":"Вирівняти по вертикалі/низу","Align vertical/center":"Вирівняти по вертикалі/по центру","Align vertical/equal":"Вирівняти вертикально/рівно","Align vertical/top":"Вирівняти по вертикалі/верху","Align width. Press more time to get the desired width.":"Вирівняти ширину. Натисніть більше часу, щоб отримати потрібну ширину.",All:yye,Aluminium1:jye,Aluminium2:xye,"App bar":"Панель додатків",Apply:$ye,"Apply ALL navigation properties to all views":"Застосуйте ВСІ властивості навігації до всіх поданнях","Apply to all views":"Застосуйте цю властивість до всіх представлень","Are you sure":"Ти впевнений","Are you sure to delete widgets %s?":"Ви впевнені, що хочете видалити віджети %s?",Attributes:Sye,"Available for all":"Проект доступний для всіх користувачів","Background class":"Фоновий клас","Background color":"Колір фону","Background color if selected":"Колір фону, якщо вибрано","Bar color":"Колір фону","Bar icon":"значок","Bar image":"Зображення","Bar text":"Підпис",Basic:kye,Benutzer:qye,"Blue flowers":"Сині квіти","Blue marine":"Синій морський","Blue marine lines":"Сині морські лінії","Blueprint grid":"Сітка креслення","Body overflow":"Body overflow",Bricks:Cye,"Bring to front":"На передній план","Browse files":"Перегляд файлів","Browse objects":"Перегляд об’єктів","Browse the widgeteria":"Перегляньте віджетерію","Browser instance ID":"Ідентифікатор екземпляра браузера","Browser tab favicon":"Значок вкладки браузера","Browser tab title":"Заголовок вкладки браузера","By horizontal menu do not show text if icon provided":"У горизонтальному меню не показувати текст, якщо передбачена іконка",CSS:Pye,"CSS Class":"Клас CSS","CSS Common":"CSS Common","CSS Font & Text":"CSS Шрифт і текст","CSS background (background-...)":"CSS Фон (background-...)",Cancel:Dye,"Cannot use recursive views":"Не можна використовувати рекурсивні перегляди","Carbon fibre":"Вуглецеве волокно","Carbon fibre1":"Вуглецеве волокно 1","Chevron icon color":"Колір кнопки показу",Clear:Tye,"Clear filter":"Очистити фільтр","Click to close":"Натисніть, щоб закрити",Clone:Mye,"Clone widget":"Віджет клонування",Close:zye,"Close all":"Закрити всі","Close all but current view":"Закрити всі, крім поточного перегляду","Close editor":"Закрити редактор","Collapse all":"Закрити всі",Colorful:Iye,"Column gap":"Розрив колони","Column width":"Ширина колонки",Comment:Hye,"Convert %s to %s":"Перетворити %s на %s","Copied %s":"Скопійовано %s","Copied to clipboard":"Скопійовано в буфер обміну",Copy:Aye,"Copy noun":"Копія","Copy to clipboard":"Копіювати в буфер обміну",'Copy view "%s"':'Копіювати перегляд "%s"',Create:Oye,"Create copy":"Створити копію","Create instance":"Створити","Create new project":"Створити новий проект",'Create or import new "vis-2" project':'Створіть або імпортуйте новий проект "vis-2".',"Current project":"Поточний проект",Cut:Lye,"Dark reconnect screen":"Темний екран повторного підключення","Deactivate binding and use field as standard input":"Дезактивувати прив’язку та використовувати поле як стандартний вхід",Default:Wye,"Default view":"Перегляд за замовчуванням","Default: auto":'Типове значення: "auto"',Delete:Rye,"Delete actual view":"Видалити фактичний вигляд","Delete widgets":"Видалити віджети","Destroy inactive view":"Знищити неактивне подання","Detected new version of vis files. Reloading in 2 seconds...":"Виявлено нову версію файлів vis. Перезавантаження за 2 секунди...",Devices:Nye,Disabled:Eye,"Do not ask again":"Не запитуй знову","Do not hide menu":"Не приховуйте меню повністю","Do you want to create first demo project?":"Бажаєте створити перший демонстраційний проект?",'Do you want to delete folder "%s"':'Ви бажаєте видалити папку "%s"','Do you want to delete project "%s"?':'Ви бажаєте видалити проект "%s"?','Do you want to delete view "%s"?':'Ви бажаєте видалити перегляд "%s"?','Do you want to include "%s" widget into "%s"?':'Бажаєте включити віджет "%s" до "%s"?',"Drag me":"Перетягни мене","Drop the files here ...":"Перекиньте файли сюди...",Duplicate:Fye,"Duplicate folder":"Дубльована папка","Duplicate profile":"Дублюйте профіль",Edit:Vye,"Edit binding":"Редагувати прив'язку","Edit folder":"Редагувати папку","Edit group":"Редагувати групу","Edit profile":"Редагувати профіль",Elements:Bye,Enabled:Uye,Enter:Yye,"Enter password":"Введіть пароль","Enter the browser instances divided by comma":"Введіть екземпляри браузера, розділивши їх комою","Expand all":"Розгорнути все",Explanation:Gye,Export:Jye,'Export "%s"':'Експорт "%s"',"Export widgets":"Експорт віджетів","External dialog":"Зовнішній діалог","Fields of group will be cleaned":"Поля групи будуть очищені","File too large":"Файл завеликий",Files:Kye,"Filter widgets":"Фільтр віджетів","Fm dark background":"Fm темний фон","Fm light background":"Fm світлий фон","Following views will be changed":"Наступні перегляди будуть змінені","For widgets with relative position":"Для віджетів із відносним розташуванням",Fr:Zye,"Full HD - Landscape":"Full HD - пейзаж","Full HD - Portrait":"Full HD - портрет","Full panel":"Повна панель","Galaxy Fold - Landscape":"Galaxy Fold – пейзаж","Galaxy Fold - Portrait":"Galaxy Fold – портрет",Global:Xye,"Gradient box":"Коробка градієнта","Gray 0":"Сірий 0","Gray 1":"Сірий 1",Grid:Qye,Group:eje,"Group view css background":"Груповий перегляд css фону","Group widgets":"Згрупуйте віджети разом","H gradient black 0":"Градієнтний чорний 0","H gradient black 1":"Градієнтний чорний 1","H gradient black 2":"Градієнтний чорний 2","H gradient black 3":"Градієнтний чорний 3","H gradient black 4":"Градієнтний чорний 4","H gradient black 5":"Градієнтний чорний 5","H gradient blue 0":"H градієнт синій 0","H gradient blue 1":"Градієнтний синій 1","H gradient blue 2":"Градієнтний синій 2","H gradient blue 3":"H градієнт синій 3","H gradient blue 4":"H градієнт синій 4","H gradient blue 5":"H градієнт синій 5","H gradient blue 6":"H градієнт синій 6","H gradient blue 7":"H градієнт синій 7","H gradient gray 0":"Градієнт сірого 0","H gradient gray 1":"Градієнт сірого 1","H gradient gray 2":"H градієнт сірий 2","H gradient gray 3":"Градієнт сірого 3","H gradient gray 4":"H градієнт сірий 4","H gradient gray 5":"Градієнт сірого 5","H gradient gray 6":"H градієнт сірий 6","H gradient green 0":"H градієнт зелений 0","H gradient green 1":"H градієнт зелений 1","H gradient green 2":"H градієнт зелений 2","H gradient green 3":"H градієнт зелений 3","H gradient green 4":"H градієнт зелений 4","H gradient orange 0":"Градієнт оранжевий 0","H gradient orange 1":"Градієнт помаранчевий 1","H gradient orange 2":"Градієнт помаранчевий 2","H gradient orange 3":"Градієнт помаранчевий 3","H gradient yellow 0":"H градієнт жовтий 0","H gradient yellow 1":"H градієнт жовтий 1","H gradient yellow 2":"H градієнт жовтий 2","H gradient yellow 3":"H градієнт жовтий 3","HD - Landscape":"HD - пейзаж","HD - Portrait":"HD - портрет",Height:tje,Hide:ije,"Hide after selection":"Сховати після виділення","Hide all views":"Приховати всі перегляди","Hide attributes":"Приховати атрибути","Hide menu":"Приховати меню","Hide palette":"Сховати палітру","Hide panel names":"Приховати назви панелей","Hide selected widgets":"Приховати вибрані віджети",High:sje,"High priority":"Високий пріоритет","Highest eg. Holiday":"Найвищий напр. Свято",Horizontal:nje,Icon:oje,"If user not in group":"Якщо користувач не в групі",Ignore:aje,"Ignored in edit mode":"Ігнорується в режимі редагування",Image:rje,Import:lje,"Import project":"Імпорт проекту","Import widgets":"Імпорт віджетів","Include widget?":"Включити віджет?","Initial filter":"Початковий фільтр",Instance:cje,"Invalid file type":"Недійсний тип файлу","Jump to widget by double click":"Перейдіть до віджета, двічі клацнувши на віджеті","Just use without modification":"Просто використовуйте без змін","Keep on old place":"Залишити на старому місці","Limit background color":"Колір фону","Limit border color":"Колір рамки","Limit border style":"Стиль кордону","Limit border width":"Ширина кордону","Limit only for instances":"Обмеження лише для екземплярів","Limit screen":"Обмежити екран","Lined paper":"Лінійований папір","Load project file...":"Завантаження файлу проекту...","Load widgets...":"Завантаження віджетів...","Loading objects...":"Завантаження об'єктів...",Lock:dje,"Lock dragging":"Перетягування замка","Manage projects":"Керуйте проектами","Manage views":"Керувати переглядами","Menu header text":"Текст заголовка меню","Menu header text color":"Колір тексту заголовка меню","Menu width":"Ширина меню",Message:uje,Mo:_je,Modify:gje,More:hje,"Move down":"Рухатися вниз","Move to new place":"Переїхати на нове місце","Move up":"Рухатися вгору","Move widget down or press longer to open re-order menu":"Перемістіть віджет вниз або натисніть довше, щоб відкрити меню зміни порядку","Move widget up or press longer to open re-order menu":"Перемістіть віджет вгору або натисніть довше, щоб відкрити меню зміни порядку",Name:pje,"Name is not unique":"Назва не унікальна","Name of copy":"Назва примірника","Narrow panel":"Вузька панель",Navigation:mje,"Nest Hub - Landscape":"Nest Hub – пейзаж","Nest Hub - Portrait":"Nest Hub – портрет","Nest Hub Max - Landscape":"Nest Hub Max – пейзаж","Nest Hub Max - Portrait":"Nest Hub Max – портрет","New name":"Нова назва","New view":"Новий вигляд",No:fje,"No background":"Без фону",Normal:wje,OFF:bje,ON:vje,Objects:yje,Ok:jje,"On/Off":"Увімкнено вимкнено","One parameter":"Один параметр","Only for desktop":"Тільки для робочого столу","Only for groups":"Тільки для груп","Only the admin user can change permissions":"Лише адміністратор може змінювати дозволи",Open:xje,"Open all":"Розгорнути все","Open it?":"Відкрий це?","Open runtime in new window":"Відкрити середовище виконання в новому вікні","Open widgeteria":"Відкрити widgeteria",Options:$je,Order:Sje,Orientation:kje,Palette:qje,Paste:Cje,Percent:Pje,Permissions:Dje,"Pixel 5 - Landscape":"Pixel 5 – пейзаж","Pixel 5 - Portrait":"Pixel 5 – Портрет",Priority:Tje,'Project "%s" does not exist':'Проект "%s" не існує','Project "%s" was successfully imported':'Проект "%s" успішно імпортовано',"Project already exists":"Проект вже існує","Project name":"Назва проекту","Project settings":"Налаштування проекту","Project was updated":"Проект оновлено","Project was updated by another browser instance. Do you want to reload it?":"Проект оновлено іншим екземпляром браузера. Ви хочете перезавантажити його?",Projects:Mje,"Radial blue":"Радіальний синій",Read:zje,"Read = Runtime access":"Читання = доступ під час виконання","Read about currentColor in SVG":"Прочитайте про currentColor у SVG","Rebuild HTML pages":"Перебудувати HTML-сторінки","Rebuild of HTML pages was started":"Розпочато відновлення HTML-сторінок","Received user command: %s":"Отримано команду користувача: %s","Reconnect interval":"Інтервал повторного підключення",Redo:Ije,"Reload all browsers if project changed":"Перезавантажте всі браузери, якщо проект змінився","Reload all runtimes":"Перезавантажте всі середовища виконання","Reload if sleep longer than":"Перезавантажте, якщо спите довше","Reload now":"Перезавантажте зараз",Reloading:Hje,Rename:Aje,'Rename folder "%s"':'Перейменувати папку "%s"','Rename project "%s"':'Перейменувати проект "%s"',"Rename view":"Перейменувати вигляд",'Rename view "%s"':'Перейменувати перегляд "%s"',"Render always":"Рендер завжди","Reset all intervals to following value:":"Скинути всі інтервали до наступного значення:",Resolution:Oje,"Responsive settings":"Чуйні налаштування","Row gap":"Проміжок між рядами",Sa:Lje,"Samsung Galaxy A51/71 - Landscape":"Samsung Galaxy A51/71 - Пейзаж","Samsung Galaxy A51/71 - Portrait":"Samsung Galaxy A51/71 - Портрет","Samsung Galaxy S20 Ultra - Landscape":"Samsung Galaxy S20 Ultra – пейзаж","Samsung Galaxy S20 Ultra - Portrait":"Samsung Galaxy S20 Ultra – портрет","Samsung Galaxy S8+ - Landscape":"Samsung Galaxy S8+ – пейзаж","Samsung Galaxy S8+ - Portrait":"Samsung Galaxy S8+ - портрет",Save:Wje,Scripts:Rje,Search:Nje,Select:Eje,"Select all":"Вибрати все","Select object ID":"Виберіть ID об'єкта","Select or create profile in left menu":"Виберіть або створіть профіль у меню зліва","Select project":"Виберіть проект","Select vis-2 project":"Виберіть проект «vis-2».","Send to back":"Надіслати назад","Sent to back":"Відправлено назад",Set:"встановити","Set all periods to one value":"Установіть для всіх періодів одне значення","Set widgets filter for edit mode":"Сховати віджети (які мають ключ фільтра) у режимі редагування",Settings:Fje,"Should it be moved to new place?":"Чи варто його переносити на нове місце?",Show:Vje,"Show all views":"Показати всі перегляди","Show app bar":"Показати","Show background of button":"Фон кнопки «Показати».","Show navigation":"Показати навігацію","Show only selected widgets":"Показати лише вибрані віджети","Show only toolbar on the top and hide menu itself":"Показувати тільки панель інструментів зверху і приховувати саме меню","Show palette":"Показати палітру","Show this attribute by all views":"Показувати цей атрибут усіма видами","Show view":"Показати вид","Specify filter to see more icons":"Укажіть фільтр, щоб побачити більше значків","States Debounce Time (millis)":"Час усунення дребезгу в штатах (мілісекунди)",Style:Bje,"Style of menu button only when the menu is hidden":"Стиль кнопки меню лише тоді, коли меню приховано",Su:Uje,"Surface Duo - Landscape":"Surface Duo - Пейзаж","Surface Duo - Portrait":"Surface Duo – Портрет","Surface Pro 7 - Landscape":"Surface Pro 7 – ландшафт","Surface Pro 7 - Portrait":"Surface Pro 7 – Портрет","Switch to group edit mode by double click":"Перейдіть у режим редагування групи, двічі клацнувши на віджеті",Tabs:Yje,Temperature:Gje,"Text color":"Колір тексту","Text color if selected":"Колір тексту, якщо вибрано","Text edit":"Редагування тексту",Th:Jje,Theme:Kje,"This view will be shown only to defined groups":"Це вікно буде показано лише визначеним групам",'This widget is already used in "%s"':'Цей віджет уже використовується в "%s"',Title:Zje,"To use it, define by some widget the filter key":"Щоб використовувати його, визначте якимось віджетом ключ фільтра","Toggle runtime":"Перемкнути час виконання","Toggle widget hint (dark)":"Перемкнути підказку віджета (темний)","Toggle widget hint (hide)":"Перемкнути підказку віджета (сховати)","Toggle widget hint (light)":"Перемкнути підказку віджета (світла)",Tu:Xje,Type:Qje,Undo:exe,Ungroup:txe,Uninstall:ixe,'Unknown widget type "%s"':'Невідомий тип віджета "%s"',Unlock:sxe,Unselect:nxe,Update:oxe,"Usage of widget %s":"Використання віджета %s","Use background":"Використовуйте фон","Use field as binding":"Використовувати поле як прив’язку","User defined":"Визначений користувачем",Value:axe,Vertical:rxe,View:lxe,"View not defined":"Перегляд не визначено",We:cxe,Weekend:dxe,Widget:uxe,"Widget CSS":"Віджет CSS","Widget JS":"Віджет JS","Widget was deleted in widgeteria":"Віджет видалено у widgeteria",Widgets:_xe,Width:gxe,"Width x height (px)":"Ширина х висота (px)",Write:hxe,"Write = Edit mode access":"Запис = доступ до режиму редагування",Writer:pxe,"Wrong password":"Неправильний пароль",Yes:mxe,"You can open dialog with following script:":"Ви можете відкрити діалогове вікно за допомогою наступного сценарію:","You can provide here the state that controls the activation of this profile":"Тут можна вказати стан, який контролює активацію цього профілю",__marketplace:fxe,ace_All:wxe,"ace_CaseSensitive Search":"Пошук з урахуванням регістру","ace_RegExp Search":"Пошук RegExp","ace_Search In Selection":"Пошук у вибраному","ace_Search for":"Шукати","ace_Toggle Replace mode":"Перемкнути режим заміни","ace_Whole Word Search":"Пошук усього слова",alt_false:bxe,alt_true:vxe,anonymize:yxe,apply_to_all:jxe,attr_none:xxe,basic_all_filters:$xe,basic_arrow:Sxe,basic_borderColor:kxe,basic_borderRadius:qxe,basic_circle:Cxe,basic_custom:Pxe,basic_filter_multiple:Dxe,basic_filter_type_dropdown:Txe,basic_filter_type_horizontal_buttons:Mxe,basic_filter_type_vertical_buttons:zxe,basic_hexagone:Ixe,basic_line:Hxe,basic_no_all_option:Axe,basic_no_filter:Oxe,basic_no_filter_text:Lxe,basic_node_hide_corner:Wxe,basic_octagone:Rxe,basic_pentagone:Nxe,basic_pin:Exe,basic_speech2text_continuous:Fxe,basic_speech2text_detected:Vxe,basic_speech2text_en_us:Bxe,basic_speech2text_height:Uxe,basic_speech2text_image_active:Yxe,basic_speech2text_image_inactive:Gxe,basic_speech2text_info_allow:Jxe,basic_speech2text_info_blocked:Kxe,basic_speech2text_info_denied:Zxe,basic_speech2text_info_no_microphone:Xxe,basic_speech2text_info_no_speech:Qxe,basic_speech2text_info_speak_now:e$e,basic_speech2text_info_start:t$e,basic_speech2text_info_upgrade:i$e,basic_speech2text_key_word_color:s$e,basic_speech2text_key_word_color_tooltip:n$e,basic_speech2text_keywords:o$e,basic_speech2text_no_image:a$e,basic_speech2text_no_results:r$e,basic_speech2text_no_text:l$e,basic_speech2text_ru_ru:c$e,basic_speech2text_sent:d$e,basic_speech2text_single:u$e,basic_speech2text_speech_mode:_$e,basic_speech2text_start_stop:g$e,basic_speech2text_started:h$e,basic_speech2text_text_sent_color:p$e,basic_speech2text_text_sent_color_tooltip:m$e,basic_speech2text_width:f$e,basic_square:w$e,basic_star:b$e,basic_sub_view:v$e,basic_triangle:y$e,block:j$e,color:x$e,color_false:$$e,color_true:S$e,"convert from widgeteria widget":"конвертувати з віджета widgeteria",copy:k$e,css_project:q$e,custom_icons:C$e,different:P$e,display:D$e,"finish searching":"пошук завершено",flex:T$e,flexible:M$e,folder:z$e,"font-family":"сімейство шрифтів","font-size":"розмір шрифту","font-style":"стиль шрифту","font-variant":"шрифт-варіант","font-weight":"вага шрифту",group:I$e,group_attrName:H$e,group_attrType:A$e,group_fields:O$e,group_help:L$e,group_icon_false:W$e,group_icon_true:R$e,group_size_hint:N$e,group_text:E$e,help_css_global:F$e,help_css_project:V$e,hide:B$e,"hide code":"приховати код",horizontal:U$e,hr:Y$e,"iPad Air - Landscape":"iPad Air – пейзаж","iPad Air - Portrait":"iPad Air – Портрет","iPad Mini - Landscape":"iPad Mini – пейзаж","iPad Mini - Portrait":"iPad Mini – портрет","iPad Pro - Landscape":"iPad Pro – ландшафт","iPad Pro - Portrait":"iPad Pro – портрет","iPhone 12 Pro - Landscape":"iPhone 12 Pro – пейзаж","iPhone 12 Pro - Portrait":"iPhone 12 Pro – Портрет","iPhone SE - Landscape":"iPhone SE – Пейзаж","iPhone SE - Portrait":"iPhone SE – Портрет","iPhone XR - Landscape":"iPhone XR – пейзаж","iPhone XR - Portrait":"iPhone XR – Портрет",icon_size_in_pixels:G$e,icon_upload_hint:J$e,imageHeight_false:K$e,imageHeight_true:Z$e,invert_icon_false:X$e,invert_icon_true:Q$e,"jqui_Add new value":"Додати нове значення","jqui_Are you sure?":"Ти впевнений?","jqui_Bulk edit":"Масове редагування",jqui_Close:eSe,jqui_Example:tSe,"jqui_Generate states":"Генеруйте стани","jqui_Generate steps":"Створення кроків","jqui_Maximum value":"Максимальне значення","jqui_Minimum value":"Мінімальна вартість","jqui_Number settings":"Налаштування номера",jqui_Percents:iSe,"jqui_Replace to":"Замінити","jqui_Select file":"Виберіть зображення","jqui_Write state":"Написати стан",jqui_active_color:sSe,jqui_ampm:nSe,jqui_asDate:oSe,jqui_asFullDate:aSe,jqui_as_string:rSe,jqui_auto:lSe,jqui_binary_control:cSe,jqui_button_binary_control_note:dSe,jqui_button_color:uSe,jqui_button_dialog_close:_Se,jqui_button_input_note:gSe,jqui_button_link:hSe,jqui_button_link_blank:pSe,jqui_button_link_blank_note:mSe,jqui_button_nav_blank_note:fSe,jqui_button_text:wSe,jqui_buttontext_view:bSe,jqui_clearable:vSe,jqui_color:ySe,jqui_container_button_dialog:jSe,jqui_container_dialog:xSe,jqui_container_icon_dialog:$Se,jqui_dialog_name:SSe,jqui_dialog_set_id_tooltip:kSe,jqui_disableFuture:qSe,jqui_disablePast:CSe,jqui_displayWeekNumber:PSe,jqui_equal_text_length:DSe,jqui_equal_text_length_tooltip:TSe,jqui_external_dialog:MSe,jqui_external_dialog_tooltip:zSe,jqui_false:ISe,jqui_from_oid:HSe,jqui_from_value:ASe,jqui_generate:OSe,jqui_group_value:LSe,jqui_hide_close_button:WSe,jqui_href_tooltip:RSe,jqui_html:NSe,jqui_html_dialog:ESe,jqui_html_external_dialog:FSe,jqui_html_false:VSe,jqui_html_tooltip:BSe,jqui_html_true:USe,jqui_icon:YSe,jqui_icon_active:GSe,jqui_icon_dialog:JSe,jqui_icon_http_get:KSe,jqui_icon_increment:ZSe,jqui_icon_link:XSe,jqui_icon_max:QSe,jqui_icon_state_bool:eke,jqui_icon_state_push_button:tke,jqui_icon_toggle:ike,jqui_image:ske,jqui_image_active:nke,jqui_image_height:oke,jqui_image_max:ake,jqui_increment_decrement:rke,jqui_input:lke,jqui_input_date:cke,jqui_input_time:dke,jqui_input_with_button:uke,jqui_invert_icon:_ke,jqui_inverted:gke,jqui_jquery_style:hke,jqui_max:pke,jqui_min:mke,jqui_name:fke,jqui_nav_view:wke,jqui_navigation_button:bke,jqui_navigation_icon:vke,jqui_navigation_password:yke,jqui_not_equal_length:jke,jqui_off:xke,jqui_oid_working:$ke,jqui_on:Ske,jqui_only_icon:kke,jqui_open:qke,jqui_orientation:Cke,jqui_password:Pke,jqui_password_tooltip:Dke,jqui_push_mode:Tke,jqui_push_mode_tooltip:Mke,jqui_radio_buttons_on_off:zke,jqui_radio_list:Ike,jqui_radio_steps:Hke,jqui_range:Ake,jqui_read_only:Oke,jqui_repeat_delay:Lke,jqui_repeat_interval:Wke,jqui_select_all_on_focus:Rke,jqui_select_all_on_focus_tooltip:Nke,jqui_select_list:Eke,jqui_set_label:Fke,jqui_set_timeout:Vke,jqui_single:Bke,jqui_slider:Uke,jqui_slider_note:Yke,jqui_slider_vertical:Gke,jqui_state_note:Jke,jqui_states_control:Kke,jqui_stepMinute:Zke,jqui_test:Xke,jqui_text:Qke,jqui_text_active:e1e,jqui_text_max:t1e,jqui_toggle:i1e,jqui_tooltip:s1e,jqui_true:n1e,jqui_type:o1e,jqui_unit:a1e,jqui_url_group:r1e,jqui_url_in_background:l1e,jqui_url_in_browser:c1e,jqui_url_tooltip:d1e,jqui_value:u1e,jqui_value_label_display:_1e,jqui_variant:g1e,jqui_view_group:h1e,jqui_wideFormat:p1e,jqui_widgetTitle:m1e,jqui_with_enter_button:f1e,jqui_write_state_note:w1e,jqui_write_value:b1e,"letter-spacing":"міжлітерний інтервал","line-height":"висота лінії",material_icons_baseline:v1e,"material_icons_knx-uf":"knx-uf",material_icons_outline:y1e,material_icons_result:j1e,material_icons_round:x1e,material_icons_sharp:$1e,material_icons_twotone:S1e,material_icons_upload:k1e,"multi-views":"Показати в Переглядах",never:q1e,no_reload:C1e,none:P1e,normal:D1e,"not defined":"не визначений","not-specified":"не визначений",optional:T1e,order_help:M1e,orientation:z1e,profile:I1e,"qui_Bool SVG":"Логічний SVG",reload:H1e,"search text":"Пошуковий текст",set_basic:A1e,"signals-color":"Колір","signals-count":"Кількість сигналів","signals-smallIcon-0":"Маленький значок [0]","signals-smallIcon-1":"Маленький значок [1]","signals-smallIcon-2":"Маленький значок [3]","signals-text":"Текст або шаблон","signals-text-0":"Текст [0]","signals-text-1":"Текст [1]","signals-text-2":"Текст [2]","signals-text-tooltip":"Ви можете використовувати %s для відображення поточного значення в тексті",sub_view_tooltip:O1e,"text-shadow":"текст-тінь",text_false:L1e,text_true:W1e,"to version":"до версії",value_string:R1e,version:N1e,vertical:E1e,"vis-2-widgets-basic-autoSetDelay":"Затримка для автозапису","vis-2-widgets-basic-input_value":"Вхідне значення","vis-2-widgets-basic-noStyle":"Ніякого стилю",visResizable:F1e,vis_2_widgets_basic_cannot_recursive:V1e,vis_2_widgets_basic_contains_view:B1e,vis_2_widgets_basic_view_in_widget:U1e,vis_2_widgets_basic_view_not_defined:Y1e,vis_2_widgets_swipe_hide_indication_label:G1e,vis_2_widgets_swipe_threshold_label:J1e,vis_2_widgets_widgets_swipe_label:K1e,vis_2_widgets_widgets_tabs_color:Z1e,vis_2_widgets_widgets_tabs_group_tab:X1e,vis_2_widgets_widgets_tabs_label:Q1e,vis_2_widgets_widgets_tabs_show_tabs:e0e,vis_2_widgets_widgets_tabs_tab_icon:t0e,vis_2_widgets_widgets_tabs_tab_icon_color:i0e,vis_2_widgets_widgets_tabs_tab_icon_size:s0e,vis_2_widgets_widgets_tabs_tab_image:n0e,vis_2_widgets_widgets_tabs_tab_overflow_x:o0e,vis_2_widgets_widgets_tabs_tab_overflow_y:a0e,vis_2_widgets_widgets_tabs_tab_title:r0e,vis_2_widgets_widgets_tabs_tab_view:l0e,vis_2_widgets_widgets_tabs_variant:c0e,vis_2_widgets_widgets_tabs_variant_centered:d0e,vis_2_widgets_widgets_tabs_variant_default:u0e,vis_2_widgets_widgets_tabs_variant_full_width:_0e,vis_2_widgets_widgets_tabs_vertical:g0e,welcome_message:h0e,"word-spacing":"міжсловний інтервал"},m0e="添加",f0e="行政人员",w0e="全部",b0e="铝1",v0e="铝2",y0e="申请",j0e="属性",x0e="基本的",$0e="本努策",S0e="砖块",k0e="CSS",q0e="取消",C0e="清除",P0e="克隆",D0e="关",T0e="丰富多彩的",M0e="评论",z0e="复制",I0e="创建",H0e="切",A0e="默认",O0e="删除",L0e="设备",W0e="已禁用",R0e="复制",N0e="编辑",E0e="元素",F0e="启用",V0e="进入",B0e="解释",U0e="出口",Y0e="文件",G0e="Fr",J0e="对于所有项目",K0e="网格",Z0e="团体",X0e="高度",Q0e="隐藏",e2e="高的",t2e="水平的",i2e="图标",s2e="忽略",n2e="图片",o2e="进口",a2e="实例",r2e="锁",l2e="信息",c2e="莫",d2e="调整",u2e="更多的",_2e="姓名",g2e="导航",h2e="不",p2e="普通的",m2e="离开",f2e="在",w2e="对象",b2e="好的",v2e="打开",y2e="选项",j2e="命令",x2e="方向",$2e="调色板",S2e="粘贴",k2e="百分",q2e="权限",C2e="优先事项",P2e="项目",D2e="读",T2e="重做",M2e="重装",z2e="改名",I2e="解析度",H2e="萨",A2e="节省",O2e="脚本",L2e="搜索",W2e="选择",R2e="设置",N2e="节目",E2e="风格",F2e="苏",V2e="选项卡",B2e="温度",U2e="Th",Y2e="主题",G2e="标题",J2e="涂",K2e="类型",Z2e="撤消",X2e="解组",Q2e="卸载",eqe="开锁",tqe="取消选择",iqe="更新",sqe="价值",nqe="垂直的",oqe="看法",aqe="Mi",rqe="周末",lqe="小部件",cqe="小部件",dqe="宽度",uqe="写",_qe="作家",gqe="是的",hqe="小鸡科",pqe="全部",mqe="工具提示为 false",fqe="工具提示为 true",wqe="匿名化",bqe="对所有人",vqe="none",yqe="添加所有剩余的",jqe="箭",xqe="边框颜色",$qe="边界半径",Sqe="圆圈",kqe="自定义多边形",qqe="多项选择",Cqe="下拉式菜单",Pqe="水平按钮",Dqe="垂直按钮",Tqe="六边形",Mqe="线",zqe="没有“无过滤器”选项",Iqe="没有过滤器",Hqe="“无过滤器”标签",Aqe="Hide corner",Oqe="八角形",Lqe="五角大楼",Wqe="别针",Rqe="连续的",Nqe="检测到",Eqe="英语",Fqe="高度(像素)",Vqe="积极的",Bqe="不活跃",Uqe="单击上面的“允许”按钮以启用您的麦克风。",Yqe="使用麦克风的权限被阻止。要更改,请转到 chrome://settings/contentExceptions#media-stream",Gqe="使用麦克风的权限被拒绝。",Jqe='没有找到麦克风。确保已安装麦克风并且<a href="//support.google.com/chrome/bin/answer.py?hl=zh-CN&answer=1407892">麦克风设置</a>配置正确。',Kqe='未检测到任何语音。您可能需要调整<a href="//support.google.com/chrome/bin/answer.py?hl=zh-CN&answer=1407892">麦克风设置</a>。',Zqe="现在讲。",Xqe="单击麦克风图标并开始讲话。",Qqe='此浏览器不支持 Web Speech API。升级到 <a href="//www.google.com/chrome">Chrome</a> 版本 25 或更高版本。',eCe="关键词颜色",tCe="文本颜色(如果找到关键字)",iCe="关键词",sCe="没有图像",nCe="没有结果",oCe="无帮助文字",aCe="俄语",rCe="发送",lCe="单身的",cCe="语音模式",dCe="开始/停止",uCe="开始",_Ce="发送的文字颜色",gCe="文本颜色,当文本发送到处理它时",hCe="宽度(像素)",pCe="正方形",mCe="星星",fCe="子视图",wCe="三角形",bCe="堵塞",vCe="颜色",yCe="按假颜色",jCe="按真实颜色",xCe="副本",$Ce="对于这个项目",SCe="特别的",kCe="不同的",qCe="展示",CCe="柔性",PCe="灵活的",DCe="文件夹",TCe="团体",MCe="姓名",zCe="类型",ICe="属性",HCe="您可以在组的小部件的属性中定义格式为“%yourCustomName%”的特殊名称,它将出现在“属性”设置中。之后,您可以提供自定义属性的名称和类型。",ACe="图标由 false",OCe="图标由 true",LCe="您可以通过在下拉小部件选择器中选择它或单击此文本来更改组大小",WCe="文本",RCe="这些 CSS 适用于所有项目",NCe="这些 CSS 仅适用于该项目",ECe="隐藏",FCe="水平的",VCe="小时",BCe="图标大小(以像素为单位)",UCe="您可以上传自己的图标(最多 10k 字节)作为 base64。它将直接保存在项目中。如果您想上传 SVG 文件,请不要忘记设置 currentColor 属性。",YCe="图像高度",GCe="图像高度",JCe="反转图标",KCe="反转图标",ZCe="关闭",XCe="例子",QCe="百分比",ePe="活性颜色",tPe="上午下午",iPe="截至日期",sPe="使用完整的可解析日期",nPe="作为字符串",oPe="汽车",aPe="二元控制",rPe="已弃用。使用“二进制控制”小部件。保留只是为了与 vis.1 兼容",lPe="按钮颜色",cPe="对话框关闭按钮",dPe="已弃用。使用“输入”小部件。保留只是为了与 vis.1 兼容",uPe="跳转到网址",_Pe="跳转到网址(在新窗口中)",gPe="已弃用。使用带有“在新窗口中打开”选项的第一个小部件。保留只是为了与 vis.1 兼容",hPe="已弃用。使用带有“转到查看”选项的第一个小部件。保留只是为了与 vis.1 兼容",pPe="按钮文字",mPe="使用视图名称作为标题",fPe="可清除",wPe="颜色",bPe="按钮=>页面对话框",vPe="容器对话框",yPe="图标=>页面对话框",jPe="对话框名称",xPe="通过打开对话框设置状态",$Pe="禁用未来",SPe="禁用过去",kPe="显示周数",qPe="相等的文本长度",CPe="如果激活,则 true 和 false 的文本长度将相等,因此图标在“关闭”和“打开”状态下将保持在同一位置。",PPe="外部对话",DPe="该对话框在页面上不可见,但可以通过外部命令“dialogOpen”以对话框名称或小部件 ID 作为参数打开它。",TPe="错误的",MPe="来自其他对象",zPe="从静态值",IPe="产生",HPe="价值",APe="隐藏关闭按钮",OPe="该 URL 将在浏览器中调用",LPe="超文本标记语言",WPe="HTML对话框",RPe="外部对话",NPe="HTML 为 false",EPe="HTML 仅在文本和图标为空时才可配置",FPe="HTML 为 true",VPe="图标",BPe="活动图标",UPe="图标对话框",YPe="后台调用地址",GPe="用图标递增",JPe="跳转到 URL(带图标)",KPe="最大图标",ZPe="布尔图标按钮",XPe="按钮",QPe="带图标的切换按钮",eDe="图像",tDe="活动图像",iDe="图像高度",sDe="最大图像",nDe="递增/递减",oDe="输入",aDe="输入日期",rDe="输入时间",lDe="用按钮输入",cDe="反转图标",dDe="倒",uDe="jQuery 风格",_De="最大值",gDe="最小值",hDe="标题",pDe="前往查看",mDe="导航按钮",fDe="导航图标",wDe="使用密码导航",bDe="宽度不等",vDe="离开",yDe="工作身份证",jDe="启用",xDe="仅图标",$De="作为列表",SDe="方向",kDe="密码",qDe="用户必须输入密码才能打开对话框、转到页面或 URL",CDe="推送模式",PDe="按下按钮时,将写入“true”,松开按钮时,将写入“false”。",DDe="单选按钮(开/关)",TDe="包含值的单选列表",MDe="单选按钮(步骤)",zDe="范围",IDe="只读",HDe="重复延迟",ADe="重复间隔",ODe="选择所有焦点",LDe="焦点上所有文本都将被选择,因此可以快速删除或更改文本,而无需按退格按钮",WDe="从列表中选择",RDe="风格化",NDe="写入超时",EDe="单身的",FDe="滑块",VDe="已弃用。使用方向设置为垂直的滑块小部件。保留只是为了与 vis.1 兼容",BDe="垂直滑块",UDe="已弃用。使用带有“增量/减量”选项的“状态控制”小部件。保留只是为了与 vis.1 兼容",YDe="国家控制",GDe="步数分钟",JDe="测试值",KDe="文本",ZDe="活动文本",XDe="最大文本",QDe="切换",eTe="工具提示",tTe="真的",iTe="类型",sTe="单元",nTe="点击调用URL",oTe="后端网址",aTe="浏览器中的网址",rTe="ioBroker 引擎将在后台调用此 URL",lTe="价值",cTe="显示标签",dTe="变体",uTe="导航视图",_Te="宽幅",gTe="标题",hTe="带输入按钮",pTe="已弃用。使用带有“增量/减量”选项的“Wirte state”小部件。保留只是为了与 vis.1 兼容",mTe="写入值",fTe="填充",wTe="概述",bTe="%s 匹配结果",vTe="圆形的",yTe="锋利的",jTe="双色",xTe="上传",$Te="绝不",STe="没有重装",kTe="没有任何",qTe="普通的",CTe="可选的",PTe="您可以拖放任何项目或单击将与所选小部件交换的项目",DTe="方向",TTe="轮廓",MTe="重新加载",zTe="基本的",ITe="它用于特殊目的,例如 jaeger-design 导航",HTe="文字由假",ATe="文字真实",OTe="细绳",LTe="版本",WTe="垂直的",RTe="可调整大小",NTe="不能使用递归视图",ETe="使用视图",FTe="在小部件中查看",VTe="查看未定义",BTe="隐藏指示",UTe="临界点",YTe="Swipe",GTe="颜色",JTe="标签",KTe="选项卡",ZTe="数字",XTe="图标",QTe="颜色",eMe="图标大小",tMe="图像",iMe="溢出X",sMe="溢出Y",nMe="标题",oMe="看法",aMe="变体",rMe="居中",lMe="默认",cMe="全屏宽度",dMe="垂直的",uMe="目前还没有一个项目存在。",_Me={"%s from %s":"来自 %s 的 %s","%s widgets":"%s 个小部件","(Maximal file size is %s)":"(最大文件大小为 %s)","-attachment":"-attachment","-clip":"-clip","-color":"-color","-image":"-image","-origin":"-origin","-position":"-position","-repeat":"-repeat","-size":"-size","1 day":"1天","1 hour":"1小时","1 minute":"1分钟","1 second":"1秒","10 minutes":"10分钟","10 seconds":"10 秒","12 hours":"12小时","15 m.":"15分钟","2 hours":"2小时","2 seconds":"2 秒","20 seconds":"20 秒","3 hours":"3小时","30 m.":"30分钟","30 minutes":"30分钟","30 seconds":"30秒","5 minutes":"5分钟","5 seconds":"5秒","6 hours":"6个小时","Activation state":"激活状态","Active widget(s) from %s":"来自 %s 的活动小部件",Add:m0e,"Add folder":"新增文件夹","Add new child folder":"添加新的子文件夹","Add new child profile":"添加新的子配置文件","Add new or update existing widget":`添加新的或更新现有的小部件
`,"Add new view":"添加新视图","Add profile":"添加个人资料","Add project":"添加项目","Add sub-folder":"添加子文件夹","Add to widgeteria":"添加到 widderia","Add view":"添加视图",Administrator:f0e,"Align height. Press more time to get the desired height.":"对齐高度。按更多时间以获得所需的高度。","Align horizontal/center":"水平/居中对齐","Align horizontal/equal":"水平对齐/相等","Align horizontal/left":"水平/左对齐","Align horizontal/right":"水平/右对齐","Align vertical/bottom":"垂直/底部对齐","Align vertical/center":"垂直/居中对齐","Align vertical/equal":"垂直对齐/相等","Align vertical/top":"垂直/顶部对齐","Align width. Press more time to get the desired width.":"对齐宽度。按更多时间以获得所需的宽度。",All:w0e,Aluminium1:b0e,Aluminium2:v0e,"App bar":"应用栏",Apply:y0e,"Apply ALL navigation properties to all views":"将所有导航属性应用于所有视图","Apply to all views":"将此属性应用于所有视图","Are you sure":"你确定吗","Are you sure to delete widgets %s?":"您确定要删除小部件 %s 吗?",Attributes:j0e,"Available for all":"所有用户均可访问的项目","Background class":"背景类","Background color":"背景颜色","Background color if selected":"背景颜色(如果选择)","Bar color":"背景颜色","Bar icon":"图标","Bar image":"图像","Bar text":"标题",Basic:x0e,Benutzer:$0e,"Blue flowers":"蓝色花朵","Blue marine":"蓝色海洋","Blue marine lines":"蓝色海洋线","Blueprint grid":"蓝图网格","Body overflow":"Body overflow",Bricks:S0e,"Bring to front":"带到前面","Browse files":"浏览文件","Browse objects":"浏览对象","Browse the widgeteria":"浏览widgeteria","Browser instance ID":"浏览器实例 ID","Browser tab favicon":"浏览器标签页图标","Browser tab title":"浏览器标签页标题","By horizontal menu do not show text if icon provided":"By horizontal menu do not show text if icon provided",CSS:k0e,"CSS Class":"CSS 类","CSS Common":"CSS 通用","CSS Font & Text":"CSS 字体和文本","CSS background (background-...)":"CSS 背景(background-...)",Cancel:q0e,"Cannot use recursive views":"不能使用递归视图","Carbon fibre":"碳纤维","Carbon fibre1":"碳纤维1","Chevron icon color":"显示按钮的颜色",Clear:C0e,"Clear filter":"清除过滤器","Click to close":"点击关闭",Clone:P0e,"Clone widget":"克隆小部件",Close:D0e,"Close all":"全部收缩","Close all but current view":"关闭除当前视图之外的所有视图","Close editor":"关闭编辑器","Collapse all":"全部收缩",Colorful:T0e,"Column gap":"柱间隙","Column width":"列宽",Comment:M0e,"Convert %s to %s":"将 %s 转换为 %s","Copied %s":"已复制 %s","Copied to clipboard":"复制到剪贴板",Copy:z0e,"Copy noun":"复制","Copy to clipboard":"复制到剪贴板",'Copy view "%s"':"复制视图“%s”",Create:I0e,"Create copy":"创建副本","Create instance":"创建实例","Create new project":"创建新项目",'Create or import new "vis-2" project':"创建或导入新的“vis-2”项目","Current project":"当前的项目",Cut:H0e,"Dark reconnect screen":"黑暗的重新连接屏幕","Deactivate binding and use field as standard input":"停用绑定并使用字段作为标准输入",Default:A0e,"Default view":"默认视图","Default: auto":"默认值:“auto”",Delete:O0e,"Delete actual view":"删除实际视图","Delete widgets":"删除小部件","Destroy inactive view":"销毁非活动视图","Detected new version of vis files. Reloading in 2 seconds...":"检测到新版本的 vis 文件。 2秒后重新加载...",Devices:L0e,Disabled:W0e,"Do not ask again":"不要再问了","Do not hide menu":"不要完全隐藏菜单","Do you want to create first demo project?":"你想创建第一个演示项目吗?",'Do you want to delete folder "%s"':"您要删除文件夹“%s”吗",'Do you want to delete project "%s"?':"您要删除项目“%s”吗?",'Do you want to delete view "%s"?':"您要删除视图“%s”吗?",'Do you want to include "%s" widget into "%s"?':"您想将“%s”小部件包含到“%s”中吗?","Drag me":"拉我一把","Drop the files here ...":"把文件放在这里...",Duplicate:R0e,"Duplicate folder":"复制文件夹","Duplicate profile":"复制配置文件",Edit:N0e,"Edit binding":"编辑绑定","Edit folder":"编辑文件夹","Edit group":"编辑群组","Edit profile":"编辑个人资料",Elements:E0e,Enabled:F0e,Enter:V0e,"Enter password":"输入密码","Enter the browser instances divided by comma":"输入浏览器实例,以逗号分隔","Expand all":"展开全部",Explanation:B0e,Export:U0e,'Export "%s"':'出口 "%s"',"Export widgets":"导出小部件","External dialog":"外部对话","Fields of group will be cleaned":"组的字段将被清理","File too large":"文件过大",Files:Y0e,"Filter widgets":"过滤器小部件","Fm dark background":"Fm 深色背景","Fm light background":"Fm 浅色背景","Following views will be changed":"以下视图将被更改","For widgets with relative position":"对于具有相对位置的小部件",Fr:G0e,"Full HD - Landscape":"全高清 - 风景","Full HD - Portrait":"全高清 - 人像","Full panel":"全面板","Galaxy Fold - Landscape":"Galaxy Fold - 风景","Galaxy Fold - Portrait":"Galaxy Fold - 人像",Global:J0e,"Gradient box":"渐变框","Gray 0":"灰色 0","Gray 1":"灰色 1",Grid:K0e,Group:Z0e,"Group view css background":"组视图 css 背景","Group widgets":"将小部件分组在一起","H gradient black 0":"H渐变黑0","H gradient black 1":"H渐变黑1","H gradient black 2":"H渐变黑2","H gradient black 3":"H渐变黑3","H gradient black 4":"H渐变黑4","H gradient black 5":"H渐变黑5","H gradient blue 0":"H渐变蓝0","H gradient blue 1":"H渐变蓝1","H gradient blue 2":"H渐变蓝2","H gradient blue 3":"H渐变蓝3","H gradient blue 4":"H渐变蓝4","H gradient blue 5":"H渐变蓝5","H gradient blue 6":"H渐变蓝6","H gradient blue 7":"H渐变蓝7","H gradient gray 0":"H 渐变灰 0","H gradient gray 1":"H渐变灰1","H gradient gray 2":"H渐变灰2","H gradient gray 3":"H渐变灰3","H gradient gray 4":"H渐变灰4","H gradient gray 5":"H渐变灰5","H gradient gray 6":"H渐变灰6","H gradient green 0":"H 渐变绿 0","H gradient green 1":"H渐变绿1","H gradient green 2":"H渐变绿2","H gradient green 3":"H渐变绿3","H gradient green 4":"H渐变绿4","H gradient orange 0":"H 渐变橙 0","H gradient orange 1":"H渐变橙1","H gradient orange 2":"H渐变橙2","H gradient orange 3":"H渐变橙3","H gradient yellow 0":"H渐变黄0","H gradient yellow 1":"H渐变黄1","H gradient yellow 2":"H渐变黄2","H gradient yellow 3":"H渐变黄3","HD - Landscape":"高清 - 风景","HD - Portrait":"高清 - 肖像",Height:X0e,Hide:Q0e,"Hide after selection":"选择后隐藏","Hide all views":"隐藏所有视图","Hide attributes":"隐藏属性","Hide menu":"隐藏菜单","Hide palette":"隐藏调色板","Hide panel names":"隐藏面板名称","Hide selected widgets":"隐藏选定的小部件",High:e2e,"High priority":"高优先级","Highest eg. Holiday":"最高例如。假期",Horizontal:t2e,Icon:i2e,"If user not in group":"如果用户不在组中",Ignore:s2e,"Ignored in edit mode":"在编辑模式下被忽略",Image:n2e,Import:o2e,"Import project":"导入项目","Import widgets":"导入小部件","Include widget?":"包括小部件吗?","Initial filter":"初始过滤器",Instance:a2e,"Invalid file type":"文件类型无效","Jump to widget by double click":"双击小部件跳转到小部件","Just use without modification":"直接使用,无需修改","Keep on old place":"继续老地方","Limit background color":"背景颜色","Limit border color":"边框颜色","Limit border style":"边框样式","Limit border width":"边框宽度","Limit only for instances":"仅限实例","Limit screen":"限制屏","Lined paper":"横格纸","Load project file...":"正在加载项目文件...","Load widgets...":"正在加载小部件...","Loading objects...":"正在加载对象...",Lock:r2e,"Lock dragging":"锁定拖动","Manage projects":"管理项目","Manage views":"管理视图","Menu header text":"菜单标题文本","Menu header text color":"菜单标题文字颜色","Menu width":"菜单宽度",Message:l2e,Mo:c2e,Modify:d2e,More:u2e,"Move down":"下移","Move to new place":"搬到新地方","Move up":"提升","Move widget down or press longer to open re-order menu":"向下移动小部件或长按打开重新排序菜单","Move widget up or press longer to open re-order menu":"向上移动小部件或长按打开重新排序菜单",Name:_2e,"Name is not unique":"名称不是唯一的","Name of copy":"副本名称","Narrow panel":"窄面板",Navigation:g2e,"Nest Hub - Landscape":"Nest Hub - 景观","Nest Hub - Portrait":"Nest Hub - 纵向","Nest Hub Max - Landscape":"Nest Hub Max - 风景","Nest Hub Max - Portrait":"Nest Hub Max - 纵向","New name":"新名字","New view":"新观点",No:h2e,"No background":"无背景",Normal:p2e,OFF:m2e,ON:f2e,Objects:w2e,Ok:b2e,"On/Off":"开关","One parameter":"一个参数","Only for desktop":"仅适用于桌面","Only for groups":"仅适用于团体","Only the admin user can change permissions":"只有管理员用户可以更改权限",Open:v2e,"Open all":"展开全部","Open it?":"打开它?","Open runtime in new window":"在新窗口中打开运行时","Open widgeteria":"打开widderia",Options:y2e,Order:j2e,Orientation:x2e,Palette:$2e,Paste:S2e,Percent:k2e,Permissions:q2e,"Pixel 5 - Landscape":"像素 5 - 横向","Pixel 5 - Portrait":"像素 5 - 纵向",Priority:C2e,'Project "%s" does not exist':"项目“%s”不存在",'Project "%s" was successfully imported':"项目“%s”已成功导入","Project already exists":"项目已经存在","Project name":"项目名","Project settings":"项目设置","Project was updated":"项目已更新","Project was updated by another browser instance. Do you want to reload it?":"项目已由另一个浏览器实例更新。你想重新加载它吗?",Projects:P2e,"Radial blue":"径向蓝色",Read:D2e,"Read = Runtime access":"读取 = 运行时访问","Read about currentColor in SVG":"了解 SVG 中的 currentColor","Rebuild HTML pages":"Rebuild HTML pages","Rebuild of HTML pages was started":"Rebuild of HTML pages was started","Received user command: %s":"收到用户命令:%s","Reconnect interval":"重新连接间隔",Redo:T2e,"Reload all browsers if project changed":"如果项目更改,请重新加载所有浏览器","Reload all runtimes":"重新加载所有运行时","Reload if sleep longer than":"如果睡眠时间超过","Reload now":"立即重新加载",Reloading:M2e,Rename:z2e,'Rename folder "%s"':"重命名文件夹“%s”",'Rename project "%s"':"重命名项目“%s”","Rename view":"重命名视图",'Rename view "%s"':"重命名视图“%s”","Render always":"始终渲染","Reset all intervals to following value:":"将所有间隔重置为以下值:",Resolution:I2e,"Responsive settings":"响应式设置","Row gap":"行间隙",Sa:H2e,"Samsung Galaxy A51/71 - Landscape":"三星 Galaxy A51/71 - 横向","Samsung Galaxy A51/71 - Portrait":"三星 Galaxy A51/71 - 人像","Samsung Galaxy S20 Ultra - Landscape":"三星 Galaxy S20 Ultra - 横向","Samsung Galaxy S20 Ultra - Portrait":"三星 Galaxy S20 Ultra - 人像","Samsung Galaxy S8+ - Landscape":"三星 Galaxy S8+ - 横向","Samsung Galaxy S8+ - Portrait":"三星 Galaxy S8+ - 人像",Save:A2e,Scripts:O2e,Search:L2e,Select:W2e,"Select all":"全选","Select object ID":"选择对象 ID","Select or create profile in left menu":"在左侧菜单中选择或创建配置文件","Select project":"选择项目","Select vis-2 project":"选择“vis-2”项目","Send to back":"发回","Sent to back":"送回",Set:"放","Set all periods to one value":"将所有期间设置为一个值","Set widgets filter for edit mode":"在编辑模式下隐藏小部件(具有过滤键)",Settings:R2e,"Should it be moved to new place?":"是否应该搬到新地方?",Show:N2e,"Show all views":"显示所有视图","Show app bar":"展示","Show background of button":"显示按钮的背景","Show navigation":"显示导航","Show only selected widgets":"仅显示选定的小部件","Show only toolbar on the top and hide menu itself":"Show only toolbar on the top and hide menu itself","Show palette":"Show palette","Show this attribute by all views":"通过所有视图显示此属性","Show view":"显示视图","Specify filter to see more icons":"指定过滤器以查看更多图标","States Debounce Time (millis)":"状态去抖时间(毫秒)",Style:E2e,"Style of menu button only when the menu is hidden":"Style of menu button only when the menu is hidden",Su:F2e,"Surface Duo - Landscape":"Surface Duo - 风景","Surface Duo - Portrait":"Surface Duo - 纵向","Surface Pro 7 - Landscape":"Surface Pro 7 - 横向","Surface Pro 7 - Portrait":"Surface Pro 7 - 纵向","Switch to group edit mode by double click":"双击小部件切换到组编辑模式",Tabs:V2e,Temperature:B2e,"Text color":"文字颜色","Text color if selected":"文本颜色(如果选择)","Text edit":"文本编辑",Th:U2e,Theme:Y2e,"This view will be shown only to defined groups":"此视图将仅显示给定义的组",'This widget is already used in "%s"':"该小部件已在“%s”中使用",Title:G2e,"To use it, define by some widget the filter key":"要使用它,请通过某些小部件定义过滤器键","Toggle runtime":"切换运行时","Toggle widget hint (dark)":"切换小部件提示(深色)","Toggle widget hint (hide)":"切换小部件提示(隐藏)","Toggle widget hint (light)":"切换小部件提示(灯光)",Tu:J2e,Type:K2e,Undo:Z2e,Ungroup:X2e,Uninstall:Q2e,'Unknown widget type "%s"':"未知的小部件类型“%s”",Unlock:eqe,Unselect:tqe,Update:iqe,"Usage of widget %s":"小部件 %s 的使用","Use background":"使用背景","Use field as binding":"使用字段作为绑定","User defined":"用户自定义",Value:sqe,Vertical:nqe,View:oqe,"View not defined":"查看未定义",We:aqe,Weekend:rqe,Widget:lqe,"Widget CSS":"小部件 CSS","Widget JS":"小部件JS","Widget was deleted in widgeteria":"widget 已在 widgeteria 中删除",Widgets:cqe,Width:dqe,"Width x height (px)":"宽度 x 高度(像素)",Write:uqe,"Write = Edit mode access":"写入 = 编辑模式访问",Writer:_qe,"Wrong password":"密码错误",Yes:gqe,"You can open dialog with following script:":"您可以使用以下脚本打开对话框:","You can provide here the state that controls the activation of this profile":"您可以在此处提供控制此配置文件启用的状态",__marketplace:hqe,ace_All:pqe,"ace_CaseSensitive Search":"区分大小写搜索","ace_RegExp Search":"正则表达式搜索","ace_Search In Selection":"在选择中搜索","ace_Search for":"搜索","ace_Toggle Replace mode":"切换替换模式","ace_Whole Word Search":"全词搜索",alt_false:mqe,alt_true:fqe,anonymize:wqe,apply_to_all:bqe,attr_none:vqe,basic_all_filters:yqe,basic_arrow:jqe,basic_borderColor:xqe,basic_borderRadius:$qe,basic_circle:Sqe,basic_custom:kqe,basic_filter_multiple:qqe,basic_filter_type_dropdown:Cqe,basic_filter_type_horizontal_buttons:Pqe,basic_filter_type_vertical_buttons:Dqe,basic_hexagone:Tqe,basic_line:Mqe,basic_no_all_option:zqe,basic_no_filter:Iqe,basic_no_filter_text:Hqe,basic_node_hide_corner:Aqe,basic_octagone:Oqe,basic_pentagone:Lqe,basic_pin:Wqe,basic_speech2text_continuous:Rqe,basic_speech2text_detected:Nqe,basic_speech2text_en_us:Eqe,basic_speech2text_height:Fqe,basic_speech2text_image_active:Vqe,basic_speech2text_image_inactive:Bqe,basic_speech2text_info_allow:Uqe,basic_speech2text_info_blocked:Yqe,basic_speech2text_info_denied:Gqe,basic_speech2text_info_no_microphone:Jqe,basic_speech2text_info_no_speech:Kqe,basic_speech2text_info_speak_now:Zqe,basic_speech2text_info_start:Xqe,basic_speech2text_info_upgrade:Qqe,basic_speech2text_key_word_color:eCe,basic_speech2text_key_word_color_tooltip:tCe,basic_speech2text_keywords:iCe,basic_speech2text_no_image:sCe,basic_speech2text_no_results:nCe,basic_speech2text_no_text:oCe,basic_speech2text_ru_ru:aCe,basic_speech2text_sent:rCe,basic_speech2text_single:lCe,basic_speech2text_speech_mode:cCe,basic_speech2text_start_stop:dCe,basic_speech2text_started:uCe,basic_speech2text_text_sent_color:_Ce,basic_speech2text_text_sent_color_tooltip:gCe,basic_speech2text_width:hCe,basic_square:pCe,basic_star:mCe,basic_sub_view:fCe,basic_triangle:wCe,block:bCe,color:vCe,color_false:yCe,color_true:jCe,"convert from widgeteria widget":"从 widderia 小部件转换",copy:xCe,css_project:$Ce,custom_icons:SCe,different:kCe,display:qCe,"finish searching":"搜索完成",flex:CCe,flexible:PCe,folder:DCe,"font-family":"字体系列","font-size":"字体大小","font-style":"字体样式","font-variant":"字体变体","font-weight":"字体粗细",group:TCe,group_attrName:MCe,group_attrType:zCe,group_fields:ICe,group_help:HCe,group_icon_false:ACe,group_icon_true:OCe,group_size_hint:LCe,group_text:WCe,help_css_global:RCe,help_css_project:NCe,hide:ECe,"hide code":"隐藏代码",horizontal:FCe,hr:VCe,"iPad Air - Landscape":"iPad Air - 横向","iPad Air - Portrait":"iPad Air - 纵向","iPad Mini - Landscape":"iPad Mini - 横向","iPad Mini - Portrait":"iPad Mini - 纵向","iPad Pro - Landscape":"iPad Pro - 横向","iPad Pro - Portrait":"iPad Pro - 纵向","iPhone 12 Pro - Landscape":"iPhone 12 Pro - 横向","iPhone 12 Pro - Portrait":"iPhone 12 Pro - 纵向","iPhone SE - Landscape":"iPhone SE - 横向","iPhone SE - Portrait":"iPhone SE - 纵向","iPhone XR - Landscape":"iPhone XR - 横向","iPhone XR - Portrait":"iPhone XR - 纵向",icon_size_in_pixels:BCe,icon_upload_hint:UCe,imageHeight_false:YCe,imageHeight_true:GCe,invert_icon_false:JCe,invert_icon_true:KCe,"jqui_Add new value":"增加新价值","jqui_Are you sure?":"你确定吗?","jqui_Bulk edit":"批量编辑",jqui_Close:ZCe,jqui_Example:XCe,"jqui_Generate states":"生成状态","jqui_Generate steps":"生成步骤","jqui_Maximum value":"最大值","jqui_Minimum value":"最小值","jqui_Number settings":"号码设置",jqui_Percents:QCe,"jqui_Replace to":"用。。。来代替","jqui_Select file":"选择图片","jqui_Write state":"写状态",jqui_active_color:ePe,jqui_ampm:tPe,jqui_asDate:iPe,jqui_asFullDate:sPe,jqui_as_string:nPe,jqui_auto:oPe,jqui_binary_control:aPe,jqui_button_binary_control_note:rPe,jqui_button_color:lPe,jqui_button_dialog_close:cPe,jqui_button_input_note:dPe,jqui_button_link:uPe,jqui_button_link_blank:_Pe,jqui_button_link_blank_note:gPe,jqui_button_nav_blank_note:hPe,jqui_button_text:pPe,jqui_buttontext_view:mPe,jqui_clearable:fPe,jqui_color:wPe,jqui_container_button_dialog:bPe,jqui_container_dialog:vPe,jqui_container_icon_dialog:yPe,jqui_dialog_name:jPe,jqui_dialog_set_id_tooltip:xPe,jqui_disableFuture:$Pe,jqui_disablePast:SPe,jqui_displayWeekNumber:kPe,jqui_equal_text_length:qPe,jqui_equal_text_length_tooltip:CPe,jqui_external_dialog:PPe,jqui_external_dialog_tooltip:DPe,jqui_false:TPe,jqui_from_oid:MPe,jqui_from_value:zPe,jqui_generate:IPe,jqui_group_value:HPe,jqui_hide_close_button:APe,jqui_href_tooltip:OPe,jqui_html:LPe,jqui_html_dialog:WPe,jqui_html_external_dialog:RPe,jqui_html_false:NPe,jqui_html_tooltip:EPe,jqui_html_true:FPe,jqui_icon:VPe,jqui_icon_active:BPe,jqui_icon_dialog:UPe,jqui_icon_http_get:YPe,jqui_icon_increment:GPe,jqui_icon_link:JPe,jqui_icon_max:KPe,jqui_icon_state_bool:ZPe,jqui_icon_state_push_button:XPe,jqui_icon_toggle:QPe,jqui_image:eDe,jqui_image_active:tDe,jqui_image_height:iDe,jqui_image_max:sDe,jqui_increment_decrement:nDe,jqui_input:oDe,jqui_input_date:aDe,jqui_input_time:rDe,jqui_input_with_button:lDe,jqui_invert_icon:cDe,jqui_inverted:dDe,jqui_jquery_style:uDe,jqui_max:_De,jqui_min:gDe,jqui_name:hDe,jqui_nav_view:pDe,jqui_navigation_button:mDe,jqui_navigation_icon:fDe,jqui_navigation_password:wDe,jqui_not_equal_length:bDe,jqui_off:vDe,jqui_oid_working:yDe,jqui_on:jDe,jqui_only_icon:xDe,jqui_open:$De,jqui_orientation:SDe,jqui_password:kDe,jqui_password_tooltip:qDe,jqui_push_mode:CDe,jqui_push_mode_tooltip:PDe,jqui_radio_buttons_on_off:DDe,jqui_radio_list:TDe,jqui_radio_steps:MDe,jqui_range:zDe,jqui_read_only:IDe,jqui_repeat_delay:HDe,jqui_repeat_interval:ADe,jqui_select_all_on_focus:ODe,jqui_select_all_on_focus_tooltip:LDe,jqui_select_list:WDe,jqui_set_label:RDe,jqui_set_timeout:NDe,jqui_single:EDe,jqui_slider:FDe,jqui_slider_note:VDe,jqui_slider_vertical:BDe,jqui_state_note:UDe,jqui_states_control:YDe,jqui_stepMinute:GDe,jqui_test:JDe,jqui_text:KDe,jqui_text_active:ZDe,jqui_text_max:XDe,jqui_toggle:QDe,jqui_tooltip:eTe,jqui_true:tTe,jqui_type:iTe,jqui_unit:sTe,jqui_url_group:nTe,jqui_url_in_background:oTe,jqui_url_in_browser:aTe,jqui_url_tooltip:rTe,jqui_value:lTe,jqui_value_label_display:cTe,jqui_variant:dTe,jqui_view_group:uTe,jqui_wideFormat:_Te,jqui_widgetTitle:gTe,jqui_with_enter_button:hTe,jqui_write_state_note:pTe,jqui_write_value:mTe,"letter-spacing":"字母间距","line-height":"线高",material_icons_baseline:fTe,"material_icons_knx-uf":"knx-uf",material_icons_outline:wTe,material_icons_result:bTe,material_icons_round:vTe,material_icons_sharp:yTe,material_icons_twotone:jTe,material_icons_upload:xTe,"multi-views":"在视图中显示",never:$Te,no_reload:STe,none:kTe,normal:qTe,"not defined":"没有定义的","not-specified":"没有定义的",optional:CTe,order_help:PTe,orientation:DTe,profile:TTe,"qui_Bool SVG":"布尔SVG",reload:MTe,"search text":"搜索文字",set_basic:zTe,"signals-color":"颜色","signals-count":"信号数量","signals-smallIcon-0":"小图标 [0]","signals-smallIcon-1":"小图标 [1]","signals-smallIcon-2":"小图标 [3]","signals-text":"文本或模板","signals-text-0":"文字 [0]","signals-text-1":"文本[1]","signals-text-2":"文字[2]","signals-text-tooltip":"您可以使用 %s 在文本中显示当前值",sub_view_tooltip:ITe,"text-shadow":"文字阴影",text_false:HTe,text_true:ATe,"to version":"版本",value_string:OTe,version:LTe,vertical:WTe,"vis-2-widgets-basic-autoSetDelay":"自动写入延迟","vis-2-widgets-basic-input_value":"输入值","vis-2-widgets-basic-noStyle":"没有风格",visResizable:RTe,vis_2_widgets_basic_cannot_recursive:NTe,vis_2_widgets_basic_contains_view:ETe,vis_2_widgets_basic_view_in_widget:FTe,vis_2_widgets_basic_view_not_defined:VTe,vis_2_widgets_swipe_hide_indication_label:BTe,vis_2_widgets_swipe_threshold_label:UTe,vis_2_widgets_widgets_swipe_label:YTe,vis_2_widgets_widgets_tabs_color:GTe,vis_2_widgets_widgets_tabs_group_tab:JTe,vis_2_widgets_widgets_tabs_label:KTe,vis_2_widgets_widgets_tabs_show_tabs:ZTe,vis_2_widgets_widgets_tabs_tab_icon:XTe,vis_2_widgets_widgets_tabs_tab_icon_color:QTe,vis_2_widgets_widgets_tabs_tab_icon_size:eMe,vis_2_widgets_widgets_tabs_tab_image:tMe,vis_2_widgets_widgets_tabs_tab_overflow_x:iMe,vis_2_widgets_widgets_tabs_tab_overflow_y:sMe,vis_2_widgets_widgets_tabs_tab_title:nMe,vis_2_widgets_widgets_tabs_tab_view:oMe,vis_2_widgets_widgets_tabs_variant:aMe,vis_2_widgets_widgets_tabs_variant_centered:rMe,vis_2_widgets_widgets_tabs_variant_default:lMe,vis_2_widgets_widgets_tabs_variant_full_width:cMe,vis_2_widgets_widgets_tabs_vertical:dMe,welcome_message:uMe,"word-spacing":"字间距"},gMe={editModeComponentStyle:{zIndex:1002}};class et extends w.GenericApp{static WIDGETS_LOADING_STEP_NOT_STARTED=0;static WIDGETS_LOADING_STEP_HTML_LOADED=1;static WIDGETS_LOADING_STEP_ALL_LOADED=2;alert;adapterId;checkTimeout;resolutionTimer;lastProjectJSONfile;subscribedProject;changeTimer;needRestart;lastUploadedState;checkForUpdates;getNewWidgetId;getNewGroupId;changeProject;setSelectedWidgets;setSelectedGroup;onWidgetsChanged;registerCallback;onIgnoreMouseEvents;askAboutInclude;showLegacyFileSelector;initState;setLoadingText;constructor(t){const i={...t};i.translations={en:E2,de:Wz,ru:AR,pt:z3,nl:DG,fr:qee,it:$re,es:yhe,pl:wye,uk:p0e,"zh-cn":_Me},i.Connection=w.LegacyConnection,window.disableDataReporting||(i.sentryDSN=window.sentryDSN),window.location.port==="3000"&&(i.socket={port:"8082"}),window.socketUrl&&window.socketUrl.startsWith(":")&&(window.socketUrl=`${window.location.protocol}//${window.location.hostname}${window.socketUrl}`),i.instance=window.visAdapterInstance,super(t,i),this.socket.setStateToIgnore("nothing_selected"),this.alert=window.alert,window.alert=s=>{s!=null&&s.toString().toLowerCase().includes("error")?(console.error(s),this.showAlert(s.toString(),"error")):(console.log(s),this.showAlert(s.toString(),"info"))},this.adapterId=`${this.adapterName}.0`,Ng(this.setWidgetsLoadingProgress)}createTheme(t){return Eg(w.Utils.getThemeName(t))}setWidgetsLoadingProgress;setStateAsync(t){return new Promise(i=>{this.setState(t,()=>i())})}componentDidMount(){super.componentDidMount();const t={alert:!1,alertType:"info",alertMessage:"",runtime:!0,projectName:"main",selectedWidgets:[],editMode:!1,widgetsLoaded:et.WIDGETS_LOADING_STEP_NOT_STARTED,fonts:[],visCommonCss:null,visUserCss:null,showProjectsDialog:!1,showNewProjectDialog:!1,showImportDialogDialog:!1,newProjectName:"",projects:null,projectDoesNotExist:!1};this.initState&&this.initState(t),this.setState(t),window.addEventListener("hashchange",this.onHashChange,!1),this.state.runtime||(window.addEventListener("orientationchange",this.orientationChange,!1),window.addEventListener("resize",this.orientationChange,!1))}componentWillUnmount(){super.componentWillUnmount(),window.removeEventListener("hashchange",this.onHashChange,!1),this.checkTimeout&&(clearTimeout(this.checkTimeout),this.checkTimeout=null),this.resolutionTimer&&(clearTimeout(this.resolutionTimer),this.resolutionTimer=null),this.state.runtime||(window.removeEventListener("orientationchange",this.orientationChange,!1),window.removeEventListener("resize",this.orientationChange,!1)),window.alert=this.alert}onHashChange=()=>{const t=Ae.getCurrentPath();this.changeView(t.view).catch(i=>console.error(`Cannot change view: ${i}`))};onProjectChange=(t,i)=>{i.endsWith(".json")&&(this.checkTimeout&&clearTimeout(this.checkTimeout),this.state.runtime?this.checkTimeout=setTimeout(()=>{this.checkTimeout=null,this.loadProject(this.state.projectName)},500):i.endsWith(`${this.state.projectName}/vis-views.json`)&&(this.checkTimeout=setTimeout(()=>{this.checkTimeout=null,yi(this.socket,this.adapterId,i).then(s=>{try{const n=JSON.parse(s.file||s).___settings.ts;if(n===q.getState().visProject.___settings.ts||parseInt(n.split(".")[0],10)<parseInt(q.getState().visProject.___settings.ts.split(".")[0],10))return}catch(n){console.warn(`Cannot parse project file "${i}": ${n}`)}this.setState({showProjectUpdateDialog:!0})})},500)))};fixProject(t){t.___settings||={},t.___settings.folders||=[],t.___settings.openedViews||=[],Object.keys(t).forEach(i=>{var s;if(i==="___settings"){(s=t.___settings.marketplace)==null||s.forEach(n=>{var a;(a=n.widget)==null||a.forEach(c=>{c.set&&(c.widgetSet=c.set,delete c.set)})});return}if(!t[i]){delete t[i];return}t[i].settings||={},t[i].settings.style||={},t[i].widgets||={},t[i].widgets&&Object.keys(t[i].widgets).forEach(n=>{const a=t[i].widgets[n];if(!a){delete t[i].widgets[n];return}if(a.data||={},a.style||={},a.data.members&&!Array.isArray(a.data.members)&&(a.data.members=[]),delete a.style["box-sizing"],!a.data.bindings&&!Array.isArray(a.data.bindings)&&(a.data.bindings=[],Object.keys(a.data).forEach(c=>{if(c==="bindings"||!a.data[c]||c.startsWith("g_")||typeof a.data[c]!="string")return;kn(a.data[c])&&a.data.bindings.push(c)})),!a.style.bindings&&!Array.isArray(a.style.bindings)&&(a.style.bindings=[],Object.keys(a.style).forEach(c=>{if(c==="bindings"||!a.style[c]||c.startsWith("g_")||typeof a.data[c]!="string")return;kn(a.style[c].toString())&&a.style.bindings.push(c)})),a.data.members&&a.data.members.forEach((c,l)=>a.data.members[l]=c.replace(/\s/g,"_")),n.includes(" ")){const c=n.replace(/\s/g,"_");delete t[i].widgets[n],t[i].widgets[c]=a}if(!this.state.runtime&&this.getNewWidgetId&&Object.keys(t).find(c=>c!==i&&t[c].widgets&&t[c].widgets[n])){const c=n[0]==="g"?this.getNewGroupId(t):this.getNewWidgetId(t);console.log(`Rename widget ${n} to ${c}`),delete t[i].widgets[n],t[i].widgets[c]=a}if(a.tpl==="_tplGroup"&&a.data.attrCount!==void 0){a.data.members||=[];for(let c=1;c<=a.data.attrCount;c++){const l=a.data[`attrName${c}`],u=a.data[`attrType${c}`];a.data[`attrName_groupAttr${c}`]=l||`groupAttr${c}`,a.data[`attrType_groupAttr${c}`]=u||"",delete a.data[`attrName${c}`],delete a.data[`attrType${c}`]}delete a.data.attrCount}})})}static syncMultipleWidgets(t){t||=q.getState().visProject,Object.keys(t).forEach(i=>{if(i==="___settings")return;const s=t[i];Object.keys(s.widgets).forEach(a=>{const c=s.widgets[a];c.data&&c.data["multi-views"]&&c.data["multi-views"].split(",").forEach(u=>{var _;if(u!==i&&t[u]&&(t[u].widgets[`${i}_${a}`]=JSON.parse(JSON.stringify(c)),delete t[u].widgets[`${i}_${a}`].data["multi-views"],c.tpl==="_tplGroup"&&((_=c.data.members)!=null&&_.length))){const m=t[u].widgets[`${i}_${a}`];m.data.members.forEach((p,y)=>{const b=`${i}_${p}`;t[u].widgets[b]=JSON.parse(JSON.stringify(s.widgets[p])),delete t[u].widgets[b].data["multi-views"],m.data.members[y]=b,t[u].widgets[b].data.members&&(t[u].widgets[b].data.members=[])})}}),Wn(t,i,a).length?c.usedInWidget=!0:c.usedInWidget&&delete c.usedInWidget})})}static findViewWithNearestResolution(t,i){const s=window.innerWidth,n=window.innerHeight;let a=null;const c=[];let l=1e4;t&&Object.keys(t).forEach(u=>{var _;u!=="___settings"&&(_=t[u].settings)!=null&&_.useAsDefault&&Math.abs(t[u].settings.sizex-s)/t[u].settings.sizex<.2&&c.push(u)});for(let u=0;u<c.length;u++)Math.abs(t[c[u]].settings.sizey-n)<l&&(a=c[u],l=Math.abs(parseInt(t[c[u]].settings.sizey.toString(),10)-n));if(!a){const u=s/n;l=1e4,t&&Object.keys(t).forEach(_=>{var m;_!=="___settings"&&(m=t[_].settings)!=null&&m.useAsDefault&&parseInt(t[_].settings.sizey.toString(),10)&&Math.abs(u-parseInt(t[_].settings.sizex.toString(),10)/parseInt(t[_].settings.sizey.toString(),10))<l&&(a=_,l=Math.abs(u-parseInt(t[_].settings.sizex.toString(),10)/parseInt(t[_].settings.sizey.toString(),10)))})}return!a&&i&&(a=t&&Object.keys(t).find(u=>{var _;return!u.startsWith("__")&&((_=t[u].settings)==null?void 0:_.useAsDefault)})),!a&&i?t&&Object.keys(t).find(u=>!u.startsWith("__"))||"":a}loadProject=async t=>{var l,u,_;let i;(l=this.setLoadingText)==null||l.call(this,"Load project file...");try{const m=await yi(this.socket,this.adapterId,`${t}/vis-views.json`);typeof m=="object"?i=m.file:i=m}catch(m){console.warn(`Cannot read project file "${t}/vis-views.json": ${m}`),i="{}"}if((u=this.setLoadingText)==null||u.call(this,null),!i||i==="{}"){const m=await this.socket.getObject(`system.adapter.${this.adapterName}.${this.instance}`);this.state.runtime&&m.native.doNotShowProjectDialog?this.setState({projectDoesNotExist:!0}):(this.state.projects||await this.refreshProjects(),this.setState({showProjectsDialog:!0}));return}i=i.toString(),this.state.runtime||(this.lastProjectJSONfile=i);let s;try{s=JSON.parse(i)}catch{window.alert("Cannot parse project file!"),s={"Cannot parse project file!":{widgets:{}}}}this.fixProject(s);let a=Ae.getCurrentPath().view;(!a||!s[a])&&(this.state.runtime?a=et.findViewWithNearestResolution(s,!0):(Object.keys(s).includes(window.localStorage.getItem("selectedView"))&&(a=window.localStorage.getItem("selectedView")),(!a||!s[a])&&(a=Object.keys(s).find(m=>!m.startsWith("__"))||"")));const c=s.___settings.openedViews.length;for(let m=c-1;m>=0;m--)s[s.___settings.openedViews[m]]||s.___settings.openedViews.splice(m,1);if(!s.___settings.openedViews.length){const m=Object.keys(s).find(p=>p!=="___settings");m&&(s.___settings.openedViews[0]=m)}s[a]?s.___settings.openedViews&&!s.___settings.openedViews.includes(a)&&!this.state.runtime&&(a=s.___settings.openedViews[0],window.localStorage.setItem("selectedView",a)):(a=s.___settings.openedViews[0]||"",window.localStorage.setItem("selectedView",a)),dl(s.___settings.title,s.___settings.favicon,{projectName:t,instance:this.instance,adapterName:this.adapterName,themeType:this.state.themeType}),window.localStorage.setItem("projectName",t),this.subscribedProject&&(this.subscribedProject!==t||s.___settings.reloadOnEdit===!1)&&(this.subscribedProject=null,this.socket.unsubscribeFiles(this.adapterId,`${this.subscribedProject}/*`,this.onProjectChange)),et.syncMultipleWidgets(s),this.state.runtime?(s.___settings.reloadOnEdit!==!1&&(this.subscribedProject=t,await this.socket.subscribeFiles(this.adapterId,`${t}/*`,this.onProjectChange)),window.document.body.style.overflow=((_=s.___settings)==null?void 0:_.bodyOverflow)||"auto"):(this.subscribedProject=t,await this.socket.subscribeFiles(this.adapterId,`${t}/*`,this.onProjectChange)),q.dispatch(ul(s)),await this.setStateAsync({visCommonCss:null,visUserCss:null,history:[s],historyCursor:0,projectName:t}),await this.changeView(a),!this.state.runtime&&this.checkForUpdates&&await this.checkForUpdates()};orientationChange=()=>{this.resolutionTimer&&clearTimeout(this.resolutionTimer),this.resolutionTimer=setTimeout(async()=>{this.resolutionTimer=null;const t=et.findViewWithNearestResolution(q.getState().visProject);t&&t!==this.state.selectedView&&await this.changeView(t)},200)};refreshProjects=async t=>{let i;try{i=await this.socket.readDir(this.adapterId,"")}catch{i=[]}await this.setStateAsync({projects:i.filter(s=>s.isDir).map(s=>s.file),createFirstProjectDialog:!i.length}),t&&await this.loadProject(this.state.projectName)};onVisChanged(){this.setState({messageDialog:{text:w.I18n.t("Detected new version of vis files. Reloading in 2 seconds..."),title:w.I18n.t("Reloading"),ok:w.I18n.t("Reload now"),callback:()=>{!this.state.runtime&&this.changeTimer?this.needRestart=!0:setTimeout(()=>window.location.reload(),2e3)}}}),!this.state.runtime&&this.changeTimer?this.needRestart=!0:setTimeout(()=>window.location.reload(),2e3)}onWidgetSetsChanged=(t,i)=>{i&&this.lastUploadedState&&i.val!==this.lastUploadedState&&(this.lastUploadedState=i.val,this.onVisChanged())};async onConnectionReady(){this.state.widgetsLoaded===et.WIDGETS_LOADING_STEP_HTML_LOADED&&(await Ro.collectRxInformation(this.socket,q.getState().visProject,this.changeProject),await this.setStateAsync({widgetsLoaded:et.WIDGETS_LOADING_STEP_ALL_LOADED}));const t=await this.socket.getCurrentUser(),i=await this.socket.getObject(`system.user.${t||"admin"}`),s=typeof i.common.name=="object"?i.common.name[w.I18n.getLanguage()]||i.common.name.en:i.common.name;q.dispatch(Fg(s));const n=await this.socket.getGroups(),a={};n.forEach(_=>a[_._id]=_),await this.setStateAsync({currentUser:i,userGroups:a,selectedView:"",splitSizes:window.localStorage.getItem("Vis.splitSizes")?JSON.parse(window.localStorage.getItem("Vis.splitSizes")):[20,60,20]}),await this.socket.subscribeState(`${this.adapterName}.${this.instance}.info.uploaded`,this.onWidgetSetsChanged);const c=await this.socket.getState(`${this.adapterName}.${this.instance}.info.uploaded`);c&&c.val!==this.lastUploadedState&&(this.lastUploadedState?this.onVisChanged():this.lastUploadedState=c.val);let l=window.location.search.replace("?","");l&&(l=decodeURIComponent(l.split("&")[0]).split("/")[0],l.includes("=")&&(l="")),l||=window.localStorage.getItem("projectName")||"main";let u=this.state.projects;if(this.state.runtime||(await this.refreshProjects(),u=null),!u||u.includes(l))await this.loadProject(l);else{const _=this.state.runtime&&await this.socket.getObject(`system.adapter.${this.adapterName}.${this.instance}`);this.state.runtime&&_.native.doNotShowProjectDialog?this.setState({projectDoesNotExist:!0}):(u||await this.refreshProjects(),this.setState({showProjectsDialog:!0}))}}changeView=async t=>{var c,l,u,_;if(t===this.state.selectedView){if(this.state.runtime||!this.state.editMode){const m=Ae.getCurrentPath(),p=Ae.buildPath(m.view,m.path);window.vis.lastChangedView=this.state.projectName?`${this.state.projectName}/${p.replace(/^#/,"")}`:p.replace(/^#/,""),window.vis.conn.sendCommand(window.vis.instance,"changedView",window.vis.lastChangedView)}return}const i={selectedView:t};let s=JSON.parse(window.localStorage.getItem(`${this.state.projectName}.${t}.widgets`)||"[]")||[];for(let m=s.length-1;m>=0;m--)(l=(c=q.getState().visProject[t])==null?void 0:c.widgets)!=null&&l[s[m]]||(s=s.splice(m,1));if(JSON.stringify(i.selectedWidgets)!==JSON.stringify(s)&&(i.selectedWidgets=s),i.alignType!==null&&(i.alignType=null),i.alignIndex!==0&&(i.alignIndex=0),((u=i.alignValues)==null?void 0:u.length)>0&&(i.alignValues=[]),!this.state.runtime&&!q.getState().visProject.___settings.openedViews.includes(t)){const m=JSON.parse(JSON.stringify(q.getState().visProject));m.___settings.openedViews.push(t),await this.changeProject(m,!0)}if((this.state.runtime||!this.state.editMode)&&window.vis){const m=Ae.getCurrentPath(),p=Ae.buildPath(m.view,m.path);window.vis.lastChangedView=this.state.projectName?`${this.state.projectName}/${p.replace(/^#/,"")}`:p.replace(/^#/,""),window.vis.conn.sendCommand(window.vis.instance,"changedView",window.vis.lastChangedView),(_=window.jQuery)==null||_.call(window,window).trigger("viewChanged",t)}this.state.selectedGroup&&(i.selectedGroup=null),window.localStorage.setItem("selectedView",t);const n=Ae.getCurrentPath(),a=Ae.buildPath(t,n.path);window.location.hash!==a&&(window.location.hash=a),await this.setStateAsync(i)};showAlert(t,i){i!=="error"&&i!=="warning"&&i!=="info"&&i!=="success"&&(i="info"),this.setState({alert:!0,alertType:i,alertMessage:t})}renderAlertDialog=()=>o.jsx(f.Snackbar,{style:this.state.alertType==="error"?{backgroundColor:"#f44336"}:this.state.alertType==="success"?{backgroundColor:"#4caf50"}:void 0,open:this.state.alert,autoHideDuration:6e3,onClick:()=>this.setState({alert:!1}),onClose:(t,i)=>{i!=="clickaway"&&this.setState({alert:!1})},message:this.state.alertMessage},"__snackbar_134__");async onWidgetsLoaded(){let t=et.WIDGETS_LOADING_STEP_HTML_LOADED;this.socket.isConnected()&&(await Ro.collectRxInformation(this.socket,q.getState().visProject,this.changeProject),t=et.WIDGETS_LOADING_STEP_ALL_LOADED),this.setState({widgetsLoaded:t})}addProject=async(t,i)=>{try{const s={___settings:{folders:[],openedViews:[]},default:{name:"Default",settings:{style:{}},widgets:{},activeWidgets:{}}};await this.socket.writeFile64(this.adapterId,`${t}/vis-views.json`,JSON.stringify(s)),await this.socket.writeFile64(this.adapterId,`${t}/vis-user.css`,""),i||(await this.refreshProjects(),await this.loadProject(t),this.setState({projectsDialog:!1}))}catch(s){window.alert(`Cannot create project: ${s.toString()}`)}};showCreateNewProjectDialog(){return this.state.showNewProjectDialog?o.jsxs(f.Dialog,{open:!0,onClose:()=>this.setState({showNewProjectDialog:!1}),children:[o.jsx(f.DialogTitle,{children:w.I18n.t("Create new project")}),o.jsx(f.DialogContent,{children:o.jsx(f.TextField,{variant:"standard",label:w.I18n.t("Project name"),autoFocus:!0,fullWidth:!0,onKeyDown:async t=>{t.key==="Enter"&&this.state.newProjectName&&!this.state.projects.includes(this.state.newProjectName)&&(await this.addProject(this.state.newProjectName),window.location.href=`edit.html?${this.state.newProjectName}`)},value:this.state.newProjectName,onChange:t=>this.setState({newProjectName:t.target.value}),margin:"dense"})}),o.jsxs(f.DialogActions,{children:[o.jsx(f.Button,{id:"create_new_project_ok_buton",variant:"contained",color:"primary",disabled:!this.state.newProjectName||this.state.projects.includes(this.state.newProjectName),onClick:async()=>{await this.addProject(this.state.newProjectName,!0),window.location.href=`edit.html?${this.state.newProjectName}`},startIcon:o.jsx(S.Add,{}),children:w.I18n.t("Create")}),o.jsx(f.Button,{variant:"contained",color:"grey",onClick:()=>this.setState({showNewProjectDialog:!1}),startIcon:o.jsx(S.Close,{}),children:w.I18n.t("Cancel")})]})]}):null}showSmallProjectsDialog(){return o.jsxs(f.Dialog,{open:!0,maxWidth:"sm",onClose:()=>{},children:[o.jsxs(f.DialogTitle,{children:[o.jsx("img",{src:this.props.runtime?"./favicon.ico":"./faviconEdit.ico",alt:"vis-2",style:{width:24,marginRight:10,marginTop:4}}),this.state.projects.length?w.I18n.t("Select vis-2 project"):w.I18n.t('Create or import new "vis-2" project')]}),o.jsx(f.DialogContent,{children:this.state.projects?o.jsxs(f.Paper,{children:[this.state.projects.length?null:o.jsx("div",{style:{width:"100%",fontSize:20,padding:10},children:w.I18n.t("welcome_message")}),o.jsxs(f.MenuList,{children:[this.state.projects.map(t=>o.jsxs(f.ListItemButton,{onClick:()=>window.location.href=`?${t}`,children:[o.jsx(f.ListItemIcon,{children:o.jsx(S.FileCopy,{})}),o.jsx(f.ListItemText,{children:t})]},t)),o.jsxs(f.ListItemButton,{id:"create_new_project",onClick:()=>this.setState({showNewProjectDialog:!0,newProjectName:this.state.projects.length?"":"main"}),style:{backgroundColor:"#112233",color:"#ffffff"},children:[o.jsx(f.ListItemIcon,{children:o.jsx(S.Add,{})}),o.jsx(f.ListItemText,{children:w.I18n.t("Create new project")})]}),this.renderImportProjectDialog?o.jsxs(f.ListItemButton,{onClick:()=>this.setState({showImportDialog:!0}),style:{backgroundColor:"#112233",color:"#4b9ed3"},children:[o.jsx(f.ListItemIcon,{children:o.jsx(Si,{fontSize:"small"})}),o.jsx(f.ListItemText,{children:w.I18n.t("Import project")})]}):null]})]}):o.jsx(f.LinearProgress,{})}),this.showCreateNewProjectDialog(),this.renderImportProjectDialog?this.renderImportProjectDialog():null,this.renderAlertDialog()]})}renderProjectDoesNotExist(){return o.jsx("div",{style:{position:"absolute",top:0,left:0,right:0,bottom:0,display:"flex",alignItems:"center",justifyContent:"center",fontSize:36,color:"#982828"},children:w.I18n.t('Project "%s" does not exist',this.state.projectName)})}getVisEngine(){if(!this.state.runtime&&this.state.projectDoesNotExist)return this.renderProjectDoesNotExist();if(!this.state.runtime&&this.state.showProjectsDialog)return this.showSmallProjectsDialog();const{visProject:t,activeUser:i}=q.getState();return!Vg({editMode:this.state.editMode,project:t,user:i})||!cl({editMode:this.state.editMode,project:t,user:i,view:this.state.selectedView})?(console.warn(`User "${i}" has no permissions for ${this.state.editMode?"edit mode":"runtime"} of project "${this.state.projectName}" with view "${this.state.selectedView}"`),this.state.projects?this.showSmallProjectsDialog():(this.refreshProjects().then(()=>{this.setState({showProjectsDialog:!0})}),null)):o.jsx(Ae,{widgetsLoaded:this.state.widgetsLoaded,activeView:this.state.selectedView||"",editMode:!this.state.runtime&&this.state.editMode,runtime:this.state.runtime,socket:this.socket,visCommonCss:this.state.visCommonCss,visUserCss:this.state.visUserCss,lang:this.socket.systemLang,adapterName:this.adapterName,instance:this.instance,selectedWidgets:this.state.selectedWidgets,setSelectedWidgets:this.setSelectedWidgets,onLoaded:()=>this.onWidgetsLoaded(),selectedGroup:this.state.selectedGroup,setSelectedGroup:this.setSelectedGroup,onWidgetsChanged:this.onWidgetsChanged,projectName:this.state.projectName,lockDragging:this.state.lockDragging,disableInteraction:this.state.disableInteraction,widgetHint:this.state.widgetHint,onFontsUpdate:this.state.runtime?null:s=>this.onFontsUpdate(s),registerEditorCallback:this.state.runtime?null:this.registerCallback,themeType:this.state.themeType,themeName:this.state.themeName,theme:this.state.theme,adapterId:this.adapterId,editModeComponentStyle:gMe.editModeComponentStyle,onIgnoreMouseEvents:this.onIgnoreMouseEvents,setLoadingText:this.setLoadingText,onConfirmDialog:(s,n,a,c,l)=>{var u;return(u=this.showConfirmDialog)==null?void 0:u.call(this,{message:s,title:n,icon:a,width:c,callback:l})},onShowCode:(s,n,a)=>{var c;return(c=this.showCodeDialog)==null?void 0:c.call(this,{code:s,title:n,mode:a})},currentUser:this.state.currentUser,userGroups:this.state.userGroups,renderAlertDialog:this.renderAlertDialog,showLegacyFileSelector:this.showLegacyFileSelector,toggleTheme:s=>this.toggleTheme(s),askAboutInclude:this.askAboutInclude,changeProject:this.changeProject},this.state.projectName)}renderLoader(){return window.loadingHideLogo==="true"?null:window.vendorPrefix==="MV"?o.jsx(w.LoaderMV,{themeType:this.state.themeType,backgroundColor:window.loadingBackgroundColor,backgroundImage:window.loadingBackgroundImage}):window.vendorPrefix==="PT"?o.jsx(w.LoaderPT,{themeType:this.state.themeType,backgroundColor:window.loadingBackgroundColor,backgroundImage:window.loadingBackgroundImage}):window.vendorPrefix&&window.vendorPrefix!=="@@vendorPrefix@@"?o.jsx(w.LoaderVendor,{themeType:this.state.themeType,backgroundColor:window.loadingBackgroundColor,backgroundImage:window.loadingBackgroundImage}):o.jsx(w.Loader,{themeType:this.state.themeType,backgroundColor:window.loadingBackgroundColor,backgroundImage:window.loadingBackgroundImage})}render(){return o.jsx(ms.StyledEngineProvider,{injectFirst:!0,children:o.jsxs(ps,{theme:this.state.theme,children:[!this.state.loaded||!q.getState().visProject.___settings?this.renderLoader():this.getVisEngine(),this.state.projectDoesNotExist?this.renderProjectDoesNotExist():null,this.state.showProjectsDialog?this.showSmallProjectsDialog():null]})})}}const hMe=e=>{var s;const t=(s=window.VisMarketplace)==null?void 0:s.default;let i;return e.installWidget&&(i=async n=>{const a=[],c=q.getState().visProject;Object.keys(c).forEach(l=>{if(l!=="___settings"){const u={name:l,widgets:[]};Object.keys(c[l].widgets).forEach(_=>{var p,y;const m=c[l].widgets[_];((p=m.marketplace)==null?void 0:p.widget_id)===n.widget_id&&((y=m.marketplace)==null?void 0:y.version)!==n.version&&u.widgets.push(_)}),u.widgets.length&&a.push(u)}}),a.length?e.updateWidgets(n):await e.installWidget(n.widget_id,n.id),e.onClose()}),o.jsxs(f.Dialog,{open:!0,fullScreen:!0,onClose:e.onClose,PaperProps:{color:"primary"},children:[o.jsx(f.DialogTitle,{children:e.addPage?w.I18n.t("Add new or update existing widget"):w.I18n.t("Browse the widgeteria")}),o.jsx(f.DialogContent,{children:t&&o.jsx(t,{language:w.I18n.getLanguage(),addPage:e.addPage,widget:e.widget,onClose:e.onClose,installWidget:i,installedWidgets:e.installedWidgets,themeName:e.themeName,onAdded:()=>e.onClose()})}),o.jsx(f.DialogActions,{children:o.jsx(f.Button,{onClick:e.onClose,variant:"contained",startIcon:o.jsx(S.Close,{}),children:w.I18n.t("Close")})})]})},ze={block:{overflow:"auto",height:"calc(100vh - 102px)",padding:"0px 8px"},blockNarrow:{height:"calc(100vh - 67px)"},blockVeryNarrow:{height:"calc(100vh - 39px)"},canvas:{height:"calc(100vh - 154px)"},canvasNarrow:{height:"calc(100vh - 119px)"},canvasVeryNarrow:{height:"calc(100vh - 91px)"},app:e=>({backgroundColor:e.palette.background.default,color:e.palette.text.primary}),tabsContainer:{width:"100%",display:"flex",alignItems:"center"},tabButton:{display:"inline-block",lineHeight:"36px",verticalAlign:"top"},groupEditTab:e=>({color:e.palette.mode==="dark"?"#bad700":"#f3bf00"}),tabsName:{whiteSpace:"nowrap",display:"flex",alignItems:"center",textTransform:"none"},viewTabs:e=>({display:"inline-block",...e.classes.viewTabs}),viewTab:e=>({padding:"6px 12px",...e.classes.viewTab}),iconBlink:{animationName:"colorBlink",animationDuration:"1.5s",animationIterationCount:"infinite"},listItemIcon:{width:24,height:24,marginRight:8},loadingText:e=>({position:"absolute",height:50,backgroundColor:e.palette.mode==="dark"?"rgba(0,0,0,0.8)":"rgba(255,255,255,0.8)",color:e.palette.mode==="dark"?"white":"black",width:320,zIndex:2e3,top:50,borderRadius:"10px",left:"calc(50% - 160px)",padding:"8px",display:"flex",alignItems:"center",justifyContent:"center"})},pMe=e=>{const t=D.useRef(),[{CanDrop:i,isOver:s},n]=ta(()=>({accept:["widget"],drop(a,c){t.current&&(a.widgetSet==="__marketplace"?e.addMarketplaceWidget(a.widgetType.id,c.getClientOffset().x-t.current.getBoundingClientRect().x,c.getClientOffset().y-t.current.getBoundingClientRect().y):e.addWidget(a.widgetType.name,c.getClientOffset().x-t.current.getBoundingClientRect().x,c.getClientOffset().y-t.current.getBoundingClientRect().y))},canDrop:()=>e.editMode,collect:a=>({isOver:a.isOver(),CanDrop:a.canDrop()})}),[e.editMode]);return o.jsx("div",{ref:n,style:s&&i?{borderStyle:"dashed",borderRadius:4,borderWidth:1,height:"100%",width:"100%"}:{height:"100%",width:"100%"},children:o.jsx("div",{ref:t,style:{height:"100%",width:"100%"},children:e.children})})};class kt extends et{mainRef;tempProject;visEngineHandlers;savingTimer;historyTimer;onIgnoreMouseEvents=t=>{this.state.ignoreMouseEvents!==t&&setTimeout(()=>this.setState({ignoreMouseEvents:t}),100)};initState=t=>{this.visEngineHandlers={},window.visAddWidget=this.addWidget,this.mainRef=qe.createRef();let i=!1;(window.location.search.includes("runtime")||!window.location.pathname.endsWith("edit.html"))&&(i=!0),(window.location.search.includes("edit")||window.location.port.startsWith("300")&&!window.location.search.includes("runtime"))&&(i=!1),i?window.document.body.style.overflow="visible":window.document.body.style.overflow="hidden",Object.assign(t,{runtime:i,viewsManager:!1,projectsDialog:!1,createFirstProjectDialog:!1,align:{alignType:null,alignIndex:0,alignValues:[]},showCode:window.localStorage.getItem("showCode")==="true",editMode:!0,history:[],historyCursor:0,widgetsClipboard:{type:null,widgets:{}},lockDragging:JSON.parse(window.localStorage.getItem("lockDragging")),disableInteraction:JSON.parse(window.localStorage.getItem("disableInteraction")),toolbarHeight:window.localStorage.getItem("Vis.toolbarForm")||"full",updateWidgetsDialog:!1,deleteWidgetsDialog:!1,messageDialog:null,widgetHint:window.localStorage.getItem("widgetHint")||"light",hidePalette:window.localStorage.getItem("Vis.hidePalette")==="true",hideAttributes:window.localStorage.getItem("Vis.hideAttributes")==="true",loadingProgress:{step:0,total:0},loadingText:null,showCodeDialog:null,confirmDialog:null,showProjectUpdateDialog:!1,ignoreMouseEvents:!1,legacyFileSelector:null,askAboutInclude:null})};componentDidMount(){super.componentDidMount(),window.addEventListener("keydown",this.onKeyDown,!1),window.addEventListener("beforeunload",this.onBeforeUnload,!1)}componentWillUnmount(){this.savingTimer&&clearTimeout(this.savingTimer),this.savingTimer=null,super.componentWillUnmount(),window.removeEventListener("keydown",this.onKeyDown,!1),window.removeEventListener("beforeunload",this.onBeforeUnload,!1)}onBeforeUnload=t=>this.state.needSave?(this.needRestart=!0,t.returnValue=w.I18n.t("Project doesn't saved. Are you sure?"),t.returnValue):null;onKeyDown=async t=>{if(!this.state.editMode)return;const i=t.ctrlKey||t.cmdKey;document.activeElement.tagName==="BODY"&&(i&&t.key==="z"&&this.state.historyCursor!==0?(t.preventDefault(),await this.undo()):i&&t.key==="y"&&this.state.historyCursor!==this.state.history.length-1?(t.preventDefault(),await this.redo()):this.state.selectedWidgets.length?i&&t.key==="c"?(t.preventDefault(),await this.copyWidgets()):i&&t.key==="x"?(t.preventDefault(),await this.cutWidgets()):t.key==="Escape"?(t.preventDefault(),await this.setSelectedWidgets([])):t.key==="Delete"&&(t.preventDefault(),this.deleteWidgets()):i&&t.key==="v"&&Object.keys(this.state.widgetsClipboard.widgets).length?(t.preventDefault(),await this.pasteWidgets()):i&&t.key==="a"&&(t.preventDefault(),this.state.selectedGroup?await this.setSelectedWidgets(Object.keys(q.getState().visProject[this.state.selectedView].widgets).filter(s=>!q.getState().visProject[this.state.selectedView].widgets[s].data.locked&&q.getState().visProject[this.state.selectedView].widgets[s].groupid===this.state.selectedGroup)):await this.setSelectedWidgets(Object.keys(q.getState().visProject[this.state.selectedView].widgets).filter(s=>!q.getState().visProject[this.state.selectedView].widgets[s].data.locked&&!q.getState().visProject[this.state.selectedView].widgets[s].grouped))))};setWidgetsLoadingProgress=(t,i)=>{this.setState({loadingProgress:{step:t,total:i}})};onWidgetSetsChanged=(t,i)=>{i&&this.lastUploadedState&&i.val!==this.lastUploadedState&&(this.lastUploadedState=i.val,this.onVisChanged())};setViewsManager=t=>{!!t!==this.state.viewsManager&&this.setState({viewsManager:!!t})};setProjectsDialog=t=>this.setState({projectsDialog:t});loadSelectedWidgets(t){t=t||this.state.selectedView;const i=JSON.parse(window.localStorage.getItem(`${this.state.projectName}.${t}.widgets`)||"[]")||[];for(let s=i.length-1;s>=0;s--)(!q.getState().visProject[t]||!q.getState().visProject[t].widgets||!q.getState().visProject[t].widgets[i[s]])&&i.splice(s,1);return i}addWidget=async(t,i,s,n,a)=>{const c=ne(q.getState().visProject),l=c[this.state.selectedView].widgets,u=Gi(q.getState().visProject);l[u]={tpl:t,data:{bindings:[]},style:{bindings:[],left:`${i}px`,top:`${s}px`}},this.state.selectedGroup&&(l[u].grouped=!0,l[u].groupid=this.state.selectedGroup,l[this.state.selectedGroup].data.members.push(u));const m=Yi().find(y=>y.name===t);return al(m.params).forEach(y=>{y.fields&&y.fields.forEach(b=>{b.name==="oid"&&(l[u].data.oid="nothing_selected"),b.default!==void 0&&b.default!==null&&(l[u].data[b.name]=b.default,l[u].data[`g_${y.name}`]=!0)})}),m.style&&(Object.assign(l[u].style,m.style),l[u].style.position==="relative"&&(l[u].style.width="100%")),n&&Object.assign(l[u].data,n),a&&Object.assign(l[u].style,a),l[u].widgetSet=m.set,m.init&&window.vis&&window.vis.binds[m.set]&&window.vis.binds[m.set][m.init]&&window.vis.binds[m.set][m.init](t,l[u].data),await this.changeProject(c),await this.setSelectedWidgets([u]),u};deleteWidgets=()=>this.setState({deleteWidgetsDialog:!0});updateWidgets=t=>this.setState({updateWidgetsDialog:t});updateWidgetsAction=async(t,i)=>{await this.installWidget(t.widget_id,t.id);const s=ne(q.getState().visProject);i.forEach(n=>{n.widgets.forEach(a=>{const c=s[n.name].widgets[a];c.tpl==="_tplGroup"&&c.data.members.forEach(l=>{delete s[n.name].widgets[l]}),delete s[n.name].widgets[a],kt.importMarketplaceWidget(s,n.name,JSON.parse(JSON.stringify(t.widget)),t.id,null,null,a,JSON.parse(JSON.stringify(c.data)),JSON.parse(JSON.stringify(c.style)))})}),await this.changeProject(s)};deleteWidgetsAction=async()=>{var s;const t=ne(q.getState().visProject),i=t[this.state.selectedView].widgets;for(const n of this.state.selectedWidgets){if(i[n].tpl==="_tplGroup"&&i[n].data.members.forEach(a=>{delete i[a]}),i[n].usedInWidget&&Wn(t,null,n).forEach(a=>{console.log(`Widget removed from ${a.wid}, attribute ${a.attr}`),t[a.view].widgets[a.wid].data[a.attr]=""}),i[n].groupid){const a=i[i[n].groupid];(s=a==null?void 0:a.data)!=null&&s.members&&a.data.members.splice(a.data.members.indexOf(n),1)}delete i[n]}await this.setSelectedWidgets([]),await this.changeProject(t)};lockWidgets=async t=>{const i=ne(q.getState().visProject),s=i[this.state.selectedView].widgets;this.state.selectedWidgets.forEach(n=>s[n].data.locked=t==="lock"),await this.changeProject(i)};toggleWidgetHint=()=>{let t;this.state.widgetHint==="light"?t="dark":this.state.widgetHint==="dark"?t="hide":this.state.widgetHint==="hide"&&(t="light"),this.setState({widgetHint:t}),window.localStorage.setItem("widgetHint",t)};cutWidgets=async()=>{await this.cutCopyWidgets("cut")};copyWidgets=async()=>{await this.cutCopyWidgets("copy")};cutCopyWidgets=async t=>{const i={},s={},n=ne(q.getState().visProject),{visProject:a}=ne(q.getState());this.state.selectedWidgets.forEach(c=>{i[c]=a[this.state.selectedView].widgets[c];const l=i[c];if(ri(l))for(const u of l.data.members)s[u]=a[this.state.selectedView].widgets[u];n[this.state.selectedView]&&n[this.state.selectedView].widgets[c].groupid&&(delete i[c].groupid,delete i[c].grouped)}),await this.setStateAsync({widgetsClipboard:{type:t,view:this.state.selectedView,widgets:i,groupMembers:s}}),t==="cut"&&await this.deleteWidgetsAction()};pasteWidgets=async()=>{const t=ne(q.getState().visProject),i=t[this.state.selectedView].widgets,s=[];let n=0,a=0;for(const c of Object.keys(this.state.widgetsClipboard.widgets)){const l=ne(this.state.widgetsClipboard.widgets[c]);if(this.state.widgetsClipboard.type==="copy"&&this.state.selectedView===this.state.widgetsClipboard.view){const _=kt.getWidgetRelativeRect(c);l.style=this.pxToPercent(l.style,{left:`${((_==null?void 0:_.left)??0)+10}px`,top:`${((_==null?void 0:_.top)??0)+10}px`})}let u;ri(l)?(u=qn({group:l,widgets:i,offset:a,groupMembers:this.state.widgetsClipboard.groupMembers,project:q.getState().visProject}),a++):(u=yr({widget:l,offset:n,project:q.getState().visProject,selectedGroup:this.state.selectedGroup,widgets:i}),n++),s.push(u)}await this.setSelectedWidgets([]),await this.changeProject(t),await this.setSelectedWidgets(s)};cloneWidgets=async()=>{const t=ne(q.getState().visProject),i=t[this.state.selectedView].widgets,s=[];this.state.selectedWidgets.forEach(n=>{const a=ne(i[n]),c=kt.getWidgetRelativeRect(n);if(a.style=this.pxToPercent(a.style,{left:c.left+10,top:c.top+10}),ri(a))qn({group:a,widgets:i,groupMembers:i,project:q.getState().visProject});else{const l=yr({widget:a,project:q.getState().visProject,selectedGroup:this.state.selectedGroup,widgets:i});s.push(l)}}),await this.setSelectedWidgets([]),await this.changeProject(t),await this.setSelectedWidgets(s)};alignWidgets=t=>{const i=ne(q.getState().visProject),s=i[this.state.selectedView].widgets,n={left:0,top:0,right:0,bottom:0},a=[];if(this.state.selectedWidgets.forEach(c=>{const l=kt.getWidgetRelativeRect(c);a.push({id:c,widget:s[c],coordinate:l})}),t==="left")a.forEach(c=>{(n.left===0||c.coordinate.left<n.left)&&(n.left=c.coordinate.left)}),a.forEach(c=>c.widget.style.left=`${n.left}px`);else if(t==="right")a.forEach(c=>{(n.right===0||c.coordinate.right>n.right)&&(n.right=c.coordinate.right)}),a.forEach(c=>c.widget.style.left=`${n.right-c.coordinate.width}px`);else if(t==="top")a.forEach(c=>{(n.top===0||c.coordinate.top<n.top)&&(n.top=c.coordinate.top)}),a.forEach(c=>c.widget.style.top=`${n.top}px`);else if(t==="bottom")a.forEach(c=>{(n.bottom===0||c.coordinate.bottom>n.bottom)&&(n.bottom=c.coordinate.bottom)}),a.forEach(c=>c.widget.style.top=`${n.bottom-c.coordinate.height}px`);else if(t==="horizontal-center")a.forEach(c=>{(n.left===0||c.coordinate.left<n.left)&&(n.left=c.coordinate.left),(n.right===0||c.coordinate.right>n.right)&&(n.right=c.coordinate.right)}),a.forEach(c=>c.widget.style.left=`${n.left+(n.right-n.left)/2-c.coordinate.width/2}px`);else if(t==="vertical-center")a.forEach(c=>{(n.top===0||c.coordinate.top<n.top)&&(n.top=c.coordinate.top),(n.bottom===0||c.coordinate.bottom>n.bottom)&&(n.bottom=c.coordinate.bottom)}),a.forEach(c=>c.widget.style.top=`${n.top+(n.bottom-n.top)/2-c.coordinate.height/2}px`);else if(t==="horizontal-equal"){let c=0,l=0,u=0;a.sort((_,m)=>_.coordinate.left>m.coordinate.left?1:-1),a.forEach(_=>{(n.left===0||_.coordinate.left<n.left)&&(n.left=_.coordinate.left),(n.right===0||_.coordinate.right>n.right)&&(n.right=_.coordinate.right),c+=_.coordinate.width}),l=n.right-n.left-c,l<0&&(l=0),a.forEach((_,m)=>{_.widget.style.left=`${n.left+u}px`,u+=_.coordinate.width,m<a.length-1&&(u+=l/(a.length-1))})}else if(t==="vertical-equal"){let c=0,l=0,u=0;a.sort((_,m)=>_.coordinate.top>m.coordinate.top?1:-1),a.forEach(_=>{(n.top===0||_.coordinate.top<n.top)&&(n.top=_.coordinate.top),(n.bottom===0||_.coordinate.bottom>n.bottom)&&(n.bottom=_.coordinate.bottom),c+=_.coordinate.height}),l=n.bottom-n.top-c,l<0&&(l=0),a.forEach((_,m)=>{_.widget.style.top=`${n.top+u}px`,u+=_.coordinate.height,m<a.length-1&&(u+=l/(a.length-1))})}else if(t==="width"){let{alignIndex:c,alignType:l,alignValues:u}=this.state.align;l!=="width"&&(l="width",c=0,u=[]),u.length||this.state.selectedWidgets.forEach(_=>{const p=window.document.getElementById(_).getBoundingClientRect().width;u.indexOf(p)===-1&&u.push(p)}),c++,c>=u.length&&(c=0),this.state.selectedWidgets.forEach(_=>{s[_].style.width=u[c]}),this.setState({align:{alignType:l,alignIndex:c,alignValues:u}})}else if(t==="height"){let{alignIndex:c,alignType:l,alignValues:u}=this.state.align;l!=="height"&&(l="height",c=0,u=[]),u.length||this.state.selectedWidgets.forEach(_=>{const p=window.document.getElementById(_).getBoundingClientRect().height;u.indexOf(p)===-1&&u.push(p)}),c++,c>=u.length&&(c=0),this.state.selectedWidgets.forEach(_=>{s[_].style.height=u[c]}),this.setState({align:{alignType:l,alignIndex:c,alignValues:u}})}this.changeProject(i)};orderWidgets=t=>{const i=ne(q.getState().visProject),s=i[this.state.selectedView].widgets;let n=0,a=0;return Object.keys(s).forEach(c=>{const l=parseInt(s[c].style["z-index"].toString())||0;(n>l||n===0)&&(n=l),(a<l||a===0)&&(a=l)}),this.state.selectedWidgets.forEach(c=>{const l=parseInt(s[c].style["z-index"].toString())||0;t==="front"&&l<=a&&(s[c].style["z-index"]=a+1,s[c].style["z-index"]>1599&&(s[c].style["z-index"]=1599)),t==="back"&&l>=n&&(s[c].style["z-index"]=n-1,s[c].style["z-index"]<0&&(s[c].style["z-index"]=0))}),this.changeProject(i)};static getWidgetRelativeRect(t){const i=window.document.getElementById(t);if(i){const s=i.getBoundingClientRect(),n=window.document.getElementById("vis-react-container").getBoundingClientRect();return{left:s.left-n.left,top:s.top-n.top,right:s.right-n.left,bottom:s.bottom-n.top,width:s.width,height:s.height}}return null}groupWidgets=async()=>{const t=ne(q.getState().visProject),i=t[this.state.selectedView].widgets,s={tpl:"_tplGroup",widgetSet:"basic",data:{members:this.state.selectedWidgets},style:{}},n=Wo(t);let a=0,c=0,l=0,u=0;if(this.state.selectedWidgets.forEach(_=>{i[_].grouped=!0,i[_].groupid=n;const m=kt.getWidgetRelativeRect(_);(!a||m.left<a)&&(a=m.left),(!c||m.top<c)&&(c=m.top),(!l||m.right>l)&&(l=m.right),(!u||m.bottom>u)&&(u=m.bottom)}),this.state.selectedWidgets.forEach(_=>{const m=kt.getWidgetRelativeRect(_);i[_].style.left=m.left-a,i[_].style.top=m.top-c}),this.state.selectedGroup){s.grouped=!0,s.groupid=this.state.selectedGroup;const _=i[this.state.selectedGroup];_.data.members.push(n);for(const m of this.state.selectedWidgets){const p=_.data.members.indexOf(m);_.data.members.splice(p,1)}}s.style.left=`${a}px`,s.style.top=`${c}px`,s.style.width=`${l-a}px`,s.style.height=`${u-c}px`,i[n]=s,await this.changeProject(t),await this.setSelectedWidgets([n])};ungroupWidgets=async()=>{const t=ne(q.getState().visProject),i=t[this.state.selectedView].widgets,s=i[this.state.selectedWidgets[0]];for(const n of s.data.members){const a=kt.getWidgetRelativeRect(n);a&&(i[n].style.left=`${a.left}px`,i[n].style.top=`${a.top}px`,i[n].style.width=`${a.width}px`,i[n].style.height=`${a.height}px`),delete i[n].grouped,delete i[n].groupid}if(this.state.selectedGroup){const n=i[this.state.selectedGroup];for(const c of s.data.members)n.data.members.push(c),i[c].grouped=!0,i[c].groupid=this.state.selectedGroup;const a=n.data.members.indexOf(this.state.selectedWidgets[0]);n.data.members.splice(a,1)}return await this.setSelectedWidgets(s.data.members),delete i[this.state.selectedWidgets[0]],this.changeProject(t)};setSelectedGroup=t=>{q.getState().visProject[this.state.selectedView].widgets[t].marketplace||(this.setState({selectedGroup:t}),this.setSelectedWidgets([]))};undo=async()=>{this.setSelectedWidgets([]),await this.changeProject(this.state.history[this.state.historyCursor-1],!0),await this.setStateAsync({historyCursor:this.state.historyCursor-1})};redo=async()=>{this.setSelectedWidgets([]),await this.changeProject(this.state.history[this.state.historyCursor+1],!0),await this.setStateAsync({historyCursor:this.state.historyCursor+1})};toggleLockDragging=()=>{window.localStorage.setItem("lockDragging",JSON.stringify(!this.state.lockDragging)),this.setState({lockDragging:!this.state.lockDragging})};toggleDisableInteraction=()=>{window.localStorage.setItem("disableInteraction",JSON.stringify(!this.state.disableInteraction)),this.setState({disableInteraction:!this.state.disableInteraction})};saveHistory(t){this.historyTimer&&clearTimeout(this.historyTimer),this.historyTimer=setTimeout(()=>{this.historyTimer=null;let i=ne(this.state.history),s=this.state.historyCursor;s!==i.length-1&&(i=i.slice(0,s+1)),i.push(t),i.length>50&&i.shift(),s=i.length-1,this.setState({history:i,historyCursor:s})},1e3)}changeProject=async(t,i=!1)=>{t.___settings.ts=`${Date.now()}.${Math.random().toString(36).substring(7)}`,et.syncMultipleWidgets(t),i||this.saveHistory(t),q.dispatch(ul(t)),q.dispatch(Ze(!0)),await this.setStateAsync({needSave:!0}),this.savingTimer&&clearTimeout(this.savingTimer),this.savingTimer=setTimeout(async()=>{this.savingTimer=null,t=Bg(t);const s=JSON.stringify(t,null,2);if("TextEncoder"in window){const a=new TextEncoder().encode(s);await this.socket.writeFile64(this.adapterId,`${this.state.projectName}/vis-views.json`,a)}else await this.socket.writeFile64(this.adapterId,`${this.state.projectName}/vis-views.json`,s);this.setState({needSave:!1}),this.needRestart&&window.location.reload()},1e3)};renameProject=async(t,i)=>{try{await this.socket.rename(this.adapterId,t,i),this.state.projectName===t?window.location.href=`?${i}${window.location.hash||""}`:await this.refreshProjects()}catch(s){window.alert(`Cannot rename: ${s}`),console.error(s)}};deleteProject=async t=>{try{await this.socket.deleteFolder(this.adapterId,t),await this.refreshProjects(),this.state.projectName===t&&await this.loadProject(this.state.projects[0])}catch(i){console.error(i)}};toggleView=async(t,i,s=!1)=>{let n=!1;const a=ne(q.getState().visProject),c=a.___settings.openedViews.indexOf(t);i&&c===-1?(a.___settings.openedViews.unshift(t),n=!0):!i&&c!==-1&&(a.___settings.openedViews.splice(c,1),n=!0),n&&await this.changeProject(a,!1),s?(this.setViewsManager(!1),await this.changeView(t)):a.___settings.openedViews.includes(this.state.selectedView)||await this.changeView(a.___settings.openedViews[0])};setSelectedWidgets=async(t,i,s)=>{if(typeof i=="function"&&(s=i,i=null),s)debugger;q.dispatch(Ze(!0)),i?(window.localStorage.setItem(`${this.state.projectName}.${i}.widgets`,JSON.stringify(t)),await this.changeView(i)):(window.localStorage.setItem(`${this.state.projectName}.${this.state.selectedView}.widgets`,JSON.stringify(t)),await this.setStateAsync({selectedWidgets:t,alignType:null,alignIndex:0,alignValues:[]}))};toggleCode=()=>{const t=this.state.showCode;this.setState({showCode:!t}),window.localStorage.setItem("showCode",JSON.stringify(!t))};onWidgetsChanged=(t,i,s)=>{if(this.tempProject=this.tempProject||ne(q.getState().visProject),t==null||t.forEach(n=>{if(n.style){const a=this.tempProject[n.view].widgets[n.wid].style;if(n.style.noPxToPercent)delete n.style.noPxToPercent,Object.assign(a,n.style);else{const c=this.pxToPercent(a,n.style);Object.assign(a,c)}Object.keys(a).forEach(c=>{(a[c]===void 0||a[c]===null)&&delete a[c]})}if(n.data){const a=this.tempProject[n.view].widgets[n.wid].data;Object.assign(a,n.data),Object.keys(a).forEach(c=>{(a[c]===void 0||a[c]===null)&&delete a[c]})}}),i&&s){if(s.order&&this.state.selectedGroup){const n=s.order;delete s.order;const a=this.tempProject[this.state.selectedView].widgets[this.state.selectedGroup];a.data=a.data||{},a.data.members=n}Object.keys(s).forEach(n=>{s[n]===null?delete this.tempProject[i].settings[n]:this.tempProject[i].settings[n]=s[n]})}this.changeTimer&&clearTimeout(this.changeTimer),this.changeTimer=setTimeout(()=>{this.changeTimer=null,this.changeProject(this.tempProject),this.tempProject=null},200)};onFontsUpdate(t){this.setState({fonts:t})}cssClone=(t,i)=>{this.visEngineHandlers[this.state.selectedView]&&this.visEngineHandlers[this.state.selectedView].onStealStyle?this.visEngineHandlers[this.state.selectedView].onStealStyle(t,i):i&&i(t)};registerCallback=(t,i,s)=>{if(s)if(this.visEngineHandlers[i]=this.visEngineHandlers[i]||{},t==="onStealStyle")this.visEngineHandlers[i].onStealStyle=s;else if(t==="pxToPercent")this.visEngineHandlers[i].pxToPercent=s;else if(t==="onPxToPercent")this.visEngineHandlers[i].onPxToPercent=s;else if(t==="onPercentToPx")this.visEngineHandlers[i].onPercentToPx=s;else throw new Error(`Unknown callback name: ${t}`);else this.visEngineHandlers[i]&&(delete this.visEngineHandlers[i][t],Object.keys(this.visEngineHandlers[i]).length||delete this.visEngineHandlers[i])};onPxToPercent=(t,i,s)=>this.visEngineHandlers[this.state.selectedView]&&this.visEngineHandlers[this.state.selectedView].onPxToPercent?this.visEngineHandlers[this.state.selectedView].onPxToPercent(t,i,s):null;pxToPercent=(t,i)=>{var s;return(s=this.visEngineHandlers[this.state.selectedView])!=null&&s.pxToPercent?this.visEngineHandlers[this.state.selectedView].pxToPercent(t,i):null};onPercentToPx=(t,i,s)=>this.visEngineHandlers[this.state.selectedView]&&this.visEngineHandlers[this.state.selectedView].onPercentToPx?this.visEngineHandlers[this.state.selectedView].onPercentToPx(t,i,s):null;saveCssFile=(t,i,s)=>{i.endsWith("vis-common-user.css")?this.setState({visCommonCss:s}):i.endsWith("vis-user.css")&&this.setState({visUserCss:s}),this.socket.writeFile64(t,i,s)};showConfirmDialog(t){this.setState({confirmDialog:t})}showCodeDialog(t){this.setState({showCodeDialog:t})}setMarketplaceDialog=t=>this.setState({marketplaceDialog:t});installWidget=async(t,i)=>{var s;if((s=window.VisMarketplace)!=null&&s.api){const n=ne(q.getState().visProject),a=await window.VisMarketplace.api.apiGetWidgetRevision(t,i);n.___settings.marketplace||(n.___settings.marketplace=[]);const c=n.___settings.marketplace.findIndex(l=>l.widget_id===a.widget_id);c===-1?n.___settings.marketplace.push(a):n.___settings.marketplace[c]=a,await this.changeProject(n)}};uninstallWidget=async t=>{const i=ne(q.getState().visProject),s=i.___settings.marketplace.findIndex(n=>n.id===t);s!==-1&&i.___settings.marketplace.splice(s,1),await this.changeProject(i)};static importMarketplaceWidget(t,i,s,n,a,c,l,u,_){const m={};return s.forEach(p=>{if(p.isRoot&&(p.marketplace=ne(q.getState().visProject.___settings.marketplace.find(y=>y.id===n))),ri(p)){let y=Wo(q.getState().visProject);p.isRoot&&(l?(y=l,u.members=p.data.members,p.data=u,p.style=_):(p.style.top=c,p.style.left=a)),m[y]=p;let b;do b=s.find(j=>j.groupid===p._id),b&&(b.groupid=y);while(b)}else{const y=Gi(q.getState().visProject);if(m[y]=p,p.grouped&&m[p.groupid]&&m[p.groupid].data&&m[p.groupid].data.members){const b=m[p.groupid].data.members.indexOf(p._id);b!==-1&&(m[p.groupid].data.members[b]=y)}}}),Object.keys(m).forEach(p=>delete m[p]._id),t[i].widgets={...t[i].widgets,...m},t}addMarketplaceWidget=async(t,i,s,n,a,c)=>{const l=ne(q.getState().visProject),u=ne(q.getState().visProject.___settings.marketplace.find(_=>_.id===t).widget);kt.importMarketplaceWidget(l,this.state.selectedView,u,t,i,s,n,a,c),await this.changeProject(l)};updateWidget=async t=>{const s=ne(q.getState().visProject)[this.state.selectedView].widgets[t];if(s!=null&&s.marketplace){const n=ne(q.getState().visProject.___settings.marketplace.find(a=>a.widget_id===s.marketplace.widget_id));await this.deleteWidgetsAction(),n&&await this.addMarketplaceWidget(n.id,null,null,t,s.data,s.style)}};renderAskAboutIncludeDialog(){return this.state.askAboutInclude?o.jsxs(f.Dialog,{open:!0,onClose:()=>this.setState({askAboutInclude:null}),children:[o.jsx(f.DialogTitle,{id:"alert-dialog-title",children:w.I18n.t("Include widget?")}),o.jsx(f.DialogContent,{children:o.jsx(f.DialogContentText,{children:w.I18n.t('Do you want to include "%s" widget into "%s"?',this.state.askAboutInclude.wid,this.state.askAboutInclude.toWid)})}),o.jsxs(f.DialogActions,{children:[o.jsx(f.Button,{variant:"outlined",onClick:()=>{const t=ne(q.getState().visProject);t[this.state.selectedView].widgets[this.state.askAboutInclude.toWid].data.doNotWantIncludeWidgets=!0,this.changeProject(t,!0).then(()=>this.setState({askAboutInclude:null}))},children:w.I18n.t("Do not ask again")}),o.jsx(f.Button,{variant:"contained",onClick:()=>{const t=this.state.askAboutInclude;this.setState({askAboutInclude:null}),t.cb(t.wid,t.toWid)},color:"primary",autoFocus:!0,startIcon:o.jsx(S.Add,{}),children:w.I18n.t("Add")}),o.jsx(f.Button,{variant:"contained",onClick:()=>this.setState({askAboutInclude:null}),color:"grey",startIcon:o.jsx(S.Close,{}),children:w.I18n.t("Cancel")})]})]}):null}askAboutInclude=(t,i,s)=>this.setState({askAboutInclude:{wid:t,toWid:i,cb:s}});renderTabs(){const{visProject:t}=q.getState(),i=t.___settings.openedViews.filter(s=>Object.keys(t).includes(s));return o.jsxs("div",{style:ze.tabsContainer,children:[this.state.hidePalette?o.jsx(f.Tooltip,{title:w.I18n.t("Show palette"),slotProps:{popper:{sx:{pointerEvents:"none"}}},children:o.jsx("div",{style:ze.tabButton,children:o.jsx(f.IconButton,{size:"small",onClick:()=>{window.localStorage.removeItem("Vis.hidePalette"),this.setState({hidePalette:!1})},children:o.jsx(S.Palette,{})})})}):null,this.state.showCode?null:o.jsx(f.Tooltip,{title:w.I18n.t("Toggle runtime"),slotProps:{popper:{sx:{pointerEvents:"none"}}},children:o.jsx("div",{style:ze.tabButton,children:o.jsx(f.IconButton,{onClick:()=>this.setState({editMode:!this.state.editMode}),size:"small",disabled:!!this.state.selectedGroup,style:this.state.selectedGroup?{opacity:.5}:null,children:this.state.editMode?o.jsx(S.PlayArrow,{style:{color:"green"}}):o.jsx(S.Stop,{style:{color:"red"}})})})}),o.jsx(f.Tooltip,{title:w.I18n.t("Show view"),slotProps:{popper:{sx:{pointerEvents:"none"}}},children:o.jsx("div",{style:ze.tabButton,children:o.jsx(f.IconButton,{onClick:()=>this.setViewsManager(!0),size:"small",disabled:!!this.state.selectedGroup,children:o.jsx(S.Layers,{style:i.length?void 0:ze.iconBlink})})})}),o.jsx(f.Tabs,{value:this.state.selectedView==="null"||this.state.selectedView==="undefined"||!this.state.selectedView?i[0]||"":this.state.selectedView,style:{width:`calc(100% - ${68+(this.state.showCode?0:40)+(this.state.hidePalette?40:0)+(this.state.hideAttributes?40:0)}px)`},sx:ze.viewTabs,variant:"scrollable",scrollButtons:"auto",children:i.map(s=>{const n=!!this.state.selectedGroup&&s===this.state.selectedView,a=n?{}:q.getState().visProject[s].settings||{};let c=a.navigationIcon||a.navigationImage;return c&&c.startsWith("_PRJ_NAME/")&&(c=`../${this.adapterName}.${this.instance}/${this.state.projectName}${c.substring(9)}`),o.jsx(f.Tab,{component:"span",disabled:!!this.state.selectedGroup&&s!==this.state.selectedView,label:o.jsxs(f.Box,{component:"span",style:w.Utils.getStyle(this.state.theme,n&&ze.groupEditTab,ze.tabsName),children:[c?o.jsx(w.Icon,{src:c,style:ze.listItemIcon}):null,n?`${w.I18n.t("Group %s",this.state.selectedGroup)}`:a.navigationTitle||s,o.jsx(f.Tooltip,{title:n?w.I18n.t("Close group editor"):w.I18n.t("Hide"),slotProps:{popper:{sx:{pointerEvents:"none"}}},children:o.jsx("span",{children:o.jsx(f.IconButton,{size:"small",disabled:!!this.state.selectedGroup&&s!==this.state.selectedView,onClick:l=>{l.stopPropagation(),n?this.setState({selectedGroup:null}):this.toggleView(s,!1)},children:o.jsx(S.Close,{fontSize:"small"})})})})]}),sx:ze.viewTab,value:s,onClick:()=>this.changeView(s)},s)})}),o.jsx(f.IconButton,{onClick:()=>this.toggleCode(),size:"small",style:{...ze.tabButton,cursor:"default",opacity:this.state.showCode?1:0,width:34,height:34},children:this.state.showCode?o.jsx(S.CodeOff,{}):o.jsx(S.Code,{})}),i.length>1?o.jsx(f.Tooltip,{title:w.I18n.t("Close all but current view"),slotProps:{popper:{sx:{pointerEvents:"none"}}},children:o.jsx("div",{style:ze.tabButton,children:o.jsx(f.IconButton,{size:"small",onClick:()=>{const s=ne(q.getState().visProject);s.___settings.openedViews=[this.state.selectedView],this.changeProject(s,!0)},children:o.jsx(S.ClearAll,{})})})}):null,this.state.hideAttributes?o.jsx(f.Tooltip,{title:w.I18n.t("Show attributes"),slotProps:{popper:{sx:{pointerEvents:"none"}}},children:o.jsx("div",{style:ze.tabButton,children:o.jsx(f.IconButton,{size:"small",onClick:()=>{window.localStorage.removeItem("Vis.hideAttributes"),this.setState({hideAttributes:!1})},children:o.jsx(S.ListAlt,{})})})}):null]})}renderPalette(){return o.jsxs("div",{style:{...ze.block,...this.state.toolbarHeight==="narrow"?ze.blockNarrow:void 0,...this.state.toolbarHeight==="veryNarrow"?ze.blockVeryNarrow:void 0,display:this.state.hidePalette?"none":void 0},children:[this.state.widgetsLoaded!==et.WIDGETS_LOADING_STEP_ALL_LOADED?o.jsx(f.LinearProgress,{variant:"indeterminate",value:this.state.loadingProgress.step/this.state.loadingProgress.total*100}):null,o.jsx(ey,{theme:this.state.theme,widgetsLoaded:this.state.widgetsLoaded===et.WIDGETS_LOADING_STEP_ALL_LOADED,onHide:()=>{window.localStorage.setItem("Vis.hidePalette","true"),this.setState({hidePalette:!0})},uninstallWidget:this.uninstallWidget,setMarketplaceDialog:this.setMarketplaceDialog,updateWidgets:this.updateWidgets,selectedView:this.state.selectedView,changeView:this.changeView,changeProject:this.changeProject,socket:this.socket,editMode:this.state.editMode,themeType:this.state.themeType})]})}renderWorkspace(){var i;const t=this.getVisEngine();return o.jsxs("div",{children:[this.renderTabs(),o.jsxs("div",{style:{...ze.canvas,...this.state.toolbarHeight==="narrow"?ze.canvasNarrow:void 0,...this.state.toolbarHeight==="veryNarrow"?ze.canvasVeryNarrow:void 0,overflow:this.state.editMode?"auto":((i=q.getState().visProject.___settings)==null?void 0:i.bodyOverflow)||"auto"},children:[this.state.showCode?o.jsx("pre",{children:JSON.stringify(q.getState().visProject,null,2)}):null,o.jsx(pMe,{addWidget:this.addWidget,addMarketplaceWidget:this.addMarketplaceWidget,editMode:this.state.editMode,children:o.jsx("div",{id:"vis-react-container",style:{position:"relative",display:this.state.showCode?"none":"block",width:"100%",height:"100%"},children:o.jsx(Fj,{disabled:!this.state.editMode||this.state.ignoreMouseEvents,selectedWidgets:this.state.selectedWidgets,deleteWidgets:this.deleteWidgets,setSelectedWidgets:this.setSelectedWidgets,cutWidgets:this.cutWidgets,copyWidgets:this.copyWidgets,pasteWidgets:this.pasteWidgets,orderWidgets:this.orderWidgets,widgetsClipboard:this.state.widgetsClipboard,selectedView:this.state.selectedView,changeProject:this.changeProject,lockWidgets:this.lockWidgets,groupWidgets:this.groupWidgets,ungroupWidgets:this.ungroupWidgets,setSelectedGroup:this.setSelectedGroup,setMarketplaceDialog:this.setMarketplaceDialog,themeType:this.state.themeType,children:t})})})]})]},"engine")}renderAttributes(){return o.jsx("div",{style:{...ze.block,...this.state.toolbarHeight==="narrow"?ze.blockNarrow:void 0,...this.state.toolbarHeight==="veryNarrow"?ze.blockVeryNarrow:void 0},children:o.jsx(Uv,{theme:this.state.theme,selectedView:this.state.selectedView,userGroups:this.state.userGroups,changeProject:this.changeProject,openedViews:q.getState().visProject.___settings.openedViews,projectName:this.state.projectName,themeType:this.state.themeType,selectedWidgets:this.state.editMode?this.state.selectedWidgets:[],widgetsLoaded:this.state.widgetsLoaded===et.WIDGETS_LOADING_STEP_ALL_LOADED,socket:this.socket,fonts:this.state.fonts,adapterName:this.adapterName,instance:this.instance,cssClone:this.cssClone,onPxToPercent:this.onPxToPercent,onPercentToPx:this.onPercentToPx,saveCssFile:this.saveCssFile,editMode:this.state.editMode,onHide:()=>{window.localStorage.setItem("Vis.hideAttributes","true"),this.setState({hideAttributes:!0})},adapterId:this.adapterId})})}renderConfirmDialog(){return this.state.confirmDialog?o.jsx(w.Confirm,{text:this.state.confirmDialog.message,title:this.state.confirmDialog.title,fullWidth:!1,ok:w.I18n.t("Ok"),onClose:t=>{const i=this.state.confirmDialog.callback;this.setState({confirmDialog:null},()=>typeof i=="function"&&i(t))}}):null}renderShowCodeDialog(){return this.state.showCodeDialog!==null?o.jsx(Ly,{themeType:this.state.themeType,onClose:()=>this.setState({showCodeDialog:null}),title:this.state.showCodeDialog.title,code:this.state.showCodeDialog.code,mode:this.state.showCodeDialog.mode}):null}renderShowProjectUpdateDialog(){return this.state.showProjectUpdateDialog?o.jsx(w.Confirm,{text:w.I18n.t("Project was updated by another browser instance. Do you want to reload it?"),title:w.I18n.t("Project was updated"),fullWidth:!1,onClose:t=>this.setState({showProjectUpdateDialog:!1},()=>{t&&this.loadProject(this.state.projectName)})}):null}renderCreateFirstProjectDialog(){return this.state.createFirstProjectDialog?o.jsx(Wy,{onClose:()=>this.setState({createFirstProjectDialog:!1}),addProject:this.addProject}):null}renderUpdateDialog(){if(!this.state.updateWidgetsDialog)return null;const t=[];return Object.keys(q.getState().visProject).forEach(i=>{if(i!=="___settings"){const s={name:i,widgets:[]},n=q.getState().visProject[i].widgets;Object.keys(n).forEach(a=>{var c,l;this.state.updateWidgetsDialog&&((c=n[a].marketplace)==null?void 0:c.widget_id)===this.state.updateWidgetsDialog.widget_id&&((l=n[a].marketplace)==null?void 0:l.version)!==this.state.updateWidgetsDialog.version&&s.widgets.push(a)}),s.widgets.length&&t.push(s)}}),o.jsx(w.Confirm,{fullWidth:!1,title:w.I18n.t("Update widgets"),text:o.jsxs(o.Fragment,{children:[o.jsx("div",{children:w.I18n.t("Are you sure to update widgets:")}),o.jsx("div",{children:t.map(i=>o.jsxs("div",{children:[o.jsxs("b",{children:[i.name,": "]}),i.widgets.join(", ")]},i.name))})]}),ok:w.I18n.t("Update"),dialogName:"updateDialog",suppressQuestionMinutes:5,onClose:i=>{i&&this.state.updateWidgetsDialog&&this.updateWidgetsAction(this.state.updateWidgetsDialog,t),this.setState({updateWidgetsDialog:!1})}})}setLoadingText=t=>{this.setState({loadingText:w.I18n.t(t)})};renderDeleteDialog(){return this.state.deleteWidgetsDialog?o.jsx(w.Confirm,{fullWidth:!1,title:w.I18n.t("Delete widgets"),text:w.I18n.t("Are you sure to delete widgets %s?",this.state.selectedWidgets.join(", ")),ok:w.I18n.t("Delete"),dialogName:"deleteDialog",suppressQuestionMinutes:5,onClose:t=>{t&&this.deleteWidgetsAction(),this.setState({deleteWidgetsDialog:!1})}}):null}renderMessageDialog(){return this.state.messageDialog?o.jsx(w.Message,{text:this.state.messageDialog.text,title:this.state.messageDialog.title,onClose:()=>{this.state.messageDialog.noClose||this.setState({messageDialog:null})}}):null}renderImportProjectDialog(){return this.state.showImportDialog?o.jsx(zc,{projects:this.state.projects,themeType:this.state.themeType,onClose:(t,i)=>{this.setState({showImportDialog:!1}),i&&(window.location.href=`edit.html?${i}`)},openNewProjectOnCreate:!0,projectName:this.state.projectName,socket:this.socket,adapterName:this.adapterName,instance:this.instance,loadProject:this.loadProject,refreshProjects:this.refreshProjects}):null}showLegacyFileSelector=(t,i)=>this.setState({legacyFileSelector:{callback:t,options:i}});renderLegacyFileSelectorDialog(){var t;return this.state.legacyFileSelector?o.jsx(w.SelectFile,{title:w.I18n.t("Select file"),onClose:()=>this.setState({legacyFileSelector:!1}),restrictToFolder:`${this.adapterName}.${this.instance}/${this.state.projectName}`,allowNonRestricted:!0,allowUpload:!0,allowDownload:!0,allowCreateFolder:!0,allowDelete:!0,allowView:!0,showToolbar:!0,imagePrefix:"../",theme:this.state.theme,selected:((t=this.state.legacyFileSelector.options)==null?void 0:t.path)||"",filterByType:"images",onOk:i=>{var l;const s=`${this.adapterName}.${this.instance}/${this.state.projectName}/`;i.startsWith(s)?i=`_PRJ_NAME/${i.substring(s.length)}`:i.startsWith("/")?i=`..${i}`:i.startsWith(".")||(i=`../${i}`);const n=i.split("/"),a=n.pop(),c=`${n.join("/")}/`;this.state.legacyFileSelector&&this.state.legacyFileSelector.callback({path:c,file:a},(l=this.state.legacyFileSelector.options)==null?void 0:l.userArg),this.setState({legacyFileSelector:null})},socket:this.socket}):null}renderLoadingText(){return this.state.loadingText?o.jsx(f.Box,{component:"div",sx:ze.loadingText,children:this.state.loadingText}):null}toggleTheme(t){super.toggleTheme(t),this.props.setBackground()}render(){var t,i;if(this.state.projectDoesNotExist)return o.jsx(ms.StyledEngineProvider,{injectFirst:!0,children:o.jsx(ps,{theme:this.state.theme,children:this.renderProjectDoesNotExist()})});if(this.state.showProjectsDialog)return o.jsx(ms.StyledEngineProvider,{injectFirst:!0,children:o.jsx(ps,{theme:this.state.theme,children:this.showSmallProjectsDialog()})});if(!this.state.loaded||!q.getState().visProject.___settings||!this.state.userGroups)return o.jsx(ms.StyledEngineProvider,{injectFirst:!0,children:o.jsxs(ps,{theme:this.state.theme,children:[this.renderLoadingText(),this.renderLoader()]})});if(this.state.runtime)return this.getVisEngine();for(const s of this.state.selectedWidgets)if(!((t=q.getState().visProject[this.state.selectedView])!=null&&t.widgets[s]))return this.setSelectedWidgets([]),null;return o.jsx(ms.StyledEngineProvider,{injectFirst:!0,children:o.jsxs(ps,{theme:this.state.theme,children:[o.jsx("style",{children:`
@keyframes colorBlink {
0% {
color: #FF0000;
}
50% {
color: ${this.state.theme.palette.text.primary};
}
100% {
color: #FF0000
}
}`}),o.jsx(f.Popper,{id:"vis_main_popper",placement:"top-start",anchorEl:this.mainRef.current,open:!!Object.keys(this.state.widgetsClipboard.widgets).length,style:{width:"100%",textAlign:"center",pointerEvents:"none"},children:o.jsx(f.Paper,{style:{display:"inline-block",pointerEvents:"initial",zIndex:1e3,padding:10,cursor:"pointer",opacity:.8},title:w.I18n.t("Click to close"),onClick:()=>this.setState({widgetsClipboard:{widgets:{},type:""}}),children:Object.keys(this.state.widgetsClipboard.widgets).join(", ")})}),o.jsxs(f.Box,{component:"div",sx:ze.app,children:[o.jsx(Oy,{selectedView:this.state.selectedView,changeView:this.changeView,changeProject:this.changeProject,openedViews:q.getState().visProject.___settings.openedViews,toggleView:this.toggleView,socket:this.socket,projects:this.state.projects,loadProject:this.loadProject,projectName:this.state.projectName,addProject:this.addProject,renameProject:this.renameProject,deleteProject:this.deleteProject,needSave:this.state.needSave,currentUser:this.state.currentUser,themeName:this.state.themeName,themeType:this.state.themeType,theme:this.state.theme,toggleTheme:()=>this.toggleTheme(),refreshProjects:this.refreshProjects,viewsManager:this.state.viewsManager,setViewsManager:this.setViewsManager,projectsDialog:this.state.projects&&this.state.projects.length?this.state.projectsDialog:!this.state.createFirstProjectDialog,setProjectsDialog:this.setProjectsDialog,selectedWidgets:this.state.editMode?this.state.selectedWidgets:[],setSelectedWidgets:this.setSelectedWidgets,history:this.state.history,historyCursor:this.state.historyCursor,undo:this.undo,redo:this.redo,deleteWidgets:this.deleteWidgets,widgetsLoaded:this.state.widgetsLoaded===et.WIDGETS_LOADING_STEP_ALL_LOADED,widgetsClipboard:this.state.widgetsClipboard,cutWidgets:this.cutWidgets,copyWidgets:this.copyWidgets,pasteWidgets:this.pasteWidgets,alignWidgets:this.alignWidgets,cloneWidgets:this.cloneWidgets,orderWidgets:this.orderWidgets,lockDragging:this.state.lockDragging,toggleLockDragging:this.toggleLockDragging,adapterName:this.adapterName,selectedGroup:this.state.selectedGroup,widgetHint:this.state.widgetHint,toggleWidgetHint:this.toggleWidgetHint,instance:this.instance,editMode:this.state.editMode,toolbarHeight:this.state.toolbarHeight,setToolbarHeight:s=>{window.localStorage.setItem("Vis.toolbarForm",s),this.setState({toolbarHeight:s})},version:this.props.version}),o.jsx("div",{style:{position:"relative"},ref:this.mainRef,children:o.jsxs(rl,{backend:qc()?gl:ll,children:[o.jsx(kc,{}),this.state.hidePalette&&this.state.hideAttributes?this.renderWorkspace():null,o.jsxs(Vh,{direction:Oe.Horizontal,initialSizes:this.state.hidePalette&&!this.state.hideAttributes?[this.state.splitSizes[0]+this.state.splitSizes[1],this.state.splitSizes[2]]:!this.state.hidePalette&&this.state.hideAttributes?[this.state.splitSizes[0],this.state.splitSizes[1]+this.state.splitSizes[2]]:this.state.splitSizes,minWidths:this.state.hidePalette&&!this.state.hideAttributes?[0,240]:!this.state.hidePalette&&this.state.hideAttributes?[240,0]:[240,0,240],onResizeFinished:(s,n)=>{let a=[0,0,0];this.state.hidePalette&&!this.state.hideAttributes?(a[0]=this.state.splitSizes[0],a[1]=n[0]-this.state.splitSizes[0],a[2]=n[1]):!this.state.hidePalette&&this.state.hideAttributes?(a[0]=n[0],a[1]=n[1]-this.state.splitSizes[2],a[2]=this.state.splitSizes[2]):a=n;const c=a.reduce((l,u)=>l+u);Math.ceil(c)!==100?Math.ceil(c)===101||Math.ceil(c)===99?(a[0]=Math.round(a[0]*100)/100,a[1]=Math.round(a[1]*100)/100,a[2]=100-a[0]-a[1],this.setState({splitSizes:a}),window.localStorage.setItem("Vis.splitSizes",JSON.stringify(a))):(console.log("Decline resize, to work around bug in @devbookhq/splitter"),this.setState({splitSizes:this.state.splitSizes})):(this.setState({splitSizes:a}),window.localStorage.setItem("Vis.splitSizes",JSON.stringify(a)))},gutterClassName:this.state.themeType==="dark"?"Dark visGutter":"Light visGutter",children:[this.state.hidePalette?null:this.renderPalette(),this.renderWorkspace(),this.state.hideAttributes?null:this.renderAttributes()]})]})})]}),this.renderLoadingText(),this.renderCreateFirstProjectDialog(),this.renderDeleteDialog(),this.renderUpdateDialog(),this.renderAlertDialog(),this.renderConfirmDialog(),this.renderShowCodeDialog(),this.renderShowProjectUpdateDialog(),this.renderMessageDialog(),this.renderLegacyFileSelectorDialog(),this.renderAskAboutIncludeDialog(),this.state.marketplaceDialog?o.jsx(hMe,{onClose:()=>this.setState({marketplaceDialog:!1}),installWidget:this.installWidget,updateWidgets:this.updateWidgets,installedWidgets:(i=q.getState().visProject)==null?void 0:i.___settings.marketplace,...this.state.marketplaceDialog,themeName:this.state.themeName}):null]})})}}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 mMe(){"serviceWorker"in navigator&&navigator.serviceWorker.ready.then(e=>e.unregister())}const fMe="2.12.10",Uc={version:fMe};window.adapterName="vis-2";console.log(`iobroker.${window.adapterName}@${Uc.version}`);Pg(()=>import("./visWidgetsCatalog-VvcWQ5UI.js").then(e=>e.S),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12]),import.meta.url).then(e=>window.visRxWidget=e.default);function nl(e,t,i){const s=(e||"").split(" ").map(a=>a.trim()).filter(a=>a),n=s.indexOf(i);return n!==-1&&s.splice(n,1),!s.includes(t)&&s.push(t),s.join(" ")}function wMe(){try{return window.self!==window.top}catch{return!0}}function Yc(){wMe()?window.document.body.className="":w.Utils.getThemeType()==="dark"?window.document.body.className=nl(window.document.body.className,"body-dark","body-light"):window.document.body.className=nl(window.document.body.className,"body-light","body-dark")}Yc();function bMe(){const e=document.getElementById("root");e&&bh.createRoot(e).render(o.jsx(kt,{setBackground:()=>Yc(),version:Uc.version}))}window.visConfigLoaded.then(()=>{window.disableDataReporting||(window.sentryDSN="https://db8b6e837c71447a876069559a00a742@sentry.iobroker.net/232"),bMe()});mMe();