diff --git a/README.md b/README.md index b74e83b4..dbae5501 100644 --- a/README.md +++ b/README.md @@ -294,6 +294,9 @@ npm run start ### **WORK IN PROGRESS** --> ## Changelog +### **WORK IN PROGRESS** +* (bluefox) Added new option for view: "Limit only for instances" + ### 2.10.7 (2024-07-23) * (bluefox) Optimization of the module federation diff --git a/packages/iobroker.vis-2/src/package.json b/packages/iobroker.vis-2/src/package.json index 2fc29dd8..69587939 100644 --- a/packages/iobroker.vis-2/src/package.json +++ b/packages/iobroker.vis-2/src/package.json @@ -7,6 +7,7 @@ "scripts": { "start": "craco start", "old-start": "react-scripts start", + "types": "tsc ./src/Vis/visRxWidget.tsx --declaration --emitDeclarationOnly --outDir ../../types-vis-2", "lint": "eslint --fix --ext .js,.jsx src", "build": "craco build", "test": "react-scripts test", diff --git a/packages/iobroker.vis-2/src/public/lib/js/ace/ace.js b/packages/iobroker.vis-2/src/public/lib/js/ace/ace.js index f40efe41..c47923d2 100644 --- a/packages/iobroker.vis-2/src/public/lib/js/ace/ace.js +++ b/packages/iobroker.vis-2/src/public/lib/js/ace/ace.js @@ -1,4 +1,4 @@ -(function(){function o(n){var i=e;n&&(e[n]||(e[n]={}),i=e[n]);if(!i.define||!i.define.packaged)t.original=i.define,i.define=t,i.define.packaged=!0;if(!i.require||!i.require.packaged)r.original=i.require,i.require=r,i.require.packaged=!0}var ACE_NAMESPACE = "ace",e=function(){return this}();!e&&typeof window!="undefined"&&(e=window);if(!ACE_NAMESPACE&&typeof requirejs!="undefined")return;var t=function(e,n,r){if(typeof e!="string"){t.original?t.original.apply(this,arguments):(console.error("dropping module because define wasn't a string."),console.trace());return}arguments.length==2&&(r=n),t.modules[e]||(t.payloads[e]=r,t.modules[e]=null)};t.modules={},t.payloads={};var n=function(e,t,n){if(typeof t=="string"){var i=s(e,t);if(i!=undefined)return n&&n(),i}else if(Object.prototype.toString.call(t)==="[object Array]"){var o=[];for(var u=0,a=t.length;un.length)t=n.length;t-=e.length;var r=n.indexOf(e,t);return r!==-1&&r===t}),String.prototype.repeat||r(String.prototype,"repeat",function(e){var t="",n=this;while(e>0){e&1&&(t+=n);if(e>>=1)n+=n}return t}),String.prototype.includes||r(String.prototype,"includes",function(e,t){return this.indexOf(e,t)!=-1}),Object.assign||(Object.assign=function(e){if(e===undefined||e===null)throw new TypeError("Cannot convert undefined or null to object");var t=Object(e);for(var n=1;n>>0,r=arguments[1],i=r>>0,s=i<0?Math.max(n+i,0):Math.min(i,n),o=arguments[2],u=o===undefined?n:o>>0,a=u<0?Math.max(n+u,0):Math.min(u,n);while(s0){t&1&&(n+=e);if(t>>=1)e+=e}return n};var r=/^\s\s*/,i=/\s\s*$/;t.stringTrimLeft=function(e){return e.replace(r,"")},t.stringTrimRight=function(e){return e.replace(i,"")},t.copyObject=function(e){var t={};for(var n in e)t[n]=e[n];return t},t.copyArray=function(e){var t=[];for(var n=0,r=e.length;n65535?2:1}}),ace.define("ace/lib/useragent",["require","exports","module"],function(e,t,n){"use strict";t.OS={LINUX:"LINUX",MAC:"MAC",WINDOWS:"WINDOWS"},t.getOS=function(){return t.isMac?t.OS.MAC:t.isLinux?t.OS.LINUX:t.OS.WINDOWS};var r=typeof navigator=="object"?navigator:{},i=(/mac|win|linux/i.exec(r.platform)||["other"])[0].toLowerCase(),s=r.userAgent||"",o=r.appName||"";t.isWin=i=="win",t.isMac=i=="mac",t.isLinux=i=="linux",t.isIE=o=="Microsoft Internet Explorer"||o.indexOf("MSAppHost")>=0?parseFloat((s.match(/(?:MSIE |Trident\/[0-9]+[\.0-9]+;.*rv:)([0-9]+[\.0-9]+)/)||[])[1]):parseFloat((s.match(/(?:Trident\/[0-9]+[\.0-9]+;.*rv:)([0-9]+[\.0-9]+)/)||[])[1]),t.isOldIE=t.isIE&&t.isIE<9,t.isGecko=t.isMozilla=s.match(/ Gecko\/\d+/),t.isOpera=typeof opera=="object"&&Object.prototype.toString.call(window["opera"])=="[object Opera]",t.isWebKit=parseFloat(s.split("WebKit/")[1])||undefined,t.isChrome=parseFloat(s.split(" Chrome/")[1])||undefined,t.isSafari=parseFloat(s.split(" Safari/")[1])&&!t.isChrome||undefined,t.isEdge=parseFloat(s.split(" Edge/")[1])||undefined,t.isAIR=s.indexOf("AdobeAIR")>=0,t.isAndroid=s.indexOf("Android")>=0,t.isChromeOS=s.indexOf(" CrOS ")>=0,t.isIOS=/iPad|iPhone|iPod/.test(s)&&!window.MSStream,t.isIOS&&(t.isMac=!0),t.isMobile=t.isIOS||t.isAndroid}),ace.define("ace/lib/dom",["require","exports","module","ace/lib/useragent"],function(e,t,n){"use strict";function u(){var e=o;o=null,e&&e.forEach(function(e){a(e[0],e[1])})}function a(e,n,r){if(typeof document=="undefined")return;if(o)if(r)u();else if(r===!1)return o.push([e,n]);if(s)return;var i=r;if(!r||!r.getRootNode)i=document;else{i=r.getRootNode();if(!i||i==r)i=document}var a=i.ownerDocument||i;if(n&&t.hasCssString(n,i))return null;n&&(e+="\n/*# sourceURL=ace/css/"+n+" */");var f=t.createElement("style");f.appendChild(a.createTextNode(e)),n&&(f.id=n),i==a&&(i=t.getDocumentHead(a)),i.insertBefore(f,i.firstChild)}var r=e("./useragent"),i="http://www.w3.org/1999/xhtml";t.buildDom=function l(e,t,n){if(typeof e=="string"&&e){var r=document.createTextNode(e);return t&&t.appendChild(r),r}if(!Array.isArray(e))return e&&e.appendChild&&t&&t.appendChild(e),e;if(typeof e[0]!="string"||!e[0]){var i=[];for(var s=0;s=1.5:!0,r.isChromeOS&&(t.HI_DPI=!1);if(typeof document!="undefined"){var f=document.createElement("div");t.HI_DPI&&f.style.transform!==undefined&&(t.HAS_CSS_TRANSFORMS=!0),!r.isEdge&&typeof f.style.animationName!="undefined"&&(t.HAS_CSS_ANIMATION=!0),f=null}t.HAS_CSS_TRANSFORMS?t.translate=function(e,t,n){e.style.transform="translate("+Math.round(t)+"px, "+Math.round(n)+"px)"}:t.translate=function(e,t,n){e.style.top=Math.round(n)+"px",e.style.left=Math.round(t)+"px"}}),ace.define("ace/lib/net",["require","exports","module","ace/lib/dom"],function(e,t,n){"use strict";var r=e("./dom");t.get=function(e,t){var n=new XMLHttpRequest;n.open("GET",e,!0),n.onreadystatechange=function(){n.readyState===4&&t(n.responseText)},n.send(null)},t.loadScript=function(e,t){var n=r.getDocumentHead(),i=document.createElement("script");i.src=e,n.appendChild(i),i.onload=i.onreadystatechange=function(e,n){if(n||!i.readyState||i.readyState=="loaded"||i.readyState=="complete")i=i.onload=i.onreadystatechange=null,n||t()}},t.qualifyURL=function(e){var t=document.createElement("a");return t.href=e,t.href}}),ace.define("ace/lib/oop",["require","exports","module"],function(e,t,n){"use strict";t.inherits=function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})},t.mixin=function(e,t){for(var n in t)e[n]=t[n];return e},t.implement=function(e,n){t.mixin(e,n)}}),ace.define("ace/lib/event_emitter",["require","exports","module"],function(e,t,n){"use strict";var r={},i=function(){this.propagationStopped=!0},s=function(){this.defaultPrevented=!0};r._emit=r._dispatchEvent=function(e,t){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var n=this._eventRegistry[e]||[],r=this._defaultHandlers[e];if(!n.length&&!r)return;if(typeof t!="object"||!t)t={};t.type||(t.type=e),t.stopPropagation||(t.stopPropagation=i),t.preventDefault||(t.preventDefault=s),n=n.slice();for(var o=0;o1&&(i=n[n.length-2]);var o=u[t+"Path"];return o==null?o=u.basePath:r=="/"&&(t=r=""),o&&o.slice(-1)!="/"&&(o+="/"),o+t+r+i+this.get("suffix")},t.setModuleUrl=function(e,t){return u.$moduleUrls[e]=t};var a=function(t,n){if(t==="ace/theme/textmate"||t==="./theme/textmate")return n(null,e("./theme/textmate"));if(f)return f(t,n);console.error("loader is not configured")},f;t.setLoader=function(e){f=e},t.dynamicModules=Object.create(null),t.$loading={},t.$loaded={},t.loadModule=function(e,n){var r;if(Array.isArray(e))var s=e[0],o=e[1];else if(typeof e=="string")var o=e;var u=function(e){if(e&&!t.$loading[o])return n&&n(e);t.$loading[o]||(t.$loading[o]=[]),t.$loading[o].push(n);if(t.$loading[o].length>1)return;var r=function(){a(o,function(e,n){n&&(t.$loaded[o]=n),t._emit("load.module",{name:o,module:n});var r=t.$loading[o];t.$loading[o]=null,r.forEach(function(e){e&&e(n)})})};if(!t.get("packaged"))return r();i.loadScript(t.moduleUrl(o,s),r),l()};if(t.dynamicModules[o])t.dynamicModules[o]().then(function(e){e.default?u(e.default):u(e)});else{try{r=this.$require(o)}catch(f){}u(r||t.$loaded[o])}},t.$require=function(e){if(typeof n["require"]=="function"){var t="require";return n[t](e)}},t.setModuleLoader=function(e,n){t.dynamicModules[e]=n};var l=function(){!u.basePath&&!u.workerPath&&!u.modePath&&!u.themePath&&!Object.keys(u.$moduleUrls).length&&(console.error("Unable to infer path to ace from script src,","use ace.config.set('basePath', 'path') to enable dynamic loading of modes and themes","or with webpack use ace/webpack-resolver"),l=function(){})};t.version="1.35.3"}),ace.define("ace/loader_build",["require","exports","module","ace/lib/fixoldbrowsers","ace/config"],function(e,t,n){"use strict";function s(t){if(!i||!i.document)return;r.set("packaged",t||e.packaged||n.packaged||i.define&&define.packaged);var s={},u="",a=document.currentScript||document._currentScript,f=a&&a.ownerDocument||document;a&&a.src&&(u=a.src.split(/[?#]/)[0].split("/").slice(0,-1).join("/")||"");var l=f.getElementsByTagName("script");for(var c=0;c ["+this.end.row+"/"+this.end.column+"]"},e.prototype.contains=function(e,t){return this.compare(e,t)==0},e.prototype.compareRange=function(e){var t,n=e.end,r=e.start;return t=this.compare(n.row,n.column),t==1?(t=this.compare(r.row,r.column),t==1?2:t==0?1:0):t==-1?-2:(t=this.compare(r.row,r.column),t==-1?-1:t==1?42:0)},e.prototype.comparePoint=function(e){return this.compare(e.row,e.column)},e.prototype.containsRange=function(e){return this.comparePoint(e.start)==0&&this.comparePoint(e.end)==0},e.prototype.intersects=function(e){var t=this.compareRange(e);return t==-1||t==0||t==1},e.prototype.isEnd=function(e,t){return this.end.row==e&&this.end.column==t},e.prototype.isStart=function(e,t){return this.start.row==e&&this.start.column==t},e.prototype.setStart=function(e,t){typeof e=="object"?(this.start.column=e.column,this.start.row=e.row):(this.start.row=e,this.start.column=t)},e.prototype.setEnd=function(e,t){typeof e=="object"?(this.end.column=e.column,this.end.row=e.row):(this.end.row=e,this.end.column=t)},e.prototype.inside=function(e,t){return this.compare(e,t)==0?this.isEnd(e,t)||this.isStart(e,t)?!1:!0:!1},e.prototype.insideStart=function(e,t){return this.compare(e,t)==0?this.isEnd(e,t)?!1:!0:!1},e.prototype.insideEnd=function(e,t){return this.compare(e,t)==0?this.isStart(e,t)?!1:!0:!1},e.prototype.compare=function(e,t){return!this.isMultiLine()&&e===this.start.row?tthis.end.column?1:0:ethis.end.row?1:this.start.row===e?t>=this.start.column?0:-1:this.end.row===e?t<=this.end.column?0:1:0},e.prototype.compareStart=function(e,t){return this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},e.prototype.compareEnd=function(e,t){return this.end.row==e&&this.end.column==t?1:this.compare(e,t)},e.prototype.compareInside=function(e,t){return this.end.row==e&&this.end.column==t?1:this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},e.prototype.clipRows=function(t,n){if(this.end.row>n)var r={row:n+1,column:0};else if(this.end.rown)var i={row:n+1,column:0};else if(this.start.row1?(u++,u>4&&(u=1)):u=1;if(i.isIE){var o=Math.abs(e.clientX-a)>5||Math.abs(e.clientY-f)>5;if(!l||o)u=1;l&&clearTimeout(l),l=setTimeout(function(){l=null},n[u-1]||600),u==1&&(a=e.clientX,f=e.clientY)}e._clicks=u,r[s]("mousedown",e);if(u>4)u=0;else if(u>1)return r[s](h[u],e)}var u=0,a,f,l,h={2:"dblclick",3:"tripleclick",4:"quadclick"};Array.isArray(e)||(e=[e]),e.forEach(function(e){c(e,"mousedown",p,o)})},t.getModifierString=function(e){return r.KEY_MODS[p(e)]},t.addCommandKeyListener=function(e,n,r){var i=null;c(e,"keydown",function(e){s[e.keyCode]=(s[e.keyCode]||0)+1;var t=d(n,e,e.keyCode);return i=e.defaultPrevented,t},r),c(e,"keypress",function(e){i&&(e.ctrlKey||e.altKey||e.shiftKey||e.metaKey)&&(t.stopEvent(e),i=null)},r),c(e,"keyup",function(e){s[e.keyCode]=null},r),s||(v(),c(window,"focus",v))};if(typeof window=="object"&&window.postMessage&&!i.isOldIE){var m=1;t.nextTick=function(e,n){n=n||window;var r="zero-timeout-message-"+m++,i=function(s){s.data==r&&(t.stopPropagation(s),h(n,"message",i),e())};c(n,"message",i),n.postMessage(r,"*")}}t.$idleBlocked=!1,t.onIdle=function(e,n){return setTimeout(function r(){t.$idleBlocked?setTimeout(r,100):e()},n)},t.$idleBlockId=null,t.blockIdle=function(e){t.$idleBlockId&&clearTimeout(t.$idleBlockId),t.$idleBlocked=!0,t.$idleBlockId=setTimeout(function(){t.$idleBlocked=!1},e||100)},t.nextFrame=typeof window=="object"&&(window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame||window.oRequestAnimationFrame),t.nextFrame?t.nextFrame=t.nextFrame.bind(window):t.nextFrame=function(e){setTimeout(e,17)}}),ace.define("ace/clipboard",["require","exports","module"],function(e,t,n){"use strict";var r;n.exports={lineMode:!1,pasteCancelled:function(){return r&&r>Date.now()-50?!0:r=!1},cancel:function(){r=Date.now()}}}),ace.define("ace/keyboard/textinput",["require","exports","module","ace/lib/event","ace/config","ace/lib/useragent","ace/lib/dom","ace/lib/lang","ace/clipboard","ace/lib/keys"],function(e,t,n){"use strict";var r=e("../lib/event"),i=e("../config").nls,s=e("../lib/useragent"),o=e("../lib/dom"),u=e("../lib/lang"),a=e("../clipboard"),f=s.isChrome<18,l=s.isIE,c=s.isChrome>63,h=400,p=e("../lib/keys"),d=p.KEY_MODS,v=s.isIOS,m=v?/\s/:/\n/,g=s.isMobile,y;y=function(e,t){function Q(){T=!0,n.blur(),n.focus(),T=!1}function Y(e){e.keyCode==27&&n.value.lengthk&&N[s]=="\n")o=p.end;else if(rk&&N.slice(0,s).split("\n").length>2)o=p.down;else if(s>k&&N[s-1]==" ")o=p.right,u=d.option;else if(s>k||s==k&&k!=C&&r==s)o=p.right;r!==s&&(u|=d.shift);if(o){var a=t.onCommandKey({},u,o);if(!a&&t.commands){o=p.keyCodeToString(o);var f=t.commands.findKeyCommand(u,o);f&&t.execCommand(f)}C=r,k=s,H("")}};document.addEventListener("selectionchange",s),t.on("destroy",function(){document.removeEventListener("selectionchange",s)})}var n=o.createElement("textarea");n.className="ace_text-input",n.setAttribute("wrap","off"),n.setAttribute("autocorrect","off"),n.setAttribute("autocapitalize","off"),n.setAttribute("spellcheck","false"),n.style.opacity="0",e.insertBefore(n,e.firstChild);var y=!1,b=!1,w=!1,E=!1,S="";g||(n.style.fontSize="1px");var x=!1,T=!1,N="",C=0,k=0,L=0,A=Number.MAX_SAFE_INTEGER,O=Number.MIN_SAFE_INTEGER,M=0;try{var _=document.activeElement===n}catch(D){}this.setNumberOfExtraLines=function(e){A=Number.MAX_SAFE_INTEGER,O=Number.MIN_SAFE_INTEGER;if(e<0){M=0;return}M=e},this.setAriaOptions=function(e){e.activeDescendant?(n.setAttribute("aria-haspopup","true"),n.setAttribute("aria-autocomplete",e.inline?"both":"list"),n.setAttribute("aria-activedescendant",e.activeDescendant)):(n.setAttribute("aria-haspopup","false"),n.setAttribute("aria-autocomplete","both"),n.removeAttribute("aria-activedescendant")),e.role&&n.setAttribute("role",e.role);if(e.setLabel){n.setAttribute("aria-roledescription",i("text-input.aria-roledescription","editor"));var r="";t.$textInputAriaLabel&&(r+="".concat(t.$textInputAriaLabel,", "));if(t.session){var s=t.session.selection.cursor.row;r+=i("text-input.aria-label","Cursor at row $0",[s+1])}n.setAttribute("aria-label",r)}},this.setAriaOptions({role:"textbox"}),r.addListener(n,"blur",function(e){if(T)return;t.onBlur(e),_=!1},t),r.addListener(n,"focus",function(e){if(T)return;_=!0;if(s.isEdge)try{if(!document.hasFocus())return}catch(e){}t.onFocus(e),s.isEdge?setTimeout(H):H()},t),this.$focusScroll=!1,this.focus=function(){this.setAriaOptions({setLabel:t.renderer.enableKeyboardAccessibility});if(S||c||this.$focusScroll=="browser")return n.focus({preventScroll:!0});var e=n.style.top;n.style.position="fixed",n.style.top="0px";try{var r=n.getBoundingClientRect().top!=0}catch(i){return}var s=[];if(r){var o=n.parentElement;while(o&&o.nodeType==1)s.push(o),o.setAttribute("ace_nocontext","true"),!o.parentElement&&o.getRootNode?o=o.getRootNode().host:o=o.parentElement}n.focus({preventScroll:!0}),r&&s.forEach(function(e){e.removeAttribute("ace_nocontext")}),setTimeout(function(){n.style.position="",n.style.top=="0px"&&(n.style.top=e)},0)},this.blur=function(){n.blur()},this.isFocused=function(){return _},t.on("beforeEndOperation",function(){var e=t.curOp,r=e&&e.command&&e.command.name;if(r=="insertstring")return;var i=r&&(e.docChanged||e.selectionChanged);w&&i&&(N=n.value="",K()),H()});var P=function(e,n){var r=n;for(var i=1;i<=e-A&&i<2*M+1;i++)r+=t.session.getLine(e-i).length+1;return r},H=v?function(e){if(!_||y&&!e||E)return;e||(e="");var r="\n ab"+e+"cde fg\n";r!=n.value&&(n.value=N=r);var i=4,s=4+(e.length||(t.selection.isEmpty()?0:1));(C!=i||k!=s)&&n.setSelectionRange(i,s),C=i,k=s}:function(){if(w||E)return;if(!_&&!I)return;w=!0;var e=0,r=0,i="";if(t.session){var s=t.selection,o=s.getRange(),u=s.cursor.row;if(u===O+1)A=O+1,O=A+2*M;else if(u===A-1)O=A-1,A=O-2*M;else if(uO+1)A=u>M?u-M:0,O=u>M?u+M:2*M;var a=[];for(var f=A;f<=O;f++)a.push(t.session.getLine(f));i=a.join("\n"),e=P(o.start.row,o.start.column),r=P(o.end.row,o.end.column);if(o.start.rowO){var c=t.session.getLine(O+1);r=o.end.row>O+1?c.length:o.end.column,r+=i.length+1,i=i+"\n"+c}else g&&u>0&&(i="\n"+i,r+=1,e+=1);i.length>h&&(e=N.length&&e.value===N&&N&&e.selectionEnd!==k},j=function(e){if(w)return;y?y=!1:B(n)?(t.selectAll(),H()):g&&n.selectionStart!=C&&H()},F=null;this.setInputHandler=function(e){F=e},this.getInputHandler=function(){return F};var I=!1,q=function(e,r){I&&(I=!1);if(b)return H(),e&&t.onPaste(e),b=!1,"";var i=n.selectionStart,o=n.selectionEnd,u=C,a=N.length-k,f=e,l=e.length-i,c=e.length-o,h=0;while(u>0&&N[h]==e[h])h++,u--;f=f.slice(h),h=1;while(a>0&&N.length-h>C-1&&N[N.length-h]==e[e.length-h])h++,a--;l-=h-1,c-=h-1;var p=f.length-h+1;p<0&&(u=-p,p=0),f=f.slice(0,p);if(!r&&!f&&!l&&!u&&!a&&!c)return"";E=!0;var d=!1;return s.isAndroid&&f==". "&&(f=" ",d=!0),f&&!u&&!a&&!l&&!c||x?t.onTextInput(f):t.onTextInput(f,{extendLeft:u,extendRight:a,restoreStart:l,restoreEnd:c}),E=!1,N=e,C=i,k=o,L=c,d?"\n":f},R=function(e){if(w)return J();if(e&&e.inputType){if(e.inputType=="historyUndo")return t.execCommand("undo");if(e.inputType=="historyRedo")return t.execCommand("redo")}var r=n.value,i=q(r,!0);(r.length>h+100||m.test(i)||g&&C<1&&C==k)&&H()},U=function(e,t,n){var r=e.clipboardData||window.clipboardData;if(!r||f)return;var i=l||n?"Text":"text/plain";try{return t?r.setData(i,t)!==!1:r.getData(i)}catch(e){if(!n)return U(e,t,!0)}},z=function(e,i){var s=t.getCopyText();if(!s)return r.preventDefault(e);U(e,s)?(v&&(H(s),y=s,setTimeout(function(){y=!1},10)),i?t.onCut():t.onCopy(),r.preventDefault(e)):(y=!0,n.value=s,n.select(),setTimeout(function(){y=!1,H(),i?t.onCut():t.onCopy()}))},W=function(e){z(e,!0)},X=function(e){z(e,!1)},V=function(e){var i=U(e);if(a.pasteCancelled())return;typeof i=="string"?(i&&t.onPaste(i,e),s.isIE&&setTimeout(H),r.preventDefault(e)):(n.value="",b=!0)};r.addCommandKeyListener(n,function(e,n,r){if(w)return;return t.onCommandKey(e,n,r)},t),r.addListener(n,"select",j,t),r.addListener(n,"input",R,t),r.addListener(n,"cut",W,t),r.addListener(n,"copy",X,t),r.addListener(n,"paste",V,t),(!("oncut"in n)||!("oncopy"in n)||!("onpaste"in n))&&r.addListener(e,"keydown",function(e){if(s.isMac&&!e.metaKey||!e.ctrlKey)return;switch(e.keyCode){case 67:X(e);break;case 86:V(e);break;case 88:W(e)}},t);var $=function(e){if(w||!t.onCompositionStart||t.$readOnly)return;w={};if(x)return;e.data&&(w.useTextareaForIME=!1),setTimeout(J,0),t._signal("compositionStart"),t.on("mousedown",Q);var r=t.getSelectionRange();r.end.row=r.start.row,r.end.column=r.start.column,w.markerRange=r,w.selectionStart=C,t.onCompositionStart(w),w.useTextareaForIME?(N=n.value="",C=0,k=0):(n.msGetInputContext&&(w.context=n.msGetInputContext()),n.getInputContext&&(w.context=n.getInputContext()))},J=function(){if(!w||!t.onCompositionUpdate||t.$readOnly)return;if(x)return Q();if(w.useTextareaForIME)t.onCompositionUpdate(n.value);else{var e=n.value;q(e),w.markerRange&&(w.context&&(w.markerRange.start.column=w.selectionStart=w.context.compositionStartOffset),w.markerRange.end.column=w.markerRange.start.column+k-w.selectionStart+L)}},K=function(e){if(!t.onCompositionEnd||t.$readOnly)return;w=!1,t.onCompositionEnd(),t.off("mousedown",Q),e&&R()},G=u.delayedCall(J,50).schedule.bind(null,null);r.addListener(n,"compositionstart",$,t),r.addListener(n,"compositionupdate",J,t),r.addListener(n,"keyup",Y,t),r.addListener(n,"keydown",G,t),r.addListener(n,"compositionend",K,t),this.getElement=function(){return n},this.setCommandMode=function(e){x=e,n.readOnly=!1},this.setReadOnly=function(e){x||(n.readOnly=e)},this.setCopyWithEmptySelection=function(e){},this.onContextMenu=function(e){I=!0,H(),t._emit("nativecontextmenu",{target:t,domEvent:e}),this.moveToMouse(e,!0)},this.moveToMouse=function(e,i){S||(S=n.style.cssText),n.style.cssText=(i?"z-index:100000;":"")+(s.isIE?"opacity:0.1;":"")+"text-indent: -"+(C+k)*t.renderer.characterWidth*.5+"px;";var u=t.container.getBoundingClientRect(),a=o.computedStyle(t.container),f=u.top+(parseInt(a.borderTopWidth)||0),l=u.left+(parseInt(u.borderLeftWidth)||0),c=u.bottom-f-n.clientHeight-2,h=function(e){o.translate(n,e.clientX-l-2,Math.min(e.clientY-f-2,c))};h(e);if(e.type!="mousedown")return;t.renderer.$isMousePressed=!0,clearTimeout(Z),s.isWin&&r.capture(t.container,h,et)},this.onContextMenuClose=et;var Z,tt=function(e){t.textInput.onContextMenu(e),et()};r.addListener(n,"mouseup",tt,t),r.addListener(n,"mousedown",function(e){e.preventDefault(),et()},t),r.addListener(t.renderer.scroller,"contextmenu",tt,t),r.addListener(n,"contextmenu",tt,t),v&&nt(e,t,n),this.destroy=function(){n.parentElement&&n.parentElement.removeChild(n)}},t.TextInput=y,t.$setUserAgentForTests=function(e,t){g=e,v=t}}),ace.define("ace/mouse/default_handlers",["require","exports","module","ace/lib/useragent"],function(e,t,n){"use strict";function u(e,t,n,r){return Math.sqrt(Math.pow(n-e,2)+Math.pow(r-t,2))}function a(e,t){if(e.start.row==e.end.row)var n=2*t.column-e.start.column-e.end.column;else if(e.start.row==e.end.row-1&&!e.start.column&&!e.end.column)var n=t.column-4;else var n=2*t.row-e.start.row-e.end.row;return n<0?{cursor:e.start,anchor:e.end}:{cursor:e.end,anchor:e.start}}var r=e("../lib/useragent"),i=0,s=550,o=function(){function e(e){e.$clickSelection=null;var t=e.editor;t.setDefaultHandler("mousedown",this.onMouseDown.bind(e)),t.setDefaultHandler("dblclick",this.onDoubleClick.bind(e)),t.setDefaultHandler("tripleclick",this.onTripleClick.bind(e)),t.setDefaultHandler("quadclick",this.onQuadClick.bind(e)),t.setDefaultHandler("mousewheel",this.onMouseWheel.bind(e));var n=["select","startSelect","selectEnd","selectAllEnd","selectByWordsEnd","selectByLinesEnd","dragWait","dragWaitEnd","focusWait"];n.forEach(function(t){e[t]=this[t]},this),e.selectByLines=this.extendSelectionBy.bind(e,"getLineRange"),e.selectByWords=this.extendSelectionBy.bind(e,"getWordRange")}return e.prototype.onMouseDown=function(e){var t=e.inSelection(),n=e.getDocumentPosition();this.mousedownEvent=e;var i=this.editor,s=e.getButton();if(s!==0){var o=i.getSelectionRange(),u=o.isEmpty();(u||s==1)&&i.selection.moveToPosition(n),s==2&&(i.textInput.onContextMenu(e.domEvent),r.isMozilla||e.preventDefault());return}this.mousedownEvent.time=Date.now();if(t&&!i.isFocused()){i.focus();if(this.$focusTimeout&&!this.$clickSelection&&!i.inMultiSelectMode){this.setState("focusWait"),this.captureMouse(e);return}}return this.captureMouse(e),this.startSelect(n,e.domEvent._clicks>1),e.preventDefault()},e.prototype.startSelect=function(e,t){e=e||this.editor.renderer.screenToTextCoordinates(this.x,this.y);var n=this.editor;if(!this.mousedownEvent)return;this.mousedownEvent.getShiftKey()?n.selection.selectToPosition(e):t||n.selection.moveToPosition(e),t||this.select(),n.setStyle("ace_selecting"),this.setState("select")},e.prototype.select=function(){var e,t=this.editor,n=t.renderer.screenToTextCoordinates(this.x,this.y);if(this.$clickSelection){var r=this.$clickSelection.comparePoint(n);if(r==-1)e=this.$clickSelection.end;else if(r==1)e=this.$clickSelection.start;else{var i=a(this.$clickSelection,n);n=i.cursor,e=i.anchor}t.selection.setSelectionAnchor(e.row,e.column)}t.selection.selectToPosition(n),t.renderer.scrollCursorIntoView()},e.prototype.extendSelectionBy=function(e){var t,n=this.editor,r=n.renderer.screenToTextCoordinates(this.x,this.y),i=n.selection[e](r.row,r.column);if(this.$clickSelection){var s=this.$clickSelection.comparePoint(i.start),o=this.$clickSelection.comparePoint(i.end);if(s==-1&&o<=0){t=this.$clickSelection.end;if(i.end.row!=r.row||i.end.column!=r.column)r=i.start}else if(o==1&&s>=0){t=this.$clickSelection.start;if(i.start.row!=r.row||i.start.column!=r.column)r=i.end}else if(s==-1&&o==1)r=i.end,t=i.start;else{var u=a(this.$clickSelection,r);r=u.cursor,t=u.anchor}n.selection.setSelectionAnchor(t.row,t.column)}n.selection.selectToPosition(r),n.renderer.scrollCursorIntoView()},e.prototype.selectByLinesEnd=function(){this.$clickSelection=null,this.editor.unsetStyle("ace_selecting")},e.prototype.focusWait=function(){var e=u(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y),t=Date.now();(e>i||t-this.mousedownEvent.time>this.$focusTimeout)&&this.startSelect(this.mousedownEvent.getDocumentPosition())},e.prototype.onDoubleClick=function(e){var t=e.getDocumentPosition(),n=this.editor,r=n.session,i=r.getBracketRange(t);i?(i.isEmpty()&&(i.start.column--,i.end.column++),this.setState("select")):(i=n.selection.getWordRange(t.row,t.column),this.setState("selectByWords")),this.$clickSelection=i,this.select()},e.prototype.onTripleClick=function(e){var t=e.getDocumentPosition(),n=this.editor;this.setState("selectByLines");var r=n.getSelectionRange();r.isMultiLine()&&r.contains(t.row,t.column)?(this.$clickSelection=n.selection.getLineRange(r.start.row),this.$clickSelection.end=n.selection.getLineRange(r.end.row).end):this.$clickSelection=n.selection.getLineRange(t.row),this.select()},e.prototype.onQuadClick=function(e){var t=this.editor;t.selectAll(),this.$clickSelection=t.getSelectionRange(),this.setState("selectAll")},e.prototype.onMouseWheel=function(e){if(e.getAccelKey())return;e.getShiftKey()&&e.wheelY&&!e.wheelX&&(e.wheelX=e.wheelY,e.wheelY=0);var t=this.editor;this.$lastScroll||(this.$lastScroll={t:0,vx:0,vy:0,allowed:0});var n=this.$lastScroll,r=e.domEvent.timeStamp,i=r-n.t,o=i?e.wheelX/i:n.vx,u=i?e.wheelY/i:n.vy;i=1&&t.renderer.isScrollableBy(e.wheelX*e.speed,0)&&(f=!0),a<=1&&t.renderer.isScrollableBy(0,e.wheelY*e.speed)&&(f=!0);if(f)n.allowed=r;else if(r-n.allowedn.clientHeight;r||t.preventDefault()}}),ace.define("ace/tooltip",["require","exports","module","ace/lib/dom","ace/lib/event","ace/range","ace/lib/scroll"],function(e,t,n){"use strict";var r=this&&this.__extends||function(){var e=function(t,n){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},e(t,n)};return function(t,n){function r(){this.constructor=t}if(typeof n!="function"&&n!==null)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");e(t,n),t.prototype=n===null?Object.create(n):(r.prototype=n.prototype,new r)}}(),i=this&&this.__values||function(e){var t=typeof Symbol=="function"&&Symbol.iterator,n=t&&e[t],r=0;if(n)return n.call(e);if(e&&typeof e.length=="number")return{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")},s=e("./lib/dom"),o=e("./lib/event"),u=e("./range").Range,a=e("./lib/scroll").preventParentScroll,f="ace_tooltip",l=function(){function e(e){this.isOpen=!1,this.$element=null,this.$parentNode=e}return e.prototype.$init=function(){return this.$element=s.createElement("div"),this.$element.className=f,this.$element.style.display="none",this.$parentNode.appendChild(this.$element),this.$element},e.prototype.getElement=function(){return this.$element||this.$init()},e.prototype.setText=function(e){this.getElement().textContent=e},e.prototype.setHtml=function(e){this.getElement().innerHTML=e},e.prototype.setPosition=function(e,t){this.getElement().style.left=e+"px",this.getElement().style.top=t+"px"},e.prototype.setClassName=function(e){s.addCssClass(this.getElement(),e)},e.prototype.setTheme=function(e){this.$element.className=f+" "+(e.isDark?"ace_dark ":"")+(e.cssClass||"")},e.prototype.show=function(e,t,n){e!=null&&this.setText(e),t!=null&&n!=null&&this.setPosition(t,n),this.isOpen||(this.getElement().style.display="block",this.isOpen=!0)},e.prototype.hide=function(e){this.isOpen&&(this.getElement().style.display="none",this.getElement().className=f,this.isOpen=!1)},e.prototype.getHeight=function(){return this.getElement().offsetHeight},e.prototype.getWidth=function(){return this.getElement().offsetWidth},e.prototype.destroy=function(){this.isOpen=!1,this.$element&&this.$element.parentNode&&this.$element.parentNode.removeChild(this.$element)},e}(),c=function(){function e(){this.popups=[]}return e.prototype.addPopup=function(e){this.popups.push(e),this.updatePopups()},e.prototype.removePopup=function(e){var t=this.popups.indexOf(e);t!==-1&&(this.popups.splice(t,1),this.updatePopups())},e.prototype.updatePopups=function(){var e,t,n,r;this.popups.sort(function(e,t){return t.priority-e.priority});var s=[];try{for(var o=i(this.popups),u=o.next();!u.done;u=o.next()){var a=u.value,f=!0;try{for(var l=(n=void 0,i(s)),c=l.next();!c.done;c=l.next()){var h=c.value;if(this.doPopupsOverlap(h,a)){f=!1;break}}}catch(p){n={error:p}}finally{try{c&&!c.done&&(r=l.return)&&r.call(l)}finally{if(n)throw n.error}}f?s.push(a):a.hide()}}catch(d){e={error:d}}finally{try{u&&!u.done&&(t=o.return)&&t.call(o)}finally{if(e)throw e.error}}},e.prototype.doPopupsOverlap=function(e,t){var n=e.getElement().getBoundingClientRect(),r=t.getElement().getBoundingClientRect();return n.leftr.left&&n.topr.top},e}(),h=new c;t.popupManager=h,t.Tooltip=l;var p=function(e){function t(t){t===void 0&&(t=document.body);var n=e.call(this,t)||this;n.timeout=undefined,n.lastT=0,n.idleTime=350,n.lastEvent=undefined,n.onMouseOut=n.onMouseOut.bind(n),n.onMouseMove=n.onMouseMove.bind(n),n.waitForHover=n.waitForHover.bind(n),n.hide=n.hide.bind(n);var r=n.getElement();return r.style.whiteSpace="pre-wrap",r.style.pointerEvents="auto",r.addEventListener("mouseout",n.onMouseOut),r.tabIndex=-1,r.addEventListener("blur",function(){r.contains(document.activeElement)||this.hide()}.bind(n)),r.addEventListener("wheel",a),n}return r(t,e),t.prototype.addToEditor=function(e){e.on("mousemove",this.onMouseMove),e.on("mousedown",this.hide),e.renderer.getMouseEventTarget().addEventListener("mouseout",this.onMouseOut,!0)},t.prototype.removeFromEditor=function(e){e.off("mousemove",this.onMouseMove),e.off("mousedown",this.hide),e.renderer.getMouseEventTarget().removeEventListener("mouseout",this.onMouseOut,!0),this.timeout&&(clearTimeout(this.timeout),this.timeout=null)},t.prototype.onMouseMove=function(e,t){this.lastEvent=e,this.lastT=Date.now();var n=t.$mouseHandler.isMousePressed;if(this.isOpen){var r=this.lastEvent&&this.lastEvent.getDocumentPosition();(!this.range||!this.range.contains(r.row,r.column)||n||this.isOutsideOfText(this.lastEvent))&&this.hide()}if(this.timeout||n)return;this.lastEvent=e,this.timeout=setTimeout(this.waitForHover,this.idleTime)},t.prototype.waitForHover=function(){this.timeout&&clearTimeout(this.timeout);var e=Date.now()-this.lastT;if(this.idleTime-e>10){this.timeout=setTimeout(this.waitForHover,this.idleTime-e);return}this.timeout=null,this.lastEvent&&!this.isOutsideOfText(this.lastEvent)&&this.$gatherData(this.lastEvent,this.lastEvent.editor)},t.prototype.isOutsideOfText=function(e){var t=e.editor,n=e.getDocumentPosition(),r=t.session.getLine(n.row);if(n.column==r.length){var i=t.renderer.pixelToScreenCoordinates(e.clientX,e.clientY),s=t.session.documentToScreenPosition(n.row,n.column);if(s.column!=i.column||s.row!=i.row)return!0}return!1},t.prototype.setDataProvider=function(e){this.$gatherData=e},t.prototype.showForRange=function(e,t,n,r){var i=10;if(r&&r!=this.lastEvent)return;if(this.isOpen&&document.activeElement==this.getElement())return;var s=e.renderer;this.isOpen||(h.addPopup(this),this.$registerCloseEvents(),this.setTheme(s.theme)),this.isOpen=!0,this.addMarker(t,e.session),this.range=u.fromPoints(t.start,t.end);var o=s.textToScreenCoordinates(t.start.row,t.start.column),a=s.scroller.getBoundingClientRect();o.pageXt.session.documentToScreenRow(a.row,a.column))return f()}r.showTooltip(i);if(!r.isOpen)return;t.on("mousewheel",f);if(e.$tooltipFollowsMouse)l(u);else{var c=u.getGutterRow(),h=n.$lines.get(c);if(h){var p=h.element.querySelector(".ace_gutter_annotation"),d=p.getBoundingClientRect(),v=r.getElement().style;v.left=d.right+"px",v.top=d.bottom+"px"}else l(u)}}function f(){i&&(i=clearTimeout(i)),r.isOpen&&(r.hideTooltip(),t.off("mousewheel",f))}function l(e){r.setPosition(e.x,e.y)}var t=e.editor,n=t.renderer.$gutterLayer,r=new c(t);e.editor.setDefaultHandler("guttermousedown",function(r){if(!t.isFocused()||r.getButton()!=0)return;var i=n.getRegion(r);if(i=="foldWidgets")return;var s=r.getDocumentPosition().row,o=t.session.selection;if(r.getShiftKey())o.selectTo(s,0);else{if(r.domEvent.detail==2)return t.selectAll(),r.preventDefault();e.$clickSelection=t.selection.getLineRange(s)}return e.setState("selectByLines"),e.captureMouse(r),r.preventDefault()});var i,u;e.editor.setDefaultHandler("guttermousemove",function(t){var n=t.domEvent.target||t.domEvent.srcElement;if(s.hasCssClass(n,"ace_fold-widget"))return f();r.isOpen&&e.$tooltipFollowsMouse&&l(t),u=t;if(i)return;i=setTimeout(function(){i=null,u&&!e.isMousePressed?a():f()},50)}),o.addListener(t.renderer.$gutter,"mouseout",function(e){u=null;if(!r.isOpen||i)return;i=setTimeout(function(){i=null,f()},50)},t),t.on("changeSession",f),t.on("input",f)}var r=this&&this.__extends||function(){var e=function(t,n){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},e(t,n)};return function(t,n){function r(){this.constructor=t}if(typeof n!="function"&&n!==null)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");e(t,n),t.prototype=n===null?Object.create(n):(r.prototype=n.prototype,new r)}}(),i=this&&this.__values||function(e){var t=typeof Symbol=="function"&&Symbol.iterator,n=t&&e[t],r=0;if(n)return n.call(e);if(e&&typeof e.length=="number")return{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")},s=e("../lib/dom"),o=e("../lib/event"),u=e("../tooltip").Tooltip,a=e("../config").nls,f=e("../lib/lang");t.GutterHandler=l;var c=function(e){function t(t){var n=e.call(this,t.container)||this;return n.editor=t,n}return r(t,e),t.prototype.setPosition=function(e,t){var n=window.innerWidth||document.documentElement.clientWidth,r=window.innerHeight||document.documentElement.clientHeight,i=this.getWidth(),s=this.getHeight();e+=15,t+=15,e+i>n&&(e-=e+i-n),t+s>r&&(t-=20+s),u.prototype.setPosition.call(this,e,t)},Object.defineProperty(t,"annotationLabels",{get:function(){return{error:{singular:a("gutter-tooltip.aria-label.error.singular","error"),plural:a("gutter-tooltip.aria-label.error.plural","errors")},warning:{singular:a("gutter-tooltip.aria-label.warning.singular","warning"),plural:a("gutter-tooltip.aria-label.warning.plural","warnings")},info:{singular:a("gutter-tooltip.aria-label.info.singular","information message"),plural:a("gutter-tooltip.aria-label.info.plural","information messages")}}},enumerable:!1,configurable:!0}),t.prototype.showTooltip=function(e){var n,r=this.editor.renderer.$gutterLayer,i=r.$annotations[e],o;i?o={displayText:Array.from(i.displayText),type:Array.from(i.type)}:o={displayText:[],type:[]};var u=r.session.getFoldLine(e);if(u&&r.$showFoldedAnnotations){var a={error:[],warning:[],info:[]},f;for(var l=e+1;l<=u.end.row;l++){if(!r.$annotations[l])continue;for(var c=0;ca?S=null:r-S>=u&&(t.renderer.scrollCursorIntoView(),S=null)}}function N(e,n){var r=Date.now(),i=t.renderer.layerConfig.lineHeight,s=t.renderer.layerConfig.characterWidth,u=t.renderer.scroller.getBoundingClientRect(),a={x:{left:p-u.left,right:u.right-p},y:{top:d-u.top,bottom:u.bottom-d}},f=Math.min(a.x.left,a.x.right),l=Math.min(a.y.top,a.y.bottom),c={row:e.row,column:e.column};f/s<=2&&(c.column+=a.x.left=o&&t.renderer.scrollCursorIntoView(c):E=r:E=null}function C(){var e=g;g=t.renderer.screenToTextCoordinates(p,d),T(g,e),N(g,e)}function k(){m=t.selection.toOrientedRange(),h=t.session.addMarker(m,"ace_selection",t.getSelectionStyle()),t.clearSelection(),t.isFocused()&&t.renderer.$cursorLayer.setBlinking(!1),clearInterval(v),C(),v=setInterval(C,20),y=0,i.addListener(document,"mousemove",O)}function L(){clearInterval(v),t.session.removeMarker(h),h=null,t.selection.fromOrientedRange(m),t.isFocused()&&!w&&t.$resetCursorStyle(),m=null,g=null,y=0,E=null,S=null,i.removeListener(document,"mousemove",O)}function O(){A==null&&(A=setTimeout(function(){A!=null&&h&&L()},20))}function M(e){var t=e.types;return!t||Array.prototype.some.call(t,function(e){return e=="text/plain"||e=="Text"})}function _(e){var t=["copy","copymove","all","uninitialized"],n=["move","copymove","linkmove","all","uninitialized"],r=s.isMac?e.altKey:e.ctrlKey,i="uninitialized";try{i=e.dataTransfer.effectAllowed.toLowerCase()}catch(e){}var o="none";return r&&t.indexOf(i)>=0?o="copy":n.indexOf(i)>=0?o="move":t.indexOf(i)>=0&&(o="copy"),o}var t=e.editor,n=r.createElement("div");n.style.cssText="top:-100px;position:absolute;z-index:2147483647;opacity:0.5",n.textContent="\u00a0";var f=["dragWait","dragWaitEnd","startDrag","dragReadyEnd","onMouseDrag"];f.forEach(function(t){e[t]=this[t]},this),t.on("mousedown",this.onMouseDown.bind(e));var c=t.container,h,p,d,v,m,g,y=0,b,w,E,S,x;this.onDragStart=function(e){if(this.cancelDrag||!c.draggable){var r=this;return setTimeout(function(){r.startSelect(),r.captureMouse(e)},0),e.preventDefault()}m=t.getSelectionRange();var i=e.dataTransfer;i.effectAllowed=t.getReadOnly()?"copy":"copyMove",t.container.appendChild(n),i.setDragImage&&i.setDragImage(n,0,0),setTimeout(function(){t.container.removeChild(n)}),i.clearData(),i.setData("Text",t.session.getTextRange()),w=!0,this.setState("drag")},this.onDragEnd=function(e){c.draggable=!1,w=!1,this.setState(null);if(!t.getReadOnly()){var n=e.dataTransfer.dropEffect;!b&&n=="move"&&t.session.remove(t.getSelectionRange()),t.$resetCursorStyle()}this.editor.unsetStyle("ace_dragging"),this.editor.renderer.setCursorStyle("")},this.onDragEnter=function(e){if(t.getReadOnly()||!M(e.dataTransfer))return;return p=e.clientX,d=e.clientY,h||k(),y++,e.dataTransfer.dropEffect=b=_(e),i.preventDefault(e)},this.onDragOver=function(e){if(t.getReadOnly()||!M(e.dataTransfer))return;return p=e.clientX,d=e.clientY,h||(k(),y++),A!==null&&(A=null),e.dataTransfer.dropEffect=b=_(e),i.preventDefault(e)},this.onDragLeave=function(e){y--;if(y<=0&&h)return L(),b=null,i.preventDefault(e)},this.onDrop=function(e){if(!g)return;var n=e.dataTransfer;if(w)switch(b){case"move":m.contains(g.row,g.column)?m={start:g,end:g}:m=t.moveText(m,g);break;case"copy":m=t.moveText(m,g,!0)}else{var r=n.getData("Text");m={start:g,end:t.session.insert(g,r)},t.focus(),b=null}return L(),i.preventDefault(e)},i.addListener(c,"dragstart",this.onDragStart.bind(e),t),i.addListener(c,"dragend",this.onDragEnd.bind(e),t),i.addListener(c,"dragenter",this.onDragEnter.bind(e),t),i.addListener(c,"dragover",this.onDragOver.bind(e),t),i.addListener(c,"dragleave",this.onDragLeave.bind(e),t),i.addListener(c,"drop",this.onDrop.bind(e),t);var A=null}function l(e,t,n,r){return Math.sqrt(Math.pow(n-e,2)+Math.pow(r-t,2))}var r=e("../lib/dom"),i=e("../lib/event"),s=e("../lib/useragent"),o=200,u=200,a=5;(function(){this.dragWait=function(){var e=Date.now()-this.mousedownEvent.time;e>this.editor.getDragDelay()&&this.startDrag()},this.dragWaitEnd=function(){var e=this.editor.container;e.draggable=!1,this.startSelect(this.mousedownEvent.getDocumentPosition()),this.selectEnd()},this.dragReadyEnd=function(e){this.editor.$resetCursorStyle(),this.editor.unsetStyle("ace_dragging"),this.editor.renderer.setCursorStyle(""),this.dragWaitEnd()},this.startDrag=function(){this.cancelDrag=!1;var e=this.editor,t=e.container;t.draggable=!0,e.renderer.$cursorLayer.setBlinking(!1),e.setStyle("ace_dragging");var n=s.isWin?"default":"move";e.renderer.setCursorStyle(n),this.setState("dragReady")},this.onMouseDrag=function(e){var t=this.editor.container;if(s.isIE&&this.state=="dragReady"){var n=l(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y);n>3&&t.dragDrop()}if(this.state==="dragWait"){var n=l(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y);n>0&&(t.draggable=!1,this.startSelect(this.mousedownEvent.getDocumentPosition()))}},this.onMouseDown=function(e){if(!this.$dragEnabled)return;this.mousedownEvent=e;var t=this.editor,n=e.inSelection(),r=e.getButton(),i=e.domEvent.detail||1;if(i===1&&r===0&&n){if(e.editor.inMultiSelectMode&&(e.getAccelKey()||e.getShiftKey()))return;this.mousedownEvent.time=Date.now();var o=e.domEvent.target||e.domEvent.srcElement;"unselectable"in o&&(o.unselectable="on");if(t.getDragDelay()){if(s.isWebKit){this.cancelDrag=!0;var u=t.container;u.draggable=!0}this.setState("dragWait")}else this.startDrag();this.captureMouse(e,this.onMouseDrag.bind(this)),e.defaultPrevented=!0}}}).call(f.prototype),t.DragdropHandler=f}),ace.define("ace/mouse/touch_handler",["require","exports","module","ace/mouse/mouse_event","ace/lib/event","ace/lib/dom"],function(e,t,n){"use strict";var r=e("./mouse_event").MouseEvent,i=e("../lib/event"),s=e("../lib/dom");t.addTouchListeners=function(e,t){function b(){var e=window.navigator&&window.navigator.clipboard,r=!1,i=function(){var n=t.getCopyText(),i=t.session.getUndoManager().hasUndo();y.replaceChild(s.buildDom(r?["span",!n&&o("selectall")&&["span",{"class":"ace_mobile-button",action:"selectall"},"Select All"],n&&o("copy")&&["span",{"class":"ace_mobile-button",action:"copy"},"Copy"],n&&o("cut")&&["span",{"class":"ace_mobile-button",action:"cut"},"Cut"],e&&o("paste")&&["span",{"class":"ace_mobile-button",action:"paste"},"Paste"],i&&o("undo")&&["span",{"class":"ace_mobile-button",action:"undo"},"Undo"],o("find")&&["span",{"class":"ace_mobile-button",action:"find"},"Find"],o("openCommandPalette")&&["span",{"class":"ace_mobile-button",action:"openCommandPalette"},"Palette"]]:["span"]),y.firstChild)},o=function(e){return t.commands.canExecute(e,t)},u=function(n){var s=n.target.getAttribute("action");if(s=="more"||!r)return r=!r,i();if(s=="paste")e.readText().then(function(e){t.execCommand(s,e)});else if(s){if(s=="cut"||s=="copy")e?e.writeText(t.getCopyText()):document.execCommand("copy");t.execCommand(s)}y.firstChild.style.display="none",r=!1,s!="openCommandPalette"&&t.focus()};y=s.buildDom(["div",{"class":"ace_mobile-menu",ontouchstart:function(e){n="menu",e.stopPropagation(),e.preventDefault(),t.textInput.focus()},ontouchend:function(e){e.stopPropagation(),e.preventDefault(),u(e)},onclick:u},["span"],["span",{"class":"ace_mobile-button",action:"more"},"..."]],t.container)}function w(){if(!t.getOption("enableMobileMenu")){y&&E();return}y||b();var e=t.selection.cursor,n=t.renderer.textToScreenCoordinates(e.row,e.column),r=t.renderer.textToScreenCoordinates(0,0).pageX,i=t.renderer.scrollLeft,s=t.container.getBoundingClientRect();y.style.top=n.pageY-s.top-3+"px",n.pageX-s.left=2?t.selection.getLineRange(p.row):t.session.getBracketRange(p);e&&!e.isEmpty()?t.selection.setRange(e):t.selection.selectWord(),n="wait"}function T(){h+=60,c=setInterval(function(){h--<=0&&(clearInterval(c),c=null),Math.abs(v)<.01&&(v=0),Math.abs(m)<.01&&(m=0),h<20&&(v=.9*v),h<20&&(m=.9*m);var e=t.session.getScrollTop();t.renderer.scrollBy(10*v,10*m),e==t.session.getScrollTop()&&(h=0)},10)}var n="scroll",o,u,a,f,l,c,h=0,p,d=0,v=0,m=0,g,y;i.addListener(e,"contextmenu",function(e){if(!g)return;var n=t.textInput.getElement();n.focus()},t),i.addListener(e,"touchstart",function(e){var i=e.touches;if(l||i.length>1){clearTimeout(l),l=null,a=-1,n="zoom";return}g=t.$mouseHandler.isMousePressed=!0;var s=t.renderer.layerConfig.lineHeight,c=t.renderer.layerConfig.lineHeight,y=e.timeStamp;f=y;var b=i[0],w=b.clientX,E=b.clientY;Math.abs(o-w)+Math.abs(u-E)>s&&(a=-1),o=e.clientX=w,u=e.clientY=E,v=m=0;var T=new r(e,t);p=T.getDocumentPosition();if(y-a<500&&i.length==1&&!h)d++,e.preventDefault(),e.button=0,x();else{d=0;var N=t.selection.cursor,C=t.selection.isEmpty()?N:t.selection.anchor,k=t.renderer.$cursorLayer.getPixelPosition(N,!0),L=t.renderer.$cursorLayer.getPixelPosition(C,!0),A=t.renderer.scroller.getBoundingClientRect(),O=t.renderer.layerConfig.offset,M=t.renderer.scrollLeft,_=function(e,t){return e/=c,t=t/s-.75,e*e+t*t};if(e.clientXP?"cursor":"anchor"),P<3.5?n="anchor":D<3.5?n="cursor":n="scroll",l=setTimeout(S,450)}a=y},t),i.addListener(e,"touchend",function(e){g=t.$mouseHandler.isMousePressed=!1,c&&clearInterval(c),n=="zoom"?(n="",h=0):l?(t.selection.moveToPosition(p),h=0,w()):n=="scroll"?(T(),E()):w(),clearTimeout(l),l=null},t),i.addListener(e,"touchmove",function(e){l&&(clearTimeout(l),l=null);var i=e.touches;if(i.length>1||n=="zoom")return;var s=i[0],a=o-s.clientX,c=u-s.clientY;if(n=="wait"){if(!(a*a+c*c>4))return e.preventDefault();n="cursor"}o=s.clientX,u=s.clientY,e.clientX=s.clientX,e.clientY=s.clientY;var h=e.timeStamp,p=h-f;f=h;if(n=="scroll"){var d=new r(e,t);d.speed=1,d.wheelX=a,d.wheelY=c,10*Math.abs(a)0)if(g==16){for(w=b;w-1){for(w=b;w=0;C--){if(r[C]!=N)break;t[C]=s}}}function I(e,t,n){if(o=e){u=i+1;while(u=e)u++;for(a=i,l=u-1;a=t.length||(o=n[r-1])!=b&&o!=w||(c=t[r+1])!=b&&c!=w)return E;return u&&(c=w),c==o?c:E;case k:o=r>0?n[r-1]:S;if(o==b&&r+10&&n[r-1]==b)return b;if(u)return E;p=r+1,h=t.length;while(p=1425&&d<=2303||d==64286;o=t[p];if(v&&(o==y||o==T))return y}if(r<1||(o=t[r-1])==S)return E;return n[r-1];case S:return u=!1,f=!0,s;case x:return l=!0,E;case O:case M:case D:case P:case _:u=!1;case H:return E}}function R(e){var t=e.charCodeAt(0),n=t>>8;return n==0?t>191?g:B[t]:n==5?/[\u0591-\u05f4]/.test(e)?y:g:n==6?/[\u0610-\u061a\u064b-\u065f\u06d6-\u06e4\u06e7-\u06ed]/.test(e)?A:/[\u0660-\u0669\u066b-\u066c]/.test(e)?w:t==1642?L:/[\u06f0-\u06f9]/.test(e)?b:T:n==32&&t<=8287?j[t&255]:n==254?t>=65136?T:E:E}function U(e){return e>="\u064b"&&e<="\u0655"}var r=["\u0621","\u0641"],i=["\u063a","\u064a"],s=0,o=0,u=!1,a=!1,f=!1,l=!1,c=!1,h=!1,p=[[0,3,0,1,0,0,0],[0,3,0,1,2,2,0],[0,3,0,17,2,0,1],[0,3,5,5,4,1,0],[0,3,21,21,4,0,1],[0,3,5,5,4,2,0]],d=[[2,0,1,1,0,1,0],[2,0,1,1,0,2,0],[2,0,2,1,3,2,0],[2,0,2,33,3,1,1]],v=0,m=1,g=0,y=1,b=2,w=3,E=4,S=5,x=6,T=7,N=8,C=9,k=10,L=11,A=12,O=13,M=14,_=15,D=16,P=17,H=18,B=[H,H,H,H,H,H,H,H,H,x,S,x,N,S,H,H,H,H,H,H,H,H,H,H,H,H,H,H,S,S,S,x,N,E,E,L,L,L,E,E,E,E,E,k,C,k,C,C,b,b,b,b,b,b,b,b,b,b,C,E,E,E,E,E,E,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,E,E,E,E,E,E,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,E,E,E,E,H,H,H,H,H,H,S,H,H,H,H,H,H,H,H,H,H,H,H,H,H,H,H,H,H,H,H,H,H,H,H,H,H,C,E,L,L,L,L,E,E,E,E,g,E,E,H,E,E,L,L,b,b,E,g,E,E,E,b,g,E,E,E,E,E],j=[N,N,N,N,N,N,N,N,N,N,N,H,H,H,g,y,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,N,S,O,M,_,D,P,C,L,L,L,L,L,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,C,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,N];t.L=g,t.R=y,t.EN=b,t.ON_R=3,t.AN=4,t.R_H=5,t.B=6,t.RLE=7,t.DOT="\u00b7",t.doBidiReorder=function(e,n,r){if(e.length<2)return{};var i=e.split(""),o=new Array(i.length),u=new Array(i.length),a=[];s=r?m:v,F(i,a,i.length,n);for(var f=0;fT&&n[f]0&&i[f-1]==="\u0644"&&/\u0622|\u0623|\u0625|\u0627/.test(i[f])&&(a[f-1]=a[f]=t.R_H,f++);i[i.length-1]===t.DOT&&(a[i.length-1]=t.B),i[0]==="\u202b"&&(a[0]=t.RLE);for(var f=0;f=0&&(e=this.session.$docRowCache[n])}return e},e.prototype.getSplitIndex=function(){var e=0,t=this.session.$screenRowCache;if(t.length){var n,r=this.session.$getRowCacheIndex(t,this.currentRow);while(this.currentRow-e>0){n=this.session.$getRowCacheIndex(t,this.currentRow-e-1);if(n!==r)break;r=n,e++}}else e=this.currentRow;return e},e.prototype.updateRowLine=function(e,t){e===undefined&&(e=this.getDocumentRow());var n=e===this.session.getLength()-1,s=n?this.EOF:this.EOL;this.wrapIndent=0,this.line=this.session.getLine(e),this.isRtlDir=this.$isRtl||this.line.charAt(0)===this.RLE;if(this.session.$useWrapMode){var o=this.session.$wrapData[e];o&&(t===undefined&&(t=this.getSplitIndex()),t>0&&o.length?(this.wrapIndent=o.indent,this.wrapOffset=this.wrapIndent*this.charWidths[r.L],this.line=tt?this.session.getOverwrite()?e:e-1:t,i=r.getVisualFromLogicalIdx(n,this.bidiMap),s=this.bidiMap.bidiLevels,o=0;!this.session.getOverwrite()&&e<=t&&s[i]%2!==0&&i++;for(var u=0;ut&&s[i]%2===0&&(o+=this.charWidths[s[i]]),this.wrapIndent&&(o+=this.isRtlDir?-1*this.wrapOffset:this.wrapOffset),this.isRtlDir&&(o+=this.rtlLineOffset),o},e.prototype.getSelections=function(e,t){var n=this.bidiMap,r=n.bidiLevels,i,s=[],o=0,u=Math.min(e,t)-this.wrapIndent,a=Math.max(e,t)-this.wrapIndent,f=!1,l=!1,c=0;this.wrapIndent&&(o+=this.isRtlDir?-1*this.wrapOffset:this.wrapOffset);for(var h,p=0;p=u&&hn+s/2){n+=s;if(r===i.length-1){s=0;break}s=this.charWidths[i[++r]]}return r>0&&i[r-1]%2!==0&&i[r]%2===0?(e0&&i[r-1]%2===0&&i[r]%2!==0?t=1+(e>n?this.bidiMap.logicalFromVisual[r]:this.bidiMap.logicalFromVisual[r-1]):this.isRtlDir&&r===i.length-1&&s===0&&i[r-1]%2===0||!this.isRtlDir&&r===0&&i[r]%2!==0?t=1+this.bidiMap.logicalFromVisual[r]:(r>0&&i[r-1]%2!==0&&s!==0&&r--,t=this.bidiMap.logicalFromVisual[r]),t===0&&this.isRtlDir&&t++,t+this.wrapIndent},e}();t.BidiHandler=o}),ace.define("ace/selection",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/lib/event_emitter","ace/range"],function(e,t,n){"use strict";var r=e("./lib/oop"),i=e("./lib/lang"),s=e("./lib/event_emitter").EventEmitter,o=e("./range").Range,u=function(){function e(e){this.session=e,this.doc=e.getDocument(),this.clearSelection(),this.cursor=this.lead=this.doc.createAnchor(0,0),this.anchor=this.doc.createAnchor(0,0),this.$silent=!1;var t=this;this.cursor.on("change",function(e){t.$cursorChanged=!0,t.$silent||t._emit("changeCursor"),!t.$isEmpty&&!t.$silent&&t._emit("changeSelection"),!t.$keepDesiredColumnOnChange&&e.old.column!=e.value.column&&(t.$desiredColumn=null)}),this.anchor.on("change",function(){t.$anchorChanged=!0,!t.$isEmpty&&!t.$silent&&t._emit("changeSelection")})}return e.prototype.isEmpty=function(){return this.$isEmpty||this.anchor.row==this.lead.row&&this.anchor.column==this.lead.column},e.prototype.isMultiLine=function(){return!this.$isEmpty&&this.anchor.row!=this.cursor.row},e.prototype.getCursor=function(){return this.lead.getPosition()},e.prototype.setAnchor=function(e,t){this.$isEmpty=!1,this.anchor.setPosition(e,t)},e.prototype.getAnchor=function(){return this.$isEmpty?this.getSelectionLead():this.anchor.getPosition()},e.prototype.getSelectionLead=function(){return this.lead.getPosition()},e.prototype.isBackwards=function(){var e=this.anchor,t=this.lead;return e.row>t.row||e.row==t.row&&e.column>t.column},e.prototype.getRange=function(){var e=this.anchor,t=this.lead;return this.$isEmpty?o.fromPoints(t,t):this.isBackwards()?o.fromPoints(t,e):o.fromPoints(e,t)},e.prototype.clearSelection=function(){this.$isEmpty||(this.$isEmpty=!0,this._emit("changeSelection"))},e.prototype.selectAll=function(){this.$setSelection(0,0,Number.MAX_VALUE,Number.MAX_VALUE)},e.prototype.setRange=function(e,t){var n=t?e.end:e.start,r=t?e.start:e.end;this.$setSelection(n.row,n.column,r.row,r.column)},e.prototype.$setSelection=function(e,t,n,r){if(this.$silent)return;var i=this.$isEmpty,s=this.inMultiSelectMode;this.$silent=!0,this.$cursorChanged=this.$anchorChanged=!1,this.anchor.setPosition(e,t),this.cursor.setPosition(n,r),this.$isEmpty=!o.comparePoints(this.anchor,this.cursor),this.$silent=!1,this.$cursorChanged&&this._emit("changeCursor"),(this.$cursorChanged||this.$anchorChanged||i!=this.$isEmpty||s)&&this._emit("changeSelection")},e.prototype.$moveSelection=function(e){var t=this.lead;this.$isEmpty&&this.setSelectionAnchor(t.row,t.column),e.call(this)},e.prototype.selectTo=function(e,t){this.$moveSelection(function(){this.moveCursorTo(e,t)})},e.prototype.selectToPosition=function(e){this.$moveSelection(function(){this.moveCursorToPosition(e)})},e.prototype.moveTo=function(e,t){this.clearSelection(),this.moveCursorTo(e,t)},e.prototype.moveToPosition=function(e){this.clearSelection(),this.moveCursorToPosition(e)},e.prototype.selectUp=function(){this.$moveSelection(this.moveCursorUp)},e.prototype.selectDown=function(){this.$moveSelection(this.moveCursorDown)},e.prototype.selectRight=function(){this.$moveSelection(this.moveCursorRight)},e.prototype.selectLeft=function(){this.$moveSelection(this.moveCursorLeft)},e.prototype.selectLineStart=function(){this.$moveSelection(this.moveCursorLineStart)},e.prototype.selectLineEnd=function(){this.$moveSelection(this.moveCursorLineEnd)},e.prototype.selectFileEnd=function(){this.$moveSelection(this.moveCursorFileEnd)},e.prototype.selectFileStart=function(){this.$moveSelection(this.moveCursorFileStart)},e.prototype.selectWordRight=function(){this.$moveSelection(this.moveCursorWordRight)},e.prototype.selectWordLeft=function(){this.$moveSelection(this.moveCursorWordLeft)},e.prototype.getWordRange=function(e,t){if(typeof t=="undefined"){var n=e||this.lead;e=n.row,t=n.column}return this.session.getWordRange(e,t)},e.prototype.selectWord=function(){this.setSelectionRange(this.getWordRange())},e.prototype.selectAWord=function(){var e=this.getCursor(),t=this.session.getAWordRange(e.row,e.column);this.setSelectionRange(t)},e.prototype.getLineRange=function(e,t){var n=typeof e=="number"?e:this.lead.row,r,i=this.session.getFoldLine(n);return i?(n=i.start.row,r=i.end.row):r=n,t===!0?new o(n,0,r,this.session.getLine(r).length):new o(n,0,r+1,0)},e.prototype.selectLine=function(){this.setSelectionRange(this.getLineRange())},e.prototype.moveCursorUp=function(){this.moveCursorBy(-1,0)},e.prototype.moveCursorDown=function(){this.moveCursorBy(1,0)},e.prototype.wouldMoveIntoSoftTab=function(e,t,n){var r=e.column,i=e.column+t;return n<0&&(r=e.column-t,i=e.column),this.session.isTabStop(e)&&this.doc.getLine(e.row).slice(r,i).split(" ").length-1==t},e.prototype.moveCursorLeft=function(){var e=this.lead.getPosition(),t;if(t=this.session.getFoldAt(e.row,e.column,-1))this.moveCursorTo(t.start.row,t.start.column);else if(e.column===0)e.row>0&&this.moveCursorTo(e.row-1,this.doc.getLine(e.row-1).length);else{var n=this.session.getTabSize();this.wouldMoveIntoSoftTab(e,n,-1)&&!this.session.getNavigateWithinSoftTabs()?this.moveCursorBy(0,-n):this.moveCursorBy(0,-1)}},e.prototype.moveCursorRight=function(){var e=this.lead.getPosition(),t;if(t=this.session.getFoldAt(e.row,e.column,1))this.moveCursorTo(t.end.row,t.end.column);else if(this.lead.column==this.doc.getLine(this.lead.row).length)this.lead.row0&&(t.column=r)}}this.moveCursorTo(t.row,t.column)},e.prototype.moveCursorFileEnd=function(){var e=this.doc.getLength()-1,t=this.doc.getLine(e).length;this.moveCursorTo(e,t)},e.prototype.moveCursorFileStart=function(){this.moveCursorTo(0,0)},e.prototype.moveCursorLongWordRight=function(){var e=this.lead.row,t=this.lead.column,n=this.doc.getLine(e),r=n.substring(t);this.session.nonTokenRe.lastIndex=0,this.session.tokenRe.lastIndex=0;var i=this.session.getFoldAt(e,t,1);if(i){this.moveCursorTo(i.end.row,i.end.column);return}this.session.nonTokenRe.exec(r)&&(t+=this.session.nonTokenRe.lastIndex,this.session.nonTokenRe.lastIndex=0,r=n.substring(t));if(t>=n.length){this.moveCursorTo(e,n.length),this.moveCursorRight(),e0&&this.moveCursorWordLeft();return}this.session.tokenRe.exec(s)&&(t-=this.session.tokenRe.lastIndex,this.session.tokenRe.lastIndex=0),this.moveCursorTo(e,t)},e.prototype.$shortWordEndIndex=function(e){var t=0,n,r=/\s/,i=this.session.tokenRe;i.lastIndex=0;if(this.session.tokenRe.exec(e))t=this.session.tokenRe.lastIndex;else{while((n=e[t])&&r.test(n))t++;if(t<1){i.lastIndex=0;while((n=e[t])&&!i.test(n)){i.lastIndex=0,t++;if(r.test(n)){if(t>2){t--;break}while((n=e[t])&&r.test(n))t++;if(t>2)break}}}}return i.lastIndex=0,t},e.prototype.moveCursorShortWordRight=function(){var e=this.lead.row,t=this.lead.column,n=this.doc.getLine(e),r=n.substring(t),i=this.session.getFoldAt(e,t,1);if(i)return this.moveCursorTo(i.end.row,i.end.column);if(t==n.length){var s=this.doc.getLength();do e++,r=this.doc.getLine(e);while(e0&&/^\s*$/.test(r));t=r.length,/\s+$/.test(r)||(r="")}var s=i.stringReverse(r),o=this.$shortWordEndIndex(s);return this.moveCursorTo(e,t-o)},e.prototype.moveCursorWordRight=function(){this.session.$selectLongWords?this.moveCursorLongWordRight():this.moveCursorShortWordRight()},e.prototype.moveCursorWordLeft=function(){this.session.$selectLongWords?this.moveCursorLongWordLeft():this.moveCursorShortWordLeft()},e.prototype.moveCursorBy=function(e,t){var n=this.session.documentToScreenPosition(this.lead.row,this.lead.column),r;t===0&&(e!==0&&(this.session.$bidiHandler.isBidiRow(n.row,this.lead.row)?(r=this.session.$bidiHandler.getPosLeft(n.column),n.column=Math.round(r/this.session.$bidiHandler.charWidths[0])):r=n.column*this.session.$bidiHandler.charWidths[0]),this.$desiredColumn?n.column=this.$desiredColumn:this.$desiredColumn=n.column);if(e!=0&&this.session.lineWidgets&&this.session.lineWidgets[this.lead.row]){var i=this.session.lineWidgets[this.lead.row];e<0?e-=i.rowsAbove||0:e>0&&(e+=i.rowCount-(i.rowsAbove||0))}var s=this.session.screenToDocumentPosition(n.row+e,n.column,r);e!==0&&t===0&&s.row===this.lead.row&&s.column===this.lead.column,this.moveCursorTo(s.row,s.column+t,t===0)},e.prototype.moveCursorToPosition=function(e){this.moveCursorTo(e.row,e.column)},e.prototype.moveCursorTo=function(e,t,n){var r=this.session.getFoldAt(e,t,1);r&&(e=r.start.row,t=r.start.column),this.$keepDesiredColumnOnChange=!0;var i=this.session.getLine(e);/[\uDC00-\uDFFF]/.test(i.charAt(t))&&i.charAt(t-1)&&(this.lead.row==e&&this.lead.column==t+1?t-=1:t+=1),this.lead.setPosition(e,t),this.$keepDesiredColumnOnChange=!1,n||(this.$desiredColumn=null)},e.prototype.moveCursorToScreen=function(e,t,n){var r=this.session.screenToDocumentPosition(e,t);this.moveCursorTo(r.row,r.column,n)},e.prototype.detach=function(){this.lead.detach(),this.anchor.detach()},e.prototype.fromOrientedRange=function(e){this.setSelectionRange(e,e.cursor==e.start),this.$desiredColumn=e.desiredColumn||this.$desiredColumn},e.prototype.toOrientedRange=function(e){var t=this.getRange();return e?(e.start.column=t.start.column,e.start.row=t.start.row,e.end.column=t.end.column,e.end.row=t.end.row):e=t,e.cursor=this.isBackwards()?e.start:e.end,e.desiredColumn=this.$desiredColumn,e},e.prototype.getRangeOfMovements=function(e){var t=this.getCursor();try{e(this);var n=this.getCursor();return o.fromPoints(t,n)}catch(r){return o.fromPoints(t,t)}finally{this.moveCursorToPosition(t)}},e.prototype.toJSON=function(){if(this.rangeCount)var e=this.ranges.map(function(e){var t=e.clone();return t.isBackwards=e.cursor==e.start,t});else{var e=this.getRange();e.isBackwards=this.isBackwards()}return e},e.prototype.fromJSON=function(e){if(e.start==undefined){if(this.rangeList&&e.length>1){this.toSingleRange(e[0]);for(var t=e.length;t--;){var n=o.fromPoints(e[t].start,e[t].end);e[t].isBackwards&&(n.cursor=n.start),this.addRange(n,!0)}return}e=e[0]}this.rangeList&&this.toSingleRange(e),this.setSelectionRange(e,e.isBackwards)},e.prototype.isEqual=function(e){if((e.length||this.rangeCount)&&e.length!=this.rangeCount)return!1;if(!e.length||!this.ranges)return this.getRange().isEqual(e);for(var t=this.ranges.length;t--;)if(!this.ranges[t].isEqual(e[t]))return!1;return!0},e}();u.prototype.setSelectionAnchor=u.prototype.setAnchor,u.prototype.getSelectionAnchor=u.prototype.getAnchor,u.prototype.setSelectionRange=u.prototype.setRange,r.implement(u.prototype,s),t.Selection=u}),ace.define("ace/tokenizer",["require","exports","module","ace/lib/report_error"],function(e,t,n){"use strict";var r=e("./lib/report_error").reportError,i=2e3,s=function(){function e(e){this.splitRegex,this.states=e,this.regExps={},this.matchMappings={};for(var t in this.states){var n=this.states[t],r=[],i=0,s=this.matchMappings[t]={defaultToken:"text"},o="g",u=[];for(var a=0;a1?f.onMatch=this.$applyToken:f.onMatch=f.token),c>1&&(/\\\d/.test(f.regex)?l=f.regex.replace(/\\([0-9]+)/g,function(e,t){return"\\"+(parseInt(t,10)+i+1)}):(c=1,l=this.removeCapturingGroups(f.regex)),!f.splitRegex&&typeof f.token!="string"&&u.push(f)),s[i]=a,i+=c,r.push(l),f.onMatch||(f.onMatch=null)}r.length||(s[0]=0,r.push("$")),u.forEach(function(e){e.splitRegex=this.createSplitterRegexp(e.regex,o)},this),this.regExps[t]=new RegExp("("+r.join(")|(")+")|($)",o)}}return e.prototype.$setMaxTokenCount=function(e){i=e|0},e.prototype.$applyToken=function(e){var t=this.splitRegex.exec(e).slice(1),n=this.token.apply(this,t);if(typeof n=="string")return[{type:n,value:e}];var r=[];for(var i=0,s=n.length;il){var g=e.substring(l,m-v.length);h.type==p?h.value+=g:(h.type&&f.push(h),h={type:p,value:g})}for(var y=0;yi){c>2*e.length&&this.reportError("infinite loop with in ace tokenizer",{startState:t,line:e});while(l1&&n[0]!==r&&n.unshift("#tmp",r),{tokens:f,state:n.length?n:r}},e}();s.prototype.reportError=r,t.Tokenizer=s}),ace.define("ace/mode/text_highlight_rules",["require","exports","module","ace/lib/deep_copy"],function(e,t,n){"use strict";var r=e("../lib/deep_copy").deepCopy,i;i=function(){this.$rules={start:[{token:"empty_line",regex:"^$"},{defaultToken:"text"}]}},function(){this.addRules=function(e,t){if(!t){for(var n in e)this.$rules[n]=e[n];return}for(var n in e){var r=e[n];for(var i=0;i=this.$rowTokens.length){this.$row+=1,e||(e=this.$session.getLength());if(this.$row>=e)return this.$row=e-1,null;this.$rowTokens=this.$session.getTokens(this.$row),this.$tokenIndex=0}return this.$rowTokens[this.$tokenIndex]},e.prototype.getCurrentToken=function(){return this.$rowTokens[this.$tokenIndex]},e.prototype.getCurrentTokenRow=function(){return this.$row},e.prototype.getCurrentTokenColumn=function(){var e=this.$rowTokens,t=this.$tokenIndex,n=e[t].start;if(n!==undefined)return n;n=0;while(t>0)t-=1,n+=e[t].value.length;return n},e.prototype.getCurrentTokenPosition=function(){return{row:this.$row,column:this.getCurrentTokenColumn()}},e.prototype.getCurrentTokenRange=function(){var e=this.$rowTokens[this.$tokenIndex],t=this.getCurrentTokenColumn();return new r(this.$row,t,this.$row,t+e.value.length)},e}();t.TokenIterator=i}),ace.define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("../../token_iterator").TokenIterator,o=e("../../lib/lang"),u=["text","paren.rparen","rparen","paren","punctuation.operator"],a=["text","paren.rparen","rparen","paren","punctuation.operator","comment"],f,l={},c={'"':'"',"'":"'"},h=function(e){var t=-1;e.multiSelect&&(t=e.selection.index,l.rangeCount!=e.multiSelect.rangeCount&&(l={rangeCount:e.multiSelect.rangeCount}));if(l[t])return f=l[t];f=l[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:"",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:"",maybeInsertedLineEnd:""}},p=function(e,t,n,r){var i=e.end.row-e.start.row;return{text:n+t+r,selection:[0,e.start.column+1,i,e.end.column+(i?0:1)]}},d;d=function(e){e=e||{},this.add("braces","insertion",function(t,n,r,i,s){var u=r.getCursorPosition(),a=i.doc.getLine(u.row);if(s=="{"){h(r);var l=r.getSelectionRange(),c=i.doc.getTextRange(l),v=i.getTokenAt(u.row,u.column);if(c!==""&&c!=="{"&&r.getWrapBehavioursEnabled())return p(l,c,"{","}");if(v&&/(?:string)\.quasi|\.xml/.test(v.type)){var m=[/tag\-(?:open|name)/,/attribute\-name/];if(m.some(function(e){return e.test(v.type)})||/(string)\.quasi/.test(v.type)&&v.value[u.column-v.start-1]!=="$")return;return d.recordAutoInsert(r,i,"}"),{text:"{}",selection:[1,1]}}if(d.isSaneInsertion(r,i))return/[\]\}\)]/.test(a[u.column])||r.inMultiSelectMode||e.braces?(d.recordAutoInsert(r,i,"}"),{text:"{}",selection:[1,1]}):(d.recordMaybeInsert(r,i,"{"),{text:"{",selection:[1,1]})}else if(s=="}"){h(r);var g=a.substring(u.column,u.column+1);if(g=="}"){var y=i.$findOpeningBracket("}",{column:u.column+1,row:u.row});if(y!==null&&d.isAutoInsertedClosing(u,a,s))return d.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}else{if(s=="\n"||s=="\r\n"){h(r);var b="";d.isMaybeInsertedClosing(u,a)&&(b=o.stringRepeat("}",f.maybeInsertedBrackets),d.clearMaybeInsertedClosing());var g=a.substring(u.column,u.column+1);if(g==="}"){var w=i.findMatchingBracket({row:u.row,column:u.column+1},"}");if(!w)return null;var E=this.$getIndent(i.getLine(w.row))}else{if(!b){d.clearMaybeInsertedClosing();return}var E=this.$getIndent(a)}var S=E+i.getTabString();return{text:"\n"+S+"\n"+E+b,selection:[1,S.length,1,S.length]}}d.clearMaybeInsertedClosing()}}),this.add("braces","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="{"){h(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.end.column,i.end.column+1);if(u=="}")return i.end.column++,i;f.maybeInsertedBrackets--}}),this.add("parens","insertion",function(e,t,n,r,i){if(i=="("){h(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return p(s,o,"(",")");if(d.isSaneInsertion(n,r))return d.recordAutoInsert(n,r,")"),{text:"()",selection:[1,1]}}else if(i==")"){h(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==")"){var l=r.$findOpeningBracket(")",{column:u.column+1,row:u.row});if(l!==null&&d.isAutoInsertedClosing(u,a,i))return d.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("parens","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="("){h(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==")")return i.end.column++,i}}),this.add("brackets","insertion",function(e,t,n,r,i){if(i=="["){h(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return p(s,o,"[","]");if(d.isSaneInsertion(n,r))return d.recordAutoInsert(n,r,"]"),{text:"[]",selection:[1,1]}}else if(i=="]"){h(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f=="]"){var l=r.$findOpeningBracket("]",{column:u.column+1,row:u.row});if(l!==null&&d.isAutoInsertedClosing(u,a,i))return d.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("brackets","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="["){h(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u=="]")return i.end.column++,i}}),this.add("string_dquotes","insertion",function(e,t,n,r,i){var s=r.$mode.$quotes||c;if(i.length==1&&s[i]){if(this.lineCommentStart&&this.lineCommentStart.indexOf(i)!=-1)return;h(n);var o=i,u=n.getSelectionRange(),a=r.doc.getTextRange(u);if(a!==""&&(a.length!=1||!s[a])&&n.getWrapBehavioursEnabled())return p(u,a,o,o);if(!a){var f=n.getCursorPosition(),l=r.doc.getLine(f.row),d=l.substring(f.column-1,f.column),v=l.substring(f.column,f.column+1),m=r.getTokenAt(f.row,f.column),g=r.getTokenAt(f.row,f.column+1);if(d=="\\"&&m&&/escape/.test(m.type))return null;var y=m&&/string|escape/.test(m.type),b=!g||/string|escape/.test(g.type),w;if(v==o)w=y!==b,w&&/string\.end/.test(g.type)&&(w=!1);else{if(y&&!b)return null;if(y&&b)return null;var E=r.$mode.tokenRe;E.lastIndex=0;var S=E.test(d);E.lastIndex=0;var x=E.test(v),T=r.$mode.$pairQuotesAfter,N=T&&T[o]&&T[o].test(d);if(!N&&S||x)return null;if(v&&!/[\s;,.})\]\\]/.test(v))return null;var C=l[f.column-2];if(!(d!=o||C!=o&&!E.test(C)))return null;w=!0}return{text:w?o+o:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(e,t,n,r,i){var s=r.$mode.$quotes||c,o=r.doc.getTextRange(i);if(!i.isMultiLine()&&s.hasOwnProperty(o)){h(n);var u=r.doc.getLine(i.start.row),a=u.substring(i.start.column+1,i.start.column+2);if(a==o)return i.end.column++,i}}),e.closeDocComment!==!1&&this.add("doc comment end","insertion",function(e,t,n,r,i){if(e==="doc-start"&&(i==="\n"||i==="\r\n")&&n.selection.isEmpty()){var s=n.getCursorPosition();if(s.column===0)return;var o=r.doc.getLine(s.row),u=r.doc.getLine(s.row+1),a=r.getTokens(s.row),f=0;for(var l=0;l=s.column){if(f===s.column){if(!/\.doc/.test(c.type))return;if(/\*\//.test(c.value)){var h=a[l+1];if(!h||!/\.doc/.test(h.type))return}}var p=s.column-(f-c.value.length),d=c.value.indexOf("*/"),v=c.value.indexOf("/**",d>-1?d+2:0);if(v!==-1&&p>v&&p=d&&p<=v||!/\.doc/.test(c.type))return;break}}var m=this.$getIndent(o);if(/\s*\*/.test(u))return/^\s*\*/.test(o)?{text:i+m+"* ",selection:[1,2+m.length,1,2+m.length]}:{text:i+m+" * ",selection:[1,3+m.length,1,3+m.length]};if(/\/\*\*/.test(o.substring(0,s.column)))return{text:i+m+" * "+i+" "+m+"*/",selection:[1,4+m.length,1,4+m.length]}}})},d.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),r=new s(t,n.row,n.column);if(!this.$matchTokenType(r.getCurrentToken()||"text",u)){if(/[)}\]]/.test(e.session.getLine(n.row)[n.column]))return!0;var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||"text",u))return!1}return r.stepForward(),r.getCurrentTokenRow()!==n.row||this.$matchTokenType(r.getCurrentToken()||"text",a)},d.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},d.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,i,f.autoInsertedLineEnd[0])||(f.autoInsertedBrackets=0),f.autoInsertedRow=r.row,f.autoInsertedLineEnd=n+i.substr(r.column),f.autoInsertedBrackets++},d.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,i)||(f.maybeInsertedBrackets=0),f.maybeInsertedRow=r.row,f.maybeInsertedLineStart=i.substr(0,r.column)+n,f.maybeInsertedLineEnd=i.substr(r.column),f.maybeInsertedBrackets++},d.isAutoInsertedClosing=function(e,t,n){return f.autoInsertedBrackets>0&&e.row===f.autoInsertedRow&&n===f.autoInsertedLineEnd[0]&&t.substr(e.column)===f.autoInsertedLineEnd},d.isMaybeInsertedClosing=function(e,t){return f.maybeInsertedBrackets>0&&e.row===f.maybeInsertedRow&&t.substr(e.column)===f.maybeInsertedLineEnd&&t.substr(0,e.column)==f.maybeInsertedLineStart},d.popAutoInsertedClosing=function(){f.autoInsertedLineEnd=f.autoInsertedLineEnd.substr(1),f.autoInsertedBrackets--},d.clearMaybeInsertedClosing=function(){f&&(f.maybeInsertedBrackets=0,f.maybeInsertedRow=-1)},r.inherits(d,i),t.CstyleBehaviour=d}),ace.define("ace/unicode",["require","exports","module"],function(e,t,n){"use strict";var r=[48,9,8,25,5,0,2,25,48,0,11,0,5,0,6,22,2,30,2,457,5,11,15,4,8,0,2,0,18,116,2,1,3,3,9,0,2,2,2,0,2,19,2,82,2,138,2,4,3,155,12,37,3,0,8,38,10,44,2,0,2,1,2,1,2,0,9,26,6,2,30,10,7,61,2,9,5,101,2,7,3,9,2,18,3,0,17,58,3,100,15,53,5,0,6,45,211,57,3,18,2,5,3,11,3,9,2,1,7,6,2,2,2,7,3,1,3,21,2,6,2,0,4,3,3,8,3,1,3,3,9,0,5,1,2,4,3,11,16,2,2,5,5,1,3,21,2,6,2,1,2,1,2,1,3,0,2,4,5,1,3,2,4,0,8,3,2,0,8,15,12,2,2,8,2,2,2,21,2,6,2,1,2,4,3,9,2,2,2,2,3,0,16,3,3,9,18,2,2,7,3,1,3,21,2,6,2,1,2,4,3,8,3,1,3,2,9,1,5,1,2,4,3,9,2,0,17,1,2,5,4,2,2,3,4,1,2,0,2,1,4,1,4,2,4,11,5,4,4,2,2,3,3,0,7,0,15,9,18,2,2,7,2,2,2,22,2,9,2,4,4,7,2,2,2,3,8,1,2,1,7,3,3,9,19,1,2,7,2,2,2,22,2,9,2,4,3,8,2,2,2,3,8,1,8,0,2,3,3,9,19,1,2,7,2,2,2,22,2,15,4,7,2,2,2,3,10,0,9,3,3,9,11,5,3,1,2,17,4,23,2,8,2,0,3,6,4,0,5,5,2,0,2,7,19,1,14,57,6,14,2,9,40,1,2,0,3,1,2,0,3,0,7,3,2,6,2,2,2,0,2,0,3,1,2,12,2,2,3,4,2,0,2,5,3,9,3,1,35,0,24,1,7,9,12,0,2,0,2,0,5,9,2,35,5,19,2,5,5,7,2,35,10,0,58,73,7,77,3,37,11,42,2,0,4,328,2,3,3,6,2,0,2,3,3,40,2,3,3,32,2,3,3,6,2,0,2,3,3,14,2,56,2,3,3,66,5,0,33,15,17,84,13,619,3,16,2,25,6,74,22,12,2,6,12,20,12,19,13,12,2,2,2,1,13,51,3,29,4,0,5,1,3,9,34,2,3,9,7,87,9,42,6,69,11,28,4,11,5,11,11,39,3,4,12,43,5,25,7,10,38,27,5,62,2,28,3,10,7,9,14,0,89,75,5,9,18,8,13,42,4,11,71,55,9,9,4,48,83,2,2,30,14,230,23,280,3,5,3,37,3,5,3,7,2,0,2,0,2,0,2,30,3,52,2,6,2,0,4,2,2,6,4,3,3,5,5,12,6,2,2,6,67,1,20,0,29,0,14,0,17,4,60,12,5,0,4,11,18,0,5,0,3,9,2,0,4,4,7,0,2,0,2,0,2,3,2,10,3,3,6,4,5,0,53,1,2684,46,2,46,2,132,7,6,15,37,11,53,10,0,17,22,10,6,2,6,2,6,2,6,2,6,2,6,2,6,2,6,2,31,48,0,470,1,36,5,2,4,6,1,5,85,3,1,3,2,2,89,2,3,6,40,4,93,18,23,57,15,513,6581,75,20939,53,1164,68,45,3,268,4,27,21,31,3,13,13,1,2,24,9,69,11,1,38,8,3,102,3,1,111,44,25,51,13,68,12,9,7,23,4,0,5,45,3,35,13,28,4,64,15,10,39,54,10,13,3,9,7,22,4,1,5,66,25,2,227,42,2,1,3,9,7,11171,13,22,5,48,8453,301,3,61,3,105,39,6,13,4,6,11,2,12,2,4,2,0,2,1,2,1,2,107,34,362,19,63,3,53,41,11,5,15,17,6,13,1,25,2,33,4,2,134,20,9,8,25,5,0,2,25,12,88,4,5,3,5,3,5,3,2],i=0,s=[];for(var o=0;o2?r%f!=f-1:r%f==0}}var E=Infinity;w(function(e,t){var n=e.search(/\S/);n!==-1?(ne.length&&(E=e.length)}),u==Infinity&&(u=E,s=!1,o=!1),l&&u%f!=0&&(u=Math.floor(u/f)*f),w(o?m:v)},this.toggleBlockComment=function(e,t,n,r){var i=this.blockComment;if(!i)return;!i.start&&i[0]&&(i=i[0]);var s=new f(t,r.row,r.column),o=s.getCurrentToken(),u=t.selection,a=t.selection.toOrientedRange(),c,h;if(o&&/comment/.test(o.type)){var p,d;while(o&&/comment/.test(o.type)){var v=o.value.indexOf(i.start);if(v!=-1){var m=s.getCurrentTokenRow(),g=s.getCurrentTokenColumn()+v;p=new l(m,g,m,g+i.start.length);break}o=s.stepBackward()}var s=new f(t,r.row,r.column),o=s.getCurrentToken();while(o&&/comment/.test(o.type)){var v=o.value.indexOf(i.end);if(v!=-1){var m=s.getCurrentTokenRow(),g=s.getCurrentTokenColumn()+v;d=new l(m,g,m,g+i.end.length);break}o=s.stepForward()}d&&t.remove(d),p&&(t.remove(p),c=p.start.row,h=-i.start.length)}else h=i.start.length,c=n.start.row,t.insert(n.end,i.end),t.insert(n.start,i.start);a.start.row==c&&(a.start.column+=h),a.end.row==c&&(a.end.column+=h),t.selection.fromOrientedRange(a)},this.getNextLineIndent=function(e,t,n){return this.$getIndent(t)},this.checkOutdent=function(e,t,n){return!1},this.autoOutdent=function(e,t,n){},this.$getIndent=function(e){return e.match(/^\s*/)[0]},this.createWorker=function(e){return null},this.createModeDelegates=function(e){this.$embeds=[],this.$modes={};for(var t in e)if(e[t]){var n=e[t],i=n.prototype.$id,s=r.$modes[i];s||(r.$modes[i]=s=new n),r.$modes[t]||(r.$modes[t]=s),this.$embeds.push(t),this.$modes[t]=s}var o=["toggleBlockComment","toggleCommentLines","getNextLineIndent","checkOutdent","autoOutdent","transformAction","getCompletions"],u=function(e){(function(t){var n=o[e],r=t[n];t[o[e]]=function(){return this.$delegator(n,arguments,r)}})(a)},a=this;for(var t=0;t=0&&t.row=0&&t.column<=e[t.row].length}function s(e,t){t.action!="insert"&&t.action!="remove"&&r(t,"delta.action must be 'insert' or 'remove'"),t.lines instanceof Array||r(t,"delta.lines must be an Array"),(!t.start||!t.end)&&r(t,"delta.start/end must be an present");var n=t.start;i(e,t.start)||r(t,"delta.start must be contained in document");var s=t.end;t.action=="remove"&&!i(e,s)&&r(t,"delta.end must contained in document for 'remove' actions");var o=s.row-n.row,u=s.column-(o==0?n.column:0);(o!=t.lines.length-1||t.lines[o].length!=u)&&r(t,"delta.range must match delta lines")}t.applyDelta=function(e,t,n){var r=t.start.row,i=t.start.column,s=e[r]||"";switch(t.action){case"insert":var o=t.lines;if(o.length===1)e[r]=s.substring(0,i)+t.lines[0]+s.substring(i);else{var u=[r,1].concat(t.lines);e.splice.apply(e,u),e[r]=s.substring(0,i)+e[r],e[r+t.lines.length-1]+=s.substring(i)}break;case"remove":var a=t.end.column,f=t.end.row;r===f?e[r]=s.substring(0,i)+s.substring(a):e.splice(r,f-r+1,s.substring(0,i)+e[f].substring(a))}}}),ace.define("ace/anchor",["require","exports","module","ace/lib/oop","ace/lib/event_emitter"],function(e,t,n){"use strict";function o(e,t,n){var r=n?e.column<=t.column:e.columnthis.row)return;var t=u(e,{row:this.row,column:this.column},this.$insertRight);this.setPosition(t.row,t.column,!0)},e.prototype.setPosition=function(e,t,n){var r;n?r={row:e,column:t}:r=this.$clipPositionToDocument(e,t);if(this.row==r.row&&this.column==r.column)return;var i={row:this.row,column:this.column};this.row=r.row,this.column=r.column,this._signal("change",{old:i,value:r})},e.prototype.detach=function(){this.document.off("change",this.$onChange)},e.prototype.attach=function(e){this.document=e||this.document,this.document.on("change",this.$onChange)},e.prototype.$clipPositionToDocument=function(e,t){var n={};return e>=this.document.getLength()?(n.row=Math.max(0,this.document.getLength()-1),n.column=this.document.getLine(n.row).length):e<0?(n.row=0,n.column=0):(n.row=e,n.column=Math.min(this.document.getLine(n.row).length,Math.max(0,t))),t<0&&(n.column=0),n},e}();s.prototype.$insertRight=!1,r.implement(s.prototype,i),t.Anchor=s}),ace.define("ace/document",["require","exports","module","ace/lib/oop","ace/apply_delta","ace/lib/event_emitter","ace/range","ace/anchor"],function(e,t,n){"use strict";var r=e("./lib/oop"),i=e("./apply_delta").applyDelta,s=e("./lib/event_emitter").EventEmitter,o=e("./range").Range,u=e("./anchor").Anchor,a=function(){function e(e){this.$lines=[""],e.length===0?this.$lines=[""]:Array.isArray(e)?this.insertMergedLines({row:0,column:0},e):this.insert({row:0,column:0},e)}return e.prototype.setValue=function(e){var t=this.getLength()-1;this.remove(new o(0,0,t,this.getLine(t).length)),this.insert({row:0,column:0},e||"")},e.prototype.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},e.prototype.createAnchor=function(e,t){return new u(this,e,t)},e.prototype.$detectNewLine=function(e){var t=e.match(/^.*?(\r\n|\r|\n)/m);this.$autoNewLine=t?t[1]:"\n",this._signal("changeNewLineMode")},e.prototype.getNewLineCharacter=function(){switch(this.$newLineMode){case"windows":return"\r\n";case"unix":return"\n";default:return this.$autoNewLine||"\n"}},e.prototype.setNewLineMode=function(e){if(this.$newLineMode===e)return;this.$newLineMode=e,this._signal("changeNewLineMode")},e.prototype.getNewLineMode=function(){return this.$newLineMode},e.prototype.isNewLine=function(e){return e=="\r\n"||e=="\r"||e=="\n"},e.prototype.getLine=function(e){return this.$lines[e]||""},e.prototype.getLines=function(e,t){return this.$lines.slice(e,t+1)},e.prototype.getAllLines=function(){return this.getLines(0,this.getLength())},e.prototype.getLength=function(){return this.$lines.length},e.prototype.getTextRange=function(e){return this.getLinesForRange(e).join(this.getNewLineCharacter())},e.prototype.getLinesForRange=function(e){var t;if(e.start.row===e.end.row)t=[this.getLine(e.start.row).substring(e.start.column,e.end.column)];else{t=this.getLines(e.start.row,e.end.row),t[0]=(t[0]||"").substring(e.start.column);var n=t.length-1;e.end.row-e.start.row==n&&(t[n]=t[n].substring(0,e.end.column))}return t},e.prototype.insertLines=function(e,t){return console.warn("Use of document.insertLines is deprecated. Use the insertFullLines method instead."),this.insertFullLines(e,t)},e.prototype.removeLines=function(e,t){return console.warn("Use of document.removeLines is deprecated. Use the removeFullLines method instead."),this.removeFullLines(e,t)},e.prototype.insertNewLine=function(e){return console.warn("Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead."),this.insertMergedLines(e,["",""])},e.prototype.insert=function(e,t){return this.getLength()<=1&&this.$detectNewLine(t),this.insertMergedLines(e,this.$split(t))},e.prototype.insertInLine=function(e,t){var n=this.clippedPos(e.row,e.column),r=this.pos(e.row,e.column+t.length);return this.applyDelta({start:n,end:r,action:"insert",lines:[t]},!0),this.clonePos(r)},e.prototype.clippedPos=function(e,t){var n=this.getLength();e===undefined?e=n:e<0?e=0:e>=n&&(e=n-1,t=undefined);var r=this.getLine(e);return t==undefined&&(t=r.length),t=Math.min(Math.max(t,0),r.length),{row:e,column:t}},e.prototype.clonePos=function(e){return{row:e.row,column:e.column}},e.prototype.pos=function(e,t){return{row:e,column:t}},e.prototype.$clipPosition=function(e){var t=this.getLength();return e.row>=t?(e.row=Math.max(0,t-1),e.column=this.getLine(t-1).length):(e.row=Math.max(0,e.row),e.column=Math.min(Math.max(e.column,0),this.getLine(e.row).length)),e},e.prototype.insertFullLines=function(e,t){e=Math.min(Math.max(e,0),this.getLength());var n=0;e0,r=t=0&&this.applyDelta({start:this.pos(e,this.getLine(e).length),end:this.pos(e+1,0),action:"remove",lines:["",""]})},e.prototype.replace=function(e,t){e instanceof o||(e=o.fromPoints(e.start,e.end));if(t.length===0&&e.isEmpty())return e.start;if(t==this.getTextRange(e))return e.end;this.remove(e);var n;return t?n=this.insert(e.start,t):n=e.start,n},e.prototype.applyDeltas=function(e){for(var t=0;t=0;t--)this.revertDelta(e[t])},e.prototype.applyDelta=function(e,t){var n=e.action=="insert";if(n?e.lines.length<=1&&!e.lines[0]:!o.comparePoints(e.start,e.end))return;n&&e.lines.length>2e4?this.$splitAndapplyLargeDelta(e,2e4):(i(this.$lines,e,t),this._signal("change",e))},e.prototype.$safeApplyDelta=function(e){var t=this.$lines.length;(e.action=="remove"&&e.start.row20){n.running=setTimeout(n.$worker,20);break}}n.currentLine=t,r==-1&&(r=t),s<=r&&n.fireUpdateEvent(s,r)}}return e.prototype.setTokenizer=function(e){this.tokenizer=e,this.lines=[],this.states=[],this.start(0)},e.prototype.setDocument=function(e){this.doc=e,this.lines=[],this.states=[],this.stop()},e.prototype.fireUpdateEvent=function(e,t){var n={first:e,last:t};this._signal("update",{data:n})},e.prototype.start=function(e){this.currentLine=Math.min(e||0,this.currentLine,this.doc.getLength()),this.lines.splice(this.currentLine,this.lines.length),this.states.splice(this.currentLine,this.states.length),this.stop(),this.running=setTimeout(this.$worker,700)},e.prototype.scheduleStart=function(){this.running||(this.running=setTimeout(this.$worker,700))},e.prototype.$updateOnChange=function(e){var t=e.start.row,n=e.end.row-t;if(n===0)this.lines[t]=null;else if(e.action=="remove")this.lines.splice(t,n+1,null),this.states.splice(t,n+1,null);else{var r=Array(n+1);r.unshift(t,1),this.lines.splice.apply(this.lines,r),this.states.splice.apply(this.states,r)}this.currentLine=Math.min(t,this.currentLine,this.doc.getLength()),this.stop()},e.prototype.stop=function(){this.running&&clearTimeout(this.running),this.running=!1},e.prototype.getTokens=function(e){return this.lines[e]||this.$tokenizeRow(e)},e.prototype.getState=function(e){return this.currentLine==e&&this.$tokenizeRow(e),this.states[e]||"start"},e.prototype.$tokenizeRow=function(e){var t=this.doc.getLine(e),n=this.states[e-1],r=this.tokenizer.getLineTokens(t,n,e);return this.states[e]+""!=r.state+""?(this.states[e]=r.state,this.lines[e+1]=null,this.currentLine>e+1&&(this.currentLine=e+1)):this.currentLine==e&&(this.currentLine=e+1),this.lines[e]=r.tokens},e.prototype.cleanup=function(){this.running=!1,this.lines=[],this.states=[],this.currentLine=0,this.removeAllListeners()},e}();r.implement(s.prototype,i),t.BackgroundTokenizer=s}),ace.define("ace/search_highlight",["require","exports","module","ace/lib/lang","ace/range"],function(e,t,n){"use strict";var r=e("./lib/lang"),i=e("./range").Range,s=function(){function e(e,t,n){n===void 0&&(n="text"),this.setRegexp(e),this.clazz=t,this.type=n}return e.prototype.setRegexp=function(e){if(this.regExp+""==e+"")return;this.regExp=e,this.cache=[]},e.prototype.update=function(e,t,n,s){if(!this.regExp)return;var o=s.firstRow,u=s.lastRow,a={};for(var f=o;f<=u;f++){var l=this.cache[f];l==null&&(l=r.getMatchOffsets(n.getLine(f),this.regExp),l.length>this.MAX_RANGES&&(l=l.slice(0,this.MAX_RANGES)),l=l.map(function(e){return new i(f,e.offset,f,e.offset+e.length)}),this.cache[f]=l.length?l:"");for(var c=l.length;c--;){var h=l[c].toScreenRange(n),p=h.toString();if(a[p])continue;a[p]=!0,t.drawSingleLineMarker(e,h,this.clazz,s)}}},e}();s.prototype.MAX_RANGES=500,t.SearchHighlight=s}),ace.define("ace/undomanager",["require","exports","module","ace/range"],function(e,t,n){"use strict";function i(e,t){for(var n=t;n--;){var r=e[n];if(r&&!r[0].ignore){while(n0){a.row+=i,a.column+=a.row==r.row?s:0;continue}!t&&l<=0&&(a.row=n.row,a.column=n.column,l===0&&(a.bias=1))}}function f(e){return{row:e.row,column:e.column}}function l(e){return{start:f(e.start),end:f(e.end),action:e.action,lines:e.lines.slice()}}function c(e){e=e||this;if(Array.isArray(e))return e.map(c).join("\n");var t="";e.action?(t=e.action=="insert"?"+":"-",t+="["+e.lines+"]"):e.value&&(Array.isArray(e.value)?t=e.value.map(h).join("\n"):t=h(e.value)),e.start&&(t+=h(e));if(e.id||e.rev)t+=" ("+(e.id||e.rev)+")";return t}function h(e){return e.start.row+":"+e.start.column+"=>"+e.end.row+":"+e.end.column}function p(e,t){var n=e.action=="insert",r=t.action=="insert";if(n&&r)if(o(t.start,e.end)>=0)m(t,e,-1);else{if(!(o(t.start,e.start)<=0))return null;m(e,t,1)}else if(n&&!r)if(o(t.start,e.end)>=0)m(t,e,-1);else{if(!(o(t.end,e.start)<=0))return null;m(e,t,-1)}else if(!n&&r)if(o(t.start,e.start)>=0)m(t,e,1);else{if(!(o(t.start,e.start)<=0))return null;m(e,t,1)}else if(!n&&!r)if(o(t.start,e.start)>=0)m(t,e,1);else{if(!(o(t.end,e.start)<=0))return null;m(e,t,-1)}return[t,e]}function d(e,t){for(var n=e.length;n--;)for(var r=0;r=0?m(e,t,-1):o(e.start,t.start)<=0?m(t,e,1):(m(e,s.fromPoints(t.start,e.start),-1),m(t,e,1));else if(!n&&r)o(t.start,e.end)>=0?m(t,e,-1):o(t.start,e.start)<=0?m(e,t,1):(m(t,s.fromPoints(e.start,t.start),-1),m(e,t,1));else if(!n&&!r)if(o(t.start,e.end)>=0)m(t,e,-1);else{if(!(o(t.end,e.start)<=0)){var i,u;return o(e.start,t.start)<0&&(i=e,e=y(e,t.start)),o(e.end,t.end)>0&&(u=y(e,t.end)),g(t.end,e.start,e.end,-1),u&&!i&&(e.lines=u.lines,e.start=u.start,e.end=u.end,u=e),[t,i,u].filter(Boolean)}m(e,t,-1)}return[t,e]}function m(e,t,n){g(e.start,t.start,t.end,n),g(e.end,t.start,t.end,n)}function g(e,t,n,r){e.row==(r==1?t:n).row&&(e.column+=r*(n.column-t.column)),e.row+=r*(n.row-t.row)}function y(e,t){var n=e.lines,r=e.end;e.end=f(t);var i=e.end.row-e.start.row,s=n.splice(i,n.length),o=i?t.column:t.column-e.start.column;n.push(s[0].substring(0,o)),s[0]=s[0].substr(o);var u={start:f(t),end:r,lines:s,action:e.action};return u}function b(e,t){t=l(t);for(var n=e.length;n--;){var r=e[n];for(var i=0;ithis.$undoDepth-1&&this.$undoStack.splice(0,r-this.$undoDepth+1),this.$undoStack.push(this.lastDeltas),e.id=this.$rev=++this.$maxRev}if(e.action=="remove"||e.action=="insert")this.$lastDelta=e;this.lastDeltas.push(e)},e.prototype.addSelection=function(e,t){this.selections.push({value:e,rev:t||this.$rev})},e.prototype.startNewGroup=function(){return this.lastDeltas=null,this.$rev},e.prototype.markIgnored=function(e,t){t==null&&(t=this.$rev+1);var n=this.$undoStack;for(var r=n.length;r--;){var i=n[r][0];if(i.id<=e)break;i.id0},e.prototype.canRedo=function(){return this.$redoStack.length>0},e.prototype.bookmark=function(e){e==undefined&&(e=this.$rev),this.mark=e},e.prototype.isAtBookmark=function(){return this.$rev===this.mark},e.prototype.toJSON=function(){return{$redoStack:this.$redoStack,$undoStack:this.$undoStack}},e.prototype.fromJSON=function(e){this.reset(),this.$undoStack=e.$undoStack,this.$redoStack=e.$redoStack},e.prototype.$prettyPrint=function(e){return e?c(e):c(this.$undoStack)+"\n---\n"+c(this.$redoStack)},e}();r.prototype.hasUndo=r.prototype.canUndo,r.prototype.hasRedo=r.prototype.canRedo,r.prototype.isClean=r.prototype.isAtBookmark,r.prototype.markClean=r.prototype.bookmark;var s=e("./range").Range,o=s.comparePoints,u=s.comparePoints;t.UndoManager=r}),ace.define("ace/edit_session/fold_line",["require","exports","module","ace/range"],function(e,t,n){"use strict";var r=e("../range").Range,i=function(){function e(e,t){this.foldData=e,Array.isArray(t)?this.folds=t:t=this.folds=[t];var n=t[t.length-1];this.range=new r(t[0].start.row,t[0].start.column,n.end.row,n.end.column),this.start=this.range.start,this.end=this.range.end,this.folds.forEach(function(e){e.setFoldLine(this)},this)}return e.prototype.shiftRow=function(e){this.start.row+=e,this.end.row+=e,this.folds.forEach(function(t){t.start.row+=e,t.end.row+=e})},e.prototype.addFold=function(e){if(e.sameRow){if(e.start.rowthis.endRow)throw new Error("Can't add a fold to this FoldLine as it has no connection");this.folds.push(e),this.folds.sort(function(e,t){return-e.range.compareEnd(t.start.row,t.start.column)}),this.range.compareEnd(e.start.row,e.start.column)>0?(this.end.row=e.end.row,this.end.column=e.end.column):this.range.compareStart(e.end.row,e.end.column)<0&&(this.start.row=e.start.row,this.start.column=e.start.column)}else if(e.start.row==this.end.row)this.folds.push(e),this.end.row=e.end.row,this.end.column=e.end.column;else{if(e.end.row!=this.start.row)throw new Error("Trying to add fold to FoldRow that doesn't have a matching row");this.folds.unshift(e),this.start.row=e.start.row,this.start.column=e.start.column}e.foldLine=this},e.prototype.containsRow=function(e){return e>=this.start.row&&e<=this.end.row},e.prototype.walk=function(e,t,n){var r=0,i=this.folds,s,o,u,a=!0;t==null&&(t=this.end.row,n=this.end.column);for(var f=0;f0)continue;var a=i(e,o.start);return u===0?t&&a!==0?-s-2:s:a>0||a===0&&!t?s:-s-1}return-s-1},e.prototype.add=function(e){var t=!e.isEmpty(),n=this.pointIndex(e.start,t);n<0&&(n=-n-1);var r=this.pointIndex(e.end,t,n);return r<0?r=-r-1:r++,this.ranges.splice(n,r-n,e)},e.prototype.addList=function(e){var t=[];for(var n=e.length;n--;)t.push.apply(t,this.add(e[n]));return t},e.prototype.substractPoint=function(e){var t=this.pointIndex(e);if(t>=0)return this.ranges.splice(t,1)},e.prototype.merge=function(){var e=[],t=this.ranges;t=t.sort(function(e,t){return i(e.start,t.start)});var n=t[0],r;for(var s=1;s=0},e.prototype.containsPoint=function(e){return this.pointIndex(e)>=0},e.prototype.rangeAtPoint=function(e){var t=this.pointIndex(e);if(t>=0)return this.ranges[t]},e.prototype.clipRows=function(e,t){var n=this.ranges;if(n[0].start.row>t||n[n.length-1].start.row=r)break}if(e.action=="insert"){var f=i-r,l=-t.column+n.column;for(;or)break;a.start.row==r&&a.start.column>=t.column&&(a.start.column==t.column&&this.$bias<=0||(a.start.column+=l,a.start.row+=f));if(a.end.row==r&&a.end.column>=t.column){if(a.end.column==t.column&&this.$bias<0)continue;a.end.column==t.column&&l>0&&oa.start.column&&a.end.column==s[o+1].start.column&&(a.end.column-=l),a.end.column+=l,a.end.row+=f}}}else{var f=r-i,l=t.column-n.column;for(;oi)break;if(a.end.rowt.column)a.end.column=t.column,a.end.row=t.row}else a.end.column+=l,a.end.row+=f;else a.end.row>i&&(a.end.row+=f);if(a.start.rowt.column)a.start.column=t.column,a.start.row=t.row}else a.start.column+=l,a.start.row+=f;else a.start.row>i&&(a.start.row+=f)}}if(f!=0&&o=e)return i;if(i.end.row>e)return null}return null},this.getNextFoldLine=function(e,t){var n=this.$foldData,r=0;t&&(r=n.indexOf(t)),r==-1&&(r=0);for(r;r=e)return i}return null},this.getFoldedRowCount=function(e,t){var n=this.$foldData,r=t-e+1;for(var i=0;i=t){u=e?r-=t-u:r=0);break}o>=e&&(u>=e?r-=o-u:r-=o-e+1)}return r},this.$addFoldLine=function(e){return this.$foldData.push(e),this.$foldData.sort(function(e,t){return e.start.row-t.start.row}),e},this.addFold=function(e,t){var n=this.$foldData,r=!1,o;e instanceof s?o=e:(o=new s(t,e),o.collapseChildren=t.collapseChildren),this.$clipRangeToDocument(o.range);var u=o.start.row,a=o.start.column,f=o.end.row,l=o.end.column,c=this.getFoldAt(u,a,1),h=this.getFoldAt(f,l,-1);if(c&&h==c)return c.addSubFold(o);c&&!c.range.isStart(u,a)&&this.removeFold(c),h&&!h.range.isEnd(f,l)&&this.removeFold(h);var p=this.getFoldsInRange(o.range);p.length>0&&(this.removeFolds(p),o.collapseChildren||p.forEach(function(e){o.addSubFold(e)}));for(var d=0;d0&&this.foldAll(e.start.row+1,e.end.row,e.collapseChildren-1),e.subFolds=[]},this.expandFolds=function(e){e.forEach(function(e){this.expandFold(e)},this)},this.unfold=function(e,t){var n,i;if(e==null)n=new r(0,0,this.getLength(),0),t==null&&(t=!0);else if(typeof e=="number")n=new r(e,0,e,this.getLine(e).length);else if("row"in e)n=r.fromPoints(e,e);else{if(Array.isArray(e))return i=[],e.forEach(function(e){i=i.concat(this.unfold(e))},this),i;n=e}i=this.getFoldsInRangeList(n);var s=i;while(i.length==1&&r.comparePoints(i[0].start,n.start)<0&&r.comparePoints(i[0].end,n.end)>0)this.expandFolds(i),i=this.getFoldsInRangeList(n);t!=0?this.removeFolds(i):this.expandFolds(i);if(s.length)return s},this.isRowFolded=function(e,t){return!!this.getFoldLine(e,t)},this.getRowFoldEnd=function(e,t){var n=this.getFoldLine(e,t);return n?n.end.row:e},this.getRowFoldStart=function(e,t){var n=this.getFoldLine(e,t);return n?n.start.row:e},this.getFoldDisplayLine=function(e,t,n,r,i){r==null&&(r=e.start.row),i==null&&(i=0),t==null&&(t=e.end.row),n==null&&(n=this.getLine(t).length);var s=this.doc,o="";return e.walk(function(e,t,n,u){if(tc)break}while(s&&a.test(s.type));s=i.stepBackward()}else s=i.getCurrentToken();return f.end.row=i.getCurrentTokenRow(),f.end.column=i.getCurrentTokenColumn(),f}},this.foldAll=function(e,t,n,r){n==undefined&&(n=1e5);var i=this.foldWidgets;if(!i)return;t=t||this.getLength(),e=e||0;for(var s=e;s=e&&(s=o.end.row,o.collapseChildren=n,this.addFold("...",o))}},this.foldToLevel=function(e){this.foldAll();while(e-->0)this.unfold(null,!1)},this.foldAllComments=function(){var e=this;this.foldAll(null,null,null,function(t){var n=e.getTokens(t);for(var r=0;r=0){var s=n[r];s==null&&(s=n[r]=this.getFoldWidget(r));if(s=="start"){var o=this.getFoldWidgetRange(r);i||(i=o);if(o&&o.end.row>=e)break}r--}return{range:r!==-1&&o,firstRange:i}},this.onFoldWidgetClick=function(e,t){t instanceof u&&(t=t.domEvent);var n={children:t.shiftKey,all:t.ctrlKey||t.metaKey,siblings:t.altKey},r=this.$toggleFoldWidget(e,n);if(!r){var i=t.target||t.srcElement;i&&/ace_fold-widget/.test(i.className)&&(i.className+=" ace_invalid")}},this.$toggleFoldWidget=function(e,t){if(!this.getFoldWidget)return;var n=this.getFoldWidget(e),r=this.getLine(e),i=n==="end"?-1:1,s=this.getFoldAt(e,i===-1?0:r.length,i);if(s)return t.children||t.all?this.removeFold(s):this.expandFold(s),s;var o=this.getFoldWidgetRange(e,!0);if(o&&!o.isMultiLine()){s=this.getFoldAt(o.start.row,o.start.column,1);if(s&&o.isEqual(s.range))return this.removeFold(s),s}if(t.siblings){var u=this.getParentFoldRangeData(e);if(u.range)var a=u.range.start.row+1,f=u.range.end.row;this.foldAll(a,f,t.all?1e4:0)}else t.children?(f=o?o.end.row:this.getLength(),this.foldAll(e+1,f,t.all?1e4:0)):o&&(t.all&&(o.collapseChildren=1e4),this.addFold("...",o));return o},this.toggleFoldWidget=function(e){var t=this.selection.getCursor().row;t=this.getRowFoldStart(t);var n=this.$toggleFoldWidget(t,{});if(n)return;var r=this.getParentFoldRangeData(t,!0);n=r.range||r.firstRange;if(n){t=n.start.row;var i=this.getFoldAt(t,this.getLine(t).length,1);i?this.removeFold(i):this.addFold("...",n)}},this.updateFoldWidgets=function(e){var t=e.start.row,n=e.end.row-t;if(n===0)this.foldWidgets[t]=null;else if(e.action=="remove")this.foldWidgets.splice(t,n+1,null);else{var r=Array(n+1);r.unshift(t,1),this.foldWidgets.splice.apply(this.foldWidgets,r)}},this.tokenizerUpdateFoldWidgets=function(e){var t=e.data;t.first!=t.last&&this.foldWidgets.length>t.first&&this.foldWidgets.splice(t.first,this.foldWidgets.length)}}var r=e("../range").Range,i=e("./fold_line").FoldLine,s=e("./fold").Fold,o=e("../token_iterator").TokenIterator,u=e("../mouse/mouse_event").MouseEvent;t.Folding=a}),ace.define("ace/edit_session/bracket_match",["require","exports","module","ace/token_iterator","ace/range"],function(e,t,n){"use strict";function s(){this.findMatchingBracket=function(e,t){if(e.column==0)return null;var n=t||this.getLine(e.row).charAt(e.column-1);if(n=="")return null;var r=n.match(/([\(\[\{])|([\)\]\}])/);return r?r[1]?this.$findClosingBracket(r[1],e):this.$findOpeningBracket(r[2],e):null},this.getBracketRange=function(e){var t=this.getLine(e.row),n=!0,r,s=t.charAt(e.column-1),o=s&&s.match(/([\(\[\{])|([\)\]\}])/);o||(s=t.charAt(e.column),e={row:e.row,column:e.column+1},o=s&&s.match(/([\(\[\{])|([\)\]\}])/),n=!1);if(!o)return null;if(o[1]){var u=this.$findClosingBracket(o[1],e);if(!u)return null;r=i.fromPoints(e,u),n||(r.end.column++,r.start.column--),r.cursor=r.end}else{var u=this.$findOpeningBracket(o[2],e);if(!u)return null;r=i.fromPoints(u,e),n||(r.start.column++,r.end.column--),r.cursor=r.start}return r},this.getMatchingBracketRanges=function(e,t){var n=this.getLine(e.row),r=/([\(\[\{])|([\)\]\}])/,s=!t&&n.charAt(e.column-1),o=s&&s.match(r);o||(s=(t===undefined||t)&&n.charAt(e.column),e={row:e.row,column:e.column+1},o=s&&s.match(r));if(!o)return null;var u=new i(e.row,e.column-1,e.row,e.column),a=o[1]?this.$findClosingBracket(o[1],e):this.$findOpeningBracket(o[2],e);if(!a)return[u];var f=new i(a.row,a.column,a.row,a.column+1);return[u,f]},this.$brackets={")":"(","(":")","]":"[","[":"]","{":"}","}":"{","<":">",">":"<"},this.$findOpeningBracket=function(e,t,n){var i=this.$brackets[e],s=1,o=new r(this,t.row,t.column),u=o.getCurrentToken();u||(u=o.stepForward());if(!u)return;n||(n=new RegExp("(\\.?"+u.type.replace(".","\\.").replace("rparen",".paren").replace(/\b(?:end)\b/,"(?:start|begin|end)").replace(/-close\b/,"-(close|open)")+")+"));var a=t.column-o.getCurrentTokenColumn()-2,f=u.value;for(;;){while(a>=0){var l=f.charAt(a);if(l==i){s-=1;if(s==0)return{row:o.getCurrentTokenRow(),column:a+o.getCurrentTokenColumn()}}else l==e&&(s+=1);a-=1}do u=o.stepBackward();while(u&&!n.test(u.type));if(u==null)break;f=u.value,a=f.length-1}return null},this.$findClosingBracket=function(e,t,n){var i=this.$brackets[e],s=1,o=new r(this,t.row,t.column),u=o.getCurrentToken();u||(u=o.stepForward());if(!u)return;n||(n=new RegExp("(\\.?"+u.type.replace(".","\\.").replace("lparen",".paren").replace(/\b(?:start|begin)\b/,"(?:start|begin|end)").replace(/-open\b/,"-(close|open)")+")+"));var a=t.column-o.getCurrentTokenColumn();for(;;){var f=u.value,l=f.length;while(a"?r=!0:t.type.indexOf("tag-name")!==-1&&(n=!0));while(t&&!n);return t},this.$findClosingTag=function(e,t){var n,r=t.value,s=t.value,o=0,u=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+1);t=e.stepForward();var a=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+t.value.length),f=!1;do{n=t;if(n.type.indexOf("tag-close")!==-1&&!f){var l=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+1);f=!0}t=e.stepForward();if(t){if(t.value===">"&&!f){var l=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+1);f=!0}if(t.type.indexOf("tag-name")!==-1){r=t.value;if(s===r)if(n.value==="<")o++;else if(n.value==="")return;var p=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+1)}}}else if(s===r&&t.value==="/>"){o--;if(o<0)var c=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+2),h=c,p=h,l=new i(a.end.row,a.end.column,a.end.row,a.end.column+1)}}}while(t&&o>=0);if(u&&l&&c&&p&&a&&h)return{openTag:new i(u.start.row,u.start.column,l.end.row,l.end.column),closeTag:new i(c.start.row,c.start.column,p.end.row,p.end.column),openTagName:a,closeTagName:h}},this.$findOpeningTag=function(e,t){var n=e.getCurrentToken(),r=t.value,s=0,o=e.getCurrentTokenRow(),u=e.getCurrentTokenColumn(),a=u+2,f=new i(o,u,o,a);e.stepForward();var l=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+t.value.length);t.type.indexOf("tag-close")===-1&&(t=e.stepForward());if(!t||t.value!==">")return;var c=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+1);e.stepBackward(),e.stepBackward();do{t=n,o=e.getCurrentTokenRow(),u=e.getCurrentTokenColumn(),a=u+t.value.length,n=e.stepBackward();if(t)if(t.type.indexOf("tag-name")!==-1){if(r===t.value)if(n.value==="<"){s++;if(s>0){var h=new i(o,u,o,a),p=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+1);do t=e.stepForward();while(t&&t.value!==">");var d=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+1)}}else n.value===""){var v=0,m=n;while(m){if(m.type.indexOf("tag-name")!==-1&&m.value===r){s--;break}if(m.value==="<")break;m=e.stepBackward(),v++}for(var g=0;g=4352&&e<=4447||e>=4515&&e<=4519||e>=4602&&e<=4607||e>=9001&&e<=9002||e>=11904&&e<=11929||e>=11931&&e<=12019||e>=12032&&e<=12245||e>=12272&&e<=12283||e>=12288&&e<=12350||e>=12353&&e<=12438||e>=12441&&e<=12543||e>=12549&&e<=12589||e>=12593&&e<=12686||e>=12688&&e<=12730||e>=12736&&e<=12771||e>=12784&&e<=12830||e>=12832&&e<=12871||e>=12880&&e<=13054||e>=13056&&e<=19903||e>=19968&&e<=42124||e>=42128&&e<=42182||e>=43360&&e<=43388||e>=44032&&e<=55203||e>=55216&&e<=55238||e>=55243&&e<=55291||e>=63744&&e<=64255||e>=65040&&e<=65049||e>=65072&&e<=65106||e>=65108&&e<=65126||e>=65128&&e<=65131||e>=65281&&e<=65376||e>=65504&&e<=65510}var r=e("./lib/oop"),i=e("./lib/lang"),s=e("./bidihandler").BidiHandler,o=e("./config"),u=e("./lib/event_emitter").EventEmitter,a=e("./selection").Selection,f=e("./mode/text").Mode,l=e("./range").Range,c=e("./document").Document,h=e("./background_tokenizer").BackgroundTokenizer,p=e("./search_highlight").SearchHighlight,d=e("./undomanager").UndoManager,v=function(){function e(t,n){this.doc,this.$breakpoints=[],this.$decorations=[],this.$frontMarkers={},this.$backMarkers={},this.$markerId=1,this.$undoSelect=!0,this.$foldData=[],this.id="session"+ ++e.$uid,this.$foldData.toString=function(){return this.join("\n")},this.bgTokenizer=new h((new f).getTokenizer(),this);var r=this;this.bgTokenizer.on("update",function(e){r._signal("tokenizerUpdate",e)}),this.on("changeFold",this.onChangeFold.bind(this)),this.$onChange=this.onChange.bind(this);if(typeof t!="object"||!t.getLine)t=new c(t);this.setDocument(t),this.selection=new a(this),this.$bidiHandler=new s(this),o.resetOptions(this),this.setMode(n),o._signal("session",this),this.destroyed=!1}return e.prototype.setDocument=function(e){this.doc&&this.doc.off("change",this.$onChange),this.doc=e,e.on("change",this.$onChange,!0),this.bgTokenizer.setDocument(this.getDocument()),this.resetCaches()},e.prototype.getDocument=function(){return this.doc},e.prototype.$resetRowCache=function(e){if(!e){this.$docRowCache=[],this.$screenRowCache=[];return}var t=this.$docRowCache.length,n=this.$getRowCacheIndex(this.$docRowCache,e)+1;t>n&&(this.$docRowCache.splice(n,t),this.$screenRowCache.splice(n,t))},e.prototype.$getRowCacheIndex=function(e,t){var n=0,r=e.length-1;while(n<=r){var i=n+r>>1,s=e[i];if(t>s)n=i+1;else{if(!(t=t)break}return r=n[s],r?(r.index=s,r.start=i-r.value.length,r):null},e.prototype.setUndoManager=function(e){this.$undoManager=e,this.$informUndoManager&&this.$informUndoManager.cancel();if(e){var t=this;e.addSession(this),this.$syncInformUndoManager=function(){t.$informUndoManager.cancel(),t.mergeUndoDeltas=!1},this.$informUndoManager=i.delayedCall(this.$syncInformUndoManager)}else this.$syncInformUndoManager=function(){}},e.prototype.markUndoGroup=function(){this.$syncInformUndoManager&&this.$syncInformUndoManager()},e.prototype.getUndoManager=function(){return this.$undoManager||this.$defaultUndoManager},e.prototype.getTabString=function(){return this.getUseSoftTabs()?i.stringRepeat(" ",this.getTabSize()):" "},e.prototype.setUseSoftTabs=function(e){this.setOption("useSoftTabs",e)},e.prototype.getUseSoftTabs=function(){return this.$useSoftTabs&&!this.$mode.$indentWithTabs},e.prototype.setTabSize=function(e){this.setOption("tabSize",e)},e.prototype.getTabSize=function(){return this.$tabSize},e.prototype.isTabStop=function(e){return this.$useSoftTabs&&e.column%this.$tabSize===0},e.prototype.setNavigateWithinSoftTabs=function(e){this.setOption("navigateWithinSoftTabs",e)},e.prototype.getNavigateWithinSoftTabs=function(){return this.$navigateWithinSoftTabs},e.prototype.setOverwrite=function(e){this.setOption("overwrite",e)},e.prototype.getOverwrite=function(){return this.$overwrite},e.prototype.toggleOverwrite=function(){this.setOverwrite(!this.$overwrite)},e.prototype.addGutterDecoration=function(e,t){this.$decorations[e]||(this.$decorations[e]=""),this.$decorations[e]+=" "+t,this._signal("changeBreakpoint",{})},e.prototype.removeGutterDecoration=function(e,t){this.$decorations[e]=(this.$decorations[e]||"").replace(" "+t,""),this._signal("changeBreakpoint",{})},e.prototype.getBreakpoints=function(){return this.$breakpoints},e.prototype.setBreakpoints=function(e){this.$breakpoints=[];for(var t=0;t0&&(r=!!n.charAt(t-1).match(this.tokenRe)),r||(r=!!n.charAt(t).match(this.tokenRe));if(r)var i=this.tokenRe;else if(/^\s+$/.test(n.slice(t-1,t+1)))var i=/\s/;else var i=this.nonTokenRe;var s=t;if(s>0){do s--;while(s>=0&&n.charAt(s).match(i));s++}var o=t;while(oe&&(e=t.screenWidth)}),this.lineWidgetWidth=e},e.prototype.$computeWidth=function(e){if(this.$modified||e){this.$modified=!1;if(this.$useWrapMode)return this.screenWidth=this.$wrapLimit;var t=this.doc.getAllLines(),n=this.$rowLengthCache,r=0,i=0,s=this.$foldData[i],o=s?s.start.row:Infinity,u=t.length;for(var a=0;ao){a=s.end.row+1;if(a>=u)break;s=this.$foldData[i++],o=s?s.start.row:Infinity}n[a]==null&&(n[a]=this.$getStringScreenWidth(t[a])[0]),n[a]>r&&(r=n[a])}this.screenWidth=r}},e.prototype.getLine=function(e){return this.doc.getLine(e)},e.prototype.getLines=function(e,t){return this.doc.getLines(e,t)},e.prototype.getLength=function(){return this.doc.getLength()},e.prototype.getTextRange=function(e){return this.doc.getTextRange(e||this.selection.getRange())},e.prototype.insert=function(e,t){return this.doc.insert(e,t)},e.prototype.remove=function(e){return this.doc.remove(e)},e.prototype.removeFullLines=function(e,t){return this.doc.removeFullLines(e,t)},e.prototype.undoChanges=function(e,t){if(!e.length)return;this.$fromUndo=!0;for(var n=e.length-1;n!=-1;n--){var r=e[n];r.action=="insert"||r.action=="remove"?this.doc.revertDelta(r):r.folds&&this.addFolds(r.folds)}!t&&this.$undoSelect&&(e.selectionBefore?this.selection.fromJSON(e.selectionBefore):this.selection.setRange(this.$getUndoSelection(e,!0))),this.$fromUndo=!1},e.prototype.redoChanges=function(e,t){if(!e.length)return;this.$fromUndo=!0;for(var n=0;ne.end.column&&(s.start.column+=u),s.end.row==e.end.row&&s.end.column>e.end.column&&(s.end.column+=u)),o&&s.start.row>=e.end.row&&(s.start.row+=o,s.end.row+=o)}s.end=this.insert(s.start,r);if(i.length){var a=e.start,f=s.start,o=f.row-a.row,u=f.column-a.column;this.addFolds(i.map(function(e){return e=e.clone(),e.start.row==a.row&&(e.start.column+=u),e.end.row==a.row&&(e.end.column+=u),e.start.row+=o,e.end.row+=o,e}))}return s},e.prototype.indentRows=function(e,t,n){n=n.replace(/\t/g,this.getTabString());for(var r=e;r<=t;r++)this.doc.insertInLine({row:r,column:0},n)},e.prototype.outdentRows=function(e){var t=e.collapseRows(),n=new l(0,0,0,0),r=this.getTabSize();for(var i=t.start.row;i<=t.end.row;++i){var s=this.getLine(i);n.start.row=i,n.end.row=i;for(var o=0;o0){var r=this.getRowFoldEnd(t+n);if(r>this.doc.getLength()-1)return 0;var i=r-t}else{e=this.$clipRowToDocument(e),t=this.$clipRowToDocument(t);var i=t-e+1}var s=new l(e,0,t,Number.MAX_VALUE),o=this.getFoldsInRange(s).map(function(e){return e=e.clone(),e.start.row+=i,e.end.row+=i,e}),u=n==0?this.doc.getLines(e,t):this.doc.removeFullLines(e,t);return this.doc.insertFullLines(e+i,u),o.length&&this.addFolds(o),i},e.prototype.moveLinesUp=function(e,t){return this.$moveLines(e,t,-1)},e.prototype.moveLinesDown=function(e,t){return this.$moveLines(e,t,1)},e.prototype.duplicateLines=function(e,t){return this.$moveLines(e,t,0)},e.prototype.$clipRowToDocument=function(e){return Math.max(0,Math.min(e,this.doc.getLength()-1))},e.prototype.$clipColumnToRow=function(e,t){return t<0?0:Math.min(this.doc.getLine(e).length,t)},e.prototype.$clipPositionToDocument=function(e,t){t=Math.max(0,t);if(e<0)e=0,t=0;else{var n=this.doc.getLength();e>=n?(e=n-1,t=this.doc.getLine(n-1).length):t=Math.min(this.doc.getLine(e).length,t)}return{row:e,column:t}},e.prototype.$clipRangeToDocument=function(e){e.start.row<0?(e.start.row=0,e.start.column=0):e.start.column=this.$clipColumnToRow(e.start.row,e.start.column);var t=this.doc.getLength()-1;return e.end.row>t?(e.end.row=t,e.end.column=this.doc.getLine(t).length):e.end.column=this.$clipColumnToRow(e.end.row,e.end.column),e},e.prototype.setUseWrapMode=function(e){if(e!=this.$useWrapMode){this.$useWrapMode=e,this.$modified=!0,this.$resetRowCache(0);if(e){var t=this.getLength();this.$wrapData=Array(t),this.$updateWrapData(0,t-1)}this._signal("changeWrapMode")}},e.prototype.getUseWrapMode=function(){return this.$useWrapMode},e.prototype.setWrapLimitRange=function(e,t){if(this.$wrapLimitRange.min!==e||this.$wrapLimitRange.max!==t)this.$wrapLimitRange={min:e,max:t},this.$modified=!0,this.$bidiHandler.markAsDirty(),this.$useWrapMode&&this._signal("changeWrapMode")},e.prototype.adjustWrapLimit=function(e,t){var n=this.$wrapLimitRange;n.max<0&&(n={min:t,max:t});var r=this.$constrainWrapLimit(e,n.min,n.max);return r!=this.$wrapLimit&&r>1?(this.$wrapLimit=r,this.$modified=!0,this.$useWrapMode&&(this.$updateWrapData(0,this.getLength()-1),this.$resetRowCache(0),this._signal("changeWrapLimit")),!0):!1},e.prototype.$constrainWrapLimit=function(e,t,n){return t&&(e=Math.max(t,e)),n&&(e=Math.min(n,e)),e},e.prototype.getWrapLimit=function(){return this.$wrapLimit},e.prototype.setWrapLimit=function(e){this.setWrapLimitRange(e,e)},e.prototype.getWrapLimitRange=function(){return{min:this.$wrapLimitRange.min,max:this.$wrapLimitRange.max}},e.prototype.$updateInternalDataOnChange=function(e){var t=this.$useWrapMode,n=e.action,r=e.start,i=e.end,s=r.row,o=i.row,u=o-s,a=null;this.$updating=!0;if(u!=0)if(n==="remove"){this[t?"$wrapData":"$rowLengthCache"].splice(s,u);var f=this.$foldData;a=this.getFoldsInRange(e),this.removeFolds(a);var l=this.getFoldLine(i.row),c=0;if(l){l.addRemoveChars(i.row,i.column,r.column-i.column),l.shiftRow(-u);var h=this.getFoldLine(s);h&&h!==l&&(h.merge(l),l=h),c=f.indexOf(l)+1}for(c;c=i.row&&l.shiftRow(-u)}o=s}else{var p=Array(u);p.unshift(s,0);var d=t?this.$wrapData:this.$rowLengthCache;d.splice.apply(d,p);var f=this.$foldData,l=this.getFoldLine(s),c=0;if(l){var v=l.range.compareInside(r.row,r.column);v==0?(l=l.split(r.row,r.column),l&&(l.shiftRow(u),l.addRemoveChars(o,0,i.column-r.column))):v==-1&&(l.addRemoveChars(s,0,i.column-r.column),l.shiftRow(u)),c=f.indexOf(l)+1}for(c;c=s&&l.shiftRow(u)}}else{u=Math.abs(e.start.column-e.end.column),n==="remove"&&(a=this.getFoldsInRange(e),this.removeFolds(a),u=-u);var l=this.getFoldLine(s);l&&l.addRemoveChars(s,r.column,u)}return t&&this.$wrapData.length!=this.doc.getLength()&&console.error("doc.getLength() and $wrapData.length have to be the same!"),this.$updating=!1,t?this.$updateWrapData(s,o):this.$updateRowLengthCache(s,o),a},e.prototype.$updateRowLengthCache=function(e,t){this.$rowLengthCache[e]=null,this.$rowLengthCache[t]=null},e.prototype.$updateWrapData=function(e,t){var n=this.doc.getAllLines(),r=this.getTabSize(),i=this.$wrapData,s=this.$wrapLimit,o,u,a=e;t=Math.min(t,n.length-1);while(a<=t)u=this.getFoldLine(a,u),u?(o=[],u.walk(function(e,t,r,i){var s;if(e!=null){s=this.$getDisplayTokens(e,o.length),s[0]=y;for(var u=1;ut-h){var p=s+t-h;if(e[p-1]>=E&&e[p]>=E){c(p);continue}if(e[p]==y||e[p]==b){for(p;p!=s-1;p--)if(e[p]==y)break;if(p>s){c(p);continue}p=s+t;for(p;p>2)),s-1);while(p>d&&e[p]d&&e[p]d&&e[p]==w)p--}else while(p>d&&e[p]d){c(++p);continue}p=s+t,e[p]==g&&p--,c(p-h)}return r},e.prototype.$getDisplayTokens=function(e,t){var n=[],r;t=t||0;for(var i=0;i39&&s<48||s>57&&s<64?n.push(w):s>=4352&&T(s)?n.push(m,g):n.push(m)}return n},e.prototype.$getStringScreenWidth=function(e,t,n){if(t==0)return[0,0];t==null&&(t=Infinity),n=n||0;var r,i;for(i=0;i=4352&&T(r)?n+=2:n+=1;if(n>t)break}return[n,i]},e.prototype.getRowLength=function(e){var t=1;return this.lineWidgets&&(t+=this.lineWidgets[e]&&this.lineWidgets[e].rowCount||0),!this.$useWrapMode||!this.$wrapData[e]?t:this.$wrapData[e].length+t},e.prototype.getRowLineCount=function(e){return!this.$useWrapMode||!this.$wrapData[e]?1:this.$wrapData[e].length+1},e.prototype.getRowWrapIndent=function(e){if(this.$useWrapMode){var t=this.screenToDocumentPosition(e,Number.MAX_VALUE),n=this.$wrapData[t.row];return n.length&&n[0]=0)var u=f[l],i=this.$docRowCache[l],h=e>f[c-1];else var h=!c;var p=this.getLength()-1,d=this.getNextFoldLine(i),v=d?d.start.row:Infinity;while(u<=e){a=this.getRowLength(i);if(u+a>e||i>=p)break;u+=a,i++,i>v&&(i=d.end.row+1,d=this.getNextFoldLine(i,d),v=d?d.start.row:Infinity),h&&(this.$docRowCache.push(i),this.$screenRowCache.push(u))}if(d&&d.start.row<=i)r=this.getFoldDisplayLine(d),i=d.start.row;else{if(u+a<=e||i>p)return{row:p,column:this.getLine(p).length};r=this.getLine(i),d=null}var m=0,g=Math.floor(e-u);if(this.$useWrapMode){var y=this.$wrapData[i];y&&(o=y[g],g>0&&y.length&&(m=y.indent,s=y[g-1]||y[y.length-1],r=r.substring(s)))}return n!==undefined&&this.$bidiHandler.isBidiRow(u+g,i,g)&&(t=this.$bidiHandler.offsetToCol(n)),s+=this.$getStringScreenWidth(r,t-m)[1],this.$useWrapMode&&s>=o&&(s=o-1),d?d.idxToPosition(s):{row:i,column:s}},e.prototype.documentToScreenPosition=function(e,t){if(typeof t=="undefined")var n=this.$clipPositionToDocument(e.row,e.column);else n=this.$clipPositionToDocument(e,t);e=n.row,t=n.column;var r=0,i=null,s=null;s=this.getFoldAt(e,t,1),s&&(e=s.start.row,t=s.start.column);var o,u=0,a=this.$docRowCache,f=this.$getRowCacheIndex(a,e),l=a.length;if(l&&f>=0)var u=a[f],r=this.$screenRowCache[f],c=e>a[l-1];else var c=!l;var h=this.getNextFoldLine(u),p=h?h.start.row:Infinity;while(u=p){o=h.end.row+1;if(o>e)break;h=this.getNextFoldLine(o,h),p=h?h.start.row:Infinity}else o=u+1;r+=this.getRowLength(u),u=o,c&&(this.$docRowCache.push(u),this.$screenRowCache.push(r))}var d="";h&&u>=p?(d=this.getFoldDisplayLine(h,e,t),i=h.start.row):(d=this.getLine(e).substring(0,t),i=e);var v=0;if(this.$useWrapMode){var m=this.$wrapData[i];if(m){var g=0;while(d.length>=m[g])r++,g++;d=d.substring(m[g-1]||0,d.length),v=g>0?m.indent:0}}return this.lineWidgets&&this.lineWidgets[u]&&this.lineWidgets[u].rowsAbove&&(r+=this.lineWidgets[u].rowsAbove),{row:r,column:v+this.$getStringScreenWidth(d)[0]}},e.prototype.documentToScreenColumn=function(e,t){return this.documentToScreenPosition(e,t).column},e.prototype.documentToScreenRow=function(e,t){return this.documentToScreenPosition(e,t).row},e.prototype.getScreenLength=function(){var e=0,t=null;if(!this.$useWrapMode){e=this.getLength();var n=this.$foldData;for(var r=0;ro&&(s=t.end.row+1,t=this.$foldData[r++],o=t?t.start.row:Infinity)}}return this.lineWidgets&&(e+=this.$getWidgetScreenLength()),e},e.prototype.$setFontMetrics=function(e){if(!this.$enableVarChar)return;this.$getStringScreenWidth=function(t,n,r){if(n===0)return[0,0];n||(n=Infinity),r=r||0;var i,s;for(s=0;sn)break}return[r,s]}},e.prototype.getPrecedingCharacter=function(){var e=this.selection.getCursor();if(e.column===0)return e.row===0?"":this.doc.getNewLineCharacter();var t=this.getLine(e.row);return t[e.column-1]},e.prototype.destroy=function(){this.destroyed||(this.bgTokenizer.setDocument(null),this.bgTokenizer.cleanup(),this.destroyed=!0),this.$stopWorker(),this.removeAllListeners(),this.doc&&this.doc.off("change",this.$onChange),this.selection.detach()},e}();v.$uid=0,v.prototype.$modes=o.$modes,v.prototype.getValue=v.prototype.toString,v.prototype.$defaultUndoManager={undo:function(){},redo:function(){},hasUndo:function(){},hasRedo:function(){},reset:function(){},add:function(){},addSelection:function(){},startNewGroup:function(){},addSession:function(){}},v.prototype.$overwrite=!1,v.prototype.$mode=null,v.prototype.$modeId=null,v.prototype.$scrollTop=0,v.prototype.$scrollLeft=0,v.prototype.$wrapLimit=80,v.prototype.$useWrapMode=!1,v.prototype.$wrapLimitRange={min:null,max:null},v.prototype.lineWidgets=null,v.prototype.isFullWidth=T,r.implement(v.prototype,u);var m=1,g=2,y=3,b=4,w=9,E=10,S=11,x=12;e("./edit_session/folding").Folding.call(v.prototype),e("./edit_session/bracket_match").BracketMatch.call(v.prototype),o.defineOptions(v.prototype,"session",{wrap:{set:function(e){!e||e=="off"?e=!1:e=="free"?e=!0:e=="printMargin"?e=-1:typeof e=="string"&&(e=parseInt(e,10)||!1);if(this.$wrap==e)return;this.$wrap=e;if(!e)this.setUseWrapMode(!1);else{var t=typeof e=="number"?e:null;this.setWrapLimitRange(t,t),this.setUseWrapMode(!0)}},get:function(){return this.getUseWrapMode()?this.$wrap==-1?"printMargin":this.getWrapLimitRange().min?this.$wrap:"free":"off"},handlesSet:!0},wrapMethod:{set:function(e){e=e=="auto"?this.$mode.type!="text":e!="text",e!=this.$wrapAsCode&&(this.$wrapAsCode=e,this.$useWrapMode&&(this.$useWrapMode=!1,this.setUseWrapMode(!0)))},initialValue:"auto"},indentedSoftWrap:{set:function(){this.$useWrapMode&&(this.$useWrapMode=!1,this.setUseWrapMode(!0))},initialValue:!0},firstLineNumber:{set:function(){this._signal("changeBreakpoint")},initialValue:1},useWorker:{set:function(e){this.$useWorker=e,this.$stopWorker(),e&&this.$startWorker()},initialValue:!0},useSoftTabs:{initialValue:!0},tabSize:{set:function(e){e=parseInt(e),e>0&&this.$tabSize!==e&&(this.$modified=!0,this.$rowLengthCache=[],this.$tabSize=e,this._signal("changeTabSize"))},initialValue:4,handlesSet:!0},navigateWithinSoftTabs:{initialValue:!1},foldStyle:{set:function(e){this.setFoldStyle(e)},handlesSet:!0},overwrite:{set:function(e){this._signal("changeOverwrite")},initialValue:!1},newLineMode:{set:function(e){this.doc.setNewLineMode(e)},get:function(){return this.doc.getNewLineMode()},handlesSet:!0},mode:{set:function(e){this.setMode(e)},get:function(){return this.$modeId},handlesSet:!0}}),t.EditSession=v}),ace.define("ace/search",["require","exports","module","ace/lib/lang","ace/lib/oop","ace/range"],function(e,t,n){"use strict";function u(e,t){function i(e,r){r===void 0&&(r=!0);var i=n&&t.$supportsUnicodeFlag?new RegExp("[\\p{L}\\p{N}_]","u"):new RegExp("\\w");if(i.test(e)||t.regExp)return n&&t.$supportsUnicodeFlag?r?"(?<=^|[^\\p{L}\\p{N}_])":"(?=[^\\p{L}\\p{N}_]|$)":"\\b";return""}var n=r.supportsLookbehind(),s=Array.from(e),o=s[0],u=s[s.length-1];return i(o)+e+i(u,!1)}var r=e("./lib/lang"),i=e("./lib/oop"),s=e("./range").Range,o=function(){function e(){this.$options={}}return e.prototype.set=function(e){return i.mixin(this.$options,e),this},e.prototype.getOptions=function(){return r.copyObject(this.$options)},e.prototype.setOptions=function(e){this.$options=e},e.prototype.find=function(e){var t=this.$options,n=this.$matchIterator(e,t);if(!n)return!1;var r=null;return n.forEach(function(e,n,i,o){return r=new s(e,n,i,o),n==o&&t.start&&t.start.start&&t.skipCurrent!=0&&r.isEqual(t.start)?(r=null,!1):!0}),r},e.prototype.findAll=function(e){var t=this.$options;if(!t.needle)return[];this.$assembleRegExp(t);var n=t.range,i=n?e.getLines(n.start.row,n.end.row):e.doc.getAllLines(),o=[],u=t.re;if(t.$isMultiLine){var a=u.length,f=i.length-a,l;e:for(var c=u.offset||0;c<=f;c++){for(var h=0;hv)continue;o.push(l=new s(c,v,c+a-1,m)),a>2&&(c=c+a-2)}}else for(var g=0;gE&&o[h].end.row==S)h--;o=o.slice(g,h+1);for(g=0,h=o.length;g=f;n--)if(p(n,Number.MAX_VALUE,e))return;if(t.wrap==0)return;for(n=l,f=a.row;n>=f;n--)if(p(n,Number.MAX_VALUE,e))return};else var c=function(e){var n=a.row;if(p(n,a.column,e))return;for(n+=1;n<=l;n++)if(p(n,0,e))return;if(t.wrap==0)return;for(n=f,l=a.row;n<=l;n++)if(p(n,0,e))return};if(t.$isMultiLine)var h=n.length,p=function(t,r,s){var o=i?t-h+1:t;if(o<0||o+h>e.getLength())return;var u=e.getLine(o),a=u.search(n[0]);if(!i&&ar)return;if(s(o,a,o+h-1,l))return!0};else if(i)var p=function(t,i,s){var u=e.getLine(t),a=[],f,l=0;n.lastIndex=0;while(f=n.exec(u)){var c=f[0].length;l=f.index;if(!c){if(l>=u.length)break;n.lastIndex=l+=r.skipEmptyMatch(u,l,o)}if(f.index+c>i)break;a.push(f.index,c)}for(var h=a.length-1;h>=0;h-=2){var p=a[h-1],c=a[h];if(s(t,p,t,p+c))return!0}};else var p=function(t,i,s){var u=e.getLine(t),a,f;n.lastIndex=i;while(f=n.exec(u)){var l=f[0].length;a=f.index;if(s(t,a,t,a+l))return!0;if(!l){n.lastIndex=a+=r.skipEmptyMatch(u,a,o);if(a>=u.length)return!1}}};return{forEach:c}},e}();t.Search=o}),ace.define("ace/keyboard/hash_handler",["require","exports","module","ace/lib/keys","ace/lib/useragent"],function(e,t,n){"use strict";function a(e){return typeof e=="object"&&e.bindKey&&e.bindKey.position||(e.isDefault?-100:0)}var r=this&&this.__extends||function(){var e=function(t,n){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},e(t,n)};return function(t,n){function r(){this.constructor=t}if(typeof n!="function"&&n!==null)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");e(t,n),t.prototype=n===null?Object.create(n):(r.prototype=n.prototype,new r)}}(),i=e("../lib/keys"),s=e("../lib/useragent"),o=i.KEY_MODS,u=function(){function e(e,t){this.$init(e,t,!1)}return e.prototype.$init=function(e,t,n){this.platform=t||(s.isMac?"mac":"win"),this.commands={},this.commandKeyBinding={},this.addCommands(e),this.$singleCommand=n},e.prototype.addCommand=function(e){this.commands[e.name]&&this.removeCommand(e),this.commands[e.name]=e,e.bindKey&&this._buildKeyHash(e)},e.prototype.removeCommand=function(e,t){var n=e&&(typeof e=="string"?e:e.name);e=this.commands[n],t||delete this.commands[n];var r=this.commandKeyBinding;for(var i in r){var s=r[i];if(s==e)delete r[i];else if(Array.isArray(s)){var o=s.indexOf(e);o!=-1&&(s.splice(o,1),s.length==1&&(r[i]=s[0]))}}},e.prototype.bindKey=function(e,t,n){typeof e=="object"&&e&&(n==undefined&&(n=e.position),e=e[this.platform]);if(!e)return;if(typeof t=="function")return this.addCommand({exec:t,bindKey:e,name:t.name||e});e.split("|").forEach(function(e){var r="";if(e.indexOf(" ")!=-1){var i=e.split(/\s+/);e=i.pop(),i.forEach(function(e){var t=this.parseKeys(e),n=o[t.hashId]+t.key;r+=(r?" ":"")+n,this._addCommandToBinding(r,"chainKeys")},this),r+=" "}var s=this.parseKeys(e),u=o[s.hashId]+s.key;this._addCommandToBinding(r+u,t,n)},this)},e.prototype._addCommandToBinding=function(e,t,n){var r=this.commandKeyBinding,i;if(!t)delete r[e];else if(!r[e]||this.$singleCommand)r[e]=t;else{Array.isArray(r[e])?(i=r[e].indexOf(t))!=-1&&r[e].splice(i,1):r[e]=[r[e]],typeof n!="number"&&(n=a(t));var s=r[e];for(i=0;in)break}s.splice(i,0,t)}},e.prototype.addCommands=function(e){e&&Object.keys(e).forEach(function(t){var n=e[t];if(!n)return;if(typeof n=="string")return this.bindKey(n,t);typeof n=="function"&&(n={exec:n});if(typeof n!="object")return;n.name||(n.name=t),this.addCommand(n)},this)},e.prototype.removeCommands=function(e){Object.keys(e).forEach(function(t){this.removeCommand(e[t])},this)},e.prototype.bindKeys=function(e){Object.keys(e).forEach(function(t){this.bindKey(t,e[t])},this)},e.prototype._buildKeyHash=function(e){this.bindKey(e.bindKey,e)},e.prototype.parseKeys=function(e){var t=e.toLowerCase().split(/[\-\+]([\-\+])?/).filter(function(e){return e}),n=t.pop(),r=i[n];if(i.FUNCTION_KEYS[r])n=i.FUNCTION_KEYS[r].toLowerCase();else{if(!t.length)return{key:n,hashId:-1};if(t.length==1&&t[0]=="shift")return{key:n.toUpperCase(),hashId:-1}}var s=0;for(var o=t.length;o--;){var u=i.KEY_MODS[t[o]];if(u==null)return typeof console!="undefined"&&console.error("invalid modifier "+t[o]+" in "+e),!1;s|=u}return{key:n,hashId:s}},e.prototype.findKeyCommand=function(e,t){var n=o[e]+t;return this.commandKeyBinding[n]},e.prototype.handleKeyboard=function(e,t,n,r){if(r<0)return;var i=o[t]+n,s=this.commandKeyBinding[i];e.$keyChain&&(e.$keyChain+=" "+i,s=this.commandKeyBinding[e.$keyChain]||s);if(s)if(s=="chainKeys"||s[s.length-1]=="chainKeys")return e.$keyChain=e.$keyChain||i,{command:"null"};if(e.$keyChain)if(!!t&&t!=4||n.length!=1){if(t==-1||r>0)e.$keyChain=""}else e.$keyChain=e.$keyChain.slice(0,-i.length-1);return{command:s}},e.prototype.getStatusText=function(e,t){return t.$keyChain||""},e}(),f=function(e){function t(t,n){var r=e.call(this,t,n)||this;return r.$singleCommand=!0,r}return r(t,e),t}(u);f.call=function(e,t,n){u.prototype.$init.call(e,t,n,!0)},u.call=function(e,t,n){u.prototype.$init.call(e,t,n,!1)},t.HashHandler=f,t.MultiHashHandler=u}),ace.define("ace/commands/command_manager",["require","exports","module","ace/lib/oop","ace/keyboard/hash_handler","ace/lib/event_emitter"],function(e,t,n){"use strict";var r=this&&this.__extends||function(){var e=function(t,n){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},e(t,n)};return function(t,n){function r(){this.constructor=t}if(typeof n!="function"&&n!==null)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");e(t,n),t.prototype=n===null?Object.create(n):(r.prototype=n.prototype,new r)}}(),i=e("../lib/oop"),s=e("../keyboard/hash_handler").MultiHashHandler,o=e("../lib/event_emitter").EventEmitter,u=function(e){function t(t,n){var r=e.call(this,n,t)||this;return r.byName=r.commands,r.setDefaultHandler("exec",function(e){return e.args?e.command.exec(e.editor,e.args,e.event,!1):e.command.exec(e.editor,{},e.event,!0)}),r}return r(t,e),t.prototype.exec=function(e,t,n){if(Array.isArray(e)){for(var r=e.length;r--;)if(this.exec(e[r],t,n))return!0;return!1}typeof e=="string"&&(e=this.commands[e]);if(!this.canExecute(e,t))return!1;var i={editor:t,command:e,args:n};return i.returnValue=this._emit("exec",i),this._signal("afterExec",i),i.returnValue===!1?!1:!0},t.prototype.canExecute=function(e,t){return typeof e=="string"&&(e=this.commands[e]),e?t&&t.$readOnly&&!e.readOnly?!1:this.$checkCommandState!=0&&e.isAvailable&&!e.isAvailable(t)?!1:!0:!1},t.prototype.toggleRecording=function(e){if(this.$inReplay)return;return e&&e._emit("changeStatus"),this.recording?(this.macro.pop(),this.off("exec",this.$addCommandToMacro),this.macro.length||(this.macro=this.oldMacro),this.recording=!1):(this.$addCommandToMacro||(this.$addCommandToMacro=function(e){this.macro.push([e.command,e.args])}.bind(this)),this.oldMacro=this.macro,this.macro=[],this.on("exec",this.$addCommandToMacro),this.recording=!0)},t.prototype.replay=function(e){if(this.$inReplay||!this.macro)return;if(this.recording)return this.toggleRecording(e);try{this.$inReplay=!0,this.macro.forEach(function(t){typeof t=="string"?this.exec(t,e):this.exec(t[0],e,t[1])},this)}finally{this.$inReplay=!1}},t.prototype.trimMacro=function(e){return e.map(function(e){return typeof e[0]!="string"&&(e[0]=e[0].name),e[1]||(e=e[0]),e})},t}(s);i.implement(u.prototype,o),t.CommandManager=u}),ace.define("ace/commands/default_commands",["require","exports","module","ace/lib/lang","ace/config","ace/range"],function(e,t,n){"use strict";function o(e,t){return{win:e,mac:t}}var r=e("../lib/lang"),i=e("../config"),s=e("../range").Range;t.commands=[{name:"showSettingsMenu",description:"Show settings menu",bindKey:o("Ctrl-,","Command-,"),exec:function(e){i.loadModule("ace/ext/settings_menu",function(t){t.init(e),e.showSettingsMenu()})},readOnly:!0},{name:"goToNextError",description:"Go to next error",bindKey:o("Alt-E","F4"),exec:function(e){i.loadModule("ace/ext/error_marker",function(t){t.showErrorMarker(e,1)})},scrollIntoView:"animate",readOnly:!0},{name:"goToPreviousError",description:"Go to previous error",bindKey:o("Alt-Shift-E","Shift-F4"),exec:function(e){i.loadModule("ace/ext/error_marker",function(t){t.showErrorMarker(e,-1)})},scrollIntoView:"animate",readOnly:!0},{name:"selectall",description:"Select all",bindKey:o("Ctrl-A","Command-A"),exec:function(e){e.selectAll()},readOnly:!0},{name:"centerselection",description:"Center selection",bindKey:o(null,"Ctrl-L"),exec:function(e){e.centerSelection()},readOnly:!0},{name:"gotoline",description:"Go to line...",bindKey:o("Ctrl-L","Command-L"),exec:function(e,t){typeof t=="number"&&!isNaN(t)&&e.gotoLine(t),e.prompt({$type:"gotoLine"})},readOnly:!0},{name:"fold",bindKey:o("Alt-L|Ctrl-F1","Command-Alt-L|Command-F1"),exec:function(e){e.session.toggleFold(!1)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"unfold",bindKey:o("Alt-Shift-L|Ctrl-Shift-F1","Command-Alt-Shift-L|Command-Shift-F1"),exec:function(e){e.session.toggleFold(!0)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"toggleFoldWidget",description:"Toggle fold widget",bindKey:o("F2","F2"),exec:function(e){e.session.toggleFoldWidget()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"toggleParentFoldWidget",description:"Toggle parent fold widget",bindKey:o("Alt-F2","Alt-F2"),exec:function(e){e.session.toggleFoldWidget(!0)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"foldall",description:"Fold all",bindKey:o(null,"Ctrl-Command-Option-0"),exec:function(e){e.session.foldAll()},scrollIntoView:"center",readOnly:!0},{name:"foldAllComments",description:"Fold all comments",bindKey:o(null,"Ctrl-Command-Option-0"),exec:function(e){e.session.foldAllComments()},scrollIntoView:"center",readOnly:!0},{name:"foldOther",description:"Fold other",bindKey:o("Alt-0","Command-Option-0"),exec:function(e){e.session.foldAll(),e.session.unfold(e.selection.getAllRanges())},scrollIntoView:"center",readOnly:!0},{name:"unfoldall",description:"Unfold all",bindKey:o("Alt-Shift-0","Command-Option-Shift-0"),exec:function(e){e.session.unfold()},scrollIntoView:"center",readOnly:!0},{name:"findnext",description:"Find next",bindKey:o("Ctrl-K","Command-G"),exec:function(e){e.findNext()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"findprevious",description:"Find previous",bindKey:o("Ctrl-Shift-K","Command-Shift-G"),exec:function(e){e.findPrevious()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"selectOrFindNext",description:"Select or find next",bindKey:o("Alt-K","Ctrl-G"),exec:function(e){e.selection.isEmpty()?e.selection.selectWord():e.findNext()},readOnly:!0},{name:"selectOrFindPrevious",description:"Select or find previous",bindKey:o("Alt-Shift-K","Ctrl-Shift-G"),exec:function(e){e.selection.isEmpty()?e.selection.selectWord():e.findPrevious()},readOnly:!0},{name:"find",description:"Find",bindKey:o("Ctrl-F","Command-F"),exec:function(e){i.loadModule("ace/ext/searchbox",function(t){t.Search(e)})},readOnly:!0},{name:"overwrite",description:"Overwrite",bindKey:"Insert",exec:function(e){e.toggleOverwrite()},readOnly:!0},{name:"selecttostart",description:"Select to start",bindKey:o("Ctrl-Shift-Home","Command-Shift-Home|Command-Shift-Up"),exec:function(e){e.getSelection().selectFileStart()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"gotostart",description:"Go to start",bindKey:o("Ctrl-Home","Command-Home|Command-Up"),exec:function(e){e.navigateFileStart()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"selectup",description:"Select up",bindKey:o("Shift-Up","Shift-Up|Ctrl-Shift-P"),exec:function(e){e.getSelection().selectUp()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"golineup",description:"Go line up",bindKey:o("Up","Up|Ctrl-P"),exec:function(e,t){e.navigateUp(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttoend",description:"Select to end",bindKey:o("Ctrl-Shift-End","Command-Shift-End|Command-Shift-Down"),exec:function(e){e.getSelection().selectFileEnd()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"gotoend",description:"Go to end",bindKey:o("Ctrl-End","Command-End|Command-Down"),exec:function(e){e.navigateFileEnd()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"selectdown",description:"Select down",bindKey:o("Shift-Down","Shift-Down|Ctrl-Shift-N"),exec:function(e){e.getSelection().selectDown()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"golinedown",description:"Go line down",bindKey:o("Down","Down|Ctrl-N"),exec:function(e,t){e.navigateDown(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectwordleft",description:"Select word left",bindKey:o("Ctrl-Shift-Left","Option-Shift-Left"),exec:function(e){e.getSelection().selectWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotowordleft",description:"Go to word left",bindKey:o("Ctrl-Left","Option-Left"),exec:function(e){e.navigateWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttolinestart",description:"Select to line start",bindKey:o("Alt-Shift-Left","Command-Shift-Left|Ctrl-Shift-A"),exec:function(e){e.getSelection().selectLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotolinestart",description:"Go to line start",bindKey:o("Alt-Left|Home","Command-Left|Home|Ctrl-A"),exec:function(e){e.navigateLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectleft",description:"Select left",bindKey:o("Shift-Left","Shift-Left|Ctrl-Shift-B"),exec:function(e){e.getSelection().selectLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotoleft",description:"Go to left",bindKey:o("Left","Left|Ctrl-B"),exec:function(e,t){e.navigateLeft(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectwordright",description:"Select word right",bindKey:o("Ctrl-Shift-Right","Option-Shift-Right"),exec:function(e){e.getSelection().selectWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotowordright",description:"Go to word right",bindKey:o("Ctrl-Right","Option-Right"),exec:function(e){e.navigateWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttolineend",description:"Select to line end",bindKey:o("Alt-Shift-Right","Command-Shift-Right|Shift-End|Ctrl-Shift-E"),exec:function(e){e.getSelection().selectLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotolineend",description:"Go to line end",bindKey:o("Alt-Right|End","Command-Right|End|Ctrl-E"),exec:function(e){e.navigateLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectright",description:"Select right",bindKey:o("Shift-Right","Shift-Right"),exec:function(e){e.getSelection().selectRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotoright",description:"Go to right",bindKey:o("Right","Right|Ctrl-F"),exec:function(e,t){e.navigateRight(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectpagedown",description:"Select page down",bindKey:"Shift-PageDown",exec:function(e){e.selectPageDown()},readOnly:!0},{name:"pagedown",description:"Page down",bindKey:o(null,"Option-PageDown"),exec:function(e){e.scrollPageDown()},readOnly:!0},{name:"gotopagedown",description:"Go to page down",bindKey:o("PageDown","PageDown|Ctrl-V"),exec:function(e){e.gotoPageDown()},readOnly:!0},{name:"selectpageup",description:"Select page up",bindKey:"Shift-PageUp",exec:function(e){e.selectPageUp()},readOnly:!0},{name:"pageup",description:"Page up",bindKey:o(null,"Option-PageUp"),exec:function(e){e.scrollPageUp()},readOnly:!0},{name:"gotopageup",description:"Go to page up",bindKey:"PageUp",exec:function(e){e.gotoPageUp()},readOnly:!0},{name:"scrollup",description:"Scroll up",bindKey:o("Ctrl-Up",null),exec:function(e){e.renderer.scrollBy(0,-2*e.renderer.layerConfig.lineHeight)},readOnly:!0},{name:"scrolldown",description:"Scroll down",bindKey:o("Ctrl-Down",null),exec:function(e){e.renderer.scrollBy(0,2*e.renderer.layerConfig.lineHeight)},readOnly:!0},{name:"selectlinestart",description:"Select line start",bindKey:"Shift-Home",exec:function(e){e.getSelection().selectLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectlineend",description:"Select line end",bindKey:"Shift-End",exec:function(e){e.getSelection().selectLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"togglerecording",description:"Toggle recording",bindKey:o("Ctrl-Alt-E","Command-Option-E"),exec:function(e){e.commands.toggleRecording(e)},readOnly:!0},{name:"replaymacro",description:"Replay macro",bindKey:o("Ctrl-Shift-E","Command-Shift-E"),exec:function(e){e.commands.replay(e)},readOnly:!0},{name:"jumptomatching",description:"Jump to matching",bindKey:o("Ctrl-\\|Ctrl-P","Command-\\"),exec:function(e){e.jumpToMatching()},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"selecttomatching",description:"Select to matching",bindKey:o("Ctrl-Shift-\\|Ctrl-Shift-P","Command-Shift-\\"),exec:function(e){e.jumpToMatching(!0)},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"expandToMatching",description:"Expand to matching",bindKey:o("Ctrl-Shift-M","Ctrl-Shift-M"),exec:function(e){e.jumpToMatching(!0,!0)},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"passKeysToBrowser",description:"Pass keys to browser",bindKey:o(null,null),exec:function(){},passEvent:!0,readOnly:!0},{name:"copy",description:"Copy",exec:function(e){},readOnly:!0},{name:"cut",description:"Cut",exec:function(e){var t=e.$copyWithEmptySelection&&e.selection.isEmpty(),n=t?e.selection.getLineRange():e.selection.getRange();e._emit("cut",n),n.isEmpty()||e.session.remove(n),e.clearSelection()},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"paste",description:"Paste",exec:function(e,t){e.$handlePaste(t)},scrollIntoView:"cursor"},{name:"removeline",description:"Remove line",bindKey:o("Ctrl-D","Command-D"),exec:function(e){e.removeLines()},scrollIntoView:"cursor",multiSelectAction:"forEachLine"},{name:"duplicateSelection",description:"Duplicate selection",bindKey:o("Ctrl-Shift-D","Command-Shift-D"),exec:function(e){e.duplicateSelection()},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"sortlines",description:"Sort lines",bindKey:o("Ctrl-Alt-S","Command-Alt-S"),exec:function(e){e.sortLines()},scrollIntoView:"selection",multiSelectAction:"forEachLine"},{name:"togglecomment",description:"Toggle comment",bindKey:o("Ctrl-/","Command-/"),exec:function(e){e.toggleCommentLines()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"toggleBlockComment",description:"Toggle block comment",bindKey:o("Ctrl-Shift-/","Command-Shift-/"),exec:function(e){e.toggleBlockComment()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"modifyNumberUp",description:"Modify number up",bindKey:o("Ctrl-Shift-Up","Alt-Shift-Up"),exec:function(e){e.modifyNumber(1)},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"modifyNumberDown",description:"Modify number down",bindKey:o("Ctrl-Shift-Down","Alt-Shift-Down"),exec:function(e){e.modifyNumber(-1)},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"replace",description:"Replace",bindKey:o("Ctrl-H","Command-Option-F"),exec:function(e){i.loadModule("ace/ext/searchbox",function(t){t.Search(e,!0)})}},{name:"undo",description:"Undo",bindKey:o("Ctrl-Z","Command-Z"),exec:function(e){e.undo()}},{name:"redo",description:"Redo",bindKey:o("Ctrl-Shift-Z|Ctrl-Y","Command-Shift-Z|Command-Y"),exec:function(e){e.redo()}},{name:"copylinesup",description:"Copy lines up",bindKey:o("Alt-Shift-Up","Command-Option-Up"),exec:function(e){e.copyLinesUp()},scrollIntoView:"cursor"},{name:"movelinesup",description:"Move lines up",bindKey:o("Alt-Up","Option-Up"),exec:function(e){e.moveLinesUp()},scrollIntoView:"cursor"},{name:"copylinesdown",description:"Copy lines down",bindKey:o("Alt-Shift-Down","Command-Option-Down"),exec:function(e){e.copyLinesDown()},scrollIntoView:"cursor"},{name:"movelinesdown",description:"Move lines down",bindKey:o("Alt-Down","Option-Down"),exec:function(e){e.moveLinesDown()},scrollIntoView:"cursor"},{name:"del",description:"Delete",bindKey:o("Delete","Delete|Ctrl-D|Shift-Delete"),exec:function(e){e.remove("right")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"backspace",description:"Backspace",bindKey:o("Shift-Backspace|Backspace","Ctrl-Backspace|Shift-Backspace|Backspace|Ctrl-H"),exec:function(e){e.remove("left")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"cut_or_delete",description:"Cut or delete",bindKey:o("Shift-Delete",null),exec:function(e){if(!e.selection.isEmpty())return!1;e.remove("left")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolinestart",description:"Remove to line start",bindKey:o("Alt-Backspace","Command-Backspace"),exec:function(e){e.removeToLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolineend",description:"Remove to line end",bindKey:o("Alt-Delete","Ctrl-K|Command-Delete"),exec:function(e){e.removeToLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolinestarthard",description:"Remove to line start hard",bindKey:o("Ctrl-Shift-Backspace",null),exec:function(e){var t=e.selection.getRange();t.start.column=0,e.session.remove(t)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolineendhard",description:"Remove to line end hard",bindKey:o("Ctrl-Shift-Delete",null),exec:function(e){var t=e.selection.getRange();t.end.column=Number.MAX_VALUE,e.session.remove(t)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removewordleft",description:"Remove word left",bindKey:o("Ctrl-Backspace","Alt-Backspace|Ctrl-Alt-Backspace"),exec:function(e){e.removeWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removewordright",description:"Remove word right",bindKey:o("Ctrl-Delete","Alt-Delete"),exec:function(e){e.removeWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"outdent",description:"Outdent",bindKey:o("Shift-Tab","Shift-Tab"),exec:function(e){e.blockOutdent()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"indent",description:"Indent",bindKey:o("Tab","Tab"),exec:function(e){e.indent()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"blockoutdent",description:"Block outdent",bindKey:o("Ctrl-[","Ctrl-["),exec:function(e){e.blockOutdent()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"blockindent",description:"Block indent",bindKey:o("Ctrl-]","Ctrl-]"),exec:function(e){e.blockIndent()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"insertstring",description:"Insert string",exec:function(e,t){e.insert(t)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"inserttext",description:"Insert text",exec:function(e,t){e.insert(r.stringRepeat(t.text||"",t.times||1))},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"splitline",description:"Split line",bindKey:o(null,"Ctrl-O"),exec:function(e){e.splitLine()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"transposeletters",description:"Transpose letters",bindKey:o("Alt-Shift-X","Ctrl-T"),exec:function(e){e.transposeLetters()},multiSelectAction:function(e){e.transposeSelections(1)},scrollIntoView:"cursor"},{name:"touppercase",description:"To uppercase",bindKey:o("Ctrl-U","Ctrl-U"),exec:function(e){e.toUpperCase()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"tolowercase",description:"To lowercase",bindKey:o("Ctrl-Shift-U","Ctrl-Shift-U"),exec:function(e){e.toLowerCase()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"autoindent",description:"Auto Indent",bindKey:o(null,null),exec:function(e){e.autoIndent()},scrollIntoView:"animate"},{name:"expandtoline",description:"Expand to line",bindKey:o("Ctrl-Shift-L","Command-Shift-L"),exec:function(e){var t=e.selection.getRange();t.start.column=t.end.column=0,t.end.row++,e.selection.setRange(t,!1)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"openlink",bindKey:o("Ctrl+F3","F3"),exec:function(e){e.openLink()}},{name:"joinlines",description:"Join lines",bindKey:o(null,null),exec:function(e){var t=e.selection.isBackwards(),n=t?e.selection.getSelectionLead():e.selection.getSelectionAnchor(),i=t?e.selection.getSelectionAnchor():e.selection.getSelectionLead(),o=e.session.doc.getLine(n.row).length,u=e.session.doc.getTextRange(e.selection.getRange()),a=u.replace(/\n\s*/," ").length,f=e.session.doc.getLine(n.row);for(var l=n.row+1;l<=i.row+1;l++){var c=r.stringTrimLeft(r.stringTrimRight(e.session.doc.getLine(l)));c.length!==0&&(c=" "+c),f+=c}i.row+10?(e.selection.moveCursorTo(n.row,n.column),e.selection.selectTo(n.row,n.column+a)):(o=e.session.doc.getLine(n.row).length>o?o+1:o,e.selection.moveCursorTo(n.row,o))},multiSelectAction:"forEach",readOnly:!0},{name:"invertSelection",description:"Invert selection",bindKey:o(null,null),exec:function(e){var t=e.session.doc.getLength()-1,n=e.session.doc.getLine(t).length,r=e.selection.rangeList.ranges,i=[];r.length<1&&(r=[e.selection.getRange()]);for(var o=0;ot[n].column&&n++,s.unshift(n,0),t.splice.apply(t,s),this.$updateRows()}},e.prototype.$updateRows=function(){var e=this.session.lineWidgets;if(!e)return;var t=!0;e.forEach(function(e,n){if(e){t=!1,e.row=n;while(e.$oldWidget)e.$oldWidget.row=n,e=e.$oldWidget}}),t&&(this.session.lineWidgets=null)},e.prototype.$registerLineWidget=function(e){this.session.lineWidgets||(this.session.lineWidgets=new Array(this.session.getLength()));var t=this.session.lineWidgets[e.row];return t&&(e.$oldWidget=t,t.el&&t.el.parentNode&&(t.el.parentNode.removeChild(t.el),t._inDocument=!1)),this.session.lineWidgets[e.row]=e,e},e.prototype.addLineWidget=function(e){this.$registerLineWidget(e),e.session=this.session;if(!this.editor)return e;var t=this.editor.renderer;e.html&&!e.el&&(e.el=r.createElement("div"),e.el.innerHTML=e.html),e.text&&!e.el&&(e.el=r.createElement("div"),e.el.textContent=e.text),e.el&&(r.addCssClass(e.el,"ace_lineWidgetContainer"),e.className&&r.addCssClass(e.el,e.className),e.el.style.position="absolute",e.el.style.zIndex="5",t.container.appendChild(e.el),e._inDocument=!0,e.coverGutter||(e.el.style.zIndex="3"),e.pixelHeight==null&&(e.pixelHeight=e.el.offsetHeight)),e.rowCount==null&&(e.rowCount=e.pixelHeight/t.layerConfig.lineHeight);var n=this.session.getFoldAt(e.row,0);e.$fold=n;if(n){var i=this.session.lineWidgets;e.row==n.end.row&&!i[n.start.row]?i[n.start.row]=e:e.hidden=!0}return this.session._emit("changeFold",{data:{start:{row:e.row}}}),this.$updateRows(),this.renderWidgets(null,t),this.onWidgetChanged(e),e},e.prototype.removeLineWidget=function(e){e._inDocument=!1,e.session=null,e.el&&e.el.parentNode&&e.el.parentNode.removeChild(e.el);if(e.editor&&e.editor.destroy)try{e.editor.destroy()}catch(t){}if(this.session.lineWidgets){var n=this.session.lineWidgets[e.row];if(n==e)this.session.lineWidgets[e.row]=e.$oldWidget,e.$oldWidget&&this.onWidgetChanged(e.$oldWidget);else while(n){if(n.$oldWidget==e){n.$oldWidget=e.$oldWidget;break}n=n.$oldWidget}}this.session._emit("changeFold",{data:{start:{row:e.row}}}),this.$updateRows()},e.prototype.getWidgetsAtRow=function(e){var t=this.session.lineWidgets,n=t&&t[e],r=[];while(n)r.push(n),n=n.$oldWidget;return r},e.prototype.onWidgetChanged=function(e){this.session._changedWidgets.push(e),this.editor&&this.editor.renderer.updateFull()},e.prototype.measureWidgets=function(e,t){var n=this.session._changedWidgets,r=t.layerConfig;if(!n||!n.length)return;var i=Infinity;for(var s=0;s0&&!r[i])i--;this.firstRow=n.firstRow,this.lastRow=n.lastRow,t.$cursorLayer.config=n;for(var o=i;o<=s;o++){var u=r[o];if(!u||!u.el)continue;if(u.hidden){u.el.style.top=-100-(u.pixelHeight||0)+"px";continue}u._inDocument||(u._inDocument=!0,t.container.appendChild(u.el));var a=t.$cursorLayer.getPixelPosition({row:o,column:0},!0).top;u.coverLine||(a+=n.lineHeight*this.session.getRowLineCount(u.row)),u.el.style.top=a-n.offset+"px";var f=u.coverGutter?0:t.gutterWidth;u.fixedWidth||(f-=t.scrollLeft),u.el.style.left=f+"px",u.fullWidth&&u.screenWidth&&(u.el.style.minWidth=n.width+2*n.padding+"px"),u.fixedWidth?u.el.style.right=t.scrollBar.getWidth()+"px":u.el.style.right=""}},e}();t.LineWidgets=i}),ace.define("ace/keyboard/gutter_handler",["require","exports","module","ace/lib/keys","ace/mouse/default_gutter_handler"],function(e,t,n){"use strict";var r=e("../lib/keys"),i=e("../mouse/default_gutter_handler").GutterTooltip,s=function(){function e(e){this.editor=e,this.gutterLayer=e.renderer.$gutterLayer,this.element=e.renderer.$gutter,this.lines=e.renderer.$gutterLayer.$lines,this.activeRowIndex=null,this.activeLane=null,this.annotationTooltip=new i(this.editor)}return e.prototype.addListener=function(){this.element.addEventListener("keydown",this.$onGutterKeyDown.bind(this)),this.element.addEventListener("focusout",this.$blurGutter.bind(this)),this.editor.on("mousewheel",this.$blurGutter.bind(this))},e.prototype.removeListener=function(){this.element.removeEventListener("keydown",this.$onGutterKeyDown.bind(this)),this.element.removeEventListener("focusout",this.$blurGutter.bind(this)),this.editor.off("mousewheel",this.$blurGutter.bind(this))},e.prototype.$onGutterKeyDown=function(e){if(this.annotationTooltip.isOpen){e.preventDefault(),e.keyCode===r.escape&&this.annotationTooltip.hideTooltip();return}if(e.target===this.element){if(e.keyCode!=r["enter"])return;e.preventDefault();var t=this.editor.getCursorPosition().row;this.editor.isRowVisible(t)||this.editor.scrollToLine(t,!0,!0),setTimeout(function(){var e=this.$rowToRowIndex(this.gutterLayer.$cursorCell.row),t=this.$findNearestFoldWidget(e),n=this.$findNearestAnnotation(e);if(t===null&&n===null)return;if(t===null&&n!==null){this.activeRowIndex=n,this.activeLane="annotation",this.$focusAnnotation(this.activeRowIndex);return}if(t!==null&&n===null){this.activeRowIndex=t,this.activeLane="fold",this.$focusFoldWidget(this.activeRowIndex);return}if(Math.abs(n-e)0||e+t=0&&this.$isFoldWidgetVisible(e-t))return e-t;if(e+t<=this.lines.getLength()-1&&this.$isFoldWidgetVisible(e+t))return e+t}return null},e.prototype.$findNearestAnnotation=function(e){if(this.$isAnnotationVisible(e))return e;var t=0;while(e-t>0||e+t=0&&this.$isAnnotationVisible(e-t))return e-t;if(e+t<=this.lines.getLength()-1&&this.$isAnnotationVisible(e+t))return e+t}return null},e.prototype.$focusFoldWidget=function(e){if(e==null)return;var t=this.$getFoldWidget(e);t.classList.add(this.editor.renderer.keyboardFocusClassName),t.focus()},e.prototype.$focusAnnotation=function(e){if(e==null)return;var t=this.$getAnnotation(e);t.classList.add(this.editor.renderer.keyboardFocusClassName),t.focus()},e.prototype.$blurFoldWidget=function(e){var t=this.$getFoldWidget(e);t.classList.remove(this.editor.renderer.keyboardFocusClassName),t.blur()},e.prototype.$blurAnnotation=function(e){var t=this.$getAnnotation(e);t.classList.remove(this.editor.renderer.keyboardFocusClassName),t.blur()},e.prototype.$moveFoldWidgetUp=function(){var e=this.activeRowIndex;while(e>0){e--;if(this.$isFoldWidgetVisible(e)){this.$blurFoldWidget(this.activeRowIndex),this.activeRowIndex=e,this.$focusFoldWidget(this.activeRowIndex);return}}return},e.prototype.$moveFoldWidgetDown=function(){var e=this.activeRowIndex;while(e0){e--;if(this.$isAnnotationVisible(e)){this.$blurAnnotation(this.activeRowIndex),this.activeRowIndex=e,this.$focusAnnotation(this.activeRowIndex);return}}return},e.prototype.$moveAnnotationDown=function(){var e=this.activeRowIndex;while(e=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")},i=e("./lib/oop"),s=e("./lib/dom"),o=e("./lib/lang"),u=e("./lib/useragent"),a=e("./keyboard/textinput").TextInput,f=e("./mouse/mouse_handler").MouseHandler,l=e("./mouse/fold_handler").FoldHandler,c=e("./keyboard/keybinding").KeyBinding,h=e("./edit_session").EditSession,p=e("./search").Search,d=e("./range").Range,v=e("./lib/event_emitter").EventEmitter,m=e("./commands/command_manager").CommandManager,g=e("./commands/default_commands").commands,y=e("./config"),b=e("./token_iterator").TokenIterator,w=e("./line_widgets").LineWidgets,E=e("./keyboard/gutter_handler").GutterKeyboardHandler,S=e("./config").nls,x=e("./clipboard"),T=e("./lib/keys"),N=function(){function e(t,n,r){this.session,this.$toDestroy=[];var i=t.getContainerElement();this.container=i,this.renderer=t,this.id="editor"+ ++e.$uid,this.commands=new m(u.isMac?"mac":"win",g),typeof document=="object"&&(this.textInput=new a(t.getTextAreaContainer(),this),this.renderer.textarea=this.textInput.getElement(),this.$mouseHandler=new f(this),new l(this)),this.keyBinding=new c(this),this.$search=(new p).set({wrap:!0}),this.$historyTracker=this.$historyTracker.bind(this),this.commands.on("exec",this.$historyTracker),this.$initOperationListeners(),this._$emitInputEvent=o.delayedCall(function(){this._signal("input",{}),this.session&&!this.session.destroyed&&this.session.bgTokenizer.scheduleStart()}.bind(this)),this.on("change",function(e,t){t._$emitInputEvent.schedule(31)}),this.setSession(n||r&&r.session||new h("")),y.resetOptions(this),r&&this.setOptions(r),y._signal("editor",this)}return e.prototype.$initOperationListeners=function(){this.commands.on("exec",this.startOperation.bind(this),!0),this.commands.on("afterExec",this.endOperation.bind(this),!0),this.$opResetTimer=o.delayedCall(this.endOperation.bind(this,!0)),this.on("change",function(){this.curOp||(this.startOperation(),this.curOp.selectionBefore=this.$lastSel),this.curOp.docChanged=!0}.bind(this),!0),this.on("changeSelection",function(){this.curOp||(this.startOperation(),this.curOp.selectionBefore=this.$lastSel),this.curOp.selectionChanged=!0}.bind(this),!0)},e.prototype.startOperation=function(e){if(this.curOp){if(!e||this.curOp.command)return;this.prevOp=this.curOp}e||(this.previousCommand=null,e={}),this.$opResetTimer.schedule(),this.curOp=this.session.curOp={command:e.command||{},args:e.args,scrollTop:this.renderer.scrollTop},this.curOp.selectionBefore=this.selection.toJSON()},e.prototype.endOperation=function(e){if(this.curOp&&this.session){if(e&&e.returnValue===!1||!this.session)return this.curOp=null;if(e==1&&this.curOp.command&&this.curOp.command.name=="mouse")return;this._signal("beforeEndOperation");if(!this.curOp)return;var t=this.curOp.command,n=t&&t.scrollIntoView;if(n){switch(n){case"center-animate":n="animate";case"center":this.renderer.scrollCursorIntoView(null,.5);break;case"animate":case"cursor":this.renderer.scrollCursorIntoView();break;case"selectionPart":var r=this.selection.getRange(),i=this.renderer.layerConfig;(r.start.row>=i.lastRow||r.end.row<=i.firstRow)&&this.renderer.scrollSelectionIntoView(this.selection.anchor,this.selection.lead);break;default:}n=="animate"&&this.renderer.animateScrolling(this.curOp.scrollTop)}var s=this.selection.toJSON();this.curOp.selectionAfter=s,this.$lastSel=this.selection.toJSON(),this.session.getUndoManager().addSelection(s),this.prevOp=this.curOp,this.curOp=null}},e.prototype.$historyTracker=function(e){if(!this.$mergeUndoDeltas)return;var t=this.prevOp,n=this.$mergeableCommands,r=t.command&&e.command.name==t.command.name;if(e.command.name=="insertstring"){var i=e.args;this.mergeNextCommand===undefined&&(this.mergeNextCommand=!0),r=r&&this.mergeNextCommand&&(!/\s/.test(i)||/\s/.test(t.args)),this.mergeNextCommand=!0}else r=r&&n.indexOf(e.command.name)!==-1;this.$mergeUndoDeltas!="always"&&Date.now()-this.sequenceStartTime>2e3&&(r=!1),r?this.session.mergeUndoDeltas=!0:n.indexOf(e.command.name)!==-1&&(this.sequenceStartTime=Date.now())},e.prototype.setKeyboardHandler=function(e,t){if(e&&typeof e=="string"&&e!="ace"){this.$keybindingId=e;var n=this;y.loadModule(["keybinding",e],function(r){n.$keybindingId==e&&n.keyBinding.setKeyboardHandler(r&&r.handler),t&&t()})}else this.$keybindingId=null,this.keyBinding.setKeyboardHandler(e),t&&t()},e.prototype.getKeyboardHandler=function(){return this.keyBinding.getKeyboardHandler()},e.prototype.setSession=function(e){if(this.session==e)return;this.curOp&&this.endOperation(),this.curOp={};var t=this.session;if(t){this.session.off("change",this.$onDocumentChange),this.session.off("changeMode",this.$onChangeMode),this.session.off("tokenizerUpdate",this.$onTokenizerUpdate),this.session.off("changeTabSize",this.$onChangeTabSize),this.session.off("changeWrapLimit",this.$onChangeWrapLimit),this.session.off("changeWrapMode",this.$onChangeWrapMode),this.session.off("changeFold",this.$onChangeFold),this.session.off("changeFrontMarker",this.$onChangeFrontMarker),this.session.off("changeBackMarker",this.$onChangeBackMarker),this.session.off("changeBreakpoint",this.$onChangeBreakpoint),this.session.off("changeAnnotation",this.$onChangeAnnotation),this.session.off("changeOverwrite",this.$onCursorChange),this.session.off("changeScrollTop",this.$onScrollTopChange),this.session.off("changeScrollLeft",this.$onScrollLeftChange);var n=this.session.getSelection();n.off("changeCursor",this.$onCursorChange),n.off("changeSelection",this.$onSelectionChange)}this.session=e,e?(this.$onDocumentChange=this.onDocumentChange.bind(this),e.on("change",this.$onDocumentChange),this.renderer.setSession(e),this.$onChangeMode=this.onChangeMode.bind(this),e.on("changeMode",this.$onChangeMode),this.$onTokenizerUpdate=this.onTokenizerUpdate.bind(this),e.on("tokenizerUpdate",this.$onTokenizerUpdate),this.$onChangeTabSize=this.renderer.onChangeTabSize.bind(this.renderer),e.on("changeTabSize",this.$onChangeTabSize),this.$onChangeWrapLimit=this.onChangeWrapLimit.bind(this),e.on("changeWrapLimit",this.$onChangeWrapLimit),this.$onChangeWrapMode=this.onChangeWrapMode.bind(this),e.on("changeWrapMode",this.$onChangeWrapMode),this.$onChangeFold=this.onChangeFold.bind(this),e.on("changeFold",this.$onChangeFold),this.$onChangeFrontMarker=this.onChangeFrontMarker.bind(this),this.session.on("changeFrontMarker",this.$onChangeFrontMarker),this.$onChangeBackMarker=this.onChangeBackMarker.bind(this),this.session.on("changeBackMarker",this.$onChangeBackMarker),this.$onChangeBreakpoint=this.onChangeBreakpoint.bind(this),this.session.on("changeBreakpoint",this.$onChangeBreakpoint),this.$onChangeAnnotation=this.onChangeAnnotation.bind(this),this.session.on("changeAnnotation",this.$onChangeAnnotation),this.$onCursorChange=this.onCursorChange.bind(this),this.session.on("changeOverwrite",this.$onCursorChange),this.$onScrollTopChange=this.onScrollTopChange.bind(this),this.session.on("changeScrollTop",this.$onScrollTopChange),this.$onScrollLeftChange=this.onScrollLeftChange.bind(this),this.session.on("changeScrollLeft",this.$onScrollLeftChange),this.selection=e.getSelection(),this.selection.on("changeCursor",this.$onCursorChange),this.$onSelectionChange=this.onSelectionChange.bind(this),this.selection.on("changeSelection",this.$onSelectionChange),this.onChangeMode(),this.onCursorChange(),this.onScrollTopChange(),this.onScrollLeftChange(),this.onSelectionChange(),this.onChangeFrontMarker(),this.onChangeBackMarker(),this.onChangeBreakpoint(),this.onChangeAnnotation(),this.session.getUseWrapMode()&&this.renderer.adjustWrapLimit(),this.renderer.updateFull()):(this.selection=null,this.renderer.setSession(e)),this._signal("changeSession",{session:e,oldSession:t}),this.curOp=null,t&&t._signal("changeEditor",{oldEditor:this}),e&&e._signal("changeEditor",{editor:this}),e&&!e.destroyed&&e.bgTokenizer.scheduleStart()},e.prototype.getSession=function(){return this.session},e.prototype.setValue=function(e,t){return this.session.doc.setValue(e),t?t==1?this.navigateFileEnd():t==-1&&this.navigateFileStart():this.selectAll(),e},e.prototype.getValue=function(){return this.session.getValue()},e.prototype.getSelection=function(){return this.selection},e.prototype.resize=function(e){this.renderer.onResize(e)},e.prototype.setTheme=function(e,t){this.renderer.setTheme(e,t)},e.prototype.getTheme=function(){return this.renderer.getTheme()},e.prototype.setStyle=function(e){this.renderer.setStyle(e)},e.prototype.unsetStyle=function(e){this.renderer.unsetStyle(e)},e.prototype.getFontSize=function(){return this.getOption("fontSize")||s.computedStyle(this.container).fontSize},e.prototype.setFontSize=function(e){this.setOption("fontSize",e)},e.prototype.$highlightBrackets=function(){if(this.$highlightPending)return;var e=this;this.$highlightPending=!0,setTimeout(function(){e.$highlightPending=!1;var t=e.session;if(!t||t.destroyed)return;t.$bracketHighlight&&(t.$bracketHighlight.markerIds.forEach(function(e){t.removeMarker(e)}),t.$bracketHighlight=null);var n=e.getCursorPosition(),r=e.getKeyboardHandler(),i=r&&r.$getDirectionForHighlight&&r.$getDirectionForHighlight(e),s=t.getMatchingBracketRanges(n,i);if(!s){var o=new b(t,n.row,n.column),u=o.getCurrentToken();if(u&&/\b(?:tag-open|tag-name)/.test(u.type)){var a=t.getMatchingTags(n);a&&(s=[a.openTagName.isEmpty()?a.openTag:a.openTagName,a.closeTagName.isEmpty()?a.closeTag:a.closeTagName])}}!s&&t.$mode.getMatching&&(s=t.$mode.getMatching(e.session));if(!s){e.getHighlightIndentGuides()&&e.renderer.$textLayer.$highlightIndentGuide();return}var f="ace_bracket";Array.isArray(s)?s.length==1&&(f="ace_error_bracket"):s=[s],s.length==2&&(d.comparePoints(s[0].end,s[1].start)==0?s=[d.fromPoints(s[0].start,s[1].end)]:d.comparePoints(s[0].start,s[1].end)==0&&(s=[d.fromPoints(s[1].start,s[0].end)])),t.$bracketHighlight={ranges:s,markerIds:s.map(function(e){return t.addMarker(e,f,"text")})},e.getHighlightIndentGuides()&&e.renderer.$textLayer.$highlightIndentGuide()},50)},e.prototype.focus=function(){this.textInput.focus()},e.prototype.isFocused=function(){return this.textInput.isFocused()},e.prototype.blur=function(){this.textInput.blur()},e.prototype.onFocus=function(e){if(this.$isFocused)return;this.$isFocused=!0,this.renderer.showCursor(),this.renderer.visualizeFocus(),this._emit("focus",e)},e.prototype.onBlur=function(e){if(!this.$isFocused)return;this.$isFocused=!1,this.renderer.hideCursor(),this.renderer.visualizeBlur(),this._emit("blur",e)},e.prototype.$cursorChange=function(){this.renderer.updateCursor(),this.$highlightBrackets(),this.$updateHighlightActiveLine()},e.prototype.onDocumentChange=function(e){var t=this.session.$useWrapMode,n=e.start.row==e.end.row?e.end.row:Infinity;this.renderer.updateLines(e.start.row,n,t),this._signal("change",e),this.$cursorChange()},e.prototype.onTokenizerUpdate=function(e){var t=e.data;this.renderer.updateLines(t.first,t.last)},e.prototype.onScrollTopChange=function(){this.renderer.scrollToY(this.session.getScrollTop())},e.prototype.onScrollLeftChange=function(){this.renderer.scrollToX(this.session.getScrollLeft())},e.prototype.onCursorChange=function(){this.$cursorChange(),this._signal("changeSelection")},e.prototype.$updateHighlightActiveLine=function(){var e=this.getSession(),t;if(this.$highlightActiveLine){if(this.$selectionStyle!="line"||!this.selection.isMultiLine())t=this.getCursorPosition();this.renderer.theme&&this.renderer.theme.$selectionColorConflict&&!this.selection.isEmpty()&&(t=!1),this.renderer.$maxLines&&this.session.getLength()===1&&!(this.renderer.$minLines>1)&&(t=!1)}if(e.$highlightLineMarker&&!t)e.removeMarker(e.$highlightLineMarker.id),e.$highlightLineMarker=null;else if(!e.$highlightLineMarker&&t){var n=new d(t.row,t.column,t.row,Infinity);n.id=e.addMarker(n,"ace_active-line","screenLine"),e.$highlightLineMarker=n}else t&&(e.$highlightLineMarker.start.row=t.row,e.$highlightLineMarker.end.row=t.row,e.$highlightLineMarker.start.column=t.column,e._signal("changeBackMarker"))},e.prototype.onSelectionChange=function(e){var t=this.session;t.$selectionMarker&&t.removeMarker(t.$selectionMarker),t.$selectionMarker=null;if(!this.selection.isEmpty()){var n=this.selection.getRange(),r=this.getSelectionStyle();t.$selectionMarker=t.addMarker(n,"ace_selection",r)}else this.$updateHighlightActiveLine();var i=this.$highlightSelectedWord&&this.$getSelectionHighLightRegexp();this.session.highlight(i),this._signal("changeSelection")},e.prototype.$getSelectionHighLightRegexp=function(){var e=this.session,t=this.getSelectionRange();if(t.isEmpty()||t.isMultiLine())return;var n=t.start.column,r=t.end.column,i=e.getLine(t.start.row),s=i.substring(n,r);if(s.length>5e3||!/[\w\d]/.test(s))return;var o=this.$search.$assembleRegExp({wholeWord:!0,caseSensitive:!0,needle:s}),u=i.substring(n-1,r+1);if(!o.test(u))return;return o},e.prototype.onChangeFrontMarker=function(){this.renderer.updateFrontMarkers()},e.prototype.onChangeBackMarker=function(){this.renderer.updateBackMarkers()},e.prototype.onChangeBreakpoint=function(){this.renderer.updateBreakpoints()},e.prototype.onChangeAnnotation=function(){this.renderer.setAnnotations(this.session.getAnnotations())},e.prototype.onChangeMode=function(e){this.renderer.updateText(),this._emit("changeMode",e)},e.prototype.onChangeWrapLimit=function(){this.renderer.updateFull()},e.prototype.onChangeWrapMode=function(){this.renderer.onResize(!0)},e.prototype.onChangeFold=function(){this.$updateHighlightActiveLine(),this.renderer.updateFull()},e.prototype.getSelectedText=function(){return this.session.getTextRange(this.getSelectionRange())},e.prototype.getCopyText=function(){var e=this.getSelectedText(),t=this.session.doc.getNewLineCharacter(),n=!1;if(!e&&this.$copyWithEmptySelection){n=!0;var r=this.selection.getAllRanges();for(var i=0;iu.search(/\S|$/)){var a=u.substr(i.column).search(/\S|$/);n.doc.removeInLine(i.row,i.column,i.column+a)}}this.clearSelection();var f=i.column,l=n.getState(i.row),u=n.getLine(i.row),c=r.checkOutdent(l,u,e);n.insert(i,e),s&&s.selection&&(s.selection.length==2?this.selection.setSelectionRange(new d(i.row,f+s.selection[0],i.row,f+s.selection[1])):this.selection.setSelectionRange(new d(i.row+s.selection[0],s.selection[1],i.row+s.selection[2],s.selection[3])));if(this.$enableAutoIndent){if(n.getDocument().isNewLine(e)){var h=r.getNextLineIndent(l,u.slice(0,i.column),n.getTabString());n.insert({row:i.row+1,column:0},h)}c&&r.autoOutdent(l,n,i.row)}},e.prototype.autoIndent=function(){var e=this.session,t=e.getMode(),n=this.selection.isEmpty()?[new d(0,0,e.doc.getLength()-1,0)]:this.selection.getAllRanges(),r="",i="",s="",o=e.getTabString();for(var u=0;u0&&(r=e.getState(l-1),i=e.getLine(l-1),s=t.getNextLineIndent(r,i,o));var c=e.getLine(l),h=t.$getIndent(c);if(s!==h){if(h.length>0){var p=new d(l,0,l,h.length);e.remove(p)}s.length>0&&e.insert({row:l,column:0},s)}t.autoOutdent(r,e,l)}}},e.prototype.onTextInput=function(e,t){if(!t)return this.keyBinding.onTextInput(e);this.startOperation({command:{name:"insertstring"}});var n=this.applyComposition.bind(this,e,t);this.selection.rangeCount?this.forEachSelection(n):n(),this.endOperation()},e.prototype.applyComposition=function(e,t){if(t.extendLeft||t.extendRight){var n=this.selection.getRange();n.start.column-=t.extendLeft,n.end.column+=t.extendRight,n.start.column<0&&(n.start.row--,n.start.column+=this.session.getLine(n.start.row).length+1),this.selection.setRange(n),!e&&!n.isEmpty()&&this.remove()}(e||!this.selection.isEmpty())&&this.insert(e,!0);if(t.restoreStart||t.restoreEnd){var n=this.selection.getRange();n.start.column-=t.restoreStart,n.end.column-=t.restoreEnd,this.selection.setRange(n)}},e.prototype.onCommandKey=function(e,t,n){return this.keyBinding.onCommandKey(e,t,n)},e.prototype.setOverwrite=function(e){this.session.setOverwrite(e)},e.prototype.getOverwrite=function(){return this.session.getOverwrite()},e.prototype.toggleOverwrite=function(){this.session.toggleOverwrite()},e.prototype.setScrollSpeed=function(e){this.setOption("scrollSpeed",e)},e.prototype.getScrollSpeed=function(){return this.getOption("scrollSpeed")},e.prototype.setDragDelay=function(e){this.setOption("dragDelay",e)},e.prototype.getDragDelay=function(){return this.getOption("dragDelay")},e.prototype.setSelectionStyle=function(e){this.setOption("selectionStyle",e)},e.prototype.getSelectionStyle=function(){return this.getOption("selectionStyle")},e.prototype.setHighlightActiveLine=function(e){this.setOption("highlightActiveLine",e)},e.prototype.getHighlightActiveLine=function(){return this.getOption("highlightActiveLine")},e.prototype.setHighlightGutterLine=function(e){this.setOption("highlightGutterLine",e)},e.prototype.getHighlightGutterLine=function(){return this.getOption("highlightGutterLine")},e.prototype.setHighlightSelectedWord=function(e){this.setOption("highlightSelectedWord",e)},e.prototype.getHighlightSelectedWord=function(){return this.$highlightSelectedWord},e.prototype.setAnimatedScroll=function(e){this.renderer.setAnimatedScroll(e)},e.prototype.getAnimatedScroll=function(){return this.renderer.getAnimatedScroll()},e.prototype.setShowInvisibles=function(e){this.renderer.setShowInvisibles(e)},e.prototype.getShowInvisibles=function(){return this.renderer.getShowInvisibles()},e.prototype.setDisplayIndentGuides=function(e){this.renderer.setDisplayIndentGuides(e)},e.prototype.getDisplayIndentGuides=function(){return this.renderer.getDisplayIndentGuides()},e.prototype.setHighlightIndentGuides=function(e){this.renderer.setHighlightIndentGuides(e)},e.prototype.getHighlightIndentGuides=function(){return this.renderer.getHighlightIndentGuides()},e.prototype.setShowPrintMargin=function(e){this.renderer.setShowPrintMargin(e)},e.prototype.getShowPrintMargin=function(){return this.renderer.getShowPrintMargin()},e.prototype.setPrintMarginColumn=function(e){this.renderer.setPrintMarginColumn(e)},e.prototype.getPrintMarginColumn=function(){return this.renderer.getPrintMarginColumn()},e.prototype.setReadOnly=function(e){this.setOption("readOnly",e)},e.prototype.getReadOnly=function(){return this.getOption("readOnly")},e.prototype.setBehavioursEnabled=function(e){this.setOption("behavioursEnabled",e)},e.prototype.getBehavioursEnabled=function(){return this.getOption("behavioursEnabled")},e.prototype.setWrapBehavioursEnabled=function(e){this.setOption("wrapBehavioursEnabled",e)},e.prototype.getWrapBehavioursEnabled=function(){return this.getOption("wrapBehavioursEnabled")},e.prototype.setShowFoldWidgets=function(e){this.setOption("showFoldWidgets",e)},e.prototype.getShowFoldWidgets=function(){return this.getOption("showFoldWidgets")},e.prototype.setFadeFoldWidgets=function(e){this.setOption("fadeFoldWidgets",e)},e.prototype.getFadeFoldWidgets=function(){return this.getOption("fadeFoldWidgets")},e.prototype.remove=function(e){this.selection.isEmpty()&&(e=="left"?this.selection.selectLeft():this.selection.selectRight());var t=this.getSelectionRange();if(this.getBehavioursEnabled()){var n=this.session,r=n.getState(t.start.row),i=n.getMode().transformAction(r,"deletion",this,n,t);if(t.end.column===0){var s=n.getTextRange(t);if(s[s.length-1]=="\n"){var o=n.getLine(t.end.row);/^\s+$/.test(o)&&(t.end.column=o.length)}}i&&(t=i)}this.session.remove(t),this.clearSelection()},e.prototype.removeWordRight=function(){this.selection.isEmpty()&&this.selection.selectWordRight(),this.session.remove(this.getSelectionRange()),this.clearSelection()},e.prototype.removeWordLeft=function(){this.selection.isEmpty()&&this.selection.selectWordLeft(),this.session.remove(this.getSelectionRange()),this.clearSelection()},e.prototype.removeToLineStart=function(){this.selection.isEmpty()&&this.selection.selectLineStart(),this.selection.isEmpty()&&this.selection.selectLeft(),this.session.remove(this.getSelectionRange()),this.clearSelection()},e.prototype.removeToLineEnd=function(){this.selection.isEmpty()&&this.selection.selectLineEnd();var e=this.getSelectionRange();e.start.column==e.end.column&&e.start.row==e.end.row&&(e.end.column=0,e.end.row++),this.session.remove(e),this.clearSelection()},e.prototype.splitLine=function(){this.selection.isEmpty()||(this.session.remove(this.getSelectionRange()),this.clearSelection());var e=this.getCursorPosition();this.insert("\n"),this.moveCursorToPosition(e)},e.prototype.setGhostText=function(e,t){this.session.widgetManager||(this.session.widgetManager=new w(this.session),this.session.widgetManager.attach(this)),this.renderer.setGhostText(e,t)},e.prototype.removeGhostText=function(){if(!this.session.widgetManager)return;this.renderer.removeGhostText()},e.prototype.transposeLetters=function(){if(!this.selection.isEmpty())return;var e=this.getCursorPosition(),t=e.column;if(t===0)return;var n=this.session.getLine(e.row),r,i;tt.toLowerCase()?1:0});var i=new d(0,0,0,0);for(var r=e.first;r<=e.last;r++){var s=t.getLine(r);i.start.row=r,i.end.row=r,i.end.column=s.length,t.replace(i,n[r-e.first])}},e.prototype.toggleCommentLines=function(){var e=this.session.getState(this.getCursorPosition().row),t=this.$getSelectedRows();this.session.getMode().toggleCommentLines(e,this.session,t.first,t.last)},e.prototype.toggleBlockComment=function(){var e=this.getCursorPosition(),t=this.session.getState(e.row),n=this.getSelectionRange();this.session.getMode().toggleBlockComment(t,this.session,n,e)},e.prototype.getNumberAt=function(e,t){var n=/[\-]?[0-9]+(?:\.[0-9]+)?/g;n.lastIndex=0;var r=this.session.getLine(e);while(n.lastIndex=t){var s={value:i[0],start:i.index,end:i.index+i[0].length};return s}}return null},e.prototype.modifyNumber=function(e){var t=this.selection.getCursor().row,n=this.selection.getCursor().column,r=new d(t,n-1,t,n),i=this.session.getTextRange(r);if(!isNaN(parseFloat(i))&&isFinite(i)){var s=this.getNumberAt(t,n);if(s){var o=s.value.indexOf(".")>=0?s.start+s.value.indexOf(".")+1:s.end,u=s.start+s.value.length-o,a=parseFloat(s.value);a*=Math.pow(10,u),o!==s.end&&n=u&&s<=a&&(n=t,f.selection.clearSelection(),f.moveCursorTo(e,u+r),f.selection.selectTo(e,a+r)),u=a});var l=this.$toggleWordPairs,c;for(var h=0;h=a&&u<=f&&p.match(/((?:https?|ftp):\/\/[\S]+)/)){l=p.replace(/[\s:.,'";}\]]+$/,"");break}a=f}}catch(d){n={error:d}}finally{try{h&&!h.done&&(i=c.return)&&i.call(c)}finally{if(n)throw n.error}}return l},e.prototype.openLink=function(){var e=this.selection.getCursor(),t=this.findLinkAt(e.row,e.column);return t&&window.open(t,"_blank"),t!=null},e.prototype.removeLines=function(){var e=this.$getSelectedRows();this.session.removeFullLines(e.first,e.last),this.clearSelection()},e.prototype.duplicateSelection=function(){var e=this.selection,t=this.session,n=e.getRange(),r=e.isBackwards();if(n.isEmpty()){var i=n.start.row;t.duplicateLines(i,i)}else{var s=r?n.start:n.end,o=t.insert(s,t.getTextRange(n));n.start=s,n.end=o,e.setSelectionRange(n,r)}},e.prototype.moveLinesDown=function(){this.$moveLines(1,!1)},e.prototype.moveLinesUp=function(){this.$moveLines(-1,!1)},e.prototype.moveText=function(e,t,n){return this.session.moveText(e,t,n)},e.prototype.copyLinesUp=function(){this.$moveLines(-1,!0)},e.prototype.copyLinesDown=function(){this.$moveLines(1,!0)},e.prototype.$moveLines=function(e,t){var n,r,i=this.selection;if(!i.inMultiSelectMode||this.inVirtualSelectionMode){var s=i.toOrientedRange();n=this.$getSelectedRows(s),r=this.session.$moveLines(n.first,n.last,t?0:e),t&&e==-1&&(r=0),s.moveBy(r,0),i.fromOrientedRange(s)}else{var o=i.rangeList.ranges;i.rangeList.detach(this.session),this.inVirtualSelectionMode=!0;var u=0,a=0,f=o.length;for(var l=0;lp+1)break;p=d.last}l--,u=this.session.$moveLines(h,p,t?0:e),t&&e==-1&&(c=l+1);while(c<=l)o[c].moveBy(u,0),c++;t||(u=0),a+=u}i.fromOrientedRange(i.ranges[0]),i.rangeList.attach(this.session),this.inVirtualSelectionMode=!1}},e.prototype.$getSelectedRows=function(e){return e=(e||this.getSelectionRange()).collapseRows(),{first:this.session.getRowFoldStart(e.start.row),last:this.session.getRowFoldEnd(e.end.row)}},e.prototype.onCompositionStart=function(e){this.renderer.showComposition(e)},e.prototype.onCompositionUpdate=function(e){this.renderer.setCompositionText(e)},e.prototype.onCompositionEnd=function(){this.renderer.hideComposition()},e.prototype.getFirstVisibleRow=function(){return this.renderer.getFirstVisibleRow()},e.prototype.getLastVisibleRow=function(){return this.renderer.getLastVisibleRow()},e.prototype.isRowVisible=function(e){return e>=this.getFirstVisibleRow()&&e<=this.getLastVisibleRow()},e.prototype.isRowFullyVisible=function(e){return e>=this.renderer.getFirstFullyVisibleRow()&&e<=this.renderer.getLastFullyVisibleRow()},e.prototype.$getVisibleRowCount=function(){return this.renderer.getScrollBottomRow()-this.renderer.getScrollTopRow()+1},e.prototype.$moveByPage=function(e,t){var n=this.renderer,r=this.renderer.layerConfig,i=e*Math.floor(r.height/r.lineHeight);t===!0?this.selection.$moveSelection(function(){this.moveCursorBy(i,0)}):t===!1&&(this.selection.moveCursorBy(i,0),this.selection.clearSelection());var s=n.scrollTop;n.scrollBy(0,i*r.lineHeight),t!=null&&n.scrollCursorIntoView(null,.5),n.animateScrolling(s)},e.prototype.selectPageDown=function(){this.$moveByPage(1,!0)},e.prototype.selectPageUp=function(){this.$moveByPage(-1,!0)},e.prototype.gotoPageDown=function(){this.$moveByPage(1,!1)},e.prototype.gotoPageUp=function(){this.$moveByPage(-1,!1)},e.prototype.scrollPageDown=function(){this.$moveByPage(1)},e.prototype.scrollPageUp=function(){this.$moveByPage(-1)},e.prototype.scrollToRow=function(e){this.renderer.scrollToRow(e)},e.prototype.scrollToLine=function(e,t,n,r){this.renderer.scrollToLine(e,t,n,r)},e.prototype.centerSelection=function(){var e=this.getSelectionRange(),t={row:Math.floor(e.start.row+(e.end.row-e.start.row)/2),column:Math.floor(e.start.column+(e.end.column-e.start.column)/2)};this.renderer.alignCursor(t,.5)},e.prototype.getCursorPosition=function(){return this.selection.getCursor()},e.prototype.getCursorPositionScreen=function(){return this.session.documentToScreenPosition(this.getCursorPosition())},e.prototype.getSelectionRange=function(){return this.selection.getRange()},e.prototype.selectAll=function(){this.selection.selectAll()},e.prototype.clearSelection=function(){this.selection.clearSelection()},e.prototype.moveCursorTo=function(e,t){this.selection.moveCursorTo(e,t)},e.prototype.moveCursorToPosition=function(e){this.selection.moveCursorToPosition(e)},e.prototype.jumpToMatching=function(e,t){var n=this.getCursorPosition(),r=new b(this.session,n.row,n.column),i=r.getCurrentToken(),s=0;i&&i.type.indexOf("tag-name")!==-1&&(i=r.stepBackward());var o=i||r.stepForward();if(!o)return;var u,a=!1,f={},l=n.column-o.start,c,h={")":"(","(":"(","]":"[","[":"[","{":"{","}":"{"};do{if(o.value.match(/[{}()\[\]]/g))for(;l1?f[o.value]++:i.value==="=0;--s)this.$tryReplace(n[s],e)&&r++;return this.selection.setSelectionRange(i),r},e.prototype.$tryReplace=function(e,t){var n=this.session.getTextRange(e);return t=this.$search.replace(n,t),t!==null?(e.end=this.session.replace(e,t),e):null},e.prototype.getLastSearchOptions=function(){return this.$search.getOptions()},e.prototype.find=function(e,t,n){t||(t={}),typeof e=="string"||e instanceof RegExp?t.needle=e:typeof e=="object"&&i.mixin(t,e);var r=this.selection.getRange();t.needle==null&&(e=this.session.getTextRange(r)||this.$search.$options.needle,e||(r=this.session.getWordRange(r.start.row,r.start.column),e=this.session.getTextRange(r)),this.$search.set({needle:e})),this.$search.set(t),t.start||this.$search.set({start:r});var s=this.$search.find(this.session);if(t.preventScroll)return s;if(s)return this.revealRange(s,n),s;t.backwards?r.start=r.end:r.end=r.start,this.selection.setRange(r)},e.prototype.findNext=function(e,t){this.find({skipCurrent:!0,backwards:!1},e,t)},e.prototype.findPrevious=function(e,t){this.find(e,{skipCurrent:!0,backwards:!0},t)},e.prototype.revealRange=function(e,t){this.session.unfold(e),this.selection.setSelectionRange(e);var n=this.renderer.scrollTop;this.renderer.scrollSelectionIntoView(e.start,e.end,.5),t!==!1&&this.renderer.animateScrolling(n)},e.prototype.undo=function(){this.session.getUndoManager().undo(this.session),this.renderer.scrollCursorIntoView(null,.5)},e.prototype.redo=function(){this.session.getUndoManager().redo(this.session),this.renderer.scrollCursorIntoView(null,.5)},e.prototype.destroy=function(){this.$toDestroy&&(this.$toDestroy.forEach(function(e){e.destroy()}),this.$toDestroy=null),this.$mouseHandler&&this.$mouseHandler.destroy(),this.renderer.destroy(),this._signal("destroy",this),this.session&&this.session.destroy(),this._$emitInputEvent&&this._$emitInputEvent.cancel(),this.removeAllListeners()},e.prototype.setAutoScrollEditorIntoView=function(e){if(!e)return;var t,n=this,r=!1;this.$scrollAnchor||(this.$scrollAnchor=document.createElement("div"));var i=this.$scrollAnchor;i.style.cssText="position:absolute",this.container.insertBefore(i,this.container.firstChild);var s=this.on("changeSelection",function(){r=!0}),o=this.renderer.on("beforeRender",function(){r&&(t=n.renderer.container.getBoundingClientRect())}),u=this.renderer.on("afterRender",function(){if(r&&t&&(n.isFocused()||n.searchBox&&n.searchBox.isFocused())){var e=n.renderer,s=e.$cursorLayer.$pixelPos,o=e.layerConfig,u=s.top-o.offset;s.top>=0&&u+t.top<0?r=!0:s.topwindow.innerHeight?r=!1:r=null,r!=null&&(i.style.top=u+"px",i.style.left=s.left+"px",i.style.height=o.lineHeight+"px",i.scrollIntoView(r)),r=t=null}});this.setAutoScrollEditorIntoView=function(e){if(e)return;delete this.setAutoScrollEditorIntoView,this.off("changeSelection",s),this.renderer.off("afterRender",u),this.renderer.off("beforeRender",o)}},e.prototype.$resetCursorStyle=function(){var e=this.$cursorStyle||"ace",t=this.renderer.$cursorLayer;if(!t)return;t.setSmoothBlinking(/smooth/.test(e)),t.isBlinking=!this.$readOnly&&e!="wide",s.setCssClass(t.element,"ace_slim-cursors",/slim/.test(e))},e.prototype.prompt=function(e,t,n){var r=this;y.loadModule("ace/ext/prompt",function(i){i.prompt(r,e,t,n)})},e}();N.$uid=0,N.prototype.curOp=null,N.prototype.prevOp={},N.prototype.$mergeableCommands=["backspace","del","insertstring"],N.prototype.$toggleWordPairs=[["first","last"],["true","false"],["yes","no"],["width","height"],["top","bottom"],["right","left"],["on","off"],["x","y"],["get","set"],["max","min"],["horizontal","vertical"],["show","hide"],["add","remove"],["up","down"],["before","after"],["even","odd"],["in","out"],["inside","outside"],["next","previous"],["increase","decrease"],["attach","detach"],["&&","||"],["==","!="]],i.implement(N.prototype,v),y.defineOptions(N.prototype,"editor",{selectionStyle:{set:function(e){this.onSelectionChange(),this._signal("changeSelectionStyle",{data:e})},initialValue:"line"},highlightActiveLine:{set:function(){this.$updateHighlightActiveLine()},initialValue:!0},highlightSelectedWord:{set:function(e){this.$onSelectionChange()},initialValue:!0},readOnly:{set:function(e){this.textInput.setReadOnly(e),this.$resetCursorStyle()},initialValue:!1},copyWithEmptySelection:{set:function(e){this.textInput.setCopyWithEmptySelection(e)},initialValue:!1},cursorStyle:{set:function(e){this.$resetCursorStyle()},values:["ace","slim","smooth","wide"],initialValue:"ace"},mergeUndoDeltas:{values:[!1,!0,"always"],initialValue:!0},behavioursEnabled:{initialValue:!0},wrapBehavioursEnabled:{initialValue:!0},enableAutoIndent:{initialValue:!0},autoScrollEditorIntoView:{set:function(e){this.setAutoScrollEditorIntoView(e)}},keyboardHandler:{set:function(e){this.setKeyboardHandler(e)},get:function(){return this.$keybindingId},handlesSet:!0},value:{set:function(e){this.session.setValue(e)},get:function(){return this.getValue()},handlesSet:!0,hidden:!0},session:{set:function(e){this.setSession(e)},get:function(){return this.session},handlesSet:!0,hidden:!0},showLineNumbers:{set:function(e){this.renderer.$gutterLayer.setShowLineNumbers(e),this.renderer.$loop.schedule(this.renderer.CHANGE_GUTTER),e&&this.$relativeLineNumbers?C.attach(this):C.detach(this)},initialValue:!0},relativeLineNumbers:{set:function(e){this.$showLineNumbers&&e?C.attach(this):C.detach(this)}},placeholder:{set:function(e){this.$updatePlaceholder||(this.$updatePlaceholder=function(){var e=this.session&&(this.renderer.$composition||this.session.getLength()>1||this.session.getLine(0).length>0);if(e&&this.renderer.placeholderNode)this.renderer.off("afterRender",this.$updatePlaceholder),s.removeCssClass(this.container,"ace_hasPlaceholder"),this.renderer.placeholderNode.remove(),this.renderer.placeholderNode=null;else if(!e&&!this.renderer.placeholderNode){this.renderer.on("afterRender",this.$updatePlaceholder),s.addCssClass(this.container,"ace_hasPlaceholder");var t=s.createElement("div");t.className="ace_placeholder",t.textContent=this.$placeholder||"",this.renderer.placeholderNode=t,this.renderer.content.appendChild(this.renderer.placeholderNode)}else!e&&this.renderer.placeholderNode&&(this.renderer.placeholderNode.textContent=this.$placeholder||"")}.bind(this),this.on("input",this.$updatePlaceholder)),this.$updatePlaceholder()}},enableKeyboardAccessibility:{set:function(e){var t={name:"blurTextInput",description:"Set focus to the editor content div to allow tabbing through the page",bindKey:"Esc",exec:function(e){e.blur(),e.renderer.scroller.focus()},readOnly:!0},n=function(e){if(e.target==this.renderer.scroller&&e.keyCode===T.enter){e.preventDefault();var t=this.getCursorPosition().row;this.isRowVisible(t)||this.scrollToLine(t,!0,!0),this.focus()}},r;e?(this.renderer.enableKeyboardAccessibility=!0,this.renderer.keyboardFocusClassName="ace_keyboard-focus",this.textInput.getElement().setAttribute("tabindex",-1),this.textInput.setNumberOfExtraLines(u.isWin?3:0),this.renderer.scroller.setAttribute("tabindex",0),this.renderer.scroller.setAttribute("role","group"),this.renderer.scroller.setAttribute("aria-roledescription",S("editor.scroller.aria-roledescription","editor")),this.renderer.scroller.classList.add(this.renderer.keyboardFocusClassName),this.renderer.scroller.setAttribute("aria-label",S("editor.scroller.aria-label","Editor content, press Enter to start editing, press Escape to exit")),this.renderer.scroller.addEventListener("keyup",n.bind(this)),this.commands.addCommand(t),this.renderer.$gutter.setAttribute("tabindex",0),this.renderer.$gutter.setAttribute("aria-hidden",!1),this.renderer.$gutter.setAttribute("role","group"),this.renderer.$gutter.setAttribute("aria-roledescription",S("editor.gutter.aria-roledescription","editor")),this.renderer.$gutter.setAttribute("aria-label",S("editor.gutter.aria-label","Editor gutter, press Enter to interact with controls using arrow keys, press Escape to exit")),this.renderer.$gutter.classList.add(this.renderer.keyboardFocusClassName),this.renderer.content.setAttribute("aria-hidden",!0),r||(r=new E(this)),r.addListener(),this.textInput.setAriaOptions({setLabel:!0})):(this.renderer.enableKeyboardAccessibility=!1,this.textInput.getElement().setAttribute("tabindex",0),this.textInput.setNumberOfExtraLines(0),this.renderer.scroller.setAttribute("tabindex",-1),this.renderer.scroller.removeAttribute("role"),this.renderer.scroller.removeAttribute("aria-roledescription"),this.renderer.scroller.classList.remove(this.renderer.keyboardFocusClassName),this.renderer.scroller.removeAttribute("aria-label"),this.renderer.scroller.removeEventListener("keyup",n.bind(this)),this.commands.removeCommand(t),this.renderer.content.removeAttribute("aria-hidden"),this.renderer.$gutter.setAttribute("tabindex",-1),this.renderer.$gutter.setAttribute("aria-hidden",!0),this.renderer.$gutter.removeAttribute("role"),this.renderer.$gutter.removeAttribute("aria-roledescription"),this.renderer.$gutter.removeAttribute("aria-label"),this.renderer.$gutter.classList.remove(this.renderer.keyboardFocusClassName),r&&r.removeListener())},initialValue:!1},textInputAriaLabel:{set:function(e){this.$textInputAriaLabel=e},initialValue:""},enableMobileMenu:{set:function(e){this.$enableMobileMenu=e},initialValue:!0},customScrollbar:"renderer",hScrollBarAlwaysVisible:"renderer",vScrollBarAlwaysVisible:"renderer",highlightGutterLine:"renderer",animatedScroll:"renderer",showInvisibles:"renderer",showPrintMargin:"renderer",printMarginColumn:"renderer",printMargin:"renderer",fadeFoldWidgets:"renderer",showFoldWidgets:"renderer",displayIndentGuides:"renderer",highlightIndentGuides:"renderer",showGutter:"renderer",fontSize:"renderer",fontFamily:"renderer",maxLines:"renderer",minLines:"renderer",scrollPastEnd:"renderer",fixedWidthGutter:"renderer",theme:"renderer",hasCssTransforms:"renderer",maxPixelHeight:"renderer",useTextareaForIME:"renderer",useResizeObserver:"renderer",useSvgGutterIcons:"renderer",showFoldedAnnotations:"renderer",scrollSpeed:"$mouseHandler",dragDelay:"$mouseHandler",dragEnabled:"$mouseHandler",focusTimeout:"$mouseHandler",tooltipFollowsMouse:"$mouseHandler",firstLineNumber:"session",overwrite:"session",newLineMode:"session",useWorker:"session",useSoftTabs:"session",navigateWithinSoftTabs:"session",tabSize:"session",wrap:"session",indentedSoftWrap:"session",foldStyle:"session",mode:"session"});var C={getText:function(e,t){return(Math.abs(e.selection.lead.row-t)||t+1+(t<9?"\u00b7":""))+""},getWidth:function(e,t,n){return Math.max(t.toString().length,(n.lastRow+1).toString().length,2)*n.characterWidth},update:function(e,t){t.renderer.$loop.schedule(t.renderer.CHANGE_GUTTER)},attach:function(e){e.renderer.$gutterLayer.$renderer=this,e.on("changeSelection",this.update),this.update(null,e)},detach:function(e){e.renderer.$gutterLayer.$renderer==this&&(e.renderer.$gutterLayer.$renderer=null),e.off("changeSelection",this.update),this.update(null,e)}};t.Editor=N}),ace.define("ace/layer/lines",["require","exports","module","ace/lib/dom"],function(e,t,n){"use strict";var r=e("../lib/dom"),i=function(){function e(e,t){this.element=e,this.canvasHeight=t||5e5,this.element.style.height=this.canvasHeight*2+"px",this.cells=[],this.cellCache=[],this.$offsetCoefficient=0}return e.prototype.moveContainer=function(e){r.translate(this.element,0,-(e.firstRowScreen*e.lineHeight%this.canvasHeight)-e.offset*this.$offsetCoefficient)},e.prototype.pageChanged=function(e,t){return Math.floor(e.firstRowScreen*e.lineHeight/this.canvasHeight)!==Math.floor(t.firstRowScreen*t.lineHeight/this.canvasHeight)},e.prototype.computeLineTop=function(e,t,n){var r=t.firstRowScreen*t.lineHeight,i=Math.floor(r/this.canvasHeight),s=n.documentToScreenRow(e,0)*t.lineHeight;return s-i*this.canvasHeight},e.prototype.computeLineHeight=function(e,t,n){return t.lineHeight*n.getRowLineCount(e)},e.prototype.getLength=function(){return this.cells.length},e.prototype.get=function(e){return this.cells[e]},e.prototype.shift=function(){this.$cacheCell(this.cells.shift())},e.prototype.pop=function(){this.$cacheCell(this.cells.pop())},e.prototype.push=function(e){if(Array.isArray(e)){this.cells.push.apply(this.cells,e);var t=r.createFragment(this.element);for(var n=0;ns&&(a=i.end.row+1,i=t.getNextFoldLine(a,i),s=i?i.start.row:Infinity);if(a>r){while(this.$lines.getLength()>u+1)this.$lines.pop();break}o=this.$lines.get(++u),o?o.row=a:(o=this.$lines.createCell(a,e,this.session,l),this.$lines.push(o)),this.$renderCell(o,e,i,a),a++}this._signal("afterRender"),this.$updateGutterWidth(e)},e.prototype.$updateGutterWidth=function(e){var t=this.session,n=t.gutterRenderer||this.$renderer,r=t.$firstLineNumber,i=this.$lines.last()?this.$lines.last().text:"";if(this.$fixedWidth||t.$useWrapMode)i=t.getLength()+r-1;var s=n?n.getWidth(t,i,e):i.toString().length*e.characterWidth,o=this.$padding||this.$computePadding();s+=o.left+o.right,s!==this.gutterWidth&&!isNaN(s)&&(this.gutterWidth=s,this.element.parentNode.style.width=this.element.style.width=Math.ceil(this.gutterWidth)+"px",this._signal("changeGutterWidth",s))},e.prototype.$updateCursorRow=function(){if(!this.$highlightGutterLine)return;var e=this.session.selection.getCursor();if(this.$cursorRow===e.row)return;this.$cursorRow=e.row},e.prototype.updateLineHighlight=function(){if(!this.$highlightGutterLine)return;var e=this.session.selection.cursor.row;this.$cursorRow=e;if(this.$cursorCell&&this.$cursorCell.row==e)return;this.$cursorCell&&(this.$cursorCell.element.className=this.$cursorCell.element.className.replace("ace_gutter-active-line ",""));var t=this.$lines.cells;this.$cursorCell=null;for(var n=0;n=this.$cursorRow){if(r.row>this.$cursorRow){var i=this.session.getFoldLine(this.$cursorRow);if(!(n>0&&i&&i.start.row==t[n-1].row))break;r=t[n-1]}r.element.className="ace_gutter-active-line "+r.element.className,this.$cursorCell=r;break}}},e.prototype.scrollLines=function(e){var t=this.config;this.config=e,this.$updateCursorRow();if(this.$lines.pageChanged(t,e))return this.update(e);this.$lines.moveContainer(e);var n=Math.min(e.lastRow+e.gutterOffset,this.session.getLength()-1),r=this.oldLastRow;this.oldLastRow=n;if(!t||r0;i--)this.$lines.shift();if(r>n)for(var i=this.session.getFoldedRowCount(n+1,r);i>0;i--)this.$lines.pop();e.firstRowr&&this.$lines.push(this.$renderLines(e,r+1,n)),this.updateLineHighlight(),this._signal("afterRender"),this.$updateGutterWidth(e)},e.prototype.$renderLines=function(e,t,n){var r=[],i=t,s=this.session.getNextFoldLine(i),o=s?s.start.row:Infinity;for(;;){i>o&&(i=s.end.row+1,s=this.session.getNextFoldLine(i,s),o=s?s.start.row:Infinity);if(i>n)break;var u=this.$lines.createCell(i,e,this.session,l);this.$renderCell(u,e,s,i),r.push(u),i++}return r},e.prototype.$renderCell=function(e,t,n,i){var s=e.element,o=this.session,u=s.childNodes[0],f=s.childNodes[1],l=s.childNodes[2],c=l.firstChild,h=o.$firstLineNumber,p=o.$breakpoints,d=o.$decorations,v=o.gutterRenderer||this.$renderer,m=this.$showFoldWidgets&&o.foldWidgets,g=n?n.start.row:Number.MAX_VALUE,y=t.lineHeight+"px",b=this.$useSvgGutterIcons?"ace_gutter-cell_svg-icons ":"ace_gutter-cell ",w=this.$useSvgGutterIcons?"ace_icon_svg":"ace_icon",E=(v?v.getText(o,i):i+h).toString();this.$highlightGutterLine&&(i==this.$cursorRow||n&&i=g&&this.$cursorRow<=n.end.row)&&(b+="ace_gutter-active-line ",this.$cursorCell!=e&&(this.$cursorCell&&(this.$cursorCell.element.className=this.$cursorCell.element.className.replace("ace_gutter-active-line ","")),this.$cursorCell=e)),p[i]&&(b+=p[i]),d[i]&&(b+=d[i]),this.$annotations[i]&&i!==g&&(b+=this.$annotations[i].className);if(m){var S=m[i];S==null&&(S=m[i]=o.getFoldWidget(i))}if(S){var x="ace_fold-widget ace_"+S,T=S=="start"&&i==g&&in.right-t.right)return"foldWidgets"},e}();f.prototype.$fixedWidth=!1,f.prototype.$highlightGutterLine=!0,f.prototype.$renderer="",f.prototype.$showLineNumbers=!0,f.prototype.$showFoldWidgets=!0,i.implement(f.prototype,o),t.Gutter=f}),ace.define("ace/layer/marker",["require","exports","module","ace/range","ace/lib/dom"],function(e,t,n){"use strict";function o(e,t,n,r){return(e?1:0)|(t?2:0)|(n?4:0)|(r?8:0)}var r=e("../range").Range,i=e("../lib/dom"),s=function(){function e(e){this.element=i.createElement("div"),this.element.className="ace_layer ace_marker-layer",e.appendChild(this.element)}return e.prototype.setPadding=function(e){this.$padding=e},e.prototype.setSession=function(e){this.session=e},e.prototype.setMarkers=function(e){this.markers=e},e.prototype.elt=function(e,t){var n=this.i!=-1&&this.element.childNodes[this.i];n?this.i++:(n=document.createElement("div"),this.element.appendChild(n),this.i=-1),n.style.cssText=t,n.className=e},e.prototype.update=function(e){if(!e)return;this.config=e,this.i=0;var t;for(var n in this.markers){var r=this.markers[n];if(!r.range){r.update(t,this,this.session,e);continue}var i=r.range.clipRows(e.firstRow,e.lastRow);if(i.isEmpty())continue;i=i.toScreenRange(this.session);if(r.renderer){var s=this.$getTop(i.start.row,e),o=this.$padding+i.start.column*e.characterWidth;r.renderer(t,i,o,s,e)}else r.type=="fullLine"?this.drawFullLineMarker(t,i,r.clazz,e):r.type=="screenLine"?this.drawScreenLineMarker(t,i,r.clazz,e):i.isMultiLine()?r.type=="text"?this.drawTextMarker(t,i,r.clazz,e):this.drawMultiLineMarker(t,i,r.clazz,e):this.drawSingleLineMarker(t,i,r.clazz+" ace_start"+" ace_br15",e)}if(this.i!=-1)while(this.ip,l==f),i,l==f?0:1,s)},e.prototype.drawMultiLineMarker=function(e,t,n,r,i){var s=this.$padding,o=r.lineHeight,u=this.$getTop(t.start.row,r),a=s+t.start.column*r.characterWidth;i=i||"";if(this.session.$bidiHandler.isBidiRow(t.start.row)){var f=t.clone();f.end.row=f.start.row,f.end.column=this.session.getLine(f.start.row).length,this.drawBidiSingleLineMarker(e,f,n+" ace_br1 ace_start",r,null,i)}else this.elt(n+" ace_br1 ace_start","height:"+o+"px;"+"right:0;"+"top:"+u+"px;left:"+a+"px;"+(i||""));if(this.session.$bidiHandler.isBidiRow(t.end.row)){var f=t.clone();f.start.row=f.end.row,f.start.column=0,this.drawBidiSingleLineMarker(e,f,n+" ace_br12",r,null,i)}else{u=this.$getTop(t.end.row,r);var l=t.end.column*r.characterWidth;this.elt(n+" ace_br12","height:"+o+"px;"+"width:"+l+"px;"+"top:"+u+"px;"+"left:"+s+"px;"+(i||""))}o=(t.end.row-t.start.row-1)*r.lineHeight;if(o<=0)return;u=this.$getTop(t.start.row+1,r);var c=(t.start.column?1:0)|(t.end.column?0:8);this.elt(n+(c?" ace_br"+c:""),"height:"+o+"px;"+"right:0;"+"top:"+u+"px;"+"left:"+s+"px;"+(i||""))},e.prototype.drawSingleLineMarker=function(e,t,n,r,i,s){if(this.session.$bidiHandler.isBidiRow(t.start.row))return this.drawBidiSingleLineMarker(e,t,n,r,i,s);var o=r.lineHeight,u=(t.end.column+(i||0)-t.start.column)*r.characterWidth,a=this.$getTop(t.start.row,r),f=this.$padding+t.start.column*r.characterWidth;this.elt(n,"height:"+o+"px;"+"width:"+u+"px;"+"top:"+a+"px;"+"left:"+f+"px;"+(s||""))},e.prototype.drawBidiSingleLineMarker=function(e,t,n,r,i,s){var o=r.lineHeight,u=this.$getTop(t.start.row,r),a=this.$padding,f=this.session.$bidiHandler.getSelections(t.start.column,t.end.column);f.forEach(function(e){this.elt(n,"height:"+o+"px;"+"width:"+(e.width+(i||0))+"px;"+"top:"+u+"px;"+"left:"+(a+e.left)+"px;"+(s||""))},this)},e.prototype.drawFullLineMarker=function(e,t,n,r,i){var s=this.$getTop(t.start.row,r),o=r.lineHeight;t.start.row!=t.end.row&&(o+=this.$getTop(t.end.row,r)-s),this.elt(n,"height:"+o+"px;"+"top:"+s+"px;"+"left:0;right:0;"+(i||""))},e.prototype.drawScreenLineMarker=function(e,t,n,r,i){var s=this.$getTop(t.start.row,r),o=r.lineHeight;this.elt(n,"height:"+o+"px;"+"top:"+s+"px;"+"left:0;right:0;"+(i||""))},e}();s.prototype.$padding=0,t.Marker=s}),ace.define("ace/layer/text_util",["require","exports","module"],function(e,t,n){var r=new Set(["text","rparen","lparen"]);t.isTextToken=function(e){return r.has(e)}}),ace.define("ace/layer/text",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/layer/lines","ace/lib/event_emitter","ace/config","ace/layer/text_util"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../lib/dom"),s=e("../lib/lang"),o=e("./lines").Lines,u=e("../lib/event_emitter").EventEmitter,a=e("../config").nls,f=e("./text_util").isTextToken,l=function(){function e(e){this.dom=i,this.element=this.dom.createElement("div"),this.element.className="ace_layer ace_text-layer",e.appendChild(this.element),this.$updateEolChar=this.$updateEolChar.bind(this),this.$lines=new o(this.element)}return e.prototype.$updateEolChar=function(){var e=this.session.doc,t=e.getNewLineCharacter()=="\n"&&e.getNewLineMode()!="windows",n=t?this.EOL_CHAR_LF:this.EOL_CHAR_CRLF;if(this.EOL_CHAR!=n)return this.EOL_CHAR=n,!0},e.prototype.setPadding=function(e){this.$padding=e,this.element.style.margin="0 "+e+"px"},e.prototype.getLineHeight=function(){return this.$fontMetrics.$characterSize.height||0},e.prototype.getCharacterWidth=function(){return this.$fontMetrics.$characterSize.width||0},e.prototype.$setFontMetrics=function(e){this.$fontMetrics=e,this.$fontMetrics.on("changeCharacterSize",function(e){this._signal("changeCharacterSize",e)}.bind(this)),this.$pollSizeChanges()},e.prototype.checkForSizeChanges=function(){this.$fontMetrics.checkForSizeChanges()},e.prototype.$pollSizeChanges=function(){return this.$pollSizeChangesTimer=this.$fontMetrics.$pollSizeChanges()},e.prototype.setSession=function(e){this.session=e,e&&this.$computeTabString()},e.prototype.setShowInvisibles=function(e){return this.showInvisibles==e?!1:(this.showInvisibles=e,typeof e=="string"?(this.showSpaces=/tab/i.test(e),this.showTabs=/space/i.test(e),this.showEOL=/eol/i.test(e)):this.showSpaces=this.showTabs=this.showEOL=e,this.$computeTabString(),!0)},e.prototype.setDisplayIndentGuides=function(e){return this.displayIndentGuides==e?!1:(this.displayIndentGuides=e,this.$computeTabString(),!0)},e.prototype.setHighlightIndentGuides=function(e){return this.$highlightIndentGuides===e?!1:(this.$highlightIndentGuides=e,e)},e.prototype.$computeTabString=function(){var e=this.session.getTabSize();this.tabSize=e;var t=this.$tabStrings=[0];for(var n=1;nl&&(u=a.end.row+1,a=this.session.getNextFoldLine(u,a),l=a?a.start.row:Infinity);if(u>i)break;var c=s[o++];if(c){this.dom.removeChildren(c),this.$renderLine(c,u,u==l?a:!1),f&&(c.style.top=this.$lines.computeLineTop(u,e,this.session)+"px");var h=e.lineHeight*this.session.getRowLength(u)+"px";c.style.height!=h&&(f=!0,c.style.height=h)}u++}if(f)while(o0;i--)this.$lines.shift();if(t.lastRow>e.lastRow)for(var i=this.session.getFoldedRowCount(e.lastRow+1,t.lastRow);i>0;i--)this.$lines.pop();e.firstRowt.lastRow&&this.$lines.push(this.$renderLinesFragment(e,t.lastRow+1,e.lastRow)),this.$highlightIndentGuide()},e.prototype.$renderLinesFragment=function(e,t,n){var r=[],s=t,o=this.session.getNextFoldLine(s),u=o?o.start.row:Infinity;for(;;){s>u&&(s=o.end.row+1,o=this.session.getNextFoldLine(s,o),u=o?o.start.row:Infinity);if(s>n)break;var a=this.$lines.createCell(s,e,this.session),f=a.element;this.dom.removeChildren(f),i.setStyle(f.style,"height",this.$lines.computeLineHeight(s,e,this.session)+"px"),i.setStyle(f.style,"top",this.$lines.computeLineTop(s,e,this.session)+"px"),this.$renderLine(f,s,s==u?o:!1),this.$useLineGroups()?f.className="ace_line_group":f.className="ace_line",r.push(a),s++}return r},e.prototype.update=function(e){this.$lines.moveContainer(e),this.config=e;var t=e.firstRow,n=e.lastRow,r=this.$lines;while(r.getLength())r.pop();r.push(this.$renderLinesFragment(e,t,n))},e.prototype.$renderToken=function(e,t,n,r){var i=this,o=/(\t)|( +)|([\x00-\x1f\x80-\xa0\xad\u1680\u180E\u2000-\u200f\u2028\u2029\u202F\u205F\uFEFF\uFFF9-\uFFFC\u2066\u2067\u2068\u202A\u202B\u202D\u202E\u202C\u2069]+)|(\u3000)|([\u1100-\u115F\u11A3-\u11A7\u11FA-\u11FF\u2329-\u232A\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFB\u3001-\u303E\u3041-\u3096\u3099-\u30FF\u3105-\u312D\u3131-\u318E\u3190-\u31BA\u31C0-\u31E3\u31F0-\u321E\u3220-\u3247\u3250-\u32FE\u3300-\u4DBF\u4E00-\uA48C\uA490-\uA4C6\uA960-\uA97C\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFAFF\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE66\uFE68-\uFE6B\uFF01-\uFF60\uFFE0-\uFFE6]|[\uD800-\uDBFF][\uDC00-\uDFFF])/g,u=this.dom.createFragment(this.element),l,c=0;while(l=o.exec(r)){var h=l[1],p=l[2],d=l[3],v=l[4],m=l[5];if(!i.showSpaces&&p)continue;var g=c!=l.index?r.slice(c,l.index):"";c=l.index+l[0].length,g&&u.appendChild(this.dom.createTextNode(g,this.element));if(h){var y=i.session.getScreenTabSize(t+l.index);u.appendChild(i.$tabStrings[y].cloneNode(!0)),t+=y-1}else if(p)if(i.showSpaces){var b=this.dom.createElement("span");b.className="ace_invisible ace_invisible_space",b.textContent=s.stringRepeat(i.SPACE_CHAR,p.length),u.appendChild(b)}else u.appendChild(this.dom.createTextNode(p,this.element));else if(d){var b=this.dom.createElement("span");b.className="ace_invisible ace_invisible_space ace_invalid",b.textContent=s.stringRepeat(i.SPACE_CHAR,d.length),u.appendChild(b)}else if(v){t+=1;var b=this.dom.createElement("span");b.style.width=i.config.characterWidth*2+"px",b.className=i.showSpaces?"ace_cjk ace_invisible ace_invisible_space":"ace_cjk",b.textContent=i.showSpaces?i.SPACE_CHAR:v,u.appendChild(b)}else if(m){t+=1;var b=this.dom.createElement("span");b.style.width=i.config.characterWidth*2+"px",b.className="ace_cjk",b.textContent=m,u.appendChild(b)}}u.appendChild(this.dom.createTextNode(c?r.slice(c):r,this.element));if(!f(n.type)){var w="ace_"+n.type.replace(/\./g," ace_"),b=this.dom.createElement("span");n.type=="fold"&&(b.style.width=n.value.length*this.config.characterWidth+"px",b.setAttribute("title",a("inline-fold.closed.title","Unfold code"))),b.className=w,b.appendChild(u),e.appendChild(b)}else e.appendChild(u);return t+r.length},e.prototype.renderIndentGuide=function(e,t,n){var r=t.search(this.$indentGuideRe);if(r<=0||r>=n)return t;if(t[0]==" "){r-=r%this.tabSize;var i=r/this.tabSize;for(var s=0;ss[o].start.row?this.$highlightIndentGuideMarker.dir=-1:this.$highlightIndentGuideMarker.dir=1;break}}if(!this.$highlightIndentGuideMarker.end&&e[t.row]!==""&&t.column===e[t.row].length){this.$highlightIndentGuideMarker.dir=1;for(var o=t.row+1;o0)for(var i=0;i=this.$highlightIndentGuideMarker.start+1){if(r.row>=this.$highlightIndentGuideMarker.end)break;this.$setIndentGuideActive(r,t)}}else for(var n=e.length-1;n>=0;n--){var r=e[n];if(this.$highlightIndentGuideMarker.end&&r.row=o)u=this.$renderToken(a,u,l,c.substring(0,o-r)),c=c.substring(o-r),r=o,a=this.$createLineElement(),e.appendChild(a),a.appendChild(this.dom.createTextNode(s.stringRepeat("\u00a0",n.indent),this.element)),i++,u=0,o=n[i]||Number.MAX_VALUE;c.length!=0&&(r+=c.length,u=this.$renderToken(a,u,l,c))}}n[n.length-1]>this.MAX_LINE_LENGTH&&this.$renderOverflowMessage(a,u,null,"",!0)},e.prototype.$renderSimpleLine=function(e,t){var n=0;for(var r=0;rthis.MAX_LINE_LENGTH)return this.$renderOverflowMessage(e,n,i,s);n=this.$renderToken(e,n,i,s)}},e.prototype.$renderOverflowMessage=function(e,t,n,r,i){n&&this.$renderToken(e,t,n,r.slice(0,this.MAX_LINE_LENGTH-t));var s=this.dom.createElement("span");s.className="ace_inline_button ace_keyword ace_toggle_wrap",s.textContent=i?"":"",e.appendChild(s)},e.prototype.$renderLine=function(e,t,n){!n&&n!=0&&(n=this.session.getFoldLine(t));if(n)var r=this.$getFoldLineTokens(t,n);else var r=this.session.getTokens(t);var i=e;if(r.length){var s=this.session.getRowSplitData(t);if(s&&s.length){this.$renderWrappedLine(e,r,s);var i=e.lastChild}else{var i=e;this.$useLineGroups()&&(i=this.$createLineElement(),e.appendChild(i)),this.$renderSimpleLine(i,r)}}else this.$useLineGroups()&&(i=this.$createLineElement(),e.appendChild(i));if(this.showEOL&&i){n&&(t=n.end.row);var o=this.dom.createElement("span");o.className="ace_invisible ace_invisible_eol",o.textContent=t==this.session.getLength()-1?this.EOF_CHAR:this.EOL_CHAR,i.appendChild(o)}},e.prototype.$getFoldLineTokens=function(e,t){function i(e,t,n){var i=0,s=0;while(s+e[i].value.lengthn-t&&(o=o.substring(0,n-t)),r.push({type:e[i].type,value:o}),s=t+o.length,i+=1}while(sn?r.push({type:e[i].type,value:o.substring(0,n-s)}):r.push(e[i]),s+=o.length,i+=1}}var n=this.session,r=[],s=n.getTokens(e);return t.walk(function(e,t,o,u,a){e!=null?r.push({type:"fold",value:e}):(a&&(s=n.getTokens(t)),s.length&&i(s,u,o))},t.end.row,this.session.getLine(t.end.row).length),r},e.prototype.$useLineGroups=function(){return this.session.getUseWrapMode()},e}();l.prototype.EOF_CHAR="\u00b6",l.prototype.EOL_CHAR_LF="\u00ac",l.prototype.EOL_CHAR_CRLF="\u00a4",l.prototype.EOL_CHAR=l.prototype.EOL_CHAR_LF,l.prototype.TAB_CHAR="\u2014",l.prototype.SPACE_CHAR="\u00b7",l.prototype.$padding=0,l.prototype.MAX_LINE_LENGTH=1e4,l.prototype.showInvisibles=!1,l.prototype.showSpaces=!1,l.prototype.showTabs=!1,l.prototype.showEOL=!1,l.prototype.displayIndentGuides=!0,l.prototype.$highlightIndentGuides=!0,l.prototype.$tabStrings=[],l.prototype.destroy={},l.prototype.onChangeTabSize=l.prototype.$computeTabString,r.implement(l.prototype,u),t.Text=l}),ace.define("ace/layer/cursor",["require","exports","module","ace/lib/dom"],function(e,t,n){"use strict";var r=e("../lib/dom"),i=function(){function e(e){this.element=r.createElement("div"),this.element.className="ace_layer ace_cursor-layer",e.appendChild(this.element),this.isVisible=!1,this.isBlinking=!0,this.blinkInterval=1e3,this.smoothBlinking=!1,this.cursors=[],this.cursor=this.addCursor(),r.addCssClass(this.element,"ace_hidden-cursors"),this.$updateCursors=this.$updateOpacity.bind(this)}return e.prototype.$updateOpacity=function(e){var t=this.cursors;for(var n=t.length;n--;)r.setStyle(t[n].style,"opacity",e?"":"0")},e.prototype.$startCssAnimation=function(){var e=this.cursors;for(var t=e.length;t--;)e[t].style.animationDuration=this.blinkInterval+"ms";this.$isAnimating=!0,setTimeout(function(){this.$isAnimating&&r.addCssClass(this.element,"ace_animate-blinking")}.bind(this))},e.prototype.$stopCssAnimation=function(){this.$isAnimating=!1,r.removeCssClass(this.element,"ace_animate-blinking")},e.prototype.setPadding=function(e){this.$padding=e},e.prototype.setSession=function(e){this.session=e},e.prototype.setBlinking=function(e){e!=this.isBlinking&&(this.isBlinking=e,this.restartTimer())},e.prototype.setBlinkInterval=function(e){e!=this.blinkInterval&&(this.blinkInterval=e,this.restartTimer())},e.prototype.setSmoothBlinking=function(e){e!=this.smoothBlinking&&(this.smoothBlinking=e,r.setCssClass(this.element,"ace_smooth-blinking",e),this.$updateCursors(!0),this.restartTimer())},e.prototype.addCursor=function(){var e=r.createElement("div");return e.className="ace_cursor",this.element.appendChild(e),this.cursors.push(e),e},e.prototype.removeCursor=function(){if(this.cursors.length>1){var e=this.cursors.pop();return e.parentNode.removeChild(e),e}},e.prototype.hideCursor=function(){this.isVisible=!1,r.addCssClass(this.element,"ace_hidden-cursors"),this.restartTimer()},e.prototype.showCursor=function(){this.isVisible=!0,r.removeCssClass(this.element,"ace_hidden-cursors"),this.restartTimer()},e.prototype.restartTimer=function(){var e=this.$updateCursors;clearInterval(this.intervalId),clearTimeout(this.timeoutId),this.$stopCssAnimation(),this.smoothBlinking&&(this.$isSmoothBlinking=!1,r.removeCssClass(this.element,"ace_smooth-blinking")),e(!0);if(!this.isBlinking||!this.blinkInterval||!this.isVisible){this.$stopCssAnimation();return}this.smoothBlinking&&(this.$isSmoothBlinking=!0,setTimeout(function(){this.$isSmoothBlinking&&r.addCssClass(this.element,"ace_smooth-blinking")}.bind(this)));if(r.HAS_CSS_ANIMATION)this.$startCssAnimation();else{var t=function(){this.timeoutId=setTimeout(function(){e(!1)},.6*this.blinkInterval)}.bind(this);this.intervalId=setInterval(function(){e(!0),t()},this.blinkInterval),t()}},e.prototype.getPixelPosition=function(e,t){if(!this.config||!this.session)return{left:0,top:0};e||(e=this.session.selection.getCursor());var n=this.session.documentToScreenPosition(e),r=this.$padding+(this.session.$bidiHandler.isBidiRow(n.row,e.row)?this.session.$bidiHandler.getPosLeft(n.column):n.column*this.config.characterWidth),i=(n.row-(t?this.config.firstRowScreen:0))*this.config.lineHeight;return{left:r,top:i}},e.prototype.isCursorInView=function(e,t){return e.top>=0&&e.tope.height+e.offset||o.top<0)&&n>1)continue;var u=this.cursors[i++]||this.addCursor(),a=u.style;this.drawCursor?this.drawCursor(u,o,e,t[n],this.session):this.isCursorInView(o,e)?(r.setStyle(a,"display","block"),r.translate(u,o.left,o.top),r.setStyle(a,"width",Math.round(e.characterWidth)+"px"),r.setStyle(a,"height",e.lineHeight+"px")):r.setStyle(a,"display","none")}while(this.cursors.length>i)this.removeCursor();var f=this.session.getOverwrite();this.$setOverwrite(f),this.$pixelPos=o,this.restartTimer()},e.prototype.$setOverwrite=function(e){e!=this.overwrite&&(this.overwrite=e,e?r.addCssClass(this.element,"ace_overwrite-cursors"):r.removeCssClass(this.element,"ace_overwrite-cursors"))},e.prototype.destroy=function(){clearInterval(this.intervalId),clearTimeout(this.timeoutId)},e}();i.prototype.$padding=0,i.prototype.drawCursor=null,t.Cursor=i}),ace.define("ace/scrollbar",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/event","ace/lib/event_emitter"],function(e,t,n){"use strict";var r=this&&this.__extends||function(){var e=function(t,n){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},e(t,n)};return function(t,n){function r(){this.constructor=t}if(typeof n!="function"&&n!==null)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");e(t,n),t.prototype=n===null?Object.create(n):(r.prototype=n.prototype,new r)}}(),i=e("./lib/oop"),s=e("./lib/dom"),o=e("./lib/event"),u=e("./lib/event_emitter").EventEmitter,a=32768,f=function(){function e(e,t){this.element=s.createElement("div"),this.element.className="ace_scrollbar ace_scrollbar"+t,this.inner=s.createElement("div"),this.inner.className="ace_scrollbar-inner",this.inner.textContent="\u00a0",this.element.appendChild(this.inner),e.appendChild(this.element),this.setVisible(!1),this.skipEvent=!1,o.addListener(this.element,"scroll",this.onScroll.bind(this)),o.addListener(this.element,"mousedown",o.preventDefault)}return e.prototype.setVisible=function(e){this.element.style.display=e?"":"none",this.isVisible=e,this.coeff=1},e}();i.implement(f.prototype,u);var l=function(e){function t(t,n){var r=e.call(this,t,"-v")||this;return r.scrollTop=0,r.scrollHeight=0,n.$scrollbarWidth=r.width=s.scrollbarWidth(t.ownerDocument),r.inner.style.width=r.element.style.width=(r.width||15)+5+"px",r.$minWidth=0,r}return r(t,e),t.prototype.onScroll=function(){if(!this.skipEvent){this.scrollTop=this.element.scrollTop;if(this.coeff!=1){var e=this.element.clientHeight/this.scrollHeight;this.scrollTop=this.scrollTop*(1-e)/(this.coeff-e)}this._emit("scroll",{data:this.scrollTop})}this.skipEvent=!1},t.prototype.getWidth=function(){return Math.max(this.isVisible?this.width:0,this.$minWidth||0)},t.prototype.setHeight=function(e){this.element.style.height=e+"px"},t.prototype.setScrollHeight=function(e){this.scrollHeight=e,e>a?(this.coeff=a/e,e=a):this.coeff!=1&&(this.coeff=1),this.inner.style.height=e+"px"},t.prototype.setScrollTop=function(e){this.scrollTop!=e&&(this.skipEvent=!0,this.scrollTop=e,this.element.scrollTop=e*this.coeff)},t}(f);l.prototype.setInnerHeight=l.prototype.setScrollHeight;var c=function(e){function t(t,n){var r=e.call(this,t,"-h")||this;return r.scrollLeft=0,r.height=n.$scrollbarWidth,r.inner.style.height=r.element.style.height=(r.height||15)+5+"px",r}return r(t,e),t.prototype.onScroll=function(){this.skipEvent||(this.scrollLeft=this.element.scrollLeft,this._emit("scroll",{data:this.scrollLeft})),this.skipEvent=!1},t.prototype.getHeight=function(){return this.isVisible?this.height:0},t.prototype.setWidth=function(e){this.element.style.width=e+"px"},t.prototype.setInnerWidth=function(e){this.inner.style.width=e+"px"},t.prototype.setScrollWidth=function(e){this.inner.style.width=e+"px"},t.prototype.setScrollLeft=function(e){this.scrollLeft!=e&&(this.skipEvent=!0,this.scrollLeft=this.element.scrollLeft=e)},t}(f);t.ScrollBar=l,t.ScrollBarV=l,t.ScrollBarH=c,t.VScrollBar=l,t.HScrollBar=c}),ace.define("ace/scrollbar_custom",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/event","ace/lib/event_emitter"],function(e,t,n){"use strict";var r=this&&this.__extends||function(){var e=function(t,n){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},e(t,n)};return function(t,n){function r(){this.constructor=t}if(typeof n!="function"&&n!==null)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");e(t,n),t.prototype=n===null?Object.create(n):(r.prototype=n.prototype,new r)}}(),i=e("./lib/oop"),s=e("./lib/dom"),o=e("./lib/event"),u=e("./lib/event_emitter").EventEmitter;s.importCssString(".ace_editor>.ace_sb-v div, .ace_editor>.ace_sb-h div{\n position: absolute;\n background: rgba(128, 128, 128, 0.6);\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n border: 1px solid #bbb;\n border-radius: 2px;\n z-index: 8;\n}\n.ace_editor>.ace_sb-v, .ace_editor>.ace_sb-h {\n position: absolute;\n z-index: 6;\n background: none;\n overflow: hidden!important;\n}\n.ace_editor>.ace_sb-v {\n z-index: 6;\n right: 0;\n top: 0;\n width: 12px;\n}\n.ace_editor>.ace_sb-v div {\n z-index: 8;\n right: 0;\n width: 100%;\n}\n.ace_editor>.ace_sb-h {\n bottom: 0;\n left: 0;\n height: 12px;\n}\n.ace_editor>.ace_sb-h div {\n bottom: 0;\n height: 100%;\n}\n.ace_editor>.ace_sb_grabbed {\n z-index: 8;\n background: #000;\n}","ace_scrollbar.css",!1);var a=function(){function e(e,t){this.element=s.createElement("div"),this.element.className="ace_sb"+t,this.inner=s.createElement("div"),this.inner.className="",this.element.appendChild(this.inner),this.VScrollWidth=12,this.HScrollHeight=12,e.appendChild(this.element),this.setVisible(!1),this.skipEvent=!1,o.addMultiMouseDownListener(this.element,[500,300,300],this,"onMouseDown")}return e.prototype.setVisible=function(e){this.element.style.display=e?"":"none",this.isVisible=e,this.coeff=1},e}();i.implement(a.prototype,u);var f=function(e){function t(t,n){var r=e.call(this,t,"-v")||this;return r.scrollTop=0,r.scrollHeight=0,r.parent=t,r.width=r.VScrollWidth,r.renderer=n,r.inner.style.width=r.element.style.width=(r.width||15)+"px",r.$minWidth=0,r}return r(t,e),t.prototype.onMouseDown=function(e,t){if(e!=="mousedown")return;if(o.getButton(t)!==0||t.detail===2)return;if(t.target===this.inner){var n=this,r=t.clientY,i=function(e){r=e.clientY},s=function(){clearInterval(l)},u=t.clientY,a=this.thumbTop,f=function(){if(r===undefined)return;var e=n.scrollTopFromThumbTop(a+r-u);if(e===n.scrollTop)return;n._emit("scroll",{data:e})};o.capture(this.inner,i,s);var l=setInterval(f,20);return o.preventDefault(t)}var c=t.clientY-this.element.getBoundingClientRect().top-this.thumbHeight/2;return this._emit("scroll",{data:this.scrollTopFromThumbTop(c)}),o.preventDefault(t)},t.prototype.getHeight=function(){return this.height},t.prototype.scrollTopFromThumbTop=function(e){var t=e*(this.pageHeight-this.viewHeight)/(this.slideHeight-this.thumbHeight);return t>>=0,t<0?t=0:t>this.pageHeight-this.viewHeight&&(t=this.pageHeight-this.viewHeight),t},t.prototype.getWidth=function(){return Math.max(this.isVisible?this.width:0,this.$minWidth||0)},t.prototype.setHeight=function(e){this.height=Math.max(0,e),this.slideHeight=this.height,this.viewHeight=this.height,this.setScrollHeight(this.pageHeight,!0)},t.prototype.setScrollHeight=function(e,t){if(this.pageHeight===e&&!t)return;this.pageHeight=e,this.thumbHeight=this.slideHeight*this.viewHeight/this.pageHeight,this.thumbHeight>this.slideHeight&&(this.thumbHeight=this.slideHeight),this.thumbHeight<15&&(this.thumbHeight=15),this.inner.style.height=this.thumbHeight+"px",this.scrollTop>this.pageHeight-this.viewHeight&&(this.scrollTop=this.pageHeight-this.viewHeight,this.scrollTop<0&&(this.scrollTop=0),this._emit("scroll",{data:this.scrollTop}))},t.prototype.setScrollTop=function(e){this.scrollTop=e,e<0&&(e=0),this.thumbTop=e*(this.slideHeight-this.thumbHeight)/(this.pageHeight-this.viewHeight),this.inner.style.top=this.thumbTop+"px"},t}(a);f.prototype.setInnerHeight=f.prototype.setScrollHeight;var l=function(e){function t(t,n){var r=e.call(this,t,"-h")||this;return r.scrollLeft=0,r.scrollWidth=0,r.height=r.HScrollHeight,r.inner.style.height=r.element.style.height=(r.height||12)+"px",r.renderer=n,r}return r(t,e),t.prototype.onMouseDown=function(e,t){if(e!=="mousedown")return;if(o.getButton(t)!==0||t.detail===2)return;if(t.target===this.inner){var n=this,r=t.clientX,i=function(e){r=e.clientX},s=function(){clearInterval(l)},u=t.clientX,a=this.thumbLeft,f=function(){if(r===undefined)return;var e=n.scrollLeftFromThumbLeft(a+r-u);if(e===n.scrollLeft)return;n._emit("scroll",{data:e})};o.capture(this.inner,i,s);var l=setInterval(f,20);return o.preventDefault(t)}var c=t.clientX-this.element.getBoundingClientRect().left-this.thumbWidth/2;return this._emit("scroll",{data:this.scrollLeftFromThumbLeft(c)}),o.preventDefault(t)},t.prototype.getHeight=function(){return this.isVisible?this.height:0},t.prototype.scrollLeftFromThumbLeft=function(e){var t=e*(this.pageWidth-this.viewWidth)/(this.slideWidth-this.thumbWidth);return t>>=0,t<0?t=0:t>this.pageWidth-this.viewWidth&&(t=this.pageWidth-this.viewWidth),t},t.prototype.setWidth=function(e){this.width=Math.max(0,e),this.element.style.width=this.width+"px",this.slideWidth=this.width,this.viewWidth=this.width,this.setScrollWidth(this.pageWidth,!0)},t.prototype.setScrollWidth=function(e,t){if(this.pageWidth===e&&!t)return;this.pageWidth=e,this.thumbWidth=this.slideWidth*this.viewWidth/this.pageWidth,this.thumbWidth>this.slideWidth&&(this.thumbWidth=this.slideWidth),this.thumbWidth<15&&(this.thumbWidth=15),this.inner.style.width=this.thumbWidth+"px",this.scrollLeft>this.pageWidth-this.viewWidth&&(this.scrollLeft=this.pageWidth-this.viewWidth,this.scrollLeft<0&&(this.scrollLeft=0),this._emit("scroll",{data:this.scrollLeft}))},t.prototype.setScrollLeft=function(e){this.scrollLeft=e,e<0&&(e=0),this.thumbLeft=e*(this.slideWidth-this.thumbWidth)/(this.pageWidth-this.viewWidth),this.inner.style.left=this.thumbLeft+"px"},t}(a);l.prototype.setInnerWidth=l.prototype.setScrollWidth,t.ScrollBar=f,t.ScrollBarV=f,t.ScrollBarH=l,t.VScrollBar=f,t.HScrollBar=l}),ace.define("ace/renderloop",["require","exports","module","ace/lib/event"],function(e,t,n){"use strict";var r=e("./lib/event"),i=function(){function e(e,t){this.onRender=e,this.pending=!1,this.changes=0,this.$recursionLimit=2,this.window=t||window;var n=this;this._flush=function(e){n.pending=!1;var t=n.changes;t&&(r.blockIdle(100),n.changes=0,n.onRender(t));if(n.changes){if(n.$recursionLimit--<0)return;n.schedule()}else n.$recursionLimit=2}}return e.prototype.schedule=function(e){this.changes=this.changes|e,this.changes&&!this.pending&&(r.nextFrame(this._flush),this.pending=!0)},e.prototype.clear=function(e){var t=this.changes;return this.changes=0,t},e}();t.RenderLoop=i}),ace.define("ace/layer/font_metrics",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/lib/event","ace/lib/useragent","ace/lib/event_emitter"],function(e,t,n){var r=e("../lib/oop"),i=e("../lib/dom"),s=e("../lib/lang"),o=e("../lib/event"),u=e("../lib/useragent"),a=e("../lib/event_emitter").EventEmitter,f=512,l=typeof ResizeObserver=="function",c=200,h=function(){function e(e){this.el=i.createElement("div"),this.$setMeasureNodeStyles(this.el.style,!0),this.$main=i.createElement("div"),this.$setMeasureNodeStyles(this.$main.style),this.$measureNode=i.createElement("div"),this.$setMeasureNodeStyles(this.$measureNode.style),this.el.appendChild(this.$main),this.el.appendChild(this.$measureNode),e.appendChild(this.el),this.$measureNode.textContent=s.stringRepeat("X",f),this.$characterSize={width:0,height:0},l?this.$addObserver():this.checkForSizeChanges()}return e.prototype.$setMeasureNodeStyles=function(e,t){e.width=e.height="auto",e.left=e.top="0px",e.visibility="hidden",e.position="absolute",e.whiteSpace="pre",u.isIE<8?e["font-family"]="inherit":e.font="inherit",e.overflow=t?"hidden":"visible"},e.prototype.checkForSizeChanges=function(e){e===undefined&&(e=this.$measureSizes());if(e&&(this.$characterSize.width!==e.width||this.$characterSize.height!==e.height)){this.$measureNode.style.fontWeight="bold";var t=this.$measureSizes();this.$measureNode.style.fontWeight="",this.$characterSize=e,this.charSizes=Object.create(null),this.allowBoldFonts=t&&t.width===e.width&&t.height===e.height,this._emit("changeCharacterSize",{data:e})}},e.prototype.$addObserver=function(){var e=this;this.$observer=new window.ResizeObserver(function(t){e.checkForSizeChanges()}),this.$observer.observe(this.$measureNode)},e.prototype.$pollSizeChanges=function(){if(this.$pollSizeChangesTimer||this.$observer)return this.$pollSizeChangesTimer;var e=this;return this.$pollSizeChangesTimer=o.onIdle(function t(){e.checkForSizeChanges(),o.onIdle(t,500)},500)},e.prototype.setPolling=function(e){e?this.$pollSizeChanges():this.$pollSizeChangesTimer&&(clearInterval(this.$pollSizeChangesTimer),this.$pollSizeChangesTimer=0)},e.prototype.$measureSizes=function(e){var t={height:(e||this.$measureNode).clientHeight,width:(e||this.$measureNode).clientWidth/f};return t.width===0||t.height===0?null:t},e.prototype.$measureCharWidth=function(e){this.$main.textContent=s.stringRepeat(e,f);var t=this.$main.getBoundingClientRect();return t.width/f},e.prototype.getCharacterWidth=function(e){var t=this.charSizes[e];return t===undefined&&(t=this.charSizes[e]=this.$measureCharWidth(e)/this.$characterSize.width),t},e.prototype.destroy=function(){clearInterval(this.$pollSizeChangesTimer),this.$observer&&this.$observer.disconnect(),this.el&&this.el.parentNode&&this.el.parentNode.removeChild(this.el)},e.prototype.$getZoom=function(e){return!e||!e.parentElement?1:(Number(window.getComputedStyle(e).zoom)||1)*this.$getZoom(e.parentElement)},e.prototype.$initTransformMeasureNodes=function(){var e=function(e,t){return["div",{style:"position: absolute;top:"+e+"px;left:"+t+"px;"}]};this.els=i.buildDom([e(0,0),e(c,0),e(0,c),e(c,c)],this.el)},e.prototype.transformCoordinates=function(e,t){function r(e,t,n){var r=e[1]*t[0]-e[0]*t[1];return[(-t[1]*n[0]+t[0]*n[1])/r,(+e[1]*n[0]-e[0]*n[1])/r]}function i(e,t){return[e[0]-t[0],e[1]-t[1]]}function s(e,t){return[e[0]+t[0],e[1]+t[1]]}function o(e,t){return[e*t[0],e*t[1]]}function u(e){var t=e.getBoundingClientRect();return[t.left,t.top]}if(e){var n=this.$getZoom(this.el);e=o(1/n,e)}this.els||this.$initTransformMeasureNodes();var a=u(this.els[0]),f=u(this.els[1]),l=u(this.els[2]),h=u(this.els[3]),p=r(i(h,f),i(h,l),i(s(f,l),s(h,a))),d=o(1+p[0],i(f,a)),v=o(1+p[1],i(l,a));if(t){var m=t,g=p[0]*m[0]/c+p[1]*m[1]/c+1,y=s(o(m[0],d),o(m[1],v));return s(o(1/g/c,y),a)}var b=i(e,a),w=r(i(d,o(p[0],b)),i(v,o(p[1],b)),b);return o(c,w)},e}();h.prototype.$characterSize={width:0,height:0},r.implement(h.prototype,a),t.FontMetrics=h}),ace.define("ace/css/editor-css",["require","exports","module"],function(e,t,n){n.exports='\n.ace_br1 {border-top-left-radius : 3px;}\n.ace_br2 {border-top-right-radius : 3px;}\n.ace_br3 {border-top-left-radius : 3px; border-top-right-radius: 3px;}\n.ace_br4 {border-bottom-right-radius: 3px;}\n.ace_br5 {border-top-left-radius : 3px; border-bottom-right-radius: 3px;}\n.ace_br6 {border-top-right-radius : 3px; border-bottom-right-radius: 3px;}\n.ace_br7 {border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px;}\n.ace_br8 {border-bottom-left-radius : 3px;}\n.ace_br9 {border-top-left-radius : 3px; border-bottom-left-radius: 3px;}\n.ace_br10{border-top-right-radius : 3px; border-bottom-left-radius: 3px;}\n.ace_br11{border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-left-radius: 3px;}\n.ace_br12{border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\n.ace_br13{border-top-left-radius : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\n.ace_br14{border-top-right-radius : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\n.ace_br15{border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\n\n\n.ace_editor {\n position: relative;\n overflow: hidden;\n padding: 0;\n font: 12px/normal \'Monaco\', \'Menlo\', \'Ubuntu Mono\', \'Consolas\', \'Source Code Pro\', \'source-code-pro\', monospace;\n direction: ltr;\n text-align: left;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\n\n.ace_scroller {\n position: absolute;\n overflow: hidden;\n top: 0;\n bottom: 0;\n background-color: inherit;\n -ms-user-select: none;\n -moz-user-select: none;\n -webkit-user-select: none;\n user-select: none;\n cursor: text;\n}\n\n.ace_content {\n position: absolute;\n box-sizing: border-box;\n min-width: 100%;\n contain: style size layout;\n font-variant-ligatures: no-common-ligatures;\n}\n\n.ace_keyboard-focus:focus {\n box-shadow: inset 0 0 0 2px #5E9ED6;\n outline: none;\n}\n\n.ace_dragging .ace_scroller:before{\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n content: \'\';\n background: rgba(250, 250, 250, 0.01);\n z-index: 1000;\n}\n.ace_dragging.ace_dark .ace_scroller:before{\n background: rgba(0, 0, 0, 0.01);\n}\n\n.ace_gutter {\n position: absolute;\n overflow : hidden;\n width: auto;\n top: 0;\n bottom: 0;\n left: 0;\n cursor: default;\n z-index: 4;\n -ms-user-select: none;\n -moz-user-select: none;\n -webkit-user-select: none;\n user-select: none;\n contain: style size layout;\n}\n\n.ace_gutter-active-line {\n position: absolute;\n left: 0;\n right: 0;\n}\n\n.ace_scroller.ace_scroll-left:after {\n content: "";\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n box-shadow: 17px 0 16px -16px rgba(0, 0, 0, 0.4) inset;\n pointer-events: none;\n}\n\n.ace_gutter-cell, .ace_gutter-cell_svg-icons {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n padding-left: 19px;\n padding-right: 6px;\n background-repeat: no-repeat;\n}\n\n.ace_gutter-cell_svg-icons .ace_gutter_annotation {\n margin-left: -14px;\n float: left;\n}\n\n.ace_gutter-cell .ace_gutter_annotation {\n margin-left: -19px;\n float: left;\n}\n\n.ace_gutter-cell.ace_error, .ace_icon.ace_error, .ace_icon.ace_error_fold {\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAABOFBMVEX/////////QRswFAb/Ui4wFAYwFAYwFAaWGAfDRymzOSH/PxswFAb/SiUwFAYwFAbUPRvjQiDllog5HhHdRybsTi3/Tyv9Tir+Syj/UC3////XurebMBIwFAb/RSHbPx/gUzfdwL3kzMivKBAwFAbbvbnhPx66NhowFAYwFAaZJg8wFAaxKBDZurf/RB6mMxb/SCMwFAYwFAbxQB3+RB4wFAb/Qhy4Oh+4QifbNRcwFAYwFAYwFAb/QRzdNhgwFAYwFAbav7v/Uy7oaE68MBK5LxLewr/r2NXewLswFAaxJw4wFAbkPRy2PyYwFAaxKhLm1tMwFAazPiQwFAaUGAb/QBrfOx3bvrv/VC/maE4wFAbRPBq6MRO8Qynew8Dp2tjfwb0wFAbx6eju5+by6uns4uH9/f36+vr/GkHjAAAAYnRSTlMAGt+64rnWu/bo8eAA4InH3+DwoN7j4eLi4xP99Nfg4+b+/u9B/eDs1MD1mO7+4PHg2MXa347g7vDizMLN4eG+Pv7i5evs/v79yu7S3/DV7/498Yv24eH+4ufQ3Ozu/v7+y13sRqwAAADLSURBVHjaZc/XDsFgGIBhtDrshlitmk2IrbHFqL2pvXf/+78DPokj7+Fz9qpU/9UXJIlhmPaTaQ6QPaz0mm+5gwkgovcV6GZzd5JtCQwgsxoHOvJO15kleRLAnMgHFIESUEPmawB9ngmelTtipwwfASilxOLyiV5UVUyVAfbG0cCPHig+GBkzAENHS0AstVF6bacZIOzgLmxsHbt2OecNgJC83JERmePUYq8ARGkJx6XtFsdddBQgZE2nPR6CICZhawjA4Fb/chv+399kfR+MMMDGOQAAAABJRU5ErkJggg==");\n background-repeat: no-repeat;\n background-position: 2px center;\n}\n\n.ace_gutter-cell.ace_warning, .ace_icon.ace_warning, .ace_icon.ace_warning_fold {\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAmVBMVEX///8AAAD///8AAAAAAABPSzb/5sAAAAB/blH/73z/ulkAAAAAAAD85pkAAAAAAAACAgP/vGz/rkDerGbGrV7/pkQICAf////e0IsAAAD/oED/qTvhrnUAAAD/yHD/njcAAADuv2r/nz//oTj/p064oGf/zHAAAAA9Nir/tFIAAAD/tlTiuWf/tkIAAACynXEAAAAAAAAtIRW7zBpBAAAAM3RSTlMAABR1m7RXO8Ln31Z36zT+neXe5OzooRDfn+TZ4p3h2hTf4t3k3ucyrN1K5+Xaks52Sfs9CXgrAAAAjklEQVR42o3PbQ+CIBQFYEwboPhSYgoYunIqqLn6/z8uYdH8Vmdnu9vz4WwXgN/xTPRD2+sgOcZjsge/whXZgUaYYvT8QnuJaUrjrHUQreGczuEafQCO/SJTufTbroWsPgsllVhq3wJEk2jUSzX3CUEDJC84707djRc5MTAQxoLgupWRwW6UB5fS++NV8AbOZgnsC7BpEAAAAABJRU5ErkJggg==");\n background-repeat: no-repeat;\n background-position: 2px center;\n}\n\n.ace_gutter-cell.ace_info, .ace_icon.ace_info {\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAAAAAA6mKC9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAAJ0Uk5TAAB2k804AAAAPklEQVQY02NgIB68QuO3tiLznjAwpKTgNyDbMegwisCHZUETUZV0ZqOquBpXj2rtnpSJT1AEnnRmL2OgGgAAIKkRQap2htgAAAAASUVORK5CYII=");\n background-repeat: no-repeat;\n background-position: 2px center;\n}\n.ace_dark .ace_gutter-cell.ace_info, .ace_dark .ace_icon.ace_info {\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAJFBMVEUAAAChoaGAgIAqKiq+vr6tra1ZWVmUlJSbm5s8PDxubm56enrdgzg3AAAAAXRSTlMAQObYZgAAAClJREFUeNpjYMAPdsMYHegyJZFQBlsUlMFVCWUYKkAZMxZAGdxlDMQBAG+TBP4B6RyJAAAAAElFTkSuQmCC");\n}\n\n.ace_icon_svg.ace_error {\n -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMCAxNiI+CjxnIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlPSJyZWQiIHNoYXBlLXJlbmRlcmluZz0iZ2VvbWV0cmljUHJlY2lzaW9uIj4KPGNpcmNsZSBmaWxsPSJub25lIiBjeD0iOCIgY3k9IjgiIHI9IjciIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPGxpbmUgeDE9IjExIiB5MT0iNSIgeDI9IjUiIHkyPSIxMSIvPgo8bGluZSB4MT0iMTEiIHkxPSIxMSIgeDI9IjUiIHkyPSI1Ii8+CjwvZz4KPC9zdmc+");\n background-color: crimson;\n}\n.ace_icon_svg.ace_warning {\n -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMCAxNiI+CjxnIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlPSJkYXJrb3JhbmdlIiBzaGFwZS1yZW5kZXJpbmc9Imdlb21ldHJpY1ByZWNpc2lvbiI+Cjxwb2x5Z29uIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGZpbGw9Im5vbmUiIHBvaW50cz0iOCAxIDE1IDE1IDEgMTUgOCAxIi8+CjxyZWN0IHg9IjgiIHk9IjEyIiB3aWR0aD0iMC4wMSIgaGVpZ2h0PSIwLjAxIi8+CjxsaW5lIHgxPSI4IiB5MT0iNiIgeDI9IjgiIHkyPSIxMCIvPgo8L2c+Cjwvc3ZnPg==");\n background-color: darkorange;\n}\n.ace_icon_svg.ace_info {\n -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMCAxNiI+CjxnIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlPSJibHVlIiBzaGFwZS1yZW5kZXJpbmc9Imdlb21ldHJpY1ByZWNpc2lvbiI+CjxjaXJjbGUgZmlsbD0ibm9uZSIgY3g9IjgiIGN5PSI4IiByPSI3IiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+Cjxwb2x5bGluZSBwb2ludHM9IjggMTEgOCA4Ii8+Cjxwb2x5bGluZSBwb2ludHM9IjkgOCA2IDgiLz4KPGxpbmUgeDE9IjEwIiB5MT0iMTEiIHgyPSI2IiB5Mj0iMTEiLz4KPHJlY3QgeD0iOCIgeT0iNSIgd2lkdGg9IjAuMDEiIGhlaWdodD0iMC4wMSIvPgo8L2c+Cjwvc3ZnPg==");\n background-color: royalblue;\n}\n\n.ace_icon_svg.ace_error_fold {\n -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMCAxNiIgZmlsbD0ibm9uZSI+CiAgPHBhdGggZD0ibSAxOC45Mjk4NTEsNy44Mjk4MDc2IGMgMC4xNDYzNTMsNi4zMzc0NjA0IC02LjMyMzE0Nyw3Ljc3Nzg0NDQgLTcuNDc3OTEyLDcuNzc3ODQ0NCAtMi4xMDcyNzI2LC0wLjEyODc1IDUuMTE3Njc4LDAuMzU2MjQ5IDUuMDUxNjk4LC03Ljg3MDA2MTggLTAuNjA0NjcyLC04LjAwMzk3MzQ5IC03LjA3NzI3MDYsLTcuNTYzMTE4OSAtNC44NTczLC03LjQzMDM5NTU2IDEuNjA2LC0wLjExNTE0MjI1IDYuODk3NDg1LDEuMjYyNTQ1OTYgNy4yODM1MTQsNy41MjI2MTI5NiB6IiBmaWxsPSJjcmltc29uIiBzdHJva2Utd2lkdGg9IjIiLz4KICA8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0ibSA4LjExNDc1NjIsMi4wNTI5ODI4IGMgMy4zNDkxNjk4LDAgNi4wNjQxMzI4LDIuNjc2ODYyNyA2LjA2NDEzMjgsNS45Nzg5NTMgMCwzLjMwMjExMjIgLTIuNzE0OTYzLDUuOTc4OTIwMiAtNi4wNjQxMzI4LDUuOTc4OTIwMiAtMy4zNDkxNDczLDAgLTYuMDY0MTc3MiwtMi42NzY4MDggLTYuMDY0MTc3MiwtNS45Nzg5MjAyIDAuMDA1MzksLTMuMjk5ODg2MSAyLjcxNzI2NTYsLTUuOTczNjQwOCA2LjA2NDE3NzIsLTUuOTc4OTUzIHogbSAwLC0xLjczNTgyNzE5IGMgLTQuMzIxNDgzNiwwIC03LjgyNDc0MDM4LDMuNDU0MDE4NDkgLTcuODI0NzQwMzgsNy43MTQ3ODAxOSAwLDQuMjYwNzI4MiAzLjUwMzI1Njc4LDcuNzE0NzQ1MiA3LjgyNDc0MDM4LDcuNzE0NzQ1MiA0LjMyMTQ0OTgsMCA3LjgyNDY5OTgsLTMuNDU0MDE3IDcuODI0Njk5OCwtNy43MTQ3NDUyIDAsLTIuMDQ2MDkxNCAtMC44MjQzOTIsLTQuMDA4MzY3MiAtMi4yOTE3NTYsLTUuNDU1MTc0NiBDIDEyLjE4MDIyNSwxLjEyOTk2NDggMTAuMTkwMDEzLDAuMzE3MTU1NjEgOC4xMTQ3NTYyLDAuMzE3MTU1NjEgWiBNIDYuOTM3NDU2Myw4LjI0MDU5ODUgNC42NzE4Njg1LDEwLjQ4NTg1MiA2LjAwODY4MTQsMTEuODc2NzI4IDguMzE3MDAzNSw5LjYwMDc5MTEgMTAuNjI1MzM3LDExLjg3NjcyOCAxMS45NjIxMzgsMTAuNDg1ODUyIDkuNjk2NTUwOCw4LjI0MDU5ODUgMTEuOTYyMTM4LDYuMDA2ODA2NiAxMC41NzMyNDYsNC42Mzc0MzM1IDguMzE3MDAzNSw2Ljg3MzQyOTcgNi4wNjA3NjA3LDQuNjM3NDMzNSA0LjY3MTg2ODUsNi4wMDY4MDY2IFoiIGZpbGw9ImNyaW1zb24iIHN0cm9rZS13aWR0aD0iMiIvPgo8L3N2Zz4=");\n background-color: crimson;\n}\n.ace_icon_svg.ace_warning_fold {\n -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAyMCAxNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xNC43NzY5IDE0LjczMzdMOC42NTE5MiAyLjQ4MzY5QzguMzI5NDYgMS44Mzg3NyA3LjQwOTEzIDEuODM4NzcgNy4wODY2NyAyLjQ4MzY5TDAuOTYxNjY5IDE0LjczMzdDMC42NzA3NzUgMTUuMzE1NSAxLjA5MzgzIDE2IDEuNzQ0MjkgMTZIMTMuOTk0M0MxNC42NDQ4IDE2IDE1LjA2NzggMTUuMzE1NSAxNC43NzY5IDE0LjczMzdaTTMuMTYwMDcgMTQuMjVMNy44NjkyOSA0LjgzMTU2TDEyLjU3ODUgMTQuMjVIMy4xNjAwN1pNOC43NDQyOSAxMS42MjVWMTMuMzc1SDYuOTk0MjlWMTEuNjI1SDguNzQ0MjlaTTYuOTk0MjkgMTAuNzVWNy4yNUg4Ljc0NDI5VjEwLjc1SDYuOTk0MjlaIiBmaWxsPSIjRUM3MjExIi8+CjxwYXRoIGQ9Ik0xMS4xOTkxIDIuOTUyMzhDMTAuODgwOSAyLjMxNDY3IDEwLjM1MzcgMS44MDUyNiA5LjcwNTUgMS41MDlMMTEuMDQxIDEuMDY5NzhDMTEuNjg4MyAwLjk0OTgxNCAxMi4zMzcgMS4yNzI2MyAxMi42MzE3IDEuODYxNDFMMTcuNjEzNiAxMS44MTYxQzE4LjM1MjcgMTMuMjkyOSAxNy41OTM4IDE1LjA4MDQgMTYuMDE4IDE1LjU3NDVDMTYuNDA0NCAxNC40NTA3IDE2LjMyMzEgMTMuMjE4OCAxNS43OTI0IDEyLjE1NTVMMTEuMTk5MSAyLjk1MjM4WiIgZmlsbD0iI0VDNzIxMSIvPgo8L3N2Zz4=");\n background-color: darkorange;\n}\n\n.ace_scrollbar {\n contain: strict;\n position: absolute;\n right: 0;\n bottom: 0;\n z-index: 6;\n}\n\n.ace_scrollbar-inner {\n position: absolute;\n cursor: text;\n left: 0;\n top: 0;\n}\n\n.ace_scrollbar-v{\n overflow-x: hidden;\n overflow-y: scroll;\n top: 0;\n}\n\n.ace_scrollbar-h {\n overflow-x: scroll;\n overflow-y: hidden;\n left: 0;\n}\n\n.ace_print-margin {\n position: absolute;\n height: 100%;\n}\n\n.ace_text-input {\n position: absolute;\n z-index: 0;\n width: 0.5em;\n height: 1em;\n opacity: 0;\n background: transparent;\n -moz-appearance: none;\n appearance: none;\n border: none;\n resize: none;\n outline: none;\n overflow: hidden;\n font: inherit;\n padding: 0 1px;\n margin: 0 -1px;\n contain: strict;\n -ms-user-select: text;\n -moz-user-select: text;\n -webkit-user-select: text;\n user-select: text;\n /*with `pre-line` chrome inserts   instead of space*/\n white-space: pre!important;\n}\n.ace_text-input.ace_composition {\n background: transparent;\n color: inherit;\n z-index: 1000;\n opacity: 1;\n}\n.ace_composition_placeholder { color: transparent }\n.ace_composition_marker { \n border-bottom: 1px solid;\n position: absolute;\n border-radius: 0;\n margin-top: 1px;\n}\n\n[ace_nocontext=true] {\n transform: none!important;\n filter: none!important;\n clip-path: none!important;\n mask : none!important;\n contain: none!important;\n perspective: none!important;\n mix-blend-mode: initial!important;\n z-index: auto;\n}\n\n.ace_layer {\n z-index: 1;\n position: absolute;\n overflow: hidden;\n /* workaround for chrome bug https://github.com/ajaxorg/ace/issues/2312*/\n word-wrap: normal;\n white-space: pre;\n height: 100%;\n width: 100%;\n box-sizing: border-box;\n /* setting pointer-events: auto; on node under the mouse, which changes\n during scroll, will break mouse wheel scrolling in Safari */\n pointer-events: none;\n}\n\n.ace_gutter-layer {\n position: relative;\n width: auto;\n text-align: right;\n pointer-events: auto;\n height: 1000000px;\n contain: style size layout;\n}\n\n.ace_text-layer {\n font: inherit !important;\n position: absolute;\n height: 1000000px;\n width: 1000000px;\n contain: style size layout;\n}\n\n.ace_text-layer > .ace_line, .ace_text-layer > .ace_line_group {\n contain: style size layout;\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n}\n\n.ace_hidpi .ace_text-layer,\n.ace_hidpi .ace_gutter-layer,\n.ace_hidpi .ace_content,\n.ace_hidpi .ace_gutter {\n contain: strict;\n}\n.ace_hidpi .ace_text-layer > .ace_line, \n.ace_hidpi .ace_text-layer > .ace_line_group {\n contain: strict;\n}\n\n.ace_cjk {\n display: inline-block;\n text-align: center;\n}\n\n.ace_cursor-layer {\n z-index: 4;\n}\n\n.ace_cursor {\n z-index: 4;\n position: absolute;\n box-sizing: border-box;\n border-left: 2px solid;\n /* workaround for smooth cursor repaintng whole screen in chrome */\n transform: translatez(0);\n}\n\n.ace_multiselect .ace_cursor {\n border-left-width: 1px;\n}\n\n.ace_slim-cursors .ace_cursor {\n border-left-width: 1px;\n}\n\n.ace_overwrite-cursors .ace_cursor {\n border-left-width: 0;\n border-bottom: 1px solid;\n}\n\n.ace_hidden-cursors .ace_cursor {\n opacity: 0.2;\n}\n\n.ace_hasPlaceholder .ace_hidden-cursors .ace_cursor {\n opacity: 0;\n}\n\n.ace_smooth-blinking .ace_cursor {\n transition: opacity 0.18s;\n}\n\n.ace_animate-blinking .ace_cursor {\n animation-duration: 1000ms;\n animation-timing-function: step-end;\n animation-name: blink-ace-animate;\n animation-iteration-count: infinite;\n}\n\n.ace_animate-blinking.ace_smooth-blinking .ace_cursor {\n animation-duration: 1000ms;\n animation-timing-function: ease-in-out;\n animation-name: blink-ace-animate-smooth;\n}\n \n@keyframes blink-ace-animate {\n from, to { opacity: 1; }\n 60% { opacity: 0; }\n}\n\n@keyframes blink-ace-animate-smooth {\n from, to { opacity: 1; }\n 45% { opacity: 1; }\n 60% { opacity: 0; }\n 85% { opacity: 0; }\n}\n\n.ace_marker-layer .ace_step, .ace_marker-layer .ace_stack {\n position: absolute;\n z-index: 3;\n}\n\n.ace_marker-layer .ace_selection {\n position: absolute;\n z-index: 5;\n}\n\n.ace_marker-layer .ace_bracket {\n position: absolute;\n z-index: 6;\n}\n\n.ace_marker-layer .ace_error_bracket {\n position: absolute;\n border-bottom: 1px solid #DE5555;\n border-radius: 0;\n}\n\n.ace_marker-layer .ace_active-line {\n position: absolute;\n z-index: 2;\n}\n\n.ace_marker-layer .ace_selected-word {\n position: absolute;\n z-index: 4;\n box-sizing: border-box;\n}\n\n.ace_line .ace_fold {\n box-sizing: border-box;\n\n display: inline-block;\n height: 11px;\n margin-top: -2px;\n vertical-align: middle;\n\n background-image:\n url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII="),\n url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACJJREFUeNpi+P//fxgTAwPDBxDxD078RSX+YeEyDFMCIMAAI3INmXiwf2YAAAAASUVORK5CYII=");\n background-repeat: no-repeat, repeat-x;\n background-position: center center, top left;\n color: transparent;\n\n border: 1px solid black;\n border-radius: 2px;\n\n cursor: pointer;\n pointer-events: auto;\n}\n\n.ace_dark .ace_fold {\n}\n\n.ace_fold:hover{\n background-image:\n url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII="),\n url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACBJREFUeNpi+P//fz4TAwPDZxDxD5X4i5fLMEwJgAADAEPVDbjNw87ZAAAAAElFTkSuQmCC");\n}\n\n.ace_tooltip {\n background-color: #f5f5f5;\n border: 1px solid gray;\n border-radius: 1px;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);\n color: black;\n max-width: 100%;\n padding: 3px 4px;\n position: fixed;\n z-index: 999999;\n box-sizing: border-box;\n cursor: default;\n white-space: pre-wrap;\n word-wrap: break-word;\n line-height: normal;\n font-style: normal;\n font-weight: normal;\n letter-spacing: normal;\n pointer-events: none;\n overflow: auto;\n max-width: min(60em, 66vw);\n overscroll-behavior: contain;\n}\n.ace_tooltip pre {\n white-space: pre-wrap;\n}\n\n.ace_tooltip.ace_dark {\n background-color: #636363;\n color: #fff;\n}\n\n.ace_tooltip:focus {\n outline: 1px solid #5E9ED6;\n}\n\n.ace_icon {\n display: inline-block;\n width: 18px;\n vertical-align: top;\n}\n\n.ace_icon_svg {\n display: inline-block;\n width: 12px;\n vertical-align: top;\n -webkit-mask-repeat: no-repeat;\n -webkit-mask-size: 12px;\n -webkit-mask-position: center;\n}\n\n.ace_folding-enabled > .ace_gutter-cell, .ace_folding-enabled > .ace_gutter-cell_svg-icons {\n padding-right: 13px;\n}\n\n.ace_fold-widget {\n box-sizing: border-box;\n\n margin: 0 -12px 0 1px;\n display: none;\n width: 11px;\n vertical-align: top;\n\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42mWKsQ0AMAzC8ixLlrzQjzmBiEjp0A6WwBCSPgKAXoLkqSot7nN3yMwR7pZ32NzpKkVoDBUxKAAAAABJRU5ErkJggg==");\n background-repeat: no-repeat;\n background-position: center;\n\n border-radius: 3px;\n \n border: 1px solid transparent;\n cursor: pointer;\n}\n\n.ace_folding-enabled .ace_fold-widget {\n display: inline-block; \n}\n\n.ace_fold-widget.ace_end {\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42m3HwQkAMAhD0YzsRchFKI7sAikeWkrxwScEB0nh5e7KTPWimZki4tYfVbX+MNl4pyZXejUO1QAAAABJRU5ErkJggg==");\n}\n\n.ace_fold-widget.ace_closed {\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAGCAYAAAAG5SQMAAAAOUlEQVR42jXKwQkAMAgDwKwqKD4EwQ26sSOkVWjgIIHAzPiCgaqiqnJHZnKICBERHN194O5b9vbLuAVRL+l0YWnZAAAAAElFTkSuQmCCXA==");\n}\n\n.ace_fold-widget:hover {\n border: 1px solid rgba(0, 0, 0, 0.3);\n background-color: rgba(255, 255, 255, 0.2);\n box-shadow: 0 1px 1px rgba(255, 255, 255, 0.7);\n}\n\n.ace_fold-widget:active {\n border: 1px solid rgba(0, 0, 0, 0.4);\n background-color: rgba(0, 0, 0, 0.05);\n box-shadow: 0 1px 1px rgba(255, 255, 255, 0.8);\n}\n/**\n * Dark version for fold widgets\n */\n.ace_dark .ace_fold-widget {\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHklEQVQIW2P4//8/AzoGEQ7oGCaLLAhWiSwB146BAQCSTPYocqT0AAAAAElFTkSuQmCC");\n}\n.ace_dark .ace_fold-widget.ace_end {\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAH0lEQVQIW2P4//8/AxQ7wNjIAjDMgC4AxjCVKBirIAAF0kz2rlhxpAAAAABJRU5ErkJggg==");\n}\n.ace_dark .ace_fold-widget.ace_closed {\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAFCAYAAACAcVaiAAAAHElEQVQIW2P4//+/AxAzgDADlOOAznHAKgPWAwARji8UIDTfQQAAAABJRU5ErkJggg==");\n}\n.ace_dark .ace_fold-widget:hover {\n box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);\n background-color: rgba(255, 255, 255, 0.1);\n}\n.ace_dark .ace_fold-widget:active {\n box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);\n}\n\n.ace_inline_button {\n border: 1px solid lightgray;\n display: inline-block;\n margin: -1px 8px;\n padding: 0 5px;\n pointer-events: auto;\n cursor: pointer;\n}\n.ace_inline_button:hover {\n border-color: gray;\n background: rgba(200,200,200,0.2);\n display: inline-block;\n pointer-events: auto;\n}\n\n.ace_fold-widget.ace_invalid {\n background-color: #FFB4B4;\n border-color: #DE5555;\n}\n\n.ace_fade-fold-widgets .ace_fold-widget {\n transition: opacity 0.4s ease 0.05s;\n opacity: 0;\n}\n\n.ace_fade-fold-widgets:hover .ace_fold-widget {\n transition: opacity 0.05s ease 0.05s;\n opacity:1;\n}\n\n.ace_underline {\n text-decoration: underline;\n}\n\n.ace_bold {\n font-weight: bold;\n}\n\n.ace_nobold .ace_bold {\n font-weight: normal;\n}\n\n.ace_italic {\n font-style: italic;\n}\n\n\n.ace_error-marker {\n background-color: rgba(255, 0, 0,0.2);\n position: absolute;\n z-index: 9;\n}\n\n.ace_highlight-marker {\n background-color: rgba(255, 255, 0,0.2);\n position: absolute;\n z-index: 8;\n}\n\n.ace_mobile-menu {\n position: absolute;\n line-height: 1.5;\n border-radius: 4px;\n -ms-user-select: none;\n -moz-user-select: none;\n -webkit-user-select: none;\n user-select: none;\n background: white;\n box-shadow: 1px 3px 2px grey;\n border: 1px solid #dcdcdc;\n color: black;\n}\n.ace_dark > .ace_mobile-menu {\n background: #333;\n color: #ccc;\n box-shadow: 1px 3px 2px grey;\n border: 1px solid #444;\n\n}\n.ace_mobile-button {\n padding: 2px;\n cursor: pointer;\n overflow: hidden;\n}\n.ace_mobile-button:hover {\n background-color: #eee;\n opacity:1;\n}\n.ace_mobile-button:active {\n background-color: #ddd;\n}\n\n.ace_placeholder {\n position: relative;\n font-family: arial;\n transform: scale(0.9);\n transform-origin: left;\n white-space: pre;\n opacity: 0.7;\n margin: 0 10px;\n z-index: 1;\n}\n\n.ace_ghost_text {\n opacity: 0.5;\n font-style: italic;\n}\n\n.ace_ghost_text > div {\n white-space: pre;\n}\n\n.ghost_text_line_wrapped::after {\n content: "\u21a9";\n position: absolute;\n}\n\n.ace_lineWidgetContainer.ace_ghost_text {\n margin: 0px 4px\n}\n\n.ace_screenreader-only {\n position:absolute;\n left:-10000px;\n top:auto;\n width:1px;\n height:1px;\n overflow:hidden;\n}'}),ace.define("ace/layer/decorators",["require","exports","module","ace/lib/dom","ace/lib/oop","ace/lib/event_emitter"],function(e,t,n){"use strict";var r=e("../lib/dom"),i=e("../lib/oop"),s=e("../lib/event_emitter").EventEmitter,o=function(){function e(e,t){this.canvas=r.createElement("canvas"),this.renderer=t,this.pixelRatio=1,this.maxHeight=t.layerConfig.maxHeight,this.lineHeight=t.layerConfig.lineHeight,this.canvasHeight=e.parent.scrollHeight,this.heightRatio=this.canvasHeight/this.maxHeight,this.canvasWidth=e.width,this.minDecorationHeight=2*this.pixelRatio|0,this.halfMinDecorationHeight=this.minDecorationHeight/2|0,this.canvas.width=this.canvasWidth,this.canvas.height=this.canvasHeight,this.canvas.style.top="0px",this.canvas.style.right="0px",this.canvas.style.zIndex="7px",this.canvas.style.position="absolute",this.colors={},this.colors.dark={error:"rgba(255, 18, 18, 1)",warning:"rgba(18, 136, 18, 1)",info:"rgba(18, 18, 136, 1)"},this.colors.light={error:"rgb(255,51,51)",warning:"rgb(32,133,72)",info:"rgb(35,68,138)"},e.element.appendChild(this.canvas)}return e.prototype.$updateDecorators=function(e){function i(e,t){return e.priorityt.priority?1:0}var t=this.renderer.theme.isDark===!0?this.colors.dark:this.colors.light;if(e){this.maxHeight=e.maxHeight,this.lineHeight=e.lineHeight,this.canvasHeight=e.height;var n=(e.lastRow+1)*this.lineHeight;nthis.canvasHeight&&(v=this.canvasHeight-this.halfMinDecorationHeight),h=Math.round(v-this.halfMinDecorationHeight),p=Math.round(v+this.halfMinDecorationHeight)}r.fillStyle=t[s[a].type]||null,r.fillRect(0,c,this.canvasWidth,p-h)}}var m=this.renderer.session.selection.getCursor();if(m){var l=this.compensateFoldRows(m.row,u),c=Math.round((m.row-l)*this.lineHeight*this.heightRatio);r.fillStyle="rgba(0, 0, 0, 0.5)",r.fillRect(0,c,this.canvasWidth,2)}},e.prototype.compensateFoldRows=function(e,t){var n=0;if(t&&t.length>0)for(var r=0;rt[r].start.row&&e=t[r].end.row&&(n+=t[r].end.row-t[r].start.row);return n},e}();i.implement(o.prototype,s),t.Decorator=o}),ace.define("ace/virtual_renderer",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/config","ace/layer/gutter","ace/layer/marker","ace/layer/text","ace/layer/cursor","ace/scrollbar","ace/scrollbar","ace/scrollbar_custom","ace/scrollbar_custom","ace/renderloop","ace/layer/font_metrics","ace/lib/event_emitter","ace/css/editor-css","ace/layer/decorators","ace/lib/useragent"],function(e,t,n){"use strict";var r=e("./lib/oop"),i=e("./lib/dom"),s=e("./lib/lang"),o=e("./config"),u=e("./layer/gutter").Gutter,a=e("./layer/marker").Marker,f=e("./layer/text").Text,l=e("./layer/cursor").Cursor,c=e("./scrollbar").HScrollBar,h=e("./scrollbar").VScrollBar,p=e("./scrollbar_custom").HScrollBar,d=e("./scrollbar_custom").VScrollBar,v=e("./renderloop").RenderLoop,m=e("./layer/font_metrics").FontMetrics,g=e("./lib/event_emitter").EventEmitter,y=e("./css/editor-css"),b=e("./layer/decorators").Decorator,w=e("./lib/useragent");i.importCssString(y,"ace_editor.css",!1);var E=function(){function e(e,t){var n=this;this.container=e||i.createElement("div"),i.addCssClass(this.container,"ace_editor"),i.HI_DPI&&i.addCssClass(this.container,"ace_hidpi"),this.setTheme(t),o.get("useStrictCSP")==null&&o.set("useStrictCSP",!1),this.$gutter=i.createElement("div"),this.$gutter.className="ace_gutter",this.container.appendChild(this.$gutter),this.$gutter.setAttribute("aria-hidden","true"),this.scroller=i.createElement("div"),this.scroller.className="ace_scroller",this.container.appendChild(this.scroller),this.content=i.createElement("div"),this.content.className="ace_content",this.scroller.appendChild(this.content),this.$gutterLayer=new u(this.$gutter),this.$gutterLayer.on("changeGutterWidth",this.onGutterResize.bind(this)),this.$markerBack=new a(this.content);var r=this.$textLayer=new f(this.content);this.canvas=r.element,this.$markerFront=new a(this.content),this.$cursorLayer=new l(this.content),this.$horizScroll=!1,this.$vScroll=!1,this.scrollBar=this.scrollBarV=new h(this.container,this),this.scrollBarH=new c(this.container,this),this.scrollBarV.on("scroll",function(e){n.$scrollAnimation||n.session.setScrollTop(e.data-n.scrollMargin.top)}),this.scrollBarH.on("scroll",function(e){n.$scrollAnimation||n.session.setScrollLeft(e.data-n.scrollMargin.left)}),this.scrollTop=0,this.scrollLeft=0,this.cursorPos={row:0,column:0},this.$fontMetrics=new m(this.container),this.$textLayer.$setFontMetrics(this.$fontMetrics),this.$textLayer.on("changeCharacterSize",function(e){n.updateCharacterSize(),n.onResize(!0,n.gutterWidth,n.$size.width,n.$size.height),n._signal("changeCharacterSize",e)}),this.$size={width:0,height:0,scrollerHeight:0,scrollerWidth:0,$dirty:!0},this.layerConfig={width:1,padding:0,firstRow:0,firstRowScreen:0,lastRow:0,lineHeight:0,characterWidth:0,minHeight:1,maxHeight:1,offset:0,height:1,gutterOffset:1},this.scrollMargin={left:0,right:0,top:0,bottom:0,v:0,h:0},this.margin={left:0,right:0,top:0,bottom:0,v:0,h:0},this.$keepTextAreaAtCursor=!w.isIOS,this.$loop=new v(this.$renderChanges.bind(this),this.container.ownerDocument.defaultView),this.$loop.schedule(this.CHANGE_FULL),this.updateCharacterSize(),this.setPadding(4),this.$addResizeObserver(),o.resetOptions(this),o._signal("renderer",this)}return e.prototype.updateCharacterSize=function(){this.$textLayer.allowBoldFonts!=this.$allowBoldFonts&&(this.$allowBoldFonts=this.$textLayer.allowBoldFonts,this.setStyle("ace_nobold",!this.$allowBoldFonts)),this.layerConfig.characterWidth=this.characterWidth=this.$textLayer.getCharacterWidth(),this.layerConfig.lineHeight=this.lineHeight=this.$textLayer.getLineHeight(),this.$updatePrintMargin(),i.setStyle(this.scroller.style,"line-height",this.lineHeight+"px")},e.prototype.setSession=function(e){this.session&&this.session.doc.off("changeNewLineMode",this.onChangeNewLineMode),this.session=e,e&&this.scrollMargin.top&&e.getScrollTop()<=0&&e.setScrollTop(-this.scrollMargin.top),this.$cursorLayer.setSession(e),this.$markerBack.setSession(e),this.$markerFront.setSession(e),this.$gutterLayer.setSession(e),this.$textLayer.setSession(e);if(!e)return;this.$loop.schedule(this.CHANGE_FULL),this.session.$setFontMetrics(this.$fontMetrics),this.scrollBarH.scrollLeft=this.scrollBarV.scrollTop=null,this.onChangeNewLineMode=this.onChangeNewLineMode.bind(this),this.onChangeNewLineMode(),this.session.doc.on("changeNewLineMode",this.onChangeNewLineMode)},e.prototype.updateLines=function(e,t,n){t===undefined&&(t=Infinity),this.$changedLines?(this.$changedLines.firstRow>e&&(this.$changedLines.firstRow=e),this.$changedLines.lastRowthis.layerConfig.lastRow)return;this.$loop.schedule(this.CHANGE_LINES)},e.prototype.onChangeNewLineMode=function(){this.$loop.schedule(this.CHANGE_TEXT),this.$textLayer.$updateEolChar(),this.session.$bidiHandler.setEolChar(this.$textLayer.EOL_CHAR)},e.prototype.onChangeTabSize=function(){this.$loop.schedule(this.CHANGE_TEXT|this.CHANGE_MARKER),this.$textLayer.onChangeTabSize()},e.prototype.updateText=function(){this.$loop.schedule(this.CHANGE_TEXT)},e.prototype.updateFull=function(e){e?this.$renderChanges(this.CHANGE_FULL,!0):this.$loop.schedule(this.CHANGE_FULL)},e.prototype.updateFontSize=function(){this.$textLayer.checkForSizeChanges()},e.prototype.$updateSizeAsync=function(){this.$loop.pending?this.$size.$dirty=!0:this.onResize()},e.prototype.onResize=function(e,t,n,r){if(this.resizing>2)return;this.resizing>0?this.resizing++:this.resizing=e?1:0;var i=this.container;r||(r=i.clientHeight||i.scrollHeight),!r&&this.$maxLines&&this.lineHeight>1&&(!i.style.height||i.style.height=="0px")&&(i.style.height="1px",r=i.clientHeight||i.scrollHeight),n||(n=i.clientWidth||i.scrollWidth);var s=this.$updateCachedSize(e,t,n,r);this.$resizeTimer&&this.$resizeTimer.cancel();if(!this.$size.scrollerHeight||!n&&!r)return this.resizing=0;e&&(this.$gutterLayer.$padding=null),e?this.$renderChanges(s|this.$changes,!0):this.$loop.schedule(s|this.$changes),this.resizing&&(this.resizing=0),this.scrollBarH.scrollLeft=this.scrollBarV.scrollTop=null,this.$customScrollbar&&this.$updateCustomScrollbar(!0)},e.prototype.$updateCachedSize=function(e,t,n,r){r-=this.$extraHeight||0;var s=0,o=this.$size,u={width:o.width,height:o.height,scrollerHeight:o.scrollerHeight,scrollerWidth:o.scrollerWidth};r&&(e||o.height!=r)&&(o.height=r,s|=this.CHANGE_SIZE,o.scrollerHeight=o.height,this.$horizScroll&&(o.scrollerHeight-=this.scrollBarH.getHeight()),this.scrollBarV.setHeight(o.scrollerHeight),this.scrollBarV.element.style.bottom=this.scrollBarH.getHeight()+"px",s|=this.CHANGE_SCROLL);if(n&&(e||o.width!=n)){s|=this.CHANGE_SIZE,o.width=n,t==null&&(t=this.$showGutter?this.$gutter.offsetWidth:0),this.gutterWidth=t,i.setStyle(this.scrollBarH.element.style,"left",t+"px"),i.setStyle(this.scroller.style,"left",t+this.margin.left+"px"),o.scrollerWidth=Math.max(0,n-t-this.scrollBarV.getWidth()-this.margin.h),i.setStyle(this.$gutter.style,"left",this.margin.left+"px");var a=this.scrollBarV.getWidth()+"px";i.setStyle(this.scrollBarH.element.style,"right",a),i.setStyle(this.scroller.style,"right",a),i.setStyle(this.scroller.style,"bottom",this.scrollBarH.getHeight()),this.scrollBarH.setWidth(o.scrollerWidth);if(this.session&&this.session.getUseWrapMode()&&this.adjustWrapLimit()||e)s|=this.CHANGE_FULL}return o.$dirty=!n||!r,s&&this._signal("resize",u),s},e.prototype.onGutterResize=function(e){var t=this.$showGutter?e:0;t!=this.gutterWidth&&(this.$changes|=this.$updateCachedSize(!0,t,this.$size.width,this.$size.height)),this.session.getUseWrapMode()&&this.adjustWrapLimit()?this.$loop.schedule(this.CHANGE_FULL):this.$size.$dirty?this.$loop.schedule(this.CHANGE_FULL):this.$computeLayerConfig()},e.prototype.adjustWrapLimit=function(){var e=this.$size.scrollerWidth-this.$padding*2,t=Math.floor(e/this.characterWidth);return this.session.adjustWrapLimit(t,this.$showPrintMargin&&this.$printMarginColumn)},e.prototype.setAnimatedScroll=function(e){this.setOption("animatedScroll",e)},e.prototype.getAnimatedScroll=function(){return this.$animatedScroll},e.prototype.setShowInvisibles=function(e){this.setOption("showInvisibles",e),this.session.$bidiHandler.setShowInvisibles(e)},e.prototype.getShowInvisibles=function(){return this.getOption("showInvisibles")},e.prototype.getDisplayIndentGuides=function(){return this.getOption("displayIndentGuides")},e.prototype.setDisplayIndentGuides=function(e){this.setOption("displayIndentGuides",e)},e.prototype.getHighlightIndentGuides=function(){return this.getOption("highlightIndentGuides")},e.prototype.setHighlightIndentGuides=function(e){this.setOption("highlightIndentGuides",e)},e.prototype.setShowPrintMargin=function(e){this.setOption("showPrintMargin",e)},e.prototype.getShowPrintMargin=function(){return this.getOption("showPrintMargin")},e.prototype.setPrintMarginColumn=function(e){this.setOption("printMarginColumn",e)},e.prototype.getPrintMarginColumn=function(){return this.getOption("printMarginColumn")},e.prototype.getShowGutter=function(){return this.getOption("showGutter")},e.prototype.setShowGutter=function(e){return this.setOption("showGutter",e)},e.prototype.getFadeFoldWidgets=function(){return this.getOption("fadeFoldWidgets")},e.prototype.setFadeFoldWidgets=function(e){this.setOption("fadeFoldWidgets",e)},e.prototype.setHighlightGutterLine=function(e){this.setOption("highlightGutterLine",e)},e.prototype.getHighlightGutterLine=function(){return this.getOption("highlightGutterLine")},e.prototype.$updatePrintMargin=function(){if(!this.$showPrintMargin&&!this.$printMarginEl)return;if(!this.$printMarginEl){var e=i.createElement("div");e.className="ace_layer ace_print-margin-layer",this.$printMarginEl=i.createElement("div"),this.$printMarginEl.className="ace_print-margin",e.appendChild(this.$printMarginEl),this.content.insertBefore(e,this.content.firstChild)}var t=this.$printMarginEl.style;t.left=Math.round(this.characterWidth*this.$printMarginColumn+this.$padding)+"px",t.visibility=this.$showPrintMargin?"visible":"hidden",this.session&&this.session.$wrap==-1&&this.adjustWrapLimit()},e.prototype.getContainerElement=function(){return this.container},e.prototype.getMouseEventTarget=function(){return this.scroller},e.prototype.getTextAreaContainer=function(){return this.container},e.prototype.$moveTextAreaToCursor=function(){if(this.$isMousePressed)return;var e=this.textarea.style,t=this.$composition;if(!this.$keepTextAreaAtCursor&&!t){i.translate(this.textarea,-100,0);return}var n=this.$cursorLayer.$pixelPos;if(!n)return;t&&t.markerRange&&(n=this.$cursorLayer.getPixelPosition(t.markerRange.start,!0));var r=this.layerConfig,s=n.top,o=n.left;s-=r.offset;var u=t&&t.useTextareaForIME||w.isMobile?this.lineHeight:1;if(s<0||s>r.height-u){i.translate(this.textarea,0,0);return}var a=1,f=this.$size.height-u;if(!t)s+=this.lineHeight;else if(t.useTextareaForIME){var l=this.textarea.value;a=this.characterWidth*this.session.$getStringScreenWidth(l)[0]}else s+=this.lineHeight+2;o-=this.scrollLeft,o>this.$size.scrollerWidth-a&&(o=this.$size.scrollerWidth-a),o+=this.gutterWidth+this.margin.left,i.setStyle(e,"height",u+"px"),i.setStyle(e,"width",a+"px"),i.translate(this.textarea,Math.min(o,this.$size.scrollerWidth-a),Math.min(s,f))},e.prototype.getFirstVisibleRow=function(){return this.layerConfig.firstRow},e.prototype.getFirstFullyVisibleRow=function(){return this.layerConfig.firstRow+(this.layerConfig.offset===0?0:1)},e.prototype.getLastFullyVisibleRow=function(){var e=this.layerConfig,t=e.lastRow,n=this.session.documentToScreenRow(t,0)*e.lineHeight;return n-this.session.getScrollTop()>e.height-e.lineHeight?t-1:t},e.prototype.getLastVisibleRow=function(){return this.layerConfig.lastRow},e.prototype.setPadding=function(e){this.$padding=e,this.$textLayer.setPadding(e),this.$cursorLayer.setPadding(e),this.$markerFront.setPadding(e),this.$markerBack.setPadding(e),this.$loop.schedule(this.CHANGE_FULL),this.$updatePrintMargin()},e.prototype.setScrollMargin=function(e,t,n,r){var i=this.scrollMargin;i.top=e|0,i.bottom=t|0,i.right=r|0,i.left=n|0,i.v=i.top+i.bottom,i.h=i.left+i.right,i.top&&this.scrollTop<=0&&this.session&&this.session.setScrollTop(-i.top),this.updateFull()},e.prototype.setMargin=function(e,t,n,r){var i=this.margin;i.top=e|0,i.bottom=t|0,i.right=r|0,i.left=n|0,i.v=i.top+i.bottom,i.h=i.left+i.right,this.$updateCachedSize(!0,this.gutterWidth,this.$size.width,this.$size.height),this.updateFull()},e.prototype.getHScrollBarAlwaysVisible=function(){return this.$hScrollBarAlwaysVisible},e.prototype.setHScrollBarAlwaysVisible=function(e){this.setOption("hScrollBarAlwaysVisible",e)},e.prototype.getVScrollBarAlwaysVisible=function(){return this.$vScrollBarAlwaysVisible},e.prototype.setVScrollBarAlwaysVisible=function(e){this.setOption("vScrollBarAlwaysVisible",e)},e.prototype.$updateScrollBarV=function(){var e=this.layerConfig.maxHeight,t=this.$size.scrollerHeight;!this.$maxLines&&this.$scrollPastEnd&&(e-=(t-this.lineHeight)*this.$scrollPastEnd,this.scrollTop>e-t&&(e=this.scrollTop+t,this.scrollBarV.scrollTop=null)),this.scrollBarV.setScrollHeight(e+this.scrollMargin.v),this.scrollBarV.setScrollTop(this.scrollTop+this.scrollMargin.top)},e.prototype.$updateScrollBarH=function(){this.scrollBarH.setScrollWidth(this.layerConfig.width+2*this.$padding+this.scrollMargin.h),this.scrollBarH.setScrollLeft(this.scrollLeft+this.scrollMargin.left)},e.prototype.freeze=function(){this.$frozen=!0},e.prototype.unfreeze=function(){this.$frozen=!1},e.prototype.$renderChanges=function(e,t){this.$changes&&(e|=this.$changes,this.$changes=0);if(!this.session||!this.container.offsetWidth||this.$frozen||!e&&!t){this.$changes|=e;return}if(this.$size.$dirty)return this.$changes|=e,this.onResize(!0);this.lineHeight||this.$textLayer.checkForSizeChanges(),this._signal("beforeRender",e),this.session&&this.session.$bidiHandler&&this.session.$bidiHandler.updateCharacterWidths(this.$fontMetrics);var n=this.layerConfig;if(e&this.CHANGE_FULL||e&this.CHANGE_SIZE||e&this.CHANGE_TEXT||e&this.CHANGE_LINES||e&this.CHANGE_SCROLL||e&this.CHANGE_H_SCROLL){e|=this.$computeLayerConfig()|this.$loop.clear();if(n.firstRow!=this.layerConfig.firstRow&&n.firstRowScreen==this.layerConfig.firstRowScreen){var r=this.scrollTop+(n.firstRow-Math.max(this.layerConfig.firstRow,0))*this.lineHeight;r>0&&(this.scrollTop=r,e|=this.CHANGE_SCROLL,e|=this.$computeLayerConfig()|this.$loop.clear())}n=this.layerConfig,this.$updateScrollBarV(),e&this.CHANGE_H_SCROLL&&this.$updateScrollBarH(),i.translate(this.content,-this.scrollLeft,-n.offset);var s=n.width+2*this.$padding+"px",o=n.minHeight+"px";i.setStyle(this.content.style,"width",s),i.setStyle(this.content.style,"height",o)}e&this.CHANGE_H_SCROLL&&(i.translate(this.content,-this.scrollLeft,-n.offset),this.scroller.className=this.scrollLeft<=0?"ace_scroller ":"ace_scroller ace_scroll-left ",this.enableKeyboardAccessibility&&(this.scroller.className+=this.keyboardFocusClassName));if(e&this.CHANGE_FULL){this.$changedLines=null,this.$textLayer.update(n),this.$showGutter&&this.$gutterLayer.update(n),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(n),this.$markerBack.update(n),this.$markerFront.update(n),this.$cursorLayer.update(n),this.$moveTextAreaToCursor(),this._signal("afterRender",e);return}if(e&this.CHANGE_SCROLL){this.$changedLines=null,e&this.CHANGE_TEXT||e&this.CHANGE_LINES?this.$textLayer.update(n):this.$textLayer.scrollLines(n),this.$showGutter&&(e&this.CHANGE_GUTTER||e&this.CHANGE_LINES?this.$gutterLayer.update(n):this.$gutterLayer.scrollLines(n)),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(n),this.$markerBack.update(n),this.$markerFront.update(n),this.$cursorLayer.update(n),this.$moveTextAreaToCursor(),this._signal("afterRender",e);return}e&this.CHANGE_TEXT?(this.$changedLines=null,this.$textLayer.update(n),this.$showGutter&&this.$gutterLayer.update(n),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(n)):e&this.CHANGE_LINES?((this.$updateLines()||e&this.CHANGE_GUTTER&&this.$showGutter)&&this.$gutterLayer.update(n),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(n)):e&this.CHANGE_TEXT||e&this.CHANGE_GUTTER?(this.$showGutter&&this.$gutterLayer.update(n),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(n)):e&this.CHANGE_CURSOR&&(this.$highlightGutterLine&&this.$gutterLayer.updateLineHighlight(n),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(n)),e&this.CHANGE_CURSOR&&(this.$cursorLayer.update(n),this.$moveTextAreaToCursor()),e&(this.CHANGE_MARKER|this.CHANGE_MARKER_FRONT)&&this.$markerFront.update(n),e&(this.CHANGE_MARKER|this.CHANGE_MARKER_BACK)&&this.$markerBack.update(n),this._signal("afterRender",e)},e.prototype.$autosize=function(){var e=this.session.getScreenLength()*this.lineHeight,t=this.$maxLines*this.lineHeight,n=Math.min(t,Math.max((this.$minLines||1)*this.lineHeight,e))+this.scrollMargin.v+(this.$extraHeight||0);this.$horizScroll&&(n+=this.scrollBarH.getHeight()),this.$maxPixelHeight&&n>this.$maxPixelHeight&&(n=this.$maxPixelHeight);var r=n<=2*this.lineHeight,i=!r&&e>t;if(n!=this.desiredHeight||this.$size.height!=this.desiredHeight||i!=this.$vScroll){i!=this.$vScroll&&(this.$vScroll=i,this.scrollBarV.setVisible(i));var s=this.container.clientWidth;this.container.style.height=n+"px",this.$updateCachedSize(!0,this.$gutterWidth,s,n),this.desiredHeight=n,this._signal("autosize")}},e.prototype.$computeLayerConfig=function(){var e=this.session,t=this.$size,n=t.height<=2*this.lineHeight,r=this.session.getScreenLength(),i=r*this.lineHeight,s=this.$getLongestLine(),o=!n&&(this.$hScrollBarAlwaysVisible||t.scrollerWidth-s-2*this.$padding<0),u=this.$horizScroll!==o;u&&(this.$horizScroll=o,this.scrollBarH.setVisible(o));var a=this.$vScroll;this.$maxLines&&this.lineHeight>1&&this.$autosize();var f=t.scrollerHeight+this.lineHeight,l=!this.$maxLines&&this.$scrollPastEnd?(t.scrollerHeight-this.lineHeight)*this.$scrollPastEnd:0;i+=l;var c=this.scrollMargin;this.session.setScrollTop(Math.max(-c.top,Math.min(this.scrollTop,i-t.scrollerHeight+c.bottom))),this.session.setScrollLeft(Math.max(-c.left,Math.min(this.scrollLeft,s+2*this.$padding-t.scrollerWidth+c.right)));var h=!n&&(this.$vScrollBarAlwaysVisible||t.scrollerHeight-i+l<0||this.scrollTop>c.top),p=a!==h;p&&(this.$vScroll=h,this.scrollBarV.setVisible(h));var d=this.scrollTop%this.lineHeight,v=Math.ceil(f/this.lineHeight)-1,m=Math.max(0,Math.round((this.scrollTop-d)/this.lineHeight)),g=m+v,y,b,w=this.lineHeight;m=e.screenToDocumentRow(m,0);var E=e.getFoldLine(m);E&&(m=E.start.row),y=e.documentToScreenRow(m,0),b=e.getRowLength(m)*w,g=Math.min(e.screenToDocumentRow(g,0),e.getLength()-1),f=t.scrollerHeight+e.getRowLength(g)*w+b,d=this.scrollTop-y*w;var S=0;if(this.layerConfig.width!=s||u)S=this.CHANGE_H_SCROLL;if(u||p)S|=this.$updateCachedSize(!0,this.gutterWidth,t.width,t.height),this._signal("scrollbarVisibilityChanged"),p&&(s=this.$getLongestLine());return this.layerConfig={width:s,padding:this.$padding,firstRow:m,firstRowScreen:y,lastRow:g,lineHeight:w,characterWidth:this.characterWidth,minHeight:f,maxHeight:i,offset:d,gutterOffset:w?Math.max(0,Math.ceil((d+t.height-t.scrollerHeight)/w)):0,height:this.$size.scrollerHeight},this.session.$bidiHandler&&this.session.$bidiHandler.setContentWidth(s-this.$padding),S},e.prototype.$updateLines=function(){if(!this.$changedLines)return;var e=this.$changedLines.firstRow,t=this.$changedLines.lastRow;this.$changedLines=null;var n=this.layerConfig;if(e>n.lastRow+1)return;if(tthis.$textLayer.MAX_LINE_LENGTH&&(e=this.$textLayer.MAX_LINE_LENGTH+30),Math.max(this.$size.scrollerWidth-2*this.$padding,Math.round(e*this.characterWidth))},e.prototype.updateFrontMarkers=function(){this.$markerFront.setMarkers(this.session.getMarkers(!0)),this.$loop.schedule(this.CHANGE_MARKER_FRONT)},e.prototype.updateBackMarkers=function(){this.$markerBack.setMarkers(this.session.getMarkers()),this.$loop.schedule(this.CHANGE_MARKER_BACK)},e.prototype.addGutterDecoration=function(e,t){this.$gutterLayer.addGutterDecoration(e,t)},e.prototype.removeGutterDecoration=function(e,t){this.$gutterLayer.removeGutterDecoration(e,t)},e.prototype.updateBreakpoints=function(e){this._rows=e,this.$loop.schedule(this.CHANGE_GUTTER)},e.prototype.setAnnotations=function(e){this.$gutterLayer.setAnnotations(e),this.$loop.schedule(this.CHANGE_GUTTER)},e.prototype.updateCursor=function(){this.$loop.schedule(this.CHANGE_CURSOR)},e.prototype.hideCursor=function(){this.$cursorLayer.hideCursor()},e.prototype.showCursor=function(){this.$cursorLayer.showCursor()},e.prototype.scrollSelectionIntoView=function(e,t,n){this.scrollCursorIntoView(e,n),this.scrollCursorIntoView(t,n)},e.prototype.scrollCursorIntoView=function(e,t,n){if(this.$size.scrollerHeight===0)return;var r=this.$cursorLayer.getPixelPosition(e),i=r.left,s=r.top,o=n&&n.top||0,u=n&&n.bottom||0;this.$scrollAnimation&&(this.$stopAnimation=!0);var a=this.$scrollAnimation?this.session.getScrollTop():this.scrollTop;a+o>s?(t&&a+o>s+this.lineHeight&&(s-=t*this.$size.scrollerHeight),s===0&&(s=-this.scrollMargin.top),this.session.setScrollTop(s)):a+this.$size.scrollerHeight-u=1-this.scrollMargin.top)return!0;if(t>0&&this.session.getScrollTop()+this.$size.scrollerHeight-this.layerConfig.maxHeight<-1+this.scrollMargin.bottom)return!0;if(e<0&&this.session.getScrollLeft()>=1-this.scrollMargin.left)return!0;if(e>0&&this.session.getScrollLeft()+this.$size.scrollerWidth-this.layerConfig.width<-1+this.scrollMargin.right)return!0},e.prototype.pixelToScreenCoordinates=function(e,t){var n;if(this.$hasCssTransforms){n={top:0,left:0};var r=this.$fontMetrics.transformCoordinates([e,t]);e=r[1]-this.gutterWidth-this.margin.left,t=r[0]}else n=this.scroller.getBoundingClientRect();var i=e+this.scrollLeft-n.left-this.$padding,s=i/this.characterWidth,o=Math.floor((t+this.scrollTop-n.top)/this.lineHeight),u=this.$blockCursor?Math.floor(s):Math.round(s);return{row:o,column:u,side:s-u>0?1:-1,offsetX:i}},e.prototype.screenToTextCoordinates=function(e,t){var n;if(this.$hasCssTransforms){n={top:0,left:0};var r=this.$fontMetrics.transformCoordinates([e,t]);e=r[1]-this.gutterWidth-this.margin.left,t=r[0]}else n=this.scroller.getBoundingClientRect();var i=e+this.scrollLeft-n.left-this.$padding,s=i/this.characterWidth,o=this.$blockCursor?Math.floor(s):Math.round(s),u=Math.floor((t+this.scrollTop-n.top)/this.lineHeight);return this.session.screenToDocumentPosition(u,Math.max(o,0),i)},e.prototype.textToScreenCoordinates=function(e,t){var n=this.scroller.getBoundingClientRect(),r=this.session.documentToScreenPosition(e,t),i=this.$padding+(this.session.$bidiHandler.isBidiRow(r.row,e)?this.session.$bidiHandler.getPosLeft(r.column):Math.round(r.column*this.characterWidth)),s=r.row*this.lineHeight;return{pageX:n.left+i-this.scrollLeft,pageY:n.top+s-this.scrollTop}},e.prototype.visualizeFocus=function(){i.addCssClass(this.container,"ace_focus")},e.prototype.visualizeBlur=function(){i.removeCssClass(this.container,"ace_focus")},e.prototype.showComposition=function(e){this.$composition=e,e.cssText||(e.cssText=this.textarea.style.cssText),e.useTextareaForIME==undefined&&(e.useTextareaForIME=this.$useTextareaForIME),this.$useTextareaForIME?(i.addCssClass(this.textarea,"ace_composition"),this.textarea.style.cssText="",this.$moveTextAreaToCursor(),this.$cursorLayer.element.style.display="none"):e.markerId=this.session.addMarker(e.markerRange,"ace_composition_marker","text")},e.prototype.setCompositionText=function(e){var t=this.session.selection.cursor;this.addToken(e,"composition_placeholder",t.row,t.column),this.$moveTextAreaToCursor()},e.prototype.hideComposition=function(){if(!this.$composition)return;this.$composition.markerId&&this.session.removeMarker(this.$composition.markerId),i.removeCssClass(this.textarea,"ace_composition"),this.textarea.style.cssText=this.$composition.cssText;var e=this.session.selection.cursor;this.removeExtraToken(e.row,e.column),this.$composition=null,this.$cursorLayer.element.style.display=""},e.prototype.setGhostText=function(e,t){var n=this.session.selection.cursor,r=t||{row:n.row,column:n.column};this.removeGhostText();var s=this.$calculateWrappedTextChunks(e,r);this.addToken(s[0].text,"ghost_text",r.row,r.column),this.$ghostText={text:e,position:{row:r.row,column:r.column}};var o=i.createElement("div");if(s.length>1){s.slice(1).forEach(function(e){var t=i.createElement("div");e.wrapped&&(t.className="ghost_text_line_wrapped"),e.text.length===0&&(e.text=" "),t.appendChild(i.createTextNode(e.text)),o.appendChild(t)}),this.$ghostTextWidget={el:o,row:r.row,column:r.column,className:"ace_ghost_text"},this.session.widgetManager.addLineWidget(this.$ghostTextWidget);var u=this.$cursorLayer.getPixelPosition(r,!0),a=this.container,f=a.getBoundingClientRect().height,l=s.length*this.lineHeight,c=l0){var f=0;a.push(i[o].length);for(var l=0;l1||Math.abs(e.$size.height-r)>1?e.$resizeTimer.delay():e.$resizeTimer.cancel()}),this.$resizeObserver.observe(this.container)},e}();E.prototype.CHANGE_CURSOR=1,E.prototype.CHANGE_MARKER=2,E.prototype.CHANGE_GUTTER=4,E.prototype.CHANGE_SCROLL=8,E.prototype.CHANGE_LINES=16,E.prototype.CHANGE_TEXT=32,E.prototype.CHANGE_SIZE=64,E.prototype.CHANGE_MARKER_BACK=128,E.prototype.CHANGE_MARKER_FRONT=256,E.prototype.CHANGE_FULL=512,E.prototype.CHANGE_H_SCROLL=1024,E.prototype.$changes=0,E.prototype.$padding=null,E.prototype.$frozen=!1,E.prototype.STEPS=8,r.implement(E.prototype,g),o.defineOptions(E.prototype,"renderer",{useResizeObserver:{set:function(e){!e&&this.$resizeObserver?(this.$resizeObserver.disconnect(),this.$resizeTimer.cancel(),this.$resizeTimer=this.$resizeObserver=null):e&&!this.$resizeObserver&&this.$addResizeObserver()}},animatedScroll:{initialValue:!1},showInvisibles:{set:function(e){this.$textLayer.setShowInvisibles(e)&&this.$loop.schedule(this.CHANGE_TEXT)},initialValue:!1},showPrintMargin:{set:function(){this.$updatePrintMargin()},initialValue:!0},printMarginColumn:{set:function(){this.$updatePrintMargin()},initialValue:80},printMargin:{set:function(e){typeof e=="number"&&(this.$printMarginColumn=e),this.$showPrintMargin=!!e,this.$updatePrintMargin()},get:function(){return this.$showPrintMargin&&this.$printMarginColumn}},showGutter:{set:function(e){this.$gutter.style.display=e?"block":"none",this.$loop.schedule(this.CHANGE_FULL),this.onGutterResize()},initialValue:!0},useSvgGutterIcons:{set:function(e){this.$gutterLayer.$useSvgGutterIcons=e},initialValue:!1},showFoldedAnnotations:{set:function(e){this.$gutterLayer.$showFoldedAnnotations=e},initialValue:!1},fadeFoldWidgets:{set:function(e){i.setCssClass(this.$gutter,"ace_fade-fold-widgets",e)},initialValue:!1},showFoldWidgets:{set:function(e){this.$gutterLayer.setShowFoldWidgets(e),this.$loop.schedule(this.CHANGE_GUTTER)},initialValue:!0},displayIndentGuides:{set:function(e){this.$textLayer.setDisplayIndentGuides(e)&&this.$loop.schedule(this.CHANGE_TEXT)},initialValue:!0},highlightIndentGuides:{set:function(e){this.$textLayer.setHighlightIndentGuides(e)==1?this.$textLayer.$highlightIndentGuide():this.$textLayer.$clearActiveIndentGuide(this.$textLayer.$lines.cells)},initialValue:!0},highlightGutterLine:{set:function(e){this.$gutterLayer.setHighlightGutterLine(e),this.$loop.schedule(this.CHANGE_GUTTER)},initialValue:!0},hScrollBarAlwaysVisible:{set:function(e){(!this.$hScrollBarAlwaysVisible||!this.$horizScroll)&&this.$loop.schedule(this.CHANGE_SCROLL)},initialValue:!1},vScrollBarAlwaysVisible:{set:function(e){(!this.$vScrollBarAlwaysVisible||!this.$vScroll)&&this.$loop.schedule(this.CHANGE_SCROLL)},initialValue:!1},fontSize:{set:function(e){typeof e=="number"&&(e+="px"),this.container.style.fontSize=e,this.updateFontSize()},initialValue:12},fontFamily:{set:function(e){this.container.style.fontFamily=e,this.updateFontSize()}},maxLines:{set:function(e){this.updateFull()}},minLines:{set:function(e){this.$minLines<562949953421311||(this.$minLines=0),this.updateFull()}},maxPixelHeight:{set:function(e){this.updateFull()},initialValue:0},scrollPastEnd:{set:function(e){e=+e||0;if(this.$scrollPastEnd==e)return;this.$scrollPastEnd=e,this.$loop.schedule(this.CHANGE_SCROLL)},initialValue:0,handlesSet:!0},fixedWidthGutter:{set:function(e){this.$gutterLayer.$fixedWidth=!!e,this.$loop.schedule(this.CHANGE_GUTTER)}},customScrollbar:{set:function(e){this.$updateCustomScrollbar(e)},initialValue:!1},theme:{set:function(e){this.setTheme(e)},get:function(){return this.$themeId||this.theme},initialValue:"./theme/textmate",handlesSet:!0},hasCssTransforms:{},useTextareaForIME:{initialValue:!w.isMobile&&!w.isIE}}),t.VirtualRenderer=E}),ace.define("ace/worker/worker_client",["require","exports","module","ace/lib/oop","ace/lib/net","ace/lib/event_emitter","ace/config"],function(e,t,n){"use strict";function u(e){var t="importScripts('"+i.qualifyURL(e)+"');";try{return new Blob([t],{type:"application/javascript"})}catch(n){var r=window.BlobBuilder||window.WebKitBlobBuilder||window.MozBlobBuilder,s=new r;return s.append(t),s.getBlob("application/javascript")}}function a(e){if(typeof Worker=="undefined")return{postMessage:function(){},terminate:function(){}};if(o.get("loadWorkerFromBlob")){var t=u(e),n=window.URL||window.webkitURL,r=n.createObjectURL(t);return new Worker(r)}return new Worker(e)}var r=e("../lib/oop"),i=e("../lib/net"),s=e("../lib/event_emitter").EventEmitter,o=e("../config"),f=function(e){e.postMessage||(e=this.$createWorkerFromOldConfig.apply(this,arguments)),this.$worker=e,this.$sendDeltaQueue=this.$sendDeltaQueue.bind(this),this.changeListener=this.changeListener.bind(this),this.onMessage=this.onMessage.bind(this),this.callbackId=1,this.callbacks={},this.$worker.onmessage=this.onMessage};(function(){r.implement(this,s),this.$createWorkerFromOldConfig=function(t,n,r,i,s){e.nameToUrl&&!e.toUrl&&(e.toUrl=e.nameToUrl);if(o.get("packaged")||!e.toUrl)i=i||o.moduleUrl(n,"worker");else{var u=this.$normalizePath;i=i||u(e.toUrl("ace/worker/worker.js",null,"_"));var f={};t.forEach(function(t){f[t]=u(e.toUrl(t,null,"_").replace(/(\.js)?(\?.*)?$/,""))})}return this.$worker=a(i),s&&this.send("importScripts",s),this.$worker.postMessage({init:!0,tlns:f,module:n,classname:r}),this.$worker},this.onMessage=function(e){var t=e.data;switch(t.type){case"event":this._signal(t.name,{data:t.data});break;case"call":var n=this.callbacks[t.id];n&&(n(t.data),delete this.callbacks[t.id]);break;case"error":this.reportError(t.data);break;case"log":window.console&&console.log&&console.log.apply(console,t.data)}},this.reportError=function(e){window.console&&console.error&&console.error(e)},this.$normalizePath=function(e){return i.qualifyURL(e)},this.terminate=function(){this._signal("terminate",{}),this.deltaQueue=null,this.$worker.terminate(),this.$worker.onerror=function(e){e.preventDefault()},this.$worker=null,this.$doc&&this.$doc.off("change",this.changeListener),this.$doc=null},this.send=function(e,t){this.$worker.postMessage({command:e,args:t})},this.call=function(e,t,n){if(n){var r=this.callbackId++;this.callbacks[r]=n,t.push(r)}this.send(e,t)},this.emit=function(e,t){try{t.data&&t.data.err&&(t.data.err={message:t.data.err.message,stack:t.data.err.stack,code:t.data.err.code}),this.$worker&&this.$worker.postMessage({event:e,data:{data:t.data}})}catch(n){console.error(n.stack)}},this.attachToDocument=function(e){this.$doc&&this.terminate(),this.$doc=e,this.call("setValue",[e.getValue()]),e.on("change",this.changeListener,!0)},this.changeListener=function(e){this.deltaQueue||(this.deltaQueue=[],setTimeout(this.$sendDeltaQueue,0)),e.action=="insert"?this.deltaQueue.push(e.start,e.lines):this.deltaQueue.push(e.start,e.end)},this.$sendDeltaQueue=function(){var e=this.deltaQueue;if(!e)return;this.deltaQueue=null,e.length>50&&e.length>this.$doc.getLength()>>1?this.call("setValue",[this.$doc.getValue()]):this.emit("change",{data:e})}}).call(f.prototype);var l=function(e,t,n){var r=null,i=!1,u=Object.create(s),a=[],l=new f({messageBuffer:a,terminate:function(){},postMessage:function(e){a.push(e);if(!r)return;i?setTimeout(c):c()}});l.setEmitSync=function(e){i=e};var c=function(){var e=a.shift();e.command?r[e.command].apply(r,e.args):e.event&&u._signal(e.event,e.data)};return u.postMessage=function(e){l.onMessage({data:e})},u.callback=function(e,t){this.postMessage({type:"call",id:t,data:e})},u.emit=function(e,t){this.postMessage({type:"event",name:e,data:t})},o.loadModule(["worker",t],function(e){r=new e[n](u);while(a.length)c()}),l};t.UIWorkerClient=l,t.WorkerClient=f,t.createWorker=a}),ace.define("ace/placeholder",["require","exports","module","ace/range","ace/lib/event_emitter","ace/lib/oop"],function(e,t,n){"use strict";var r=e("./range").Range,i=e("./lib/event_emitter").EventEmitter,s=e("./lib/oop"),o=function(){function e(e,t,n,r,i,s){var o=this;this.length=t,this.session=e,this.doc=e.getDocument(),this.mainClass=i,this.othersClass=s,this.$onUpdate=this.onUpdate.bind(this),this.doc.on("change",this.$onUpdate,!0),this.$others=r,this.$onCursorChange=function(){setTimeout(function(){o.onCursorChange()})},this.$pos=n;var u=e.getUndoManager().$undoStack||e.getUndoManager().$undostack||{length:-1};this.$undoStackDepth=u.length,this.setup(),e.selection.on("changeCursor",this.$onCursorChange)}return e.prototype.setup=function(){var e=this,t=this.doc,n=this.session;this.selectionBefore=n.selection.toJSON(),n.selection.inMultiSelectMode&&n.selection.toSingleRange(),this.pos=t.createAnchor(this.$pos.row,this.$pos.column);var i=this.pos;i.$insertRight=!0,i.detach(),i.markerId=n.addMarker(new r(i.row,i.column,i.row,i.column+this.length),this.mainClass,null,!1),this.others=[],this.$others.forEach(function(n){var r=t.createAnchor(n.row,n.column);r.$insertRight=!0,r.detach(),e.others.push(r)}),n.setUndoSelect(!1)},e.prototype.showOtherMarkers=function(){if(this.othersActive)return;var e=this.session,t=this;this.othersActive=!0,this.others.forEach(function(n){n.markerId=e.addMarker(new r(n.row,n.column,n.row,n.column+t.length),t.othersClass,null,!1)})},e.prototype.hideOtherMarkers=function(){if(!this.othersActive)return;this.othersActive=!1;for(var e=0;e=this.pos.column&&t.start.column<=this.pos.column+this.length+1,s=t.start.column-this.pos.column;this.updateAnchors(e),i&&(this.length+=n);if(i&&!this.session.$fromUndo)if(e.action==="insert")for(var o=this.others.length-1;o>=0;o--){var u=this.others[o],a={row:u.row,column:u.column+s};this.doc.insertMergedLines(a,e.lines)}else if(e.action==="remove")for(var o=this.others.length-1;o>=0;o--){var u=this.others[o],a={row:u.row,column:u.column+s};this.doc.remove(new r(a.row,a.column,a.row,a.column-n))}this.$updating=!1,this.updateMarkers()},e.prototype.updateAnchors=function(e){this.pos.onChange(e);for(var t=this.others.length;t--;)this.others[t].onChange(e);this.updateMarkers()},e.prototype.updateMarkers=function(){if(this.$updating)return;var e=this,t=this.session,n=function(n,i){t.removeMarker(n.markerId),n.markerId=t.addMarker(new r(n.row,n.column,n.row,n.column+e.length),i,null,!1)};n(this.pos,this.mainClass);for(var i=this.others.length;i--;)n(this.others[i],this.othersClass)},e.prototype.onCursorChange=function(e){if(this.$updating||!this.session)return;var t=this.session.selection.getCursor();t.row===this.pos.row&&t.column>=this.pos.column&&t.column<=this.pos.column+this.length?(this.showOtherMarkers(),this._emit("cursorEnter",e)):(this.hideOtherMarkers(),this._emit("cursorLeave",e))},e.prototype.detach=function(){this.session.removeMarker(this.pos&&this.pos.markerId),this.hideOtherMarkers(),this.doc.off("change",this.$onUpdate),this.session.selection.off("changeCursor",this.$onCursorChange),this.session.setUndoSelect(!0),this.session=null},e.prototype.cancel=function(){if(this.$undoStackDepth===-1)return;var e=this.session.getUndoManager(),t=(e.$undoStack||e.$undostack).length-this.$undoStackDepth;for(var n=0;n1?e.multiSelect.joinSelections():e.multiSelect.splitIntoLines()},bindKey:{win:"Ctrl-Alt-L",mac:"Ctrl-Alt-L"},readOnly:!0},{name:"splitSelectionIntoLines",description:"Split into lines",exec:function(e){e.multiSelect.splitIntoLines()},readOnly:!0},{name:"alignCursors",description:"Align cursors",exec:function(e){e.alignCursors()},bindKey:{win:"Ctrl-Alt-A",mac:"Ctrl-Alt-A"},scrollIntoView:"cursor"},{name:"findAll",description:"Find all",exec:function(e){e.findAll()},bindKey:{win:"Ctrl-Alt-K",mac:"Ctrl-Alt-G"},scrollIntoView:"cursor",readOnly:!0}],t.multiSelectCommands=[{name:"singleSelection",description:"Single selection",bindKey:"esc",exec:function(e){e.exitMultiSelectMode()},scrollIntoView:"cursor",readOnly:!0,isAvailable:function(e){return e&&e.inMultiSelectMode}}];var r=e("../keyboard/hash_handler").HashHandler;t.keyboardHandler=new r(t.multiSelectCommands)}),ace.define("ace/multi_select",["require","exports","module","ace/range_list","ace/range","ace/selection","ace/mouse/multi_select_handler","ace/lib/event","ace/lib/lang","ace/commands/multi_select_commands","ace/search","ace/edit_session","ace/editor","ace/config"],function(e,t,n){function h(e,t,n){return c.$options.wrap=!0,c.$options.needle=t,c.$options.backwards=n==-1,c.find(e)}function v(e,t){return e.row==t.row&&e.column==t.column}function m(e){if(e.$multiselectOnSessionChange)return;e.$onAddRange=e.$onAddRange.bind(e),e.$onRemoveRange=e.$onRemoveRange.bind(e),e.$onMultiSelect=e.$onMultiSelect.bind(e),e.$onSingleSelect=e.$onSingleSelect.bind(e),e.$multiselectOnSessionChange=t.onSessionChange.bind(e),e.$checkMultiselectChange=e.$checkMultiselectChange.bind(e),e.$multiselectOnSessionChange(e),e.on("changeSession",e.$multiselectOnSessionChange),e.on("mousedown",o),e.commands.addCommands(f.defaultCommands),g(e)}function g(e){function r(t){n&&(e.renderer.setMouseCursor(""),n=!1)}if(!e.textInput)return;var t=e.textInput.getElement(),n=!1;u.addListener(t,"keydown",function(t){var i=t.keyCode==18&&!(t.ctrlKey||t.shiftKey||t.metaKey);e.$blockSelectEnabled&&i?n||(e.renderer.setMouseCursor("crosshair"),n=!0):n&&r()},e),u.addListener(t,"keyup",r,e),u.addListener(t,"blur",r,e)}var r=e("./range_list").RangeList,i=e("./range").Range,s=e("./selection").Selection,o=e("./mouse/multi_select_handler").onMouseDown,u=e("./lib/event"),a=e("./lib/lang"),f=e("./commands/multi_select_commands");t.commands=f.defaultCommands.concat(f.multiSelectCommands);var l=e("./search").Search,c=new l,p=e("./edit_session").EditSession;(function(){this.getSelectionMarkers=function(){return this.$selectionMarkers}}).call(p.prototype),function(){this.ranges=null,this.rangeList=null,this.addRange=function(e,t){if(!e)return;if(!this.inMultiSelectMode&&this.rangeCount===0){var n=this.toOrientedRange();this.rangeList.add(n),this.rangeList.add(e);if(this.rangeList.ranges.length!=2)return this.rangeList.removeAll(),t||this.fromOrientedRange(e);this.rangeList.removeAll(),this.rangeList.add(n),this.$onAddRange(n)}e.cursor||(e.cursor=e.end);var r=this.rangeList.add(e);return this.$onAddRange(e),r.length&&this.$onRemoveRange(r),this.rangeCount>1&&!this.inMultiSelectMode&&(this._signal("multiSelect"),this.inMultiSelectMode=!0,this.session.$undoSelect=!1,this.rangeList.attach(this.session)),t||this.fromOrientedRange(e)},this.toSingleRange=function(e){e=e||this.ranges[0];var t=this.rangeList.removeAll();t.length&&this.$onRemoveRange(t),e&&this.fromOrientedRange(e)},this.substractPoint=function(e){var t=this.rangeList.substractPoint(e);if(t)return this.$onRemoveRange(t),t[0]},this.mergeOverlappingRanges=function(){var e=this.rangeList.merge();e.length&&this.$onRemoveRange(e)},this.$onAddRange=function(e){this.rangeCount=this.rangeList.ranges.length,this.ranges.unshift(e),this._signal("addRange",{range:e})},this.$onRemoveRange=function(e){this.rangeCount=this.rangeList.ranges.length;if(this.rangeCount==1&&this.inMultiSelectMode){var t=this.rangeList.ranges.pop();e.push(t),this.rangeCount=0}for(var n=e.length;n--;){var r=this.ranges.indexOf(e[n]);this.ranges.splice(r,1)}this._signal("removeRange",{ranges:e}),this.rangeCount===0&&this.inMultiSelectMode&&(this.inMultiSelectMode=!1,this._signal("singleSelect"),this.session.$undoSelect=!0,this.rangeList.detach(this.session)),t=t||this.ranges[0],t&&!t.isEqual(this.getRange())&&this.fromOrientedRange(t)},this.$initRangeList=function(){if(this.rangeList)return;this.rangeList=new r,this.ranges=[],this.rangeCount=0},this.getAllRanges=function(){return this.rangeCount?this.rangeList.ranges.concat():[this.getRange()]},this.splitIntoLines=function(){var e=this.ranges.length?this.ranges:[this.getRange()],t=[];for(var n=0;n1){var e=this.rangeList.ranges,t=e[e.length-1],n=i.fromPoints(e[0].start,t.end);this.toSingleRange(),this.setSelectionRange(n,t.cursor==t.start)}else{var r=this.session.documentToScreenPosition(this.cursor),s=this.session.documentToScreenPosition(this.anchor),o=this.rectangularRangeBlock(r,s);o.forEach(this.addRange,this)}},this.rectangularRangeBlock=function(e,t,n){var r=[],s=e.column0)g--;if(g>0){var y=0;while(r[y].isEmpty())y++}for(var b=g;b>=y;b--)r[b].isEmpty()&&r.splice(b,1)}return r}}.call(s.prototype);var d=e("./editor").Editor;(function(){this.updateSelectionMarkers=function(){this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.addSelectionMarker=function(e){e.cursor||(e.cursor=e.end);var t=this.getSelectionStyle();return e.marker=this.session.addMarker(e,"ace_selection",t),this.session.$selectionMarkers.push(e),this.session.selectionMarkerCount=this.session.$selectionMarkers.length,e},this.removeSelectionMarker=function(e){if(!e.marker)return;this.session.removeMarker(e.marker);var t=this.session.$selectionMarkers.indexOf(e);t!=-1&&this.session.$selectionMarkers.splice(t,1),this.session.selectionMarkerCount=this.session.$selectionMarkers.length},this.removeSelectionMarkers=function(e){var t=this.session.$selectionMarkers;for(var n=e.length;n--;){var r=e[n];if(!r.marker)continue;this.session.removeMarker(r.marker);var i=t.indexOf(r);i!=-1&&t.splice(i,1)}this.session.selectionMarkerCount=t.length},this.$onAddRange=function(e){this.addSelectionMarker(e.range),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onRemoveRange=function(e){this.removeSelectionMarkers(e.ranges),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onMultiSelect=function(e){if(this.inMultiSelectMode)return;this.inMultiSelectMode=!0,this.setStyle("ace_multiselect"),this.keyBinding.addKeyboardHandler(f.keyboardHandler),this.commands.setDefaultHandler("exec",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onSingleSelect=function(e){if(this.session.multiSelect.inVirtualMode)return;this.inMultiSelectMode=!1,this.unsetStyle("ace_multiselect"),this.keyBinding.removeKeyboardHandler(f.keyboardHandler),this.commands.removeDefaultHandler("exec",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers(),this._emit("changeSelection")},this.$onMultiSelectExec=function(e){var t=e.command,n=e.editor;if(!n.multiSelect)return;if(!t.multiSelectAction){var r=t.exec(n,e.args||{});n.multiSelect.addRange(n.multiSelect.toOrientedRange()),n.multiSelect.mergeOverlappingRanges()}else t.multiSelectAction=="forEach"?r=n.forEachSelection(t,e.args):t.multiSelectAction=="forEachLine"?r=n.forEachSelection(t,e.args,!0):t.multiSelectAction=="single"?(n.exitMultiSelectMode(),r=t.exec(n,e.args||{})):r=t.multiSelectAction(n,e.args||{});return r},this.forEachSelection=function(e,t,n){if(this.inVirtualSelectionMode)return;var r=n&&n.keepOrder,i=n==1||n&&n.$byLines,o=this.session,u=this.selection,a=u.rangeList,f=(r?u:a).ranges,l;if(!f.length)return e.exec?e.exec(this,t||{}):e(this,t||{});var c=u._eventRegistry;u._eventRegistry={};var h=new s(o);this.inVirtualSelectionMode=!0;for(var p=f.length;p--;){if(i)while(p>0&&f[p].start.row==f[p-1].end.row)p--;h.fromOrientedRange(f[p]),h.index=p,this.selection=o.selection=h;var d=e.exec?e.exec(this,t||{}):e(this,t||{});!l&&d!==undefined&&(l=d),h.toOrientedRange(f[p])}h.detach(),this.selection=o.selection=u,this.inVirtualSelectionMode=!1,u._eventRegistry=c,u.mergeOverlappingRanges(),u.ranges[0]&&u.fromOrientedRange(u.ranges[0]);var v=this.renderer.$scrollAnimation;return this.onCursorChange(),this.onSelectionChange(),v&&v.from==v.to&&this.renderer.animateScrolling(v.from),l},this.exitMultiSelectMode=function(){if(!this.inMultiSelectMode||this.inVirtualSelectionMode)return;this.multiSelect.toSingleRange()},this.getSelectedText=function(){var e="";if(this.inMultiSelectMode&&!this.inVirtualSelectionMode){var t=this.multiSelect.rangeList.ranges,n=[];for(var r=0;r0);u<0&&(u=0),f>=c&&(f=c-1)}var p=this.session.removeFullLines(u,f);p=this.$reAlignText(p,l),this.session.insert({row:u,column:0},p.join("\n")+"\n"),l||(o.start.column=0,o.end.column=p[p.length-1].length),this.selection.setRange(o)}else{s.forEach(function(e){t.substractPoint(e.cursor)});var d=0,v=Infinity,m=n.map(function(t){var n=t.cursor,r=e.getLine(n.row),i=r.substr(n.column).search(/\S/g);return i==-1&&(i=0),n.column>d&&(d=n.column),io?e.insert(r,a.stringRepeat(" ",s-o)):e.remove(new i(r.row,r.column,r.row,r.column-s+o)),t.start.column=t.end.column=d,t.start.row=t.end.row=r.row,t.cursor=t.end}),t.fromOrientedRange(n[0]),this.renderer.updateCursor(),this.renderer.updateBackMarkers()}},this.$reAlignText=function(e,t){function u(e){return a.stringRepeat(" ",e)}function f(e){return e[2]?u(i)+e[2]+u(s-e[2].length+o)+e[4].replace(/^([=:])\s+/,"$1 "):e[0]}function l(e){return e[2]?u(i+s-e[2].length)+e[2]+u(o)+e[4].replace(/^([=:])\s+/,"$1 "):e[0]}function c(e){return e[2]?u(i)+e[2]+u(o)+e[4].replace(/^([=:])\s+/,"$1 "):e[0]}var n=!0,r=!0,i,s,o;return e.map(function(e){var t=e.match(/(\s*)(.*?)(\s*)([=:].*)/);return t?i==null?(i=t[1].length,s=t[2].length,o=t[3].length,t):(i+s+o!=t[1].length+t[2].length+t[3].length&&(r=!1),i!=t[1].length&&(n=!1),i>t[1].length&&(i=t[1].length),st[3].length&&(o=t[3].length),t):[e]}).map(t?f:n?r?l:f:c)}}).call(d.prototype),t.onSessionChange=function(e){var t=e.session;t&&!t.multiSelect&&(t.$selectionMarkers=[],t.selection.$initRangeList(),t.multiSelect=t.selection),this.multiSelect=t&&t.multiSelect;var n=e.oldSession;n&&(n.multiSelect.off("addRange",this.$onAddRange),n.multiSelect.off("removeRange",this.$onRemoveRange),n.multiSelect.off("multiSelect",this.$onMultiSelect),n.multiSelect.off("singleSelect",this.$onSingleSelect),n.multiSelect.lead.off("change",this.$checkMultiselectChange),n.multiSelect.anchor.off("change",this.$checkMultiselectChange)),t&&(t.multiSelect.on("addRange",this.$onAddRange),t.multiSelect.on("removeRange",this.$onRemoveRange),t.multiSelect.on("multiSelect",this.$onMultiSelect),t.multiSelect.on("singleSelect",this.$onSingleSelect),t.multiSelect.lead.on("change",this.$checkMultiselectChange),t.multiSelect.anchor.on("change",this.$checkMultiselectChange)),t&&this.inMultiSelectMode!=t.selection.inMultiSelectMode&&(t.selection.inMultiSelectMode?this.$onMultiSelect():this.$onSingleSelect())},t.MultiSelect=m,e("./config").defineOptions(d.prototype,"editor",{enableMultiselect:{set:function(e){m(this),e?this.on("mousedown",o):this.off("mousedown",o)},value:!0},enableBlockSelect:{set:function(e){this.$blockSelectEnabled=e},value:!0}})}),ace.define("ace/mode/folding/fold_mode",["require","exports","module","ace/range"],function(e,t,n){"use strict";var r=e("../../range").Range,i=t.FoldMode=function(){};(function(){this.foldingStartMarker=null,this.foldingStopMarker=null,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);return this.foldingStartMarker.test(r)?"start":t=="markbeginend"&&this.foldingStopMarker&&this.foldingStopMarker.test(r)?"end":""},this.getFoldWidgetRange=function(e,t,n){return null},this.indentationBlock=function(e,t,n){var i=/\S/,s=e.getLine(t),o=s.search(i);if(o==-1)return;var u=n||s.length,a=e.getLength(),f=t,l=t;while(++tf){var p=e.getLine(l).length;return new r(f,u,l,p)}},this.openingBracketBlock=function(e,t,n,i,s){var o={row:n,column:i+1},u=e.$findClosingBracket(t,o,s);if(!u)return;var a=e.foldWidgets[u.row];return a==null&&(a=e.getFoldWidget(u.row)),a=="start"&&u.row>o.row&&(u.row--,u.column=e.getLine(u.row).length),r.fromPoints(o,u)},this.closingBracketBlock=function(e,t,n,i,s){var o={row:n,column:i},u=e.$findOpeningBracket(t,o);if(!u)return;return u.column++,o.column--,r.fromPoints(u,o)}}).call(i.prototype)}),ace.define("ace/ext/error_marker",["require","exports","module","ace/line_widgets","ace/lib/dom","ace/range","ace/config"],function(e,t,n){"use strict";function u(e,t,n){var r=0,i=e.length-1;while(r<=i){var s=r+i>>1,o=n(t,e[s]);if(o>0)r=s+1;else{if(!(o<0))return s;i=s-1}}return-(r+1)}function a(e,t,n){var r=e.getAnnotations().sort(s.comparePoints);if(!r.length)return;var i=u(r,{row:t,column:-1},s.comparePoints);i<0&&(i=-i-1),i>=r.length?i=n>0?0:r.length-1:i===0&&n<0&&(i=r.length-1);var o=r[i];if(!o||!n)return;if(o.row===t){do o=r[i+=n];while(o&&o.row===t);if(!o)return r.slice()}var a=[];t=o.row;do a[n<0?"unshift":"push"](o),o=r[i+=n];while(o&&o.row==t);return a.length&&a}var r=e("../line_widgets").LineWidgets,i=e("../lib/dom"),s=e("../range").Range,o=e("../config").nls;t.showErrorMarker=function(e,t){var n=e.session;n.widgetManager||(n.widgetManager=new r(n),n.widgetManager.attach(e));var s=e.getCursorPosition(),u=s.row,f=n.widgetManager.getWidgetsAtRow(u).filter(function(e){return e.type=="errorMarker"})[0];f?f.destroy():u-=t;var l=a(n,u,t),c;if(l){var h=l[0];s.column=(h.pos&&typeof h.column!="number"?h.pos.sc:h.column)||0,s.row=h.row,c=e.renderer.$gutterLayer.$annotations[s.row]}else{if(f)return;c={displayText:[o("error-marker.good-state","Looks good!")],className:"ace_ok"}}e.session.unfold(s.row),e.selection.moveToPosition(s);var p={row:s.row,fixedWidth:!0,coverGutter:!0,el:i.createElement("div"),type:"errorMarker"},d=p.el.appendChild(i.createElement("div")),v=p.el.appendChild(i.createElement("div"));v.className="error_widget_arrow "+c.className;var m=e.renderer.$cursorLayer.getPixelPosition(s).left;v.style.left=m+e.renderer.gutterWidth-5+"px",p.el.className="error_widget_wrapper",d.className="error_widget "+c.className,c.displayText.forEach(function(e,t){d.appendChild(i.createTextNode(e)),tn.length)t=n.length;t-=e.length;var r=n.indexOf(e,t);return r!==-1&&r===t}),String.prototype.repeat||r(String.prototype,"repeat",function(e){var t="",n=this;while(e>0){e&1&&(t+=n);if(e>>=1)n+=n}return t}),String.prototype.includes||r(String.prototype,"includes",function(e,t){return this.indexOf(e,t)!=-1}),Object.assign||(Object.assign=function(e){if(e===undefined||e===null)throw new TypeError("Cannot convert undefined or null to object");var t=Object(e);for(var n=1;n>>0,r=arguments[1],i=r>>0,s=i<0?Math.max(n+i,0):Math.min(i,n),o=arguments[2],u=o===undefined?n:o>>0,a=u<0?Math.max(n+u,0):Math.min(u,n);while(s0){t&1&&(n+=e);if(t>>=1)e+=e}return n};var r=/^\s\s*/,i=/\s\s*$/;t.stringTrimLeft=function(e){return e.replace(r,"")},t.stringTrimRight=function(e){return e.replace(i,"")},t.copyObject=function(e){var t={};for(var n in e)t[n]=e[n];return t},t.copyArray=function(e){var t=[];for(var n=0,r=e.length;n65535?2:1}}),ace.define("ace/lib/useragent",["require","exports","module"],function(e,t,n){"use strict";t.OS={LINUX:"LINUX",MAC:"MAC",WINDOWS:"WINDOWS"},t.getOS=function(){return t.isMac?t.OS.MAC:t.isLinux?t.OS.LINUX:t.OS.WINDOWS};var r=typeof navigator=="object"?navigator:{},i=(/mac|win|linux/i.exec(r.platform)||["other"])[0].toLowerCase(),s=r.userAgent||"",o=r.appName||"";t.isWin=i=="win",t.isMac=i=="mac",t.isLinux=i=="linux",t.isIE=o=="Microsoft Internet Explorer"||o.indexOf("MSAppHost")>=0?parseFloat((s.match(/(?:MSIE |Trident\/[0-9]+[\.0-9]+;.*rv:)([0-9]+[\.0-9]+)/)||[])[1]):parseFloat((s.match(/(?:Trident\/[0-9]+[\.0-9]+;.*rv:)([0-9]+[\.0-9]+)/)||[])[1]),t.isOldIE=t.isIE&&t.isIE<9,t.isGecko=t.isMozilla=s.match(/ Gecko\/\d+/),t.isOpera=typeof opera=="object"&&Object.prototype.toString.call(window["opera"])=="[object Opera]",t.isWebKit=parseFloat(s.split("WebKit/")[1])||undefined,t.isChrome=parseFloat(s.split(" Chrome/")[1])||undefined,t.isSafari=parseFloat(s.split(" Safari/")[1])&&!t.isChrome||undefined,t.isEdge=parseFloat(s.split(" Edge/")[1])||undefined,t.isAIR=s.indexOf("AdobeAIR")>=0,t.isAndroid=s.indexOf("Android")>=0,t.isChromeOS=s.indexOf(" CrOS ")>=0,t.isIOS=/iPad|iPhone|iPod/.test(s)&&!window.MSStream,t.isIOS&&(t.isMac=!0),t.isMobile=t.isIOS||t.isAndroid}),ace.define("ace/lib/dom",["require","exports","module","ace/lib/useragent"],function(e,t,n){"use strict";function u(){var e=o;o=null,e&&e.forEach(function(e){a(e[0],e[1])})}function a(e,n,r){if(typeof document=="undefined")return;if(o)if(r)u();else if(r===!1)return o.push([e,n]);if(s)return;var i=r;if(!r||!r.getRootNode)i=document;else{i=r.getRootNode();if(!i||i==r)i=document}var a=i.ownerDocument||i;if(n&&t.hasCssString(n,i))return null;n&&(e+="\n/*# sourceURL=ace/css/"+n+" */");var f=t.createElement("style");f.appendChild(a.createTextNode(e)),n&&(f.id=n),i==a&&(i=t.getDocumentHead(a)),i.insertBefore(f,i.firstChild)}var r=e("./useragent"),i="http://www.w3.org/1999/xhtml";t.buildDom=function l(e,t,n){if(typeof e=="string"&&e){var r=document.createTextNode(e);return t&&t.appendChild(r),r}if(!Array.isArray(e))return e&&e.appendChild&&t&&t.appendChild(e),e;if(typeof e[0]!="string"||!e[0]){var i=[];for(var s=0;s=1.5:!0,r.isChromeOS&&(t.HI_DPI=!1);if(typeof document!="undefined"){var f=document.createElement("div");t.HI_DPI&&f.style.transform!==undefined&&(t.HAS_CSS_TRANSFORMS=!0),!r.isEdge&&typeof f.style.animationName!="undefined"&&(t.HAS_CSS_ANIMATION=!0),f=null}t.HAS_CSS_TRANSFORMS?t.translate=function(e,t,n){e.style.transform="translate("+Math.round(t)+"px, "+Math.round(n)+"px)"}:t.translate=function(e,t,n){e.style.top=Math.round(n)+"px",e.style.left=Math.round(t)+"px"}}),ace.define("ace/lib/net",["require","exports","module","ace/lib/dom"],function(e,t,n){"use strict";var r=e("./dom");t.get=function(e,t){var n=new XMLHttpRequest;n.open("GET",e,!0),n.onreadystatechange=function(){n.readyState===4&&t(n.responseText)},n.send(null)},t.loadScript=function(e,t){var n=r.getDocumentHead(),i=document.createElement("script");i.src=e,n.appendChild(i),i.onload=i.onreadystatechange=function(e,n){if(n||!i.readyState||i.readyState=="loaded"||i.readyState=="complete")i=i.onload=i.onreadystatechange=null,n||t()}},t.qualifyURL=function(e){var t=document.createElement("a");return t.href=e,t.href}}),ace.define("ace/lib/oop",["require","exports","module"],function(e,t,n){"use strict";t.inherits=function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})},t.mixin=function(e,t){for(var n in t)e[n]=t[n];return e},t.implement=function(e,n){t.mixin(e,n)}}),ace.define("ace/lib/event_emitter",["require","exports","module"],function(e,t,n){"use strict";var r={},i=function(){this.propagationStopped=!0},s=function(){this.defaultPrevented=!0};r._emit=r._dispatchEvent=function(e,t){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var n=this._eventRegistry[e]||[],r=this._defaultHandlers[e];if(!n.length&&!r)return;if(typeof t!="object"||!t)t={};t.type||(t.type=e),t.stopPropagation||(t.stopPropagation=i),t.preventDefault||(t.preventDefault=s),n=n.slice();for(var o=0;o1&&(i=n[n.length-2]);var o=u[t+"Path"];return o==null?o=u.basePath:r=="/"&&(t=r=""),o&&o.slice(-1)!="/"&&(o+="/"),o+t+r+i+this.get("suffix")},t.setModuleUrl=function(e,t){return u.$moduleUrls[e]=t};var a=function(t,n){if(t==="ace/theme/textmate"||t==="./theme/textmate")return n(null,e("./theme/textmate"));if(f)return f(t,n);console.error("loader is not configured")},f;t.setLoader=function(e){f=e},t.dynamicModules=Object.create(null),t.$loading={},t.$loaded={},t.loadModule=function(e,n){var r;if(Array.isArray(e))var s=e[0],o=e[1];else if(typeof e=="string")var o=e;var u=function(e){if(e&&!t.$loading[o])return n&&n(e);t.$loading[o]||(t.$loading[o]=[]),t.$loading[o].push(n);if(t.$loading[o].length>1)return;var r=function(){a(o,function(e,n){n&&(t.$loaded[o]=n),t._emit("load.module",{name:o,module:n});var r=t.$loading[o];t.$loading[o]=null,r.forEach(function(e){e&&e(n)})})};if(!t.get("packaged"))return r();i.loadScript(t.moduleUrl(o,s),r),l()};if(t.dynamicModules[o])t.dynamicModules[o]().then(function(e){e.default?u(e.default):u(e)});else{try{r=this.$require(o)}catch(f){}u(r||t.$loaded[o])}},t.$require=function(e){if(typeof n["require"]=="function"){var t="require";return n[t](e)}},t.setModuleLoader=function(e,n){t.dynamicModules[e]=n};var l=function(){!u.basePath&&!u.workerPath&&!u.modePath&&!u.themePath&&!Object.keys(u.$moduleUrls).length&&(console.error("Unable to infer path to ace from script src,","use ace.config.set('basePath', 'path') to enable dynamic loading of modes and themes","or with webpack use ace/webpack-resolver"),l=function(){})};t.version="1.35.4"}),ace.define("ace/loader_build",["require","exports","module","ace/lib/fixoldbrowsers","ace/config"],function(e,t,n){"use strict";function s(t){if(!i||!i.document)return;r.set("packaged",t||e.packaged||n.packaged||i.define&&define.packaged);var s={},u="",a=document.currentScript||document._currentScript,f=a&&a.ownerDocument||document;a&&a.src&&(u=a.src.split(/[?#]/)[0].split("/").slice(0,-1).join("/")||"");var l=f.getElementsByTagName("script");for(var c=0;c ["+this.end.row+"/"+this.end.column+"]"},e.prototype.contains=function(e,t){return this.compare(e,t)==0},e.prototype.compareRange=function(e){var t,n=e.end,r=e.start;return t=this.compare(n.row,n.column),t==1?(t=this.compare(r.row,r.column),t==1?2:t==0?1:0):t==-1?-2:(t=this.compare(r.row,r.column),t==-1?-1:t==1?42:0)},e.prototype.comparePoint=function(e){return this.compare(e.row,e.column)},e.prototype.containsRange=function(e){return this.comparePoint(e.start)==0&&this.comparePoint(e.end)==0},e.prototype.intersects=function(e){var t=this.compareRange(e);return t==-1||t==0||t==1},e.prototype.isEnd=function(e,t){return this.end.row==e&&this.end.column==t},e.prototype.isStart=function(e,t){return this.start.row==e&&this.start.column==t},e.prototype.setStart=function(e,t){typeof e=="object"?(this.start.column=e.column,this.start.row=e.row):(this.start.row=e,this.start.column=t)},e.prototype.setEnd=function(e,t){typeof e=="object"?(this.end.column=e.column,this.end.row=e.row):(this.end.row=e,this.end.column=t)},e.prototype.inside=function(e,t){return this.compare(e,t)==0?this.isEnd(e,t)||this.isStart(e,t)?!1:!0:!1},e.prototype.insideStart=function(e,t){return this.compare(e,t)==0?this.isEnd(e,t)?!1:!0:!1},e.prototype.insideEnd=function(e,t){return this.compare(e,t)==0?this.isStart(e,t)?!1:!0:!1},e.prototype.compare=function(e,t){return!this.isMultiLine()&&e===this.start.row?tthis.end.column?1:0:ethis.end.row?1:this.start.row===e?t>=this.start.column?0:-1:this.end.row===e?t<=this.end.column?0:1:0},e.prototype.compareStart=function(e,t){return this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},e.prototype.compareEnd=function(e,t){return this.end.row==e&&this.end.column==t?1:this.compare(e,t)},e.prototype.compareInside=function(e,t){return this.end.row==e&&this.end.column==t?1:this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},e.prototype.clipRows=function(t,n){if(this.end.row>n)var r={row:n+1,column:0};else if(this.end.rown)var i={row:n+1,column:0};else if(this.start.row1?(u++,u>4&&(u=1)):u=1;if(i.isIE){var o=Math.abs(e.clientX-a)>5||Math.abs(e.clientY-f)>5;if(!l||o)u=1;l&&clearTimeout(l),l=setTimeout(function(){l=null},n[u-1]||600),u==1&&(a=e.clientX,f=e.clientY)}e._clicks=u,r[s]("mousedown",e);if(u>4)u=0;else if(u>1)return r[s](h[u],e)}var u=0,a,f,l,h={2:"dblclick",3:"tripleclick",4:"quadclick"};Array.isArray(e)||(e=[e]),e.forEach(function(e){c(e,"mousedown",p,o)})},t.getModifierString=function(e){return r.KEY_MODS[p(e)]},t.addCommandKeyListener=function(e,n,r){var i=null;c(e,"keydown",function(e){s[e.keyCode]=(s[e.keyCode]||0)+1;var t=d(n,e,e.keyCode);return i=e.defaultPrevented,t},r),c(e,"keypress",function(e){i&&(e.ctrlKey||e.altKey||e.shiftKey||e.metaKey)&&(t.stopEvent(e),i=null)},r),c(e,"keyup",function(e){s[e.keyCode]=null},r),s||(v(),c(window,"focus",v))};if(typeof window=="object"&&window.postMessage&&!i.isOldIE){var m=1;t.nextTick=function(e,n){n=n||window;var r="zero-timeout-message-"+m++,i=function(s){s.data==r&&(t.stopPropagation(s),h(n,"message",i),e())};c(n,"message",i),n.postMessage(r,"*")}}t.$idleBlocked=!1,t.onIdle=function(e,n){return setTimeout(function r(){t.$idleBlocked?setTimeout(r,100):e()},n)},t.$idleBlockId=null,t.blockIdle=function(e){t.$idleBlockId&&clearTimeout(t.$idleBlockId),t.$idleBlocked=!0,t.$idleBlockId=setTimeout(function(){t.$idleBlocked=!1},e||100)},t.nextFrame=typeof window=="object"&&(window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame||window.oRequestAnimationFrame),t.nextFrame?t.nextFrame=t.nextFrame.bind(window):t.nextFrame=function(e){setTimeout(e,17)}}),ace.define("ace/clipboard",["require","exports","module"],function(e,t,n){"use strict";var r;n.exports={lineMode:!1,pasteCancelled:function(){return r&&r>Date.now()-50?!0:r=!1},cancel:function(){r=Date.now()}}}),ace.define("ace/keyboard/textinput",["require","exports","module","ace/lib/event","ace/config","ace/lib/useragent","ace/lib/dom","ace/lib/lang","ace/clipboard","ace/lib/keys"],function(e,t,n){"use strict";var r=e("../lib/event"),i=e("../config").nls,s=e("../lib/useragent"),o=e("../lib/dom"),u=e("../lib/lang"),a=e("../clipboard"),f=s.isChrome<18,l=s.isIE,c=s.isChrome>63,h=400,p=e("../lib/keys"),d=p.KEY_MODS,v=s.isIOS,m=v?/\s/:/\n/,g=s.isMobile,y;y=function(e,t){function Q(){T=!0,n.blur(),n.focus(),T=!1}function Y(e){e.keyCode==27&&n.value.lengthk&&N[s]=="\n")o=p.end;else if(rk&&N.slice(0,s).split("\n").length>2)o=p.down;else if(s>k&&N[s-1]==" ")o=p.right,u=d.option;else if(s>k||s==k&&k!=C&&r==s)o=p.right;r!==s&&(u|=d.shift);if(o){var a=t.onCommandKey({},u,o);if(!a&&t.commands){o=p.keyCodeToString(o);var f=t.commands.findKeyCommand(u,o);f&&t.execCommand(f)}C=r,k=s,H("")}};document.addEventListener("selectionchange",s),t.on("destroy",function(){document.removeEventListener("selectionchange",s)})}var n=o.createElement("textarea");n.className="ace_text-input",n.setAttribute("wrap","off"),n.setAttribute("autocorrect","off"),n.setAttribute("autocapitalize","off"),n.setAttribute("spellcheck","false"),n.style.opacity="0",e.insertBefore(n,e.firstChild);var y=!1,b=!1,w=!1,E=!1,S="";g||(n.style.fontSize="1px");var x=!1,T=!1,N="",C=0,k=0,L=0,A=Number.MAX_SAFE_INTEGER,O=Number.MIN_SAFE_INTEGER,M=0;try{var _=document.activeElement===n}catch(D){}this.setNumberOfExtraLines=function(e){A=Number.MAX_SAFE_INTEGER,O=Number.MIN_SAFE_INTEGER;if(e<0){M=0;return}M=e},this.setAriaOptions=function(e){e.activeDescendant?(n.setAttribute("aria-haspopup","true"),n.setAttribute("aria-autocomplete",e.inline?"both":"list"),n.setAttribute("aria-activedescendant",e.activeDescendant)):(n.setAttribute("aria-haspopup","false"),n.setAttribute("aria-autocomplete","both"),n.removeAttribute("aria-activedescendant")),e.role&&n.setAttribute("role",e.role);if(e.setLabel){n.setAttribute("aria-roledescription",i("text-input.aria-roledescription","editor"));var r="";t.$textInputAriaLabel&&(r+="".concat(t.$textInputAriaLabel,", "));if(t.session){var s=t.session.selection.cursor.row;r+=i("text-input.aria-label","Cursor at row $0",[s+1])}n.setAttribute("aria-label",r)}},this.setAriaOptions({role:"textbox"}),r.addListener(n,"blur",function(e){if(T)return;t.onBlur(e),_=!1},t),r.addListener(n,"focus",function(e){if(T)return;_=!0;if(s.isEdge)try{if(!document.hasFocus())return}catch(e){}t.onFocus(e),s.isEdge?setTimeout(H):H()},t),this.$focusScroll=!1,this.focus=function(){this.setAriaOptions({setLabel:t.renderer.enableKeyboardAccessibility});if(S||c||this.$focusScroll=="browser")return n.focus({preventScroll:!0});var e=n.style.top;n.style.position="fixed",n.style.top="0px";try{var r=n.getBoundingClientRect().top!=0}catch(i){return}var s=[];if(r){var o=n.parentElement;while(o&&o.nodeType==1)s.push(o),o.setAttribute("ace_nocontext","true"),!o.parentElement&&o.getRootNode?o=o.getRootNode().host:o=o.parentElement}n.focus({preventScroll:!0}),r&&s.forEach(function(e){e.removeAttribute("ace_nocontext")}),setTimeout(function(){n.style.position="",n.style.top=="0px"&&(n.style.top=e)},0)},this.blur=function(){n.blur()},this.isFocused=function(){return _},t.on("beforeEndOperation",function(){var e=t.curOp,r=e&&e.command&&e.command.name;if(r=="insertstring")return;var i=r&&(e.docChanged||e.selectionChanged);w&&i&&(N=n.value="",K()),H()});var P=function(e,n){var r=n;for(var i=1;i<=e-A&&i<2*M+1;i++)r+=t.session.getLine(e-i).length+1;return r},H=v?function(e){if(!_||y&&!e||E)return;e||(e="");var r="\n ab"+e+"cde fg\n";r!=n.value&&(n.value=N=r);var i=4,s=4+(e.length||(t.selection.isEmpty()?0:1));(C!=i||k!=s)&&n.setSelectionRange(i,s),C=i,k=s}:function(){if(w||E)return;if(!_&&!I)return;w=!0;var e=0,r=0,i="";if(t.session){var s=t.selection,o=s.getRange(),u=s.cursor.row;if(u===O+1)A=O+1,O=A+2*M;else if(u===A-1)O=A-1,A=O-2*M;else if(uO+1)A=u>M?u-M:0,O=u>M?u+M:2*M;var a=[];for(var f=A;f<=O;f++)a.push(t.session.getLine(f));i=a.join("\n"),e=P(o.start.row,o.start.column),r=P(o.end.row,o.end.column);if(o.start.rowO){var c=t.session.getLine(O+1);r=o.end.row>O+1?c.length:o.end.column,r+=i.length+1,i=i+"\n"+c}else g&&u>0&&(i="\n"+i,r+=1,e+=1);i.length>h&&(e=N.length&&e.value===N&&N&&e.selectionEnd!==k},j=function(e){if(w)return;y?y=!1:B(n)?(t.selectAll(),H()):g&&n.selectionStart!=C&&H()},F=null;this.setInputHandler=function(e){F=e},this.getInputHandler=function(){return F};var I=!1,q=function(e,r){I&&(I=!1);if(b)return H(),e&&t.onPaste(e),b=!1,"";var i=n.selectionStart,o=n.selectionEnd,u=C,a=N.length-k,f=e,l=e.length-i,c=e.length-o,h=0;while(u>0&&N[h]==e[h])h++,u--;f=f.slice(h),h=1;while(a>0&&N.length-h>C-1&&N[N.length-h]==e[e.length-h])h++,a--;l-=h-1,c-=h-1;var p=f.length-h+1;p<0&&(u=-p,p=0),f=f.slice(0,p);if(!r&&!f&&!l&&!u&&!a&&!c)return"";E=!0;var d=!1;return s.isAndroid&&f==". "&&(f=" ",d=!0),f&&!u&&!a&&!l&&!c||x?t.onTextInput(f):t.onTextInput(f,{extendLeft:u,extendRight:a,restoreStart:l,restoreEnd:c}),E=!1,N=e,C=i,k=o,L=c,d?"\n":f},R=function(e){if(w)return J();if(e&&e.inputType){if(e.inputType=="historyUndo")return t.execCommand("undo");if(e.inputType=="historyRedo")return t.execCommand("redo")}var r=n.value,i=q(r,!0);(r.length>h+100||m.test(i)||g&&C<1&&C==k)&&H()},U=function(e,t,n){var r=e.clipboardData||window.clipboardData;if(!r||f)return;var i=l||n?"Text":"text/plain";try{return t?r.setData(i,t)!==!1:r.getData(i)}catch(e){if(!n)return U(e,t,!0)}},z=function(e,i){var s=t.getCopyText();if(!s)return r.preventDefault(e);U(e,s)?(v&&(H(s),y=s,setTimeout(function(){y=!1},10)),i?t.onCut():t.onCopy(),r.preventDefault(e)):(y=!0,n.value=s,n.select(),setTimeout(function(){y=!1,H(),i?t.onCut():t.onCopy()}))},W=function(e){z(e,!0)},X=function(e){z(e,!1)},V=function(e){var i=U(e);if(a.pasteCancelled())return;typeof i=="string"?(i&&t.onPaste(i,e),s.isIE&&setTimeout(H),r.preventDefault(e)):(n.value="",b=!0)};r.addCommandKeyListener(n,function(e,n,r){if(w)return;return t.onCommandKey(e,n,r)},t),r.addListener(n,"select",j,t),r.addListener(n,"input",R,t),r.addListener(n,"cut",W,t),r.addListener(n,"copy",X,t),r.addListener(n,"paste",V,t),(!("oncut"in n)||!("oncopy"in n)||!("onpaste"in n))&&r.addListener(e,"keydown",function(e){if(s.isMac&&!e.metaKey||!e.ctrlKey)return;switch(e.keyCode){case 67:X(e);break;case 86:V(e);break;case 88:W(e)}},t);var $=function(e){if(w||!t.onCompositionStart||t.$readOnly)return;w={};if(x)return;e.data&&(w.useTextareaForIME=!1),setTimeout(J,0),t._signal("compositionStart"),t.on("mousedown",Q);var r=t.getSelectionRange();r.end.row=r.start.row,r.end.column=r.start.column,w.markerRange=r,w.selectionStart=C,t.onCompositionStart(w),w.useTextareaForIME?(N=n.value="",C=0,k=0):(n.msGetInputContext&&(w.context=n.msGetInputContext()),n.getInputContext&&(w.context=n.getInputContext()))},J=function(){if(!w||!t.onCompositionUpdate||t.$readOnly)return;if(x)return Q();if(w.useTextareaForIME)t.onCompositionUpdate(n.value);else{var e=n.value;q(e),w.markerRange&&(w.context&&(w.markerRange.start.column=w.selectionStart=w.context.compositionStartOffset),w.markerRange.end.column=w.markerRange.start.column+k-w.selectionStart+L)}},K=function(e){if(!t.onCompositionEnd||t.$readOnly)return;w=!1,t.onCompositionEnd(),t.off("mousedown",Q),e&&R()},G=u.delayedCall(J,50).schedule.bind(null,null);r.addListener(n,"compositionstart",$,t),r.addListener(n,"compositionupdate",J,t),r.addListener(n,"keyup",Y,t),r.addListener(n,"keydown",G,t),r.addListener(n,"compositionend",K,t),this.getElement=function(){return n},this.setCommandMode=function(e){x=e,n.readOnly=!1},this.setReadOnly=function(e){x||(n.readOnly=e)},this.setCopyWithEmptySelection=function(e){},this.onContextMenu=function(e){I=!0,H(),t._emit("nativecontextmenu",{target:t,domEvent:e}),this.moveToMouse(e,!0)},this.moveToMouse=function(e,i){S||(S=n.style.cssText),n.style.cssText=(i?"z-index:100000;":"")+(s.isIE?"opacity:0.1;":"")+"text-indent: -"+(C+k)*t.renderer.characterWidth*.5+"px;";var u=t.container.getBoundingClientRect(),a=o.computedStyle(t.container),f=u.top+(parseInt(a.borderTopWidth)||0),l=u.left+(parseInt(u.borderLeftWidth)||0),c=u.bottom-f-n.clientHeight-2,h=function(e){o.translate(n,e.clientX-l-2,Math.min(e.clientY-f-2,c))};h(e);if(e.type!="mousedown")return;t.renderer.$isMousePressed=!0,clearTimeout(Z),s.isWin&&r.capture(t.container,h,et)},this.onContextMenuClose=et;var Z,tt=function(e){t.textInput.onContextMenu(e),et()};r.addListener(n,"mouseup",tt,t),r.addListener(n,"mousedown",function(e){e.preventDefault(),et()},t),r.addListener(t.renderer.scroller,"contextmenu",tt,t),r.addListener(n,"contextmenu",tt,t),v&&nt(e,t,n),this.destroy=function(){n.parentElement&&n.parentElement.removeChild(n)}},t.TextInput=y,t.$setUserAgentForTests=function(e,t){g=e,v=t}}),ace.define("ace/mouse/default_handlers",["require","exports","module","ace/lib/useragent"],function(e,t,n){"use strict";function u(e,t,n,r){return Math.sqrt(Math.pow(n-e,2)+Math.pow(r-t,2))}function a(e,t){if(e.start.row==e.end.row)var n=2*t.column-e.start.column-e.end.column;else if(e.start.row==e.end.row-1&&!e.start.column&&!e.end.column)var n=t.column-4;else var n=2*t.row-e.start.row-e.end.row;return n<0?{cursor:e.start,anchor:e.end}:{cursor:e.end,anchor:e.start}}var r=e("../lib/useragent"),i=0,s=550,o=function(){function e(e){e.$clickSelection=null;var t=e.editor;t.setDefaultHandler("mousedown",this.onMouseDown.bind(e)),t.setDefaultHandler("dblclick",this.onDoubleClick.bind(e)),t.setDefaultHandler("tripleclick",this.onTripleClick.bind(e)),t.setDefaultHandler("quadclick",this.onQuadClick.bind(e)),t.setDefaultHandler("mousewheel",this.onMouseWheel.bind(e));var n=["select","startSelect","selectEnd","selectAllEnd","selectByWordsEnd","selectByLinesEnd","dragWait","dragWaitEnd","focusWait"];n.forEach(function(t){e[t]=this[t]},this),e.selectByLines=this.extendSelectionBy.bind(e,"getLineRange"),e.selectByWords=this.extendSelectionBy.bind(e,"getWordRange")}return e.prototype.onMouseDown=function(e){var t=e.inSelection(),n=e.getDocumentPosition();this.mousedownEvent=e;var i=this.editor,s=e.getButton();if(s!==0){var o=i.getSelectionRange(),u=o.isEmpty();(u||s==1)&&i.selection.moveToPosition(n),s==2&&(i.textInput.onContextMenu(e.domEvent),r.isMozilla||e.preventDefault());return}this.mousedownEvent.time=Date.now();if(t&&!i.isFocused()){i.focus();if(this.$focusTimeout&&!this.$clickSelection&&!i.inMultiSelectMode){this.setState("focusWait"),this.captureMouse(e);return}}return this.captureMouse(e),this.startSelect(n,e.domEvent._clicks>1),e.preventDefault()},e.prototype.startSelect=function(e,t){e=e||this.editor.renderer.screenToTextCoordinates(this.x,this.y);var n=this.editor;if(!this.mousedownEvent)return;this.mousedownEvent.getShiftKey()?n.selection.selectToPosition(e):t||n.selection.moveToPosition(e),t||this.select(),n.setStyle("ace_selecting"),this.setState("select")},e.prototype.select=function(){var e,t=this.editor,n=t.renderer.screenToTextCoordinates(this.x,this.y);if(this.$clickSelection){var r=this.$clickSelection.comparePoint(n);if(r==-1)e=this.$clickSelection.end;else if(r==1)e=this.$clickSelection.start;else{var i=a(this.$clickSelection,n);n=i.cursor,e=i.anchor}t.selection.setSelectionAnchor(e.row,e.column)}t.selection.selectToPosition(n),t.renderer.scrollCursorIntoView()},e.prototype.extendSelectionBy=function(e){var t,n=this.editor,r=n.renderer.screenToTextCoordinates(this.x,this.y),i=n.selection[e](r.row,r.column);if(this.$clickSelection){var s=this.$clickSelection.comparePoint(i.start),o=this.$clickSelection.comparePoint(i.end);if(s==-1&&o<=0){t=this.$clickSelection.end;if(i.end.row!=r.row||i.end.column!=r.column)r=i.start}else if(o==1&&s>=0){t=this.$clickSelection.start;if(i.start.row!=r.row||i.start.column!=r.column)r=i.end}else if(s==-1&&o==1)r=i.end,t=i.start;else{var u=a(this.$clickSelection,r);r=u.cursor,t=u.anchor}n.selection.setSelectionAnchor(t.row,t.column)}n.selection.selectToPosition(r),n.renderer.scrollCursorIntoView()},e.prototype.selectByLinesEnd=function(){this.$clickSelection=null,this.editor.unsetStyle("ace_selecting")},e.prototype.focusWait=function(){var e=u(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y),t=Date.now();(e>i||t-this.mousedownEvent.time>this.$focusTimeout)&&this.startSelect(this.mousedownEvent.getDocumentPosition())},e.prototype.onDoubleClick=function(e){var t=e.getDocumentPosition(),n=this.editor,r=n.session,i=r.getBracketRange(t);i?(i.isEmpty()&&(i.start.column--,i.end.column++),this.setState("select")):(i=n.selection.getWordRange(t.row,t.column),this.setState("selectByWords")),this.$clickSelection=i,this.select()},e.prototype.onTripleClick=function(e){var t=e.getDocumentPosition(),n=this.editor;this.setState("selectByLines");var r=n.getSelectionRange();r.isMultiLine()&&r.contains(t.row,t.column)?(this.$clickSelection=n.selection.getLineRange(r.start.row),this.$clickSelection.end=n.selection.getLineRange(r.end.row).end):this.$clickSelection=n.selection.getLineRange(t.row),this.select()},e.prototype.onQuadClick=function(e){var t=this.editor;t.selectAll(),this.$clickSelection=t.getSelectionRange(),this.setState("selectAll")},e.prototype.onMouseWheel=function(e){if(e.getAccelKey())return;e.getShiftKey()&&e.wheelY&&!e.wheelX&&(e.wheelX=e.wheelY,e.wheelY=0);var t=this.editor;this.$lastScroll||(this.$lastScroll={t:0,vx:0,vy:0,allowed:0});var n=this.$lastScroll,r=e.domEvent.timeStamp,i=r-n.t,o=i?e.wheelX/i:n.vx,u=i?e.wheelY/i:n.vy;i=1&&t.renderer.isScrollableBy(e.wheelX*e.speed,0)&&(f=!0),a<=1&&t.renderer.isScrollableBy(0,e.wheelY*e.speed)&&(f=!0);if(f)n.allowed=r;else if(r-n.allowedn.clientHeight;r||t.preventDefault()}}),ace.define("ace/tooltip",["require","exports","module","ace/lib/dom","ace/lib/event","ace/range","ace/lib/scroll"],function(e,t,n){"use strict";var r=this&&this.__extends||function(){var e=function(t,n){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},e(t,n)};return function(t,n){function r(){this.constructor=t}if(typeof n!="function"&&n!==null)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");e(t,n),t.prototype=n===null?Object.create(n):(r.prototype=n.prototype,new r)}}(),i=this&&this.__values||function(e){var t=typeof Symbol=="function"&&Symbol.iterator,n=t&&e[t],r=0;if(n)return n.call(e);if(e&&typeof e.length=="number")return{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")},s=e("./lib/dom"),o=e("./lib/event"),u=e("./range").Range,a=e("./lib/scroll").preventParentScroll,f="ace_tooltip",l=function(){function e(e){this.isOpen=!1,this.$element=null,this.$parentNode=e}return e.prototype.$init=function(){return this.$element=s.createElement("div"),this.$element.className=f,this.$element.style.display="none",this.$parentNode.appendChild(this.$element),this.$element},e.prototype.getElement=function(){return this.$element||this.$init()},e.prototype.setText=function(e){this.getElement().textContent=e},e.prototype.setHtml=function(e){this.getElement().innerHTML=e},e.prototype.setPosition=function(e,t){this.getElement().style.left=e+"px",this.getElement().style.top=t+"px"},e.prototype.setClassName=function(e){s.addCssClass(this.getElement(),e)},e.prototype.setTheme=function(e){this.$element.className=f+" "+(e.isDark?"ace_dark ":"")+(e.cssClass||"")},e.prototype.show=function(e,t,n){e!=null&&this.setText(e),t!=null&&n!=null&&this.setPosition(t,n),this.isOpen||(this.getElement().style.display="block",this.isOpen=!0)},e.prototype.hide=function(e){this.isOpen&&(this.getElement().style.display="none",this.getElement().className=f,this.isOpen=!1)},e.prototype.getHeight=function(){return this.getElement().offsetHeight},e.prototype.getWidth=function(){return this.getElement().offsetWidth},e.prototype.destroy=function(){this.isOpen=!1,this.$element&&this.$element.parentNode&&this.$element.parentNode.removeChild(this.$element)},e}(),c=function(){function e(){this.popups=[]}return e.prototype.addPopup=function(e){this.popups.push(e),this.updatePopups()},e.prototype.removePopup=function(e){var t=this.popups.indexOf(e);t!==-1&&(this.popups.splice(t,1),this.updatePopups())},e.prototype.updatePopups=function(){var e,t,n,r;this.popups.sort(function(e,t){return t.priority-e.priority});var s=[];try{for(var o=i(this.popups),u=o.next();!u.done;u=o.next()){var a=u.value,f=!0;try{for(var l=(n=void 0,i(s)),c=l.next();!c.done;c=l.next()){var h=c.value;if(this.doPopupsOverlap(h,a)){f=!1;break}}}catch(p){n={error:p}}finally{try{c&&!c.done&&(r=l.return)&&r.call(l)}finally{if(n)throw n.error}}f?s.push(a):a.hide()}}catch(d){e={error:d}}finally{try{u&&!u.done&&(t=o.return)&&t.call(o)}finally{if(e)throw e.error}}},e.prototype.doPopupsOverlap=function(e,t){var n=e.getElement().getBoundingClientRect(),r=t.getElement().getBoundingClientRect();return n.leftr.left&&n.topr.top},e}(),h=new c;t.popupManager=h,t.Tooltip=l;var p=function(e){function t(t){t===void 0&&(t=document.body);var n=e.call(this,t)||this;n.timeout=undefined,n.lastT=0,n.idleTime=350,n.lastEvent=undefined,n.onMouseOut=n.onMouseOut.bind(n),n.onMouseMove=n.onMouseMove.bind(n),n.waitForHover=n.waitForHover.bind(n),n.hide=n.hide.bind(n);var r=n.getElement();return r.style.whiteSpace="pre-wrap",r.style.pointerEvents="auto",r.addEventListener("mouseout",n.onMouseOut),r.tabIndex=-1,r.addEventListener("blur",function(){r.contains(document.activeElement)||this.hide()}.bind(n)),r.addEventListener("wheel",a),n}return r(t,e),t.prototype.addToEditor=function(e){e.on("mousemove",this.onMouseMove),e.on("mousedown",this.hide),e.renderer.getMouseEventTarget().addEventListener("mouseout",this.onMouseOut,!0)},t.prototype.removeFromEditor=function(e){e.off("mousemove",this.onMouseMove),e.off("mousedown",this.hide),e.renderer.getMouseEventTarget().removeEventListener("mouseout",this.onMouseOut,!0),this.timeout&&(clearTimeout(this.timeout),this.timeout=null)},t.prototype.onMouseMove=function(e,t){this.lastEvent=e,this.lastT=Date.now();var n=t.$mouseHandler.isMousePressed;if(this.isOpen){var r=this.lastEvent&&this.lastEvent.getDocumentPosition();(!this.range||!this.range.contains(r.row,r.column)||n||this.isOutsideOfText(this.lastEvent))&&this.hide()}if(this.timeout||n)return;this.lastEvent=e,this.timeout=setTimeout(this.waitForHover,this.idleTime)},t.prototype.waitForHover=function(){this.timeout&&clearTimeout(this.timeout);var e=Date.now()-this.lastT;if(this.idleTime-e>10){this.timeout=setTimeout(this.waitForHover,this.idleTime-e);return}this.timeout=null,this.lastEvent&&!this.isOutsideOfText(this.lastEvent)&&this.$gatherData(this.lastEvent,this.lastEvent.editor)},t.prototype.isOutsideOfText=function(e){var t=e.editor,n=e.getDocumentPosition(),r=t.session.getLine(n.row);if(n.column==r.length){var i=t.renderer.pixelToScreenCoordinates(e.clientX,e.clientY),s=t.session.documentToScreenPosition(n.row,n.column);if(s.column!=i.column||s.row!=i.row)return!0}return!1},t.prototype.setDataProvider=function(e){this.$gatherData=e},t.prototype.showForRange=function(e,t,n,r){var i=10;if(r&&r!=this.lastEvent)return;if(this.isOpen&&document.activeElement==this.getElement())return;var s=e.renderer;this.isOpen||(h.addPopup(this),this.$registerCloseEvents(),this.setTheme(s.theme)),this.isOpen=!0,this.addMarker(t,e.session),this.range=u.fromPoints(t.start,t.end);var o=s.textToScreenCoordinates(t.start.row,t.start.column),a=s.scroller.getBoundingClientRect();o.pageXt.session.documentToScreenRow(a.row,a.column))return f()}r.showTooltip(i);if(!r.isOpen)return;t.on("mousewheel",f);if(e.$tooltipFollowsMouse)l(u);else{var c=u.getGutterRow(),h=n.$lines.get(c);if(h){var p=h.element.querySelector(".ace_gutter_annotation"),d=p.getBoundingClientRect(),v=r.getElement().style;v.left=d.right+"px",v.top=d.bottom+"px"}else l(u)}}function f(){i&&(i=clearTimeout(i)),r.isOpen&&(r.hideTooltip(),t.off("mousewheel",f))}function l(e){r.setPosition(e.x,e.y)}var t=e.editor,n=t.renderer.$gutterLayer,r=new c(t);e.editor.setDefaultHandler("guttermousedown",function(r){if(!t.isFocused()||r.getButton()!=0)return;var i=n.getRegion(r);if(i=="foldWidgets")return;var s=r.getDocumentPosition().row,o=t.session.selection;if(r.getShiftKey())o.selectTo(s,0);else{if(r.domEvent.detail==2)return t.selectAll(),r.preventDefault();e.$clickSelection=t.selection.getLineRange(s)}return e.setState("selectByLines"),e.captureMouse(r),r.preventDefault()});var i,u;e.editor.setDefaultHandler("guttermousemove",function(t){var n=t.domEvent.target||t.domEvent.srcElement;if(s.hasCssClass(n,"ace_fold-widget"))return f();r.isOpen&&e.$tooltipFollowsMouse&&l(t),u=t;if(i)return;i=setTimeout(function(){i=null,u&&!e.isMousePressed?a():f()},50)}),o.addListener(t.renderer.$gutter,"mouseout",function(e){u=null;if(!r.isOpen||i)return;i=setTimeout(function(){i=null,f()},50)},t),t.on("changeSession",f),t.on("input",f)}var r=this&&this.__extends||function(){var e=function(t,n){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},e(t,n)};return function(t,n){function r(){this.constructor=t}if(typeof n!="function"&&n!==null)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");e(t,n),t.prototype=n===null?Object.create(n):(r.prototype=n.prototype,new r)}}(),i=this&&this.__values||function(e){var t=typeof Symbol=="function"&&Symbol.iterator,n=t&&e[t],r=0;if(n)return n.call(e);if(e&&typeof e.length=="number")return{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")},s=e("../lib/dom"),o=e("../lib/event"),u=e("../tooltip").Tooltip,a=e("../config").nls,f=e("../lib/lang");t.GutterHandler=l;var c=function(e){function t(t){var n=e.call(this,t.container)||this;return n.editor=t,n}return r(t,e),t.prototype.setPosition=function(e,t){var n=window.innerWidth||document.documentElement.clientWidth,r=window.innerHeight||document.documentElement.clientHeight,i=this.getWidth(),s=this.getHeight();e+=15,t+=15,e+i>n&&(e-=e+i-n),t+s>r&&(t-=20+s),u.prototype.setPosition.call(this,e,t)},Object.defineProperty(t,"annotationLabels",{get:function(){return{error:{singular:a("gutter-tooltip.aria-label.error.singular","error"),plural:a("gutter-tooltip.aria-label.error.plural","errors")},warning:{singular:a("gutter-tooltip.aria-label.warning.singular","warning"),plural:a("gutter-tooltip.aria-label.warning.plural","warnings")},info:{singular:a("gutter-tooltip.aria-label.info.singular","information message"),plural:a("gutter-tooltip.aria-label.info.plural","information messages")}}},enumerable:!1,configurable:!0}),t.prototype.showTooltip=function(e){var n,r=this.editor.renderer.$gutterLayer,i=r.$annotations[e],o;i?o={displayText:Array.from(i.displayText),type:Array.from(i.type)}:o={displayText:[],type:[]};var u=r.session.getFoldLine(e);if(u&&r.$showFoldedAnnotations){var a={error:[],warning:[],info:[]},f;for(var l=e+1;l<=u.end.row;l++){if(!r.$annotations[l])continue;for(var c=0;ca?S=null:r-S>=u&&(t.renderer.scrollCursorIntoView(),S=null)}}function N(e,n){var r=Date.now(),i=t.renderer.layerConfig.lineHeight,s=t.renderer.layerConfig.characterWidth,u=t.renderer.scroller.getBoundingClientRect(),a={x:{left:p-u.left,right:u.right-p},y:{top:d-u.top,bottom:u.bottom-d}},f=Math.min(a.x.left,a.x.right),l=Math.min(a.y.top,a.y.bottom),c={row:e.row,column:e.column};f/s<=2&&(c.column+=a.x.left=o&&t.renderer.scrollCursorIntoView(c):E=r:E=null}function C(){var e=g;g=t.renderer.screenToTextCoordinates(p,d),T(g,e),N(g,e)}function k(){m=t.selection.toOrientedRange(),h=t.session.addMarker(m,"ace_selection",t.getSelectionStyle()),t.clearSelection(),t.isFocused()&&t.renderer.$cursorLayer.setBlinking(!1),clearInterval(v),C(),v=setInterval(C,20),y=0,i.addListener(document,"mousemove",O)}function L(){clearInterval(v),t.session.removeMarker(h),h=null,t.selection.fromOrientedRange(m),t.isFocused()&&!w&&t.$resetCursorStyle(),m=null,g=null,y=0,E=null,S=null,i.removeListener(document,"mousemove",O)}function O(){A==null&&(A=setTimeout(function(){A!=null&&h&&L()},20))}function M(e){var t=e.types;return!t||Array.prototype.some.call(t,function(e){return e=="text/plain"||e=="Text"})}function _(e){var t=["copy","copymove","all","uninitialized"],n=["move","copymove","linkmove","all","uninitialized"],r=s.isMac?e.altKey:e.ctrlKey,i="uninitialized";try{i=e.dataTransfer.effectAllowed.toLowerCase()}catch(e){}var o="none";return r&&t.indexOf(i)>=0?o="copy":n.indexOf(i)>=0?o="move":t.indexOf(i)>=0&&(o="copy"),o}var t=e.editor,n=r.createElement("div");n.style.cssText="top:-100px;position:absolute;z-index:2147483647;opacity:0.5",n.textContent="\u00a0";var f=["dragWait","dragWaitEnd","startDrag","dragReadyEnd","onMouseDrag"];f.forEach(function(t){e[t]=this[t]},this),t.on("mousedown",this.onMouseDown.bind(e));var c=t.container,h,p,d,v,m,g,y=0,b,w,E,S,x;this.onDragStart=function(e){if(this.cancelDrag||!c.draggable){var r=this;return setTimeout(function(){r.startSelect(),r.captureMouse(e)},0),e.preventDefault()}m=t.getSelectionRange();var i=e.dataTransfer;i.effectAllowed=t.getReadOnly()?"copy":"copyMove",t.container.appendChild(n),i.setDragImage&&i.setDragImage(n,0,0),setTimeout(function(){t.container.removeChild(n)}),i.clearData(),i.setData("Text",t.session.getTextRange()),w=!0,this.setState("drag")},this.onDragEnd=function(e){c.draggable=!1,w=!1,this.setState(null);if(!t.getReadOnly()){var n=e.dataTransfer.dropEffect;!b&&n=="move"&&t.session.remove(t.getSelectionRange()),t.$resetCursorStyle()}this.editor.unsetStyle("ace_dragging"),this.editor.renderer.setCursorStyle("")},this.onDragEnter=function(e){if(t.getReadOnly()||!M(e.dataTransfer))return;return p=e.clientX,d=e.clientY,h||k(),y++,e.dataTransfer.dropEffect=b=_(e),i.preventDefault(e)},this.onDragOver=function(e){if(t.getReadOnly()||!M(e.dataTransfer))return;return p=e.clientX,d=e.clientY,h||(k(),y++),A!==null&&(A=null),e.dataTransfer.dropEffect=b=_(e),i.preventDefault(e)},this.onDragLeave=function(e){y--;if(y<=0&&h)return L(),b=null,i.preventDefault(e)},this.onDrop=function(e){if(!g)return;var n=e.dataTransfer;if(w)switch(b){case"move":m.contains(g.row,g.column)?m={start:g,end:g}:m=t.moveText(m,g);break;case"copy":m=t.moveText(m,g,!0)}else{var r=n.getData("Text");m={start:g,end:t.session.insert(g,r)},t.focus(),b=null}return L(),i.preventDefault(e)},i.addListener(c,"dragstart",this.onDragStart.bind(e),t),i.addListener(c,"dragend",this.onDragEnd.bind(e),t),i.addListener(c,"dragenter",this.onDragEnter.bind(e),t),i.addListener(c,"dragover",this.onDragOver.bind(e),t),i.addListener(c,"dragleave",this.onDragLeave.bind(e),t),i.addListener(c,"drop",this.onDrop.bind(e),t);var A=null}function l(e,t,n,r){return Math.sqrt(Math.pow(n-e,2)+Math.pow(r-t,2))}var r=e("../lib/dom"),i=e("../lib/event"),s=e("../lib/useragent"),o=200,u=200,a=5;(function(){this.dragWait=function(){var e=Date.now()-this.mousedownEvent.time;e>this.editor.getDragDelay()&&this.startDrag()},this.dragWaitEnd=function(){var e=this.editor.container;e.draggable=!1,this.startSelect(this.mousedownEvent.getDocumentPosition()),this.selectEnd()},this.dragReadyEnd=function(e){this.editor.$resetCursorStyle(),this.editor.unsetStyle("ace_dragging"),this.editor.renderer.setCursorStyle(""),this.dragWaitEnd()},this.startDrag=function(){this.cancelDrag=!1;var e=this.editor,t=e.container;t.draggable=!0,e.renderer.$cursorLayer.setBlinking(!1),e.setStyle("ace_dragging");var n=s.isWin?"default":"move";e.renderer.setCursorStyle(n),this.setState("dragReady")},this.onMouseDrag=function(e){var t=this.editor.container;if(s.isIE&&this.state=="dragReady"){var n=l(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y);n>3&&t.dragDrop()}if(this.state==="dragWait"){var n=l(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y);n>0&&(t.draggable=!1,this.startSelect(this.mousedownEvent.getDocumentPosition()))}},this.onMouseDown=function(e){if(!this.$dragEnabled)return;this.mousedownEvent=e;var t=this.editor,n=e.inSelection(),r=e.getButton(),i=e.domEvent.detail||1;if(i===1&&r===0&&n){if(e.editor.inMultiSelectMode&&(e.getAccelKey()||e.getShiftKey()))return;this.mousedownEvent.time=Date.now();var o=e.domEvent.target||e.domEvent.srcElement;"unselectable"in o&&(o.unselectable="on");if(t.getDragDelay()){if(s.isWebKit){this.cancelDrag=!0;var u=t.container;u.draggable=!0}this.setState("dragWait")}else this.startDrag();this.captureMouse(e,this.onMouseDrag.bind(this)),e.defaultPrevented=!0}}}).call(f.prototype),t.DragdropHandler=f}),ace.define("ace/mouse/touch_handler",["require","exports","module","ace/mouse/mouse_event","ace/lib/event","ace/lib/dom"],function(e,t,n){"use strict";var r=e("./mouse_event").MouseEvent,i=e("../lib/event"),s=e("../lib/dom");t.addTouchListeners=function(e,t){function b(){var e=window.navigator&&window.navigator.clipboard,r=!1,i=function(){var n=t.getCopyText(),i=t.session.getUndoManager().hasUndo();y.replaceChild(s.buildDom(r?["span",!n&&o("selectall")&&["span",{"class":"ace_mobile-button",action:"selectall"},"Select All"],n&&o("copy")&&["span",{"class":"ace_mobile-button",action:"copy"},"Copy"],n&&o("cut")&&["span",{"class":"ace_mobile-button",action:"cut"},"Cut"],e&&o("paste")&&["span",{"class":"ace_mobile-button",action:"paste"},"Paste"],i&&o("undo")&&["span",{"class":"ace_mobile-button",action:"undo"},"Undo"],o("find")&&["span",{"class":"ace_mobile-button",action:"find"},"Find"],o("openCommandPalette")&&["span",{"class":"ace_mobile-button",action:"openCommandPalette"},"Palette"]]:["span"]),y.firstChild)},o=function(e){return t.commands.canExecute(e,t)},u=function(n){var s=n.target.getAttribute("action");if(s=="more"||!r)return r=!r,i();if(s=="paste")e.readText().then(function(e){t.execCommand(s,e)});else if(s){if(s=="cut"||s=="copy")e?e.writeText(t.getCopyText()):document.execCommand("copy");t.execCommand(s)}y.firstChild.style.display="none",r=!1,s!="openCommandPalette"&&t.focus()};y=s.buildDom(["div",{"class":"ace_mobile-menu",ontouchstart:function(e){n="menu",e.stopPropagation(),e.preventDefault(),t.textInput.focus()},ontouchend:function(e){e.stopPropagation(),e.preventDefault(),u(e)},onclick:u},["span"],["span",{"class":"ace_mobile-button",action:"more"},"..."]],t.container)}function w(){if(!t.getOption("enableMobileMenu")){y&&E();return}y||b();var e=t.selection.cursor,n=t.renderer.textToScreenCoordinates(e.row,e.column),r=t.renderer.textToScreenCoordinates(0,0).pageX,i=t.renderer.scrollLeft,s=t.container.getBoundingClientRect();y.style.top=n.pageY-s.top-3+"px",n.pageX-s.left=2?t.selection.getLineRange(p.row):t.session.getBracketRange(p);e&&!e.isEmpty()?t.selection.setRange(e):t.selection.selectWord(),n="wait"}function T(){h+=60,c=setInterval(function(){h--<=0&&(clearInterval(c),c=null),Math.abs(v)<.01&&(v=0),Math.abs(m)<.01&&(m=0),h<20&&(v=.9*v),h<20&&(m=.9*m);var e=t.session.getScrollTop();t.renderer.scrollBy(10*v,10*m),e==t.session.getScrollTop()&&(h=0)},10)}var n="scroll",o,u,a,f,l,c,h=0,p,d=0,v=0,m=0,g,y;i.addListener(e,"contextmenu",function(e){if(!g)return;var n=t.textInput.getElement();n.focus()},t),i.addListener(e,"touchstart",function(e){var i=e.touches;if(l||i.length>1){clearTimeout(l),l=null,a=-1,n="zoom";return}g=t.$mouseHandler.isMousePressed=!0;var s=t.renderer.layerConfig.lineHeight,c=t.renderer.layerConfig.lineHeight,y=e.timeStamp;f=y;var b=i[0],w=b.clientX,E=b.clientY;Math.abs(o-w)+Math.abs(u-E)>s&&(a=-1),o=e.clientX=w,u=e.clientY=E,v=m=0;var T=new r(e,t);p=T.getDocumentPosition();if(y-a<500&&i.length==1&&!h)d++,e.preventDefault(),e.button=0,x();else{d=0;var N=t.selection.cursor,C=t.selection.isEmpty()?N:t.selection.anchor,k=t.renderer.$cursorLayer.getPixelPosition(N,!0),L=t.renderer.$cursorLayer.getPixelPosition(C,!0),A=t.renderer.scroller.getBoundingClientRect(),O=t.renderer.layerConfig.offset,M=t.renderer.scrollLeft,_=function(e,t){return e/=c,t=t/s-.75,e*e+t*t};if(e.clientXP?"cursor":"anchor"),P<3.5?n="anchor":D<3.5?n="cursor":n="scroll",l=setTimeout(S,450)}a=y},t),i.addListener(e,"touchend",function(e){g=t.$mouseHandler.isMousePressed=!1,c&&clearInterval(c),n=="zoom"?(n="",h=0):l?(t.selection.moveToPosition(p),h=0,w()):n=="scroll"?(T(),E()):w(),clearTimeout(l),l=null},t),i.addListener(e,"touchmove",function(e){l&&(clearTimeout(l),l=null);var i=e.touches;if(i.length>1||n=="zoom")return;var s=i[0],a=o-s.clientX,c=u-s.clientY;if(n=="wait"){if(!(a*a+c*c>4))return e.preventDefault();n="cursor"}o=s.clientX,u=s.clientY,e.clientX=s.clientX,e.clientY=s.clientY;var h=e.timeStamp,p=h-f;f=h;if(n=="scroll"){var d=new r(e,t);d.speed=1,d.wheelX=a,d.wheelY=c,10*Math.abs(a)0)if(g==16){for(w=b;w-1){for(w=b;w=0;C--){if(r[C]!=N)break;t[C]=s}}}function I(e,t,n){if(o=e){u=i+1;while(u=e)u++;for(a=i,l=u-1;a=t.length||(o=n[r-1])!=b&&o!=w||(c=t[r+1])!=b&&c!=w)return E;return u&&(c=w),c==o?c:E;case k:o=r>0?n[r-1]:S;if(o==b&&r+10&&n[r-1]==b)return b;if(u)return E;p=r+1,h=t.length;while(p=1425&&d<=2303||d==64286;o=t[p];if(v&&(o==y||o==T))return y}if(r<1||(o=t[r-1])==S)return E;return n[r-1];case S:return u=!1,f=!0,s;case x:return l=!0,E;case O:case M:case D:case P:case _:u=!1;case H:return E}}function R(e){var t=e.charCodeAt(0),n=t>>8;return n==0?t>191?g:B[t]:n==5?/[\u0591-\u05f4]/.test(e)?y:g:n==6?/[\u0610-\u061a\u064b-\u065f\u06d6-\u06e4\u06e7-\u06ed]/.test(e)?A:/[\u0660-\u0669\u066b-\u066c]/.test(e)?w:t==1642?L:/[\u06f0-\u06f9]/.test(e)?b:T:n==32&&t<=8287?j[t&255]:n==254?t>=65136?T:E:E}function U(e){return e>="\u064b"&&e<="\u0655"}var r=["\u0621","\u0641"],i=["\u063a","\u064a"],s=0,o=0,u=!1,a=!1,f=!1,l=!1,c=!1,h=!1,p=[[0,3,0,1,0,0,0],[0,3,0,1,2,2,0],[0,3,0,17,2,0,1],[0,3,5,5,4,1,0],[0,3,21,21,4,0,1],[0,3,5,5,4,2,0]],d=[[2,0,1,1,0,1,0],[2,0,1,1,0,2,0],[2,0,2,1,3,2,0],[2,0,2,33,3,1,1]],v=0,m=1,g=0,y=1,b=2,w=3,E=4,S=5,x=6,T=7,N=8,C=9,k=10,L=11,A=12,O=13,M=14,_=15,D=16,P=17,H=18,B=[H,H,H,H,H,H,H,H,H,x,S,x,N,S,H,H,H,H,H,H,H,H,H,H,H,H,H,H,S,S,S,x,N,E,E,L,L,L,E,E,E,E,E,k,C,k,C,C,b,b,b,b,b,b,b,b,b,b,C,E,E,E,E,E,E,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,E,E,E,E,E,E,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,E,E,E,E,H,H,H,H,H,H,S,H,H,H,H,H,H,H,H,H,H,H,H,H,H,H,H,H,H,H,H,H,H,H,H,H,H,C,E,L,L,L,L,E,E,E,E,g,E,E,H,E,E,L,L,b,b,E,g,E,E,E,b,g,E,E,E,E,E],j=[N,N,N,N,N,N,N,N,N,N,N,H,H,H,g,y,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,N,S,O,M,_,D,P,C,L,L,L,L,L,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,C,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,N];t.L=g,t.R=y,t.EN=b,t.ON_R=3,t.AN=4,t.R_H=5,t.B=6,t.RLE=7,t.DOT="\u00b7",t.doBidiReorder=function(e,n,r){if(e.length<2)return{};var i=e.split(""),o=new Array(i.length),u=new Array(i.length),a=[];s=r?m:v,F(i,a,i.length,n);for(var f=0;fT&&n[f]0&&i[f-1]==="\u0644"&&/\u0622|\u0623|\u0625|\u0627/.test(i[f])&&(a[f-1]=a[f]=t.R_H,f++);i[i.length-1]===t.DOT&&(a[i.length-1]=t.B),i[0]==="\u202b"&&(a[0]=t.RLE);for(var f=0;f=0&&(e=this.session.$docRowCache[n])}return e},e.prototype.getSplitIndex=function(){var e=0,t=this.session.$screenRowCache;if(t.length){var n,r=this.session.$getRowCacheIndex(t,this.currentRow);while(this.currentRow-e>0){n=this.session.$getRowCacheIndex(t,this.currentRow-e-1);if(n!==r)break;r=n,e++}}else e=this.currentRow;return e},e.prototype.updateRowLine=function(e,t){e===undefined&&(e=this.getDocumentRow());var n=e===this.session.getLength()-1,s=n?this.EOF:this.EOL;this.wrapIndent=0,this.line=this.session.getLine(e),this.isRtlDir=this.$isRtl||this.line.charAt(0)===this.RLE;if(this.session.$useWrapMode){var o=this.session.$wrapData[e];o&&(t===undefined&&(t=this.getSplitIndex()),t>0&&o.length?(this.wrapIndent=o.indent,this.wrapOffset=this.wrapIndent*this.charWidths[r.L],this.line=tt?this.session.getOverwrite()?e:e-1:t,i=r.getVisualFromLogicalIdx(n,this.bidiMap),s=this.bidiMap.bidiLevels,o=0;!this.session.getOverwrite()&&e<=t&&s[i]%2!==0&&i++;for(var u=0;ut&&s[i]%2===0&&(o+=this.charWidths[s[i]]),this.wrapIndent&&(o+=this.isRtlDir?-1*this.wrapOffset:this.wrapOffset),this.isRtlDir&&(o+=this.rtlLineOffset),o},e.prototype.getSelections=function(e,t){var n=this.bidiMap,r=n.bidiLevels,i,s=[],o=0,u=Math.min(e,t)-this.wrapIndent,a=Math.max(e,t)-this.wrapIndent,f=!1,l=!1,c=0;this.wrapIndent&&(o+=this.isRtlDir?-1*this.wrapOffset:this.wrapOffset);for(var h,p=0;p=u&&hn+s/2){n+=s;if(r===i.length-1){s=0;break}s=this.charWidths[i[++r]]}return r>0&&i[r-1]%2!==0&&i[r]%2===0?(e0&&i[r-1]%2===0&&i[r]%2!==0?t=1+(e>n?this.bidiMap.logicalFromVisual[r]:this.bidiMap.logicalFromVisual[r-1]):this.isRtlDir&&r===i.length-1&&s===0&&i[r-1]%2===0||!this.isRtlDir&&r===0&&i[r]%2!==0?t=1+this.bidiMap.logicalFromVisual[r]:(r>0&&i[r-1]%2!==0&&s!==0&&r--,t=this.bidiMap.logicalFromVisual[r]),t===0&&this.isRtlDir&&t++,t+this.wrapIndent},e}();t.BidiHandler=o}),ace.define("ace/selection",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/lib/event_emitter","ace/range"],function(e,t,n){"use strict";var r=e("./lib/oop"),i=e("./lib/lang"),s=e("./lib/event_emitter").EventEmitter,o=e("./range").Range,u=function(){function e(e){this.session=e,this.doc=e.getDocument(),this.clearSelection(),this.cursor=this.lead=this.doc.createAnchor(0,0),this.anchor=this.doc.createAnchor(0,0),this.$silent=!1;var t=this;this.cursor.on("change",function(e){t.$cursorChanged=!0,t.$silent||t._emit("changeCursor"),!t.$isEmpty&&!t.$silent&&t._emit("changeSelection"),!t.$keepDesiredColumnOnChange&&e.old.column!=e.value.column&&(t.$desiredColumn=null)}),this.anchor.on("change",function(){t.$anchorChanged=!0,!t.$isEmpty&&!t.$silent&&t._emit("changeSelection")})}return e.prototype.isEmpty=function(){return this.$isEmpty||this.anchor.row==this.lead.row&&this.anchor.column==this.lead.column},e.prototype.isMultiLine=function(){return!this.$isEmpty&&this.anchor.row!=this.cursor.row},e.prototype.getCursor=function(){return this.lead.getPosition()},e.prototype.setAnchor=function(e,t){this.$isEmpty=!1,this.anchor.setPosition(e,t)},e.prototype.getAnchor=function(){return this.$isEmpty?this.getSelectionLead():this.anchor.getPosition()},e.prototype.getSelectionLead=function(){return this.lead.getPosition()},e.prototype.isBackwards=function(){var e=this.anchor,t=this.lead;return e.row>t.row||e.row==t.row&&e.column>t.column},e.prototype.getRange=function(){var e=this.anchor,t=this.lead;return this.$isEmpty?o.fromPoints(t,t):this.isBackwards()?o.fromPoints(t,e):o.fromPoints(e,t)},e.prototype.clearSelection=function(){this.$isEmpty||(this.$isEmpty=!0,this._emit("changeSelection"))},e.prototype.selectAll=function(){this.$setSelection(0,0,Number.MAX_VALUE,Number.MAX_VALUE)},e.prototype.setRange=function(e,t){var n=t?e.end:e.start,r=t?e.start:e.end;this.$setSelection(n.row,n.column,r.row,r.column)},e.prototype.$setSelection=function(e,t,n,r){if(this.$silent)return;var i=this.$isEmpty,s=this.inMultiSelectMode;this.$silent=!0,this.$cursorChanged=this.$anchorChanged=!1,this.anchor.setPosition(e,t),this.cursor.setPosition(n,r),this.$isEmpty=!o.comparePoints(this.anchor,this.cursor),this.$silent=!1,this.$cursorChanged&&this._emit("changeCursor"),(this.$cursorChanged||this.$anchorChanged||i!=this.$isEmpty||s)&&this._emit("changeSelection")},e.prototype.$moveSelection=function(e){var t=this.lead;this.$isEmpty&&this.setSelectionAnchor(t.row,t.column),e.call(this)},e.prototype.selectTo=function(e,t){this.$moveSelection(function(){this.moveCursorTo(e,t)})},e.prototype.selectToPosition=function(e){this.$moveSelection(function(){this.moveCursorToPosition(e)})},e.prototype.moveTo=function(e,t){this.clearSelection(),this.moveCursorTo(e,t)},e.prototype.moveToPosition=function(e){this.clearSelection(),this.moveCursorToPosition(e)},e.prototype.selectUp=function(){this.$moveSelection(this.moveCursorUp)},e.prototype.selectDown=function(){this.$moveSelection(this.moveCursorDown)},e.prototype.selectRight=function(){this.$moveSelection(this.moveCursorRight)},e.prototype.selectLeft=function(){this.$moveSelection(this.moveCursorLeft)},e.prototype.selectLineStart=function(){this.$moveSelection(this.moveCursorLineStart)},e.prototype.selectLineEnd=function(){this.$moveSelection(this.moveCursorLineEnd)},e.prototype.selectFileEnd=function(){this.$moveSelection(this.moveCursorFileEnd)},e.prototype.selectFileStart=function(){this.$moveSelection(this.moveCursorFileStart)},e.prototype.selectWordRight=function(){this.$moveSelection(this.moveCursorWordRight)},e.prototype.selectWordLeft=function(){this.$moveSelection(this.moveCursorWordLeft)},e.prototype.getWordRange=function(e,t){if(typeof t=="undefined"){var n=e||this.lead;e=n.row,t=n.column}return this.session.getWordRange(e,t)},e.prototype.selectWord=function(){this.setSelectionRange(this.getWordRange())},e.prototype.selectAWord=function(){var e=this.getCursor(),t=this.session.getAWordRange(e.row,e.column);this.setSelectionRange(t)},e.prototype.getLineRange=function(e,t){var n=typeof e=="number"?e:this.lead.row,r,i=this.session.getFoldLine(n);return i?(n=i.start.row,r=i.end.row):r=n,t===!0?new o(n,0,r,this.session.getLine(r).length):new o(n,0,r+1,0)},e.prototype.selectLine=function(){this.setSelectionRange(this.getLineRange())},e.prototype.moveCursorUp=function(){this.moveCursorBy(-1,0)},e.prototype.moveCursorDown=function(){this.moveCursorBy(1,0)},e.prototype.wouldMoveIntoSoftTab=function(e,t,n){var r=e.column,i=e.column+t;return n<0&&(r=e.column-t,i=e.column),this.session.isTabStop(e)&&this.doc.getLine(e.row).slice(r,i).split(" ").length-1==t},e.prototype.moveCursorLeft=function(){var e=this.lead.getPosition(),t;if(t=this.session.getFoldAt(e.row,e.column,-1))this.moveCursorTo(t.start.row,t.start.column);else if(e.column===0)e.row>0&&this.moveCursorTo(e.row-1,this.doc.getLine(e.row-1).length);else{var n=this.session.getTabSize();this.wouldMoveIntoSoftTab(e,n,-1)&&!this.session.getNavigateWithinSoftTabs()?this.moveCursorBy(0,-n):this.moveCursorBy(0,-1)}},e.prototype.moveCursorRight=function(){var e=this.lead.getPosition(),t;if(t=this.session.getFoldAt(e.row,e.column,1))this.moveCursorTo(t.end.row,t.end.column);else if(this.lead.column==this.doc.getLine(this.lead.row).length)this.lead.row0&&(t.column=r)}}this.moveCursorTo(t.row,t.column)},e.prototype.moveCursorFileEnd=function(){var e=this.doc.getLength()-1,t=this.doc.getLine(e).length;this.moveCursorTo(e,t)},e.prototype.moveCursorFileStart=function(){this.moveCursorTo(0,0)},e.prototype.moveCursorLongWordRight=function(){var e=this.lead.row,t=this.lead.column,n=this.doc.getLine(e),r=n.substring(t);this.session.nonTokenRe.lastIndex=0,this.session.tokenRe.lastIndex=0;var i=this.session.getFoldAt(e,t,1);if(i){this.moveCursorTo(i.end.row,i.end.column);return}this.session.nonTokenRe.exec(r)&&(t+=this.session.nonTokenRe.lastIndex,this.session.nonTokenRe.lastIndex=0,r=n.substring(t));if(t>=n.length){this.moveCursorTo(e,n.length),this.moveCursorRight(),e0&&this.moveCursorWordLeft();return}this.session.tokenRe.exec(s)&&(t-=this.session.tokenRe.lastIndex,this.session.tokenRe.lastIndex=0),this.moveCursorTo(e,t)},e.prototype.$shortWordEndIndex=function(e){var t=0,n,r=/\s/,i=this.session.tokenRe;i.lastIndex=0;if(this.session.tokenRe.exec(e))t=this.session.tokenRe.lastIndex;else{while((n=e[t])&&r.test(n))t++;if(t<1){i.lastIndex=0;while((n=e[t])&&!i.test(n)){i.lastIndex=0,t++;if(r.test(n)){if(t>2){t--;break}while((n=e[t])&&r.test(n))t++;if(t>2)break}}}}return i.lastIndex=0,t},e.prototype.moveCursorShortWordRight=function(){var e=this.lead.row,t=this.lead.column,n=this.doc.getLine(e),r=n.substring(t),i=this.session.getFoldAt(e,t,1);if(i)return this.moveCursorTo(i.end.row,i.end.column);if(t==n.length){var s=this.doc.getLength();do e++,r=this.doc.getLine(e);while(e0&&/^\s*$/.test(r));t=r.length,/\s+$/.test(r)||(r="")}var s=i.stringReverse(r),o=this.$shortWordEndIndex(s);return this.moveCursorTo(e,t-o)},e.prototype.moveCursorWordRight=function(){this.session.$selectLongWords?this.moveCursorLongWordRight():this.moveCursorShortWordRight()},e.prototype.moveCursorWordLeft=function(){this.session.$selectLongWords?this.moveCursorLongWordLeft():this.moveCursorShortWordLeft()},e.prototype.moveCursorBy=function(e,t){var n=this.session.documentToScreenPosition(this.lead.row,this.lead.column),r;t===0&&(e!==0&&(this.session.$bidiHandler.isBidiRow(n.row,this.lead.row)?(r=this.session.$bidiHandler.getPosLeft(n.column),n.column=Math.round(r/this.session.$bidiHandler.charWidths[0])):r=n.column*this.session.$bidiHandler.charWidths[0]),this.$desiredColumn?n.column=this.$desiredColumn:this.$desiredColumn=n.column);if(e!=0&&this.session.lineWidgets&&this.session.lineWidgets[this.lead.row]){var i=this.session.lineWidgets[this.lead.row];e<0?e-=i.rowsAbove||0:e>0&&(e+=i.rowCount-(i.rowsAbove||0))}var s=this.session.screenToDocumentPosition(n.row+e,n.column,r);e!==0&&t===0&&s.row===this.lead.row&&s.column===this.lead.column,this.moveCursorTo(s.row,s.column+t,t===0)},e.prototype.moveCursorToPosition=function(e){this.moveCursorTo(e.row,e.column)},e.prototype.moveCursorTo=function(e,t,n){var r=this.session.getFoldAt(e,t,1);r&&(e=r.start.row,t=r.start.column),this.$keepDesiredColumnOnChange=!0;var i=this.session.getLine(e);/[\uDC00-\uDFFF]/.test(i.charAt(t))&&i.charAt(t-1)&&(this.lead.row==e&&this.lead.column==t+1?t-=1:t+=1),this.lead.setPosition(e,t),this.$keepDesiredColumnOnChange=!1,n||(this.$desiredColumn=null)},e.prototype.moveCursorToScreen=function(e,t,n){var r=this.session.screenToDocumentPosition(e,t);this.moveCursorTo(r.row,r.column,n)},e.prototype.detach=function(){this.lead.detach(),this.anchor.detach()},e.prototype.fromOrientedRange=function(e){this.setSelectionRange(e,e.cursor==e.start),this.$desiredColumn=e.desiredColumn||this.$desiredColumn},e.prototype.toOrientedRange=function(e){var t=this.getRange();return e?(e.start.column=t.start.column,e.start.row=t.start.row,e.end.column=t.end.column,e.end.row=t.end.row):e=t,e.cursor=this.isBackwards()?e.start:e.end,e.desiredColumn=this.$desiredColumn,e},e.prototype.getRangeOfMovements=function(e){var t=this.getCursor();try{e(this);var n=this.getCursor();return o.fromPoints(t,n)}catch(r){return o.fromPoints(t,t)}finally{this.moveCursorToPosition(t)}},e.prototype.toJSON=function(){if(this.rangeCount)var e=this.ranges.map(function(e){var t=e.clone();return t.isBackwards=e.cursor==e.start,t});else{var e=this.getRange();e.isBackwards=this.isBackwards()}return e},e.prototype.fromJSON=function(e){if(e.start==undefined){if(this.rangeList&&e.length>1){this.toSingleRange(e[0]);for(var t=e.length;t--;){var n=o.fromPoints(e[t].start,e[t].end);e[t].isBackwards&&(n.cursor=n.start),this.addRange(n,!0)}return}e=e[0]}this.rangeList&&this.toSingleRange(e),this.setSelectionRange(e,e.isBackwards)},e.prototype.isEqual=function(e){if((e.length||this.rangeCount)&&e.length!=this.rangeCount)return!1;if(!e.length||!this.ranges)return this.getRange().isEqual(e);for(var t=this.ranges.length;t--;)if(!this.ranges[t].isEqual(e[t]))return!1;return!0},e}();u.prototype.setSelectionAnchor=u.prototype.setAnchor,u.prototype.getSelectionAnchor=u.prototype.getAnchor,u.prototype.setSelectionRange=u.prototype.setRange,r.implement(u.prototype,s),t.Selection=u}),ace.define("ace/tokenizer",["require","exports","module","ace/lib/report_error"],function(e,t,n){"use strict";var r=e("./lib/report_error").reportError,i=2e3,s=function(){function e(e){this.splitRegex,this.states=e,this.regExps={},this.matchMappings={};for(var t in this.states){var n=this.states[t],r=[],i=0,s=this.matchMappings[t]={defaultToken:"text"},o="g",u=[];for(var a=0;a1?f.onMatch=this.$applyToken:f.onMatch=f.token),c>1&&(/\\\d/.test(f.regex)?l=f.regex.replace(/\\([0-9]+)/g,function(e,t){return"\\"+(parseInt(t,10)+i+1)}):(c=1,l=this.removeCapturingGroups(f.regex)),!f.splitRegex&&typeof f.token!="string"&&u.push(f)),s[i]=a,i+=c,r.push(l),f.onMatch||(f.onMatch=null)}r.length||(s[0]=0,r.push("$")),u.forEach(function(e){e.splitRegex=this.createSplitterRegexp(e.regex,o)},this),this.regExps[t]=new RegExp("("+r.join(")|(")+")|($)",o)}}return e.prototype.$setMaxTokenCount=function(e){i=e|0},e.prototype.$applyToken=function(e){var t=this.splitRegex.exec(e).slice(1),n=this.token.apply(this,t);if(typeof n=="string")return[{type:n,value:e}];var r=[];for(var i=0,s=n.length;il){var g=e.substring(l,m-v.length);h.type==p?h.value+=g:(h.type&&f.push(h),h={type:p,value:g})}for(var y=0;yi){c>2*e.length&&this.reportError("infinite loop with in ace tokenizer",{startState:t,line:e});while(l1&&n[0]!==r&&n.unshift("#tmp",r),{tokens:f,state:n.length?n:r}},e}();s.prototype.reportError=r,t.Tokenizer=s}),ace.define("ace/mode/text_highlight_rules",["require","exports","module","ace/lib/deep_copy"],function(e,t,n){"use strict";var r=e("../lib/deep_copy").deepCopy,i;i=function(){this.$rules={start:[{token:"empty_line",regex:"^$"},{defaultToken:"text"}]}},function(){this.addRules=function(e,t){if(!t){for(var n in e)this.$rules[n]=e[n];return}for(var n in e){var r=e[n];for(var i=0;i=this.$rowTokens.length){this.$row+=1,e||(e=this.$session.getLength());if(this.$row>=e)return this.$row=e-1,null;this.$rowTokens=this.$session.getTokens(this.$row),this.$tokenIndex=0}return this.$rowTokens[this.$tokenIndex]},e.prototype.getCurrentToken=function(){return this.$rowTokens[this.$tokenIndex]},e.prototype.getCurrentTokenRow=function(){return this.$row},e.prototype.getCurrentTokenColumn=function(){var e=this.$rowTokens,t=this.$tokenIndex,n=e[t].start;if(n!==undefined)return n;n=0;while(t>0)t-=1,n+=e[t].value.length;return n},e.prototype.getCurrentTokenPosition=function(){return{row:this.$row,column:this.getCurrentTokenColumn()}},e.prototype.getCurrentTokenRange=function(){var e=this.$rowTokens[this.$tokenIndex],t=this.getCurrentTokenColumn();return new r(this.$row,t,this.$row,t+e.value.length)},e}();t.TokenIterator=i}),ace.define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("../../token_iterator").TokenIterator,o=e("../../lib/lang"),u=["text","paren.rparen","rparen","paren","punctuation.operator"],a=["text","paren.rparen","rparen","paren","punctuation.operator","comment"],f,l={},c={'"':'"',"'":"'"},h=function(e){var t=-1;e.multiSelect&&(t=e.selection.index,l.rangeCount!=e.multiSelect.rangeCount&&(l={rangeCount:e.multiSelect.rangeCount}));if(l[t])return f=l[t];f=l[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:"",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:"",maybeInsertedLineEnd:""}},p=function(e,t,n,r){var i=e.end.row-e.start.row;return{text:n+t+r,selection:[0,e.start.column+1,i,e.end.column+(i?0:1)]}},d;d=function(e){e=e||{},this.add("braces","insertion",function(t,n,r,i,s){var u=r.getCursorPosition(),a=i.doc.getLine(u.row);if(s=="{"){h(r);var l=r.getSelectionRange(),c=i.doc.getTextRange(l),v=i.getTokenAt(u.row,u.column);if(c!==""&&c!=="{"&&r.getWrapBehavioursEnabled())return p(l,c,"{","}");if(v&&/(?:string)\.quasi|\.xml/.test(v.type)){var m=[/tag\-(?:open|name)/,/attribute\-name/];if(m.some(function(e){return e.test(v.type)})||/(string)\.quasi/.test(v.type)&&v.value[u.column-v.start-1]!=="$")return;return d.recordAutoInsert(r,i,"}"),{text:"{}",selection:[1,1]}}if(d.isSaneInsertion(r,i))return/[\]\}\)]/.test(a[u.column])||r.inMultiSelectMode||e.braces?(d.recordAutoInsert(r,i,"}"),{text:"{}",selection:[1,1]}):(d.recordMaybeInsert(r,i,"{"),{text:"{",selection:[1,1]})}else if(s=="}"){h(r);var g=a.substring(u.column,u.column+1);if(g=="}"){var y=i.$findOpeningBracket("}",{column:u.column+1,row:u.row});if(y!==null&&d.isAutoInsertedClosing(u,a,s))return d.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}else{if(s=="\n"||s=="\r\n"){h(r);var b="";d.isMaybeInsertedClosing(u,a)&&(b=o.stringRepeat("}",f.maybeInsertedBrackets),d.clearMaybeInsertedClosing());var g=a.substring(u.column,u.column+1);if(g==="}"){var w=i.findMatchingBracket({row:u.row,column:u.column+1},"}");if(!w)return null;var E=this.$getIndent(i.getLine(w.row))}else{if(!b){d.clearMaybeInsertedClosing();return}var E=this.$getIndent(a)}var S=E+i.getTabString();return{text:"\n"+S+"\n"+E+b,selection:[1,S.length,1,S.length]}}d.clearMaybeInsertedClosing()}}),this.add("braces","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="{"){h(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.end.column,i.end.column+1);if(u=="}")return i.end.column++,i;f.maybeInsertedBrackets--}}),this.add("parens","insertion",function(e,t,n,r,i){if(i=="("){h(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return p(s,o,"(",")");if(d.isSaneInsertion(n,r))return d.recordAutoInsert(n,r,")"),{text:"()",selection:[1,1]}}else if(i==")"){h(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==")"){var l=r.$findOpeningBracket(")",{column:u.column+1,row:u.row});if(l!==null&&d.isAutoInsertedClosing(u,a,i))return d.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("parens","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="("){h(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==")")return i.end.column++,i}}),this.add("brackets","insertion",function(e,t,n,r,i){if(i=="["){h(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return p(s,o,"[","]");if(d.isSaneInsertion(n,r))return d.recordAutoInsert(n,r,"]"),{text:"[]",selection:[1,1]}}else if(i=="]"){h(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f=="]"){var l=r.$findOpeningBracket("]",{column:u.column+1,row:u.row});if(l!==null&&d.isAutoInsertedClosing(u,a,i))return d.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("brackets","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="["){h(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u=="]")return i.end.column++,i}}),this.add("string_dquotes","insertion",function(e,t,n,r,i){var s=r.$mode.$quotes||c;if(i.length==1&&s[i]){if(this.lineCommentStart&&this.lineCommentStart.indexOf(i)!=-1)return;h(n);var o=i,u=n.getSelectionRange(),a=r.doc.getTextRange(u);if(a!==""&&(a.length!=1||!s[a])&&n.getWrapBehavioursEnabled())return p(u,a,o,o);if(!a){var f=n.getCursorPosition(),l=r.doc.getLine(f.row),d=l.substring(f.column-1,f.column),v=l.substring(f.column,f.column+1),m=r.getTokenAt(f.row,f.column),g=r.getTokenAt(f.row,f.column+1);if(d=="\\"&&m&&/escape/.test(m.type))return null;var y=m&&/string|escape/.test(m.type),b=!g||/string|escape/.test(g.type),w;if(v==o)w=y!==b,w&&/string\.end/.test(g.type)&&(w=!1);else{if(y&&!b)return null;if(y&&b)return null;var E=r.$mode.tokenRe;E.lastIndex=0;var S=E.test(d);E.lastIndex=0;var x=E.test(v),T=r.$mode.$pairQuotesAfter,N=T&&T[o]&&T[o].test(d);if(!N&&S||x)return null;if(v&&!/[\s;,.})\]\\]/.test(v))return null;var C=l[f.column-2];if(!(d!=o||C!=o&&!E.test(C)))return null;w=!0}return{text:w?o+o:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(e,t,n,r,i){var s=r.$mode.$quotes||c,o=r.doc.getTextRange(i);if(!i.isMultiLine()&&s.hasOwnProperty(o)){h(n);var u=r.doc.getLine(i.start.row),a=u.substring(i.start.column+1,i.start.column+2);if(a==o)return i.end.column++,i}}),e.closeDocComment!==!1&&this.add("doc comment end","insertion",function(e,t,n,r,i){if(e==="doc-start"&&(i==="\n"||i==="\r\n")&&n.selection.isEmpty()){var s=n.getCursorPosition();if(s.column===0)return;var o=r.doc.getLine(s.row),u=r.doc.getLine(s.row+1),a=r.getTokens(s.row),f=0;for(var l=0;l=s.column){if(f===s.column){if(!/\.doc/.test(c.type))return;if(/\*\//.test(c.value)){var h=a[l+1];if(!h||!/\.doc/.test(h.type))return}}var p=s.column-(f-c.value.length),d=c.value.indexOf("*/"),v=c.value.indexOf("/**",d>-1?d+2:0);if(v!==-1&&p>v&&p=d&&p<=v||!/\.doc/.test(c.type))return;break}}var m=this.$getIndent(o);if(/\s*\*/.test(u))return/^\s*\*/.test(o)?{text:i+m+"* ",selection:[1,2+m.length,1,2+m.length]}:{text:i+m+" * ",selection:[1,3+m.length,1,3+m.length]};if(/\/\*\*/.test(o.substring(0,s.column)))return{text:i+m+" * "+i+" "+m+"*/",selection:[1,4+m.length,1,4+m.length]}}})},d.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),r=new s(t,n.row,n.column);if(!this.$matchTokenType(r.getCurrentToken()||"text",u)){if(/[)}\]]/.test(e.session.getLine(n.row)[n.column]))return!0;var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||"text",u))return!1}return r.stepForward(),r.getCurrentTokenRow()!==n.row||this.$matchTokenType(r.getCurrentToken()||"text",a)},d.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},d.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,i,f.autoInsertedLineEnd[0])||(f.autoInsertedBrackets=0),f.autoInsertedRow=r.row,f.autoInsertedLineEnd=n+i.substr(r.column),f.autoInsertedBrackets++},d.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,i)||(f.maybeInsertedBrackets=0),f.maybeInsertedRow=r.row,f.maybeInsertedLineStart=i.substr(0,r.column)+n,f.maybeInsertedLineEnd=i.substr(r.column),f.maybeInsertedBrackets++},d.isAutoInsertedClosing=function(e,t,n){return f.autoInsertedBrackets>0&&e.row===f.autoInsertedRow&&n===f.autoInsertedLineEnd[0]&&t.substr(e.column)===f.autoInsertedLineEnd},d.isMaybeInsertedClosing=function(e,t){return f.maybeInsertedBrackets>0&&e.row===f.maybeInsertedRow&&t.substr(e.column)===f.maybeInsertedLineEnd&&t.substr(0,e.column)==f.maybeInsertedLineStart},d.popAutoInsertedClosing=function(){f.autoInsertedLineEnd=f.autoInsertedLineEnd.substr(1),f.autoInsertedBrackets--},d.clearMaybeInsertedClosing=function(){f&&(f.maybeInsertedBrackets=0,f.maybeInsertedRow=-1)},r.inherits(d,i),t.CstyleBehaviour=d}),ace.define("ace/unicode",["require","exports","module"],function(e,t,n){"use strict";var r=[48,9,8,25,5,0,2,25,48,0,11,0,5,0,6,22,2,30,2,457,5,11,15,4,8,0,2,0,18,116,2,1,3,3,9,0,2,2,2,0,2,19,2,82,2,138,2,4,3,155,12,37,3,0,8,38,10,44,2,0,2,1,2,1,2,0,9,26,6,2,30,10,7,61,2,9,5,101,2,7,3,9,2,18,3,0,17,58,3,100,15,53,5,0,6,45,211,57,3,18,2,5,3,11,3,9,2,1,7,6,2,2,2,7,3,1,3,21,2,6,2,0,4,3,3,8,3,1,3,3,9,0,5,1,2,4,3,11,16,2,2,5,5,1,3,21,2,6,2,1,2,1,2,1,3,0,2,4,5,1,3,2,4,0,8,3,2,0,8,15,12,2,2,8,2,2,2,21,2,6,2,1,2,4,3,9,2,2,2,2,3,0,16,3,3,9,18,2,2,7,3,1,3,21,2,6,2,1,2,4,3,8,3,1,3,2,9,1,5,1,2,4,3,9,2,0,17,1,2,5,4,2,2,3,4,1,2,0,2,1,4,1,4,2,4,11,5,4,4,2,2,3,3,0,7,0,15,9,18,2,2,7,2,2,2,22,2,9,2,4,4,7,2,2,2,3,8,1,2,1,7,3,3,9,19,1,2,7,2,2,2,22,2,9,2,4,3,8,2,2,2,3,8,1,8,0,2,3,3,9,19,1,2,7,2,2,2,22,2,15,4,7,2,2,2,3,10,0,9,3,3,9,11,5,3,1,2,17,4,23,2,8,2,0,3,6,4,0,5,5,2,0,2,7,19,1,14,57,6,14,2,9,40,1,2,0,3,1,2,0,3,0,7,3,2,6,2,2,2,0,2,0,3,1,2,12,2,2,3,4,2,0,2,5,3,9,3,1,35,0,24,1,7,9,12,0,2,0,2,0,5,9,2,35,5,19,2,5,5,7,2,35,10,0,58,73,7,77,3,37,11,42,2,0,4,328,2,3,3,6,2,0,2,3,3,40,2,3,3,32,2,3,3,6,2,0,2,3,3,14,2,56,2,3,3,66,5,0,33,15,17,84,13,619,3,16,2,25,6,74,22,12,2,6,12,20,12,19,13,12,2,2,2,1,13,51,3,29,4,0,5,1,3,9,34,2,3,9,7,87,9,42,6,69,11,28,4,11,5,11,11,39,3,4,12,43,5,25,7,10,38,27,5,62,2,28,3,10,7,9,14,0,89,75,5,9,18,8,13,42,4,11,71,55,9,9,4,48,83,2,2,30,14,230,23,280,3,5,3,37,3,5,3,7,2,0,2,0,2,0,2,30,3,52,2,6,2,0,4,2,2,6,4,3,3,5,5,12,6,2,2,6,67,1,20,0,29,0,14,0,17,4,60,12,5,0,4,11,18,0,5,0,3,9,2,0,4,4,7,0,2,0,2,0,2,3,2,10,3,3,6,4,5,0,53,1,2684,46,2,46,2,132,7,6,15,37,11,53,10,0,17,22,10,6,2,6,2,6,2,6,2,6,2,6,2,6,2,6,2,31,48,0,470,1,36,5,2,4,6,1,5,85,3,1,3,2,2,89,2,3,6,40,4,93,18,23,57,15,513,6581,75,20939,53,1164,68,45,3,268,4,27,21,31,3,13,13,1,2,24,9,69,11,1,38,8,3,102,3,1,111,44,25,51,13,68,12,9,7,23,4,0,5,45,3,35,13,28,4,64,15,10,39,54,10,13,3,9,7,22,4,1,5,66,25,2,227,42,2,1,3,9,7,11171,13,22,5,48,8453,301,3,61,3,105,39,6,13,4,6,11,2,12,2,4,2,0,2,1,2,1,2,107,34,362,19,63,3,53,41,11,5,15,17,6,13,1,25,2,33,4,2,134,20,9,8,25,5,0,2,25,12,88,4,5,3,5,3,5,3,2],i=0,s=[];for(var o=0;o2?r%f!=f-1:r%f==0}}var E=Infinity;w(function(e,t){var n=e.search(/\S/);n!==-1?(ne.length&&(E=e.length)}),u==Infinity&&(u=E,s=!1,o=!1),l&&u%f!=0&&(u=Math.floor(u/f)*f),w(o?m:v)},this.toggleBlockComment=function(e,t,n,r){var i=this.blockComment;if(!i)return;!i.start&&i[0]&&(i=i[0]);var s=new f(t,r.row,r.column),o=s.getCurrentToken(),u=t.selection,a=t.selection.toOrientedRange(),c,h;if(o&&/comment/.test(o.type)){var p,d;while(o&&/comment/.test(o.type)){var v=o.value.indexOf(i.start);if(v!=-1){var m=s.getCurrentTokenRow(),g=s.getCurrentTokenColumn()+v;p=new l(m,g,m,g+i.start.length);break}o=s.stepBackward()}var s=new f(t,r.row,r.column),o=s.getCurrentToken();while(o&&/comment/.test(o.type)){var v=o.value.indexOf(i.end);if(v!=-1){var m=s.getCurrentTokenRow(),g=s.getCurrentTokenColumn()+v;d=new l(m,g,m,g+i.end.length);break}o=s.stepForward()}d&&t.remove(d),p&&(t.remove(p),c=p.start.row,h=-i.start.length)}else h=i.start.length,c=n.start.row,t.insert(n.end,i.end),t.insert(n.start,i.start);a.start.row==c&&(a.start.column+=h),a.end.row==c&&(a.end.column+=h),t.selection.fromOrientedRange(a)},this.getNextLineIndent=function(e,t,n){return this.$getIndent(t)},this.checkOutdent=function(e,t,n){return!1},this.autoOutdent=function(e,t,n){},this.$getIndent=function(e){return e.match(/^\s*/)[0]},this.createWorker=function(e){return null},this.createModeDelegates=function(e){this.$embeds=[],this.$modes={};for(var t in e)if(e[t]){var n=e[t],i=n.prototype.$id,s=r.$modes[i];s||(r.$modes[i]=s=new n),r.$modes[t]||(r.$modes[t]=s),this.$embeds.push(t),this.$modes[t]=s}var o=["toggleBlockComment","toggleCommentLines","getNextLineIndent","checkOutdent","autoOutdent","transformAction","getCompletions"],u=function(e){(function(t){var n=o[e],r=t[n];t[o[e]]=function(){return this.$delegator(n,arguments,r)}})(a)},a=this;for(var t=0;t=0&&t.row=0&&t.column<=e[t.row].length}function s(e,t){t.action!="insert"&&t.action!="remove"&&r(t,"delta.action must be 'insert' or 'remove'"),t.lines instanceof Array||r(t,"delta.lines must be an Array"),(!t.start||!t.end)&&r(t,"delta.start/end must be an present");var n=t.start;i(e,t.start)||r(t,"delta.start must be contained in document");var s=t.end;t.action=="remove"&&!i(e,s)&&r(t,"delta.end must contained in document for 'remove' actions");var o=s.row-n.row,u=s.column-(o==0?n.column:0);(o!=t.lines.length-1||t.lines[o].length!=u)&&r(t,"delta.range must match delta lines")}t.applyDelta=function(e,t,n){var r=t.start.row,i=t.start.column,s=e[r]||"";switch(t.action){case"insert":var o=t.lines;if(o.length===1)e[r]=s.substring(0,i)+t.lines[0]+s.substring(i);else{var u=[r,1].concat(t.lines);e.splice.apply(e,u),e[r]=s.substring(0,i)+e[r],e[r+t.lines.length-1]+=s.substring(i)}break;case"remove":var a=t.end.column,f=t.end.row;r===f?e[r]=s.substring(0,i)+s.substring(a):e.splice(r,f-r+1,s.substring(0,i)+e[f].substring(a))}}}),ace.define("ace/anchor",["require","exports","module","ace/lib/oop","ace/lib/event_emitter"],function(e,t,n){"use strict";function o(e,t,n){var r=n?e.column<=t.column:e.columnthis.row)return;var t=u(e,{row:this.row,column:this.column},this.$insertRight);this.setPosition(t.row,t.column,!0)},e.prototype.setPosition=function(e,t,n){var r;n?r={row:e,column:t}:r=this.$clipPositionToDocument(e,t);if(this.row==r.row&&this.column==r.column)return;var i={row:this.row,column:this.column};this.row=r.row,this.column=r.column,this._signal("change",{old:i,value:r})},e.prototype.detach=function(){this.document.off("change",this.$onChange)},e.prototype.attach=function(e){this.document=e||this.document,this.document.on("change",this.$onChange)},e.prototype.$clipPositionToDocument=function(e,t){var n={};return e>=this.document.getLength()?(n.row=Math.max(0,this.document.getLength()-1),n.column=this.document.getLine(n.row).length):e<0?(n.row=0,n.column=0):(n.row=e,n.column=Math.min(this.document.getLine(n.row).length,Math.max(0,t))),t<0&&(n.column=0),n},e}();s.prototype.$insertRight=!1,r.implement(s.prototype,i),t.Anchor=s}),ace.define("ace/document",["require","exports","module","ace/lib/oop","ace/apply_delta","ace/lib/event_emitter","ace/range","ace/anchor"],function(e,t,n){"use strict";var r=e("./lib/oop"),i=e("./apply_delta").applyDelta,s=e("./lib/event_emitter").EventEmitter,o=e("./range").Range,u=e("./anchor").Anchor,a=function(){function e(e){this.$lines=[""],e.length===0?this.$lines=[""]:Array.isArray(e)?this.insertMergedLines({row:0,column:0},e):this.insert({row:0,column:0},e)}return e.prototype.setValue=function(e){var t=this.getLength()-1;this.remove(new o(0,0,t,this.getLine(t).length)),this.insert({row:0,column:0},e||"")},e.prototype.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},e.prototype.createAnchor=function(e,t){return new u(this,e,t)},e.prototype.$detectNewLine=function(e){var t=e.match(/^.*?(\r\n|\r|\n)/m);this.$autoNewLine=t?t[1]:"\n",this._signal("changeNewLineMode")},e.prototype.getNewLineCharacter=function(){switch(this.$newLineMode){case"windows":return"\r\n";case"unix":return"\n";default:return this.$autoNewLine||"\n"}},e.prototype.setNewLineMode=function(e){if(this.$newLineMode===e)return;this.$newLineMode=e,this._signal("changeNewLineMode")},e.prototype.getNewLineMode=function(){return this.$newLineMode},e.prototype.isNewLine=function(e){return e=="\r\n"||e=="\r"||e=="\n"},e.prototype.getLine=function(e){return this.$lines[e]||""},e.prototype.getLines=function(e,t){return this.$lines.slice(e,t+1)},e.prototype.getAllLines=function(){return this.getLines(0,this.getLength())},e.prototype.getLength=function(){return this.$lines.length},e.prototype.getTextRange=function(e){return this.getLinesForRange(e).join(this.getNewLineCharacter())},e.prototype.getLinesForRange=function(e){var t;if(e.start.row===e.end.row)t=[this.getLine(e.start.row).substring(e.start.column,e.end.column)];else{t=this.getLines(e.start.row,e.end.row),t[0]=(t[0]||"").substring(e.start.column);var n=t.length-1;e.end.row-e.start.row==n&&(t[n]=t[n].substring(0,e.end.column))}return t},e.prototype.insertLines=function(e,t){return console.warn("Use of document.insertLines is deprecated. Use the insertFullLines method instead."),this.insertFullLines(e,t)},e.prototype.removeLines=function(e,t){return console.warn("Use of document.removeLines is deprecated. Use the removeFullLines method instead."),this.removeFullLines(e,t)},e.prototype.insertNewLine=function(e){return console.warn("Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead."),this.insertMergedLines(e,["",""])},e.prototype.insert=function(e,t){return this.getLength()<=1&&this.$detectNewLine(t),this.insertMergedLines(e,this.$split(t))},e.prototype.insertInLine=function(e,t){var n=this.clippedPos(e.row,e.column),r=this.pos(e.row,e.column+t.length);return this.applyDelta({start:n,end:r,action:"insert",lines:[t]},!0),this.clonePos(r)},e.prototype.clippedPos=function(e,t){var n=this.getLength();e===undefined?e=n:e<0?e=0:e>=n&&(e=n-1,t=undefined);var r=this.getLine(e);return t==undefined&&(t=r.length),t=Math.min(Math.max(t,0),r.length),{row:e,column:t}},e.prototype.clonePos=function(e){return{row:e.row,column:e.column}},e.prototype.pos=function(e,t){return{row:e,column:t}},e.prototype.$clipPosition=function(e){var t=this.getLength();return e.row>=t?(e.row=Math.max(0,t-1),e.column=this.getLine(t-1).length):(e.row=Math.max(0,e.row),e.column=Math.min(Math.max(e.column,0),this.getLine(e.row).length)),e},e.prototype.insertFullLines=function(e,t){e=Math.min(Math.max(e,0),this.getLength());var n=0;e0,r=t=0&&this.applyDelta({start:this.pos(e,this.getLine(e).length),end:this.pos(e+1,0),action:"remove",lines:["",""]})},e.prototype.replace=function(e,t){e instanceof o||(e=o.fromPoints(e.start,e.end));if(t.length===0&&e.isEmpty())return e.start;if(t==this.getTextRange(e))return e.end;this.remove(e);var n;return t?n=this.insert(e.start,t):n=e.start,n},e.prototype.applyDeltas=function(e){for(var t=0;t=0;t--)this.revertDelta(e[t])},e.prototype.applyDelta=function(e,t){var n=e.action=="insert";if(n?e.lines.length<=1&&!e.lines[0]:!o.comparePoints(e.start,e.end))return;n&&e.lines.length>2e4?this.$splitAndapplyLargeDelta(e,2e4):(i(this.$lines,e,t),this._signal("change",e))},e.prototype.$safeApplyDelta=function(e){var t=this.$lines.length;(e.action=="remove"&&e.start.row20){n.running=setTimeout(n.$worker,20);break}}n.currentLine=t,r==-1&&(r=t),s<=r&&n.fireUpdateEvent(s,r)}}return e.prototype.setTokenizer=function(e){this.tokenizer=e,this.lines=[],this.states=[],this.start(0)},e.prototype.setDocument=function(e){this.doc=e,this.lines=[],this.states=[],this.stop()},e.prototype.fireUpdateEvent=function(e,t){var n={first:e,last:t};this._signal("update",{data:n})},e.prototype.start=function(e){this.currentLine=Math.min(e||0,this.currentLine,this.doc.getLength()),this.lines.splice(this.currentLine,this.lines.length),this.states.splice(this.currentLine,this.states.length),this.stop(),this.running=setTimeout(this.$worker,700)},e.prototype.scheduleStart=function(){this.running||(this.running=setTimeout(this.$worker,700))},e.prototype.$updateOnChange=function(e){var t=e.start.row,n=e.end.row-t;if(n===0)this.lines[t]=null;else if(e.action=="remove")this.lines.splice(t,n+1,null),this.states.splice(t,n+1,null);else{var r=Array(n+1);r.unshift(t,1),this.lines.splice.apply(this.lines,r),this.states.splice.apply(this.states,r)}this.currentLine=Math.min(t,this.currentLine,this.doc.getLength()),this.stop()},e.prototype.stop=function(){this.running&&clearTimeout(this.running),this.running=!1},e.prototype.getTokens=function(e){return this.lines[e]||this.$tokenizeRow(e)},e.prototype.getState=function(e){return this.currentLine==e&&this.$tokenizeRow(e),this.states[e]||"start"},e.prototype.$tokenizeRow=function(e){var t=this.doc.getLine(e),n=this.states[e-1],r=this.tokenizer.getLineTokens(t,n,e);return this.states[e]+""!=r.state+""?(this.states[e]=r.state,this.lines[e+1]=null,this.currentLine>e+1&&(this.currentLine=e+1)):this.currentLine==e&&(this.currentLine=e+1),this.lines[e]=r.tokens},e.prototype.cleanup=function(){this.running=!1,this.lines=[],this.states=[],this.currentLine=0,this.removeAllListeners()},e}();r.implement(s.prototype,i),t.BackgroundTokenizer=s}),ace.define("ace/search_highlight",["require","exports","module","ace/lib/lang","ace/range"],function(e,t,n){"use strict";var r=e("./lib/lang"),i=e("./range").Range,s=function(){function e(e,t,n){n===void 0&&(n="text"),this.setRegexp(e),this.clazz=t,this.type=n}return e.prototype.setRegexp=function(e){if(this.regExp+""==e+"")return;this.regExp=e,this.cache=[]},e.prototype.update=function(e,t,n,s){if(!this.regExp)return;var o=s.firstRow,u=s.lastRow,a={};for(var f=o;f<=u;f++){var l=this.cache[f];l==null&&(l=r.getMatchOffsets(n.getLine(f),this.regExp),l.length>this.MAX_RANGES&&(l=l.slice(0,this.MAX_RANGES)),l=l.map(function(e){return new i(f,e.offset,f,e.offset+e.length)}),this.cache[f]=l.length?l:"");for(var c=l.length;c--;){var h=l[c].toScreenRange(n),p=h.toString();if(a[p])continue;a[p]=!0,t.drawSingleLineMarker(e,h,this.clazz,s)}}},e}();s.prototype.MAX_RANGES=500,t.SearchHighlight=s}),ace.define("ace/undomanager",["require","exports","module","ace/range"],function(e,t,n){"use strict";function i(e,t){for(var n=t;n--;){var r=e[n];if(r&&!r[0].ignore){while(n0){a.row+=i,a.column+=a.row==r.row?s:0;continue}!t&&l<=0&&(a.row=n.row,a.column=n.column,l===0&&(a.bias=1))}}function f(e){return{row:e.row,column:e.column}}function l(e){return{start:f(e.start),end:f(e.end),action:e.action,lines:e.lines.slice()}}function c(e){e=e||this;if(Array.isArray(e))return e.map(c).join("\n");var t="";e.action?(t=e.action=="insert"?"+":"-",t+="["+e.lines+"]"):e.value&&(Array.isArray(e.value)?t=e.value.map(h).join("\n"):t=h(e.value)),e.start&&(t+=h(e));if(e.id||e.rev)t+=" ("+(e.id||e.rev)+")";return t}function h(e){return e.start.row+":"+e.start.column+"=>"+e.end.row+":"+e.end.column}function p(e,t){var n=e.action=="insert",r=t.action=="insert";if(n&&r)if(o(t.start,e.end)>=0)m(t,e,-1);else{if(!(o(t.start,e.start)<=0))return null;m(e,t,1)}else if(n&&!r)if(o(t.start,e.end)>=0)m(t,e,-1);else{if(!(o(t.end,e.start)<=0))return null;m(e,t,-1)}else if(!n&&r)if(o(t.start,e.start)>=0)m(t,e,1);else{if(!(o(t.start,e.start)<=0))return null;m(e,t,1)}else if(!n&&!r)if(o(t.start,e.start)>=0)m(t,e,1);else{if(!(o(t.end,e.start)<=0))return null;m(e,t,-1)}return[t,e]}function d(e,t){for(var n=e.length;n--;)for(var r=0;r=0?m(e,t,-1):o(e.start,t.start)<=0?m(t,e,1):(m(e,s.fromPoints(t.start,e.start),-1),m(t,e,1));else if(!n&&r)o(t.start,e.end)>=0?m(t,e,-1):o(t.start,e.start)<=0?m(e,t,1):(m(t,s.fromPoints(e.start,t.start),-1),m(e,t,1));else if(!n&&!r)if(o(t.start,e.end)>=0)m(t,e,-1);else{if(!(o(t.end,e.start)<=0)){var i,u;return o(e.start,t.start)<0&&(i=e,e=y(e,t.start)),o(e.end,t.end)>0&&(u=y(e,t.end)),g(t.end,e.start,e.end,-1),u&&!i&&(e.lines=u.lines,e.start=u.start,e.end=u.end,u=e),[t,i,u].filter(Boolean)}m(e,t,-1)}return[t,e]}function m(e,t,n){g(e.start,t.start,t.end,n),g(e.end,t.start,t.end,n)}function g(e,t,n,r){e.row==(r==1?t:n).row&&(e.column+=r*(n.column-t.column)),e.row+=r*(n.row-t.row)}function y(e,t){var n=e.lines,r=e.end;e.end=f(t);var i=e.end.row-e.start.row,s=n.splice(i,n.length),o=i?t.column:t.column-e.start.column;n.push(s[0].substring(0,o)),s[0]=s[0].substr(o);var u={start:f(t),end:r,lines:s,action:e.action};return u}function b(e,t){t=l(t);for(var n=e.length;n--;){var r=e[n];for(var i=0;ithis.$undoDepth-1&&this.$undoStack.splice(0,r-this.$undoDepth+1),this.$undoStack.push(this.lastDeltas),e.id=this.$rev=++this.$maxRev}if(e.action=="remove"||e.action=="insert")this.$lastDelta=e;this.lastDeltas.push(e)},e.prototype.addSelection=function(e,t){this.selections.push({value:e,rev:t||this.$rev})},e.prototype.startNewGroup=function(){return this.lastDeltas=null,this.$rev},e.prototype.markIgnored=function(e,t){t==null&&(t=this.$rev+1);var n=this.$undoStack;for(var r=n.length;r--;){var i=n[r][0];if(i.id<=e)break;i.id0},e.prototype.canRedo=function(){return this.$redoStack.length>0},e.prototype.bookmark=function(e){e==undefined&&(e=this.$rev),this.mark=e},e.prototype.isAtBookmark=function(){return this.$rev===this.mark},e.prototype.toJSON=function(){return{$redoStack:this.$redoStack,$undoStack:this.$undoStack}},e.prototype.fromJSON=function(e){this.reset(),this.$undoStack=e.$undoStack,this.$redoStack=e.$redoStack},e.prototype.$prettyPrint=function(e){return e?c(e):c(this.$undoStack)+"\n---\n"+c(this.$redoStack)},e}();r.prototype.hasUndo=r.prototype.canUndo,r.prototype.hasRedo=r.prototype.canRedo,r.prototype.isClean=r.prototype.isAtBookmark,r.prototype.markClean=r.prototype.bookmark;var s=e("./range").Range,o=s.comparePoints,u=s.comparePoints;t.UndoManager=r}),ace.define("ace/edit_session/fold_line",["require","exports","module","ace/range"],function(e,t,n){"use strict";var r=e("../range").Range,i=function(){function e(e,t){this.foldData=e,Array.isArray(t)?this.folds=t:t=this.folds=[t];var n=t[t.length-1];this.range=new r(t[0].start.row,t[0].start.column,n.end.row,n.end.column),this.start=this.range.start,this.end=this.range.end,this.folds.forEach(function(e){e.setFoldLine(this)},this)}return e.prototype.shiftRow=function(e){this.start.row+=e,this.end.row+=e,this.folds.forEach(function(t){t.start.row+=e,t.end.row+=e})},e.prototype.addFold=function(e){if(e.sameRow){if(e.start.rowthis.endRow)throw new Error("Can't add a fold to this FoldLine as it has no connection");this.folds.push(e),this.folds.sort(function(e,t){return-e.range.compareEnd(t.start.row,t.start.column)}),this.range.compareEnd(e.start.row,e.start.column)>0?(this.end.row=e.end.row,this.end.column=e.end.column):this.range.compareStart(e.end.row,e.end.column)<0&&(this.start.row=e.start.row,this.start.column=e.start.column)}else if(e.start.row==this.end.row)this.folds.push(e),this.end.row=e.end.row,this.end.column=e.end.column;else{if(e.end.row!=this.start.row)throw new Error("Trying to add fold to FoldRow that doesn't have a matching row");this.folds.unshift(e),this.start.row=e.start.row,this.start.column=e.start.column}e.foldLine=this},e.prototype.containsRow=function(e){return e>=this.start.row&&e<=this.end.row},e.prototype.walk=function(e,t,n){var r=0,i=this.folds,s,o,u,a=!0;t==null&&(t=this.end.row,n=this.end.column);for(var f=0;f0)continue;var a=i(e,o.start);return u===0?t&&a!==0?-s-2:s:a>0||a===0&&!t?s:-s-1}return-s-1},e.prototype.add=function(e){var t=!e.isEmpty(),n=this.pointIndex(e.start,t);n<0&&(n=-n-1);var r=this.pointIndex(e.end,t,n);return r<0?r=-r-1:r++,this.ranges.splice(n,r-n,e)},e.prototype.addList=function(e){var t=[];for(var n=e.length;n--;)t.push.apply(t,this.add(e[n]));return t},e.prototype.substractPoint=function(e){var t=this.pointIndex(e);if(t>=0)return this.ranges.splice(t,1)},e.prototype.merge=function(){var e=[],t=this.ranges;t=t.sort(function(e,t){return i(e.start,t.start)});var n=t[0],r;for(var s=1;s=0},e.prototype.containsPoint=function(e){return this.pointIndex(e)>=0},e.prototype.rangeAtPoint=function(e){var t=this.pointIndex(e);if(t>=0)return this.ranges[t]},e.prototype.clipRows=function(e,t){var n=this.ranges;if(n[0].start.row>t||n[n.length-1].start.row=r)break}if(e.action=="insert"){var f=i-r,l=-t.column+n.column;for(;or)break;a.start.row==r&&a.start.column>=t.column&&(a.start.column==t.column&&this.$bias<=0||(a.start.column+=l,a.start.row+=f));if(a.end.row==r&&a.end.column>=t.column){if(a.end.column==t.column&&this.$bias<0)continue;a.end.column==t.column&&l>0&&oa.start.column&&a.end.column==s[o+1].start.column&&(a.end.column-=l),a.end.column+=l,a.end.row+=f}}}else{var f=r-i,l=t.column-n.column;for(;oi)break;if(a.end.rowt.column)a.end.column=t.column,a.end.row=t.row}else a.end.column+=l,a.end.row+=f;else a.end.row>i&&(a.end.row+=f);if(a.start.rowt.column)a.start.column=t.column,a.start.row=t.row}else a.start.column+=l,a.start.row+=f;else a.start.row>i&&(a.start.row+=f)}}if(f!=0&&o=e)return i;if(i.end.row>e)return null}return null},this.getNextFoldLine=function(e,t){var n=this.$foldData,r=0;t&&(r=n.indexOf(t)),r==-1&&(r=0);for(r;r=e)return i}return null},this.getFoldedRowCount=function(e,t){var n=this.$foldData,r=t-e+1;for(var i=0;i=t){u=e?r-=t-u:r=0);break}o>=e&&(u>=e?r-=o-u:r-=o-e+1)}return r},this.$addFoldLine=function(e){return this.$foldData.push(e),this.$foldData.sort(function(e,t){return e.start.row-t.start.row}),e},this.addFold=function(e,t){var n=this.$foldData,r=!1,o;e instanceof s?o=e:(o=new s(t,e),o.collapseChildren=t.collapseChildren),this.$clipRangeToDocument(o.range);var u=o.start.row,a=o.start.column,f=o.end.row,l=o.end.column,c=this.getFoldAt(u,a,1),h=this.getFoldAt(f,l,-1);if(c&&h==c)return c.addSubFold(o);c&&!c.range.isStart(u,a)&&this.removeFold(c),h&&!h.range.isEnd(f,l)&&this.removeFold(h);var p=this.getFoldsInRange(o.range);p.length>0&&(this.removeFolds(p),o.collapseChildren||p.forEach(function(e){o.addSubFold(e)}));for(var d=0;d0&&this.foldAll(e.start.row+1,e.end.row,e.collapseChildren-1),e.subFolds=[]},this.expandFolds=function(e){e.forEach(function(e){this.expandFold(e)},this)},this.unfold=function(e,t){var n,i;if(e==null)n=new r(0,0,this.getLength(),0),t==null&&(t=!0);else if(typeof e=="number")n=new r(e,0,e,this.getLine(e).length);else if("row"in e)n=r.fromPoints(e,e);else{if(Array.isArray(e))return i=[],e.forEach(function(e){i=i.concat(this.unfold(e))},this),i;n=e}i=this.getFoldsInRangeList(n);var s=i;while(i.length==1&&r.comparePoints(i[0].start,n.start)<0&&r.comparePoints(i[0].end,n.end)>0)this.expandFolds(i),i=this.getFoldsInRangeList(n);t!=0?this.removeFolds(i):this.expandFolds(i);if(s.length)return s},this.isRowFolded=function(e,t){return!!this.getFoldLine(e,t)},this.getRowFoldEnd=function(e,t){var n=this.getFoldLine(e,t);return n?n.end.row:e},this.getRowFoldStart=function(e,t){var n=this.getFoldLine(e,t);return n?n.start.row:e},this.getFoldDisplayLine=function(e,t,n,r,i){r==null&&(r=e.start.row),i==null&&(i=0),t==null&&(t=e.end.row),n==null&&(n=this.getLine(t).length);var s=this.doc,o="";return e.walk(function(e,t,n,u){if(tc)break}while(s&&a.test(s.type));s=i.stepBackward()}else s=i.getCurrentToken();return f.end.row=i.getCurrentTokenRow(),f.end.column=i.getCurrentTokenColumn(),f}},this.foldAll=function(e,t,n,r){n==undefined&&(n=1e5);var i=this.foldWidgets;if(!i)return;t=t||this.getLength(),e=e||0;for(var s=e;s=e&&(s=o.end.row,o.collapseChildren=n,this.addFold("...",o))}},this.foldToLevel=function(e){this.foldAll();while(e-->0)this.unfold(null,!1)},this.foldAllComments=function(){var e=this;this.foldAll(null,null,null,function(t){var n=e.getTokens(t);for(var r=0;r=0){var s=n[r];s==null&&(s=n[r]=this.getFoldWidget(r));if(s=="start"){var o=this.getFoldWidgetRange(r);i||(i=o);if(o&&o.end.row>=e)break}r--}return{range:r!==-1&&o,firstRange:i}},this.onFoldWidgetClick=function(e,t){t instanceof u&&(t=t.domEvent);var n={children:t.shiftKey,all:t.ctrlKey||t.metaKey,siblings:t.altKey},r=this.$toggleFoldWidget(e,n);if(!r){var i=t.target||t.srcElement;i&&/ace_fold-widget/.test(i.className)&&(i.className+=" ace_invalid")}},this.$toggleFoldWidget=function(e,t){if(!this.getFoldWidget)return;var n=this.getFoldWidget(e),r=this.getLine(e),i=n==="end"?-1:1,s=this.getFoldAt(e,i===-1?0:r.length,i);if(s)return t.children||t.all?this.removeFold(s):this.expandFold(s),s;var o=this.getFoldWidgetRange(e,!0);if(o&&!o.isMultiLine()){s=this.getFoldAt(o.start.row,o.start.column,1);if(s&&o.isEqual(s.range))return this.removeFold(s),s}if(t.siblings){var u=this.getParentFoldRangeData(e);if(u.range)var a=u.range.start.row+1,f=u.range.end.row;this.foldAll(a,f,t.all?1e4:0)}else t.children?(f=o?o.end.row:this.getLength(),this.foldAll(e+1,f,t.all?1e4:0)):o&&(t.all&&(o.collapseChildren=1e4),this.addFold("...",o));return o},this.toggleFoldWidget=function(e){var t=this.selection.getCursor().row;t=this.getRowFoldStart(t);var n=this.$toggleFoldWidget(t,{});if(n)return;var r=this.getParentFoldRangeData(t,!0);n=r.range||r.firstRange;if(n){t=n.start.row;var i=this.getFoldAt(t,this.getLine(t).length,1);i?this.removeFold(i):this.addFold("...",n)}},this.updateFoldWidgets=function(e){var t=e.start.row,n=e.end.row-t;if(n===0)this.foldWidgets[t]=null;else if(e.action=="remove")this.foldWidgets.splice(t,n+1,null);else{var r=Array(n+1);r.unshift(t,1),this.foldWidgets.splice.apply(this.foldWidgets,r)}},this.tokenizerUpdateFoldWidgets=function(e){var t=e.data;t.first!=t.last&&this.foldWidgets.length>t.first&&this.foldWidgets.splice(t.first,this.foldWidgets.length)}}var r=e("../range").Range,i=e("./fold_line").FoldLine,s=e("./fold").Fold,o=e("../token_iterator").TokenIterator,u=e("../mouse/mouse_event").MouseEvent;t.Folding=a}),ace.define("ace/edit_session/bracket_match",["require","exports","module","ace/token_iterator","ace/range"],function(e,t,n){"use strict";function s(){this.findMatchingBracket=function(e,t){if(e.column==0)return null;var n=t||this.getLine(e.row).charAt(e.column-1);if(n=="")return null;var r=n.match(/([\(\[\{])|([\)\]\}])/);return r?r[1]?this.$findClosingBracket(r[1],e):this.$findOpeningBracket(r[2],e):null},this.getBracketRange=function(e){var t=this.getLine(e.row),n=!0,r,s=t.charAt(e.column-1),o=s&&s.match(/([\(\[\{])|([\)\]\}])/);o||(s=t.charAt(e.column),e={row:e.row,column:e.column+1},o=s&&s.match(/([\(\[\{])|([\)\]\}])/),n=!1);if(!o)return null;if(o[1]){var u=this.$findClosingBracket(o[1],e);if(!u)return null;r=i.fromPoints(e,u),n||(r.end.column++,r.start.column--),r.cursor=r.end}else{var u=this.$findOpeningBracket(o[2],e);if(!u)return null;r=i.fromPoints(u,e),n||(r.start.column++,r.end.column--),r.cursor=r.start}return r},this.getMatchingBracketRanges=function(e,t){var n=this.getLine(e.row),r=/([\(\[\{])|([\)\]\}])/,s=!t&&n.charAt(e.column-1),o=s&&s.match(r);o||(s=(t===undefined||t)&&n.charAt(e.column),e={row:e.row,column:e.column+1},o=s&&s.match(r));if(!o)return null;var u=new i(e.row,e.column-1,e.row,e.column),a=o[1]?this.$findClosingBracket(o[1],e):this.$findOpeningBracket(o[2],e);if(!a)return[u];var f=new i(a.row,a.column,a.row,a.column+1);return[u,f]},this.$brackets={")":"(","(":")","]":"[","[":"]","{":"}","}":"{","<":">",">":"<"},this.$findOpeningBracket=function(e,t,n){var i=this.$brackets[e],s=1,o=new r(this,t.row,t.column),u=o.getCurrentToken();u||(u=o.stepForward());if(!u)return;n||(n=new RegExp("(\\.?"+u.type.replace(".","\\.").replace("rparen",".paren").replace(/\b(?:end)\b/,"(?:start|begin|end)").replace(/-close\b/,"-(close|open)")+")+"));var a=t.column-o.getCurrentTokenColumn()-2,f=u.value;for(;;){while(a>=0){var l=f.charAt(a);if(l==i){s-=1;if(s==0)return{row:o.getCurrentTokenRow(),column:a+o.getCurrentTokenColumn()}}else l==e&&(s+=1);a-=1}do u=o.stepBackward();while(u&&!n.test(u.type));if(u==null)break;f=u.value,a=f.length-1}return null},this.$findClosingBracket=function(e,t,n){var i=this.$brackets[e],s=1,o=new r(this,t.row,t.column),u=o.getCurrentToken();u||(u=o.stepForward());if(!u)return;n||(n=new RegExp("(\\.?"+u.type.replace(".","\\.").replace("lparen",".paren").replace(/\b(?:start|begin)\b/,"(?:start|begin|end)").replace(/-open\b/,"-(close|open)")+")+"));var a=t.column-o.getCurrentTokenColumn();for(;;){var f=u.value,l=f.length;while(a"?r=!0:t.type.indexOf("tag-name")!==-1&&(n=!0));while(t&&!n);return t},this.$findClosingTag=function(e,t){var n,r=t.value,s=t.value,o=0,u=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+1);t=e.stepForward();var a=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+t.value.length),f=!1;do{n=t;if(n.type.indexOf("tag-close")!==-1&&!f){var l=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+1);f=!0}t=e.stepForward();if(t){if(t.value===">"&&!f){var l=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+1);f=!0}if(t.type.indexOf("tag-name")!==-1){r=t.value;if(s===r)if(n.value==="<")o++;else if(n.value==="")return;var p=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+1)}}}else if(s===r&&t.value==="/>"){o--;if(o<0)var c=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+2),h=c,p=h,l=new i(a.end.row,a.end.column,a.end.row,a.end.column+1)}}}while(t&&o>=0);if(u&&l&&c&&p&&a&&h)return{openTag:new i(u.start.row,u.start.column,l.end.row,l.end.column),closeTag:new i(c.start.row,c.start.column,p.end.row,p.end.column),openTagName:a,closeTagName:h}},this.$findOpeningTag=function(e,t){var n=e.getCurrentToken(),r=t.value,s=0,o=e.getCurrentTokenRow(),u=e.getCurrentTokenColumn(),a=u+2,f=new i(o,u,o,a);e.stepForward();var l=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+t.value.length);t.type.indexOf("tag-close")===-1&&(t=e.stepForward());if(!t||t.value!==">")return;var c=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+1);e.stepBackward(),e.stepBackward();do{t=n,o=e.getCurrentTokenRow(),u=e.getCurrentTokenColumn(),a=u+t.value.length,n=e.stepBackward();if(t)if(t.type.indexOf("tag-name")!==-1){if(r===t.value)if(n.value==="<"){s++;if(s>0){var h=new i(o,u,o,a),p=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+1);do t=e.stepForward();while(t&&t.value!==">");var d=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+1)}}else n.value===""){var v=0,m=n;while(m){if(m.type.indexOf("tag-name")!==-1&&m.value===r){s--;break}if(m.value==="<")break;m=e.stepBackward(),v++}for(var g=0;g=4352&&e<=4447||e>=4515&&e<=4519||e>=4602&&e<=4607||e>=9001&&e<=9002||e>=11904&&e<=11929||e>=11931&&e<=12019||e>=12032&&e<=12245||e>=12272&&e<=12283||e>=12288&&e<=12350||e>=12353&&e<=12438||e>=12441&&e<=12543||e>=12549&&e<=12589||e>=12593&&e<=12686||e>=12688&&e<=12730||e>=12736&&e<=12771||e>=12784&&e<=12830||e>=12832&&e<=12871||e>=12880&&e<=13054||e>=13056&&e<=19903||e>=19968&&e<=42124||e>=42128&&e<=42182||e>=43360&&e<=43388||e>=44032&&e<=55203||e>=55216&&e<=55238||e>=55243&&e<=55291||e>=63744&&e<=64255||e>=65040&&e<=65049||e>=65072&&e<=65106||e>=65108&&e<=65126||e>=65128&&e<=65131||e>=65281&&e<=65376||e>=65504&&e<=65510}var r=e("./lib/oop"),i=e("./lib/lang"),s=e("./bidihandler").BidiHandler,o=e("./config"),u=e("./lib/event_emitter").EventEmitter,a=e("./selection").Selection,f=e("./mode/text").Mode,l=e("./range").Range,c=e("./document").Document,h=e("./background_tokenizer").BackgroundTokenizer,p=e("./search_highlight").SearchHighlight,d=e("./undomanager").UndoManager,v=function(){function e(t,n){this.doc,this.$breakpoints=[],this.$decorations=[],this.$frontMarkers={},this.$backMarkers={},this.$markerId=1,this.$undoSelect=!0,this.$foldData=[],this.id="session"+ ++e.$uid,this.$foldData.toString=function(){return this.join("\n")},this.bgTokenizer=new h((new f).getTokenizer(),this);var r=this;this.bgTokenizer.on("update",function(e){r._signal("tokenizerUpdate",e)}),this.on("changeFold",this.onChangeFold.bind(this)),this.$onChange=this.onChange.bind(this);if(typeof t!="object"||!t.getLine)t=new c(t);this.setDocument(t),this.selection=new a(this),this.$bidiHandler=new s(this),o.resetOptions(this),this.setMode(n),o._signal("session",this),this.destroyed=!1}return e.prototype.setDocument=function(e){this.doc&&this.doc.off("change",this.$onChange),this.doc=e,e.on("change",this.$onChange,!0),this.bgTokenizer.setDocument(this.getDocument()),this.resetCaches()},e.prototype.getDocument=function(){return this.doc},e.prototype.$resetRowCache=function(e){if(!e){this.$docRowCache=[],this.$screenRowCache=[];return}var t=this.$docRowCache.length,n=this.$getRowCacheIndex(this.$docRowCache,e)+1;t>n&&(this.$docRowCache.splice(n,t),this.$screenRowCache.splice(n,t))},e.prototype.$getRowCacheIndex=function(e,t){var n=0,r=e.length-1;while(n<=r){var i=n+r>>1,s=e[i];if(t>s)n=i+1;else{if(!(t=t)break}return r=n[s],r?(r.index=s,r.start=i-r.value.length,r):null},e.prototype.setUndoManager=function(e){this.$undoManager=e,this.$informUndoManager&&this.$informUndoManager.cancel();if(e){var t=this;e.addSession(this),this.$syncInformUndoManager=function(){t.$informUndoManager.cancel(),t.mergeUndoDeltas=!1},this.$informUndoManager=i.delayedCall(this.$syncInformUndoManager)}else this.$syncInformUndoManager=function(){}},e.prototype.markUndoGroup=function(){this.$syncInformUndoManager&&this.$syncInformUndoManager()},e.prototype.getUndoManager=function(){return this.$undoManager||this.$defaultUndoManager},e.prototype.getTabString=function(){return this.getUseSoftTabs()?i.stringRepeat(" ",this.getTabSize()):" "},e.prototype.setUseSoftTabs=function(e){this.setOption("useSoftTabs",e)},e.prototype.getUseSoftTabs=function(){return this.$useSoftTabs&&!this.$mode.$indentWithTabs},e.prototype.setTabSize=function(e){this.setOption("tabSize",e)},e.prototype.getTabSize=function(){return this.$tabSize},e.prototype.isTabStop=function(e){return this.$useSoftTabs&&e.column%this.$tabSize===0},e.prototype.setNavigateWithinSoftTabs=function(e){this.setOption("navigateWithinSoftTabs",e)},e.prototype.getNavigateWithinSoftTabs=function(){return this.$navigateWithinSoftTabs},e.prototype.setOverwrite=function(e){this.setOption("overwrite",e)},e.prototype.getOverwrite=function(){return this.$overwrite},e.prototype.toggleOverwrite=function(){this.setOverwrite(!this.$overwrite)},e.prototype.addGutterDecoration=function(e,t){this.$decorations[e]||(this.$decorations[e]=""),this.$decorations[e]+=" "+t,this._signal("changeBreakpoint",{})},e.prototype.removeGutterDecoration=function(e,t){this.$decorations[e]=(this.$decorations[e]||"").replace(" "+t,""),this._signal("changeBreakpoint",{})},e.prototype.getBreakpoints=function(){return this.$breakpoints},e.prototype.setBreakpoints=function(e){this.$breakpoints=[];for(var t=0;t0&&(r=!!n.charAt(t-1).match(this.tokenRe)),r||(r=!!n.charAt(t).match(this.tokenRe));if(r)var i=this.tokenRe;else if(/^\s+$/.test(n.slice(t-1,t+1)))var i=/\s/;else var i=this.nonTokenRe;var s=t;if(s>0){do s--;while(s>=0&&n.charAt(s).match(i));s++}var o=t;while(oe&&(e=t.screenWidth)}),this.lineWidgetWidth=e},e.prototype.$computeWidth=function(e){if(this.$modified||e){this.$modified=!1;if(this.$useWrapMode)return this.screenWidth=this.$wrapLimit;var t=this.doc.getAllLines(),n=this.$rowLengthCache,r=0,i=0,s=this.$foldData[i],o=s?s.start.row:Infinity,u=t.length;for(var a=0;ao){a=s.end.row+1;if(a>=u)break;s=this.$foldData[i++],o=s?s.start.row:Infinity}n[a]==null&&(n[a]=this.$getStringScreenWidth(t[a])[0]),n[a]>r&&(r=n[a])}this.screenWidth=r}},e.prototype.getLine=function(e){return this.doc.getLine(e)},e.prototype.getLines=function(e,t){return this.doc.getLines(e,t)},e.prototype.getLength=function(){return this.doc.getLength()},e.prototype.getTextRange=function(e){return this.doc.getTextRange(e||this.selection.getRange())},e.prototype.insert=function(e,t){return this.doc.insert(e,t)},e.prototype.remove=function(e){return this.doc.remove(e)},e.prototype.removeFullLines=function(e,t){return this.doc.removeFullLines(e,t)},e.prototype.undoChanges=function(e,t){if(!e.length)return;this.$fromUndo=!0;for(var n=e.length-1;n!=-1;n--){var r=e[n];r.action=="insert"||r.action=="remove"?this.doc.revertDelta(r):r.folds&&this.addFolds(r.folds)}!t&&this.$undoSelect&&(e.selectionBefore?this.selection.fromJSON(e.selectionBefore):this.selection.setRange(this.$getUndoSelection(e,!0))),this.$fromUndo=!1},e.prototype.redoChanges=function(e,t){if(!e.length)return;this.$fromUndo=!0;for(var n=0;ne.end.column&&(s.start.column+=u),s.end.row==e.end.row&&s.end.column>e.end.column&&(s.end.column+=u)),o&&s.start.row>=e.end.row&&(s.start.row+=o,s.end.row+=o)}s.end=this.insert(s.start,r);if(i.length){var a=e.start,f=s.start,o=f.row-a.row,u=f.column-a.column;this.addFolds(i.map(function(e){return e=e.clone(),e.start.row==a.row&&(e.start.column+=u),e.end.row==a.row&&(e.end.column+=u),e.start.row+=o,e.end.row+=o,e}))}return s},e.prototype.indentRows=function(e,t,n){n=n.replace(/\t/g,this.getTabString());for(var r=e;r<=t;r++)this.doc.insertInLine({row:r,column:0},n)},e.prototype.outdentRows=function(e){var t=e.collapseRows(),n=new l(0,0,0,0),r=this.getTabSize();for(var i=t.start.row;i<=t.end.row;++i){var s=this.getLine(i);n.start.row=i,n.end.row=i;for(var o=0;o0){var r=this.getRowFoldEnd(t+n);if(r>this.doc.getLength()-1)return 0;var i=r-t}else{e=this.$clipRowToDocument(e),t=this.$clipRowToDocument(t);var i=t-e+1}var s=new l(e,0,t,Number.MAX_VALUE),o=this.getFoldsInRange(s).map(function(e){return e=e.clone(),e.start.row+=i,e.end.row+=i,e}),u=n==0?this.doc.getLines(e,t):this.doc.removeFullLines(e,t);return this.doc.insertFullLines(e+i,u),o.length&&this.addFolds(o),i},e.prototype.moveLinesUp=function(e,t){return this.$moveLines(e,t,-1)},e.prototype.moveLinesDown=function(e,t){return this.$moveLines(e,t,1)},e.prototype.duplicateLines=function(e,t){return this.$moveLines(e,t,0)},e.prototype.$clipRowToDocument=function(e){return Math.max(0,Math.min(e,this.doc.getLength()-1))},e.prototype.$clipColumnToRow=function(e,t){return t<0?0:Math.min(this.doc.getLine(e).length,t)},e.prototype.$clipPositionToDocument=function(e,t){t=Math.max(0,t);if(e<0)e=0,t=0;else{var n=this.doc.getLength();e>=n?(e=n-1,t=this.doc.getLine(n-1).length):t=Math.min(this.doc.getLine(e).length,t)}return{row:e,column:t}},e.prototype.$clipRangeToDocument=function(e){e.start.row<0?(e.start.row=0,e.start.column=0):e.start.column=this.$clipColumnToRow(e.start.row,e.start.column);var t=this.doc.getLength()-1;return e.end.row>t?(e.end.row=t,e.end.column=this.doc.getLine(t).length):e.end.column=this.$clipColumnToRow(e.end.row,e.end.column),e},e.prototype.setUseWrapMode=function(e){if(e!=this.$useWrapMode){this.$useWrapMode=e,this.$modified=!0,this.$resetRowCache(0);if(e){var t=this.getLength();this.$wrapData=Array(t),this.$updateWrapData(0,t-1)}this._signal("changeWrapMode")}},e.prototype.getUseWrapMode=function(){return this.$useWrapMode},e.prototype.setWrapLimitRange=function(e,t){if(this.$wrapLimitRange.min!==e||this.$wrapLimitRange.max!==t)this.$wrapLimitRange={min:e,max:t},this.$modified=!0,this.$bidiHandler.markAsDirty(),this.$useWrapMode&&this._signal("changeWrapMode")},e.prototype.adjustWrapLimit=function(e,t){var n=this.$wrapLimitRange;n.max<0&&(n={min:t,max:t});var r=this.$constrainWrapLimit(e,n.min,n.max);return r!=this.$wrapLimit&&r>1?(this.$wrapLimit=r,this.$modified=!0,this.$useWrapMode&&(this.$updateWrapData(0,this.getLength()-1),this.$resetRowCache(0),this._signal("changeWrapLimit")),!0):!1},e.prototype.$constrainWrapLimit=function(e,t,n){return t&&(e=Math.max(t,e)),n&&(e=Math.min(n,e)),e},e.prototype.getWrapLimit=function(){return this.$wrapLimit},e.prototype.setWrapLimit=function(e){this.setWrapLimitRange(e,e)},e.prototype.getWrapLimitRange=function(){return{min:this.$wrapLimitRange.min,max:this.$wrapLimitRange.max}},e.prototype.$updateInternalDataOnChange=function(e){var t=this.$useWrapMode,n=e.action,r=e.start,i=e.end,s=r.row,o=i.row,u=o-s,a=null;this.$updating=!0;if(u!=0)if(n==="remove"){this[t?"$wrapData":"$rowLengthCache"].splice(s,u);var f=this.$foldData;a=this.getFoldsInRange(e),this.removeFolds(a);var l=this.getFoldLine(i.row),c=0;if(l){l.addRemoveChars(i.row,i.column,r.column-i.column),l.shiftRow(-u);var h=this.getFoldLine(s);h&&h!==l&&(h.merge(l),l=h),c=f.indexOf(l)+1}for(c;c=i.row&&l.shiftRow(-u)}o=s}else{var p=Array(u);p.unshift(s,0);var d=t?this.$wrapData:this.$rowLengthCache;d.splice.apply(d,p);var f=this.$foldData,l=this.getFoldLine(s),c=0;if(l){var v=l.range.compareInside(r.row,r.column);v==0?(l=l.split(r.row,r.column),l&&(l.shiftRow(u),l.addRemoveChars(o,0,i.column-r.column))):v==-1&&(l.addRemoveChars(s,0,i.column-r.column),l.shiftRow(u)),c=f.indexOf(l)+1}for(c;c=s&&l.shiftRow(u)}}else{u=Math.abs(e.start.column-e.end.column),n==="remove"&&(a=this.getFoldsInRange(e),this.removeFolds(a),u=-u);var l=this.getFoldLine(s);l&&l.addRemoveChars(s,r.column,u)}return t&&this.$wrapData.length!=this.doc.getLength()&&console.error("doc.getLength() and $wrapData.length have to be the same!"),this.$updating=!1,t?this.$updateWrapData(s,o):this.$updateRowLengthCache(s,o),a},e.prototype.$updateRowLengthCache=function(e,t){this.$rowLengthCache[e]=null,this.$rowLengthCache[t]=null},e.prototype.$updateWrapData=function(e,t){var n=this.doc.getAllLines(),r=this.getTabSize(),i=this.$wrapData,s=this.$wrapLimit,o,u,a=e;t=Math.min(t,n.length-1);while(a<=t)u=this.getFoldLine(a,u),u?(o=[],u.walk(function(e,t,r,i){var s;if(e!=null){s=this.$getDisplayTokens(e,o.length),s[0]=y;for(var u=1;ut-h){var p=s+t-h;if(e[p-1]>=E&&e[p]>=E){c(p);continue}if(e[p]==y||e[p]==b){for(p;p!=s-1;p--)if(e[p]==y)break;if(p>s){c(p);continue}p=s+t;for(p;p>2)),s-1);while(p>d&&e[p]d&&e[p]d&&e[p]==w)p--}else while(p>d&&e[p]d){c(++p);continue}p=s+t,e[p]==g&&p--,c(p-h)}return r},e.prototype.$getDisplayTokens=function(e,t){var n=[],r;t=t||0;for(var i=0;i39&&s<48||s>57&&s<64?n.push(w):s>=4352&&T(s)?n.push(m,g):n.push(m)}return n},e.prototype.$getStringScreenWidth=function(e,t,n){if(t==0)return[0,0];t==null&&(t=Infinity),n=n||0;var r,i;for(i=0;i=4352&&T(r)?n+=2:n+=1;if(n>t)break}return[n,i]},e.prototype.getRowLength=function(e){var t=1;return this.lineWidgets&&(t+=this.lineWidgets[e]&&this.lineWidgets[e].rowCount||0),!this.$useWrapMode||!this.$wrapData[e]?t:this.$wrapData[e].length+t},e.prototype.getRowLineCount=function(e){return!this.$useWrapMode||!this.$wrapData[e]?1:this.$wrapData[e].length+1},e.prototype.getRowWrapIndent=function(e){if(this.$useWrapMode){var t=this.screenToDocumentPosition(e,Number.MAX_VALUE),n=this.$wrapData[t.row];return n.length&&n[0]=0)var u=f[l],i=this.$docRowCache[l],h=e>f[c-1];else var h=!c;var p=this.getLength()-1,d=this.getNextFoldLine(i),v=d?d.start.row:Infinity;while(u<=e){a=this.getRowLength(i);if(u+a>e||i>=p)break;u+=a,i++,i>v&&(i=d.end.row+1,d=this.getNextFoldLine(i,d),v=d?d.start.row:Infinity),h&&(this.$docRowCache.push(i),this.$screenRowCache.push(u))}if(d&&d.start.row<=i)r=this.getFoldDisplayLine(d),i=d.start.row;else{if(u+a<=e||i>p)return{row:p,column:this.getLine(p).length};r=this.getLine(i),d=null}var m=0,g=Math.floor(e-u);if(this.$useWrapMode){var y=this.$wrapData[i];y&&(o=y[g],g>0&&y.length&&(m=y.indent,s=y[g-1]||y[y.length-1],r=r.substring(s)))}return n!==undefined&&this.$bidiHandler.isBidiRow(u+g,i,g)&&(t=this.$bidiHandler.offsetToCol(n)),s+=this.$getStringScreenWidth(r,t-m)[1],this.$useWrapMode&&s>=o&&(s=o-1),d?d.idxToPosition(s):{row:i,column:s}},e.prototype.documentToScreenPosition=function(e,t){if(typeof t=="undefined")var n=this.$clipPositionToDocument(e.row,e.column);else n=this.$clipPositionToDocument(e,t);e=n.row,t=n.column;var r=0,i=null,s=null;s=this.getFoldAt(e,t,1),s&&(e=s.start.row,t=s.start.column);var o,u=0,a=this.$docRowCache,f=this.$getRowCacheIndex(a,e),l=a.length;if(l&&f>=0)var u=a[f],r=this.$screenRowCache[f],c=e>a[l-1];else var c=!l;var h=this.getNextFoldLine(u),p=h?h.start.row:Infinity;while(u=p){o=h.end.row+1;if(o>e)break;h=this.getNextFoldLine(o,h),p=h?h.start.row:Infinity}else o=u+1;r+=this.getRowLength(u),u=o,c&&(this.$docRowCache.push(u),this.$screenRowCache.push(r))}var d="";h&&u>=p?(d=this.getFoldDisplayLine(h,e,t),i=h.start.row):(d=this.getLine(e).substring(0,t),i=e);var v=0;if(this.$useWrapMode){var m=this.$wrapData[i];if(m){var g=0;while(d.length>=m[g])r++,g++;d=d.substring(m[g-1]||0,d.length),v=g>0?m.indent:0}}return this.lineWidgets&&this.lineWidgets[u]&&this.lineWidgets[u].rowsAbove&&(r+=this.lineWidgets[u].rowsAbove),{row:r,column:v+this.$getStringScreenWidth(d)[0]}},e.prototype.documentToScreenColumn=function(e,t){return this.documentToScreenPosition(e,t).column},e.prototype.documentToScreenRow=function(e,t){return this.documentToScreenPosition(e,t).row},e.prototype.getScreenLength=function(){var e=0,t=null;if(!this.$useWrapMode){e=this.getLength();var n=this.$foldData;for(var r=0;ro&&(s=t.end.row+1,t=this.$foldData[r++],o=t?t.start.row:Infinity)}}return this.lineWidgets&&(e+=this.$getWidgetScreenLength()),e},e.prototype.$setFontMetrics=function(e){if(!this.$enableVarChar)return;this.$getStringScreenWidth=function(t,n,r){if(n===0)return[0,0];n||(n=Infinity),r=r||0;var i,s;for(s=0;sn)break}return[r,s]}},e.prototype.getPrecedingCharacter=function(){var e=this.selection.getCursor();if(e.column===0)return e.row===0?"":this.doc.getNewLineCharacter();var t=this.getLine(e.row);return t[e.column-1]},e.prototype.destroy=function(){this.destroyed||(this.bgTokenizer.setDocument(null),this.bgTokenizer.cleanup(),this.destroyed=!0),this.$stopWorker(),this.removeAllListeners(),this.doc&&this.doc.off("change",this.$onChange),this.selection.detach()},e}();v.$uid=0,v.prototype.$modes=o.$modes,v.prototype.getValue=v.prototype.toString,v.prototype.$defaultUndoManager={undo:function(){},redo:function(){},hasUndo:function(){},hasRedo:function(){},reset:function(){},add:function(){},addSelection:function(){},startNewGroup:function(){},addSession:function(){}},v.prototype.$overwrite=!1,v.prototype.$mode=null,v.prototype.$modeId=null,v.prototype.$scrollTop=0,v.prototype.$scrollLeft=0,v.prototype.$wrapLimit=80,v.prototype.$useWrapMode=!1,v.prototype.$wrapLimitRange={min:null,max:null},v.prototype.lineWidgets=null,v.prototype.isFullWidth=T,r.implement(v.prototype,u);var m=1,g=2,y=3,b=4,w=9,E=10,S=11,x=12;e("./edit_session/folding").Folding.call(v.prototype),e("./edit_session/bracket_match").BracketMatch.call(v.prototype),o.defineOptions(v.prototype,"session",{wrap:{set:function(e){!e||e=="off"?e=!1:e=="free"?e=!0:e=="printMargin"?e=-1:typeof e=="string"&&(e=parseInt(e,10)||!1);if(this.$wrap==e)return;this.$wrap=e;if(!e)this.setUseWrapMode(!1);else{var t=typeof e=="number"?e:null;this.setWrapLimitRange(t,t),this.setUseWrapMode(!0)}},get:function(){return this.getUseWrapMode()?this.$wrap==-1?"printMargin":this.getWrapLimitRange().min?this.$wrap:"free":"off"},handlesSet:!0},wrapMethod:{set:function(e){e=e=="auto"?this.$mode.type!="text":e!="text",e!=this.$wrapAsCode&&(this.$wrapAsCode=e,this.$useWrapMode&&(this.$useWrapMode=!1,this.setUseWrapMode(!0)))},initialValue:"auto"},indentedSoftWrap:{set:function(){this.$useWrapMode&&(this.$useWrapMode=!1,this.setUseWrapMode(!0))},initialValue:!0},firstLineNumber:{set:function(){this._signal("changeBreakpoint")},initialValue:1},useWorker:{set:function(e){this.$useWorker=e,this.$stopWorker(),e&&this.$startWorker()},initialValue:!0},useSoftTabs:{initialValue:!0},tabSize:{set:function(e){e=parseInt(e),e>0&&this.$tabSize!==e&&(this.$modified=!0,this.$rowLengthCache=[],this.$tabSize=e,this._signal("changeTabSize"))},initialValue:4,handlesSet:!0},navigateWithinSoftTabs:{initialValue:!1},foldStyle:{set:function(e){this.setFoldStyle(e)},handlesSet:!0},overwrite:{set:function(e){this._signal("changeOverwrite")},initialValue:!1},newLineMode:{set:function(e){this.doc.setNewLineMode(e)},get:function(){return this.doc.getNewLineMode()},handlesSet:!0},mode:{set:function(e){this.setMode(e)},get:function(){return this.$modeId},handlesSet:!0}}),t.EditSession=v}),ace.define("ace/search",["require","exports","module","ace/lib/lang","ace/lib/oop","ace/range"],function(e,t,n){"use strict";function u(e,t){function i(e,r){r===void 0&&(r=!0);var i=n&&t.$supportsUnicodeFlag?new RegExp("[\\p{L}\\p{N}_]","u"):new RegExp("\\w");if(i.test(e)||t.regExp)return n&&t.$supportsUnicodeFlag?r?"(?<=^|[^\\p{L}\\p{N}_])":"(?=[^\\p{L}\\p{N}_]|$)":"\\b";return""}var n=r.supportsLookbehind(),s=Array.from(e),o=s[0],u=s[s.length-1];return i(o)+e+i(u,!1)}var r=e("./lib/lang"),i=e("./lib/oop"),s=e("./range").Range,o=function(){function e(){this.$options={}}return e.prototype.set=function(e){return i.mixin(this.$options,e),this},e.prototype.getOptions=function(){return r.copyObject(this.$options)},e.prototype.setOptions=function(e){this.$options=e},e.prototype.find=function(e){var t=this.$options,n=this.$matchIterator(e,t);if(!n)return!1;var r=null;return n.forEach(function(e,n,i,o){return r=new s(e,n,i,o),n==o&&t.start&&t.start.start&&t.skipCurrent!=0&&r.isEqual(t.start)?(r=null,!1):!0}),r},e.prototype.findAll=function(e){var t=this.$options;if(!t.needle)return[];this.$assembleRegExp(t);var n=t.range,i=n?e.getLines(n.start.row,n.end.row):e.doc.getAllLines(),o=[],u=t.re;if(t.$isMultiLine){var a=u.length,f=i.length-a,l;e:for(var c=u.offset||0;c<=f;c++){for(var h=0;hv)continue;o.push(l=new s(c,v,c+a-1,m)),a>2&&(c=c+a-2)}}else for(var g=0;gE&&o[h].end.row==S)h--;o=o.slice(g,h+1);for(g=0,h=o.length;g=f;n--)if(p(n,Number.MAX_VALUE,e))return;if(t.wrap==0)return;for(n=l,f=a.row;n>=f;n--)if(p(n,Number.MAX_VALUE,e))return};else var c=function(e){var n=a.row;if(p(n,a.column,e))return;for(n+=1;n<=l;n++)if(p(n,0,e))return;if(t.wrap==0)return;for(n=f,l=a.row;n<=l;n++)if(p(n,0,e))return};if(t.$isMultiLine)var h=n.length,p=function(t,r,s){var o=i?t-h+1:t;if(o<0||o+h>e.getLength())return;var u=e.getLine(o),a=u.search(n[0]);if(!i&&ar)return;if(s(o,a,o+h-1,l))return!0};else if(i)var p=function(t,i,s){var u=e.getLine(t),a=[],f,l=0;n.lastIndex=0;while(f=n.exec(u)){var c=f[0].length;l=f.index;if(!c){if(l>=u.length)break;n.lastIndex=l+=r.skipEmptyMatch(u,l,o)}if(f.index+c>i)break;a.push(f.index,c)}for(var h=a.length-1;h>=0;h-=2){var p=a[h-1],c=a[h];if(s(t,p,t,p+c))return!0}};else var p=function(t,i,s){var u=e.getLine(t),a,f;n.lastIndex=i;while(f=n.exec(u)){var l=f[0].length;a=f.index;if(s(t,a,t,a+l))return!0;if(!l){n.lastIndex=a+=r.skipEmptyMatch(u,a,o);if(a>=u.length)return!1}}};return{forEach:c}},e}();t.Search=o}),ace.define("ace/keyboard/hash_handler",["require","exports","module","ace/lib/keys","ace/lib/useragent"],function(e,t,n){"use strict";function a(e){return typeof e=="object"&&e.bindKey&&e.bindKey.position||(e.isDefault?-100:0)}var r=this&&this.__extends||function(){var e=function(t,n){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},e(t,n)};return function(t,n){function r(){this.constructor=t}if(typeof n!="function"&&n!==null)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");e(t,n),t.prototype=n===null?Object.create(n):(r.prototype=n.prototype,new r)}}(),i=e("../lib/keys"),s=e("../lib/useragent"),o=i.KEY_MODS,u=function(){function e(e,t){this.$init(e,t,!1)}return e.prototype.$init=function(e,t,n){this.platform=t||(s.isMac?"mac":"win"),this.commands={},this.commandKeyBinding={},this.addCommands(e),this.$singleCommand=n},e.prototype.addCommand=function(e){this.commands[e.name]&&this.removeCommand(e),this.commands[e.name]=e,e.bindKey&&this._buildKeyHash(e)},e.prototype.removeCommand=function(e,t){var n=e&&(typeof e=="string"?e:e.name);e=this.commands[n],t||delete this.commands[n];var r=this.commandKeyBinding;for(var i in r){var s=r[i];if(s==e)delete r[i];else if(Array.isArray(s)){var o=s.indexOf(e);o!=-1&&(s.splice(o,1),s.length==1&&(r[i]=s[0]))}}},e.prototype.bindKey=function(e,t,n){typeof e=="object"&&e&&(n==undefined&&(n=e.position),e=e[this.platform]);if(!e)return;if(typeof t=="function")return this.addCommand({exec:t,bindKey:e,name:t.name||e});e.split("|").forEach(function(e){var r="";if(e.indexOf(" ")!=-1){var i=e.split(/\s+/);e=i.pop(),i.forEach(function(e){var t=this.parseKeys(e),n=o[t.hashId]+t.key;r+=(r?" ":"")+n,this._addCommandToBinding(r,"chainKeys")},this),r+=" "}var s=this.parseKeys(e),u=o[s.hashId]+s.key;this._addCommandToBinding(r+u,t,n)},this)},e.prototype._addCommandToBinding=function(e,t,n){var r=this.commandKeyBinding,i;if(!t)delete r[e];else if(!r[e]||this.$singleCommand)r[e]=t;else{Array.isArray(r[e])?(i=r[e].indexOf(t))!=-1&&r[e].splice(i,1):r[e]=[r[e]],typeof n!="number"&&(n=a(t));var s=r[e];for(i=0;in)break}s.splice(i,0,t)}},e.prototype.addCommands=function(e){e&&Object.keys(e).forEach(function(t){var n=e[t];if(!n)return;if(typeof n=="string")return this.bindKey(n,t);typeof n=="function"&&(n={exec:n});if(typeof n!="object")return;n.name||(n.name=t),this.addCommand(n)},this)},e.prototype.removeCommands=function(e){Object.keys(e).forEach(function(t){this.removeCommand(e[t])},this)},e.prototype.bindKeys=function(e){Object.keys(e).forEach(function(t){this.bindKey(t,e[t])},this)},e.prototype._buildKeyHash=function(e){this.bindKey(e.bindKey,e)},e.prototype.parseKeys=function(e){var t=e.toLowerCase().split(/[\-\+]([\-\+])?/).filter(function(e){return e}),n=t.pop(),r=i[n];if(i.FUNCTION_KEYS[r])n=i.FUNCTION_KEYS[r].toLowerCase();else{if(!t.length)return{key:n,hashId:-1};if(t.length==1&&t[0]=="shift")return{key:n.toUpperCase(),hashId:-1}}var s=0;for(var o=t.length;o--;){var u=i.KEY_MODS[t[o]];if(u==null)return typeof console!="undefined"&&console.error("invalid modifier "+t[o]+" in "+e),!1;s|=u}return{key:n,hashId:s}},e.prototype.findKeyCommand=function(e,t){var n=o[e]+t;return this.commandKeyBinding[n]},e.prototype.handleKeyboard=function(e,t,n,r){if(r<0)return;var i=o[t]+n,s=this.commandKeyBinding[i];e.$keyChain&&(e.$keyChain+=" "+i,s=this.commandKeyBinding[e.$keyChain]||s);if(s)if(s=="chainKeys"||s[s.length-1]=="chainKeys")return e.$keyChain=e.$keyChain||i,{command:"null"};if(e.$keyChain)if(!!t&&t!=4||n.length!=1){if(t==-1||r>0)e.$keyChain=""}else e.$keyChain=e.$keyChain.slice(0,-i.length-1);return{command:s}},e.prototype.getStatusText=function(e,t){return t.$keyChain||""},e}(),f=function(e){function t(t,n){var r=e.call(this,t,n)||this;return r.$singleCommand=!0,r}return r(t,e),t}(u);f.call=function(e,t,n){u.prototype.$init.call(e,t,n,!0)},u.call=function(e,t,n){u.prototype.$init.call(e,t,n,!1)},t.HashHandler=f,t.MultiHashHandler=u}),ace.define("ace/commands/command_manager",["require","exports","module","ace/lib/oop","ace/keyboard/hash_handler","ace/lib/event_emitter"],function(e,t,n){"use strict";var r=this&&this.__extends||function(){var e=function(t,n){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},e(t,n)};return function(t,n){function r(){this.constructor=t}if(typeof n!="function"&&n!==null)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");e(t,n),t.prototype=n===null?Object.create(n):(r.prototype=n.prototype,new r)}}(),i=e("../lib/oop"),s=e("../keyboard/hash_handler").MultiHashHandler,o=e("../lib/event_emitter").EventEmitter,u=function(e){function t(t,n){var r=e.call(this,n,t)||this;return r.byName=r.commands,r.setDefaultHandler("exec",function(e){return e.args?e.command.exec(e.editor,e.args,e.event,!1):e.command.exec(e.editor,{},e.event,!0)}),r}return r(t,e),t.prototype.exec=function(e,t,n){if(Array.isArray(e)){for(var r=e.length;r--;)if(this.exec(e[r],t,n))return!0;return!1}typeof e=="string"&&(e=this.commands[e]);if(!this.canExecute(e,t))return!1;var i={editor:t,command:e,args:n};return i.returnValue=this._emit("exec",i),this._signal("afterExec",i),i.returnValue===!1?!1:!0},t.prototype.canExecute=function(e,t){return typeof e=="string"&&(e=this.commands[e]),e?t&&t.$readOnly&&!e.readOnly?!1:this.$checkCommandState!=0&&e.isAvailable&&!e.isAvailable(t)?!1:!0:!1},t.prototype.toggleRecording=function(e){if(this.$inReplay)return;return e&&e._emit("changeStatus"),this.recording?(this.macro.pop(),this.off("exec",this.$addCommandToMacro),this.macro.length||(this.macro=this.oldMacro),this.recording=!1):(this.$addCommandToMacro||(this.$addCommandToMacro=function(e){this.macro.push([e.command,e.args])}.bind(this)),this.oldMacro=this.macro,this.macro=[],this.on("exec",this.$addCommandToMacro),this.recording=!0)},t.prototype.replay=function(e){if(this.$inReplay||!this.macro)return;if(this.recording)return this.toggleRecording(e);try{this.$inReplay=!0,this.macro.forEach(function(t){typeof t=="string"?this.exec(t,e):this.exec(t[0],e,t[1])},this)}finally{this.$inReplay=!1}},t.prototype.trimMacro=function(e){return e.map(function(e){return typeof e[0]!="string"&&(e[0]=e[0].name),e[1]||(e=e[0]),e})},t}(s);i.implement(u.prototype,o),t.CommandManager=u}),ace.define("ace/commands/default_commands",["require","exports","module","ace/lib/lang","ace/config","ace/range"],function(e,t,n){"use strict";function o(e,t){return{win:e,mac:t}}var r=e("../lib/lang"),i=e("../config"),s=e("../range").Range;t.commands=[{name:"showSettingsMenu",description:"Show settings menu",bindKey:o("Ctrl-,","Command-,"),exec:function(e){i.loadModule("ace/ext/settings_menu",function(t){t.init(e),e.showSettingsMenu()})},readOnly:!0},{name:"goToNextError",description:"Go to next error",bindKey:o("Alt-E","F4"),exec:function(e){i.loadModule("ace/ext/error_marker",function(t){t.showErrorMarker(e,1)})},scrollIntoView:"animate",readOnly:!0},{name:"goToPreviousError",description:"Go to previous error",bindKey:o("Alt-Shift-E","Shift-F4"),exec:function(e){i.loadModule("ace/ext/error_marker",function(t){t.showErrorMarker(e,-1)})},scrollIntoView:"animate",readOnly:!0},{name:"selectall",description:"Select all",bindKey:o("Ctrl-A","Command-A"),exec:function(e){e.selectAll()},readOnly:!0},{name:"centerselection",description:"Center selection",bindKey:o(null,"Ctrl-L"),exec:function(e){e.centerSelection()},readOnly:!0},{name:"gotoline",description:"Go to line...",bindKey:o("Ctrl-L","Command-L"),exec:function(e,t){typeof t=="number"&&!isNaN(t)&&e.gotoLine(t),e.prompt({$type:"gotoLine"})},readOnly:!0},{name:"fold",bindKey:o("Alt-L|Ctrl-F1","Command-Alt-L|Command-F1"),exec:function(e){e.session.toggleFold(!1)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"unfold",bindKey:o("Alt-Shift-L|Ctrl-Shift-F1","Command-Alt-Shift-L|Command-Shift-F1"),exec:function(e){e.session.toggleFold(!0)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"toggleFoldWidget",description:"Toggle fold widget",bindKey:o("F2","F2"),exec:function(e){e.session.toggleFoldWidget()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"toggleParentFoldWidget",description:"Toggle parent fold widget",bindKey:o("Alt-F2","Alt-F2"),exec:function(e){e.session.toggleFoldWidget(!0)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"foldall",description:"Fold all",bindKey:o(null,"Ctrl-Command-Option-0"),exec:function(e){e.session.foldAll()},scrollIntoView:"center",readOnly:!0},{name:"foldAllComments",description:"Fold all comments",bindKey:o(null,"Ctrl-Command-Option-0"),exec:function(e){e.session.foldAllComments()},scrollIntoView:"center",readOnly:!0},{name:"foldOther",description:"Fold other",bindKey:o("Alt-0","Command-Option-0"),exec:function(e){e.session.foldAll(),e.session.unfold(e.selection.getAllRanges())},scrollIntoView:"center",readOnly:!0},{name:"unfoldall",description:"Unfold all",bindKey:o("Alt-Shift-0","Command-Option-Shift-0"),exec:function(e){e.session.unfold()},scrollIntoView:"center",readOnly:!0},{name:"findnext",description:"Find next",bindKey:o("Ctrl-K","Command-G"),exec:function(e){e.findNext()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"findprevious",description:"Find previous",bindKey:o("Ctrl-Shift-K","Command-Shift-G"),exec:function(e){e.findPrevious()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"selectOrFindNext",description:"Select or find next",bindKey:o("Alt-K","Ctrl-G"),exec:function(e){e.selection.isEmpty()?e.selection.selectWord():e.findNext()},readOnly:!0},{name:"selectOrFindPrevious",description:"Select or find previous",bindKey:o("Alt-Shift-K","Ctrl-Shift-G"),exec:function(e){e.selection.isEmpty()?e.selection.selectWord():e.findPrevious()},readOnly:!0},{name:"find",description:"Find",bindKey:o("Ctrl-F","Command-F"),exec:function(e){i.loadModule("ace/ext/searchbox",function(t){t.Search(e)})},readOnly:!0},{name:"overwrite",description:"Overwrite",bindKey:"Insert",exec:function(e){e.toggleOverwrite()},readOnly:!0},{name:"selecttostart",description:"Select to start",bindKey:o("Ctrl-Shift-Home","Command-Shift-Home|Command-Shift-Up"),exec:function(e){e.getSelection().selectFileStart()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"gotostart",description:"Go to start",bindKey:o("Ctrl-Home","Command-Home|Command-Up"),exec:function(e){e.navigateFileStart()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"selectup",description:"Select up",bindKey:o("Shift-Up","Shift-Up|Ctrl-Shift-P"),exec:function(e){e.getSelection().selectUp()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"golineup",description:"Go line up",bindKey:o("Up","Up|Ctrl-P"),exec:function(e,t){e.navigateUp(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttoend",description:"Select to end",bindKey:o("Ctrl-Shift-End","Command-Shift-End|Command-Shift-Down"),exec:function(e){e.getSelection().selectFileEnd()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"gotoend",description:"Go to end",bindKey:o("Ctrl-End","Command-End|Command-Down"),exec:function(e){e.navigateFileEnd()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"selectdown",description:"Select down",bindKey:o("Shift-Down","Shift-Down|Ctrl-Shift-N"),exec:function(e){e.getSelection().selectDown()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"golinedown",description:"Go line down",bindKey:o("Down","Down|Ctrl-N"),exec:function(e,t){e.navigateDown(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectwordleft",description:"Select word left",bindKey:o("Ctrl-Shift-Left","Option-Shift-Left"),exec:function(e){e.getSelection().selectWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotowordleft",description:"Go to word left",bindKey:o("Ctrl-Left","Option-Left"),exec:function(e){e.navigateWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttolinestart",description:"Select to line start",bindKey:o("Alt-Shift-Left","Command-Shift-Left|Ctrl-Shift-A"),exec:function(e){e.getSelection().selectLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotolinestart",description:"Go to line start",bindKey:o("Alt-Left|Home","Command-Left|Home|Ctrl-A"),exec:function(e){e.navigateLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectleft",description:"Select left",bindKey:o("Shift-Left","Shift-Left|Ctrl-Shift-B"),exec:function(e){e.getSelection().selectLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotoleft",description:"Go to left",bindKey:o("Left","Left|Ctrl-B"),exec:function(e,t){e.navigateLeft(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectwordright",description:"Select word right",bindKey:o("Ctrl-Shift-Right","Option-Shift-Right"),exec:function(e){e.getSelection().selectWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotowordright",description:"Go to word right",bindKey:o("Ctrl-Right","Option-Right"),exec:function(e){e.navigateWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttolineend",description:"Select to line end",bindKey:o("Alt-Shift-Right","Command-Shift-Right|Shift-End|Ctrl-Shift-E"),exec:function(e){e.getSelection().selectLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotolineend",description:"Go to line end",bindKey:o("Alt-Right|End","Command-Right|End|Ctrl-E"),exec:function(e){e.navigateLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectright",description:"Select right",bindKey:o("Shift-Right","Shift-Right"),exec:function(e){e.getSelection().selectRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotoright",description:"Go to right",bindKey:o("Right","Right|Ctrl-F"),exec:function(e,t){e.navigateRight(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectpagedown",description:"Select page down",bindKey:"Shift-PageDown",exec:function(e){e.selectPageDown()},readOnly:!0},{name:"pagedown",description:"Page down",bindKey:o(null,"Option-PageDown"),exec:function(e){e.scrollPageDown()},readOnly:!0},{name:"gotopagedown",description:"Go to page down",bindKey:o("PageDown","PageDown|Ctrl-V"),exec:function(e){e.gotoPageDown()},readOnly:!0},{name:"selectpageup",description:"Select page up",bindKey:"Shift-PageUp",exec:function(e){e.selectPageUp()},readOnly:!0},{name:"pageup",description:"Page up",bindKey:o(null,"Option-PageUp"),exec:function(e){e.scrollPageUp()},readOnly:!0},{name:"gotopageup",description:"Go to page up",bindKey:"PageUp",exec:function(e){e.gotoPageUp()},readOnly:!0},{name:"scrollup",description:"Scroll up",bindKey:o("Ctrl-Up",null),exec:function(e){e.renderer.scrollBy(0,-2*e.renderer.layerConfig.lineHeight)},readOnly:!0},{name:"scrolldown",description:"Scroll down",bindKey:o("Ctrl-Down",null),exec:function(e){e.renderer.scrollBy(0,2*e.renderer.layerConfig.lineHeight)},readOnly:!0},{name:"selectlinestart",description:"Select line start",bindKey:"Shift-Home",exec:function(e){e.getSelection().selectLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectlineend",description:"Select line end",bindKey:"Shift-End",exec:function(e){e.getSelection().selectLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"togglerecording",description:"Toggle recording",bindKey:o("Ctrl-Alt-E","Command-Option-E"),exec:function(e){e.commands.toggleRecording(e)},readOnly:!0},{name:"replaymacro",description:"Replay macro",bindKey:o("Ctrl-Shift-E","Command-Shift-E"),exec:function(e){e.commands.replay(e)},readOnly:!0},{name:"jumptomatching",description:"Jump to matching",bindKey:o("Ctrl-\\|Ctrl-P","Command-\\"),exec:function(e){e.jumpToMatching()},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"selecttomatching",description:"Select to matching",bindKey:o("Ctrl-Shift-\\|Ctrl-Shift-P","Command-Shift-\\"),exec:function(e){e.jumpToMatching(!0)},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"expandToMatching",description:"Expand to matching",bindKey:o("Ctrl-Shift-M","Ctrl-Shift-M"),exec:function(e){e.jumpToMatching(!0,!0)},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"passKeysToBrowser",description:"Pass keys to browser",bindKey:o(null,null),exec:function(){},passEvent:!0,readOnly:!0},{name:"copy",description:"Copy",exec:function(e){},readOnly:!0},{name:"cut",description:"Cut",exec:function(e){var t=e.$copyWithEmptySelection&&e.selection.isEmpty(),n=t?e.selection.getLineRange():e.selection.getRange();e._emit("cut",n),n.isEmpty()||e.session.remove(n),e.clearSelection()},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"paste",description:"Paste",exec:function(e,t){e.$handlePaste(t)},scrollIntoView:"cursor"},{name:"removeline",description:"Remove line",bindKey:o("Ctrl-D","Command-D"),exec:function(e){e.removeLines()},scrollIntoView:"cursor",multiSelectAction:"forEachLine"},{name:"duplicateSelection",description:"Duplicate selection",bindKey:o("Ctrl-Shift-D","Command-Shift-D"),exec:function(e){e.duplicateSelection()},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"sortlines",description:"Sort lines",bindKey:o("Ctrl-Alt-S","Command-Alt-S"),exec:function(e){e.sortLines()},scrollIntoView:"selection",multiSelectAction:"forEachLine"},{name:"togglecomment",description:"Toggle comment",bindKey:o("Ctrl-/","Command-/"),exec:function(e){e.toggleCommentLines()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"toggleBlockComment",description:"Toggle block comment",bindKey:o("Ctrl-Shift-/","Command-Shift-/"),exec:function(e){e.toggleBlockComment()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"modifyNumberUp",description:"Modify number up",bindKey:o("Ctrl-Shift-Up","Alt-Shift-Up"),exec:function(e){e.modifyNumber(1)},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"modifyNumberDown",description:"Modify number down",bindKey:o("Ctrl-Shift-Down","Alt-Shift-Down"),exec:function(e){e.modifyNumber(-1)},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"replace",description:"Replace",bindKey:o("Ctrl-H","Command-Option-F"),exec:function(e){i.loadModule("ace/ext/searchbox",function(t){t.Search(e,!0)})}},{name:"undo",description:"Undo",bindKey:o("Ctrl-Z","Command-Z"),exec:function(e){e.undo()}},{name:"redo",description:"Redo",bindKey:o("Ctrl-Shift-Z|Ctrl-Y","Command-Shift-Z|Command-Y"),exec:function(e){e.redo()}},{name:"copylinesup",description:"Copy lines up",bindKey:o("Alt-Shift-Up","Command-Option-Up"),exec:function(e){e.copyLinesUp()},scrollIntoView:"cursor"},{name:"movelinesup",description:"Move lines up",bindKey:o("Alt-Up","Option-Up"),exec:function(e){e.moveLinesUp()},scrollIntoView:"cursor"},{name:"copylinesdown",description:"Copy lines down",bindKey:o("Alt-Shift-Down","Command-Option-Down"),exec:function(e){e.copyLinesDown()},scrollIntoView:"cursor"},{name:"movelinesdown",description:"Move lines down",bindKey:o("Alt-Down","Option-Down"),exec:function(e){e.moveLinesDown()},scrollIntoView:"cursor"},{name:"del",description:"Delete",bindKey:o("Delete","Delete|Ctrl-D|Shift-Delete"),exec:function(e){e.remove("right")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"backspace",description:"Backspace",bindKey:o("Shift-Backspace|Backspace","Ctrl-Backspace|Shift-Backspace|Backspace|Ctrl-H"),exec:function(e){e.remove("left")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"cut_or_delete",description:"Cut or delete",bindKey:o("Shift-Delete",null),exec:function(e){if(!e.selection.isEmpty())return!1;e.remove("left")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolinestart",description:"Remove to line start",bindKey:o("Alt-Backspace","Command-Backspace"),exec:function(e){e.removeToLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolineend",description:"Remove to line end",bindKey:o("Alt-Delete","Ctrl-K|Command-Delete"),exec:function(e){e.removeToLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolinestarthard",description:"Remove to line start hard",bindKey:o("Ctrl-Shift-Backspace",null),exec:function(e){var t=e.selection.getRange();t.start.column=0,e.session.remove(t)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolineendhard",description:"Remove to line end hard",bindKey:o("Ctrl-Shift-Delete",null),exec:function(e){var t=e.selection.getRange();t.end.column=Number.MAX_VALUE,e.session.remove(t)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removewordleft",description:"Remove word left",bindKey:o("Ctrl-Backspace","Alt-Backspace|Ctrl-Alt-Backspace"),exec:function(e){e.removeWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removewordright",description:"Remove word right",bindKey:o("Ctrl-Delete","Alt-Delete"),exec:function(e){e.removeWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"outdent",description:"Outdent",bindKey:o("Shift-Tab","Shift-Tab"),exec:function(e){e.blockOutdent()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"indent",description:"Indent",bindKey:o("Tab","Tab"),exec:function(e){e.indent()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"blockoutdent",description:"Block outdent",bindKey:o("Ctrl-[","Ctrl-["),exec:function(e){e.blockOutdent()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"blockindent",description:"Block indent",bindKey:o("Ctrl-]","Ctrl-]"),exec:function(e){e.blockIndent()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"insertstring",description:"Insert string",exec:function(e,t){e.insert(t)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"inserttext",description:"Insert text",exec:function(e,t){e.insert(r.stringRepeat(t.text||"",t.times||1))},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"splitline",description:"Split line",bindKey:o(null,"Ctrl-O"),exec:function(e){e.splitLine()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"transposeletters",description:"Transpose letters",bindKey:o("Alt-Shift-X","Ctrl-T"),exec:function(e){e.transposeLetters()},multiSelectAction:function(e){e.transposeSelections(1)},scrollIntoView:"cursor"},{name:"touppercase",description:"To uppercase",bindKey:o("Ctrl-U","Ctrl-U"),exec:function(e){e.toUpperCase()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"tolowercase",description:"To lowercase",bindKey:o("Ctrl-Shift-U","Ctrl-Shift-U"),exec:function(e){e.toLowerCase()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"autoindent",description:"Auto Indent",bindKey:o(null,null),exec:function(e){e.autoIndent()},scrollIntoView:"animate"},{name:"expandtoline",description:"Expand to line",bindKey:o("Ctrl-Shift-L","Command-Shift-L"),exec:function(e){var t=e.selection.getRange();t.start.column=t.end.column=0,t.end.row++,e.selection.setRange(t,!1)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"openlink",bindKey:o("Ctrl+F3","F3"),exec:function(e){e.openLink()}},{name:"joinlines",description:"Join lines",bindKey:o(null,null),exec:function(e){var t=e.selection.isBackwards(),n=t?e.selection.getSelectionLead():e.selection.getSelectionAnchor(),i=t?e.selection.getSelectionAnchor():e.selection.getSelectionLead(),o=e.session.doc.getLine(n.row).length,u=e.session.doc.getTextRange(e.selection.getRange()),a=u.replace(/\n\s*/," ").length,f=e.session.doc.getLine(n.row);for(var l=n.row+1;l<=i.row+1;l++){var c=r.stringTrimLeft(r.stringTrimRight(e.session.doc.getLine(l)));c.length!==0&&(c=" "+c),f+=c}i.row+10?(e.selection.moveCursorTo(n.row,n.column),e.selection.selectTo(n.row,n.column+a)):(o=e.session.doc.getLine(n.row).length>o?o+1:o,e.selection.moveCursorTo(n.row,o))},multiSelectAction:"forEach",readOnly:!0},{name:"invertSelection",description:"Invert selection",bindKey:o(null,null),exec:function(e){var t=e.session.doc.getLength()-1,n=e.session.doc.getLine(t).length,r=e.selection.rangeList.ranges,i=[];r.length<1&&(r=[e.selection.getRange()]);for(var o=0;ot[n].column&&n++,s.unshift(n,0),t.splice.apply(t,s),this.$updateRows()}},e.prototype.$updateRows=function(){var e=this.session.lineWidgets;if(!e)return;var t=!0;e.forEach(function(e,n){if(e){t=!1,e.row=n;while(e.$oldWidget)e.$oldWidget.row=n,e=e.$oldWidget}}),t&&(this.session.lineWidgets=null)},e.prototype.$registerLineWidget=function(e){this.session.lineWidgets||(this.session.lineWidgets=new Array(this.session.getLength()));var t=this.session.lineWidgets[e.row];return t&&(e.$oldWidget=t,t.el&&t.el.parentNode&&(t.el.parentNode.removeChild(t.el),t._inDocument=!1)),this.session.lineWidgets[e.row]=e,e},e.prototype.addLineWidget=function(e){this.$registerLineWidget(e),e.session=this.session;if(!this.editor)return e;var t=this.editor.renderer;e.html&&!e.el&&(e.el=r.createElement("div"),e.el.innerHTML=e.html),e.text&&!e.el&&(e.el=r.createElement("div"),e.el.textContent=e.text),e.el&&(r.addCssClass(e.el,"ace_lineWidgetContainer"),e.className&&r.addCssClass(e.el,e.className),e.el.style.position="absolute",e.el.style.zIndex="5",t.container.appendChild(e.el),e._inDocument=!0,e.coverGutter||(e.el.style.zIndex="3"),e.pixelHeight==null&&(e.pixelHeight=e.el.offsetHeight)),e.rowCount==null&&(e.rowCount=e.pixelHeight/t.layerConfig.lineHeight);var n=this.session.getFoldAt(e.row,0);e.$fold=n;if(n){var i=this.session.lineWidgets;e.row==n.end.row&&!i[n.start.row]?i[n.start.row]=e:e.hidden=!0}return this.session._emit("changeFold",{data:{start:{row:e.row}}}),this.$updateRows(),this.renderWidgets(null,t),this.onWidgetChanged(e),e},e.prototype.removeLineWidget=function(e){e._inDocument=!1,e.session=null,e.el&&e.el.parentNode&&e.el.parentNode.removeChild(e.el);if(e.editor&&e.editor.destroy)try{e.editor.destroy()}catch(t){}if(this.session.lineWidgets){var n=this.session.lineWidgets[e.row];if(n==e)this.session.lineWidgets[e.row]=e.$oldWidget,e.$oldWidget&&this.onWidgetChanged(e.$oldWidget);else while(n){if(n.$oldWidget==e){n.$oldWidget=e.$oldWidget;break}n=n.$oldWidget}}this.session._emit("changeFold",{data:{start:{row:e.row}}}),this.$updateRows()},e.prototype.getWidgetsAtRow=function(e){var t=this.session.lineWidgets,n=t&&t[e],r=[];while(n)r.push(n),n=n.$oldWidget;return r},e.prototype.onWidgetChanged=function(e){this.session._changedWidgets.push(e),this.editor&&this.editor.renderer.updateFull()},e.prototype.measureWidgets=function(e,t){var n=this.session._changedWidgets,r=t.layerConfig;if(!n||!n.length)return;var i=Infinity;for(var s=0;s0&&!r[i])i--;this.firstRow=n.firstRow,this.lastRow=n.lastRow,t.$cursorLayer.config=n;for(var o=i;o<=s;o++){var u=r[o];if(!u||!u.el)continue;if(u.hidden){u.el.style.top=-100-(u.pixelHeight||0)+"px";continue}u._inDocument||(u._inDocument=!0,t.container.appendChild(u.el));var a=t.$cursorLayer.getPixelPosition({row:o,column:0},!0).top;u.coverLine||(a+=n.lineHeight*this.session.getRowLineCount(u.row)),u.el.style.top=a-n.offset+"px";var f=u.coverGutter?0:t.gutterWidth;u.fixedWidth||(f-=t.scrollLeft),u.el.style.left=f+"px",u.fullWidth&&u.screenWidth&&(u.el.style.minWidth=n.width+2*n.padding+"px"),u.fixedWidth?u.el.style.right=t.scrollBar.getWidth()+"px":u.el.style.right=""}},e}();t.LineWidgets=i}),ace.define("ace/keyboard/gutter_handler",["require","exports","module","ace/lib/keys","ace/mouse/default_gutter_handler"],function(e,t,n){"use strict";var r=e("../lib/keys"),i=e("../mouse/default_gutter_handler").GutterTooltip,s=function(){function e(e){this.editor=e,this.gutterLayer=e.renderer.$gutterLayer,this.element=e.renderer.$gutter,this.lines=e.renderer.$gutterLayer.$lines,this.activeRowIndex=null,this.activeLane=null,this.annotationTooltip=new i(this.editor)}return e.prototype.addListener=function(){this.element.addEventListener("keydown",this.$onGutterKeyDown.bind(this)),this.element.addEventListener("focusout",this.$blurGutter.bind(this)),this.editor.on("mousewheel",this.$blurGutter.bind(this))},e.prototype.removeListener=function(){this.element.removeEventListener("keydown",this.$onGutterKeyDown.bind(this)),this.element.removeEventListener("focusout",this.$blurGutter.bind(this)),this.editor.off("mousewheel",this.$blurGutter.bind(this))},e.prototype.$onGutterKeyDown=function(e){if(this.annotationTooltip.isOpen){e.preventDefault(),e.keyCode===r.escape&&this.annotationTooltip.hideTooltip();return}if(e.target===this.element){if(e.keyCode!=r["enter"])return;e.preventDefault();var t=this.editor.getCursorPosition().row;this.editor.isRowVisible(t)||this.editor.scrollToLine(t,!0,!0),setTimeout(function(){var e=this.$rowToRowIndex(this.gutterLayer.$cursorCell.row),t=this.$findNearestFoldWidget(e),n=this.$findNearestAnnotation(e);if(t===null&&n===null)return;if(t===null&&n!==null){this.activeRowIndex=n,this.activeLane="annotation",this.$focusAnnotation(this.activeRowIndex);return}if(t!==null&&n===null){this.activeRowIndex=t,this.activeLane="fold",this.$focusFoldWidget(this.activeRowIndex);return}if(Math.abs(n-e)0||e+t=0&&this.$isFoldWidgetVisible(e-t))return e-t;if(e+t<=this.lines.getLength()-1&&this.$isFoldWidgetVisible(e+t))return e+t}return null},e.prototype.$findNearestAnnotation=function(e){if(this.$isAnnotationVisible(e))return e;var t=0;while(e-t>0||e+t=0&&this.$isAnnotationVisible(e-t))return e-t;if(e+t<=this.lines.getLength()-1&&this.$isAnnotationVisible(e+t))return e+t}return null},e.prototype.$focusFoldWidget=function(e){if(e==null)return;var t=this.$getFoldWidget(e);t.classList.add(this.editor.renderer.keyboardFocusClassName),t.focus()},e.prototype.$focusAnnotation=function(e){if(e==null)return;var t=this.$getAnnotation(e);t.classList.add(this.editor.renderer.keyboardFocusClassName),t.focus()},e.prototype.$blurFoldWidget=function(e){var t=this.$getFoldWidget(e);t.classList.remove(this.editor.renderer.keyboardFocusClassName),t.blur()},e.prototype.$blurAnnotation=function(e){var t=this.$getAnnotation(e);t.classList.remove(this.editor.renderer.keyboardFocusClassName),t.blur()},e.prototype.$moveFoldWidgetUp=function(){var e=this.activeRowIndex;while(e>0){e--;if(this.$isFoldWidgetVisible(e)){this.$blurFoldWidget(this.activeRowIndex),this.activeRowIndex=e,this.$focusFoldWidget(this.activeRowIndex);return}}return},e.prototype.$moveFoldWidgetDown=function(){var e=this.activeRowIndex;while(e0){e--;if(this.$isAnnotationVisible(e)){this.$blurAnnotation(this.activeRowIndex),this.activeRowIndex=e,this.$focusAnnotation(this.activeRowIndex);return}}return},e.prototype.$moveAnnotationDown=function(){var e=this.activeRowIndex;while(e=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")},i=e("./lib/oop"),s=e("./lib/dom"),o=e("./lib/lang"),u=e("./lib/useragent"),a=e("./keyboard/textinput").TextInput,f=e("./mouse/mouse_handler").MouseHandler,l=e("./mouse/fold_handler").FoldHandler,c=e("./keyboard/keybinding").KeyBinding,h=e("./edit_session").EditSession,p=e("./search").Search,d=e("./range").Range,v=e("./lib/event_emitter").EventEmitter,m=e("./commands/command_manager").CommandManager,g=e("./commands/default_commands").commands,y=e("./config"),b=e("./token_iterator").TokenIterator,w=e("./line_widgets").LineWidgets,E=e("./keyboard/gutter_handler").GutterKeyboardHandler,S=e("./config").nls,x=e("./clipboard"),T=e("./lib/keys"),N=function(){function e(t,n,r){this.session,this.$toDestroy=[];var i=t.getContainerElement();this.container=i,this.renderer=t,this.id="editor"+ ++e.$uid,this.commands=new m(u.isMac?"mac":"win",g),typeof document=="object"&&(this.textInput=new a(t.getTextAreaContainer(),this),this.renderer.textarea=this.textInput.getElement(),this.$mouseHandler=new f(this),new l(this)),this.keyBinding=new c(this),this.$search=(new p).set({wrap:!0}),this.$historyTracker=this.$historyTracker.bind(this),this.commands.on("exec",this.$historyTracker),this.$initOperationListeners(),this._$emitInputEvent=o.delayedCall(function(){this._signal("input",{}),this.session&&!this.session.destroyed&&this.session.bgTokenizer.scheduleStart()}.bind(this)),this.on("change",function(e,t){t._$emitInputEvent.schedule(31)}),this.setSession(n||r&&r.session||new h("")),y.resetOptions(this),r&&this.setOptions(r),y._signal("editor",this)}return e.prototype.$initOperationListeners=function(){this.commands.on("exec",this.startOperation.bind(this),!0),this.commands.on("afterExec",this.endOperation.bind(this),!0),this.$opResetTimer=o.delayedCall(this.endOperation.bind(this,!0)),this.on("change",function(){this.curOp||(this.startOperation(),this.curOp.selectionBefore=this.$lastSel),this.curOp.docChanged=!0}.bind(this),!0),this.on("changeSelection",function(){this.curOp||(this.startOperation(),this.curOp.selectionBefore=this.$lastSel),this.curOp.selectionChanged=!0}.bind(this),!0)},e.prototype.startOperation=function(e){if(this.curOp){if(!e||this.curOp.command)return;this.prevOp=this.curOp}e||(this.previousCommand=null,e={}),this.$opResetTimer.schedule(),this.curOp=this.session.curOp={command:e.command||{},args:e.args,scrollTop:this.renderer.scrollTop},this.curOp.selectionBefore=this.selection.toJSON()},e.prototype.endOperation=function(e){if(this.curOp&&this.session){if(e&&e.returnValue===!1||!this.session)return this.curOp=null;if(e==1&&this.curOp.command&&this.curOp.command.name=="mouse")return;this._signal("beforeEndOperation");if(!this.curOp)return;var t=this.curOp.command,n=t&&t.scrollIntoView;if(n){switch(n){case"center-animate":n="animate";case"center":this.renderer.scrollCursorIntoView(null,.5);break;case"animate":case"cursor":this.renderer.scrollCursorIntoView();break;case"selectionPart":var r=this.selection.getRange(),i=this.renderer.layerConfig;(r.start.row>=i.lastRow||r.end.row<=i.firstRow)&&this.renderer.scrollSelectionIntoView(this.selection.anchor,this.selection.lead);break;default:}n=="animate"&&this.renderer.animateScrolling(this.curOp.scrollTop)}var s=this.selection.toJSON();this.curOp.selectionAfter=s,this.$lastSel=this.selection.toJSON(),this.session.getUndoManager().addSelection(s),this.prevOp=this.curOp,this.curOp=null}},e.prototype.$historyTracker=function(e){if(!this.$mergeUndoDeltas)return;var t=this.prevOp,n=this.$mergeableCommands,r=t.command&&e.command.name==t.command.name;if(e.command.name=="insertstring"){var i=e.args;this.mergeNextCommand===undefined&&(this.mergeNextCommand=!0),r=r&&this.mergeNextCommand&&(!/\s/.test(i)||/\s/.test(t.args)),this.mergeNextCommand=!0}else r=r&&n.indexOf(e.command.name)!==-1;this.$mergeUndoDeltas!="always"&&Date.now()-this.sequenceStartTime>2e3&&(r=!1),r?this.session.mergeUndoDeltas=!0:n.indexOf(e.command.name)!==-1&&(this.sequenceStartTime=Date.now())},e.prototype.setKeyboardHandler=function(e,t){if(e&&typeof e=="string"&&e!="ace"){this.$keybindingId=e;var n=this;y.loadModule(["keybinding",e],function(r){n.$keybindingId==e&&n.keyBinding.setKeyboardHandler(r&&r.handler),t&&t()})}else this.$keybindingId=null,this.keyBinding.setKeyboardHandler(e),t&&t()},e.prototype.getKeyboardHandler=function(){return this.keyBinding.getKeyboardHandler()},e.prototype.setSession=function(e){if(this.session==e)return;this.curOp&&this.endOperation(),this.curOp={};var t=this.session;if(t){this.session.off("change",this.$onDocumentChange),this.session.off("changeMode",this.$onChangeMode),this.session.off("tokenizerUpdate",this.$onTokenizerUpdate),this.session.off("changeTabSize",this.$onChangeTabSize),this.session.off("changeWrapLimit",this.$onChangeWrapLimit),this.session.off("changeWrapMode",this.$onChangeWrapMode),this.session.off("changeFold",this.$onChangeFold),this.session.off("changeFrontMarker",this.$onChangeFrontMarker),this.session.off("changeBackMarker",this.$onChangeBackMarker),this.session.off("changeBreakpoint",this.$onChangeBreakpoint),this.session.off("changeAnnotation",this.$onChangeAnnotation),this.session.off("changeOverwrite",this.$onCursorChange),this.session.off("changeScrollTop",this.$onScrollTopChange),this.session.off("changeScrollLeft",this.$onScrollLeftChange);var n=this.session.getSelection();n.off("changeCursor",this.$onCursorChange),n.off("changeSelection",this.$onSelectionChange)}this.session=e,e?(this.$onDocumentChange=this.onDocumentChange.bind(this),e.on("change",this.$onDocumentChange),this.renderer.setSession(e),this.$onChangeMode=this.onChangeMode.bind(this),e.on("changeMode",this.$onChangeMode),this.$onTokenizerUpdate=this.onTokenizerUpdate.bind(this),e.on("tokenizerUpdate",this.$onTokenizerUpdate),this.$onChangeTabSize=this.renderer.onChangeTabSize.bind(this.renderer),e.on("changeTabSize",this.$onChangeTabSize),this.$onChangeWrapLimit=this.onChangeWrapLimit.bind(this),e.on("changeWrapLimit",this.$onChangeWrapLimit),this.$onChangeWrapMode=this.onChangeWrapMode.bind(this),e.on("changeWrapMode",this.$onChangeWrapMode),this.$onChangeFold=this.onChangeFold.bind(this),e.on("changeFold",this.$onChangeFold),this.$onChangeFrontMarker=this.onChangeFrontMarker.bind(this),this.session.on("changeFrontMarker",this.$onChangeFrontMarker),this.$onChangeBackMarker=this.onChangeBackMarker.bind(this),this.session.on("changeBackMarker",this.$onChangeBackMarker),this.$onChangeBreakpoint=this.onChangeBreakpoint.bind(this),this.session.on("changeBreakpoint",this.$onChangeBreakpoint),this.$onChangeAnnotation=this.onChangeAnnotation.bind(this),this.session.on("changeAnnotation",this.$onChangeAnnotation),this.$onCursorChange=this.onCursorChange.bind(this),this.session.on("changeOverwrite",this.$onCursorChange),this.$onScrollTopChange=this.onScrollTopChange.bind(this),this.session.on("changeScrollTop",this.$onScrollTopChange),this.$onScrollLeftChange=this.onScrollLeftChange.bind(this),this.session.on("changeScrollLeft",this.$onScrollLeftChange),this.selection=e.getSelection(),this.selection.on("changeCursor",this.$onCursorChange),this.$onSelectionChange=this.onSelectionChange.bind(this),this.selection.on("changeSelection",this.$onSelectionChange),this.onChangeMode(),this.onCursorChange(),this.onScrollTopChange(),this.onScrollLeftChange(),this.onSelectionChange(),this.onChangeFrontMarker(),this.onChangeBackMarker(),this.onChangeBreakpoint(),this.onChangeAnnotation(),this.session.getUseWrapMode()&&this.renderer.adjustWrapLimit(),this.renderer.updateFull()):(this.selection=null,this.renderer.setSession(e)),this._signal("changeSession",{session:e,oldSession:t}),this.curOp=null,t&&t._signal("changeEditor",{oldEditor:this}),e&&e._signal("changeEditor",{editor:this}),e&&!e.destroyed&&e.bgTokenizer.scheduleStart()},e.prototype.getSession=function(){return this.session},e.prototype.setValue=function(e,t){return this.session.doc.setValue(e),t?t==1?this.navigateFileEnd():t==-1&&this.navigateFileStart():this.selectAll(),e},e.prototype.getValue=function(){return this.session.getValue()},e.prototype.getSelection=function(){return this.selection},e.prototype.resize=function(e){this.renderer.onResize(e)},e.prototype.setTheme=function(e,t){this.renderer.setTheme(e,t)},e.prototype.getTheme=function(){return this.renderer.getTheme()},e.prototype.setStyle=function(e){this.renderer.setStyle(e)},e.prototype.unsetStyle=function(e){this.renderer.unsetStyle(e)},e.prototype.getFontSize=function(){return this.getOption("fontSize")||s.computedStyle(this.container).fontSize},e.prototype.setFontSize=function(e){this.setOption("fontSize",e)},e.prototype.$highlightBrackets=function(){if(this.$highlightPending)return;var e=this;this.$highlightPending=!0,setTimeout(function(){e.$highlightPending=!1;var t=e.session;if(!t||t.destroyed)return;t.$bracketHighlight&&(t.$bracketHighlight.markerIds.forEach(function(e){t.removeMarker(e)}),t.$bracketHighlight=null);var n=e.getCursorPosition(),r=e.getKeyboardHandler(),i=r&&r.$getDirectionForHighlight&&r.$getDirectionForHighlight(e),s=t.getMatchingBracketRanges(n,i);if(!s){var o=new b(t,n.row,n.column),u=o.getCurrentToken();if(u&&/\b(?:tag-open|tag-name)/.test(u.type)){var a=t.getMatchingTags(n);a&&(s=[a.openTagName.isEmpty()?a.openTag:a.openTagName,a.closeTagName.isEmpty()?a.closeTag:a.closeTagName])}}!s&&t.$mode.getMatching&&(s=t.$mode.getMatching(e.session));if(!s){e.getHighlightIndentGuides()&&e.renderer.$textLayer.$highlightIndentGuide();return}var f="ace_bracket";Array.isArray(s)?s.length==1&&(f="ace_error_bracket"):s=[s],s.length==2&&(d.comparePoints(s[0].end,s[1].start)==0?s=[d.fromPoints(s[0].start,s[1].end)]:d.comparePoints(s[0].start,s[1].end)==0&&(s=[d.fromPoints(s[1].start,s[0].end)])),t.$bracketHighlight={ranges:s,markerIds:s.map(function(e){return t.addMarker(e,f,"text")})},e.getHighlightIndentGuides()&&e.renderer.$textLayer.$highlightIndentGuide()},50)},e.prototype.focus=function(){this.textInput.focus()},e.prototype.isFocused=function(){return this.textInput.isFocused()},e.prototype.blur=function(){this.textInput.blur()},e.prototype.onFocus=function(e){if(this.$isFocused)return;this.$isFocused=!0,this.renderer.showCursor(),this.renderer.visualizeFocus(),this._emit("focus",e)},e.prototype.onBlur=function(e){if(!this.$isFocused)return;this.$isFocused=!1,this.renderer.hideCursor(),this.renderer.visualizeBlur(),this._emit("blur",e)},e.prototype.$cursorChange=function(){this.renderer.updateCursor(),this.$highlightBrackets(),this.$updateHighlightActiveLine()},e.prototype.onDocumentChange=function(e){var t=this.session.$useWrapMode,n=e.start.row==e.end.row?e.end.row:Infinity;this.renderer.updateLines(e.start.row,n,t),this._signal("change",e),this.$cursorChange()},e.prototype.onTokenizerUpdate=function(e){var t=e.data;this.renderer.updateLines(t.first,t.last)},e.prototype.onScrollTopChange=function(){this.renderer.scrollToY(this.session.getScrollTop())},e.prototype.onScrollLeftChange=function(){this.renderer.scrollToX(this.session.getScrollLeft())},e.prototype.onCursorChange=function(){this.$cursorChange(),this._signal("changeSelection")},e.prototype.$updateHighlightActiveLine=function(){var e=this.getSession(),t;if(this.$highlightActiveLine){if(this.$selectionStyle!="line"||!this.selection.isMultiLine())t=this.getCursorPosition();this.renderer.theme&&this.renderer.theme.$selectionColorConflict&&!this.selection.isEmpty()&&(t=!1),this.renderer.$maxLines&&this.session.getLength()===1&&!(this.renderer.$minLines>1)&&(t=!1)}if(e.$highlightLineMarker&&!t)e.removeMarker(e.$highlightLineMarker.id),e.$highlightLineMarker=null;else if(!e.$highlightLineMarker&&t){var n=new d(t.row,t.column,t.row,Infinity);n.id=e.addMarker(n,"ace_active-line","screenLine"),e.$highlightLineMarker=n}else t&&(e.$highlightLineMarker.start.row=t.row,e.$highlightLineMarker.end.row=t.row,e.$highlightLineMarker.start.column=t.column,e._signal("changeBackMarker"))},e.prototype.onSelectionChange=function(e){var t=this.session;t.$selectionMarker&&t.removeMarker(t.$selectionMarker),t.$selectionMarker=null;if(!this.selection.isEmpty()){var n=this.selection.getRange(),r=this.getSelectionStyle();t.$selectionMarker=t.addMarker(n,"ace_selection",r)}else this.$updateHighlightActiveLine();var i=this.$highlightSelectedWord&&this.$getSelectionHighLightRegexp();this.session.highlight(i),this._signal("changeSelection")},e.prototype.$getSelectionHighLightRegexp=function(){var e=this.session,t=this.getSelectionRange();if(t.isEmpty()||t.isMultiLine())return;var n=t.start.column,r=t.end.column,i=e.getLine(t.start.row),s=i.substring(n,r);if(s.length>5e3||!/[\w\d]/.test(s))return;var o=this.$search.$assembleRegExp({wholeWord:!0,caseSensitive:!0,needle:s}),u=i.substring(n-1,r+1);if(!o.test(u))return;return o},e.prototype.onChangeFrontMarker=function(){this.renderer.updateFrontMarkers()},e.prototype.onChangeBackMarker=function(){this.renderer.updateBackMarkers()},e.prototype.onChangeBreakpoint=function(){this.renderer.updateBreakpoints()},e.prototype.onChangeAnnotation=function(){this.renderer.setAnnotations(this.session.getAnnotations())},e.prototype.onChangeMode=function(e){this.renderer.updateText(),this._emit("changeMode",e)},e.prototype.onChangeWrapLimit=function(){this.renderer.updateFull()},e.prototype.onChangeWrapMode=function(){this.renderer.onResize(!0)},e.prototype.onChangeFold=function(){this.$updateHighlightActiveLine(),this.renderer.updateFull()},e.prototype.getSelectedText=function(){return this.session.getTextRange(this.getSelectionRange())},e.prototype.getCopyText=function(){var e=this.getSelectedText(),t=this.session.doc.getNewLineCharacter(),n=!1;if(!e&&this.$copyWithEmptySelection){n=!0;var r=this.selection.getAllRanges();for(var i=0;iu.search(/\S|$/)){var a=u.substr(i.column).search(/\S|$/);n.doc.removeInLine(i.row,i.column,i.column+a)}}this.clearSelection();var f=i.column,l=n.getState(i.row),u=n.getLine(i.row),c=r.checkOutdent(l,u,e);n.insert(i,e),s&&s.selection&&(s.selection.length==2?this.selection.setSelectionRange(new d(i.row,f+s.selection[0],i.row,f+s.selection[1])):this.selection.setSelectionRange(new d(i.row+s.selection[0],s.selection[1],i.row+s.selection[2],s.selection[3])));if(this.$enableAutoIndent){if(n.getDocument().isNewLine(e)){var h=r.getNextLineIndent(l,u.slice(0,i.column),n.getTabString());n.insert({row:i.row+1,column:0},h)}c&&r.autoOutdent(l,n,i.row)}},e.prototype.autoIndent=function(){var e=this.session,t=e.getMode(),n=this.selection.isEmpty()?[new d(0,0,e.doc.getLength()-1,0)]:this.selection.getAllRanges(),r="",i="",s="",o=e.getTabString();for(var u=0;u0&&(r=e.getState(l-1),i=e.getLine(l-1),s=t.getNextLineIndent(r,i,o));var c=e.getLine(l),h=t.$getIndent(c);if(s!==h){if(h.length>0){var p=new d(l,0,l,h.length);e.remove(p)}s.length>0&&e.insert({row:l,column:0},s)}t.autoOutdent(r,e,l)}}},e.prototype.onTextInput=function(e,t){if(!t)return this.keyBinding.onTextInput(e);this.startOperation({command:{name:"insertstring"}});var n=this.applyComposition.bind(this,e,t);this.selection.rangeCount?this.forEachSelection(n):n(),this.endOperation()},e.prototype.applyComposition=function(e,t){if(t.extendLeft||t.extendRight){var n=this.selection.getRange();n.start.column-=t.extendLeft,n.end.column+=t.extendRight,n.start.column<0&&(n.start.row--,n.start.column+=this.session.getLine(n.start.row).length+1),this.selection.setRange(n),!e&&!n.isEmpty()&&this.remove()}(e||!this.selection.isEmpty())&&this.insert(e,!0);if(t.restoreStart||t.restoreEnd){var n=this.selection.getRange();n.start.column-=t.restoreStart,n.end.column-=t.restoreEnd,this.selection.setRange(n)}},e.prototype.onCommandKey=function(e,t,n){return this.keyBinding.onCommandKey(e,t,n)},e.prototype.setOverwrite=function(e){this.session.setOverwrite(e)},e.prototype.getOverwrite=function(){return this.session.getOverwrite()},e.prototype.toggleOverwrite=function(){this.session.toggleOverwrite()},e.prototype.setScrollSpeed=function(e){this.setOption("scrollSpeed",e)},e.prototype.getScrollSpeed=function(){return this.getOption("scrollSpeed")},e.prototype.setDragDelay=function(e){this.setOption("dragDelay",e)},e.prototype.getDragDelay=function(){return this.getOption("dragDelay")},e.prototype.setSelectionStyle=function(e){this.setOption("selectionStyle",e)},e.prototype.getSelectionStyle=function(){return this.getOption("selectionStyle")},e.prototype.setHighlightActiveLine=function(e){this.setOption("highlightActiveLine",e)},e.prototype.getHighlightActiveLine=function(){return this.getOption("highlightActiveLine")},e.prototype.setHighlightGutterLine=function(e){this.setOption("highlightGutterLine",e)},e.prototype.getHighlightGutterLine=function(){return this.getOption("highlightGutterLine")},e.prototype.setHighlightSelectedWord=function(e){this.setOption("highlightSelectedWord",e)},e.prototype.getHighlightSelectedWord=function(){return this.$highlightSelectedWord},e.prototype.setAnimatedScroll=function(e){this.renderer.setAnimatedScroll(e)},e.prototype.getAnimatedScroll=function(){return this.renderer.getAnimatedScroll()},e.prototype.setShowInvisibles=function(e){this.renderer.setShowInvisibles(e)},e.prototype.getShowInvisibles=function(){return this.renderer.getShowInvisibles()},e.prototype.setDisplayIndentGuides=function(e){this.renderer.setDisplayIndentGuides(e)},e.prototype.getDisplayIndentGuides=function(){return this.renderer.getDisplayIndentGuides()},e.prototype.setHighlightIndentGuides=function(e){this.renderer.setHighlightIndentGuides(e)},e.prototype.getHighlightIndentGuides=function(){return this.renderer.getHighlightIndentGuides()},e.prototype.setShowPrintMargin=function(e){this.renderer.setShowPrintMargin(e)},e.prototype.getShowPrintMargin=function(){return this.renderer.getShowPrintMargin()},e.prototype.setPrintMarginColumn=function(e){this.renderer.setPrintMarginColumn(e)},e.prototype.getPrintMarginColumn=function(){return this.renderer.getPrintMarginColumn()},e.prototype.setReadOnly=function(e){this.setOption("readOnly",e)},e.prototype.getReadOnly=function(){return this.getOption("readOnly")},e.prototype.setBehavioursEnabled=function(e){this.setOption("behavioursEnabled",e)},e.prototype.getBehavioursEnabled=function(){return this.getOption("behavioursEnabled")},e.prototype.setWrapBehavioursEnabled=function(e){this.setOption("wrapBehavioursEnabled",e)},e.prototype.getWrapBehavioursEnabled=function(){return this.getOption("wrapBehavioursEnabled")},e.prototype.setShowFoldWidgets=function(e){this.setOption("showFoldWidgets",e)},e.prototype.getShowFoldWidgets=function(){return this.getOption("showFoldWidgets")},e.prototype.setFadeFoldWidgets=function(e){this.setOption("fadeFoldWidgets",e)},e.prototype.getFadeFoldWidgets=function(){return this.getOption("fadeFoldWidgets")},e.prototype.remove=function(e){this.selection.isEmpty()&&(e=="left"?this.selection.selectLeft():this.selection.selectRight());var t=this.getSelectionRange();if(this.getBehavioursEnabled()){var n=this.session,r=n.getState(t.start.row),i=n.getMode().transformAction(r,"deletion",this,n,t);if(t.end.column===0){var s=n.getTextRange(t);if(s[s.length-1]=="\n"){var o=n.getLine(t.end.row);/^\s+$/.test(o)&&(t.end.column=o.length)}}i&&(t=i)}this.session.remove(t),this.clearSelection()},e.prototype.removeWordRight=function(){this.selection.isEmpty()&&this.selection.selectWordRight(),this.session.remove(this.getSelectionRange()),this.clearSelection()},e.prototype.removeWordLeft=function(){this.selection.isEmpty()&&this.selection.selectWordLeft(),this.session.remove(this.getSelectionRange()),this.clearSelection()},e.prototype.removeToLineStart=function(){this.selection.isEmpty()&&this.selection.selectLineStart(),this.selection.isEmpty()&&this.selection.selectLeft(),this.session.remove(this.getSelectionRange()),this.clearSelection()},e.prototype.removeToLineEnd=function(){this.selection.isEmpty()&&this.selection.selectLineEnd();var e=this.getSelectionRange();e.start.column==e.end.column&&e.start.row==e.end.row&&(e.end.column=0,e.end.row++),this.session.remove(e),this.clearSelection()},e.prototype.splitLine=function(){this.selection.isEmpty()||(this.session.remove(this.getSelectionRange()),this.clearSelection());var e=this.getCursorPosition();this.insert("\n"),this.moveCursorToPosition(e)},e.prototype.setGhostText=function(e,t){this.session.widgetManager||(this.session.widgetManager=new w(this.session),this.session.widgetManager.attach(this)),this.renderer.setGhostText(e,t)},e.prototype.removeGhostText=function(){if(!this.session.widgetManager)return;this.renderer.removeGhostText()},e.prototype.transposeLetters=function(){if(!this.selection.isEmpty())return;var e=this.getCursorPosition(),t=e.column;if(t===0)return;var n=this.session.getLine(e.row),r,i;tt.toLowerCase()?1:0});var i=new d(0,0,0,0);for(var r=e.first;r<=e.last;r++){var s=t.getLine(r);i.start.row=r,i.end.row=r,i.end.column=s.length,t.replace(i,n[r-e.first])}},e.prototype.toggleCommentLines=function(){var e=this.session.getState(this.getCursorPosition().row),t=this.$getSelectedRows();this.session.getMode().toggleCommentLines(e,this.session,t.first,t.last)},e.prototype.toggleBlockComment=function(){var e=this.getCursorPosition(),t=this.session.getState(e.row),n=this.getSelectionRange();this.session.getMode().toggleBlockComment(t,this.session,n,e)},e.prototype.getNumberAt=function(e,t){var n=/[\-]?[0-9]+(?:\.[0-9]+)?/g;n.lastIndex=0;var r=this.session.getLine(e);while(n.lastIndex=t){var s={value:i[0],start:i.index,end:i.index+i[0].length};return s}}return null},e.prototype.modifyNumber=function(e){var t=this.selection.getCursor().row,n=this.selection.getCursor().column,r=new d(t,n-1,t,n),i=this.session.getTextRange(r);if(!isNaN(parseFloat(i))&&isFinite(i)){var s=this.getNumberAt(t,n);if(s){var o=s.value.indexOf(".")>=0?s.start+s.value.indexOf(".")+1:s.end,u=s.start+s.value.length-o,a=parseFloat(s.value);a*=Math.pow(10,u),o!==s.end&&n=u&&s<=a&&(n=t,f.selection.clearSelection(),f.moveCursorTo(e,u+r),f.selection.selectTo(e,a+r)),u=a});var l=this.$toggleWordPairs,c;for(var h=0;h=a&&u<=f&&p.match(/((?:https?|ftp):\/\/[\S]+)/)){l=p.replace(/[\s:.,'";}\]]+$/,"");break}a=f}}catch(d){n={error:d}}finally{try{h&&!h.done&&(i=c.return)&&i.call(c)}finally{if(n)throw n.error}}return l},e.prototype.openLink=function(){var e=this.selection.getCursor(),t=this.findLinkAt(e.row,e.column);return t&&window.open(t,"_blank"),t!=null},e.prototype.removeLines=function(){var e=this.$getSelectedRows();this.session.removeFullLines(e.first,e.last),this.clearSelection()},e.prototype.duplicateSelection=function(){var e=this.selection,t=this.session,n=e.getRange(),r=e.isBackwards();if(n.isEmpty()){var i=n.start.row;t.duplicateLines(i,i)}else{var s=r?n.start:n.end,o=t.insert(s,t.getTextRange(n));n.start=s,n.end=o,e.setSelectionRange(n,r)}},e.prototype.moveLinesDown=function(){this.$moveLines(1,!1)},e.prototype.moveLinesUp=function(){this.$moveLines(-1,!1)},e.prototype.moveText=function(e,t,n){return this.session.moveText(e,t,n)},e.prototype.copyLinesUp=function(){this.$moveLines(-1,!0)},e.prototype.copyLinesDown=function(){this.$moveLines(1,!0)},e.prototype.$moveLines=function(e,t){var n,r,i=this.selection;if(!i.inMultiSelectMode||this.inVirtualSelectionMode){var s=i.toOrientedRange();n=this.$getSelectedRows(s),r=this.session.$moveLines(n.first,n.last,t?0:e),t&&e==-1&&(r=0),s.moveBy(r,0),i.fromOrientedRange(s)}else{var o=i.rangeList.ranges;i.rangeList.detach(this.session),this.inVirtualSelectionMode=!0;var u=0,a=0,f=o.length;for(var l=0;lp+1)break;p=d.last}l--,u=this.session.$moveLines(h,p,t?0:e),t&&e==-1&&(c=l+1);while(c<=l)o[c].moveBy(u,0),c++;t||(u=0),a+=u}i.fromOrientedRange(i.ranges[0]),i.rangeList.attach(this.session),this.inVirtualSelectionMode=!1}},e.prototype.$getSelectedRows=function(e){return e=(e||this.getSelectionRange()).collapseRows(),{first:this.session.getRowFoldStart(e.start.row),last:this.session.getRowFoldEnd(e.end.row)}},e.prototype.onCompositionStart=function(e){this.renderer.showComposition(e)},e.prototype.onCompositionUpdate=function(e){this.renderer.setCompositionText(e)},e.prototype.onCompositionEnd=function(){this.renderer.hideComposition()},e.prototype.getFirstVisibleRow=function(){return this.renderer.getFirstVisibleRow()},e.prototype.getLastVisibleRow=function(){return this.renderer.getLastVisibleRow()},e.prototype.isRowVisible=function(e){return e>=this.getFirstVisibleRow()&&e<=this.getLastVisibleRow()},e.prototype.isRowFullyVisible=function(e){return e>=this.renderer.getFirstFullyVisibleRow()&&e<=this.renderer.getLastFullyVisibleRow()},e.prototype.$getVisibleRowCount=function(){return this.renderer.getScrollBottomRow()-this.renderer.getScrollTopRow()+1},e.prototype.$moveByPage=function(e,t){var n=this.renderer,r=this.renderer.layerConfig,i=e*Math.floor(r.height/r.lineHeight);t===!0?this.selection.$moveSelection(function(){this.moveCursorBy(i,0)}):t===!1&&(this.selection.moveCursorBy(i,0),this.selection.clearSelection());var s=n.scrollTop;n.scrollBy(0,i*r.lineHeight),t!=null&&n.scrollCursorIntoView(null,.5),n.animateScrolling(s)},e.prototype.selectPageDown=function(){this.$moveByPage(1,!0)},e.prototype.selectPageUp=function(){this.$moveByPage(-1,!0)},e.prototype.gotoPageDown=function(){this.$moveByPage(1,!1)},e.prototype.gotoPageUp=function(){this.$moveByPage(-1,!1)},e.prototype.scrollPageDown=function(){this.$moveByPage(1)},e.prototype.scrollPageUp=function(){this.$moveByPage(-1)},e.prototype.scrollToRow=function(e){this.renderer.scrollToRow(e)},e.prototype.scrollToLine=function(e,t,n,r){this.renderer.scrollToLine(e,t,n,r)},e.prototype.centerSelection=function(){var e=this.getSelectionRange(),t={row:Math.floor(e.start.row+(e.end.row-e.start.row)/2),column:Math.floor(e.start.column+(e.end.column-e.start.column)/2)};this.renderer.alignCursor(t,.5)},e.prototype.getCursorPosition=function(){return this.selection.getCursor()},e.prototype.getCursorPositionScreen=function(){return this.session.documentToScreenPosition(this.getCursorPosition())},e.prototype.getSelectionRange=function(){return this.selection.getRange()},e.prototype.selectAll=function(){this.selection.selectAll()},e.prototype.clearSelection=function(){this.selection.clearSelection()},e.prototype.moveCursorTo=function(e,t){this.selection.moveCursorTo(e,t)},e.prototype.moveCursorToPosition=function(e){this.selection.moveCursorToPosition(e)},e.prototype.jumpToMatching=function(e,t){var n=this.getCursorPosition(),r=new b(this.session,n.row,n.column),i=r.getCurrentToken(),s=0;i&&i.type.indexOf("tag-name")!==-1&&(i=r.stepBackward());var o=i||r.stepForward();if(!o)return;var u,a=!1,f={},l=n.column-o.start,c,h={")":"(","(":"(","]":"[","[":"[","{":"{","}":"{"};do{if(o.value.match(/[{}()\[\]]/g))for(;l1?f[o.value]++:i.value==="=0;--s)this.$tryReplace(n[s],e)&&r++;return this.selection.setSelectionRange(i),r},e.prototype.$tryReplace=function(e,t){var n=this.session.getTextRange(e);return t=this.$search.replace(n,t),t!==null?(e.end=this.session.replace(e,t),e):null},e.prototype.getLastSearchOptions=function(){return this.$search.getOptions()},e.prototype.find=function(e,t,n){t||(t={}),typeof e=="string"||e instanceof RegExp?t.needle=e:typeof e=="object"&&i.mixin(t,e);var r=this.selection.getRange();t.needle==null&&(e=this.session.getTextRange(r)||this.$search.$options.needle,e||(r=this.session.getWordRange(r.start.row,r.start.column),e=this.session.getTextRange(r)),this.$search.set({needle:e})),this.$search.set(t),t.start||this.$search.set({start:r});var s=this.$search.find(this.session);if(t.preventScroll)return s;if(s)return this.revealRange(s,n),s;t.backwards?r.start=r.end:r.end=r.start,this.selection.setRange(r)},e.prototype.findNext=function(e,t){this.find({skipCurrent:!0,backwards:!1},e,t)},e.prototype.findPrevious=function(e,t){this.find(e,{skipCurrent:!0,backwards:!0},t)},e.prototype.revealRange=function(e,t){this.session.unfold(e),this.selection.setSelectionRange(e);var n=this.renderer.scrollTop;this.renderer.scrollSelectionIntoView(e.start,e.end,.5),t!==!1&&this.renderer.animateScrolling(n)},e.prototype.undo=function(){this.session.getUndoManager().undo(this.session),this.renderer.scrollCursorIntoView(null,.5)},e.prototype.redo=function(){this.session.getUndoManager().redo(this.session),this.renderer.scrollCursorIntoView(null,.5)},e.prototype.destroy=function(){this.$toDestroy&&(this.$toDestroy.forEach(function(e){e.destroy()}),this.$toDestroy=null),this.$mouseHandler&&this.$mouseHandler.destroy(),this.renderer.destroy(),this._signal("destroy",this),this.session&&this.session.destroy(),this._$emitInputEvent&&this._$emitInputEvent.cancel(),this.removeAllListeners()},e.prototype.setAutoScrollEditorIntoView=function(e){if(!e)return;var t,n=this,r=!1;this.$scrollAnchor||(this.$scrollAnchor=document.createElement("div"));var i=this.$scrollAnchor;i.style.cssText="position:absolute",this.container.insertBefore(i,this.container.firstChild);var s=this.on("changeSelection",function(){r=!0}),o=this.renderer.on("beforeRender",function(){r&&(t=n.renderer.container.getBoundingClientRect())}),u=this.renderer.on("afterRender",function(){if(r&&t&&(n.isFocused()||n.searchBox&&n.searchBox.isFocused())){var e=n.renderer,s=e.$cursorLayer.$pixelPos,o=e.layerConfig,u=s.top-o.offset;s.top>=0&&u+t.top<0?r=!0:s.topwindow.innerHeight?r=!1:r=null,r!=null&&(i.style.top=u+"px",i.style.left=s.left+"px",i.style.height=o.lineHeight+"px",i.scrollIntoView(r)),r=t=null}});this.setAutoScrollEditorIntoView=function(e){if(e)return;delete this.setAutoScrollEditorIntoView,this.off("changeSelection",s),this.renderer.off("afterRender",u),this.renderer.off("beforeRender",o)}},e.prototype.$resetCursorStyle=function(){var e=this.$cursorStyle||"ace",t=this.renderer.$cursorLayer;if(!t)return;t.setSmoothBlinking(/smooth/.test(e)),t.isBlinking=!this.$readOnly&&e!="wide",s.setCssClass(t.element,"ace_slim-cursors",/slim/.test(e))},e.prototype.prompt=function(e,t,n){var r=this;y.loadModule("ace/ext/prompt",function(i){i.prompt(r,e,t,n)})},e}();N.$uid=0,N.prototype.curOp=null,N.prototype.prevOp={},N.prototype.$mergeableCommands=["backspace","del","insertstring"],N.prototype.$toggleWordPairs=[["first","last"],["true","false"],["yes","no"],["width","height"],["top","bottom"],["right","left"],["on","off"],["x","y"],["get","set"],["max","min"],["horizontal","vertical"],["show","hide"],["add","remove"],["up","down"],["before","after"],["even","odd"],["in","out"],["inside","outside"],["next","previous"],["increase","decrease"],["attach","detach"],["&&","||"],["==","!="]],i.implement(N.prototype,v),y.defineOptions(N.prototype,"editor",{selectionStyle:{set:function(e){this.onSelectionChange(),this._signal("changeSelectionStyle",{data:e})},initialValue:"line"},highlightActiveLine:{set:function(){this.$updateHighlightActiveLine()},initialValue:!0},highlightSelectedWord:{set:function(e){this.$onSelectionChange()},initialValue:!0},readOnly:{set:function(e){this.textInput.setReadOnly(e),this.$resetCursorStyle()},initialValue:!1},copyWithEmptySelection:{set:function(e){this.textInput.setCopyWithEmptySelection(e)},initialValue:!1},cursorStyle:{set:function(e){this.$resetCursorStyle()},values:["ace","slim","smooth","wide"],initialValue:"ace"},mergeUndoDeltas:{values:[!1,!0,"always"],initialValue:!0},behavioursEnabled:{initialValue:!0},wrapBehavioursEnabled:{initialValue:!0},enableAutoIndent:{initialValue:!0},autoScrollEditorIntoView:{set:function(e){this.setAutoScrollEditorIntoView(e)}},keyboardHandler:{set:function(e){this.setKeyboardHandler(e)},get:function(){return this.$keybindingId},handlesSet:!0},value:{set:function(e){this.session.setValue(e)},get:function(){return this.getValue()},handlesSet:!0,hidden:!0},session:{set:function(e){this.setSession(e)},get:function(){return this.session},handlesSet:!0,hidden:!0},showLineNumbers:{set:function(e){this.renderer.$gutterLayer.setShowLineNumbers(e),this.renderer.$loop.schedule(this.renderer.CHANGE_GUTTER),e&&this.$relativeLineNumbers?C.attach(this):C.detach(this)},initialValue:!0},relativeLineNumbers:{set:function(e){this.$showLineNumbers&&e?C.attach(this):C.detach(this)}},placeholder:{set:function(e){this.$updatePlaceholder||(this.$updatePlaceholder=function(){var e=this.session&&(this.renderer.$composition||this.session.getLength()>1||this.session.getLine(0).length>0);if(e&&this.renderer.placeholderNode)this.renderer.off("afterRender",this.$updatePlaceholder),s.removeCssClass(this.container,"ace_hasPlaceholder"),this.renderer.placeholderNode.remove(),this.renderer.placeholderNode=null;else if(!e&&!this.renderer.placeholderNode){this.renderer.on("afterRender",this.$updatePlaceholder),s.addCssClass(this.container,"ace_hasPlaceholder");var t=s.createElement("div");t.className="ace_placeholder",t.textContent=this.$placeholder||"",this.renderer.placeholderNode=t,this.renderer.content.appendChild(this.renderer.placeholderNode)}else!e&&this.renderer.placeholderNode&&(this.renderer.placeholderNode.textContent=this.$placeholder||"")}.bind(this),this.on("input",this.$updatePlaceholder)),this.$updatePlaceholder()}},enableKeyboardAccessibility:{set:function(e){var t={name:"blurTextInput",description:"Set focus to the editor content div to allow tabbing through the page",bindKey:"Esc",exec:function(e){e.blur(),e.renderer.scroller.focus()},readOnly:!0},n=function(e){if(e.target==this.renderer.scroller&&e.keyCode===T.enter){e.preventDefault();var t=this.getCursorPosition().row;this.isRowVisible(t)||this.scrollToLine(t,!0,!0),this.focus()}},r;e?(this.renderer.enableKeyboardAccessibility=!0,this.renderer.keyboardFocusClassName="ace_keyboard-focus",this.textInput.getElement().setAttribute("tabindex",-1),this.textInput.setNumberOfExtraLines(u.isWin?3:0),this.renderer.scroller.setAttribute("tabindex",0),this.renderer.scroller.setAttribute("role","group"),this.renderer.scroller.setAttribute("aria-roledescription",S("editor.scroller.aria-roledescription","editor")),this.renderer.scroller.classList.add(this.renderer.keyboardFocusClassName),this.renderer.scroller.setAttribute("aria-label",S("editor.scroller.aria-label","Editor content, press Enter to start editing, press Escape to exit")),this.renderer.scroller.addEventListener("keyup",n.bind(this)),this.commands.addCommand(t),this.renderer.$gutter.setAttribute("tabindex",0),this.renderer.$gutter.setAttribute("aria-hidden",!1),this.renderer.$gutter.setAttribute("role","group"),this.renderer.$gutter.setAttribute("aria-roledescription",S("editor.gutter.aria-roledescription","editor")),this.renderer.$gutter.setAttribute("aria-label",S("editor.gutter.aria-label","Editor gutter, press Enter to interact with controls using arrow keys, press Escape to exit")),this.renderer.$gutter.classList.add(this.renderer.keyboardFocusClassName),this.renderer.content.setAttribute("aria-hidden",!0),r||(r=new E(this)),r.addListener(),this.textInput.setAriaOptions({setLabel:!0})):(this.renderer.enableKeyboardAccessibility=!1,this.textInput.getElement().setAttribute("tabindex",0),this.textInput.setNumberOfExtraLines(0),this.renderer.scroller.setAttribute("tabindex",-1),this.renderer.scroller.removeAttribute("role"),this.renderer.scroller.removeAttribute("aria-roledescription"),this.renderer.scroller.classList.remove(this.renderer.keyboardFocusClassName),this.renderer.scroller.removeAttribute("aria-label"),this.renderer.scroller.removeEventListener("keyup",n.bind(this)),this.commands.removeCommand(t),this.renderer.content.removeAttribute("aria-hidden"),this.renderer.$gutter.setAttribute("tabindex",-1),this.renderer.$gutter.setAttribute("aria-hidden",!0),this.renderer.$gutter.removeAttribute("role"),this.renderer.$gutter.removeAttribute("aria-roledescription"),this.renderer.$gutter.removeAttribute("aria-label"),this.renderer.$gutter.classList.remove(this.renderer.keyboardFocusClassName),r&&r.removeListener())},initialValue:!1},textInputAriaLabel:{set:function(e){this.$textInputAriaLabel=e},initialValue:""},enableMobileMenu:{set:function(e){this.$enableMobileMenu=e},initialValue:!0},customScrollbar:"renderer",hScrollBarAlwaysVisible:"renderer",vScrollBarAlwaysVisible:"renderer",highlightGutterLine:"renderer",animatedScroll:"renderer",showInvisibles:"renderer",showPrintMargin:"renderer",printMarginColumn:"renderer",printMargin:"renderer",fadeFoldWidgets:"renderer",showFoldWidgets:"renderer",displayIndentGuides:"renderer",highlightIndentGuides:"renderer",showGutter:"renderer",fontSize:"renderer",fontFamily:"renderer",maxLines:"renderer",minLines:"renderer",scrollPastEnd:"renderer",fixedWidthGutter:"renderer",theme:"renderer",hasCssTransforms:"renderer",maxPixelHeight:"renderer",useTextareaForIME:"renderer",useResizeObserver:"renderer",useSvgGutterIcons:"renderer",showFoldedAnnotations:"renderer",scrollSpeed:"$mouseHandler",dragDelay:"$mouseHandler",dragEnabled:"$mouseHandler",focusTimeout:"$mouseHandler",tooltipFollowsMouse:"$mouseHandler",firstLineNumber:"session",overwrite:"session",newLineMode:"session",useWorker:"session",useSoftTabs:"session",navigateWithinSoftTabs:"session",tabSize:"session",wrap:"session",indentedSoftWrap:"session",foldStyle:"session",mode:"session"});var C={getText:function(e,t){return(Math.abs(e.selection.lead.row-t)||t+1+(t<9?"\u00b7":""))+""},getWidth:function(e,t,n){return Math.max(t.toString().length,(n.lastRow+1).toString().length,2)*n.characterWidth},update:function(e,t){t.renderer.$loop.schedule(t.renderer.CHANGE_GUTTER)},attach:function(e){e.renderer.$gutterLayer.$renderer=this,e.on("changeSelection",this.update),this.update(null,e)},detach:function(e){e.renderer.$gutterLayer.$renderer==this&&(e.renderer.$gutterLayer.$renderer=null),e.off("changeSelection",this.update),this.update(null,e)}};t.Editor=N}),ace.define("ace/layer/lines",["require","exports","module","ace/lib/dom"],function(e,t,n){"use strict";var r=e("../lib/dom"),i=function(){function e(e,t){this.element=e,this.canvasHeight=t||5e5,this.element.style.height=this.canvasHeight*2+"px",this.cells=[],this.cellCache=[],this.$offsetCoefficient=0}return e.prototype.moveContainer=function(e){r.translate(this.element,0,-(e.firstRowScreen*e.lineHeight%this.canvasHeight)-e.offset*this.$offsetCoefficient)},e.prototype.pageChanged=function(e,t){return Math.floor(e.firstRowScreen*e.lineHeight/this.canvasHeight)!==Math.floor(t.firstRowScreen*t.lineHeight/this.canvasHeight)},e.prototype.computeLineTop=function(e,t,n){var r=t.firstRowScreen*t.lineHeight,i=Math.floor(r/this.canvasHeight),s=n.documentToScreenRow(e,0)*t.lineHeight;return s-i*this.canvasHeight},e.prototype.computeLineHeight=function(e,t,n){return t.lineHeight*n.getRowLineCount(e)},e.prototype.getLength=function(){return this.cells.length},e.prototype.get=function(e){return this.cells[e]},e.prototype.shift=function(){this.$cacheCell(this.cells.shift())},e.prototype.pop=function(){this.$cacheCell(this.cells.pop())},e.prototype.push=function(e){if(Array.isArray(e)){this.cells.push.apply(this.cells,e);var t=r.createFragment(this.element);for(var n=0;ns&&(a=i.end.row+1,i=t.getNextFoldLine(a,i),s=i?i.start.row:Infinity);if(a>r){while(this.$lines.getLength()>u+1)this.$lines.pop();break}o=this.$lines.get(++u),o?o.row=a:(o=this.$lines.createCell(a,e,this.session,l),this.$lines.push(o)),this.$renderCell(o,e,i,a),a++}this._signal("afterRender"),this.$updateGutterWidth(e)},e.prototype.$updateGutterWidth=function(e){var t=this.session,n=t.gutterRenderer||this.$renderer,r=t.$firstLineNumber,i=this.$lines.last()?this.$lines.last().text:"";if(this.$fixedWidth||t.$useWrapMode)i=t.getLength()+r-1;var s=n?n.getWidth(t,i,e):i.toString().length*e.characterWidth,o=this.$padding||this.$computePadding();s+=o.left+o.right,s!==this.gutterWidth&&!isNaN(s)&&(this.gutterWidth=s,this.element.parentNode.style.width=this.element.style.width=Math.ceil(this.gutterWidth)+"px",this._signal("changeGutterWidth",s))},e.prototype.$updateCursorRow=function(){if(!this.$highlightGutterLine)return;var e=this.session.selection.getCursor();if(this.$cursorRow===e.row)return;this.$cursorRow=e.row},e.prototype.updateLineHighlight=function(){if(!this.$highlightGutterLine)return;var e=this.session.selection.cursor.row;this.$cursorRow=e;if(this.$cursorCell&&this.$cursorCell.row==e)return;this.$cursorCell&&(this.$cursorCell.element.className=this.$cursorCell.element.className.replace("ace_gutter-active-line ",""));var t=this.$lines.cells;this.$cursorCell=null;for(var n=0;n=this.$cursorRow){if(r.row>this.$cursorRow){var i=this.session.getFoldLine(this.$cursorRow);if(!(n>0&&i&&i.start.row==t[n-1].row))break;r=t[n-1]}r.element.className="ace_gutter-active-line "+r.element.className,this.$cursorCell=r;break}}},e.prototype.scrollLines=function(e){var t=this.config;this.config=e,this.$updateCursorRow();if(this.$lines.pageChanged(t,e))return this.update(e);this.$lines.moveContainer(e);var n=Math.min(e.lastRow+e.gutterOffset,this.session.getLength()-1),r=this.oldLastRow;this.oldLastRow=n;if(!t||r0;i--)this.$lines.shift();if(r>n)for(var i=this.session.getFoldedRowCount(n+1,r);i>0;i--)this.$lines.pop();e.firstRowr&&this.$lines.push(this.$renderLines(e,r+1,n)),this.updateLineHighlight(),this._signal("afterRender"),this.$updateGutterWidth(e)},e.prototype.$renderLines=function(e,t,n){var r=[],i=t,s=this.session.getNextFoldLine(i),o=s?s.start.row:Infinity;for(;;){i>o&&(i=s.end.row+1,s=this.session.getNextFoldLine(i,s),o=s?s.start.row:Infinity);if(i>n)break;var u=this.$lines.createCell(i,e,this.session,l);this.$renderCell(u,e,s,i),r.push(u),i++}return r},e.prototype.$renderCell=function(e,t,n,i){var s=e.element,o=this.session,u=s.childNodes[0],f=s.childNodes[1],l=s.childNodes[2],c=l.firstChild,h=o.$firstLineNumber,p=o.$breakpoints,d=o.$decorations,v=o.gutterRenderer||this.$renderer,m=this.$showFoldWidgets&&o.foldWidgets,g=n?n.start.row:Number.MAX_VALUE,y=t.lineHeight+"px",b=this.$useSvgGutterIcons?"ace_gutter-cell_svg-icons ":"ace_gutter-cell ",w=this.$useSvgGutterIcons?"ace_icon_svg":"ace_icon",E=(v?v.getText(o,i):i+h).toString();this.$highlightGutterLine&&(i==this.$cursorRow||n&&i=g&&this.$cursorRow<=n.end.row)&&(b+="ace_gutter-active-line ",this.$cursorCell!=e&&(this.$cursorCell&&(this.$cursorCell.element.className=this.$cursorCell.element.className.replace("ace_gutter-active-line ","")),this.$cursorCell=e)),p[i]&&(b+=p[i]),d[i]&&(b+=d[i]),this.$annotations[i]&&i!==g&&(b+=this.$annotations[i].className);if(m){var S=m[i];S==null&&(S=m[i]=o.getFoldWidget(i))}if(S){var x="ace_fold-widget ace_"+S,T=S=="start"&&i==g&&in.right-t.right)return"foldWidgets"},e}();f.prototype.$fixedWidth=!1,f.prototype.$highlightGutterLine=!0,f.prototype.$renderer="",f.prototype.$showLineNumbers=!0,f.prototype.$showFoldWidgets=!0,i.implement(f.prototype,o),t.Gutter=f}),ace.define("ace/layer/marker",["require","exports","module","ace/range","ace/lib/dom"],function(e,t,n){"use strict";function o(e,t,n,r){return(e?1:0)|(t?2:0)|(n?4:0)|(r?8:0)}var r=e("../range").Range,i=e("../lib/dom"),s=function(){function e(e){this.element=i.createElement("div"),this.element.className="ace_layer ace_marker-layer",e.appendChild(this.element)}return e.prototype.setPadding=function(e){this.$padding=e},e.prototype.setSession=function(e){this.session=e},e.prototype.setMarkers=function(e){this.markers=e},e.prototype.elt=function(e,t){var n=this.i!=-1&&this.element.childNodes[this.i];n?this.i++:(n=document.createElement("div"),this.element.appendChild(n),this.i=-1),n.style.cssText=t,n.className=e},e.prototype.update=function(e){if(!e)return;this.config=e,this.i=0;var t;for(var n in this.markers){var r=this.markers[n];if(!r.range){r.update(t,this,this.session,e);continue}var i=r.range.clipRows(e.firstRow,e.lastRow);if(i.isEmpty())continue;i=i.toScreenRange(this.session);if(r.renderer){var s=this.$getTop(i.start.row,e),o=this.$padding+i.start.column*e.characterWidth;r.renderer(t,i,o,s,e)}else r.type=="fullLine"?this.drawFullLineMarker(t,i,r.clazz,e):r.type=="screenLine"?this.drawScreenLineMarker(t,i,r.clazz,e):i.isMultiLine()?r.type=="text"?this.drawTextMarker(t,i,r.clazz,e):this.drawMultiLineMarker(t,i,r.clazz,e):this.drawSingleLineMarker(t,i,r.clazz+" ace_start"+" ace_br15",e)}if(this.i!=-1)while(this.ip,l==f),i,l==f?0:1,s)},e.prototype.drawMultiLineMarker=function(e,t,n,r,i){var s=this.$padding,o=r.lineHeight,u=this.$getTop(t.start.row,r),a=s+t.start.column*r.characterWidth;i=i||"";if(this.session.$bidiHandler.isBidiRow(t.start.row)){var f=t.clone();f.end.row=f.start.row,f.end.column=this.session.getLine(f.start.row).length,this.drawBidiSingleLineMarker(e,f,n+" ace_br1 ace_start",r,null,i)}else this.elt(n+" ace_br1 ace_start","height:"+o+"px;"+"right:0;"+"top:"+u+"px;left:"+a+"px;"+(i||""));if(this.session.$bidiHandler.isBidiRow(t.end.row)){var f=t.clone();f.start.row=f.end.row,f.start.column=0,this.drawBidiSingleLineMarker(e,f,n+" ace_br12",r,null,i)}else{u=this.$getTop(t.end.row,r);var l=t.end.column*r.characterWidth;this.elt(n+" ace_br12","height:"+o+"px;"+"width:"+l+"px;"+"top:"+u+"px;"+"left:"+s+"px;"+(i||""))}o=(t.end.row-t.start.row-1)*r.lineHeight;if(o<=0)return;u=this.$getTop(t.start.row+1,r);var c=(t.start.column?1:0)|(t.end.column?0:8);this.elt(n+(c?" ace_br"+c:""),"height:"+o+"px;"+"right:0;"+"top:"+u+"px;"+"left:"+s+"px;"+(i||""))},e.prototype.drawSingleLineMarker=function(e,t,n,r,i,s){if(this.session.$bidiHandler.isBidiRow(t.start.row))return this.drawBidiSingleLineMarker(e,t,n,r,i,s);var o=r.lineHeight,u=(t.end.column+(i||0)-t.start.column)*r.characterWidth,a=this.$getTop(t.start.row,r),f=this.$padding+t.start.column*r.characterWidth;this.elt(n,"height:"+o+"px;"+"width:"+u+"px;"+"top:"+a+"px;"+"left:"+f+"px;"+(s||""))},e.prototype.drawBidiSingleLineMarker=function(e,t,n,r,i,s){var o=r.lineHeight,u=this.$getTop(t.start.row,r),a=this.$padding,f=this.session.$bidiHandler.getSelections(t.start.column,t.end.column);f.forEach(function(e){this.elt(n,"height:"+o+"px;"+"width:"+(e.width+(i||0))+"px;"+"top:"+u+"px;"+"left:"+(a+e.left)+"px;"+(s||""))},this)},e.prototype.drawFullLineMarker=function(e,t,n,r,i){var s=this.$getTop(t.start.row,r),o=r.lineHeight;t.start.row!=t.end.row&&(o+=this.$getTop(t.end.row,r)-s),this.elt(n,"height:"+o+"px;"+"top:"+s+"px;"+"left:0;right:0;"+(i||""))},e.prototype.drawScreenLineMarker=function(e,t,n,r,i){var s=this.$getTop(t.start.row,r),o=r.lineHeight;this.elt(n,"height:"+o+"px;"+"top:"+s+"px;"+"left:0;right:0;"+(i||""))},e}();s.prototype.$padding=0,t.Marker=s}),ace.define("ace/layer/text_util",["require","exports","module"],function(e,t,n){var r=new Set(["text","rparen","lparen"]);t.isTextToken=function(e){return r.has(e)}}),ace.define("ace/layer/text",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/layer/lines","ace/lib/event_emitter","ace/config","ace/layer/text_util"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../lib/dom"),s=e("../lib/lang"),o=e("./lines").Lines,u=e("../lib/event_emitter").EventEmitter,a=e("../config").nls,f=e("./text_util").isTextToken,l=function(){function e(e){this.dom=i,this.element=this.dom.createElement("div"),this.element.className="ace_layer ace_text-layer",e.appendChild(this.element),this.$updateEolChar=this.$updateEolChar.bind(this),this.$lines=new o(this.element)}return e.prototype.$updateEolChar=function(){var e=this.session.doc,t=e.getNewLineCharacter()=="\n"&&e.getNewLineMode()!="windows",n=t?this.EOL_CHAR_LF:this.EOL_CHAR_CRLF;if(this.EOL_CHAR!=n)return this.EOL_CHAR=n,!0},e.prototype.setPadding=function(e){this.$padding=e,this.element.style.margin="0 "+e+"px"},e.prototype.getLineHeight=function(){return this.$fontMetrics.$characterSize.height||0},e.prototype.getCharacterWidth=function(){return this.$fontMetrics.$characterSize.width||0},e.prototype.$setFontMetrics=function(e){this.$fontMetrics=e,this.$fontMetrics.on("changeCharacterSize",function(e){this._signal("changeCharacterSize",e)}.bind(this)),this.$pollSizeChanges()},e.prototype.checkForSizeChanges=function(){this.$fontMetrics.checkForSizeChanges()},e.prototype.$pollSizeChanges=function(){return this.$pollSizeChangesTimer=this.$fontMetrics.$pollSizeChanges()},e.prototype.setSession=function(e){this.session=e,e&&this.$computeTabString()},e.prototype.setShowInvisibles=function(e){return this.showInvisibles==e?!1:(this.showInvisibles=e,typeof e=="string"?(this.showSpaces=/tab/i.test(e),this.showTabs=/space/i.test(e),this.showEOL=/eol/i.test(e)):this.showSpaces=this.showTabs=this.showEOL=e,this.$computeTabString(),!0)},e.prototype.setDisplayIndentGuides=function(e){return this.displayIndentGuides==e?!1:(this.displayIndentGuides=e,this.$computeTabString(),!0)},e.prototype.setHighlightIndentGuides=function(e){return this.$highlightIndentGuides===e?!1:(this.$highlightIndentGuides=e,e)},e.prototype.$computeTabString=function(){var e=this.session.getTabSize();this.tabSize=e;var t=this.$tabStrings=[0];for(var n=1;nl&&(u=a.end.row+1,a=this.session.getNextFoldLine(u,a),l=a?a.start.row:Infinity);if(u>i)break;var c=s[o++];if(c){this.dom.removeChildren(c),this.$renderLine(c,u,u==l?a:!1),f&&(c.style.top=this.$lines.computeLineTop(u,e,this.session)+"px");var h=e.lineHeight*this.session.getRowLength(u)+"px";c.style.height!=h&&(f=!0,c.style.height=h)}u++}if(f)while(o0;i--)this.$lines.shift();if(t.lastRow>e.lastRow)for(var i=this.session.getFoldedRowCount(e.lastRow+1,t.lastRow);i>0;i--)this.$lines.pop();e.firstRowt.lastRow&&this.$lines.push(this.$renderLinesFragment(e,t.lastRow+1,e.lastRow)),this.$highlightIndentGuide()},e.prototype.$renderLinesFragment=function(e,t,n){var r=[],s=t,o=this.session.getNextFoldLine(s),u=o?o.start.row:Infinity;for(;;){s>u&&(s=o.end.row+1,o=this.session.getNextFoldLine(s,o),u=o?o.start.row:Infinity);if(s>n)break;var a=this.$lines.createCell(s,e,this.session),f=a.element;this.dom.removeChildren(f),i.setStyle(f.style,"height",this.$lines.computeLineHeight(s,e,this.session)+"px"),i.setStyle(f.style,"top",this.$lines.computeLineTop(s,e,this.session)+"px"),this.$renderLine(f,s,s==u?o:!1),this.$useLineGroups()?f.className="ace_line_group":f.className="ace_line",r.push(a),s++}return r},e.prototype.update=function(e){this.$lines.moveContainer(e),this.config=e;var t=e.firstRow,n=e.lastRow,r=this.$lines;while(r.getLength())r.pop();r.push(this.$renderLinesFragment(e,t,n))},e.prototype.$renderToken=function(e,t,n,r){var i=this,o=/(\t)|( +)|([\x00-\x1f\x80-\xa0\xad\u1680\u180E\u2000-\u200f\u2028\u2029\u202F\u205F\uFEFF\uFFF9-\uFFFC\u2066\u2067\u2068\u202A\u202B\u202D\u202E\u202C\u2069]+)|(\u3000)|([\u1100-\u115F\u11A3-\u11A7\u11FA-\u11FF\u2329-\u232A\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFB\u3001-\u303E\u3041-\u3096\u3099-\u30FF\u3105-\u312D\u3131-\u318E\u3190-\u31BA\u31C0-\u31E3\u31F0-\u321E\u3220-\u3247\u3250-\u32FE\u3300-\u4DBF\u4E00-\uA48C\uA490-\uA4C6\uA960-\uA97C\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFAFF\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE66\uFE68-\uFE6B\uFF01-\uFF60\uFFE0-\uFFE6]|[\uD800-\uDBFF][\uDC00-\uDFFF])/g,u=this.dom.createFragment(this.element),l,c=0;while(l=o.exec(r)){var h=l[1],p=l[2],d=l[3],v=l[4],m=l[5];if(!i.showSpaces&&p)continue;var g=c!=l.index?r.slice(c,l.index):"";c=l.index+l[0].length,g&&u.appendChild(this.dom.createTextNode(g,this.element));if(h){var y=i.session.getScreenTabSize(t+l.index);u.appendChild(i.$tabStrings[y].cloneNode(!0)),t+=y-1}else if(p)if(i.showSpaces){var b=this.dom.createElement("span");b.className="ace_invisible ace_invisible_space",b.textContent=s.stringRepeat(i.SPACE_CHAR,p.length),u.appendChild(b)}else u.appendChild(this.dom.createTextNode(p,this.element));else if(d){var b=this.dom.createElement("span");b.className="ace_invisible ace_invisible_space ace_invalid",b.textContent=s.stringRepeat(i.SPACE_CHAR,d.length),u.appendChild(b)}else if(v){t+=1;var b=this.dom.createElement("span");b.style.width=i.config.characterWidth*2+"px",b.className=i.showSpaces?"ace_cjk ace_invisible ace_invisible_space":"ace_cjk",b.textContent=i.showSpaces?i.SPACE_CHAR:v,u.appendChild(b)}else if(m){t+=1;var b=this.dom.createElement("span");b.style.width=i.config.characterWidth*2+"px",b.className="ace_cjk",b.textContent=m,u.appendChild(b)}}u.appendChild(this.dom.createTextNode(c?r.slice(c):r,this.element));if(!f(n.type)){var w="ace_"+n.type.replace(/\./g," ace_"),b=this.dom.createElement("span");n.type=="fold"&&(b.style.width=n.value.length*this.config.characterWidth+"px",b.setAttribute("title",a("inline-fold.closed.title","Unfold code"))),b.className=w,b.appendChild(u),e.appendChild(b)}else e.appendChild(u);return t+r.length},e.prototype.renderIndentGuide=function(e,t,n){var r=t.search(this.$indentGuideRe);if(r<=0||r>=n)return t;if(t[0]==" "){r-=r%this.tabSize;var i=r/this.tabSize;for(var s=0;ss[o].start.row?this.$highlightIndentGuideMarker.dir=-1:this.$highlightIndentGuideMarker.dir=1;break}}if(!this.$highlightIndentGuideMarker.end&&e[t.row]!==""&&t.column===e[t.row].length){this.$highlightIndentGuideMarker.dir=1;for(var o=t.row+1;o0)for(var i=0;i=this.$highlightIndentGuideMarker.start+1){if(r.row>=this.$highlightIndentGuideMarker.end)break;this.$setIndentGuideActive(r,t)}}else for(var n=e.length-1;n>=0;n--){var r=e[n];if(this.$highlightIndentGuideMarker.end&&r.row=o)u=this.$renderToken(a,u,l,c.substring(0,o-r)),c=c.substring(o-r),r=o,a=this.$createLineElement(),e.appendChild(a),a.appendChild(this.dom.createTextNode(s.stringRepeat("\u00a0",n.indent),this.element)),i++,u=0,o=n[i]||Number.MAX_VALUE;c.length!=0&&(r+=c.length,u=this.$renderToken(a,u,l,c))}}n[n.length-1]>this.MAX_LINE_LENGTH&&this.$renderOverflowMessage(a,u,null,"",!0)},e.prototype.$renderSimpleLine=function(e,t){var n=0;for(var r=0;rthis.MAX_LINE_LENGTH)return this.$renderOverflowMessage(e,n,i,s);n=this.$renderToken(e,n,i,s)}},e.prototype.$renderOverflowMessage=function(e,t,n,r,i){n&&this.$renderToken(e,t,n,r.slice(0,this.MAX_LINE_LENGTH-t));var s=this.dom.createElement("span");s.className="ace_inline_button ace_keyword ace_toggle_wrap",s.textContent=i?"":"",e.appendChild(s)},e.prototype.$renderLine=function(e,t,n){!n&&n!=0&&(n=this.session.getFoldLine(t));if(n)var r=this.$getFoldLineTokens(t,n);else var r=this.session.getTokens(t);var i=e;if(r.length){var s=this.session.getRowSplitData(t);if(s&&s.length){this.$renderWrappedLine(e,r,s);var i=e.lastChild}else{var i=e;this.$useLineGroups()&&(i=this.$createLineElement(),e.appendChild(i)),this.$renderSimpleLine(i,r)}}else this.$useLineGroups()&&(i=this.$createLineElement(),e.appendChild(i));if(this.showEOL&&i){n&&(t=n.end.row);var o=this.dom.createElement("span");o.className="ace_invisible ace_invisible_eol",o.textContent=t==this.session.getLength()-1?this.EOF_CHAR:this.EOL_CHAR,i.appendChild(o)}},e.prototype.$getFoldLineTokens=function(e,t){function i(e,t,n){var i=0,s=0;while(s+e[i].value.lengthn-t&&(o=o.substring(0,n-t)),r.push({type:e[i].type,value:o}),s=t+o.length,i+=1}while(sn?r.push({type:e[i].type,value:o.substring(0,n-s)}):r.push(e[i]),s+=o.length,i+=1}}var n=this.session,r=[],s=n.getTokens(e);return t.walk(function(e,t,o,u,a){e!=null?r.push({type:"fold",value:e}):(a&&(s=n.getTokens(t)),s.length&&i(s,u,o))},t.end.row,this.session.getLine(t.end.row).length),r},e.prototype.$useLineGroups=function(){return this.session.getUseWrapMode()},e}();l.prototype.EOF_CHAR="\u00b6",l.prototype.EOL_CHAR_LF="\u00ac",l.prototype.EOL_CHAR_CRLF="\u00a4",l.prototype.EOL_CHAR=l.prototype.EOL_CHAR_LF,l.prototype.TAB_CHAR="\u2014",l.prototype.SPACE_CHAR="\u00b7",l.prototype.$padding=0,l.prototype.MAX_LINE_LENGTH=1e4,l.prototype.showInvisibles=!1,l.prototype.showSpaces=!1,l.prototype.showTabs=!1,l.prototype.showEOL=!1,l.prototype.displayIndentGuides=!0,l.prototype.$highlightIndentGuides=!0,l.prototype.$tabStrings=[],l.prototype.destroy={},l.prototype.onChangeTabSize=l.prototype.$computeTabString,r.implement(l.prototype,u),t.Text=l}),ace.define("ace/layer/cursor",["require","exports","module","ace/lib/dom"],function(e,t,n){"use strict";var r=e("../lib/dom"),i=function(){function e(e){this.element=r.createElement("div"),this.element.className="ace_layer ace_cursor-layer",e.appendChild(this.element),this.isVisible=!1,this.isBlinking=!0,this.blinkInterval=1e3,this.smoothBlinking=!1,this.cursors=[],this.cursor=this.addCursor(),r.addCssClass(this.element,"ace_hidden-cursors"),this.$updateCursors=this.$updateOpacity.bind(this)}return e.prototype.$updateOpacity=function(e){var t=this.cursors;for(var n=t.length;n--;)r.setStyle(t[n].style,"opacity",e?"":"0")},e.prototype.$startCssAnimation=function(){var e=this.cursors;for(var t=e.length;t--;)e[t].style.animationDuration=this.blinkInterval+"ms";this.$isAnimating=!0,setTimeout(function(){this.$isAnimating&&r.addCssClass(this.element,"ace_animate-blinking")}.bind(this))},e.prototype.$stopCssAnimation=function(){this.$isAnimating=!1,r.removeCssClass(this.element,"ace_animate-blinking")},e.prototype.setPadding=function(e){this.$padding=e},e.prototype.setSession=function(e){this.session=e},e.prototype.setBlinking=function(e){e!=this.isBlinking&&(this.isBlinking=e,this.restartTimer())},e.prototype.setBlinkInterval=function(e){e!=this.blinkInterval&&(this.blinkInterval=e,this.restartTimer())},e.prototype.setSmoothBlinking=function(e){e!=this.smoothBlinking&&(this.smoothBlinking=e,r.setCssClass(this.element,"ace_smooth-blinking",e),this.$updateCursors(!0),this.restartTimer())},e.prototype.addCursor=function(){var e=r.createElement("div");return e.className="ace_cursor",this.element.appendChild(e),this.cursors.push(e),e},e.prototype.removeCursor=function(){if(this.cursors.length>1){var e=this.cursors.pop();return e.parentNode.removeChild(e),e}},e.prototype.hideCursor=function(){this.isVisible=!1,r.addCssClass(this.element,"ace_hidden-cursors"),this.restartTimer()},e.prototype.showCursor=function(){this.isVisible=!0,r.removeCssClass(this.element,"ace_hidden-cursors"),this.restartTimer()},e.prototype.restartTimer=function(){var e=this.$updateCursors;clearInterval(this.intervalId),clearTimeout(this.timeoutId),this.$stopCssAnimation(),this.smoothBlinking&&(this.$isSmoothBlinking=!1,r.removeCssClass(this.element,"ace_smooth-blinking")),e(!0);if(!this.isBlinking||!this.blinkInterval||!this.isVisible){this.$stopCssAnimation();return}this.smoothBlinking&&(this.$isSmoothBlinking=!0,setTimeout(function(){this.$isSmoothBlinking&&r.addCssClass(this.element,"ace_smooth-blinking")}.bind(this)));if(r.HAS_CSS_ANIMATION)this.$startCssAnimation();else{var t=function(){this.timeoutId=setTimeout(function(){e(!1)},.6*this.blinkInterval)}.bind(this);this.intervalId=setInterval(function(){e(!0),t()},this.blinkInterval),t()}},e.prototype.getPixelPosition=function(e,t){if(!this.config||!this.session)return{left:0,top:0};e||(e=this.session.selection.getCursor());var n=this.session.documentToScreenPosition(e),r=this.$padding+(this.session.$bidiHandler.isBidiRow(n.row,e.row)?this.session.$bidiHandler.getPosLeft(n.column):n.column*this.config.characterWidth),i=(n.row-(t?this.config.firstRowScreen:0))*this.config.lineHeight;return{left:r,top:i}},e.prototype.isCursorInView=function(e,t){return e.top>=0&&e.tope.height+e.offset||o.top<0)&&n>1)continue;var u=this.cursors[i++]||this.addCursor(),a=u.style;this.drawCursor?this.drawCursor(u,o,e,t[n],this.session):this.isCursorInView(o,e)?(r.setStyle(a,"display","block"),r.translate(u,o.left,o.top),r.setStyle(a,"width",Math.round(e.characterWidth)+"px"),r.setStyle(a,"height",e.lineHeight+"px")):r.setStyle(a,"display","none")}while(this.cursors.length>i)this.removeCursor();var f=this.session.getOverwrite();this.$setOverwrite(f),this.$pixelPos=o,this.restartTimer()},e.prototype.$setOverwrite=function(e){e!=this.overwrite&&(this.overwrite=e,e?r.addCssClass(this.element,"ace_overwrite-cursors"):r.removeCssClass(this.element,"ace_overwrite-cursors"))},e.prototype.destroy=function(){clearInterval(this.intervalId),clearTimeout(this.timeoutId)},e}();i.prototype.$padding=0,i.prototype.drawCursor=null,t.Cursor=i}),ace.define("ace/scrollbar",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/event","ace/lib/event_emitter"],function(e,t,n){"use strict";var r=this&&this.__extends||function(){var e=function(t,n){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},e(t,n)};return function(t,n){function r(){this.constructor=t}if(typeof n!="function"&&n!==null)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");e(t,n),t.prototype=n===null?Object.create(n):(r.prototype=n.prototype,new r)}}(),i=e("./lib/oop"),s=e("./lib/dom"),o=e("./lib/event"),u=e("./lib/event_emitter").EventEmitter,a=32768,f=function(){function e(e,t){this.element=s.createElement("div"),this.element.className="ace_scrollbar ace_scrollbar"+t,this.inner=s.createElement("div"),this.inner.className="ace_scrollbar-inner",this.inner.textContent="\u00a0",this.element.appendChild(this.inner),e.appendChild(this.element),this.setVisible(!1),this.skipEvent=!1,o.addListener(this.element,"scroll",this.onScroll.bind(this)),o.addListener(this.element,"mousedown",o.preventDefault)}return e.prototype.setVisible=function(e){this.element.style.display=e?"":"none",this.isVisible=e,this.coeff=1},e}();i.implement(f.prototype,u);var l=function(e){function t(t,n){var r=e.call(this,t,"-v")||this;return r.scrollTop=0,r.scrollHeight=0,n.$scrollbarWidth=r.width=s.scrollbarWidth(t.ownerDocument),r.inner.style.width=r.element.style.width=(r.width||15)+5+"px",r.$minWidth=0,r}return r(t,e),t.prototype.onScroll=function(){if(!this.skipEvent){this.scrollTop=this.element.scrollTop;if(this.coeff!=1){var e=this.element.clientHeight/this.scrollHeight;this.scrollTop=this.scrollTop*(1-e)/(this.coeff-e)}this._emit("scroll",{data:this.scrollTop})}this.skipEvent=!1},t.prototype.getWidth=function(){return Math.max(this.isVisible?this.width:0,this.$minWidth||0)},t.prototype.setHeight=function(e){this.element.style.height=e+"px"},t.prototype.setScrollHeight=function(e){this.scrollHeight=e,e>a?(this.coeff=a/e,e=a):this.coeff!=1&&(this.coeff=1),this.inner.style.height=e+"px"},t.prototype.setScrollTop=function(e){this.scrollTop!=e&&(this.skipEvent=!0,this.scrollTop=e,this.element.scrollTop=e*this.coeff)},t}(f);l.prototype.setInnerHeight=l.prototype.setScrollHeight;var c=function(e){function t(t,n){var r=e.call(this,t,"-h")||this;return r.scrollLeft=0,r.height=n.$scrollbarWidth,r.inner.style.height=r.element.style.height=(r.height||15)+5+"px",r}return r(t,e),t.prototype.onScroll=function(){this.skipEvent||(this.scrollLeft=this.element.scrollLeft,this._emit("scroll",{data:this.scrollLeft})),this.skipEvent=!1},t.prototype.getHeight=function(){return this.isVisible?this.height:0},t.prototype.setWidth=function(e){this.element.style.width=e+"px"},t.prototype.setInnerWidth=function(e){this.inner.style.width=e+"px"},t.prototype.setScrollWidth=function(e){this.inner.style.width=e+"px"},t.prototype.setScrollLeft=function(e){this.scrollLeft!=e&&(this.skipEvent=!0,this.scrollLeft=this.element.scrollLeft=e)},t}(f);t.ScrollBar=l,t.ScrollBarV=l,t.ScrollBarH=c,t.VScrollBar=l,t.HScrollBar=c}),ace.define("ace/scrollbar_custom",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/event","ace/lib/event_emitter"],function(e,t,n){"use strict";var r=this&&this.__extends||function(){var e=function(t,n){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},e(t,n)};return function(t,n){function r(){this.constructor=t}if(typeof n!="function"&&n!==null)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");e(t,n),t.prototype=n===null?Object.create(n):(r.prototype=n.prototype,new r)}}(),i=e("./lib/oop"),s=e("./lib/dom"),o=e("./lib/event"),u=e("./lib/event_emitter").EventEmitter;s.importCssString(".ace_editor>.ace_sb-v div, .ace_editor>.ace_sb-h div{\n position: absolute;\n background: rgba(128, 128, 128, 0.6);\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n border: 1px solid #bbb;\n border-radius: 2px;\n z-index: 8;\n}\n.ace_editor>.ace_sb-v, .ace_editor>.ace_sb-h {\n position: absolute;\n z-index: 6;\n background: none;\n overflow: hidden!important;\n}\n.ace_editor>.ace_sb-v {\n z-index: 6;\n right: 0;\n top: 0;\n width: 12px;\n}\n.ace_editor>.ace_sb-v div {\n z-index: 8;\n right: 0;\n width: 100%;\n}\n.ace_editor>.ace_sb-h {\n bottom: 0;\n left: 0;\n height: 12px;\n}\n.ace_editor>.ace_sb-h div {\n bottom: 0;\n height: 100%;\n}\n.ace_editor>.ace_sb_grabbed {\n z-index: 8;\n background: #000;\n}","ace_scrollbar.css",!1);var a=function(){function e(e,t){this.element=s.createElement("div"),this.element.className="ace_sb"+t,this.inner=s.createElement("div"),this.inner.className="",this.element.appendChild(this.inner),this.VScrollWidth=12,this.HScrollHeight=12,e.appendChild(this.element),this.setVisible(!1),this.skipEvent=!1,o.addMultiMouseDownListener(this.element,[500,300,300],this,"onMouseDown")}return e.prototype.setVisible=function(e){this.element.style.display=e?"":"none",this.isVisible=e,this.coeff=1},e}();i.implement(a.prototype,u);var f=function(e){function t(t,n){var r=e.call(this,t,"-v")||this;return r.scrollTop=0,r.scrollHeight=0,r.parent=t,r.width=r.VScrollWidth,r.renderer=n,r.inner.style.width=r.element.style.width=(r.width||15)+"px",r.$minWidth=0,r}return r(t,e),t.prototype.onMouseDown=function(e,t){if(e!=="mousedown")return;if(o.getButton(t)!==0||t.detail===2)return;if(t.target===this.inner){var n=this,r=t.clientY,i=function(e){r=e.clientY},s=function(){clearInterval(l)},u=t.clientY,a=this.thumbTop,f=function(){if(r===undefined)return;var e=n.scrollTopFromThumbTop(a+r-u);if(e===n.scrollTop)return;n._emit("scroll",{data:e})};o.capture(this.inner,i,s);var l=setInterval(f,20);return o.preventDefault(t)}var c=t.clientY-this.element.getBoundingClientRect().top-this.thumbHeight/2;return this._emit("scroll",{data:this.scrollTopFromThumbTop(c)}),o.preventDefault(t)},t.prototype.getHeight=function(){return this.height},t.prototype.scrollTopFromThumbTop=function(e){var t=e*(this.pageHeight-this.viewHeight)/(this.slideHeight-this.thumbHeight);return t>>=0,t<0?t=0:t>this.pageHeight-this.viewHeight&&(t=this.pageHeight-this.viewHeight),t},t.prototype.getWidth=function(){return Math.max(this.isVisible?this.width:0,this.$minWidth||0)},t.prototype.setHeight=function(e){this.height=Math.max(0,e),this.slideHeight=this.height,this.viewHeight=this.height,this.setScrollHeight(this.pageHeight,!0)},t.prototype.setScrollHeight=function(e,t){if(this.pageHeight===e&&!t)return;this.pageHeight=e,this.thumbHeight=this.slideHeight*this.viewHeight/this.pageHeight,this.thumbHeight>this.slideHeight&&(this.thumbHeight=this.slideHeight),this.thumbHeight<15&&(this.thumbHeight=15),this.inner.style.height=this.thumbHeight+"px",this.scrollTop>this.pageHeight-this.viewHeight&&(this.scrollTop=this.pageHeight-this.viewHeight,this.scrollTop<0&&(this.scrollTop=0),this._emit("scroll",{data:this.scrollTop}))},t.prototype.setScrollTop=function(e){this.scrollTop=e,e<0&&(e=0),this.thumbTop=e*(this.slideHeight-this.thumbHeight)/(this.pageHeight-this.viewHeight),this.inner.style.top=this.thumbTop+"px"},t}(a);f.prototype.setInnerHeight=f.prototype.setScrollHeight;var l=function(e){function t(t,n){var r=e.call(this,t,"-h")||this;return r.scrollLeft=0,r.scrollWidth=0,r.height=r.HScrollHeight,r.inner.style.height=r.element.style.height=(r.height||12)+"px",r.renderer=n,r}return r(t,e),t.prototype.onMouseDown=function(e,t){if(e!=="mousedown")return;if(o.getButton(t)!==0||t.detail===2)return;if(t.target===this.inner){var n=this,r=t.clientX,i=function(e){r=e.clientX},s=function(){clearInterval(l)},u=t.clientX,a=this.thumbLeft,f=function(){if(r===undefined)return;var e=n.scrollLeftFromThumbLeft(a+r-u);if(e===n.scrollLeft)return;n._emit("scroll",{data:e})};o.capture(this.inner,i,s);var l=setInterval(f,20);return o.preventDefault(t)}var c=t.clientX-this.element.getBoundingClientRect().left-this.thumbWidth/2;return this._emit("scroll",{data:this.scrollLeftFromThumbLeft(c)}),o.preventDefault(t)},t.prototype.getHeight=function(){return this.isVisible?this.height:0},t.prototype.scrollLeftFromThumbLeft=function(e){var t=e*(this.pageWidth-this.viewWidth)/(this.slideWidth-this.thumbWidth);return t>>=0,t<0?t=0:t>this.pageWidth-this.viewWidth&&(t=this.pageWidth-this.viewWidth),t},t.prototype.setWidth=function(e){this.width=Math.max(0,e),this.element.style.width=this.width+"px",this.slideWidth=this.width,this.viewWidth=this.width,this.setScrollWidth(this.pageWidth,!0)},t.prototype.setScrollWidth=function(e,t){if(this.pageWidth===e&&!t)return;this.pageWidth=e,this.thumbWidth=this.slideWidth*this.viewWidth/this.pageWidth,this.thumbWidth>this.slideWidth&&(this.thumbWidth=this.slideWidth),this.thumbWidth<15&&(this.thumbWidth=15),this.inner.style.width=this.thumbWidth+"px",this.scrollLeft>this.pageWidth-this.viewWidth&&(this.scrollLeft=this.pageWidth-this.viewWidth,this.scrollLeft<0&&(this.scrollLeft=0),this._emit("scroll",{data:this.scrollLeft}))},t.prototype.setScrollLeft=function(e){this.scrollLeft=e,e<0&&(e=0),this.thumbLeft=e*(this.slideWidth-this.thumbWidth)/(this.pageWidth-this.viewWidth),this.inner.style.left=this.thumbLeft+"px"},t}(a);l.prototype.setInnerWidth=l.prototype.setScrollWidth,t.ScrollBar=f,t.ScrollBarV=f,t.ScrollBarH=l,t.VScrollBar=f,t.HScrollBar=l}),ace.define("ace/renderloop",["require","exports","module","ace/lib/event"],function(e,t,n){"use strict";var r=e("./lib/event"),i=function(){function e(e,t){this.onRender=e,this.pending=!1,this.changes=0,this.$recursionLimit=2,this.window=t||window;var n=this;this._flush=function(e){n.pending=!1;var t=n.changes;t&&(r.blockIdle(100),n.changes=0,n.onRender(t));if(n.changes){if(n.$recursionLimit--<0)return;n.schedule()}else n.$recursionLimit=2}}return e.prototype.schedule=function(e){this.changes=this.changes|e,this.changes&&!this.pending&&(r.nextFrame(this._flush),this.pending=!0)},e.prototype.clear=function(e){var t=this.changes;return this.changes=0,t},e}();t.RenderLoop=i}),ace.define("ace/layer/font_metrics",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/lib/event","ace/lib/useragent","ace/lib/event_emitter"],function(e,t,n){var r=e("../lib/oop"),i=e("../lib/dom"),s=e("../lib/lang"),o=e("../lib/event"),u=e("../lib/useragent"),a=e("../lib/event_emitter").EventEmitter,f=512,l=typeof ResizeObserver=="function",c=200,h=function(){function e(e){this.el=i.createElement("div"),this.$setMeasureNodeStyles(this.el.style,!0),this.$main=i.createElement("div"),this.$setMeasureNodeStyles(this.$main.style),this.$measureNode=i.createElement("div"),this.$setMeasureNodeStyles(this.$measureNode.style),this.el.appendChild(this.$main),this.el.appendChild(this.$measureNode),e.appendChild(this.el),this.$measureNode.textContent=s.stringRepeat("X",f),this.$characterSize={width:0,height:0},l?this.$addObserver():this.checkForSizeChanges()}return e.prototype.$setMeasureNodeStyles=function(e,t){e.width=e.height="auto",e.left=e.top="0px",e.visibility="hidden",e.position="absolute",e.whiteSpace="pre",u.isIE<8?e["font-family"]="inherit":e.font="inherit",e.overflow=t?"hidden":"visible"},e.prototype.checkForSizeChanges=function(e){e===undefined&&(e=this.$measureSizes());if(e&&(this.$characterSize.width!==e.width||this.$characterSize.height!==e.height)){this.$measureNode.style.fontWeight="bold";var t=this.$measureSizes();this.$measureNode.style.fontWeight="",this.$characterSize=e,this.charSizes=Object.create(null),this.allowBoldFonts=t&&t.width===e.width&&t.height===e.height,this._emit("changeCharacterSize",{data:e})}},e.prototype.$addObserver=function(){var e=this;this.$observer=new window.ResizeObserver(function(t){e.checkForSizeChanges()}),this.$observer.observe(this.$measureNode)},e.prototype.$pollSizeChanges=function(){if(this.$pollSizeChangesTimer||this.$observer)return this.$pollSizeChangesTimer;var e=this;return this.$pollSizeChangesTimer=o.onIdle(function t(){e.checkForSizeChanges(),o.onIdle(t,500)},500)},e.prototype.setPolling=function(e){e?this.$pollSizeChanges():this.$pollSizeChangesTimer&&(clearInterval(this.$pollSizeChangesTimer),this.$pollSizeChangesTimer=0)},e.prototype.$measureSizes=function(e){var t={height:(e||this.$measureNode).clientHeight,width:(e||this.$measureNode).clientWidth/f};return t.width===0||t.height===0?null:t},e.prototype.$measureCharWidth=function(e){this.$main.textContent=s.stringRepeat(e,f);var t=this.$main.getBoundingClientRect();return t.width/f},e.prototype.getCharacterWidth=function(e){var t=this.charSizes[e];return t===undefined&&(t=this.charSizes[e]=this.$measureCharWidth(e)/this.$characterSize.width),t},e.prototype.destroy=function(){clearInterval(this.$pollSizeChangesTimer),this.$observer&&this.$observer.disconnect(),this.el&&this.el.parentNode&&this.el.parentNode.removeChild(this.el)},e.prototype.$getZoom=function(e){return!e||!e.parentElement?1:(Number(window.getComputedStyle(e).zoom)||1)*this.$getZoom(e.parentElement)},e.prototype.$initTransformMeasureNodes=function(){var e=function(e,t){return["div",{style:"position: absolute;top:"+e+"px;left:"+t+"px;"}]};this.els=i.buildDom([e(0,0),e(c,0),e(0,c),e(c,c)],this.el)},e.prototype.transformCoordinates=function(e,t){function r(e,t,n){var r=e[1]*t[0]-e[0]*t[1];return[(-t[1]*n[0]+t[0]*n[1])/r,(+e[1]*n[0]-e[0]*n[1])/r]}function i(e,t){return[e[0]-t[0],e[1]-t[1]]}function s(e,t){return[e[0]+t[0],e[1]+t[1]]}function o(e,t){return[e*t[0],e*t[1]]}function u(e){var t=e.getBoundingClientRect();return[t.left,t.top]}if(e){var n=this.$getZoom(this.el);e=o(1/n,e)}this.els||this.$initTransformMeasureNodes();var a=u(this.els[0]),f=u(this.els[1]),l=u(this.els[2]),h=u(this.els[3]),p=r(i(h,f),i(h,l),i(s(f,l),s(h,a))),d=o(1+p[0],i(f,a)),v=o(1+p[1],i(l,a));if(t){var m=t,g=p[0]*m[0]/c+p[1]*m[1]/c+1,y=s(o(m[0],d),o(m[1],v));return s(o(1/g/c,y),a)}var b=i(e,a),w=r(i(d,o(p[0],b)),i(v,o(p[1],b)),b);return o(c,w)},e}();h.prototype.$characterSize={width:0,height:0},r.implement(h.prototype,a),t.FontMetrics=h}),ace.define("ace/css/editor-css",["require","exports","module"],function(e,t,n){n.exports='\n.ace_br1 {border-top-left-radius : 3px;}\n.ace_br2 {border-top-right-radius : 3px;}\n.ace_br3 {border-top-left-radius : 3px; border-top-right-radius: 3px;}\n.ace_br4 {border-bottom-right-radius: 3px;}\n.ace_br5 {border-top-left-radius : 3px; border-bottom-right-radius: 3px;}\n.ace_br6 {border-top-right-radius : 3px; border-bottom-right-radius: 3px;}\n.ace_br7 {border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px;}\n.ace_br8 {border-bottom-left-radius : 3px;}\n.ace_br9 {border-top-left-radius : 3px; border-bottom-left-radius: 3px;}\n.ace_br10{border-top-right-radius : 3px; border-bottom-left-radius: 3px;}\n.ace_br11{border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-left-radius: 3px;}\n.ace_br12{border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\n.ace_br13{border-top-left-radius : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\n.ace_br14{border-top-right-radius : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\n.ace_br15{border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\n\n\n.ace_editor {\n position: relative;\n overflow: hidden;\n padding: 0;\n font: 12px/normal \'Monaco\', \'Menlo\', \'Ubuntu Mono\', \'Consolas\', \'Source Code Pro\', \'source-code-pro\', monospace;\n direction: ltr;\n text-align: left;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\n\n.ace_scroller {\n position: absolute;\n overflow: hidden;\n top: 0;\n bottom: 0;\n background-color: inherit;\n -ms-user-select: none;\n -moz-user-select: none;\n -webkit-user-select: none;\n user-select: none;\n cursor: text;\n}\n\n.ace_content {\n position: absolute;\n box-sizing: border-box;\n min-width: 100%;\n contain: style size layout;\n font-variant-ligatures: no-common-ligatures;\n}\n\n.ace_keyboard-focus:focus {\n box-shadow: inset 0 0 0 2px #5E9ED6;\n outline: none;\n}\n\n.ace_dragging .ace_scroller:before{\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n content: \'\';\n background: rgba(250, 250, 250, 0.01);\n z-index: 1000;\n}\n.ace_dragging.ace_dark .ace_scroller:before{\n background: rgba(0, 0, 0, 0.01);\n}\n\n.ace_gutter {\n position: absolute;\n overflow : hidden;\n width: auto;\n top: 0;\n bottom: 0;\n left: 0;\n cursor: default;\n z-index: 4;\n -ms-user-select: none;\n -moz-user-select: none;\n -webkit-user-select: none;\n user-select: none;\n contain: style size layout;\n}\n\n.ace_gutter-active-line {\n position: absolute;\n left: 0;\n right: 0;\n}\n\n.ace_scroller.ace_scroll-left:after {\n content: "";\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n box-shadow: 17px 0 16px -16px rgba(0, 0, 0, 0.4) inset;\n pointer-events: none;\n}\n\n.ace_gutter-cell, .ace_gutter-cell_svg-icons {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n padding-left: 19px;\n padding-right: 6px;\n background-repeat: no-repeat;\n}\n\n.ace_gutter-cell_svg-icons .ace_gutter_annotation {\n margin-left: -14px;\n float: left;\n}\n\n.ace_gutter-cell .ace_gutter_annotation {\n margin-left: -19px;\n float: left;\n}\n\n.ace_gutter-cell.ace_error, .ace_icon.ace_error, .ace_icon.ace_error_fold {\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAABOFBMVEX/////////QRswFAb/Ui4wFAYwFAYwFAaWGAfDRymzOSH/PxswFAb/SiUwFAYwFAbUPRvjQiDllog5HhHdRybsTi3/Tyv9Tir+Syj/UC3////XurebMBIwFAb/RSHbPx/gUzfdwL3kzMivKBAwFAbbvbnhPx66NhowFAYwFAaZJg8wFAaxKBDZurf/RB6mMxb/SCMwFAYwFAbxQB3+RB4wFAb/Qhy4Oh+4QifbNRcwFAYwFAYwFAb/QRzdNhgwFAYwFAbav7v/Uy7oaE68MBK5LxLewr/r2NXewLswFAaxJw4wFAbkPRy2PyYwFAaxKhLm1tMwFAazPiQwFAaUGAb/QBrfOx3bvrv/VC/maE4wFAbRPBq6MRO8Qynew8Dp2tjfwb0wFAbx6eju5+by6uns4uH9/f36+vr/GkHjAAAAYnRSTlMAGt+64rnWu/bo8eAA4InH3+DwoN7j4eLi4xP99Nfg4+b+/u9B/eDs1MD1mO7+4PHg2MXa347g7vDizMLN4eG+Pv7i5evs/v79yu7S3/DV7/498Yv24eH+4ufQ3Ozu/v7+y13sRqwAAADLSURBVHjaZc/XDsFgGIBhtDrshlitmk2IrbHFqL2pvXf/+78DPokj7+Fz9qpU/9UXJIlhmPaTaQ6QPaz0mm+5gwkgovcV6GZzd5JtCQwgsxoHOvJO15kleRLAnMgHFIESUEPmawB9ngmelTtipwwfASilxOLyiV5UVUyVAfbG0cCPHig+GBkzAENHS0AstVF6bacZIOzgLmxsHbt2OecNgJC83JERmePUYq8ARGkJx6XtFsdddBQgZE2nPR6CICZhawjA4Fb/chv+399kfR+MMMDGOQAAAABJRU5ErkJggg==");\n background-repeat: no-repeat;\n background-position: 2px center;\n}\n\n.ace_gutter-cell.ace_warning, .ace_icon.ace_warning, .ace_icon.ace_warning_fold {\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAmVBMVEX///8AAAD///8AAAAAAABPSzb/5sAAAAB/blH/73z/ulkAAAAAAAD85pkAAAAAAAACAgP/vGz/rkDerGbGrV7/pkQICAf////e0IsAAAD/oED/qTvhrnUAAAD/yHD/njcAAADuv2r/nz//oTj/p064oGf/zHAAAAA9Nir/tFIAAAD/tlTiuWf/tkIAAACynXEAAAAAAAAtIRW7zBpBAAAAM3RSTlMAABR1m7RXO8Ln31Z36zT+neXe5OzooRDfn+TZ4p3h2hTf4t3k3ucyrN1K5+Xaks52Sfs9CXgrAAAAjklEQVR42o3PbQ+CIBQFYEwboPhSYgoYunIqqLn6/z8uYdH8Vmdnu9vz4WwXgN/xTPRD2+sgOcZjsge/whXZgUaYYvT8QnuJaUrjrHUQreGczuEafQCO/SJTufTbroWsPgsllVhq3wJEk2jUSzX3CUEDJC84707djRc5MTAQxoLgupWRwW6UB5fS++NV8AbOZgnsC7BpEAAAAABJRU5ErkJggg==");\n background-repeat: no-repeat;\n background-position: 2px center;\n}\n\n.ace_gutter-cell.ace_info, .ace_icon.ace_info {\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAAAAAA6mKC9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAAJ0Uk5TAAB2k804AAAAPklEQVQY02NgIB68QuO3tiLznjAwpKTgNyDbMegwisCHZUETUZV0ZqOquBpXj2rtnpSJT1AEnnRmL2OgGgAAIKkRQap2htgAAAAASUVORK5CYII=");\n background-repeat: no-repeat;\n background-position: 2px center;\n}\n.ace_dark .ace_gutter-cell.ace_info, .ace_dark .ace_icon.ace_info {\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAJFBMVEUAAAChoaGAgIAqKiq+vr6tra1ZWVmUlJSbm5s8PDxubm56enrdgzg3AAAAAXRSTlMAQObYZgAAAClJREFUeNpjYMAPdsMYHegyJZFQBlsUlMFVCWUYKkAZMxZAGdxlDMQBAG+TBP4B6RyJAAAAAElFTkSuQmCC");\n}\n\n.ace_icon_svg.ace_error {\n -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMCAxNiI+CjxnIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlPSJyZWQiIHNoYXBlLXJlbmRlcmluZz0iZ2VvbWV0cmljUHJlY2lzaW9uIj4KPGNpcmNsZSBmaWxsPSJub25lIiBjeD0iOCIgY3k9IjgiIHI9IjciIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPGxpbmUgeDE9IjExIiB5MT0iNSIgeDI9IjUiIHkyPSIxMSIvPgo8bGluZSB4MT0iMTEiIHkxPSIxMSIgeDI9IjUiIHkyPSI1Ii8+CjwvZz4KPC9zdmc+");\n background-color: crimson;\n}\n.ace_icon_svg.ace_warning {\n -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMCAxNiI+CjxnIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlPSJkYXJrb3JhbmdlIiBzaGFwZS1yZW5kZXJpbmc9Imdlb21ldHJpY1ByZWNpc2lvbiI+Cjxwb2x5Z29uIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGZpbGw9Im5vbmUiIHBvaW50cz0iOCAxIDE1IDE1IDEgMTUgOCAxIi8+CjxyZWN0IHg9IjgiIHk9IjEyIiB3aWR0aD0iMC4wMSIgaGVpZ2h0PSIwLjAxIi8+CjxsaW5lIHgxPSI4IiB5MT0iNiIgeDI9IjgiIHkyPSIxMCIvPgo8L2c+Cjwvc3ZnPg==");\n background-color: darkorange;\n}\n.ace_icon_svg.ace_info {\n -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMCAxNiI+CjxnIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlPSJibHVlIiBzaGFwZS1yZW5kZXJpbmc9Imdlb21ldHJpY1ByZWNpc2lvbiI+CjxjaXJjbGUgZmlsbD0ibm9uZSIgY3g9IjgiIGN5PSI4IiByPSI3IiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+Cjxwb2x5bGluZSBwb2ludHM9IjggMTEgOCA4Ii8+Cjxwb2x5bGluZSBwb2ludHM9IjkgOCA2IDgiLz4KPGxpbmUgeDE9IjEwIiB5MT0iMTEiIHgyPSI2IiB5Mj0iMTEiLz4KPHJlY3QgeD0iOCIgeT0iNSIgd2lkdGg9IjAuMDEiIGhlaWdodD0iMC4wMSIvPgo8L2c+Cjwvc3ZnPg==");\n background-color: royalblue;\n}\n\n.ace_icon_svg.ace_error_fold {\n -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMCAxNiIgZmlsbD0ibm9uZSI+CiAgPHBhdGggZD0ibSAxOC45Mjk4NTEsNy44Mjk4MDc2IGMgMC4xNDYzNTMsNi4zMzc0NjA0IC02LjMyMzE0Nyw3Ljc3Nzg0NDQgLTcuNDc3OTEyLDcuNzc3ODQ0NCAtMi4xMDcyNzI2LC0wLjEyODc1IDUuMTE3Njc4LDAuMzU2MjQ5IDUuMDUxNjk4LC03Ljg3MDA2MTggLTAuNjA0NjcyLC04LjAwMzk3MzQ5IC03LjA3NzI3MDYsLTcuNTYzMTE4OSAtNC44NTczLC03LjQzMDM5NTU2IDEuNjA2LC0wLjExNTE0MjI1IDYuODk3NDg1LDEuMjYyNTQ1OTYgNy4yODM1MTQsNy41MjI2MTI5NiB6IiBmaWxsPSJjcmltc29uIiBzdHJva2Utd2lkdGg9IjIiLz4KICA8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0ibSA4LjExNDc1NjIsMi4wNTI5ODI4IGMgMy4zNDkxNjk4LDAgNi4wNjQxMzI4LDIuNjc2ODYyNyA2LjA2NDEzMjgsNS45Nzg5NTMgMCwzLjMwMjExMjIgLTIuNzE0OTYzLDUuOTc4OTIwMiAtNi4wNjQxMzI4LDUuOTc4OTIwMiAtMy4zNDkxNDczLDAgLTYuMDY0MTc3MiwtMi42NzY4MDggLTYuMDY0MTc3MiwtNS45Nzg5MjAyIDAuMDA1MzksLTMuMjk5ODg2MSAyLjcxNzI2NTYsLTUuOTczNjQwOCA2LjA2NDE3NzIsLTUuOTc4OTUzIHogbSAwLC0xLjczNTgyNzE5IGMgLTQuMzIxNDgzNiwwIC03LjgyNDc0MDM4LDMuNDU0MDE4NDkgLTcuODI0NzQwMzgsNy43MTQ3ODAxOSAwLDQuMjYwNzI4MiAzLjUwMzI1Njc4LDcuNzE0NzQ1MiA3LjgyNDc0MDM4LDcuNzE0NzQ1MiA0LjMyMTQ0OTgsMCA3LjgyNDY5OTgsLTMuNDU0MDE3IDcuODI0Njk5OCwtNy43MTQ3NDUyIDAsLTIuMDQ2MDkxNCAtMC44MjQzOTIsLTQuMDA4MzY3MiAtMi4yOTE3NTYsLTUuNDU1MTc0NiBDIDEyLjE4MDIyNSwxLjEyOTk2NDggMTAuMTkwMDEzLDAuMzE3MTU1NjEgOC4xMTQ3NTYyLDAuMzE3MTU1NjEgWiBNIDYuOTM3NDU2Myw4LjI0MDU5ODUgNC42NzE4Njg1LDEwLjQ4NTg1MiA2LjAwODY4MTQsMTEuODc2NzI4IDguMzE3MDAzNSw5LjYwMDc5MTEgMTAuNjI1MzM3LDExLjg3NjcyOCAxMS45NjIxMzgsMTAuNDg1ODUyIDkuNjk2NTUwOCw4LjI0MDU5ODUgMTEuOTYyMTM4LDYuMDA2ODA2NiAxMC41NzMyNDYsNC42Mzc0MzM1IDguMzE3MDAzNSw2Ljg3MzQyOTcgNi4wNjA3NjA3LDQuNjM3NDMzNSA0LjY3MTg2ODUsNi4wMDY4MDY2IFoiIGZpbGw9ImNyaW1zb24iIHN0cm9rZS13aWR0aD0iMiIvPgo8L3N2Zz4=");\n background-color: crimson;\n}\n.ace_icon_svg.ace_warning_fold {\n -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAyMCAxNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xNC43NzY5IDE0LjczMzdMOC42NTE5MiAyLjQ4MzY5QzguMzI5NDYgMS44Mzg3NyA3LjQwOTEzIDEuODM4NzcgNy4wODY2NyAyLjQ4MzY5TDAuOTYxNjY5IDE0LjczMzdDMC42NzA3NzUgMTUuMzE1NSAxLjA5MzgzIDE2IDEuNzQ0MjkgMTZIMTMuOTk0M0MxNC42NDQ4IDE2IDE1LjA2NzggMTUuMzE1NSAxNC43NzY5IDE0LjczMzdaTTMuMTYwMDcgMTQuMjVMNy44NjkyOSA0LjgzMTU2TDEyLjU3ODUgMTQuMjVIMy4xNjAwN1pNOC43NDQyOSAxMS42MjVWMTMuMzc1SDYuOTk0MjlWMTEuNjI1SDguNzQ0MjlaTTYuOTk0MjkgMTAuNzVWNy4yNUg4Ljc0NDI5VjEwLjc1SDYuOTk0MjlaIiBmaWxsPSIjRUM3MjExIi8+CjxwYXRoIGQ9Ik0xMS4xOTkxIDIuOTUyMzhDMTAuODgwOSAyLjMxNDY3IDEwLjM1MzcgMS44MDUyNiA5LjcwNTUgMS41MDlMMTEuMDQxIDEuMDY5NzhDMTEuNjg4MyAwLjk0OTgxNCAxMi4zMzcgMS4yNzI2MyAxMi42MzE3IDEuODYxNDFMMTcuNjEzNiAxMS44MTYxQzE4LjM1MjcgMTMuMjkyOSAxNy41OTM4IDE1LjA4MDQgMTYuMDE4IDE1LjU3NDVDMTYuNDA0NCAxNC40NTA3IDE2LjMyMzEgMTMuMjE4OCAxNS43OTI0IDEyLjE1NTVMMTEuMTk5MSAyLjk1MjM4WiIgZmlsbD0iI0VDNzIxMSIvPgo8L3N2Zz4=");\n background-color: darkorange;\n}\n\n.ace_scrollbar {\n contain: strict;\n position: absolute;\n right: 0;\n bottom: 0;\n z-index: 6;\n}\n\n.ace_scrollbar-inner {\n position: absolute;\n cursor: text;\n left: 0;\n top: 0;\n}\n\n.ace_scrollbar-v{\n overflow-x: hidden;\n overflow-y: scroll;\n top: 0;\n}\n\n.ace_scrollbar-h {\n overflow-x: scroll;\n overflow-y: hidden;\n left: 0;\n}\n\n.ace_print-margin {\n position: absolute;\n height: 100%;\n}\n\n.ace_text-input {\n position: absolute;\n z-index: 0;\n width: 0.5em;\n height: 1em;\n opacity: 0;\n background: transparent;\n -moz-appearance: none;\n appearance: none;\n border: none;\n resize: none;\n outline: none;\n overflow: hidden;\n font: inherit;\n padding: 0 1px;\n margin: 0 -1px;\n contain: strict;\n -ms-user-select: text;\n -moz-user-select: text;\n -webkit-user-select: text;\n user-select: text;\n /*with `pre-line` chrome inserts   instead of space*/\n white-space: pre!important;\n}\n.ace_text-input.ace_composition {\n background: transparent;\n color: inherit;\n z-index: 1000;\n opacity: 1;\n}\n.ace_composition_placeholder { color: transparent }\n.ace_composition_marker { \n border-bottom: 1px solid;\n position: absolute;\n border-radius: 0;\n margin-top: 1px;\n}\n\n[ace_nocontext=true] {\n transform: none!important;\n filter: none!important;\n clip-path: none!important;\n mask : none!important;\n contain: none!important;\n perspective: none!important;\n mix-blend-mode: initial!important;\n z-index: auto;\n}\n\n.ace_layer {\n z-index: 1;\n position: absolute;\n overflow: hidden;\n /* workaround for chrome bug https://github.com/ajaxorg/ace/issues/2312*/\n word-wrap: normal;\n white-space: pre;\n height: 100%;\n width: 100%;\n box-sizing: border-box;\n /* setting pointer-events: auto; on node under the mouse, which changes\n during scroll, will break mouse wheel scrolling in Safari */\n pointer-events: none;\n}\n\n.ace_gutter-layer {\n position: relative;\n width: auto;\n text-align: right;\n pointer-events: auto;\n height: 1000000px;\n contain: style size layout;\n}\n\n.ace_text-layer {\n font: inherit !important;\n position: absolute;\n height: 1000000px;\n width: 1000000px;\n contain: style size layout;\n}\n\n.ace_text-layer > .ace_line, .ace_text-layer > .ace_line_group {\n contain: style size layout;\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n}\n\n.ace_hidpi .ace_text-layer,\n.ace_hidpi .ace_gutter-layer,\n.ace_hidpi .ace_content,\n.ace_hidpi .ace_gutter {\n contain: strict;\n}\n.ace_hidpi .ace_text-layer > .ace_line, \n.ace_hidpi .ace_text-layer > .ace_line_group {\n contain: strict;\n}\n\n.ace_cjk {\n display: inline-block;\n text-align: center;\n}\n\n.ace_cursor-layer {\n z-index: 4;\n}\n\n.ace_cursor {\n z-index: 4;\n position: absolute;\n box-sizing: border-box;\n border-left: 2px solid;\n /* workaround for smooth cursor repaintng whole screen in chrome */\n transform: translatez(0);\n}\n\n.ace_multiselect .ace_cursor {\n border-left-width: 1px;\n}\n\n.ace_slim-cursors .ace_cursor {\n border-left-width: 1px;\n}\n\n.ace_overwrite-cursors .ace_cursor {\n border-left-width: 0;\n border-bottom: 1px solid;\n}\n\n.ace_hidden-cursors .ace_cursor {\n opacity: 0.2;\n}\n\n.ace_hasPlaceholder .ace_hidden-cursors .ace_cursor {\n opacity: 0;\n}\n\n.ace_smooth-blinking .ace_cursor {\n transition: opacity 0.18s;\n}\n\n.ace_animate-blinking .ace_cursor {\n animation-duration: 1000ms;\n animation-timing-function: step-end;\n animation-name: blink-ace-animate;\n animation-iteration-count: infinite;\n}\n\n.ace_animate-blinking.ace_smooth-blinking .ace_cursor {\n animation-duration: 1000ms;\n animation-timing-function: ease-in-out;\n animation-name: blink-ace-animate-smooth;\n}\n \n@keyframes blink-ace-animate {\n from, to { opacity: 1; }\n 60% { opacity: 0; }\n}\n\n@keyframes blink-ace-animate-smooth {\n from, to { opacity: 1; }\n 45% { opacity: 1; }\n 60% { opacity: 0; }\n 85% { opacity: 0; }\n}\n\n.ace_marker-layer .ace_step, .ace_marker-layer .ace_stack {\n position: absolute;\n z-index: 3;\n}\n\n.ace_marker-layer .ace_selection {\n position: absolute;\n z-index: 5;\n}\n\n.ace_marker-layer .ace_bracket {\n position: absolute;\n z-index: 6;\n}\n\n.ace_marker-layer .ace_error_bracket {\n position: absolute;\n border-bottom: 1px solid #DE5555;\n border-radius: 0;\n}\n\n.ace_marker-layer .ace_active-line {\n position: absolute;\n z-index: 2;\n}\n\n.ace_marker-layer .ace_selected-word {\n position: absolute;\n z-index: 4;\n box-sizing: border-box;\n}\n\n.ace_line .ace_fold {\n box-sizing: border-box;\n\n display: inline-block;\n height: 11px;\n margin-top: -2px;\n vertical-align: middle;\n\n background-image:\n url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII="),\n url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACJJREFUeNpi+P//fxgTAwPDBxDxD078RSX+YeEyDFMCIMAAI3INmXiwf2YAAAAASUVORK5CYII=");\n background-repeat: no-repeat, repeat-x;\n background-position: center center, top left;\n color: transparent;\n\n border: 1px solid black;\n border-radius: 2px;\n\n cursor: pointer;\n pointer-events: auto;\n}\n\n.ace_dark .ace_fold {\n}\n\n.ace_fold:hover{\n background-image:\n url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII="),\n url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACBJREFUeNpi+P//fz4TAwPDZxDxD5X4i5fLMEwJgAADAEPVDbjNw87ZAAAAAElFTkSuQmCC");\n}\n\n.ace_tooltip {\n background-color: #f5f5f5;\n border: 1px solid gray;\n border-radius: 1px;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);\n color: black;\n max-width: 100%;\n padding: 3px 4px;\n position: fixed;\n z-index: 999999;\n box-sizing: border-box;\n cursor: default;\n white-space: pre-wrap;\n word-wrap: break-word;\n line-height: normal;\n font-style: normal;\n font-weight: normal;\n letter-spacing: normal;\n pointer-events: none;\n overflow: auto;\n max-width: min(60em, 66vw);\n overscroll-behavior: contain;\n}\n.ace_tooltip pre {\n white-space: pre-wrap;\n}\n\n.ace_tooltip.ace_dark {\n background-color: #636363;\n color: #fff;\n}\n\n.ace_tooltip:focus {\n outline: 1px solid #5E9ED6;\n}\n\n.ace_icon {\n display: inline-block;\n width: 18px;\n vertical-align: top;\n}\n\n.ace_icon_svg {\n display: inline-block;\n width: 12px;\n vertical-align: top;\n -webkit-mask-repeat: no-repeat;\n -webkit-mask-size: 12px;\n -webkit-mask-position: center;\n}\n\n.ace_folding-enabled > .ace_gutter-cell, .ace_folding-enabled > .ace_gutter-cell_svg-icons {\n padding-right: 13px;\n}\n\n.ace_fold-widget {\n box-sizing: border-box;\n\n margin: 0 -12px 0 1px;\n display: none;\n width: 11px;\n vertical-align: top;\n\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42mWKsQ0AMAzC8ixLlrzQjzmBiEjp0A6WwBCSPgKAXoLkqSot7nN3yMwR7pZ32NzpKkVoDBUxKAAAAABJRU5ErkJggg==");\n background-repeat: no-repeat;\n background-position: center;\n\n border-radius: 3px;\n \n border: 1px solid transparent;\n cursor: pointer;\n}\n\n.ace_folding-enabled .ace_fold-widget {\n display: inline-block; \n}\n\n.ace_fold-widget.ace_end {\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42m3HwQkAMAhD0YzsRchFKI7sAikeWkrxwScEB0nh5e7KTPWimZki4tYfVbX+MNl4pyZXejUO1QAAAABJRU5ErkJggg==");\n}\n\n.ace_fold-widget.ace_closed {\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAGCAYAAAAG5SQMAAAAOUlEQVR42jXKwQkAMAgDwKwqKD4EwQ26sSOkVWjgIIHAzPiCgaqiqnJHZnKICBERHN194O5b9vbLuAVRL+l0YWnZAAAAAElFTkSuQmCCXA==");\n}\n\n.ace_fold-widget:hover {\n border: 1px solid rgba(0, 0, 0, 0.3);\n background-color: rgba(255, 255, 255, 0.2);\n box-shadow: 0 1px 1px rgba(255, 255, 255, 0.7);\n}\n\n.ace_fold-widget:active {\n border: 1px solid rgba(0, 0, 0, 0.4);\n background-color: rgba(0, 0, 0, 0.05);\n box-shadow: 0 1px 1px rgba(255, 255, 255, 0.8);\n}\n/**\n * Dark version for fold widgets\n */\n.ace_dark .ace_fold-widget {\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHklEQVQIW2P4//8/AzoGEQ7oGCaLLAhWiSwB146BAQCSTPYocqT0AAAAAElFTkSuQmCC");\n}\n.ace_dark .ace_fold-widget.ace_end {\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAH0lEQVQIW2P4//8/AxQ7wNjIAjDMgC4AxjCVKBirIAAF0kz2rlhxpAAAAABJRU5ErkJggg==");\n}\n.ace_dark .ace_fold-widget.ace_closed {\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAFCAYAAACAcVaiAAAAHElEQVQIW2P4//+/AxAzgDADlOOAznHAKgPWAwARji8UIDTfQQAAAABJRU5ErkJggg==");\n}\n.ace_dark .ace_fold-widget:hover {\n box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);\n background-color: rgba(255, 255, 255, 0.1);\n}\n.ace_dark .ace_fold-widget:active {\n box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);\n}\n\n.ace_inline_button {\n border: 1px solid lightgray;\n display: inline-block;\n margin: -1px 8px;\n padding: 0 5px;\n pointer-events: auto;\n cursor: pointer;\n}\n.ace_inline_button:hover {\n border-color: gray;\n background: rgba(200,200,200,0.2);\n display: inline-block;\n pointer-events: auto;\n}\n\n.ace_fold-widget.ace_invalid {\n background-color: #FFB4B4;\n border-color: #DE5555;\n}\n\n.ace_fade-fold-widgets .ace_fold-widget {\n transition: opacity 0.4s ease 0.05s;\n opacity: 0;\n}\n\n.ace_fade-fold-widgets:hover .ace_fold-widget {\n transition: opacity 0.05s ease 0.05s;\n opacity:1;\n}\n\n.ace_underline {\n text-decoration: underline;\n}\n\n.ace_bold {\n font-weight: bold;\n}\n\n.ace_nobold .ace_bold {\n font-weight: normal;\n}\n\n.ace_italic {\n font-style: italic;\n}\n\n\n.ace_error-marker {\n background-color: rgba(255, 0, 0,0.2);\n position: absolute;\n z-index: 9;\n}\n\n.ace_highlight-marker {\n background-color: rgba(255, 255, 0,0.2);\n position: absolute;\n z-index: 8;\n}\n\n.ace_mobile-menu {\n position: absolute;\n line-height: 1.5;\n border-radius: 4px;\n -ms-user-select: none;\n -moz-user-select: none;\n -webkit-user-select: none;\n user-select: none;\n background: white;\n box-shadow: 1px 3px 2px grey;\n border: 1px solid #dcdcdc;\n color: black;\n}\n.ace_dark > .ace_mobile-menu {\n background: #333;\n color: #ccc;\n box-shadow: 1px 3px 2px grey;\n border: 1px solid #444;\n\n}\n.ace_mobile-button {\n padding: 2px;\n cursor: pointer;\n overflow: hidden;\n}\n.ace_mobile-button:hover {\n background-color: #eee;\n opacity:1;\n}\n.ace_mobile-button:active {\n background-color: #ddd;\n}\n\n.ace_placeholder {\n position: relative;\n font-family: arial;\n transform: scale(0.9);\n transform-origin: left;\n white-space: pre;\n opacity: 0.7;\n margin: 0 10px;\n z-index: 1;\n}\n\n.ace_ghost_text {\n opacity: 0.5;\n font-style: italic;\n}\n\n.ace_ghost_text_container > div {\n white-space: pre;\n}\n\n.ghost_text_line_wrapped::after {\n content: "\u21a9";\n position: absolute;\n}\n\n.ace_lineWidgetContainer.ace_ghost_text {\n margin: 0px 4px\n}\n\n.ace_screenreader-only {\n position:absolute;\n left:-10000px;\n top:auto;\n width:1px;\n height:1px;\n overflow:hidden;\n}\n\n.ace_hidden_token {\n display: none;\n}'}),ace.define("ace/layer/decorators",["require","exports","module","ace/lib/dom","ace/lib/oop","ace/lib/event_emitter"],function(e,t,n){"use strict";var r=e("../lib/dom"),i=e("../lib/oop"),s=e("../lib/event_emitter").EventEmitter,o=function(){function e(e,t){this.canvas=r.createElement("canvas"),this.renderer=t,this.pixelRatio=1,this.maxHeight=t.layerConfig.maxHeight,this.lineHeight=t.layerConfig.lineHeight,this.canvasHeight=e.parent.scrollHeight,this.heightRatio=this.canvasHeight/this.maxHeight,this.canvasWidth=e.width,this.minDecorationHeight=2*this.pixelRatio|0,this.halfMinDecorationHeight=this.minDecorationHeight/2|0,this.canvas.width=this.canvasWidth,this.canvas.height=this.canvasHeight,this.canvas.style.top="0px",this.canvas.style.right="0px",this.canvas.style.zIndex="7px",this.canvas.style.position="absolute",this.colors={},this.colors.dark={error:"rgba(255, 18, 18, 1)",warning:"rgba(18, 136, 18, 1)",info:"rgba(18, 18, 136, 1)"},this.colors.light={error:"rgb(255,51,51)",warning:"rgb(32,133,72)",info:"rgb(35,68,138)"},e.element.appendChild(this.canvas)}return e.prototype.$updateDecorators=function(e){function i(e,t){return e.priorityt.priority?1:0}var t=this.renderer.theme.isDark===!0?this.colors.dark:this.colors.light;if(e){this.maxHeight=e.maxHeight,this.lineHeight=e.lineHeight,this.canvasHeight=e.height;var n=(e.lastRow+1)*this.lineHeight;nthis.canvasHeight&&(v=this.canvasHeight-this.halfMinDecorationHeight),h=Math.round(v-this.halfMinDecorationHeight),p=Math.round(v+this.halfMinDecorationHeight)}r.fillStyle=t[s[a].type]||null,r.fillRect(0,c,this.canvasWidth,p-h)}}var m=this.renderer.session.selection.getCursor();if(m){var l=this.compensateFoldRows(m.row,u),c=Math.round((m.row-l)*this.lineHeight*this.heightRatio);r.fillStyle="rgba(0, 0, 0, 0.5)",r.fillRect(0,c,this.canvasWidth,2)}},e.prototype.compensateFoldRows=function(e,t){var n=0;if(t&&t.length>0)for(var r=0;rt[r].start.row&&e=t[r].end.row&&(n+=t[r].end.row-t[r].start.row);return n},e}();i.implement(o.prototype,s),t.Decorator=o}),ace.define("ace/virtual_renderer",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/config","ace/layer/gutter","ace/layer/marker","ace/layer/text","ace/layer/cursor","ace/scrollbar","ace/scrollbar","ace/scrollbar_custom","ace/scrollbar_custom","ace/renderloop","ace/layer/font_metrics","ace/lib/event_emitter","ace/css/editor-css","ace/layer/decorators","ace/lib/useragent","ace/layer/text_util"],function(e,t,n){"use strict";var r=e("./lib/oop"),i=e("./lib/dom"),s=e("./lib/lang"),o=e("./config"),u=e("./layer/gutter").Gutter,a=e("./layer/marker").Marker,f=e("./layer/text").Text,l=e("./layer/cursor").Cursor,c=e("./scrollbar").HScrollBar,h=e("./scrollbar").VScrollBar,p=e("./scrollbar_custom").HScrollBar,d=e("./scrollbar_custom").VScrollBar,v=e("./renderloop").RenderLoop,m=e("./layer/font_metrics").FontMetrics,g=e("./lib/event_emitter").EventEmitter,y=e("./css/editor-css"),b=e("./layer/decorators").Decorator,w=e("./lib/useragent"),E=e("./layer/text_util").isTextToken;i.importCssString(y,"ace_editor.css",!1);var S=function(){function e(e,t){var n=this;this.container=e||i.createElement("div"),i.addCssClass(this.container,"ace_editor"),i.HI_DPI&&i.addCssClass(this.container,"ace_hidpi"),this.setTheme(t),o.get("useStrictCSP")==null&&o.set("useStrictCSP",!1),this.$gutter=i.createElement("div"),this.$gutter.className="ace_gutter",this.container.appendChild(this.$gutter),this.$gutter.setAttribute("aria-hidden","true"),this.scroller=i.createElement("div"),this.scroller.className="ace_scroller",this.container.appendChild(this.scroller),this.content=i.createElement("div"),this.content.className="ace_content",this.scroller.appendChild(this.content),this.$gutterLayer=new u(this.$gutter),this.$gutterLayer.on("changeGutterWidth",this.onGutterResize.bind(this)),this.$markerBack=new a(this.content);var r=this.$textLayer=new f(this.content);this.canvas=r.element,this.$markerFront=new a(this.content),this.$cursorLayer=new l(this.content),this.$horizScroll=!1,this.$vScroll=!1,this.scrollBar=this.scrollBarV=new h(this.container,this),this.scrollBarH=new c(this.container,this),this.scrollBarV.on("scroll",function(e){n.$scrollAnimation||n.session.setScrollTop(e.data-n.scrollMargin.top)}),this.scrollBarH.on("scroll",function(e){n.$scrollAnimation||n.session.setScrollLeft(e.data-n.scrollMargin.left)}),this.scrollTop=0,this.scrollLeft=0,this.cursorPos={row:0,column:0},this.$fontMetrics=new m(this.container),this.$textLayer.$setFontMetrics(this.$fontMetrics),this.$textLayer.on("changeCharacterSize",function(e){n.updateCharacterSize(),n.onResize(!0,n.gutterWidth,n.$size.width,n.$size.height),n._signal("changeCharacterSize",e)}),this.$size={width:0,height:0,scrollerHeight:0,scrollerWidth:0,$dirty:!0},this.layerConfig={width:1,padding:0,firstRow:0,firstRowScreen:0,lastRow:0,lineHeight:0,characterWidth:0,minHeight:1,maxHeight:1,offset:0,height:1,gutterOffset:1},this.scrollMargin={left:0,right:0,top:0,bottom:0,v:0,h:0},this.margin={left:0,right:0,top:0,bottom:0,v:0,h:0},this.$keepTextAreaAtCursor=!w.isIOS,this.$loop=new v(this.$renderChanges.bind(this),this.container.ownerDocument.defaultView),this.$loop.schedule(this.CHANGE_FULL),this.updateCharacterSize(),this.setPadding(4),this.$addResizeObserver(),o.resetOptions(this),o._signal("renderer",this)}return e.prototype.updateCharacterSize=function(){this.$textLayer.allowBoldFonts!=this.$allowBoldFonts&&(this.$allowBoldFonts=this.$textLayer.allowBoldFonts,this.setStyle("ace_nobold",!this.$allowBoldFonts)),this.layerConfig.characterWidth=this.characterWidth=this.$textLayer.getCharacterWidth(),this.layerConfig.lineHeight=this.lineHeight=this.$textLayer.getLineHeight(),this.$updatePrintMargin(),i.setStyle(this.scroller.style,"line-height",this.lineHeight+"px")},e.prototype.setSession=function(e){this.session&&this.session.doc.off("changeNewLineMode",this.onChangeNewLineMode),this.session=e,e&&this.scrollMargin.top&&e.getScrollTop()<=0&&e.setScrollTop(-this.scrollMargin.top),this.$cursorLayer.setSession(e),this.$markerBack.setSession(e),this.$markerFront.setSession(e),this.$gutterLayer.setSession(e),this.$textLayer.setSession(e);if(!e)return;this.$loop.schedule(this.CHANGE_FULL),this.session.$setFontMetrics(this.$fontMetrics),this.scrollBarH.scrollLeft=this.scrollBarV.scrollTop=null,this.onChangeNewLineMode=this.onChangeNewLineMode.bind(this),this.onChangeNewLineMode(),this.session.doc.on("changeNewLineMode",this.onChangeNewLineMode)},e.prototype.updateLines=function(e,t,n){t===undefined&&(t=Infinity),this.$changedLines?(this.$changedLines.firstRow>e&&(this.$changedLines.firstRow=e),this.$changedLines.lastRowthis.layerConfig.lastRow)return;this.$loop.schedule(this.CHANGE_LINES)},e.prototype.onChangeNewLineMode=function(){this.$loop.schedule(this.CHANGE_TEXT),this.$textLayer.$updateEolChar(),this.session.$bidiHandler.setEolChar(this.$textLayer.EOL_CHAR)},e.prototype.onChangeTabSize=function(){this.$loop.schedule(this.CHANGE_TEXT|this.CHANGE_MARKER),this.$textLayer.onChangeTabSize()},e.prototype.updateText=function(){this.$loop.schedule(this.CHANGE_TEXT)},e.prototype.updateFull=function(e){e?this.$renderChanges(this.CHANGE_FULL,!0):this.$loop.schedule(this.CHANGE_FULL)},e.prototype.updateFontSize=function(){this.$textLayer.checkForSizeChanges()},e.prototype.$updateSizeAsync=function(){this.$loop.pending?this.$size.$dirty=!0:this.onResize()},e.prototype.onResize=function(e,t,n,r){if(this.resizing>2)return;this.resizing>0?this.resizing++:this.resizing=e?1:0;var i=this.container;r||(r=i.clientHeight||i.scrollHeight),!r&&this.$maxLines&&this.lineHeight>1&&(!i.style.height||i.style.height=="0px")&&(i.style.height="1px",r=i.clientHeight||i.scrollHeight),n||(n=i.clientWidth||i.scrollWidth);var s=this.$updateCachedSize(e,t,n,r);this.$resizeTimer&&this.$resizeTimer.cancel();if(!this.$size.scrollerHeight||!n&&!r)return this.resizing=0;e&&(this.$gutterLayer.$padding=null),e?this.$renderChanges(s|this.$changes,!0):this.$loop.schedule(s|this.$changes),this.resizing&&(this.resizing=0),this.scrollBarH.scrollLeft=this.scrollBarV.scrollTop=null,this.$customScrollbar&&this.$updateCustomScrollbar(!0)},e.prototype.$updateCachedSize=function(e,t,n,r){r-=this.$extraHeight||0;var s=0,o=this.$size,u={width:o.width,height:o.height,scrollerHeight:o.scrollerHeight,scrollerWidth:o.scrollerWidth};r&&(e||o.height!=r)&&(o.height=r,s|=this.CHANGE_SIZE,o.scrollerHeight=o.height,this.$horizScroll&&(o.scrollerHeight-=this.scrollBarH.getHeight()),this.scrollBarV.setHeight(o.scrollerHeight),this.scrollBarV.element.style.bottom=this.scrollBarH.getHeight()+"px",s|=this.CHANGE_SCROLL);if(n&&(e||o.width!=n)){s|=this.CHANGE_SIZE,o.width=n,t==null&&(t=this.$showGutter?this.$gutter.offsetWidth:0),this.gutterWidth=t,i.setStyle(this.scrollBarH.element.style,"left",t+"px"),i.setStyle(this.scroller.style,"left",t+this.margin.left+"px"),o.scrollerWidth=Math.max(0,n-t-this.scrollBarV.getWidth()-this.margin.h),i.setStyle(this.$gutter.style,"left",this.margin.left+"px");var a=this.scrollBarV.getWidth()+"px";i.setStyle(this.scrollBarH.element.style,"right",a),i.setStyle(this.scroller.style,"right",a),i.setStyle(this.scroller.style,"bottom",this.scrollBarH.getHeight()),this.scrollBarH.setWidth(o.scrollerWidth);if(this.session&&this.session.getUseWrapMode()&&this.adjustWrapLimit()||e)s|=this.CHANGE_FULL}return o.$dirty=!n||!r,s&&this._signal("resize",u),s},e.prototype.onGutterResize=function(e){var t=this.$showGutter?e:0;t!=this.gutterWidth&&(this.$changes|=this.$updateCachedSize(!0,t,this.$size.width,this.$size.height)),this.session.getUseWrapMode()&&this.adjustWrapLimit()?this.$loop.schedule(this.CHANGE_FULL):this.$size.$dirty?this.$loop.schedule(this.CHANGE_FULL):this.$computeLayerConfig()},e.prototype.adjustWrapLimit=function(){var e=this.$size.scrollerWidth-this.$padding*2,t=Math.floor(e/this.characterWidth);return this.session.adjustWrapLimit(t,this.$showPrintMargin&&this.$printMarginColumn)},e.prototype.setAnimatedScroll=function(e){this.setOption("animatedScroll",e)},e.prototype.getAnimatedScroll=function(){return this.$animatedScroll},e.prototype.setShowInvisibles=function(e){this.setOption("showInvisibles",e),this.session.$bidiHandler.setShowInvisibles(e)},e.prototype.getShowInvisibles=function(){return this.getOption("showInvisibles")},e.prototype.getDisplayIndentGuides=function(){return this.getOption("displayIndentGuides")},e.prototype.setDisplayIndentGuides=function(e){this.setOption("displayIndentGuides",e)},e.prototype.getHighlightIndentGuides=function(){return this.getOption("highlightIndentGuides")},e.prototype.setHighlightIndentGuides=function(e){this.setOption("highlightIndentGuides",e)},e.prototype.setShowPrintMargin=function(e){this.setOption("showPrintMargin",e)},e.prototype.getShowPrintMargin=function(){return this.getOption("showPrintMargin")},e.prototype.setPrintMarginColumn=function(e){this.setOption("printMarginColumn",e)},e.prototype.getPrintMarginColumn=function(){return this.getOption("printMarginColumn")},e.prototype.getShowGutter=function(){return this.getOption("showGutter")},e.prototype.setShowGutter=function(e){return this.setOption("showGutter",e)},e.prototype.getFadeFoldWidgets=function(){return this.getOption("fadeFoldWidgets")},e.prototype.setFadeFoldWidgets=function(e){this.setOption("fadeFoldWidgets",e)},e.prototype.setHighlightGutterLine=function(e){this.setOption("highlightGutterLine",e)},e.prototype.getHighlightGutterLine=function(){return this.getOption("highlightGutterLine")},e.prototype.$updatePrintMargin=function(){if(!this.$showPrintMargin&&!this.$printMarginEl)return;if(!this.$printMarginEl){var e=i.createElement("div");e.className="ace_layer ace_print-margin-layer",this.$printMarginEl=i.createElement("div"),this.$printMarginEl.className="ace_print-margin",e.appendChild(this.$printMarginEl),this.content.insertBefore(e,this.content.firstChild)}var t=this.$printMarginEl.style;t.left=Math.round(this.characterWidth*this.$printMarginColumn+this.$padding)+"px",t.visibility=this.$showPrintMargin?"visible":"hidden",this.session&&this.session.$wrap==-1&&this.adjustWrapLimit()},e.prototype.getContainerElement=function(){return this.container},e.prototype.getMouseEventTarget=function(){return this.scroller},e.prototype.getTextAreaContainer=function(){return this.container},e.prototype.$moveTextAreaToCursor=function(){if(this.$isMousePressed)return;var e=this.textarea.style,t=this.$composition;if(!this.$keepTextAreaAtCursor&&!t){i.translate(this.textarea,-100,0);return}var n=this.$cursorLayer.$pixelPos;if(!n)return;t&&t.markerRange&&(n=this.$cursorLayer.getPixelPosition(t.markerRange.start,!0));var r=this.layerConfig,s=n.top,o=n.left;s-=r.offset;var u=t&&t.useTextareaForIME||w.isMobile?this.lineHeight:1;if(s<0||s>r.height-u){i.translate(this.textarea,0,0);return}var a=1,f=this.$size.height-u;if(!t)s+=this.lineHeight;else if(t.useTextareaForIME){var l=this.textarea.value;a=this.characterWidth*this.session.$getStringScreenWidth(l)[0]}else s+=this.lineHeight+2;o-=this.scrollLeft,o>this.$size.scrollerWidth-a&&(o=this.$size.scrollerWidth-a),o+=this.gutterWidth+this.margin.left,i.setStyle(e,"height",u+"px"),i.setStyle(e,"width",a+"px"),i.translate(this.textarea,Math.min(o,this.$size.scrollerWidth-a),Math.min(s,f))},e.prototype.getFirstVisibleRow=function(){return this.layerConfig.firstRow},e.prototype.getFirstFullyVisibleRow=function(){return this.layerConfig.firstRow+(this.layerConfig.offset===0?0:1)},e.prototype.getLastFullyVisibleRow=function(){var e=this.layerConfig,t=e.lastRow,n=this.session.documentToScreenRow(t,0)*e.lineHeight;return n-this.session.getScrollTop()>e.height-e.lineHeight?t-1:t},e.prototype.getLastVisibleRow=function(){return this.layerConfig.lastRow},e.prototype.setPadding=function(e){this.$padding=e,this.$textLayer.setPadding(e),this.$cursorLayer.setPadding(e),this.$markerFront.setPadding(e),this.$markerBack.setPadding(e),this.$loop.schedule(this.CHANGE_FULL),this.$updatePrintMargin()},e.prototype.setScrollMargin=function(e,t,n,r){var i=this.scrollMargin;i.top=e|0,i.bottom=t|0,i.right=r|0,i.left=n|0,i.v=i.top+i.bottom,i.h=i.left+i.right,i.top&&this.scrollTop<=0&&this.session&&this.session.setScrollTop(-i.top),this.updateFull()},e.prototype.setMargin=function(e,t,n,r){var i=this.margin;i.top=e|0,i.bottom=t|0,i.right=r|0,i.left=n|0,i.v=i.top+i.bottom,i.h=i.left+i.right,this.$updateCachedSize(!0,this.gutterWidth,this.$size.width,this.$size.height),this.updateFull()},e.prototype.getHScrollBarAlwaysVisible=function(){return this.$hScrollBarAlwaysVisible},e.prototype.setHScrollBarAlwaysVisible=function(e){this.setOption("hScrollBarAlwaysVisible",e)},e.prototype.getVScrollBarAlwaysVisible=function(){return this.$vScrollBarAlwaysVisible},e.prototype.setVScrollBarAlwaysVisible=function(e){this.setOption("vScrollBarAlwaysVisible",e)},e.prototype.$updateScrollBarV=function(){var e=this.layerConfig.maxHeight,t=this.$size.scrollerHeight;!this.$maxLines&&this.$scrollPastEnd&&(e-=(t-this.lineHeight)*this.$scrollPastEnd,this.scrollTop>e-t&&(e=this.scrollTop+t,this.scrollBarV.scrollTop=null)),this.scrollBarV.setScrollHeight(e+this.scrollMargin.v),this.scrollBarV.setScrollTop(this.scrollTop+this.scrollMargin.top)},e.prototype.$updateScrollBarH=function(){this.scrollBarH.setScrollWidth(this.layerConfig.width+2*this.$padding+this.scrollMargin.h),this.scrollBarH.setScrollLeft(this.scrollLeft+this.scrollMargin.left)},e.prototype.freeze=function(){this.$frozen=!0},e.prototype.unfreeze=function(){this.$frozen=!1},e.prototype.$renderChanges=function(e,t){this.$changes&&(e|=this.$changes,this.$changes=0);if(!this.session||!this.container.offsetWidth||this.$frozen||!e&&!t){this.$changes|=e;return}if(this.$size.$dirty)return this.$changes|=e,this.onResize(!0);this.lineHeight||this.$textLayer.checkForSizeChanges(),this._signal("beforeRender",e),this.session&&this.session.$bidiHandler&&this.session.$bidiHandler.updateCharacterWidths(this.$fontMetrics);var n=this.layerConfig;if(e&this.CHANGE_FULL||e&this.CHANGE_SIZE||e&this.CHANGE_TEXT||e&this.CHANGE_LINES||e&this.CHANGE_SCROLL||e&this.CHANGE_H_SCROLL){e|=this.$computeLayerConfig()|this.$loop.clear();if(n.firstRow!=this.layerConfig.firstRow&&n.firstRowScreen==this.layerConfig.firstRowScreen){var r=this.scrollTop+(n.firstRow-Math.max(this.layerConfig.firstRow,0))*this.lineHeight;r>0&&(this.scrollTop=r,e|=this.CHANGE_SCROLL,e|=this.$computeLayerConfig()|this.$loop.clear())}n=this.layerConfig,this.$updateScrollBarV(),e&this.CHANGE_H_SCROLL&&this.$updateScrollBarH(),i.translate(this.content,-this.scrollLeft,-n.offset);var s=n.width+2*this.$padding+"px",o=n.minHeight+"px";i.setStyle(this.content.style,"width",s),i.setStyle(this.content.style,"height",o)}e&this.CHANGE_H_SCROLL&&(i.translate(this.content,-this.scrollLeft,-n.offset),this.scroller.className=this.scrollLeft<=0?"ace_scroller ":"ace_scroller ace_scroll-left ",this.enableKeyboardAccessibility&&(this.scroller.className+=this.keyboardFocusClassName));if(e&this.CHANGE_FULL){this.$changedLines=null,this.$textLayer.update(n),this.$showGutter&&this.$gutterLayer.update(n),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(n),this.$markerBack.update(n),this.$markerFront.update(n),this.$cursorLayer.update(n),this.$moveTextAreaToCursor(),this._signal("afterRender",e);return}if(e&this.CHANGE_SCROLL){this.$changedLines=null,e&this.CHANGE_TEXT||e&this.CHANGE_LINES?this.$textLayer.update(n):this.$textLayer.scrollLines(n),this.$showGutter&&(e&this.CHANGE_GUTTER||e&this.CHANGE_LINES?this.$gutterLayer.update(n):this.$gutterLayer.scrollLines(n)),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(n),this.$markerBack.update(n),this.$markerFront.update(n),this.$cursorLayer.update(n),this.$moveTextAreaToCursor(),this._signal("afterRender",e);return}e&this.CHANGE_TEXT?(this.$changedLines=null,this.$textLayer.update(n),this.$showGutter&&this.$gutterLayer.update(n),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(n)):e&this.CHANGE_LINES?((this.$updateLines()||e&this.CHANGE_GUTTER&&this.$showGutter)&&this.$gutterLayer.update(n),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(n)):e&this.CHANGE_TEXT||e&this.CHANGE_GUTTER?(this.$showGutter&&this.$gutterLayer.update(n),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(n)):e&this.CHANGE_CURSOR&&(this.$highlightGutterLine&&this.$gutterLayer.updateLineHighlight(n),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(n)),e&this.CHANGE_CURSOR&&(this.$cursorLayer.update(n),this.$moveTextAreaToCursor()),e&(this.CHANGE_MARKER|this.CHANGE_MARKER_FRONT)&&this.$markerFront.update(n),e&(this.CHANGE_MARKER|this.CHANGE_MARKER_BACK)&&this.$markerBack.update(n),this._signal("afterRender",e)},e.prototype.$autosize=function(){var e=this.session.getScreenLength()*this.lineHeight,t=this.$maxLines*this.lineHeight,n=Math.min(t,Math.max((this.$minLines||1)*this.lineHeight,e))+this.scrollMargin.v+(this.$extraHeight||0);this.$horizScroll&&(n+=this.scrollBarH.getHeight()),this.$maxPixelHeight&&n>this.$maxPixelHeight&&(n=this.$maxPixelHeight);var r=n<=2*this.lineHeight,i=!r&&e>t;if(n!=this.desiredHeight||this.$size.height!=this.desiredHeight||i!=this.$vScroll){i!=this.$vScroll&&(this.$vScroll=i,this.scrollBarV.setVisible(i));var s=this.container.clientWidth;this.container.style.height=n+"px",this.$updateCachedSize(!0,this.$gutterWidth,s,n),this.desiredHeight=n,this._signal("autosize")}},e.prototype.$computeLayerConfig=function(){var e=this.session,t=this.$size,n=t.height<=2*this.lineHeight,r=this.session.getScreenLength(),i=r*this.lineHeight,s=this.$getLongestLine(),o=!n&&(this.$hScrollBarAlwaysVisible||t.scrollerWidth-s-2*this.$padding<0),u=this.$horizScroll!==o;u&&(this.$horizScroll=o,this.scrollBarH.setVisible(o));var a=this.$vScroll;this.$maxLines&&this.lineHeight>1&&this.$autosize();var f=t.scrollerHeight+this.lineHeight,l=!this.$maxLines&&this.$scrollPastEnd?(t.scrollerHeight-this.lineHeight)*this.$scrollPastEnd:0;i+=l;var c=this.scrollMargin;this.session.setScrollTop(Math.max(-c.top,Math.min(this.scrollTop,i-t.scrollerHeight+c.bottom))),this.session.setScrollLeft(Math.max(-c.left,Math.min(this.scrollLeft,s+2*this.$padding-t.scrollerWidth+c.right)));var h=!n&&(this.$vScrollBarAlwaysVisible||t.scrollerHeight-i+l<0||this.scrollTop>c.top),p=a!==h;p&&(this.$vScroll=h,this.scrollBarV.setVisible(h));var d=this.scrollTop%this.lineHeight,v=Math.ceil(f/this.lineHeight)-1,m=Math.max(0,Math.round((this.scrollTop-d)/this.lineHeight)),g=m+v,y,b,w=this.lineHeight;m=e.screenToDocumentRow(m,0);var E=e.getFoldLine(m);E&&(m=E.start.row),y=e.documentToScreenRow(m,0),b=e.getRowLength(m)*w,g=Math.min(e.screenToDocumentRow(g,0),e.getLength()-1),f=t.scrollerHeight+e.getRowLength(g)*w+b,d=this.scrollTop-y*w;var S=0;if(this.layerConfig.width!=s||u)S=this.CHANGE_H_SCROLL;if(u||p)S|=this.$updateCachedSize(!0,this.gutterWidth,t.width,t.height),this._signal("scrollbarVisibilityChanged"),p&&(s=this.$getLongestLine());return this.layerConfig={width:s,padding:this.$padding,firstRow:m,firstRowScreen:y,lastRow:g,lineHeight:w,characterWidth:this.characterWidth,minHeight:f,maxHeight:i,offset:d,gutterOffset:w?Math.max(0,Math.ceil((d+t.height-t.scrollerHeight)/w)):0,height:this.$size.scrollerHeight},this.session.$bidiHandler&&this.session.$bidiHandler.setContentWidth(s-this.$padding),S},e.prototype.$updateLines=function(){if(!this.$changedLines)return;var e=this.$changedLines.firstRow,t=this.$changedLines.lastRow;this.$changedLines=null;var n=this.layerConfig;if(e>n.lastRow+1)return;if(tthis.$textLayer.MAX_LINE_LENGTH&&(e=this.$textLayer.MAX_LINE_LENGTH+30),Math.max(this.$size.scrollerWidth-2*this.$padding,Math.round(e*this.characterWidth))},e.prototype.updateFrontMarkers=function(){this.$markerFront.setMarkers(this.session.getMarkers(!0)),this.$loop.schedule(this.CHANGE_MARKER_FRONT)},e.prototype.updateBackMarkers=function(){this.$markerBack.setMarkers(this.session.getMarkers()),this.$loop.schedule(this.CHANGE_MARKER_BACK)},e.prototype.addGutterDecoration=function(e,t){this.$gutterLayer.addGutterDecoration(e,t)},e.prototype.removeGutterDecoration=function(e,t){this.$gutterLayer.removeGutterDecoration(e,t)},e.prototype.updateBreakpoints=function(e){this._rows=e,this.$loop.schedule(this.CHANGE_GUTTER)},e.prototype.setAnnotations=function(e){this.$gutterLayer.setAnnotations(e),this.$loop.schedule(this.CHANGE_GUTTER)},e.prototype.updateCursor=function(){this.$loop.schedule(this.CHANGE_CURSOR)},e.prototype.hideCursor=function(){this.$cursorLayer.hideCursor()},e.prototype.showCursor=function(){this.$cursorLayer.showCursor()},e.prototype.scrollSelectionIntoView=function(e,t,n){this.scrollCursorIntoView(e,n),this.scrollCursorIntoView(t,n)},e.prototype.scrollCursorIntoView=function(e,t,n){if(this.$size.scrollerHeight===0)return;var r=this.$cursorLayer.getPixelPosition(e),i=r.left,s=r.top,o=n&&n.top||0,u=n&&n.bottom||0;this.$scrollAnimation&&(this.$stopAnimation=!0);var a=this.$scrollAnimation?this.session.getScrollTop():this.scrollTop;a+o>s?(t&&a+o>s+this.lineHeight&&(s-=t*this.$size.scrollerHeight),s===0&&(s=-this.scrollMargin.top),this.session.setScrollTop(s)):a+this.$size.scrollerHeight-u=1-this.scrollMargin.top)return!0;if(t>0&&this.session.getScrollTop()+this.$size.scrollerHeight-this.layerConfig.maxHeight<-1+this.scrollMargin.bottom)return!0;if(e<0&&this.session.getScrollLeft()>=1-this.scrollMargin.left)return!0;if(e>0&&this.session.getScrollLeft()+this.$size.scrollerWidth-this.layerConfig.width<-1+this.scrollMargin.right)return!0},e.prototype.pixelToScreenCoordinates=function(e,t){var n;if(this.$hasCssTransforms){n={top:0,left:0};var r=this.$fontMetrics.transformCoordinates([e,t]);e=r[1]-this.gutterWidth-this.margin.left,t=r[0]}else n=this.scroller.getBoundingClientRect();var i=e+this.scrollLeft-n.left-this.$padding,s=i/this.characterWidth,o=Math.floor((t+this.scrollTop-n.top)/this.lineHeight),u=this.$blockCursor?Math.floor(s):Math.round(s);return{row:o,column:u,side:s-u>0?1:-1,offsetX:i}},e.prototype.screenToTextCoordinates=function(e,t){var n;if(this.$hasCssTransforms){n={top:0,left:0};var r=this.$fontMetrics.transformCoordinates([e,t]);e=r[1]-this.gutterWidth-this.margin.left,t=r[0]}else n=this.scroller.getBoundingClientRect();var i=e+this.scrollLeft-n.left-this.$padding,s=i/this.characterWidth,o=this.$blockCursor?Math.floor(s):Math.round(s),u=Math.floor((t+this.scrollTop-n.top)/this.lineHeight);return this.session.screenToDocumentPosition(u,Math.max(o,0),i)},e.prototype.textToScreenCoordinates=function(e,t){var n=this.scroller.getBoundingClientRect(),r=this.session.documentToScreenPosition(e,t),i=this.$padding+(this.session.$bidiHandler.isBidiRow(r.row,e)?this.session.$bidiHandler.getPosLeft(r.column):Math.round(r.column*this.characterWidth)),s=r.row*this.lineHeight;return{pageX:n.left+i-this.scrollLeft,pageY:n.top+s-this.scrollTop}},e.prototype.visualizeFocus=function(){i.addCssClass(this.container,"ace_focus")},e.prototype.visualizeBlur=function(){i.removeCssClass(this.container,"ace_focus")},e.prototype.showComposition=function(e){this.$composition=e,e.cssText||(e.cssText=this.textarea.style.cssText),e.useTextareaForIME==undefined&&(e.useTextareaForIME=this.$useTextareaForIME),this.$useTextareaForIME?(i.addCssClass(this.textarea,"ace_composition"),this.textarea.style.cssText="",this.$moveTextAreaToCursor(),this.$cursorLayer.element.style.display="none"):e.markerId=this.session.addMarker(e.markerRange,"ace_composition_marker","text")},e.prototype.setCompositionText=function(e){var t=this.session.selection.cursor;this.addToken(e,"composition_placeholder",t.row,t.column),this.$moveTextAreaToCursor()},e.prototype.hideComposition=function(){if(!this.$composition)return;this.$composition.markerId&&this.session.removeMarker(this.$composition.markerId),i.removeCssClass(this.textarea,"ace_composition"),this.textarea.style.cssText=this.$composition.cssText;var e=this.session.selection.cursor;this.removeExtraToken(e.row,e.column),this.$composition=null,this.$cursorLayer.element.style.display=""},e.prototype.setGhostText=function(e,t){var n=this.session.selection.cursor,r=t||{row:n.row,column:n.column};this.removeGhostText();var s=this.$calculateWrappedTextChunks(e,r);this.addToken(s[0].text,"ghost_text",r.row,r.column),this.$ghostText={text:e,position:{row:r.row,column:r.column}};var o=i.createElement("div");if(s.length>1){var u=this.hideTokensAfterPosition(r.row,r.column),a;s.slice(1).forEach(function(e){var t=i.createElement("div"),n=i.createElement("span");n.className="ace_ghost_text",e.wrapped&&(t.className="ghost_text_line_wrapped"),e.text.length===0&&(e.text=" "),n.appendChild(i.createTextNode(e.text)),t.appendChild(n),o.appendChild(t),a=t}),u.forEach(function(e){var t=i.createElement("span");E(e.type)||(t.className="ace_"+e.type.replace(/\./g," ace_")),t.appendChild(i.createTextNode(e.value)),a.appendChild(t)}),this.$ghostTextWidget={el:o,row:r.row,column:r.column,className:"ace_ghost_text_container"},this.session.widgetManager.addLineWidget(this.$ghostTextWidget);var f=this.$cursorLayer.getPixelPosition(r,!0),l=this.container,c=l.getBoundingClientRect().height,h=s.length*this.lineHeight,p=h0){var f=0;a.push(i[o].length);for(var l=0;l1||Math.abs(e.$size.height-r)>1?e.$resizeTimer.delay():e.$resizeTimer.cancel()}),this.$resizeObserver.observe(this.container)},e}();S.prototype.CHANGE_CURSOR=1,S.prototype.CHANGE_MARKER=2,S.prototype.CHANGE_GUTTER=4,S.prototype.CHANGE_SCROLL=8,S.prototype.CHANGE_LINES=16,S.prototype.CHANGE_TEXT=32,S.prototype.CHANGE_SIZE=64,S.prototype.CHANGE_MARKER_BACK=128,S.prototype.CHANGE_MARKER_FRONT=256,S.prototype.CHANGE_FULL=512,S.prototype.CHANGE_H_SCROLL=1024,S.prototype.$changes=0,S.prototype.$padding=null,S.prototype.$frozen=!1,S.prototype.STEPS=8,r.implement(S.prototype,g),o.defineOptions(S.prototype,"renderer",{useResizeObserver:{set:function(e){!e&&this.$resizeObserver?(this.$resizeObserver.disconnect(),this.$resizeTimer.cancel(),this.$resizeTimer=this.$resizeObserver=null):e&&!this.$resizeObserver&&this.$addResizeObserver()}},animatedScroll:{initialValue:!1},showInvisibles:{set:function(e){this.$textLayer.setShowInvisibles(e)&&this.$loop.schedule(this.CHANGE_TEXT)},initialValue:!1},showPrintMargin:{set:function(){this.$updatePrintMargin()},initialValue:!0},printMarginColumn:{set:function(){this.$updatePrintMargin()},initialValue:80},printMargin:{set:function(e){typeof e=="number"&&(this.$printMarginColumn=e),this.$showPrintMargin=!!e,this.$updatePrintMargin()},get:function(){return this.$showPrintMargin&&this.$printMarginColumn}},showGutter:{set:function(e){this.$gutter.style.display=e?"block":"none",this.$loop.schedule(this.CHANGE_FULL),this.onGutterResize()},initialValue:!0},useSvgGutterIcons:{set:function(e){this.$gutterLayer.$useSvgGutterIcons=e},initialValue:!1},showFoldedAnnotations:{set:function(e){this.$gutterLayer.$showFoldedAnnotations=e},initialValue:!1},fadeFoldWidgets:{set:function(e){i.setCssClass(this.$gutter,"ace_fade-fold-widgets",e)},initialValue:!1},showFoldWidgets:{set:function(e){this.$gutterLayer.setShowFoldWidgets(e),this.$loop.schedule(this.CHANGE_GUTTER)},initialValue:!0},displayIndentGuides:{set:function(e){this.$textLayer.setDisplayIndentGuides(e)&&this.$loop.schedule(this.CHANGE_TEXT)},initialValue:!0},highlightIndentGuides:{set:function(e){this.$textLayer.setHighlightIndentGuides(e)==1?this.$textLayer.$highlightIndentGuide():this.$textLayer.$clearActiveIndentGuide(this.$textLayer.$lines.cells)},initialValue:!0},highlightGutterLine:{set:function(e){this.$gutterLayer.setHighlightGutterLine(e),this.$loop.schedule(this.CHANGE_GUTTER)},initialValue:!0},hScrollBarAlwaysVisible:{set:function(e){(!this.$hScrollBarAlwaysVisible||!this.$horizScroll)&&this.$loop.schedule(this.CHANGE_SCROLL)},initialValue:!1},vScrollBarAlwaysVisible:{set:function(e){(!this.$vScrollBarAlwaysVisible||!this.$vScroll)&&this.$loop.schedule(this.CHANGE_SCROLL)},initialValue:!1},fontSize:{set:function(e){typeof e=="number"&&(e+="px"),this.container.style.fontSize=e,this.updateFontSize()},initialValue:12},fontFamily:{set:function(e){this.container.style.fontFamily=e,this.updateFontSize()}},maxLines:{set:function(e){this.updateFull()}},minLines:{set:function(e){this.$minLines<562949953421311||(this.$minLines=0),this.updateFull()}},maxPixelHeight:{set:function(e){this.updateFull()},initialValue:0},scrollPastEnd:{set:function(e){e=+e||0;if(this.$scrollPastEnd==e)return;this.$scrollPastEnd=e,this.$loop.schedule(this.CHANGE_SCROLL)},initialValue:0,handlesSet:!0},fixedWidthGutter:{set:function(e){this.$gutterLayer.$fixedWidth=!!e,this.$loop.schedule(this.CHANGE_GUTTER)}},customScrollbar:{set:function(e){this.$updateCustomScrollbar(e)},initialValue:!1},theme:{set:function(e){this.setTheme(e)},get:function(){return this.$themeId||this.theme},initialValue:"./theme/textmate",handlesSet:!0},hasCssTransforms:{},useTextareaForIME:{initialValue:!w.isMobile&&!w.isIE}}),t.VirtualRenderer=S}),ace.define("ace/worker/worker_client",["require","exports","module","ace/lib/oop","ace/lib/net","ace/lib/event_emitter","ace/config"],function(e,t,n){"use strict";function u(e){var t="importScripts('"+i.qualifyURL(e)+"');";try{return new Blob([t],{type:"application/javascript"})}catch(n){var r=window.BlobBuilder||window.WebKitBlobBuilder||window.MozBlobBuilder,s=new r;return s.append(t),s.getBlob("application/javascript")}}function a(e){if(typeof Worker=="undefined")return{postMessage:function(){},terminate:function(){}};if(o.get("loadWorkerFromBlob")){var t=u(e),n=window.URL||window.webkitURL,r=n.createObjectURL(t);return new Worker(r)}return new Worker(e)}var r=e("../lib/oop"),i=e("../lib/net"),s=e("../lib/event_emitter").EventEmitter,o=e("../config"),f=function(e){e.postMessage||(e=this.$createWorkerFromOldConfig.apply(this,arguments)),this.$worker=e,this.$sendDeltaQueue=this.$sendDeltaQueue.bind(this),this.changeListener=this.changeListener.bind(this),this.onMessage=this.onMessage.bind(this),this.callbackId=1,this.callbacks={},this.$worker.onmessage=this.onMessage};(function(){r.implement(this,s),this.$createWorkerFromOldConfig=function(t,n,r,i,s){e.nameToUrl&&!e.toUrl&&(e.toUrl=e.nameToUrl);if(o.get("packaged")||!e.toUrl)i=i||o.moduleUrl(n,"worker");else{var u=this.$normalizePath;i=i||u(e.toUrl("ace/worker/worker.js",null,"_"));var f={};t.forEach(function(t){f[t]=u(e.toUrl(t,null,"_").replace(/(\.js)?(\?.*)?$/,""))})}return this.$worker=a(i),s&&this.send("importScripts",s),this.$worker.postMessage({init:!0,tlns:f,module:n,classname:r}),this.$worker},this.onMessage=function(e){var t=e.data;switch(t.type){case"event":this._signal(t.name,{data:t.data});break;case"call":var n=this.callbacks[t.id];n&&(n(t.data),delete this.callbacks[t.id]);break;case"error":this.reportError(t.data);break;case"log":window.console&&console.log&&console.log.apply(console,t.data)}},this.reportError=function(e){window.console&&console.error&&console.error(e)},this.$normalizePath=function(e){return i.qualifyURL(e)},this.terminate=function(){this._signal("terminate",{}),this.deltaQueue=null,this.$worker.terminate(),this.$worker.onerror=function(e){e.preventDefault()},this.$worker=null,this.$doc&&this.$doc.off("change",this.changeListener),this.$doc=null},this.send=function(e,t){this.$worker.postMessage({command:e,args:t})},this.call=function(e,t,n){if(n){var r=this.callbackId++;this.callbacks[r]=n,t.push(r)}this.send(e,t)},this.emit=function(e,t){try{t.data&&t.data.err&&(t.data.err={message:t.data.err.message,stack:t.data.err.stack,code:t.data.err.code}),this.$worker&&this.$worker.postMessage({event:e,data:{data:t.data}})}catch(n){console.error(n.stack)}},this.attachToDocument=function(e){this.$doc&&this.terminate(),this.$doc=e,this.call("setValue",[e.getValue()]),e.on("change",this.changeListener,!0)},this.changeListener=function(e){this.deltaQueue||(this.deltaQueue=[],setTimeout(this.$sendDeltaQueue,0)),e.action=="insert"?this.deltaQueue.push(e.start,e.lines):this.deltaQueue.push(e.start,e.end)},this.$sendDeltaQueue=function(){var e=this.deltaQueue;if(!e)return;this.deltaQueue=null,e.length>50&&e.length>this.$doc.getLength()>>1?this.call("setValue",[this.$doc.getValue()]):this.emit("change",{data:e})}}).call(f.prototype);var l=function(e,t,n){var r=null,i=!1,u=Object.create(s),a=[],l=new f({messageBuffer:a,terminate:function(){},postMessage:function(e){a.push(e);if(!r)return;i?setTimeout(c):c()}});l.setEmitSync=function(e){i=e};var c=function(){var e=a.shift();e.command?r[e.command].apply(r,e.args):e.event&&u._signal(e.event,e.data)};return u.postMessage=function(e){l.onMessage({data:e})},u.callback=function(e,t){this.postMessage({type:"call",id:t,data:e})},u.emit=function(e,t){this.postMessage({type:"event",name:e,data:t})},o.loadModule(["worker",t],function(e){r=new e[n](u);while(a.length)c()}),l};t.UIWorkerClient=l,t.WorkerClient=f,t.createWorker=a}),ace.define("ace/placeholder",["require","exports","module","ace/range","ace/lib/event_emitter","ace/lib/oop"],function(e,t,n){"use strict";var r=e("./range").Range,i=e("./lib/event_emitter").EventEmitter,s=e("./lib/oop"),o=function(){function e(e,t,n,r,i,s){var o=this;this.length=t,this.session=e,this.doc=e.getDocument(),this.mainClass=i,this.othersClass=s,this.$onUpdate=this.onUpdate.bind(this),this.doc.on("change",this.$onUpdate,!0),this.$others=r,this.$onCursorChange=function(){setTimeout(function(){o.onCursorChange()})},this.$pos=n;var u=e.getUndoManager().$undoStack||e.getUndoManager().$undostack||{length:-1};this.$undoStackDepth=u.length,this.setup(),e.selection.on("changeCursor",this.$onCursorChange)}return e.prototype.setup=function(){var e=this,t=this.doc,n=this.session;this.selectionBefore=n.selection.toJSON(),n.selection.inMultiSelectMode&&n.selection.toSingleRange(),this.pos=t.createAnchor(this.$pos.row,this.$pos.column);var i=this.pos;i.$insertRight=!0,i.detach(),i.markerId=n.addMarker(new r(i.row,i.column,i.row,i.column+this.length),this.mainClass,null,!1),this.others=[],this.$others.forEach(function(n){var r=t.createAnchor(n.row,n.column);r.$insertRight=!0,r.detach(),e.others.push(r)}),n.setUndoSelect(!1)},e.prototype.showOtherMarkers=function(){if(this.othersActive)return;var e=this.session,t=this;this.othersActive=!0,this.others.forEach(function(n){n.markerId=e.addMarker(new r(n.row,n.column,n.row,n.column+t.length),t.othersClass,null,!1)})},e.prototype.hideOtherMarkers=function(){if(!this.othersActive)return;this.othersActive=!1;for(var e=0;e=this.pos.column&&t.start.column<=this.pos.column+this.length+1,s=t.start.column-this.pos.column;this.updateAnchors(e),i&&(this.length+=n);if(i&&!this.session.$fromUndo)if(e.action==="insert")for(var o=this.others.length-1;o>=0;o--){var u=this.others[o],a={row:u.row,column:u.column+s};this.doc.insertMergedLines(a,e.lines)}else if(e.action==="remove")for(var o=this.others.length-1;o>=0;o--){var u=this.others[o],a={row:u.row,column:u.column+s};this.doc.remove(new r(a.row,a.column,a.row,a.column-n))}this.$updating=!1,this.updateMarkers()},e.prototype.updateAnchors=function(e){this.pos.onChange(e);for(var t=this.others.length;t--;)this.others[t].onChange(e);this.updateMarkers()},e.prototype.updateMarkers=function(){if(this.$updating)return;var e=this,t=this.session,n=function(n,i){t.removeMarker(n.markerId),n.markerId=t.addMarker(new r(n.row,n.column,n.row,n.column+e.length),i,null,!1)};n(this.pos,this.mainClass);for(var i=this.others.length;i--;)n(this.others[i],this.othersClass)},e.prototype.onCursorChange=function(e){if(this.$updating||!this.session)return;var t=this.session.selection.getCursor();t.row===this.pos.row&&t.column>=this.pos.column&&t.column<=this.pos.column+this.length?(this.showOtherMarkers(),this._emit("cursorEnter",e)):(this.hideOtherMarkers(),this._emit("cursorLeave",e))},e.prototype.detach=function(){this.session.removeMarker(this.pos&&this.pos.markerId),this.hideOtherMarkers(),this.doc.off("change",this.$onUpdate),this.session.selection.off("changeCursor",this.$onCursorChange),this.session.setUndoSelect(!0),this.session=null},e.prototype.cancel=function(){if(this.$undoStackDepth===-1)return;var e=this.session.getUndoManager(),t=(e.$undoStack||e.$undostack).length-this.$undoStackDepth;for(var n=0;n1?e.multiSelect.joinSelections():e.multiSelect.splitIntoLines()},bindKey:{win:"Ctrl-Alt-L",mac:"Ctrl-Alt-L"},readOnly:!0},{name:"splitSelectionIntoLines",description:"Split into lines",exec:function(e){e.multiSelect.splitIntoLines()},readOnly:!0},{name:"alignCursors",description:"Align cursors",exec:function(e){e.alignCursors()},bindKey:{win:"Ctrl-Alt-A",mac:"Ctrl-Alt-A"},scrollIntoView:"cursor"},{name:"findAll",description:"Find all",exec:function(e){e.findAll()},bindKey:{win:"Ctrl-Alt-K",mac:"Ctrl-Alt-G"},scrollIntoView:"cursor",readOnly:!0}],t.multiSelectCommands=[{name:"singleSelection",description:"Single selection",bindKey:"esc",exec:function(e){e.exitMultiSelectMode()},scrollIntoView:"cursor",readOnly:!0,isAvailable:function(e){return e&&e.inMultiSelectMode}}];var r=e("../keyboard/hash_handler").HashHandler;t.keyboardHandler=new r(t.multiSelectCommands)}),ace.define("ace/multi_select",["require","exports","module","ace/range_list","ace/range","ace/selection","ace/mouse/multi_select_handler","ace/lib/event","ace/lib/lang","ace/commands/multi_select_commands","ace/search","ace/edit_session","ace/editor","ace/config"],function(e,t,n){function h(e,t,n){return c.$options.wrap=!0,c.$options.needle=t,c.$options.backwards=n==-1,c.find(e)}function v(e,t){return e.row==t.row&&e.column==t.column}function m(e){if(e.$multiselectOnSessionChange)return;e.$onAddRange=e.$onAddRange.bind(e),e.$onRemoveRange=e.$onRemoveRange.bind(e),e.$onMultiSelect=e.$onMultiSelect.bind(e),e.$onSingleSelect=e.$onSingleSelect.bind(e),e.$multiselectOnSessionChange=t.onSessionChange.bind(e),e.$checkMultiselectChange=e.$checkMultiselectChange.bind(e),e.$multiselectOnSessionChange(e),e.on("changeSession",e.$multiselectOnSessionChange),e.on("mousedown",o),e.commands.addCommands(f.defaultCommands),g(e)}function g(e){function r(t){n&&(e.renderer.setMouseCursor(""),n=!1)}if(!e.textInput)return;var t=e.textInput.getElement(),n=!1;u.addListener(t,"keydown",function(t){var i=t.keyCode==18&&!(t.ctrlKey||t.shiftKey||t.metaKey);e.$blockSelectEnabled&&i?n||(e.renderer.setMouseCursor("crosshair"),n=!0):n&&r()},e),u.addListener(t,"keyup",r,e),u.addListener(t,"blur",r,e)}var r=e("./range_list").RangeList,i=e("./range").Range,s=e("./selection").Selection,o=e("./mouse/multi_select_handler").onMouseDown,u=e("./lib/event"),a=e("./lib/lang"),f=e("./commands/multi_select_commands");t.commands=f.defaultCommands.concat(f.multiSelectCommands);var l=e("./search").Search,c=new l,p=e("./edit_session").EditSession;(function(){this.getSelectionMarkers=function(){return this.$selectionMarkers}}).call(p.prototype),function(){this.ranges=null,this.rangeList=null,this.addRange=function(e,t){if(!e)return;if(!this.inMultiSelectMode&&this.rangeCount===0){var n=this.toOrientedRange();this.rangeList.add(n),this.rangeList.add(e);if(this.rangeList.ranges.length!=2)return this.rangeList.removeAll(),t||this.fromOrientedRange(e);this.rangeList.removeAll(),this.rangeList.add(n),this.$onAddRange(n)}e.cursor||(e.cursor=e.end);var r=this.rangeList.add(e);return this.$onAddRange(e),r.length&&this.$onRemoveRange(r),this.rangeCount>1&&!this.inMultiSelectMode&&(this._signal("multiSelect"),this.inMultiSelectMode=!0,this.session.$undoSelect=!1,this.rangeList.attach(this.session)),t||this.fromOrientedRange(e)},this.toSingleRange=function(e){e=e||this.ranges[0];var t=this.rangeList.removeAll();t.length&&this.$onRemoveRange(t),e&&this.fromOrientedRange(e)},this.substractPoint=function(e){var t=this.rangeList.substractPoint(e);if(t)return this.$onRemoveRange(t),t[0]},this.mergeOverlappingRanges=function(){var e=this.rangeList.merge();e.length&&this.$onRemoveRange(e)},this.$onAddRange=function(e){this.rangeCount=this.rangeList.ranges.length,this.ranges.unshift(e),this._signal("addRange",{range:e})},this.$onRemoveRange=function(e){this.rangeCount=this.rangeList.ranges.length;if(this.rangeCount==1&&this.inMultiSelectMode){var t=this.rangeList.ranges.pop();e.push(t),this.rangeCount=0}for(var n=e.length;n--;){var r=this.ranges.indexOf(e[n]);this.ranges.splice(r,1)}this._signal("removeRange",{ranges:e}),this.rangeCount===0&&this.inMultiSelectMode&&(this.inMultiSelectMode=!1,this._signal("singleSelect"),this.session.$undoSelect=!0,this.rangeList.detach(this.session)),t=t||this.ranges[0],t&&!t.isEqual(this.getRange())&&this.fromOrientedRange(t)},this.$initRangeList=function(){if(this.rangeList)return;this.rangeList=new r,this.ranges=[],this.rangeCount=0},this.getAllRanges=function(){return this.rangeCount?this.rangeList.ranges.concat():[this.getRange()]},this.splitIntoLines=function(){var e=this.ranges.length?this.ranges:[this.getRange()],t=[];for(var n=0;n1){var e=this.rangeList.ranges,t=e[e.length-1],n=i.fromPoints(e[0].start,t.end);this.toSingleRange(),this.setSelectionRange(n,t.cursor==t.start)}else{var r=this.session.documentToScreenPosition(this.cursor),s=this.session.documentToScreenPosition(this.anchor),o=this.rectangularRangeBlock(r,s);o.forEach(this.addRange,this)}},this.rectangularRangeBlock=function(e,t,n){var r=[],s=e.column0)g--;if(g>0){var y=0;while(r[y].isEmpty())y++}for(var b=g;b>=y;b--)r[b].isEmpty()&&r.splice(b,1)}return r}}.call(s.prototype);var d=e("./editor").Editor;(function(){this.updateSelectionMarkers=function(){this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.addSelectionMarker=function(e){e.cursor||(e.cursor=e.end);var t=this.getSelectionStyle();return e.marker=this.session.addMarker(e,"ace_selection",t),this.session.$selectionMarkers.push(e),this.session.selectionMarkerCount=this.session.$selectionMarkers.length,e},this.removeSelectionMarker=function(e){if(!e.marker)return;this.session.removeMarker(e.marker);var t=this.session.$selectionMarkers.indexOf(e);t!=-1&&this.session.$selectionMarkers.splice(t,1),this.session.selectionMarkerCount=this.session.$selectionMarkers.length},this.removeSelectionMarkers=function(e){var t=this.session.$selectionMarkers;for(var n=e.length;n--;){var r=e[n];if(!r.marker)continue;this.session.removeMarker(r.marker);var i=t.indexOf(r);i!=-1&&t.splice(i,1)}this.session.selectionMarkerCount=t.length},this.$onAddRange=function(e){this.addSelectionMarker(e.range),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onRemoveRange=function(e){this.removeSelectionMarkers(e.ranges),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onMultiSelect=function(e){if(this.inMultiSelectMode)return;this.inMultiSelectMode=!0,this.setStyle("ace_multiselect"),this.keyBinding.addKeyboardHandler(f.keyboardHandler),this.commands.setDefaultHandler("exec",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onSingleSelect=function(e){if(this.session.multiSelect.inVirtualMode)return;this.inMultiSelectMode=!1,this.unsetStyle("ace_multiselect"),this.keyBinding.removeKeyboardHandler(f.keyboardHandler),this.commands.removeDefaultHandler("exec",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers(),this._emit("changeSelection")},this.$onMultiSelectExec=function(e){var t=e.command,n=e.editor;if(!n.multiSelect)return;if(!t.multiSelectAction){var r=t.exec(n,e.args||{});n.multiSelect.addRange(n.multiSelect.toOrientedRange()),n.multiSelect.mergeOverlappingRanges()}else t.multiSelectAction=="forEach"?r=n.forEachSelection(t,e.args):t.multiSelectAction=="forEachLine"?r=n.forEachSelection(t,e.args,!0):t.multiSelectAction=="single"?(n.exitMultiSelectMode(),r=t.exec(n,e.args||{})):r=t.multiSelectAction(n,e.args||{});return r},this.forEachSelection=function(e,t,n){if(this.inVirtualSelectionMode)return;var r=n&&n.keepOrder,i=n==1||n&&n.$byLines,o=this.session,u=this.selection,a=u.rangeList,f=(r?u:a).ranges,l;if(!f.length)return e.exec?e.exec(this,t||{}):e(this,t||{});var c=u._eventRegistry;u._eventRegistry={};var h=new s(o);this.inVirtualSelectionMode=!0;for(var p=f.length;p--;){if(i)while(p>0&&f[p].start.row==f[p-1].end.row)p--;h.fromOrientedRange(f[p]),h.index=p,this.selection=o.selection=h;var d=e.exec?e.exec(this,t||{}):e(this,t||{});!l&&d!==undefined&&(l=d),h.toOrientedRange(f[p])}h.detach(),this.selection=o.selection=u,this.inVirtualSelectionMode=!1,u._eventRegistry=c,u.mergeOverlappingRanges(),u.ranges[0]&&u.fromOrientedRange(u.ranges[0]);var v=this.renderer.$scrollAnimation;return this.onCursorChange(),this.onSelectionChange(),v&&v.from==v.to&&this.renderer.animateScrolling(v.from),l},this.exitMultiSelectMode=function(){if(!this.inMultiSelectMode||this.inVirtualSelectionMode)return;this.multiSelect.toSingleRange()},this.getSelectedText=function(){var e="";if(this.inMultiSelectMode&&!this.inVirtualSelectionMode){var t=this.multiSelect.rangeList.ranges,n=[];for(var r=0;r0);u<0&&(u=0),f>=c&&(f=c-1)}var p=this.session.removeFullLines(u,f);p=this.$reAlignText(p,l),this.session.insert({row:u,column:0},p.join("\n")+"\n"),l||(o.start.column=0,o.end.column=p[p.length-1].length),this.selection.setRange(o)}else{s.forEach(function(e){t.substractPoint(e.cursor)});var d=0,v=Infinity,m=n.map(function(t){var n=t.cursor,r=e.getLine(n.row),i=r.substr(n.column).search(/\S/g);return i==-1&&(i=0),n.column>d&&(d=n.column),io?e.insert(r,a.stringRepeat(" ",s-o)):e.remove(new i(r.row,r.column,r.row,r.column-s+o)),t.start.column=t.end.column=d,t.start.row=t.end.row=r.row,t.cursor=t.end}),t.fromOrientedRange(n[0]),this.renderer.updateCursor(),this.renderer.updateBackMarkers()}},this.$reAlignText=function(e,t){function u(e){return a.stringRepeat(" ",e)}function f(e){return e[2]?u(i)+e[2]+u(s-e[2].length+o)+e[4].replace(/^([=:])\s+/,"$1 "):e[0]}function l(e){return e[2]?u(i+s-e[2].length)+e[2]+u(o)+e[4].replace(/^([=:])\s+/,"$1 "):e[0]}function c(e){return e[2]?u(i)+e[2]+u(o)+e[4].replace(/^([=:])\s+/,"$1 "):e[0]}var n=!0,r=!0,i,s,o;return e.map(function(e){var t=e.match(/(\s*)(.*?)(\s*)([=:].*)/);return t?i==null?(i=t[1].length,s=t[2].length,o=t[3].length,t):(i+s+o!=t[1].length+t[2].length+t[3].length&&(r=!1),i!=t[1].length&&(n=!1),i>t[1].length&&(i=t[1].length),st[3].length&&(o=t[3].length),t):[e]}).map(t?f:n?r?l:f:c)}}).call(d.prototype),t.onSessionChange=function(e){var t=e.session;t&&!t.multiSelect&&(t.$selectionMarkers=[],t.selection.$initRangeList(),t.multiSelect=t.selection),this.multiSelect=t&&t.multiSelect;var n=e.oldSession;n&&(n.multiSelect.off("addRange",this.$onAddRange),n.multiSelect.off("removeRange",this.$onRemoveRange),n.multiSelect.off("multiSelect",this.$onMultiSelect),n.multiSelect.off("singleSelect",this.$onSingleSelect),n.multiSelect.lead.off("change",this.$checkMultiselectChange),n.multiSelect.anchor.off("change",this.$checkMultiselectChange)),t&&(t.multiSelect.on("addRange",this.$onAddRange),t.multiSelect.on("removeRange",this.$onRemoveRange),t.multiSelect.on("multiSelect",this.$onMultiSelect),t.multiSelect.on("singleSelect",this.$onSingleSelect),t.multiSelect.lead.on("change",this.$checkMultiselectChange),t.multiSelect.anchor.on("change",this.$checkMultiselectChange)),t&&this.inMultiSelectMode!=t.selection.inMultiSelectMode&&(t.selection.inMultiSelectMode?this.$onMultiSelect():this.$onSingleSelect())},t.MultiSelect=m,e("./config").defineOptions(d.prototype,"editor",{enableMultiselect:{set:function(e){m(this),e?this.on("mousedown",o):this.off("mousedown",o)},value:!0},enableBlockSelect:{set:function(e){this.$blockSelectEnabled=e},value:!0}})}),ace.define("ace/mode/folding/fold_mode",["require","exports","module","ace/range"],function(e,t,n){"use strict";var r=e("../../range").Range,i=t.FoldMode=function(){};(function(){this.foldingStartMarker=null,this.foldingStopMarker=null,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);return this.foldingStartMarker.test(r)?"start":t=="markbeginend"&&this.foldingStopMarker&&this.foldingStopMarker.test(r)?"end":""},this.getFoldWidgetRange=function(e,t,n){return null},this.indentationBlock=function(e,t,n){var i=/\S/,s=e.getLine(t),o=s.search(i);if(o==-1)return;var u=n||s.length,a=e.getLength(),f=t,l=t;while(++tf){var p=e.getLine(l).length;return new r(f,u,l,p)}},this.openingBracketBlock=function(e,t,n,i,s){var o={row:n,column:i+1},u=e.$findClosingBracket(t,o,s);if(!u)return;var a=e.foldWidgets[u.row];return a==null&&(a=e.getFoldWidget(u.row)),a=="start"&&u.row>o.row&&(u.row--,u.column=e.getLine(u.row).length),r.fromPoints(o,u)},this.closingBracketBlock=function(e,t,n,i,s){var o={row:n,column:i},u=e.$findOpeningBracket(t,o);if(!u)return;return u.column++,o.column--,r.fromPoints(u,o)}}).call(i.prototype)}),ace.define("ace/ext/error_marker",["require","exports","module","ace/line_widgets","ace/lib/dom","ace/range","ace/config"],function(e,t,n){"use strict";function u(e,t,n){var r=0,i=e.length-1;while(r<=i){var s=r+i>>1,o=n(t,e[s]);if(o>0)r=s+1;else{if(!(o<0))return s;i=s-1}}return-(r+1)}function a(e,t,n){var r=e.getAnnotations().sort(s.comparePoints);if(!r.length)return;var i=u(r,{row:t,column:-1},s.comparePoints);i<0&&(i=-i-1),i>=r.length?i=n>0?0:r.length-1:i===0&&n<0&&(i=r.length-1);var o=r[i];if(!o||!n)return;if(o.row===t){do o=r[i+=n];while(o&&o.row===t);if(!o)return r.slice()}var a=[];t=o.row;do a[n<0?"unshift":"push"](o),o=r[i+=n];while(o&&o.row==t);return a.length&&a}var r=e("../line_widgets").LineWidgets,i=e("../lib/dom"),s=e("../range").Range,o=e("../config").nls;t.showErrorMarker=function(e,t){var n=e.session;n.widgetManager||(n.widgetManager=new r(n),n.widgetManager.attach(e));var s=e.getCursorPosition(),u=s.row,f=n.widgetManager.getWidgetsAtRow(u).filter(function(e){return e.type=="errorMarker"})[0];f?f.destroy():u-=t;var l=a(n,u,t),c;if(l){var h=l[0];s.column=(h.pos&&typeof h.column!="number"?h.pos.sc:h.column)||0,s.row=h.row,c=e.renderer.$gutterLayer.$annotations[s.row]}else{if(f)return;c={displayText:[o("error-marker.good-state","Looks good!")],className:"ace_ok"}}e.session.unfold(s.row),e.selection.moveToPosition(s);var p={row:s.row,fixedWidth:!0,coverGutter:!0,el:i.createElement("div"),type:"errorMarker"},d=p.el.appendChild(i.createElement("div")),v=p.el.appendChild(i.createElement("div"));v.className="error_widget_arrow "+c.className;var m=e.renderer.$cursorLayer.getPixelPosition(s).left;v.style.left=m+e.renderer.gutterWidth-5+"px",p.el.className="error_widget_wrapper",d.className="error_widget "+c.className,c.displayText.forEach(function(e,t){d.appendChild(i.createTextNode(e)),t { let limitScreenStyle: React.CSSProperties | null = null; // limit screen size of desired - if (settings && settings.limitScreen && ((window.screen.width >= 800 && window.screen.height >= 800) || !settings.limitScreenDesktop)) { - const ww = isVarFinite(settings.sizex) ? parseFloat(settings.sizex as unknown as string) : 0; - const hh = isVarFinite(settings.sizey) ? parseFloat(settings.sizey as unknown as string) : 0; - if (ww && hh) { - const borderWidth = parseFloat(settings.limitScreenBorderWidth as unknown as string) || 0; - const borderColor = settings.limitScreenBorderColor || '#333'; - const borderStyle = settings.limitScreenBorderStyle || 'dotted'; - const bgColor = settings.limitScreenBackgroundColor || null; - - limitScreenStyle = { - ...backgroundStyle, - width: ww + borderWidth * 2, - height: hh + borderWidth * 2, - minWidth: ww + borderWidth * 2, - minHeight: hh + borderWidth * 2, - overflow: 'auto', - position: 'relative', - boxSizing: 'border-box', - borderWidth, - borderColor, - borderStyle, - }; - style.display = 'flex'; - style.justifyContent = 'center'; - style.alignItems = 'center'; - style.backgroundColor = bgColor as Property.BackgroundColor; + if (settings?.limitScreen && ((window.screen.width >= 800 && window.screen.height >= 800) || !settings.limitScreenDesktop)) { + let ignore = false; + if (settings.limitForInstances) { + const visInstance = window.localStorage.getItem('visInstance'); + if (visInstance) { + const instances = settings.limitForInstances.split(',').map(i => i.trim()).filter(i => i); + if (instances.length && !instances.includes(visInstance)) { + ignore = true; + } + } else { + ignore = true; + } + } + if (!ignore) { + const ww = isVarFinite(settings.sizex) ? parseFloat(settings.sizex as unknown as string) : 0; + const hh = isVarFinite(settings.sizey) ? parseFloat(settings.sizey as unknown as string) : 0; + if (ww && hh) { + const borderWidth = parseFloat(settings.limitScreenBorderWidth as unknown as string) || 0; + const borderColor = settings.limitScreenBorderColor || '#333'; + const borderStyle = settings.limitScreenBorderStyle || 'dotted'; + const bgColor = settings.limitScreenBackgroundColor || null; + + limitScreenStyle = { + ...backgroundStyle, + width: ww + borderWidth * 2, + height: hh + borderWidth * 2, + minWidth: ww + borderWidth * 2, + minHeight: hh + borderWidth * 2, + overflow: 'auto', + position: 'relative', + boxSizing: 'border-box', + borderWidth, + borderColor, + borderStyle, + }; + style.display = 'flex'; + style.justifyContent = 'center'; + style.alignItems = 'center'; + style.backgroundColor = bgColor as Property.BackgroundColor; + } } } diff --git a/packages/iobroker.vis-2/src/src/Vis/visWords.tsx b/packages/iobroker.vis-2/src/src/Vis/visWords.tsx index 51530da4..e90bb50e 100644 --- a/packages/iobroker.vis-2/src/src/Vis/visWords.tsx +++ b/packages/iobroker.vis-2/src/src/Vis/visWords.tsx @@ -1,6 +1,6 @@ /** - * ioBroker.vis - * https://github.com/ioBroker/ioBroker.vis + * ioBroker.vis-2 + * https://github.com/ioBroker/ioBroker.vis-2 * * Copyright (c) 2022-2023 Denis Haev https://github.com/GermanBluefox, * Creative Common Attribution-NonCommercial (CC BY-NC) diff --git a/packages/iobroker.vis-2/src/src/i18n/de.json b/packages/iobroker.vis-2/src/src/i18n/de.json index a042949a..3d2ace99 100644 --- a/packages/iobroker.vis-2/src/src/i18n/de.json +++ b/packages/iobroker.vis-2/src/src/i18n/de.json @@ -1,753 +1,755 @@ { - "%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": "Hinzufügen", - "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\n", - "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": "Administrator", - "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.", - "Aluminium1": "Aluminium1", - "Aluminium2": "Aluminium2", - "App bar": "Anwendungsleiste", - "Apply": "Anwenden", - "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": "Attribute", - "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": "Basic", - "Benutzer": "Benutzer", - "Blue flowers": "Blaue Blumen", - "Blue marine": "Blaue Marine", - "Blue marine lines": "Blaue Marinelinien", - "Blueprint grid": "Planraster", - "Bricks": "Ziegel", - "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", - "CSS": "CSS", - "CSS Class": "CSS-Klasse", - "CSS Common": "CSS allgemein", - "CSS Font & Text": "CSS-Schriftart und -Text", - "CSS background (background-...)": "CSS-Hintergrund (background-...)", - "Cancel": "Abbrechen", - "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": "Löschen", - "Clear filter": "Filter löschen", - "Click to close": "Zum Schließen klicken", - "Clone widget": "Widget klonen", - "Close": "Schließen", - "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": "Bunt", - "Column gap": "Spaltenlücke", - "Column width": "Spaltenbreite", - "Comment": "Kommentar", - "Convert %s to %s": "%s in %s konvertieren", - "Copied %s": "%s kopiert", - "Copied to clipboard": "In die Zwischenablage kopiert", - "Copy": "Kopieren", - "Copy noun": "Kopie", - "Copy to clipboard": "In die Zwischenablage kopieren", - "Copy view \"%s\"": "Seite \"%s\" kopieren", - "Create": "Erzeugen", - "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": "Ausschneiden", - "Dark reconnect screen": "Dunkler Bildschirm zum erneuten Verbinden", - "Deactivate binding and use field as standard input": "Bindung deaktivieren und Feld als Standardeingabe verwenden", - "Default": "Standard", - "Default view": "Standardansicht", - "Default: auto": "Standard: „auto“", - "Delete": "Löschen", - "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": "Geräte", - "Disabled": "Deaktiviert", - "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?", - "Drag me": "Zieh mich", - "Drop the files here ...": "Legen Sie die Dateien hier ab ...", - "Duplicate": "Kopieren", - "Duplicate folder": "Ordner kopieren", - "Duplicate profile": "Profil kopieren", - "Edit": "Bearbeiten", - "Edit binding": "Bindung bearbeiten", - "Edit folder": "Ordner bearbeiten", - "Edit group": "Gruppe bearbeiten", - "Edit profile": "Profil bearbeiten", - "Elements": "Elemente", - "Enabled": "Ermöglicht", - "Enter": "Eingeben", - "Enter password": "Passwort eingeben", - "Expand all": "Alle ausklappen", - "Explanation": "Erläuterung", - "Export": "Export", - "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": "Dateien", - "Filter widgets": "Widgets filtern", - "Fm dark background": "Fm dunkler Hintergrund", - "Fm light background": "FM heller Hintergrund", - "For widgets with relative position": "Für Widgets mit relativer Position", - "Fr": "Fr", - "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": "Für alle Projekte", - "Gradient box": "Verlaufsbox", - "Gray 0": "Grau 0", - "Gray 1": "Grau 1", - "Grid": "Netz", - "Group": "Gruppe", - "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": "Höhe", - "Hide": "Ausblenden", - "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": "Hoch", - "High priority": "Hohe Priorität", - "Highest eg. Holiday": "Höchste zB. Urlaub", - "Horizontal": "Horizontal", - "Icon": "Symbol", - "If user not in group": "Wenn der Benutzer nicht in der Gruppe ist", - "Ignore": "Ignorieren", - "Ignored in edit mode": "Im Bearbeitungsmodus ignoriert", - "Image": "Bild", - "Import": "Importieren", - "Import project": "Projekt importieren", - "Import widgets": "Widgets importieren", - "Initial filter": "Anfangsfilter", - "Instance": "Beispiel", - "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 screen": "Bildschirm begrenzen", - "Lined paper": "Liniertes Papier", - "Lock": "Sperren", - "Lock dragging": "Ziehen sperren", - "Manage projects": "Projekte", - "Manage views": "Seiten", - "Menu header text": "Kopfzeilentext des Menüs", - "Menu header text color": "Textfarbe des Kopfzeilentexts", - "Message": "Nachricht", - "Mo": "Mo", - "Modify": "Ändern", - "More": "Mehr", - "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": "Name", - "Name is not unique": "Name ist nicht eindeutig", - "Name of copy": "Name der Kopie", - "Narrow panel": "Schmale Platte", - "Navigation": "Navigation", - "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": "Nein", - "No background": "Kein Hintergrund", - "Normal": "Normal", - "OFF": "AUS", - "ON": "AN", - "Objects": "Objekte", - "Ok": "OK", - "On/Off": "An aus", - "One parameter": "Ein Parameter", - "Only for groups": "Nur für Gruppen", - "Only the admin user can change permissions": "Nur der Admin-Benutzer kann Berechtigungen ändern", - "Open": "Öffnen", - "Open all": "Alle ausklappen", - "Open it?": "Öffnen es?", - "Open runtime in new window": "Runtime in neuem Fenster öffnen", - "Open widgeteria": "Widgeteria öffnen", - "Options": "Optionen", - "Order": "Reihenfolge", - "Orientation": "Orientierung", - "Palette": "Palette", - "Paste": "Einfügen", - "Percent": "Prozent", - "Permissions": "Berechtigungen", - "Pixel 5 - Landscape": "Pixel 5 – Querformat", - "Pixel 5 - Portrait": "Pixel 5 – Hochformat", - "Priority": "Priorität", - "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 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": "Projekte", - "Radial blue": "Strahlend blau", - "Read": "Lesen", - "Read = Runtime access": "Lesen = Laufzeitzugriff", - "Read about currentColor in SVG": "Lesen Sie mehr über currentColor in SVG", - "Received user command: %s": "Benutzerbefehl erhalten: %s", - "Reconnect interval": "Wiederverbindungsintervall", - "Redo": "Redo", - "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": "Neuladen", - "Rename": "Umbenennen", - "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": "Auflösung", - "Responsive settings": "Responsive Einstellungen", - "Row gap": "Reihenlücke", - "Sa": "Sa", - "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": "Speichern", - "Scripts": "Skripte", - "Search": "Suche", - "Select": "Auswählen", - "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": "Einstell.", - "Should it be moved to new place?": "Sollte es an einen neuen Ort verlegt werden?", - "Show": "Zeigen", - "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 view": "Seite zeigen", - "Specify filter to see more icons": "EinenFilter angeben, um weitere Symbole anzuzeigen", - "States Debounce Time (millis)": "Zustands-Entprellzeit (Millisekunden)", - "Style": "Stil", - "Su": "So", - "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": "Tabs", - "Temperature": "Temperatur", - "Text color": "Textfarbe", - "Text color if selected": "Textfarbe, falls ausgewählt", - "Text edit": "Text bearbeiten", - "Th": "Do", - "Theme": "Thema", - "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": "Titel", - "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": "Di", - "Type": "Typ", - "Undo": "Undo", - "Ungroup": "Gruppierung aufheben", - "Uninstall": "Deinstallieren", - "Unknown widget type \"%s\"": "Unbekannter Widget-Typ „%s“", - "Unlock": "Freischalten", - "Update": "Aktualisieren", - "Usage of widget %s": "Verwendung des Widgets %s", - "Use background": "Hintergrund verwenden", - "Use field as binding": "Feld als Bindung verwenden", - "User defined": "Benutzerdefinierten", - "Value": "Wert", - "Vertical": "Vertikal", - "View": "Seite", - "View not defined": "Seite nicht definiert", - "We": "Mi", - "Weekend": "Wochenende", - "Widget": "Widget", - "Widget CSS": "Widget-CSS", - "Widget JS": "Widget JS", - "Widget was deleted in widgeteria": "Das Widget wurde in der Widgeteria gelöscht", - "Widgets": "Widgets", - "Width": "Breite", - "Width x height (px)": "Breite x Höhe (px)", - "Write": "Schreiben", - "Write = Edit mode access": "Schreiben = Zugriff auf den Bearbeitungsmodus", - "Writer": "Schriftsteller", - "Wrong password": "Falsches Passwort", - "Yes": "Ja", - "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": "Widgeteria", - "ace_All": "Alle", - "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": "Tooltip bei false", - "alt_true": "Tooltip bei true", - "anonymize": "anonymisieren", - "apply_to_all": "Für alle", - "attr_none": "none", - "basic_arrow": "Pfeil", - "basic_borderColor": "Randfarbe", - "basic_borderRadius": "Grenzradius", - "basic_circle": "Kreis", - "basic_custom": "Benutzerdefiniertes Polygon", - "basic_hexagone": "Sechseck", - "basic_line": "Linie", - "basic_octagone": "Achteck", - "basic_pentagone": "Pentagon", - "basic_pin": "Stift", - "basic_speech2text_continuous": "dauerhaft zuhören", - "basic_speech2text_detected": "Erkannt", - "basic_speech2text_en_us": "Englisch", - "basic_speech2text_height": "Höhe (px)", - "basic_speech2text_image_active": "Aktiv", - "basic_speech2text_image_inactive": "Inaktiv", - "basic_speech2text_info_allow": "Klicken Sie oben auf die Schaltfläche „Zulassen“, um Ihr Mikrofon zu aktivieren.", - "basic_speech2text_info_blocked": "Die Berechtigung zur Nutzung des Mikrofons ist gesperrt. Um Änderungen vorzunehmen, gehen Sie zu chrome://settings/contentExceptions#media-stream", - "basic_speech2text_info_denied": "Die Erlaubnis zur Nutzung des Mikrofons wurde verweigert.", - "basic_speech2text_info_no_microphone": "Es wurde kein Mikrofon gefunden. Stellen Sie sicher, dass ein Mikrofon installiert ist und die Mikrofoneinstellungen richtig konfiguriert sind.", - "basic_speech2text_info_no_speech": "Es wurde keine Sprache erkannt. Möglicherweise müssen Sie Ihre Mikrofoneinstellungen anpassen.", - "basic_speech2text_info_speak_now": "Sprich jetzt.", - "basic_speech2text_info_start": "Klicken Sie auf das Mikrofonsymbol und beginnen Sie zu sprechen.", - "basic_speech2text_info_upgrade": "Die Web Speech API wird von diesem Browser nicht unterstützt. Führen Sie ein Upgrade auf Chrome Version 25 oder höher durch.", - "basic_speech2text_key_word_color": "Schlüsselwortfarbe", - "basic_speech2text_key_word_color_tooltip": "Textfarbe, wenn Schlüsselwort gefunden wird", - "basic_speech2text_keywords": "Schlüsselwörter", - "basic_speech2text_no_image": "Kein Bild", - "basic_speech2text_no_results": "Keine Ergebnisse", - "basic_speech2text_no_text": "Kein Hilfetext", - "basic_speech2text_ru_ru": "Russisch", - "basic_speech2text_sent": "Gesendet", - "basic_speech2text_single": "einzel", - "basic_speech2text_speech_mode": "Sprachmodus", - "basic_speech2text_start_stop": "Start stop", - "basic_speech2text_started": "Gestartet", - "basic_speech2text_text_sent_color": "Text wird in Farbe gesendet", - "basic_speech2text_text_sent_color_tooltip": "Textfarbe, wenn Text zur Verarbeitung gesendet wird", - "basic_speech2text_width": "Breite (px)", - "basic_square": "Quadrat", - "basic_star": "Stern", - "basic_triangle": "Dreieck", - "block": "Block", - "color": "Farbe", - "color_false": "Farbe bei falsch", - "color_true": "Farbe bei wahr", - "convert from widgeteria widget": "Konvertieren aus dem Widgeteria-Widget", - "copy": "Kopie", - "css_project": "Für dieses Projekt", - "custom_icons": "Special", - "different": "unterschiedlich", - "display": "Anzeige", - "finish searching": "Suche beendet", - "flex": "biegen", - "flexible": "flexibel", - "folder": "Ordner", - "font-family": "Schriftfamilie", - "font-size": "Schriftgröße", - "font-style": "Schriftstil", - "font-variant": "Schriftart-Variante", - "font-weight": "Schriftstärke", - "group": "Gruppe", - "group_attrName": "Name", - "group_attrType": "Typ", - "group_fields": "Attribute", - "group_help": "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.", - "group_icon_false": "Symbol von false", - "group_icon_true": "Symbol von true", - "group_size_hint": "Sie können die Gruppengröße ändern, indem Sie sie im Dropdown-Widget-Selektor auswählen oder auf diesen Text klicken", - "group_text": "Text", - "help_css_global": "Diese CSS werden auf alle Projekte angewendet", - "help_css_project": "Diese CSS werden nur auf dieses Projekt angewendet", - "hide": "ausblenden", - "hide code": "Code verstecken", - "horizontal": "horizontal", - "hr": "St", - "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": "Symbolgröße in Pixel", - "icon_upload_hint": "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.", - "imageHeight_false": "Bildhöhe", - "imageHeight_true": "Bildhöhe", - "invert_icon_false": "Symbol umkehren", - "invert_icon_true": "Symbol umkehren", - "jqui_Add new value": "Fügen Sie neuen Wert hinzu", - "jqui_Are you sure?": "Bist du sicher?", - "jqui_Bulk edit": "Bulk-Bearbeitung", - "jqui_Close": "Schließen", - "jqui_Example": "Beispiel", - "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": "Prozente", - "jqui_Replace to": "Ersetzen mit", - "jqui_Select file": "Bild auswählen", - "jqui_active_color": "Aktive Farbe", - "jqui_ampm": "Vormittags/Nachmittags", - "jqui_asDate": "Als Datum", - "jqui_asFullDate": "Verwendung des vollständig analysierbaren Datums", - "jqui_as_string": "Als String", - "jqui_auto": "Auto", - "jqui_binary_control": "Binäre Steuerung", - "jqui_button_binary_control_note": "Veraltet. Verwenden Sie das Widget „Binäre Steuerung“. Wird nur aus Kompatibilitätsgründen mit vis.1 beibehalten", - "jqui_button_color": "Knopffarbe", - "jqui_button_dialog_close": "Knopf zum Schließen des Dialogs", - "jqui_button_input_note": "Veraltet. Verwenden Sie das Widget „Eingabe“. Wird nur aus Kompatibilitätsgründen mit vis.1 beibehalten", - "jqui_button_link": "Zur URL springen", - "jqui_button_link_blank": "Zur URL springen (in neuem Fenster)", - "jqui_button_link_blank_note": "Veraltet. Verwenden Sie das erste Widget mit der Option „In neuem Fenster öffnen“. Wird nur aus Kompatibilitätsgründen mit vis.1 beibehalten", - "jqui_button_nav_blank_note": "Veraltet. Verwenden Sie das erste Widget mit der Option „Zur Ansicht gehen“. Wird nur aus Kompatibilitätsgründen mit vis.1 beibehalten", - "jqui_button_text": "Schaltflächentext", - "jqui_buttontext_view": "Verwenden Sie den Ansichtsnamen als Titel", - "jqui_clearable": "Abräumbar", - "jqui_color": "Farbe", - "jqui_container_button_dialog": "Schaltfläche=>Seitendialog", - "jqui_container_dialog": "Container-Dialog", - "jqui_container_icon_dialog": "Symbol=>Seitendialog", - "jqui_dialog_name": "Dialogname", - "jqui_dialog_set_id_tooltip": "Zustand durch Öffnen des Dialogs setzen", - "jqui_disableFuture": "Zukunft deaktivieren", - "jqui_disablePast": "Vergangenheit deaktivieren", - "jqui_displayWeekNumber": "Wochennummer anzeigen", - "jqui_equal_text_length": "Gleiche Textlängen", - "jqui_equal_text_length_tooltip": "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.", - "jqui_external_dialog": "Externer Dialog", - "jqui_external_dialog_tooltip": "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.", - "jqui_false": "FALSCH", - "jqui_from_oid": "Von einem Objekt", - "jqui_from_value": "Vom statischen Wert", - "jqui_generate": "Generieren", - "jqui_group_value": "Wert", - "jqui_hide_close_button": "Schaltfläche „Schließen“ ausblenden", - "jqui_href_tooltip": "Diese URL wird im Browser aufgerufen", - "jqui_html": "HTML", - "jqui_html_dialog": "HTML-Dialog", - "jqui_html_external_dialog": "Externer Dialog", - "jqui_html_false": "HTML bei false", - "jqui_html_tooltip": "HTML ist nur konfigurierbar, wenn Text und Symbol leer sind", - "jqui_html_true": "HTML bei true", - "jqui_icon": "Symbol", - "jqui_icon_active": "Aktives Symbol", - "jqui_icon_dialog": "Symboldialog", - "jqui_icon_http_get": "Aufruf-URL im Backend", - "jqui_icon_increment": "Mit Icon erhöhen", - "jqui_icon_link": "Zur URL springen (mit Symbol)", - "jqui_icon_max": "Symbol für Maximum", - "jqui_icon_state_bool": "Boolesche Symbolschaltfläche", - "jqui_icon_state_push_button": "Druckknopf", - "jqui_icon_toggle": "Umschalttaste mit Symbol", - "jqui_image": "Bild", - "jqui_image_active": "Aktives Bild", - "jqui_image_height": "Bildhöhe", - "jqui_image_max": "Bild für Maximum", - "jqui_increment_decrement": "Inkrementieren/Dekrementieren", - "jqui_input": "Eingabe", - "jqui_input_date": "Eingabe des Datums", - "jqui_input_time": "Zeiteingabe", - "jqui_input_with_button": "Eingabe mit Taste", - "jqui_invert_icon": "Symbol umkehren", - "jqui_inverted": "Invertiert", - "jqui_jquery_style": "jQuery-Stil", - "jqui_max": "Höchster Wert", - "jqui_min": "Minimaler Wert", - "jqui_name": "Titel", - "jqui_nav_view": "Zur Seite gehen", - "jqui_navigation_button": "Navigationstaste", - "jqui_navigation_icon": "Navigationssymbol", - "jqui_navigation_password": "Navigation mit Passwort", - "jqui_not_equal_length": "Nicht gleich breit", - "jqui_off": "Aus", - "jqui_oid_working": "Arbeitsausweis", - "jqui_on": "An", - "jqui_only_icon": "Nur Symbol", - "jqui_open": "Als Liste", - "jqui_orientation": "Orientierung", - "jqui_password": "Passwort", - "jqui_password_tooltip": "Der Benutzer muss ein Passwort eingeben, um den Dialog zu öffnen und zur Seite oder URL zu gelangen", - "jqui_push_mode": "Drück-Modus", - "jqui_push_mode_tooltip": "Durch Drücken der Taste wird „true“ geschrieben und wenn Sie die Taste loslassen, wird „false“ geschrieben.", - "jqui_radio_buttons_on_off": "Optionsfelder (ein/aus)", - "jqui_radio_list": "Radioliste mit Werten", - "jqui_radio_steps": "Optionsfeld (Schritte)", - "jqui_range": "Reichweite", - "jqui_read_only": "Schreibgeschützt", - "jqui_repeat_delay": "Wiederholungsverzögerung", - "jqui_repeat_interval": "Wiederholungsintervall", - "jqui_select_all_on_focus": "Wählen Sie alle im Fokus", - "jqui_select_all_on_focus_tooltip": "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", - "jqui_select_list": "Aus Liste auswählen", - "jqui_set_label": "Gestylt", - "jqui_set_timeout": "Timeout schreiben", - "jqui_single": "einzel", - "jqui_slider": "Schieberegler", - "jqui_slider_note": "Veraltet. Verwenden Sie das Schieberegler-Widget mit vertikaler Ausrichtung. Wird nur aus Kompatibilitätsgründen mit vis.1 beibehalten", - "jqui_slider_vertical": "Vertikaler Schieberegler", - "jqui_state_note": "Veraltet. Verwenden Sie das Widget „Zustände steuern“ mit der Option „Erhöhen/Verringern“. Wird nur aus Kompatibilitätsgründen mit vis.1 beibehalten", - "jqui_states_control": "Zustände steuern", - "jqui_stepMinute": "Schrittminute", - "jqui_test": "Testwert", - "jqui_text": "Text", - "jqui_text_active": "Aktiver Text", - "jqui_text_max": "Text für Maximum", - "jqui_toggle": "Umschalten", - "jqui_tooltip": "Tooltip", - "jqui_true": "WAHR", - "jqui_type": "Typ", - "jqui_unit": "Einheit", - "jqui_url_group": "URL per Klick aufrufen", - "jqui_url_in_background": "URL im Backend", - "jqui_url_in_browser": "URL im Browser", - "jqui_url_tooltip": "Diese URL wird im Hintergrund von der ioBroker-Engine aufgerufen", - "jqui_value": "Wert", - "jqui_value_label_display": "Etikett anzeigen", - "jqui_variant": "Variante", - "jqui_view_group": "Navigationsansicht", - "jqui_wideFormat": "Breitformat", - "jqui_widgetTitle": "Titel", - "jqui_with_enter_button": "Mit Enter-Taste", - "jqui_write_state_note": "Veraltet. Verwenden Sie das Widget „Wert schreiben“ mit der Option „Inkrementieren/Dekrementieren“. Wird nur aus Kompatibilitätsgründen mit vis.1 beibehalten", - "jqui_write_value": "Wert schreiben", - "letter-spacing": "Buchstaben-Abstand", - "line-height": "Zeilenhöhe", - "material_icons_baseline": "Gefüllt", - "material_icons_knx-uf": "knx-uf", - "material_icons_outline": "Umgerissen", - "material_icons_result": "%s übereinstimmende Ergebnisse", - "material_icons_round": "Gerundet", - "material_icons_sharp": "Spitzige", - "material_icons_twotone": "Zweifarbig", - "material_icons_upload": "Hochladen", - "multi-views": "Zeige in Views", - "never": "noch nie", - "no_reload": "kein Neuladen", - "none": "keiner", - "normal": "normal", - "not defined": "nicht definiert", - "not-specified": "nicht definiert", - "optional": "Optional", - "order_help": "Sie können jedes Element per Drag-and-Drop verschieben oder auf das Element klicken, mit dem das ausgewählte Widget ausgetauscht werden soll", - "orientation": "Orientierung", - "profile": "Profil", - "qui_Bool SVG": "Boolesches SVG", - "reload": "neu laden", - "search text": "Suchtext", - "set_basic": "Basic", - "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-0": "Text [0]", - "signals-text-1": "Text [1]", - "signals-text-2": "Text [2]", - "text-shadow": "Text-Schatten", - "text_false": "Text von false", - "text_true": "Text von true", - "to version": "zur Version", - "value_string": "Zeichenfolge", - "version": "Ausführung", - "vertical": "vertikal", - "visResizable": "Der Größe veränderbar", - "vis_2_widgets_basic_cannot_recursive": "Rekursive Views können nicht verwendet werden", - "vis_2_widgets_basic_contains_view": "Seite", - "vis_2_widgets_basic_view_in_widget": "View Im Widget", - "vis_2_widgets_basic_view_not_defined": "View nicht definiert", - "vis_2_widgets_widgets_tabs_color": "Farbe", - "vis_2_widgets_widgets_tabs_group_tab": "Tab", - "vis_2_widgets_widgets_tabs_label": "Registerkarten", - "vis_2_widgets_widgets_tabs_show_tabs": "Anzahl", - "vis_2_widgets_widgets_tabs_tab_icon": "Symbol", - "vis_2_widgets_widgets_tabs_tab_icon_color": "Farbe", - "vis_2_widgets_widgets_tabs_tab_icon_size": "Symbolgröße", - "vis_2_widgets_widgets_tabs_tab_image": "Bild", - "vis_2_widgets_widgets_tabs_tab_overflow_x": "Überlauf X", - "vis_2_widgets_widgets_tabs_tab_overflow_y": "Überlauf Y", - "vis_2_widgets_widgets_tabs_tab_title": "Titel", - "vis_2_widgets_widgets_tabs_tab_view": "Seite", - "vis_2_widgets_widgets_tabs_variant": "Variante", - "vis_2_widgets_widgets_tabs_variant_centered": "zentriert", - "vis_2_widgets_widgets_tabs_variant_default": "Standard", - "vis_2_widgets_widgets_tabs_variant_full_width": "Gesamtbreite", - "vis_2_widgets_widgets_tabs_vertical": "Vertikal", - "welcome_message": "Es existiert noch kein Projekt.", - "word-spacing": "Wortabstand", - "basic_sub_view": "Unteransicht", - "sub_view_tooltip": "Es wird für spezielle Zwecke verwendet, beispielsweise für die Jaeger-Design-Navigation", - "basic_no_filter_text": "Etikett „Kein Filter“.", - "basic_no_all_option": "Keine Option „Kein Filter“.", - "basic_filter_multiple": "Mehrfachauswahl", - "basic_filter_type_dropdown": "Dropdown-Menü", - "basic_filter_type_horizontal_buttons": "Horizontale Tasten", - "basic_filter_type_vertical_buttons": "Vertikale Tasten", - "basic_no_filter": "Kein Filter", - "basic_all_filters": "Alle verbleibenden", - "Only for desktop": "Nur für Desktop", - "Include widget?": "Widget einbinden?", - "Do you want to include \"%s\" widget into \"%s\"?": "Möchten Sie das Widget „%s“ in „%s“ einbinden?", - "Unselect": "Aufheben", - "All": "Alle", - "Load project file...": "Projektdatei wird geladen...", - "Load widgets...": "Widgets werden geladen...", - "Loading objects...": "Objekte werden geladen...", - "Following views will be changed": "Folgende Ansichten werden geändert", - "Show this attribute by all views": "Dieses Attribut in allen Ansichten anzeigen", - "Menu width": "Menübreite", - "Do not ask again": "Frag nicht nochmal", - "vis-2-widgets-basic-input_value": "Eingegebener Wert", - "vis-2-widgets-basic-autoSetDelay": "Verzögerung für automatisches Schreiben", - "vis-2-widgets-basic-noStyle": "Kein Style", - "Clone": "Klonen", - "jqui_Write state": "Schreibstatus", - "vis_2_widgets_widgets_swipe_label": "Swipe", - "vis_2_widgets_swipe_hide_indication_label": "Anzeige ausblenden", - "vis_2_widgets_swipe_threshold_label": "Schwelle" -} \ No newline at end of file + "%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": "Hinzufügen", + "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\n", + "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": "Administrator", + "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": "Alle", + "Aluminium1": "Aluminium1", + "Aluminium2": "Aluminium2", + "App bar": "Anwendungsleiste", + "Apply": "Anwenden", + "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": "Attribute", + "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": "Basic", + "Benutzer": "Benutzer", + "Blue flowers": "Blaue Blumen", + "Blue marine": "Blaue Marine", + "Blue marine lines": "Blaue Marinelinien", + "Blueprint grid": "Planraster", + "Bricks": "Ziegel", + "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", + "CSS": "CSS", + "CSS Class": "CSS-Klasse", + "CSS Common": "CSS allgemein", + "CSS Font & Text": "CSS-Schriftart und -Text", + "CSS background (background-...)": "CSS-Hintergrund (background-...)", + "Cancel": "Abbrechen", + "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": "Löschen", + "Clear filter": "Filter löschen", + "Click to close": "Zum Schließen klicken", + "Clone": "Klonen", + "Clone widget": "Widget klonen", + "Close": "Schließen", + "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": "Bunt", + "Column gap": "Spaltenlücke", + "Column width": "Spaltenbreite", + "Comment": "Kommentar", + "Convert %s to %s": "%s in %s konvertieren", + "Copied %s": "%s kopiert", + "Copied to clipboard": "In die Zwischenablage kopiert", + "Copy": "Kopieren", + "Copy noun": "Kopie", + "Copy to clipboard": "In die Zwischenablage kopieren", + "Copy view \"%s\"": "Seite \"%s\" kopieren", + "Create": "Erzeugen", + "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": "Ausschneiden", + "Dark reconnect screen": "Dunkler Bildschirm zum erneuten Verbinden", + "Deactivate binding and use field as standard input": "Bindung deaktivieren und Feld als Standardeingabe verwenden", + "Default": "Standard", + "Default view": "Standardansicht", + "Default: auto": "Standard: „auto“", + "Delete": "Löschen", + "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": "Geräte", + "Disabled": "Deaktiviert", + "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": "Kopieren", + "Duplicate folder": "Ordner kopieren", + "Duplicate profile": "Profil kopieren", + "Edit": "Bearbeiten", + "Edit binding": "Bindung bearbeiten", + "Edit folder": "Ordner bearbeiten", + "Edit group": "Gruppe bearbeiten", + "Edit profile": "Profil bearbeiten", + "Elements": "Elemente", + "Enabled": "Ermöglicht", + "Enter": "Eingeben", + "Enter password": "Passwort eingeben", + "Enter the browser instances divided by comma": "Geben Sie die Browserinstanzen durch Komma getrennt ein", + "Expand all": "Alle ausklappen", + "Explanation": "Erläuterung", + "Export": "Export", + "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": "Dateien", + "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": "Fr", + "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": "Für alle Projekte", + "Gradient box": "Verlaufsbox", + "Gray 0": "Grau 0", + "Gray 1": "Grau 1", + "Grid": "Netz", + "Group": "Gruppe", + "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": "Höhe", + "Hide": "Ausblenden", + "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": "Hoch", + "High priority": "Hohe Priorität", + "Highest eg. Holiday": "Höchste zB. Urlaub", + "Horizontal": "Horizontal", + "Icon": "Symbol", + "If user not in group": "Wenn der Benutzer nicht in der Gruppe ist", + "Ignore": "Ignorieren", + "Ignored in edit mode": "Im Bearbeitungsmodus ignoriert", + "Image": "Bild", + "Import": "Importieren", + "Import project": "Projekt importieren", + "Import widgets": "Widgets importieren", + "Include widget?": "Widget einbinden?", + "Initial filter": "Anfangsfilter", + "Instance": "Beispiel", + "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": "Sperren", + "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": "Nachricht", + "Mo": "Mo", + "Modify": "Ändern", + "More": "Mehr", + "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": "Name", + "Name is not unique": "Name ist nicht eindeutig", + "Name of copy": "Name der Kopie", + "Narrow panel": "Schmale Platte", + "Navigation": "Navigation", + "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": "Nein", + "No background": "Kein Hintergrund", + "Normal": "Normal", + "OFF": "AUS", + "ON": "AN", + "Objects": "Objekte", + "Ok": "OK", + "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": "Öffnen", + "Open all": "Alle ausklappen", + "Open it?": "Öffnen es?", + "Open runtime in new window": "Runtime in neuem Fenster öffnen", + "Open widgeteria": "Widgeteria öffnen", + "Options": "Optionen", + "Order": "Reihenfolge", + "Orientation": "Orientierung", + "Palette": "Palette", + "Paste": "Einfügen", + "Percent": "Prozent", + "Permissions": "Berechtigungen", + "Pixel 5 - Landscape": "Pixel 5 – Querformat", + "Pixel 5 - Portrait": "Pixel 5 – Hochformat", + "Priority": "Priorität", + "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 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": "Projekte", + "Radial blue": "Strahlend blau", + "Read": "Lesen", + "Read = Runtime access": "Lesen = Laufzeitzugriff", + "Read about currentColor in SVG": "Lesen Sie mehr über currentColor in SVG", + "Received user command: %s": "Benutzerbefehl erhalten: %s", + "Reconnect interval": "Wiederverbindungsintervall", + "Redo": "Redo", + "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": "Neuladen", + "Rename": "Umbenennen", + "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": "Auflösung", + "Responsive settings": "Responsive Einstellungen", + "Row gap": "Reihenlücke", + "Sa": "Sa", + "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": "Speichern", + "Scripts": "Skripte", + "Search": "Suche", + "Select": "Auswählen", + "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": "Einstell.", + "Should it be moved to new place?": "Sollte es an einen neuen Ort verlegt werden?", + "Show": "Zeigen", + "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 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": "Stil", + "Su": "So", + "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": "Tabs", + "Temperature": "Temperatur", + "Text color": "Textfarbe", + "Text color if selected": "Textfarbe, falls ausgewählt", + "Text edit": "Text bearbeiten", + "Th": "Do", + "Theme": "Thema", + "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": "Titel", + "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": "Di", + "Type": "Typ", + "Undo": "Undo", + "Ungroup": "Gruppierung aufheben", + "Uninstall": "Deinstallieren", + "Unknown widget type \"%s\"": "Unbekannter Widget-Typ „%s“", + "Unlock": "Freischalten", + "Unselect": "Aufheben", + "Update": "Aktualisieren", + "Usage of widget %s": "Verwendung des Widgets %s", + "Use background": "Hintergrund verwenden", + "Use field as binding": "Feld als Bindung verwenden", + "User defined": "Benutzerdefinierten", + "Value": "Wert", + "Vertical": "Vertikal", + "View": "Seite", + "View not defined": "Seite nicht definiert", + "We": "Mi", + "Weekend": "Wochenende", + "Widget": "Widget", + "Widget CSS": "Widget-CSS", + "Widget JS": "Widget JS", + "Widget was deleted in widgeteria": "Das Widget wurde in der Widgeteria gelöscht", + "Widgets": "Widgets", + "Width": "Breite", + "Width x height (px)": "Breite x Höhe (px)", + "Write": "Schreiben", + "Write = Edit mode access": "Schreiben = Zugriff auf den Bearbeitungsmodus", + "Writer": "Schriftsteller", + "Wrong password": "Falsches Passwort", + "Yes": "Ja", + "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": "Widgeteria", + "ace_All": "Alle", + "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": "Tooltip bei false", + "alt_true": "Tooltip bei true", + "anonymize": "anonymisieren", + "apply_to_all": "Für alle", + "attr_none": "none", + "basic_all_filters": "Alle verbleibenden", + "basic_arrow": "Pfeil", + "basic_borderColor": "Randfarbe", + "basic_borderRadius": "Grenzradius", + "basic_circle": "Kreis", + "basic_custom": "Benutzerdefiniertes Polygon", + "basic_filter_multiple": "Mehrfachauswahl", + "basic_filter_type_dropdown": "Dropdown-Menü", + "basic_filter_type_horizontal_buttons": "Horizontale Tasten", + "basic_filter_type_vertical_buttons": "Vertikale Tasten", + "basic_hexagone": "Sechseck", + "basic_line": "Linie", + "basic_no_all_option": "Keine Option „Kein Filter“.", + "basic_no_filter": "Kein Filter", + "basic_no_filter_text": "Etikett „Kein Filter“.", + "basic_octagone": "Achteck", + "basic_pentagone": "Pentagon", + "basic_pin": "Stift", + "basic_speech2text_continuous": "dauerhaft zuhören", + "basic_speech2text_detected": "Erkannt", + "basic_speech2text_en_us": "Englisch", + "basic_speech2text_height": "Höhe (px)", + "basic_speech2text_image_active": "Aktiv", + "basic_speech2text_image_inactive": "Inaktiv", + "basic_speech2text_info_allow": "Klicken Sie oben auf die Schaltfläche „Zulassen“, um Ihr Mikrofon zu aktivieren.", + "basic_speech2text_info_blocked": "Die Berechtigung zur Nutzung des Mikrofons ist gesperrt. Um Änderungen vorzunehmen, gehen Sie zu chrome://settings/contentExceptions#media-stream", + "basic_speech2text_info_denied": "Die Erlaubnis zur Nutzung des Mikrofons wurde verweigert.", + "basic_speech2text_info_no_microphone": "Es wurde kein Mikrofon gefunden. Stellen Sie sicher, dass ein Mikrofon installiert ist und die Mikrofoneinstellungen richtig konfiguriert sind.", + "basic_speech2text_info_no_speech": "Es wurde keine Sprache erkannt. Möglicherweise müssen Sie Ihre Mikrofoneinstellungen anpassen.", + "basic_speech2text_info_speak_now": "Sprich jetzt.", + "basic_speech2text_info_start": "Klicken Sie auf das Mikrofonsymbol und beginnen Sie zu sprechen.", + "basic_speech2text_info_upgrade": "Die Web Speech API wird von diesem Browser nicht unterstützt. Führen Sie ein Upgrade auf Chrome Version 25 oder höher durch.", + "basic_speech2text_key_word_color": "Schlüsselwortfarbe", + "basic_speech2text_key_word_color_tooltip": "Textfarbe, wenn Schlüsselwort gefunden wird", + "basic_speech2text_keywords": "Schlüsselwörter", + "basic_speech2text_no_image": "Kein Bild", + "basic_speech2text_no_results": "Keine Ergebnisse", + "basic_speech2text_no_text": "Kein Hilfetext", + "basic_speech2text_ru_ru": "Russisch", + "basic_speech2text_sent": "Gesendet", + "basic_speech2text_single": "einzel", + "basic_speech2text_speech_mode": "Sprachmodus", + "basic_speech2text_start_stop": "Start stop", + "basic_speech2text_started": "Gestartet", + "basic_speech2text_text_sent_color": "Text wird in Farbe gesendet", + "basic_speech2text_text_sent_color_tooltip": "Textfarbe, wenn Text zur Verarbeitung gesendet wird", + "basic_speech2text_width": "Breite (px)", + "basic_square": "Quadrat", + "basic_star": "Stern", + "basic_sub_view": "Unteransicht", + "basic_triangle": "Dreieck", + "block": "Block", + "color": "Farbe", + "color_false": "Farbe bei falsch", + "color_true": "Farbe bei wahr", + "convert from widgeteria widget": "Konvertieren aus dem Widgeteria-Widget", + "copy": "Kopie", + "css_project": "Für dieses Projekt", + "custom_icons": "Special", + "different": "unterschiedlich", + "display": "Anzeige", + "finish searching": "Suche beendet", + "flex": "biegen", + "flexible": "flexibel", + "folder": "Ordner", + "font-family": "Schriftfamilie", + "font-size": "Schriftgröße", + "font-style": "Schriftstil", + "font-variant": "Schriftart-Variante", + "font-weight": "Schriftstärke", + "group": "Gruppe", + "group_attrName": "Name", + "group_attrType": "Typ", + "group_fields": "Attribute", + "group_help": "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.", + "group_icon_false": "Symbol von false", + "group_icon_true": "Symbol von true", + "group_size_hint": "Sie können die Gruppengröße ändern, indem Sie sie im Dropdown-Widget-Selektor auswählen oder auf diesen Text klicken", + "group_text": "Text", + "help_css_global": "Diese CSS werden auf alle Projekte angewendet", + "help_css_project": "Diese CSS werden nur auf dieses Projekt angewendet", + "hide": "ausblenden", + "hide code": "Code verstecken", + "horizontal": "horizontal", + "hr": "St", + "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": "Symbolgröße in Pixel", + "icon_upload_hint": "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.", + "imageHeight_false": "Bildhöhe", + "imageHeight_true": "Bildhöhe", + "invert_icon_false": "Symbol umkehren", + "invert_icon_true": "Symbol umkehren", + "jqui_Add new value": "Fügen Sie neuen Wert hinzu", + "jqui_Are you sure?": "Bist du sicher?", + "jqui_Bulk edit": "Bulk-Bearbeitung", + "jqui_Close": "Schließen", + "jqui_Example": "Beispiel", + "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": "Prozente", + "jqui_Replace to": "Ersetzen mit", + "jqui_Select file": "Bild auswählen", + "jqui_Write state": "Schreibstatus", + "jqui_active_color": "Aktive Farbe", + "jqui_ampm": "Vormittags/Nachmittags", + "jqui_asDate": "Als Datum", + "jqui_asFullDate": "Verwendung des vollständig analysierbaren Datums", + "jqui_as_string": "Als String", + "jqui_auto": "Auto", + "jqui_binary_control": "Binäre Steuerung", + "jqui_button_binary_control_note": "Veraltet. Verwenden Sie das Widget „Binäre Steuerung“. Wird nur aus Kompatibilitätsgründen mit vis.1 beibehalten", + "jqui_button_color": "Knopffarbe", + "jqui_button_dialog_close": "Knopf zum Schließen des Dialogs", + "jqui_button_input_note": "Veraltet. Verwenden Sie das Widget „Eingabe“. Wird nur aus Kompatibilitätsgründen mit vis.1 beibehalten", + "jqui_button_link": "Zur URL springen", + "jqui_button_link_blank": "Zur URL springen (in neuem Fenster)", + "jqui_button_link_blank_note": "Veraltet. Verwenden Sie das erste Widget mit der Option „In neuem Fenster öffnen“. Wird nur aus Kompatibilitätsgründen mit vis.1 beibehalten", + "jqui_button_nav_blank_note": "Veraltet. Verwenden Sie das erste Widget mit der Option „Zur Ansicht gehen“. Wird nur aus Kompatibilitätsgründen mit vis.1 beibehalten", + "jqui_button_text": "Schaltflächentext", + "jqui_buttontext_view": "Verwenden Sie den Ansichtsnamen als Titel", + "jqui_clearable": "Abräumbar", + "jqui_color": "Farbe", + "jqui_container_button_dialog": "Schaltfläche=>Seitendialog", + "jqui_container_dialog": "Container-Dialog", + "jqui_container_icon_dialog": "Symbol=>Seitendialog", + "jqui_dialog_name": "Dialogname", + "jqui_dialog_set_id_tooltip": "Zustand durch Öffnen des Dialogs setzen", + "jqui_disableFuture": "Zukunft deaktivieren", + "jqui_disablePast": "Vergangenheit deaktivieren", + "jqui_displayWeekNumber": "Wochennummer anzeigen", + "jqui_equal_text_length": "Gleiche Textlängen", + "jqui_equal_text_length_tooltip": "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.", + "jqui_external_dialog": "Externer Dialog", + "jqui_external_dialog_tooltip": "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.", + "jqui_false": "FALSCH", + "jqui_from_oid": "Von einem Objekt", + "jqui_from_value": "Vom statischen Wert", + "jqui_generate": "Generieren", + "jqui_group_value": "Wert", + "jqui_hide_close_button": "Schaltfläche „Schließen“ ausblenden", + "jqui_href_tooltip": "Diese URL wird im Browser aufgerufen", + "jqui_html": "HTML", + "jqui_html_dialog": "HTML-Dialog", + "jqui_html_external_dialog": "Externer Dialog", + "jqui_html_false": "HTML bei false", + "jqui_html_tooltip": "HTML ist nur konfigurierbar, wenn Text und Symbol leer sind", + "jqui_html_true": "HTML bei true", + "jqui_icon": "Symbol", + "jqui_icon_active": "Aktives Symbol", + "jqui_icon_dialog": "Symboldialog", + "jqui_icon_http_get": "Aufruf-URL im Backend", + "jqui_icon_increment": "Mit Icon erhöhen", + "jqui_icon_link": "Zur URL springen (mit Symbol)", + "jqui_icon_max": "Symbol für Maximum", + "jqui_icon_state_bool": "Boolesche Symbolschaltfläche", + "jqui_icon_state_push_button": "Druckknopf", + "jqui_icon_toggle": "Umschalttaste mit Symbol", + "jqui_image": "Bild", + "jqui_image_active": "Aktives Bild", + "jqui_image_height": "Bildhöhe", + "jqui_image_max": "Bild für Maximum", + "jqui_increment_decrement": "Inkrementieren/Dekrementieren", + "jqui_input": "Eingabe", + "jqui_input_date": "Eingabe des Datums", + "jqui_input_time": "Zeiteingabe", + "jqui_input_with_button": "Eingabe mit Taste", + "jqui_invert_icon": "Symbol umkehren", + "jqui_inverted": "Invertiert", + "jqui_jquery_style": "jQuery-Stil", + "jqui_max": "Höchster Wert", + "jqui_min": "Minimaler Wert", + "jqui_name": "Titel", + "jqui_nav_view": "Zur Seite gehen", + "jqui_navigation_button": "Navigationstaste", + "jqui_navigation_icon": "Navigationssymbol", + "jqui_navigation_password": "Navigation mit Passwort", + "jqui_not_equal_length": "Nicht gleich breit", + "jqui_off": "Aus", + "jqui_oid_working": "Arbeitsausweis", + "jqui_on": "An", + "jqui_only_icon": "Nur Symbol", + "jqui_open": "Als Liste", + "jqui_orientation": "Orientierung", + "jqui_password": "Passwort", + "jqui_password_tooltip": "Der Benutzer muss ein Passwort eingeben, um den Dialog zu öffnen und zur Seite oder URL zu gelangen", + "jqui_push_mode": "Drück-Modus", + "jqui_push_mode_tooltip": "Durch Drücken der Taste wird „true“ geschrieben und wenn Sie die Taste loslassen, wird „false“ geschrieben.", + "jqui_radio_buttons_on_off": "Optionsfelder (ein/aus)", + "jqui_radio_list": "Radioliste mit Werten", + "jqui_radio_steps": "Optionsfeld (Schritte)", + "jqui_range": "Reichweite", + "jqui_read_only": "Schreibgeschützt", + "jqui_repeat_delay": "Wiederholungsverzögerung", + "jqui_repeat_interval": "Wiederholungsintervall", + "jqui_select_all_on_focus": "Wählen Sie alle im Fokus", + "jqui_select_all_on_focus_tooltip": "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", + "jqui_select_list": "Aus Liste auswählen", + "jqui_set_label": "Gestylt", + "jqui_set_timeout": "Timeout schreiben", + "jqui_single": "einzel", + "jqui_slider": "Schieberegler", + "jqui_slider_note": "Veraltet. Verwenden Sie das Schieberegler-Widget mit vertikaler Ausrichtung. Wird nur aus Kompatibilitätsgründen mit vis.1 beibehalten", + "jqui_slider_vertical": "Vertikaler Schieberegler", + "jqui_state_note": "Veraltet. Verwenden Sie das Widget „Zustände steuern“ mit der Option „Erhöhen/Verringern“. Wird nur aus Kompatibilitätsgründen mit vis.1 beibehalten", + "jqui_states_control": "Zustände steuern", + "jqui_stepMinute": "Schrittminute", + "jqui_test": "Testwert", + "jqui_text": "Text", + "jqui_text_active": "Aktiver Text", + "jqui_text_max": "Text für Maximum", + "jqui_toggle": "Umschalten", + "jqui_tooltip": "Tooltip", + "jqui_true": "WAHR", + "jqui_type": "Typ", + "jqui_unit": "Einheit", + "jqui_url_group": "URL per Klick aufrufen", + "jqui_url_in_background": "URL im Backend", + "jqui_url_in_browser": "URL im Browser", + "jqui_url_tooltip": "Diese URL wird im Hintergrund von der ioBroker-Engine aufgerufen", + "jqui_value": "Wert", + "jqui_value_label_display": "Etikett anzeigen", + "jqui_variant": "Variante", + "jqui_view_group": "Navigationsansicht", + "jqui_wideFormat": "Breitformat", + "jqui_widgetTitle": "Titel", + "jqui_with_enter_button": "Mit Enter-Taste", + "jqui_write_state_note": "Veraltet. Verwenden Sie das Widget „Wert schreiben“ mit der Option „Inkrementieren/Dekrementieren“. Wird nur aus Kompatibilitätsgründen mit vis.1 beibehalten", + "jqui_write_value": "Wert schreiben", + "letter-spacing": "Buchstaben-Abstand", + "line-height": "Zeilenhöhe", + "material_icons_baseline": "Gefüllt", + "material_icons_knx-uf": "knx-uf", + "material_icons_outline": "Umgerissen", + "material_icons_result": "%s übereinstimmende Ergebnisse", + "material_icons_round": "Gerundet", + "material_icons_sharp": "Spitzige", + "material_icons_twotone": "Zweifarbig", + "material_icons_upload": "Hochladen", + "multi-views": "Zeige in Views", + "never": "noch nie", + "no_reload": "kein Neuladen", + "none": "keiner", + "normal": "normal", + "not defined": "nicht definiert", + "not-specified": "nicht definiert", + "optional": "Optional", + "order_help": "Sie können jedes Element per Drag-and-Drop verschieben oder auf das Element klicken, mit dem das ausgewählte Widget ausgetauscht werden soll", + "orientation": "Orientierung", + "profile": "Profil", + "qui_Bool SVG": "Boolesches SVG", + "reload": "neu laden", + "search text": "Suchtext", + "set_basic": "Basic", + "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-0": "Text [0]", + "signals-text-1": "Text [1]", + "signals-text-2": "Text [2]", + "sub_view_tooltip": "Es wird für spezielle Zwecke verwendet, beispielsweise für die Jaeger-Design-Navigation", + "text-shadow": "Text-Schatten", + "text_false": "Text von false", + "text_true": "Text von true", + "to version": "zur Version", + "value_string": "Zeichenfolge", + "version": "Ausführung", + "vertical": "vertikal", + "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": "Der Größe veränderbar", + "vis_2_widgets_basic_cannot_recursive": "Rekursive Views können nicht verwendet werden", + "vis_2_widgets_basic_contains_view": "Seite", + "vis_2_widgets_basic_view_in_widget": "View Im Widget", + "vis_2_widgets_basic_view_not_defined": "View nicht definiert", + "vis_2_widgets_swipe_hide_indication_label": "Anzeige ausblenden", + "vis_2_widgets_swipe_threshold_label": "Schwelle", + "vis_2_widgets_widgets_swipe_label": "Swipe", + "vis_2_widgets_widgets_tabs_color": "Farbe", + "vis_2_widgets_widgets_tabs_group_tab": "Tab", + "vis_2_widgets_widgets_tabs_label": "Registerkarten", + "vis_2_widgets_widgets_tabs_show_tabs": "Anzahl", + "vis_2_widgets_widgets_tabs_tab_icon": "Symbol", + "vis_2_widgets_widgets_tabs_tab_icon_color": "Farbe", + "vis_2_widgets_widgets_tabs_tab_icon_size": "Symbolgröße", + "vis_2_widgets_widgets_tabs_tab_image": "Bild", + "vis_2_widgets_widgets_tabs_tab_overflow_x": "Überlauf X", + "vis_2_widgets_widgets_tabs_tab_overflow_y": "Überlauf Y", + "vis_2_widgets_widgets_tabs_tab_title": "Titel", + "vis_2_widgets_widgets_tabs_tab_view": "Seite", + "vis_2_widgets_widgets_tabs_variant": "Variante", + "vis_2_widgets_widgets_tabs_variant_centered": "zentriert", + "vis_2_widgets_widgets_tabs_variant_default": "Standard", + "vis_2_widgets_widgets_tabs_variant_full_width": "Gesamtbreite", + "vis_2_widgets_widgets_tabs_vertical": "Vertikal", + "welcome_message": "Es existiert noch kein Projekt.", + "word-spacing": "Wortabstand" +} diff --git a/packages/iobroker.vis-2/src/src/i18n/en.json b/packages/iobroker.vis-2/src/src/i18n/en.json index c875ca85..f6ef3631 100644 --- a/packages/iobroker.vis-2/src/src/i18n/en.json +++ b/packages/iobroker.vis-2/src/src/i18n/en.json @@ -1,753 +1,755 @@ { - "%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": "Add", - "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\n", - "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": "Administrator", - "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.", - "Aluminium1": "Aluminium1", - "Aluminium2": "Aluminium2", - "App bar": "Application bar", - "Apply": "Apply", - "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": "Attributes", - "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": "Basic", - "Benutzer": "Benutzer", - "Blue flowers": "Blue flowers", - "Blue marine": "Blue marine", - "Blue marine lines": "Blue marine lines", - "Blueprint grid": "Blueprint grid", - "Bricks": "Bricks", - "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", - "CSS": "CSS", - "CSS Class": "CSS Class", - "CSS Common": "CSS Common", - "CSS Font & Text": "CSS Font & Text", - "CSS background (background-...)": "CSS background (background-...)", - "Cancel": "Cancel", - "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": "Clear", - "Clear filter": "Clear filter", - "Click to close": "Click to close", - "Clone widget": "Clone widget", - "Close": "Close", - "Close all": "Collapse all", - "Close all but current view": "Close all but current view", - "Close editor": "Close editor", - "Collapse all": "Collapse all", - "Colorful": "Colorful", - "Column gap": "Column gap", - "Column width": "Column width", - "Comment": "Comment", - "Convert %s to %s": "Convert %s to %s", - "Copied %s": "Copied %s", - "Copied to clipboard": "Copied to clipboard", - "Copy": "Copy", - "Copy noun": "Copy", - "Copy to clipboard": "Copy to clipboard", - "Copy view \"%s\"": "Copy view \"%s\"", - "Create": "Create", - "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": "Cut", - "Dark reconnect screen": "Dark reconnect screen", - "Deactivate binding and use field as standard input": "Deactivate binding and use field as standard input", - "Default": "Default", - "Default view": "Default view", - "Default: auto": "Default: \"auto\"", - "Delete": "Delete", - "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": "Devices", - "Disabled": "Disabled", - "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\"?", - "Drag me": "Drag me", - "Drop the files here ...": "Drop the files here ...", - "Duplicate": "Duplicate", - "Duplicate folder": "Duplicate folder", - "Duplicate profile": "Duplicate the profile", - "Edit": "Edit", - "Edit binding": "Edit binding", - "Edit folder": "Edit folder", - "Edit group": "Edit group", - "Edit profile": "Edit profile", - "Elements": "Elements", - "Enabled": "Enabled", - "Enter": "Enter", - "Enter password": "Enter password", - "Expand all": "Expand all", - "Explanation": "Explanation", - "Export": "Export", - "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": "Files", - "Filter widgets": "Filter widgets", - "Fm dark background": "Fm dark background", - "Fm light background": "Fm light background", - "For widgets with relative position": "For widgets with relative position", - "Fr": "Fr", - "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": "For all projects", - "Gradient box": "Gradient box", - "Gray 0": "Gray 0", - "Gray 1": "Gray 1", - "Grid": "Grid", - "Group": "Group", - "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": "Height", - "Hide": "Hide", - "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": "High", - "High priority": "High priority", - "Highest eg. Holiday": "Highest eg. Holiday", - "Horizontal": "Horizontal", - "Icon": "Icon", - "If user not in group": "If user not in group", - "Ignore": "Ignore", - "Ignored in edit mode": "Ignored in edit mode", - "Image": "Image", - "Import": "Import", - "Import project": "Import project", - "Import widgets": "Import widgets", - "Initial filter": "Initial filter", - "Instance": "Instance", - "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 screen": "Limit screen", - "Lined paper": "Lined paper", - "Lock": "Lock", - "Lock dragging": "Lock dragging", - "Manage projects": "Projects", - "Manage views": "Views", - "Menu header text": "Menu header text", - "Menu header text color": "Menu header text color", - "Message": "Message", - "Mo": "Mo", - "Modify": "Modify", - "More": "More", - "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": "Name", - "Name is not unique": "Name is not unique", - "Name of copy": "Name of copy", - "Narrow panel": "Narrow panel", - "Navigation": "Navigation", - "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": "No", - "No background": "No background", - "Normal": "Normal", - "OFF": "OFF", - "ON": "ON", - "Objects": "Objects", - "Ok": "Ok", - "On/Off": "On/Off", - "One parameter": "One parameter", - "Only for groups": "Only for groups", - "Only the admin user can change permissions": "Only the admin user can change permissions", - "Open": "Open", - "Open all": "Expand all", - "Open it?": "Open it?", - "Open runtime in new window": "Open runtime in new window", - "Open widgeteria": "Open widgeteria", - "Options": "Options", - "Order": "Order", - "Orientation": "Orientation", - "Palette": "Palette", - "Paste": "Paste", - "Percent": "Percent", - "Permissions": "Permissions", - "Pixel 5 - Landscape": "Pixel 5 - Landscape", - "Pixel 5 - Portrait": "Pixel 5 - Portrait", - "Priority": "Priority", - "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 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": "Projects", - "Radial blue": "Radial blue", - "Read": "Read", - "Read = Runtime access": "Read = Runtime access", - "Read about currentColor in SVG": "Read about currentColor in SVG", - "Received user command: %s": "Received user command: %s", - "Reconnect interval": "Reconnect interval", - "Redo": "Redo", - "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": "Reloading", - "Rename": "Rename", - "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": "Resolution", - "Responsive settings": "Responsive settings", - "Row gap": "Row gap", - "Sa": "Sa", - "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": "Save", - "Scripts": "Scripts", - "Search": "Search", - "Select": "Select", - "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": "Settings", - "Should it be moved to new place?": "Should it be moved to new place?", - "Show": "Show", - "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 view": "Show view", - "Specify filter to see more icons": "Specify filter to see more icons", - "States Debounce Time (millis)": "States Debounce Time (millis)", - "Style": "Style", - "Su": "Su", - "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": "Tabs", - "Temperature": "Temperature", - "Text color": "Text color", - "Text color if selected": "Text color if selected", - "Text edit": "Text edit", - "Th": "Th", - "Theme": "Theme", - "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": "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": "Tu", - "Type": "Type", - "Undo": "Undo", - "Ungroup": "Ungroup", - "Uninstall": "Uninstall", - "Unknown widget type \"%s\"": "Unknown widget type \"%s\"", - "Unlock": "Unlock", - "Update": "Update", - "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": "Value", - "Vertical": "Vertical", - "View": "View", - "View not defined": "View not defined", - "We": "We", - "Weekend": "Weekend", - "Widget": "Widget", - "Widget CSS": "Widget CSS", - "Widget JS": "Widget JS", - "Widget was deleted in widgeteria": "Widget was deleted in widgeteria", - "Widgets": "Widgets", - "Width": "Width", - "Width x height (px)": "Width x height (px)", - "Write": "Write", - "Write = Edit mode access": "Write = Edit mode access", - "Writer": "Writer", - "Wrong password": "Wrong password", - "Yes": "Yes", - "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": "Widgeteria", - "ace_All": "All", - "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": "Tooltip by false", - "alt_true": "Tooltip by true", - "anonymize": "anonymize", - "apply_to_all": "For all", - "attr_none": "none", - "basic_arrow": "Arrow", - "basic_borderColor": "Border color", - "basic_borderRadius": "Border radius", - "basic_circle": "Circle", - "basic_custom": "Custom polygon", - "basic_hexagone": "Hexagone", - "basic_line": "Line", - "basic_octagone": "Octagone", - "basic_pentagone": "Pentagone", - "basic_pin": "Pin", - "basic_speech2text_continuous": "continuous", - "basic_speech2text_detected": "Detected", - "basic_speech2text_en_us": "english", - "basic_speech2text_height": "Height (px)", - "basic_speech2text_image_active": "Active", - "basic_speech2text_image_inactive": "Inactive", - "basic_speech2text_info_allow": "Click the \"Allow\" button above to enable your microphone.", - "basic_speech2text_info_blocked": "Permission to use microphone is blocked. To change, go to chrome://settings/contentExceptions#media-stream", - "basic_speech2text_info_denied": "Permission to use microphone was denied.", - "basic_speech2text_info_no_microphone": "No microphone was found. Ensure that a microphone is installed and that microphone settings are configured correctly.", - "basic_speech2text_info_no_speech": "No speech was detected. You may need to adjust your microphone settings.", - "basic_speech2text_info_speak_now": "Speak now.", - "basic_speech2text_info_start": "Click on the microphone icon and begin speaking.", - "basic_speech2text_info_upgrade": "Web Speech API is not supported by this browser. Upgrade to Chrome version 25 or later.", - "basic_speech2text_key_word_color": "Key word color", - "basic_speech2text_key_word_color_tooltip": "Text color, if key word found", - "basic_speech2text_keywords": "Keywords", - "basic_speech2text_no_image": "No image", - "basic_speech2text_no_results": "No results", - "basic_speech2text_no_text": "No help text", - "basic_speech2text_ru_ru": "russian", - "basic_speech2text_sent": "Sent", - "basic_speech2text_single": "single", - "basic_speech2text_speech_mode": "Speech mode", - "basic_speech2text_start_stop": "start/stop", - "basic_speech2text_started": "Started", - "basic_speech2text_text_sent_color": "Text sent color", - "basic_speech2text_text_sent_color_tooltip": "Text color, when text sent to processing it", - "basic_speech2text_width": "Width (px)", - "basic_square": "Square", - "basic_star": "Star", - "basic_triangle": "Triangle", - "block": "block", - "color": "color", - "color_false": "Color by false", - "color_true": "Color by true", - "convert from widgeteria widget": "convert from widgeteria widget", - "copy": "copy", - "css_project": "For this project", - "custom_icons": "Special", - "different": "different", - "display": "display", - "finish searching": "searching finished", - "flex": "flex", - "flexible": "flexible", - "folder": "Folder", - "font-family": "font-family", - "font-size": "font-size", - "font-style": "font-style", - "font-variant": "font-variant", - "font-weight": "font-weight", - "group": "Group", - "group_attrName": "Name", - "group_attrType": "Type", - "group_fields": "Attributes", - "group_help": "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.", - "group_icon_false": "Icon by false", - "group_icon_true": "Icon by true", - "group_size_hint": "You can change group size, by selecting it in the drop down widget selector or by clicking on this text", - "group_text": "Text", - "help_css_global": "These CSS are applyed to all projects", - "help_css_project": "These CSS are applied only to this project", - "hide": "hide", - "hide code": "hide code", - "horizontal": "horizontal", - "hr": "hr", - "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": "Icon size in pixels", - "icon_upload_hint": "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.", - "imageHeight_false": "Image height", - "imageHeight_true": "Image height", - "invert_icon_false": "Invert icon", - "invert_icon_true": "Invert icon", - "jqui_Add new value": "Add new value", - "jqui_Are you sure?": "Are you sure?", - "jqui_Bulk edit": "Bulk edit", - "jqui_Close": "Close", - "jqui_Example": "Example", - "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": "Percents", - "jqui_Replace to": "Replace with", - "jqui_Select file": "Select image", - "jqui_active_color": "Active color", - "jqui_ampm": "Am/Pm", - "jqui_asDate": "As date", - "jqui_asFullDate": "Usage of full parseable date", - "jqui_as_string": "As string", - "jqui_auto": "auto", - "jqui_binary_control": "Binary control", - "jqui_button_binary_control_note": "Deprecated. Use \"Binary control\" widget. Keeped just for compatibility with vis.1", - "jqui_button_color": "Button color", - "jqui_button_dialog_close": "Dialog close button", - "jqui_button_input_note": "Deprecated. Use \"Input\" widget. Keeped just for compatibility with vis.1", - "jqui_button_link": "Jump to URL", - "jqui_button_link_blank": "Jump to URL (In new Window)", - "jqui_button_link_blank_note": "Deprecated. Use first widget with \"Open in new window\" option. Keeped just for compatibility with vis.1", - "jqui_button_nav_blank_note": "Deprecated. Use first widget with \"Go to view\" option. Keeped just for compatibility with vis.1", - "jqui_button_text": "Button text", - "jqui_buttontext_view": "Use view name as title", - "jqui_clearable": "Clearable", - "jqui_color": "Color", - "jqui_container_button_dialog": "Button=>Page dialog", - "jqui_container_dialog": "Container dialog", - "jqui_container_icon_dialog": "Icon=>Page dialog", - "jqui_dialog_name": "Dialog name", - "jqui_dialog_set_id_tooltip": "Set state by dialog open", - "jqui_disableFuture": "Disable future", - "jqui_disablePast": "Disable past", - "jqui_displayWeekNumber": "Display week number", - "jqui_equal_text_length": "Equal text lengths", - "jqui_equal_text_length_tooltip": "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.", - "jqui_external_dialog": "External dialog", - "jqui_external_dialog_tooltip": "This dialog is not visible on page, but it can be opened by external command \"dialogOpen\" with dialog name or widget ID as parameter.", - "jqui_false": "False", - "jqui_from_oid": "From other object", - "jqui_from_value": "From static value", - "jqui_generate": "Generate", - "jqui_group_value": "Value", - "jqui_hide_close_button": "Hide close button", - "jqui_href_tooltip": "This URL will be called in browser", - "jqui_html": "HTML", - "jqui_html_dialog": "HTML Dialog", - "jqui_html_external_dialog": "External dialog", - "jqui_html_false": "HTML by false", - "jqui_html_tooltip": "HTML is only configurable if text and icon are empty", - "jqui_html_true": "HTML by true", - "jqui_icon": "Icon", - "jqui_icon_active": "Active icon", - "jqui_icon_dialog": "Icon Dialog", - "jqui_icon_http_get": "Call URL in backend", - "jqui_icon_increment": "Increment with Icon", - "jqui_icon_link": "Jump to URL (with icon)", - "jqui_icon_max": "Icon for maximum", - "jqui_icon_state_bool": "Boolean icon button", - "jqui_icon_state_push_button": "Push button", - "jqui_icon_toggle": "Toggle button with icon", - "jqui_image": "Image", - "jqui_image_active": "Active image", - "jqui_image_height": "Image height", - "jqui_image_max": "Image for maximum", - "jqui_increment_decrement": "Increment/Decrement", - "jqui_input": "Input", - "jqui_input_date": "Input of date", - "jqui_input_time": "Input of time", - "jqui_input_with_button": "Input with button", - "jqui_invert_icon": "Invert icon", - "jqui_inverted": "Inverted", - "jqui_jquery_style": "jQuery Style", - "jqui_max": "Maximum value", - "jqui_min": "Minimal value", - "jqui_name": "Title", - "jqui_nav_view": "Go to view", - "jqui_navigation_button": "Navigation Button", - "jqui_navigation_icon": "Navigation icon", - "jqui_navigation_password": "Navigation with password", - "jqui_not_equal_length": "Not equal width", - "jqui_off": "Off", - "jqui_oid_working": "Working ID", - "jqui_on": "On", - "jqui_only_icon": "Only icon", - "jqui_open": "As list", - "jqui_orientation": "Orientation", - "jqui_password": "Password", - "jqui_password_tooltip": "User must enter password to open dialog, go to page or URL", - "jqui_push_mode": "Push mode", - "jqui_push_mode_tooltip": "By pressing the button, “true” will be written and when you release the button, will be written “false”.", - "jqui_radio_buttons_on_off": "Radio buttons (on/off)", - "jqui_radio_list": "Radio list with values", - "jqui_radio_steps": "Radio button (steps)", - "jqui_range": "range", - "jqui_read_only": "Read only", - "jqui_repeat_delay": "Repeat delay", - "jqui_repeat_interval": "Repeat interval", - "jqui_select_all_on_focus": "Select all on focus", - "jqui_select_all_on_focus_tooltip": "On focus all text will be selected, so it can be fast deleted or changed without pressing backspace button", - "jqui_select_list": "Select from list", - "jqui_set_label": "Styled", - "jqui_set_timeout": "Write timeout", - "jqui_single": "single", - "jqui_slider": "Slider", - "jqui_slider_note": "Deprecated. Use slider widget with orientation set to vertical. Keeped just for compatibility with vis.1", - "jqui_slider_vertical": "Vertical slider", - "jqui_state_note": "Deprecated. Use \"States control\" widget with \"increment/decrement\" option. Keeped just for compatibility with vis.1", - "jqui_states_control": "States control", - "jqui_stepMinute": "Step minute", - "jqui_test": "Test value", - "jqui_text": "Text", - "jqui_text_active": "Active text", - "jqui_text_max": "Text for maximum", - "jqui_toggle": "Toggle", - "jqui_tooltip": "Tooltip", - "jqui_true": "True", - "jqui_type": "Type", - "jqui_unit": "Unit", - "jqui_url_group": "Call URL by click", - "jqui_url_in_background": "URL in Backend", - "jqui_url_in_browser": "URL in Browser", - "jqui_url_tooltip": "This URL will be called in background by ioBroker engine", - "jqui_value": "Value", - "jqui_value_label_display": "Display label", - "jqui_variant": "Variant", - "jqui_view_group": "Navigation view", - "jqui_wideFormat": "Wide format", - "jqui_widgetTitle": "Title", - "jqui_with_enter_button": "With enter button", - "jqui_write_state_note": "Deprecated. Use \"Wirte state\" widget with \"increment/decrement\" option. Keeped just for compatibility with vis.1", - "jqui_write_value": "Write value", - "letter-spacing": "letter-spacing", - "line-height": "line-height", - "material_icons_baseline": "Filled", - "material_icons_knx-uf": "knx-uf", - "material_icons_outline": "Outlined", - "material_icons_result": "%s matching results", - "material_icons_round": "Round", - "material_icons_sharp": "Sharp", - "material_icons_twotone": "Two-tone", - "material_icons_upload": "Upload", - "multi-views": "Show in Views", - "never": "never", - "no_reload": "no reload", - "none": "none", - "normal": "normal", - "not defined": "not defined", - "not-specified": "not defined", - "optional": "optional", - "order_help": "You can drag and drop any item or click on the item with which the selected widget will be swapped", - "orientation": "Orientation", - "profile": "Profile", - "qui_Bool SVG": "Boolean SVG", - "reload": "reload", - "search text": "Search text", - "set_basic": "basic", - "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-0": "Text [0]", - "signals-text-1": "Text [1]", - "signals-text-2": "Text [2]", - "text-shadow": "text-shadow", - "text_false": "Text by false", - "text_true": "Text by true", - "to version": "to version", - "value_string": "String", - "version": "version", - "vertical": "vertical", - "visResizable": "Resizable", - "vis_2_widgets_basic_cannot_recursive": "Cannot use recursive views", - "vis_2_widgets_basic_contains_view": "Use view", - "vis_2_widgets_basic_view_in_widget": "View in widget", - "vis_2_widgets_basic_view_not_defined": "View not defined", - "vis_2_widgets_widgets_tabs_color": "Color", - "vis_2_widgets_widgets_tabs_group_tab": "Tab", - "vis_2_widgets_widgets_tabs_label": "Tabs", - "vis_2_widgets_widgets_tabs_show_tabs": "Number", - "vis_2_widgets_widgets_tabs_tab_icon": "Icon", - "vis_2_widgets_widgets_tabs_tab_icon_color": "Color", - "vis_2_widgets_widgets_tabs_tab_icon_size": "Icon size", - "vis_2_widgets_widgets_tabs_tab_image": "Image", - "vis_2_widgets_widgets_tabs_tab_overflow_x": "Overflow X", - "vis_2_widgets_widgets_tabs_tab_overflow_y": "Overflow Y", - "vis_2_widgets_widgets_tabs_tab_title": "Title", - "vis_2_widgets_widgets_tabs_tab_view": "View", - "vis_2_widgets_widgets_tabs_variant": "Variant", - "vis_2_widgets_widgets_tabs_variant_centered": "centered", - "vis_2_widgets_widgets_tabs_variant_default": "Default", - "vis_2_widgets_widgets_tabs_variant_full_width": "full width", - "vis_2_widgets_widgets_tabs_vertical": "Vertical", - "welcome_message": "No one project yet exists.", - "word-spacing": "word-spacing", - "basic_sub_view": "Sub-view", - "sub_view_tooltip": "It is used for special purposes, like jaeger-design navigation", - "basic_no_filter_text": "\"No filter\" label", - "basic_no_all_option": "No \"No filter\" option", - "basic_filter_multiple": "Multiple selection", - "basic_filter_type_dropdown": "Dropdown menu", - "basic_filter_type_horizontal_buttons": "Horizontal buttons", - "basic_filter_type_vertical_buttons": "Vertical buttons", - "basic_no_filter": "No filter", - "basic_all_filters": "Add all left", - "Only for desktop": "Only for desktop", - "Include widget?": "Include widget?", - "Do you want to include \"%s\" widget into \"%s\"?": "Do you want to include \"%s\" widget into \"%s\"?", - "Unselect": "Unselect", - "All": "All", - "Load project file...": "Loading project file...", - "Load widgets...": "Loading widgets...", - "Loading objects...": "Loading objects...", - "Following views will be changed": "Following views will be changed", - "Show this attribute by all views": "Show this attribute by all views", - "Menu width": "Menu width", - "Do not ask again": "Do not ask again", - "vis-2-widgets-basic-input_value": "Input value", - "vis-2-widgets-basic-autoSetDelay": "Delay for auto-write", - "vis-2-widgets-basic-noStyle": "No style", - "Clone": "Clone", - "jqui_Write state": "Write state", - "vis_2_widgets_widgets_swipe_label": "Swipe", - "vis_2_widgets_swipe_hide_indication_label": "Hide indication", - "vis_2_widgets_swipe_threshold_label": "Threshold" + "%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": "Add", + "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\n", + "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": "Administrator", + "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": "All", + "Aluminium1": "Aluminium1", + "Aluminium2": "Aluminium2", + "App bar": "Application bar", + "Apply": "Apply", + "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": "Attributes", + "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": "Basic", + "Benutzer": "Benutzer", + "Blue flowers": "Blue flowers", + "Blue marine": "Blue marine", + "Blue marine lines": "Blue marine lines", + "Blueprint grid": "Blueprint grid", + "Bricks": "Bricks", + "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", + "CSS": "CSS", + "CSS Class": "CSS Class", + "CSS Common": "CSS Common", + "CSS Font & Text": "CSS Font & Text", + "CSS background (background-...)": "CSS background (background-...)", + "Cancel": "Cancel", + "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": "Clear", + "Clear filter": "Clear filter", + "Click to close": "Click to close", + "Clone": "Clone", + "Clone widget": "Clone widget", + "Close": "Close", + "Close all": "Collapse all", + "Close all but current view": "Close all but current view", + "Close editor": "Close editor", + "Collapse all": "Collapse all", + "Colorful": "Colorful", + "Column gap": "Column gap", + "Column width": "Column width", + "Comment": "Comment", + "Convert %s to %s": "Convert %s to %s", + "Copied %s": "Copied %s", + "Copied to clipboard": "Copied to clipboard", + "Copy": "Copy", + "Copy noun": "Copy", + "Copy to clipboard": "Copy to clipboard", + "Copy view \"%s\"": "Copy view \"%s\"", + "Create": "Create", + "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": "Cut", + "Dark reconnect screen": "Dark reconnect screen", + "Deactivate binding and use field as standard input": "Deactivate binding and use field as standard input", + "Default": "Default", + "Default view": "Default view", + "Default: auto": "Default: \"auto\"", + "Delete": "Delete", + "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": "Devices", + "Disabled": "Disabled", + "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": "Duplicate", + "Duplicate folder": "Duplicate folder", + "Duplicate profile": "Duplicate the profile", + "Edit": "Edit", + "Edit binding": "Edit binding", + "Edit folder": "Edit folder", + "Edit group": "Edit group", + "Edit profile": "Edit profile", + "Elements": "Elements", + "Enabled": "Enabled", + "Enter": "Enter", + "Enter password": "Enter password", + "Enter the browser instances divided by comma": "Enter the browser instances divided by comma", + "Expand all": "Expand all", + "Explanation": "Explanation", + "Export": "Export", + "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": "Files", + "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": "Fr", + "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": "For all projects", + "Gradient box": "Gradient box", + "Gray 0": "Gray 0", + "Gray 1": "Gray 1", + "Grid": "Grid", + "Group": "Group", + "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": "Height", + "Hide": "Hide", + "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": "High", + "High priority": "High priority", + "Highest eg. Holiday": "Highest eg. Holiday", + "Horizontal": "Horizontal", + "Icon": "Icon", + "If user not in group": "If user not in group", + "Ignore": "Ignore", + "Ignored in edit mode": "Ignored in edit mode", + "Image": "Image", + "Import": "Import", + "Import project": "Import project", + "Import widgets": "Import widgets", + "Include widget?": "Include widget?", + "Initial filter": "Initial filter", + "Instance": "Instance", + "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": "Lock", + "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": "Message", + "Mo": "Mo", + "Modify": "Modify", + "More": "More", + "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": "Name", + "Name is not unique": "Name is not unique", + "Name of copy": "Name of copy", + "Narrow panel": "Narrow panel", + "Navigation": "Navigation", + "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": "No", + "No background": "No background", + "Normal": "Normal", + "OFF": "OFF", + "ON": "ON", + "Objects": "Objects", + "Ok": "Ok", + "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": "Open", + "Open all": "Expand all", + "Open it?": "Open it?", + "Open runtime in new window": "Open runtime in new window", + "Open widgeteria": "Open widgeteria", + "Options": "Options", + "Order": "Order", + "Orientation": "Orientation", + "Palette": "Palette", + "Paste": "Paste", + "Percent": "Percent", + "Permissions": "Permissions", + "Pixel 5 - Landscape": "Pixel 5 - Landscape", + "Pixel 5 - Portrait": "Pixel 5 - Portrait", + "Priority": "Priority", + "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 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": "Projects", + "Radial blue": "Radial blue", + "Read": "Read", + "Read = Runtime access": "Read = Runtime access", + "Read about currentColor in SVG": "Read about currentColor in SVG", + "Received user command: %s": "Received user command: %s", + "Reconnect interval": "Reconnect interval", + "Redo": "Redo", + "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": "Reloading", + "Rename": "Rename", + "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": "Resolution", + "Responsive settings": "Responsive settings", + "Row gap": "Row gap", + "Sa": "Sa", + "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": "Save", + "Scripts": "Scripts", + "Search": "Search", + "Select": "Select", + "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": "Settings", + "Should it be moved to new place?": "Should it be moved to new place?", + "Show": "Show", + "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 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": "Style", + "Su": "Su", + "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": "Tabs", + "Temperature": "Temperature", + "Text color": "Text color", + "Text color if selected": "Text color if selected", + "Text edit": "Text edit", + "Th": "Th", + "Theme": "Theme", + "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": "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": "Tu", + "Type": "Type", + "Undo": "Undo", + "Ungroup": "Ungroup", + "Uninstall": "Uninstall", + "Unknown widget type \"%s\"": "Unknown widget type \"%s\"", + "Unlock": "Unlock", + "Unselect": "Unselect", + "Update": "Update", + "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": "Value", + "Vertical": "Vertical", + "View": "View", + "View not defined": "View not defined", + "We": "We", + "Weekend": "Weekend", + "Widget": "Widget", + "Widget CSS": "Widget CSS", + "Widget JS": "Widget JS", + "Widget was deleted in widgeteria": "Widget was deleted in widgeteria", + "Widgets": "Widgets", + "Width": "Width", + "Width x height (px)": "Width x height (px)", + "Write": "Write", + "Write = Edit mode access": "Write = Edit mode access", + "Writer": "Writer", + "Wrong password": "Wrong password", + "Yes": "Yes", + "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": "Widgeteria", + "ace_All": "All", + "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": "Tooltip by false", + "alt_true": "Tooltip by true", + "anonymize": "anonymize", + "apply_to_all": "For all", + "attr_none": "none", + "basic_all_filters": "Add all left", + "basic_arrow": "Arrow", + "basic_borderColor": "Border color", + "basic_borderRadius": "Border radius", + "basic_circle": "Circle", + "basic_custom": "Custom polygon", + "basic_filter_multiple": "Multiple selection", + "basic_filter_type_dropdown": "Dropdown menu", + "basic_filter_type_horizontal_buttons": "Horizontal buttons", + "basic_filter_type_vertical_buttons": "Vertical buttons", + "basic_hexagone": "Hexagone", + "basic_line": "Line", + "basic_no_all_option": "No \"No filter\" option", + "basic_no_filter": "No filter", + "basic_no_filter_text": "\"No filter\" label", + "basic_octagone": "Octagone", + "basic_pentagone": "Pentagone", + "basic_pin": "Pin", + "basic_speech2text_continuous": "continuous", + "basic_speech2text_detected": "Detected", + "basic_speech2text_en_us": "english", + "basic_speech2text_height": "Height (px)", + "basic_speech2text_image_active": "Active", + "basic_speech2text_image_inactive": "Inactive", + "basic_speech2text_info_allow": "Click the \"Allow\" button above to enable your microphone.", + "basic_speech2text_info_blocked": "Permission to use microphone is blocked. To change, go to chrome://settings/contentExceptions#media-stream", + "basic_speech2text_info_denied": "Permission to use microphone was denied.", + "basic_speech2text_info_no_microphone": "No microphone was found. Ensure that a microphone is installed and that microphone settings are configured correctly.", + "basic_speech2text_info_no_speech": "No speech was detected. You may need to adjust your microphone settings.", + "basic_speech2text_info_speak_now": "Speak now.", + "basic_speech2text_info_start": "Click on the microphone icon and begin speaking.", + "basic_speech2text_info_upgrade": "Web Speech API is not supported by this browser. Upgrade to Chrome version 25 or later.", + "basic_speech2text_key_word_color": "Key word color", + "basic_speech2text_key_word_color_tooltip": "Text color, if key word found", + "basic_speech2text_keywords": "Keywords", + "basic_speech2text_no_image": "No image", + "basic_speech2text_no_results": "No results", + "basic_speech2text_no_text": "No help text", + "basic_speech2text_ru_ru": "russian", + "basic_speech2text_sent": "Sent", + "basic_speech2text_single": "single", + "basic_speech2text_speech_mode": "Speech mode", + "basic_speech2text_start_stop": "start/stop", + "basic_speech2text_started": "Started", + "basic_speech2text_text_sent_color": "Text sent color", + "basic_speech2text_text_sent_color_tooltip": "Text color, when text sent to processing it", + "basic_speech2text_width": "Width (px)", + "basic_square": "Square", + "basic_star": "Star", + "basic_sub_view": "Sub-view", + "basic_triangle": "Triangle", + "block": "block", + "color": "color", + "color_false": "Color by false", + "color_true": "Color by true", + "convert from widgeteria widget": "convert from widgeteria widget", + "copy": "copy", + "css_project": "For this project", + "custom_icons": "Special", + "different": "different", + "display": "display", + "finish searching": "searching finished", + "flex": "flex", + "flexible": "flexible", + "folder": "Folder", + "font-family": "font-family", + "font-size": "font-size", + "font-style": "font-style", + "font-variant": "font-variant", + "font-weight": "font-weight", + "group": "Group", + "group_attrName": "Name", + "group_attrType": "Type", + "group_fields": "Attributes", + "group_help": "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.", + "group_icon_false": "Icon by false", + "group_icon_true": "Icon by true", + "group_size_hint": "You can change group size, by selecting it in the drop down widget selector or by clicking on this text", + "group_text": "Text", + "help_css_global": "These CSS are applyed to all projects", + "help_css_project": "These CSS are applied only to this project", + "hide": "hide", + "hide code": "hide code", + "horizontal": "horizontal", + "hr": "hr", + "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": "Icon size in pixels", + "icon_upload_hint": "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.", + "imageHeight_false": "Image height", + "imageHeight_true": "Image height", + "invert_icon_false": "Invert icon", + "invert_icon_true": "Invert icon", + "jqui_Add new value": "Add new value", + "jqui_Are you sure?": "Are you sure?", + "jqui_Bulk edit": "Bulk edit", + "jqui_Close": "Close", + "jqui_Example": "Example", + "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": "Percents", + "jqui_Replace to": "Replace with", + "jqui_Select file": "Select image", + "jqui_Write state": "Write state", + "jqui_active_color": "Active color", + "jqui_ampm": "Am/Pm", + "jqui_asDate": "As date", + "jqui_asFullDate": "Usage of full parseable date", + "jqui_as_string": "As string", + "jqui_auto": "auto", + "jqui_binary_control": "Binary control", + "jqui_button_binary_control_note": "Deprecated. Use \"Binary control\" widget. Keeped just for compatibility with vis.1", + "jqui_button_color": "Button color", + "jqui_button_dialog_close": "Dialog close button", + "jqui_button_input_note": "Deprecated. Use \"Input\" widget. Keeped just for compatibility with vis.1", + "jqui_button_link": "Jump to URL", + "jqui_button_link_blank": "Jump to URL (In new Window)", + "jqui_button_link_blank_note": "Deprecated. Use first widget with \"Open in new window\" option. Keeped just for compatibility with vis.1", + "jqui_button_nav_blank_note": "Deprecated. Use first widget with \"Go to view\" option. Keeped just for compatibility with vis.1", + "jqui_button_text": "Button text", + "jqui_buttontext_view": "Use view name as title", + "jqui_clearable": "Clearable", + "jqui_color": "Color", + "jqui_container_button_dialog": "Button=>Page dialog", + "jqui_container_dialog": "Container dialog", + "jqui_container_icon_dialog": "Icon=>Page dialog", + "jqui_dialog_name": "Dialog name", + "jqui_dialog_set_id_tooltip": "Set state by dialog open", + "jqui_disableFuture": "Disable future", + "jqui_disablePast": "Disable past", + "jqui_displayWeekNumber": "Display week number", + "jqui_equal_text_length": "Equal text lengths", + "jqui_equal_text_length_tooltip": "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.", + "jqui_external_dialog": "External dialog", + "jqui_external_dialog_tooltip": "This dialog is not visible on page, but it can be opened by external command \"dialogOpen\" with dialog name or widget ID as parameter.", + "jqui_false": "False", + "jqui_from_oid": "From other object", + "jqui_from_value": "From static value", + "jqui_generate": "Generate", + "jqui_group_value": "Value", + "jqui_hide_close_button": "Hide close button", + "jqui_href_tooltip": "This URL will be called in browser", + "jqui_html": "HTML", + "jqui_html_dialog": "HTML Dialog", + "jqui_html_external_dialog": "External dialog", + "jqui_html_false": "HTML by false", + "jqui_html_tooltip": "HTML is only configurable if text and icon are empty", + "jqui_html_true": "HTML by true", + "jqui_icon": "Icon", + "jqui_icon_active": "Active icon", + "jqui_icon_dialog": "Icon Dialog", + "jqui_icon_http_get": "Call URL in backend", + "jqui_icon_increment": "Increment with Icon", + "jqui_icon_link": "Jump to URL (with icon)", + "jqui_icon_max": "Icon for maximum", + "jqui_icon_state_bool": "Boolean icon button", + "jqui_icon_state_push_button": "Push button", + "jqui_icon_toggle": "Toggle button with icon", + "jqui_image": "Image", + "jqui_image_active": "Active image", + "jqui_image_height": "Image height", + "jqui_image_max": "Image for maximum", + "jqui_increment_decrement": "Increment/Decrement", + "jqui_input": "Input", + "jqui_input_date": "Input of date", + "jqui_input_time": "Input of time", + "jqui_input_with_button": "Input with button", + "jqui_invert_icon": "Invert icon", + "jqui_inverted": "Inverted", + "jqui_jquery_style": "jQuery Style", + "jqui_max": "Maximum value", + "jqui_min": "Minimal value", + "jqui_name": "Title", + "jqui_nav_view": "Go to view", + "jqui_navigation_button": "Navigation Button", + "jqui_navigation_icon": "Navigation icon", + "jqui_navigation_password": "Navigation with password", + "jqui_not_equal_length": "Not equal width", + "jqui_off": "Off", + "jqui_oid_working": "Working ID", + "jqui_on": "On", + "jqui_only_icon": "Only icon", + "jqui_open": "As list", + "jqui_orientation": "Orientation", + "jqui_password": "Password", + "jqui_password_tooltip": "User must enter password to open dialog, go to page or URL", + "jqui_push_mode": "Push mode", + "jqui_push_mode_tooltip": "By pressing the button, “true” will be written and when you release the button, will be written “false”.", + "jqui_radio_buttons_on_off": "Radio buttons (on/off)", + "jqui_radio_list": "Radio list with values", + "jqui_radio_steps": "Radio button (steps)", + "jqui_range": "range", + "jqui_read_only": "Read only", + "jqui_repeat_delay": "Repeat delay", + "jqui_repeat_interval": "Repeat interval", + "jqui_select_all_on_focus": "Select all on focus", + "jqui_select_all_on_focus_tooltip": "On focus all text will be selected, so it can be fast deleted or changed without pressing backspace button", + "jqui_select_list": "Select from list", + "jqui_set_label": "Styled", + "jqui_set_timeout": "Write timeout", + "jqui_single": "single", + "jqui_slider": "Slider", + "jqui_slider_note": "Deprecated. Use slider widget with orientation set to vertical. Keeped just for compatibility with vis.1", + "jqui_slider_vertical": "Vertical slider", + "jqui_state_note": "Deprecated. Use \"States control\" widget with \"increment/decrement\" option. Keeped just for compatibility with vis.1", + "jqui_states_control": "States control", + "jqui_stepMinute": "Step minute", + "jqui_test": "Test value", + "jqui_text": "Text", + "jqui_text_active": "Active text", + "jqui_text_max": "Text for maximum", + "jqui_toggle": "Toggle", + "jqui_tooltip": "Tooltip", + "jqui_true": "True", + "jqui_type": "Type", + "jqui_unit": "Unit", + "jqui_url_group": "Call URL by click", + "jqui_url_in_background": "URL in Backend", + "jqui_url_in_browser": "URL in Browser", + "jqui_url_tooltip": "This URL will be called in background by ioBroker engine", + "jqui_value": "Value", + "jqui_value_label_display": "Display label", + "jqui_variant": "Variant", + "jqui_view_group": "Navigation view", + "jqui_wideFormat": "Wide format", + "jqui_widgetTitle": "Title", + "jqui_with_enter_button": "With enter button", + "jqui_write_state_note": "Deprecated. Use \"Wirte state\" widget with \"increment/decrement\" option. Keeped just for compatibility with vis.1", + "jqui_write_value": "Write value", + "letter-spacing": "letter-spacing", + "line-height": "line-height", + "material_icons_baseline": "Filled", + "material_icons_knx-uf": "knx-uf", + "material_icons_outline": "Outlined", + "material_icons_result": "%s matching results", + "material_icons_round": "Round", + "material_icons_sharp": "Sharp", + "material_icons_twotone": "Two-tone", + "material_icons_upload": "Upload", + "multi-views": "Show in Views", + "never": "never", + "no_reload": "no reload", + "none": "none", + "normal": "normal", + "not defined": "not defined", + "not-specified": "not defined", + "optional": "optional", + "order_help": "You can drag and drop any item or click on the item with which the selected widget will be swapped", + "orientation": "Orientation", + "profile": "Profile", + "qui_Bool SVG": "Boolean SVG", + "reload": "reload", + "search text": "Search text", + "set_basic": "basic", + "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-0": "Text [0]", + "signals-text-1": "Text [1]", + "signals-text-2": "Text [2]", + "sub_view_tooltip": "It is used for special purposes, like jaeger-design navigation", + "text-shadow": "text-shadow", + "text_false": "Text by false", + "text_true": "Text by true", + "to version": "to version", + "value_string": "String", + "version": "version", + "vertical": "vertical", + "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": "Resizable", + "vis_2_widgets_basic_cannot_recursive": "Cannot use recursive views", + "vis_2_widgets_basic_contains_view": "Use view", + "vis_2_widgets_basic_view_in_widget": "View in widget", + "vis_2_widgets_basic_view_not_defined": "View not defined", + "vis_2_widgets_swipe_hide_indication_label": "Hide indication", + "vis_2_widgets_swipe_threshold_label": "Threshold", + "vis_2_widgets_widgets_swipe_label": "Swipe", + "vis_2_widgets_widgets_tabs_color": "Color", + "vis_2_widgets_widgets_tabs_group_tab": "Tab", + "vis_2_widgets_widgets_tabs_label": "Tabs", + "vis_2_widgets_widgets_tabs_show_tabs": "Number", + "vis_2_widgets_widgets_tabs_tab_icon": "Icon", + "vis_2_widgets_widgets_tabs_tab_icon_color": "Color", + "vis_2_widgets_widgets_tabs_tab_icon_size": "Icon size", + "vis_2_widgets_widgets_tabs_tab_image": "Image", + "vis_2_widgets_widgets_tabs_tab_overflow_x": "Overflow X", + "vis_2_widgets_widgets_tabs_tab_overflow_y": "Overflow Y", + "vis_2_widgets_widgets_tabs_tab_title": "Title", + "vis_2_widgets_widgets_tabs_tab_view": "View", + "vis_2_widgets_widgets_tabs_variant": "Variant", + "vis_2_widgets_widgets_tabs_variant_centered": "centered", + "vis_2_widgets_widgets_tabs_variant_default": "Default", + "vis_2_widgets_widgets_tabs_variant_full_width": "full width", + "vis_2_widgets_widgets_tabs_vertical": "Vertical", + "welcome_message": "No one project yet exists.", + "word-spacing": "word-spacing" } \ No newline at end of file diff --git a/packages/iobroker.vis-2/src/src/i18n/es.json b/packages/iobroker.vis-2/src/src/i18n/es.json index c73f0412..0f56bf4a 100644 --- a/packages/iobroker.vis-2/src/src/i18n/es.json +++ b/packages/iobroker.vis-2/src/src/i18n/es.json @@ -1,753 +1,755 @@ { - "%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": "Agregar", - "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\n", - "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": "Administrador", - "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.", - "Aluminium1": "Aluminio1", - "Aluminium2": "Aluminio2", - "App bar": "barra de aplicaciones", - "Apply": "Aplicar", - "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": "Atributos", - "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": "Básico", - "Benutzer": "Benutzer", - "Blue flowers": "Flores azules", - "Blue marine": "Azul marino", - "Blue marine lines": "Líneas marinas azules", - "Blueprint grid": "Rejilla de planos", - "Bricks": "Ladrillos", - "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", - "CSS": "CSS", - "CSS Class": "Clase CSS", - "CSS Common": "CSS común", - "CSS Font & Text": "CSS Fuente y texto", - "CSS background (background-...)": "CSS Fondo (background-...)", - "Cancel": "Cancelar", - "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": "Claro", - "Clear filter": "Filtro claro", - "Click to close": "Haga clic para cerrar", - "Clone widget": "Widget de clonación", - "Close": "Cerca", - "Close all": "Desplegar todo", - "Close all but current view": "Cerrar todo menos la vista actual", - "Close editor": "Cerrar editor", - "Collapse all": "Desplegar todo", - "Colorful": "Vistoso", - "Column gap": "Espacio entre columnas", - "Column width": "Ancho de columna", - "Comment": "Comentario", - "Convert %s to %s": "Convertir %s a %s", - "Copied %s": "%s copiado", - "Copied to clipboard": "Copiado al portapapeles", - "Copy": "Dupdo", - "Copy noun": "Copiar", - "Copy to clipboard": "Copiar al portapapeles", - "Copy view \"%s\"": "Copiar vista \"%s\"", - "Create": "Crear", - "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": "Corte", - "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": "Defecto", - "Default view": "Vista predeterminada", - "Default: auto": "Predeterminado: \"auto\"", - "Delete": "Borrar", - "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": "Dispositivos", - "Disabled": "Discapacitado", - "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\"?", - "Drag me": "Arrástrame", - "Drop the files here ...": "Suelta los archivos aquí...", - "Duplicate": "Duplicar", - "Duplicate folder": "Duplica la carpeta", - "Duplicate profile": "Duplica el perfil", - "Edit": "Editar", - "Edit binding": "Editar enlace", - "Edit folder": "Editar carpeta", - "Edit group": "Editar grupo", - "Edit profile": "Editar perfil", - "Elements": "Elementos", - "Enabled": "Activado", - "Enter": "Ingresar", - "Enter password": "Introducir la contraseña", - "Expand all": "Expandir todo", - "Explanation": "Explicación", - "Export": "Exportar", - "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": "Archivos", - "Filter widgets": "Filtrar widgets", - "Fm dark background": "fondo oscuro fm", - "Fm light background": "fondo claro fm", - "For widgets with relative position": "Para widgets con posición relativa", - "Fr": "Fr", - "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": "Para todos los proyectos", - "Gradient box": "cuadro de degradado", - "Gray 0": "gris 0", - "Gray 1": "gris 1", - "Grid": "Cuadrícula", - "Group": "Grupo", - "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": "Altura", - "Hide": "Ocultar", - "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": "Elevado", - "High priority": "Alta prioridad", - "Highest eg. Holiday": "Más alto, por ejemplo. Fiesta", - "Horizontal": "Horizontal", - "Icon": "Icono", - "If user not in group": "Si el usuario no está en el grupo", - "Ignore": "Ignorar", - "Ignored in edit mode": "Ignorado en el modo de edición", - "Image": "Imagen", - "Import": "Importar", - "Import project": "Importar proyecto", - "Import widgets": "Importar widgets", - "Initial filter": "Filtro inicial", - "Instance": "Instancia", - "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 screen": "Pantalla límite", - "Lined paper": "Papel rayado", - "Lock": "Cerrar", - "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ú", - "Message": "Mensaje", - "Mo": "Mes", - "Modify": "Modificar", - "More": "Más", - "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": "Nombre", - "Name is not unique": "El nombre no es único", - "Name of copy": "Nombre de la copia", - "Narrow panel": "panel estrecho", - "Navigation": "Navegación", - "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": "No", - "No background": "sin fondo", - "Normal": "Normal", - "OFF": "OFF", - "ON": "SOBRE", - "Objects": "Objetos", - "Ok": "OK", - "On/Off": "Encendido apagado", - "One parameter": "Un parámetro", - "Only for groups": "Solo para grupos", - "Only the admin user can change permissions": "Sólo el usuario administrador puede cambiar los permisos", - "Open": "Abierto", - "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": "Opciones", - "Order": "Orden", - "Orientation": "Orientación", - "Palette": "Paleta", - "Paste": "Pegar", - "Percent": "Por ciento", - "Permissions": "Permisos", - "Pixel 5 - Landscape": "Píxel 5 - Paisaje", - "Pixel 5 - Portrait": "Píxel 5 - Retrato", - "Priority": "Prioridad", - "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 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": "Proyectos", - "Radial blue": "azul radial", - "Read": "Leer", - "Read = Runtime access": "Lectura = acceso al tiempo de ejecución", - "Read about currentColor in SVG": "Lea sobre currentColor en SVG", - "Received user command: %s": "Comando de usuario recibido: %s", - "Reconnect interval": "Intervalo de reconexión", - "Redo": "Rehacer", - "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": "recargando", - "Rename": "Rebautizar", - "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": "Resolución", - "Responsive settings": "Configuraciones receptivas", - "Row gap": "Espacio entre filas", - "Sa": "Sa", - "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": "Ahorrar", - "Scripts": "Guiones", - "Search": "Buscar", - "Select": "Seleccione", - "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": "Ajustes", - "Should it be moved to new place?": "¿Debería trasladarse a un nuevo lugar?", - "Show": "Espectáculo", - "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 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": "Estilo", - "Su": "Su", - "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": "Pestañas", - "Temperature": "Temperatura", - "Text color": "Color de texto", - "Text color if selected": "Color del texto si se selecciona", - "Text edit": "Edición de texto", - "Th": "Th", - "Theme": "Tema", - "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": "Título", - "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": "Tu", - "Type": "Escribe", - "Undo": "Deshacer", - "Ungroup": "Desagrupar", - "Uninstall": "Desinstalar", - "Unknown widget type \"%s\"": "Tipo de widget desconocido \"%s\"", - "Unlock": "desbloquear", - "Update": "Actualizar", - "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": "Valor", - "Vertical": "Vertical", - "View": "Vista", - "View not defined": "Vista no definida", - "We": "Mi", - "Weekend": "Fin de semana", - "Widget": "Widget", - "Widget CSS": "Widget CSS", - "Widget JS": "Widget JS", - "Widget was deleted in widgeteria": "El widget fue eliminado en widgeteria", - "Widgets": "Widgets", - "Width": "Ancho", - "Width x height (px)": "Ancho x alto (px)", - "Write": "Escribir", - "Write = Edit mode access": "Escritura = acceso al modo de edición", - "Writer": "Escritor", - "Wrong password": "Contraseña incorrecta", - "Yes": "Sí", - "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": "wigeteria", - "ace_All": "Todo", - "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": "Información sobre herramientas por falso", - "alt_true": "Información sobre herramientas por verdadero", - "anonymize": "anonimizar", - "apply_to_all": "Para todos", - "attr_none": "none", - "basic_arrow": "Flecha", - "basic_borderColor": "Color del borde", - "basic_borderRadius": "Radio del borde", - "basic_circle": "Círculo", - "basic_custom": "polígono personalizado", - "basic_hexagone": "hexágono", - "basic_line": "Línea", - "basic_octagone": "octágono", - "basic_pentagone": "Pentágono", - "basic_pin": "Alfiler", - "basic_speech2text_continuous": "continuo", - "basic_speech2text_detected": "Detectado", - "basic_speech2text_en_us": "inglés", - "basic_speech2text_height": "Altura (píxeles)", - "basic_speech2text_image_active": "Activo", - "basic_speech2text_image_inactive": "Inactivo", - "basic_speech2text_info_allow": "Haga clic en el botón \"Permitir\" de arriba para habilitar su micrófono.", - "basic_speech2text_info_blocked": "El permiso para usar el micrófono está bloqueado. Para cambiar, vaya a chrome://settings/contentExceptions#media-stream", - "basic_speech2text_info_denied": "Se denegó el permiso para utilizar el micrófono.", - "basic_speech2text_info_no_microphone": "No se encontró ningún micrófono. Asegúrate de que haya un micrófono instalado y que la configuración del micrófono esté configurada correctamente.", - "basic_speech2text_info_no_speech": "No se detectó ninguna voz. Es posible que tengas que ajustar la configuración del micrófono.", - "basic_speech2text_info_speak_now": "Habla ahora.", - "basic_speech2text_info_start": "Haga clic en el icono del micrófono y comience a hablar.", - "basic_speech2text_info_upgrade": "Este navegador no admite Web Speech API. Actualice a Chrome versión 25 o posterior.", - "basic_speech2text_key_word_color": "Color de la palabra clave", - "basic_speech2text_key_word_color_tooltip": "Color del texto, si se encuentra la palabra clave", - "basic_speech2text_keywords": "Palabras clave", - "basic_speech2text_no_image": "Sin imágen", - "basic_speech2text_no_results": "No hay resultados", - "basic_speech2text_no_text": "No hay texto de ayuda", - "basic_speech2text_ru_ru": "ruso", - "basic_speech2text_sent": "Enviado", - "basic_speech2text_single": "soltero", - "basic_speech2text_speech_mode": "Modo de voz", - "basic_speech2text_start_stop": "iniciar/detener", - "basic_speech2text_started": "Comenzó", - "basic_speech2text_text_sent_color": "Color del texto enviado", - "basic_speech2text_text_sent_color_tooltip": "Color del texto, cuando el texto se envía para procesarlo.", - "basic_speech2text_width": "Ancho (px)", - "basic_square": "Cuadrado", - "basic_star": "Estrella", - "basic_triangle": "Triángulo", - "block": "bloquear", - "color": "color", - "color_false": "Color por falso", - "color_true": "Color por verdadero", - "convert from widgeteria widget": "convertir de widget de widgeteria", - "copy": "copia", - "css_project": "Para este proyecto", - "custom_icons": "Especial", - "different": "diferente", - "display": "monitor", - "finish searching": "búsqueda terminada", - "flex": "flexionar", - "flexible": "flexible", - "folder": "Carpeta", - "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": "Grupo", - "group_attrName": "Nombre", - "group_attrType": "Tipo", - "group_fields": "Atributos", - "group_help": "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.", - "group_icon_false": "Icono de falso", - "group_icon_true": "Icono de verdadero", - "group_size_hint": "Puede cambiar el tamaño del grupo, seleccionándolo en el selector desplegable de widgets o haciendo clic en este texto", - "group_text": "Texto", - "help_css_global": "Estos CSS se aplican a todos los proyectos.", - "help_css_project": "Estos CSS se aplican solo a este proyecto", - "hide": "ocultar", - "hide code": "ocultar código", - "horizontal": "horizontal", - "hr": "horas", - "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": "Tamaño del icono en píxeles", - "icon_upload_hint": "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.", - "imageHeight_false": "Altura de imagen", - "imageHeight_true": "Altura de imagen", - "invert_icon_false": "Icono de invertir", - "invert_icon_true": "Icono de invertir", - "jqui_Add new value": "Agregar nuevo valor", - "jqui_Are you sure?": "¿Está seguro?", - "jqui_Bulk edit": "Edición masiva", - "jqui_Close": "Cerca", - "jqui_Example": "Ejemplo", - "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": "Porcentajes", - "jqui_Replace to": "Reemplazar con", - "jqui_Select file": "Seleccionar imagen", - "jqui_active_color": "color activo", - "jqui_ampm": "Am PM", - "jqui_asDate": "como fecha", - "jqui_asFullDate": "Uso de fecha analizable completa", - "jqui_as_string": "Como cuerda", - "jqui_auto": "auto", - "jqui_binary_control": "control binario", - "jqui_button_binary_control_note": "Obsoleto. Utilice el widget \"Control binario\". Mantenido solo por compatibilidad con vis.1", - "jqui_button_color": "Color del boton", - "jqui_button_dialog_close": "Botón de cerrar diálogo", - "jqui_button_input_note": "Obsoleto. Utilice el widget \"Entrada\". Mantenido solo por compatibilidad con vis.1", - "jqui_button_link": "Saltar a URL", - "jqui_button_link_blank": "Saltar a URL (en ventana nueva)", - "jqui_button_link_blank_note": "Obsoleto. Utilice el primer widget con la opción \"Abrir en ventana nueva\". Mantenido solo por compatibilidad con vis.1", - "jqui_button_nav_blank_note": "Obsoleto. Utilice el primer widget con la opción \"Ir a ver\". Mantenido solo por compatibilidad con vis.1", - "jqui_button_text": "Botón de texto", - "jqui_buttontext_view": "Usar el nombre de la vista como título", - "jqui_clearable": "Borrable", - "jqui_color": "Color", - "jqui_container_button_dialog": "Botón=>Diálogo de página", - "jqui_container_dialog": "Diálogo de contenedor", - "jqui_container_icon_dialog": "Icono=>Diálogo de página", - "jqui_dialog_name": "Nombre del cuadro de diálogo", - "jqui_dialog_set_id_tooltip": "Establecer estado por cuadro de diálogo abierto", - "jqui_disableFuture": "Deshabilitar futuro", - "jqui_disablePast": "Desactivar pasado", - "jqui_displayWeekNumber": "Mostrar número de semana", - "jqui_equal_text_length": "Longitudes de texto iguales", - "jqui_equal_text_length_tooltip": "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\".", - "jqui_external_dialog": "Diálogo externo", - "jqui_external_dialog_tooltip": "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.", - "jqui_false": "FALSO", - "jqui_from_oid": "De otro objeto", - "jqui_from_value": "De valor estático", - "jqui_generate": "Generar", - "jqui_group_value": "Valor", - "jqui_hide_close_button": "Ocultar botón de cerrar", - "jqui_href_tooltip": "Esta URL se llamará en el navegador", - "jqui_html": "HTML", - "jqui_html_dialog": "Diálogo HTML", - "jqui_html_external_dialog": "Diálogo externo", - "jqui_html_false": "HTML por falso", - "jqui_html_tooltip": "HTML solo se puede configurar si el texto y el ícono están vacíos", - "jqui_html_true": "HTML por verdadero", - "jqui_icon": "Icono", - "jqui_icon_active": "Icono activo", - "jqui_icon_dialog": "Diálogo de iconos", - "jqui_icon_http_get": "URL de llamada en backend", - "jqui_icon_increment": "Incrementar con icono", - "jqui_icon_link": "Saltar a URL (con icono)", - "jqui_icon_max": "Icono de máximo", - "jqui_icon_state_bool": "Botón de icono booleano", - "jqui_icon_state_push_button": "Presionar el botón", - "jqui_icon_toggle": "Botón de alternar con icono", - "jqui_image": "Imagen", - "jqui_image_active": "Imagen activa", - "jqui_image_height": "Altura de imagen", - "jqui_image_max": "Imagen para máximo", - "jqui_increment_decrement": "Incremento/Decremento", - "jqui_input": "Aporte", - "jqui_input_date": "Entrada de fecha", - "jqui_input_time": "entrada de tiempo", - "jqui_input_with_button": "Entrada con botón", - "jqui_invert_icon": "Icono de invertir", - "jqui_inverted": "invertido", - "jqui_jquery_style": "Estilo jQuery", - "jqui_max": "Valor máximo", - "jqui_min": "Valor mínimo", - "jqui_name": "Título", - "jqui_nav_view": "Ir a ver", - "jqui_navigation_button": "Botón de navegación", - "jqui_navigation_icon": "Icono de navegación", - "jqui_navigation_password": "Navegación con contraseña", - "jqui_not_equal_length": "No igual ancho", - "jqui_off": "Apagado", - "jqui_oid_working": "Identificación de trabajo", - "jqui_on": "Act.", - "jqui_only_icon": "Solo icono", - "jqui_open": "como lista", - "jqui_orientation": "Orientación", - "jqui_password": "Contraseña", - "jqui_password_tooltip": "El usuario debe ingresar la contraseña para abrir el cuadro de diálogo, ir a la página o URL", - "jqui_push_mode": "Modo de empuje", - "jqui_push_mode_tooltip": "Al presionar el botón se escribirá “verdadero” y al soltar el botón se escribirá “falso”.", - "jqui_radio_buttons_on_off": "Botones de radio (encendido/apagado)", - "jqui_radio_list": "Lista de radio con valores.", - "jqui_radio_steps": "Botón de radio (pasos)", - "jqui_range": "rango", - "jqui_read_only": "Solo lectura", - "jqui_repeat_delay": "Retardo de repetición", - "jqui_repeat_interval": "Intervalo de repetición", - "jqui_select_all_on_focus": "Seleccionar todo en foco", - "jqui_select_all_on_focus_tooltip": "Al enfocar, se seleccionará todo el texto, por lo que se puede eliminar o cambiar rápidamente sin presionar el botón de retroceso", - "jqui_select_list": "Seleccionar de la lista", - "jqui_set_label": "con estilo", - "jqui_set_timeout": "Escribir tiempo de espera", - "jqui_single": "soltero", - "jqui_slider": "Control deslizante", - "jqui_slider_note": "Obsoleto. Utilice el widget deslizante con orientación establecida en vertical. Mantenido solo por compatibilidad con vis.1", - "jqui_slider_vertical": "control deslizante vertical", - "jqui_state_note": "Obsoleto. Utilice el widget \"Control de estados\" con la opción \"incrementar/decrementar\". Mantenido solo por compatibilidad con vis.1", - "jqui_states_control": "control de los estados", - "jqui_stepMinute": "Paso minuto", - "jqui_test": "Valor de prueba", - "jqui_text": "Texto", - "jqui_text_active": "Texto activo", - "jqui_text_max": "Texto para máximo", - "jqui_toggle": "Palanca", - "jqui_tooltip": "Información sobre herramientas", - "jqui_true": "Verdadero", - "jqui_type": "Tipo", - "jqui_unit": "Unidad", - "jqui_url_group": "URL de llamada por clic", - "jqui_url_in_background": "URL en back-end", - "jqui_url_in_browser": "URL en el navegador", - "jqui_url_tooltip": "Esta URL será llamada en segundo plano por el motor ioBroker", - "jqui_value": "Valor", - "jqui_value_label_display": "Etiqueta de visualización", - "jqui_variant": "Variante", - "jqui_view_group": "Vista de navegación", - "jqui_wideFormat": "Formato amplio", - "jqui_widgetTitle": "Título", - "jqui_with_enter_button": "Con botón de entrada", - "jqui_write_state_note": "Obsoleto. Utilice el widget \"Estado de escritura\" con la opción \"incrementar/decrementar\". Mantenido solo por compatibilidad con vis.1", - "jqui_write_value": "Escribir valor", - "letter-spacing": "espaciado de letras", - "line-height": "altura de la línea", - "material_icons_baseline": "Lleno", - "material_icons_knx-uf": "knx-uf", - "material_icons_outline": "contorneado", - "material_icons_result": "%s resultados coincidentes", - "material_icons_round": "Redondo", - "material_icons_sharp": "Agudo", - "material_icons_twotone": "Dos tonos", - "material_icons_upload": "Subir", - "multi-views": "Mostrar en Vistas", - "never": "nunca", - "no_reload": "no recarga", - "none": "ninguna", - "normal": "normal", - "not defined": "no definida", - "not-specified": "no definida", - "optional": "Opcional", - "order_help": "Puede arrastrar y soltar cualquier elemento o hacer clic en el elemento con el que se intercambiará el widget seleccionado", - "orientation": "Orientación", - "profile": "Perfil", - "qui_Bool SVG": "SVG booleano", - "reload": "recargar", - "search text": "Buscar texto", - "set_basic": "básico", - "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-0": "Texto [0]", - "signals-text-1": "Texto [1]", - "signals-text-2": "Texto [2]", - "text-shadow": "sombra de texto", - "text_false": "Texto por falso", - "text_true": "Texto por verdadero", - "to version": "a versión", - "value_string": "Cuerda", - "version": "versión", - "vertical": "vertical", - "visResizable": "Redimensionable", - "vis_2_widgets_basic_cannot_recursive": "No se pueden usar vistas recursivas", - "vis_2_widgets_basic_contains_view": "Usar vista", - "vis_2_widgets_basic_view_in_widget": "Ver en widget", - "vis_2_widgets_basic_view_not_defined": "Vista no definida", - "vis_2_widgets_widgets_tabs_color": "Color", - "vis_2_widgets_widgets_tabs_group_tab": "Pestaña", - "vis_2_widgets_widgets_tabs_label": "Pestañas", - "vis_2_widgets_widgets_tabs_show_tabs": "Número", - "vis_2_widgets_widgets_tabs_tab_icon": "Icono", - "vis_2_widgets_widgets_tabs_tab_icon_color": "Color", - "vis_2_widgets_widgets_tabs_tab_icon_size": "Tamaño de ícono", - "vis_2_widgets_widgets_tabs_tab_image": "Imagen", - "vis_2_widgets_widgets_tabs_tab_overflow_x": "Desbordamiento X", - "vis_2_widgets_widgets_tabs_tab_overflow_y": "Desbordamiento Y", - "vis_2_widgets_widgets_tabs_tab_title": "Título", - "vis_2_widgets_widgets_tabs_tab_view": "Vista", - "vis_2_widgets_widgets_tabs_variant": "Variante", - "vis_2_widgets_widgets_tabs_variant_centered": "centrado", - "vis_2_widgets_widgets_tabs_variant_default": "Por defecto", - "vis_2_widgets_widgets_tabs_variant_full_width": "ancho completo", - "vis_2_widgets_widgets_tabs_vertical": "Vertical", - "welcome_message": "Aún no existe ningún proyecto.", - "word-spacing": "espacio entre palabras", - "basic_sub_view": "Subvista", - "sub_view_tooltip": "Se utiliza para fines especiales, como la navegación de diseño jaeger.", - "basic_no_filter_text": "Etiqueta \"Sin filtro\"", - "basic_no_all_option": "No hay opción \"Sin filtro\"", - "basic_filter_multiple": "Selección múltiple", - "basic_filter_type_dropdown": "Menú desplegable", - "basic_filter_type_horizontal_buttons": "Botones horizontales", - "basic_filter_type_vertical_buttons": "Botones verticales", - "basic_no_filter": "Sin filtro", - "basic_all_filters": "Añadir todo lo que queda", - "Only for desktop": "Sólo para escritorio", - "Include widget?": "¿Incluir widget?", - "Do you want to include \"%s\" widget into \"%s\"?": "¿Quieres incluir el widget \"%s\" en \"%s\"?", - "Unselect": "Deseleccionar", - "All": "Todo", - "Load project file...": "Cargando archivo de proyecto...", - "Load widgets...": "Cargando widgets...", - "Loading objects...": "Cargando objetos...", - "Following views will be changed": "Se cambiarán las siguientes vistas", - "Show this attribute by all views": "Mostrar este atributo en todas las vistas.", - "Menu width": "Ancho del menú", - "Do not ask again": "No preguntes de nuevo", - "vis-2-widgets-basic-input_value": "Valor de entrada", - "vis-2-widgets-basic-autoSetDelay": "Retraso para la escritura automática", - "vis-2-widgets-basic-noStyle": "Sin estilo", - "Clone": "Clon", - "jqui_Write state": "Escribir estado", - "vis_2_widgets_widgets_swipe_label": "Swipe", - "vis_2_widgets_swipe_hide_indication_label": "Ocultar indicación", - "vis_2_widgets_swipe_threshold_label": "Límite" + "%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": "Agregar", + "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\n", + "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": "Administrador", + "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": "Todo", + "Aluminium1": "Aluminio1", + "Aluminium2": "Aluminio2", + "App bar": "barra de aplicaciones", + "Apply": "Aplicar", + "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": "Atributos", + "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": "Básico", + "Benutzer": "Benutzer", + "Blue flowers": "Flores azules", + "Blue marine": "Azul marino", + "Blue marine lines": "Líneas marinas azules", + "Blueprint grid": "Rejilla de planos", + "Bricks": "Ladrillos", + "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", + "CSS": "CSS", + "CSS Class": "Clase CSS", + "CSS Common": "CSS común", + "CSS Font & Text": "CSS Fuente y texto", + "CSS background (background-...)": "CSS Fondo (background-...)", + "Cancel": "Cancelar", + "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": "Claro", + "Clear filter": "Filtro claro", + "Click to close": "Haga clic para cerrar", + "Clone": "Clon", + "Clone widget": "Widget de clonación", + "Close": "Cerca", + "Close all": "Desplegar todo", + "Close all but current view": "Cerrar todo menos la vista actual", + "Close editor": "Cerrar editor", + "Collapse all": "Desplegar todo", + "Colorful": "Vistoso", + "Column gap": "Espacio entre columnas", + "Column width": "Ancho de columna", + "Comment": "Comentario", + "Convert %s to %s": "Convertir %s a %s", + "Copied %s": "%s copiado", + "Copied to clipboard": "Copiado al portapapeles", + "Copy": "Dupdo", + "Copy noun": "Copiar", + "Copy to clipboard": "Copiar al portapapeles", + "Copy view \"%s\"": "Copiar vista \"%s\"", + "Create": "Crear", + "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": "Corte", + "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": "Defecto", + "Default view": "Vista predeterminada", + "Default: auto": "Predeterminado: \"auto\"", + "Delete": "Borrar", + "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": "Dispositivos", + "Disabled": "Discapacitado", + "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": "Duplicar", + "Duplicate folder": "Duplica la carpeta", + "Duplicate profile": "Duplica el perfil", + "Edit": "Editar", + "Edit binding": "Editar enlace", + "Edit folder": "Editar carpeta", + "Edit group": "Editar grupo", + "Edit profile": "Editar perfil", + "Elements": "Elementos", + "Enabled": "Activado", + "Enter": "Ingresar", + "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": "Explicación", + "Export": "Exportar", + "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": "Archivos", + "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": "Fr", + "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": "Para todos los proyectos", + "Gradient box": "cuadro de degradado", + "Gray 0": "gris 0", + "Gray 1": "gris 1", + "Grid": "Cuadrícula", + "Group": "Grupo", + "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": "Altura", + "Hide": "Ocultar", + "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": "Elevado", + "High priority": "Alta prioridad", + "Highest eg. Holiday": "Más alto, por ejemplo. Fiesta", + "Horizontal": "Horizontal", + "Icon": "Icono", + "If user not in group": "Si el usuario no está en el grupo", + "Ignore": "Ignorar", + "Ignored in edit mode": "Ignorado en el modo de edición", + "Image": "Imagen", + "Import": "Importar", + "Import project": "Importar proyecto", + "Import widgets": "Importar widgets", + "Include widget?": "¿Incluir widget?", + "Initial filter": "Filtro inicial", + "Instance": "Instancia", + "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": "Cerrar", + "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": "Mensaje", + "Mo": "Mes", + "Modify": "Modificar", + "More": "Más", + "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": "Nombre", + "Name is not unique": "El nombre no es único", + "Name of copy": "Nombre de la copia", + "Narrow panel": "panel estrecho", + "Navigation": "Navegación", + "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": "No", + "No background": "sin fondo", + "Normal": "Normal", + "OFF": "OFF", + "ON": "SOBRE", + "Objects": "Objetos", + "Ok": "OK", + "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": "Abierto", + "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": "Opciones", + "Order": "Orden", + "Orientation": "Orientación", + "Palette": "Paleta", + "Paste": "Pegar", + "Percent": "Por ciento", + "Permissions": "Permisos", + "Pixel 5 - Landscape": "Píxel 5 - Paisaje", + "Pixel 5 - Portrait": "Píxel 5 - Retrato", + "Priority": "Prioridad", + "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 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": "Proyectos", + "Radial blue": "azul radial", + "Read": "Leer", + "Read = Runtime access": "Lectura = acceso al tiempo de ejecución", + "Read about currentColor in SVG": "Lea sobre currentColor en SVG", + "Received user command: %s": "Comando de usuario recibido: %s", + "Reconnect interval": "Intervalo de reconexión", + "Redo": "Rehacer", + "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": "recargando", + "Rename": "Rebautizar", + "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": "Resolución", + "Responsive settings": "Configuraciones receptivas", + "Row gap": "Espacio entre filas", + "Sa": "Sa", + "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": "Ahorrar", + "Scripts": "Guiones", + "Search": "Buscar", + "Select": "Seleccione", + "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": "Ajustes", + "Should it be moved to new place?": "¿Debería trasladarse a un nuevo lugar?", + "Show": "Espectáculo", + "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 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": "Estilo", + "Su": "Su", + "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": "Pestañas", + "Temperature": "Temperatura", + "Text color": "Color de texto", + "Text color if selected": "Color del texto si se selecciona", + "Text edit": "Edición de texto", + "Th": "Th", + "Theme": "Tema", + "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": "Título", + "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": "Tu", + "Type": "Escribe", + "Undo": "Deshacer", + "Ungroup": "Desagrupar", + "Uninstall": "Desinstalar", + "Unknown widget type \"%s\"": "Tipo de widget desconocido \"%s\"", + "Unlock": "desbloquear", + "Unselect": "Deseleccionar", + "Update": "Actualizar", + "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": "Valor", + "Vertical": "Vertical", + "View": "Vista", + "View not defined": "Vista no definida", + "We": "Mi", + "Weekend": "Fin de semana", + "Widget": "Widget", + "Widget CSS": "Widget CSS", + "Widget JS": "Widget JS", + "Widget was deleted in widgeteria": "El widget fue eliminado en widgeteria", + "Widgets": "Widgets", + "Width": "Ancho", + "Width x height (px)": "Ancho x alto (px)", + "Write": "Escribir", + "Write = Edit mode access": "Escritura = acceso al modo de edición", + "Writer": "Escritor", + "Wrong password": "Contraseña incorrecta", + "Yes": "Sí", + "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": "wigeteria", + "ace_All": "Todo", + "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": "Información sobre herramientas por falso", + "alt_true": "Información sobre herramientas por verdadero", + "anonymize": "anonimizar", + "apply_to_all": "Para todos", + "attr_none": "none", + "basic_all_filters": "Añadir todo lo que queda", + "basic_arrow": "Flecha", + "basic_borderColor": "Color del borde", + "basic_borderRadius": "Radio del borde", + "basic_circle": "Círculo", + "basic_custom": "polígono personalizado", + "basic_filter_multiple": "Selección múltiple", + "basic_filter_type_dropdown": "Menú desplegable", + "basic_filter_type_horizontal_buttons": "Botones horizontales", + "basic_filter_type_vertical_buttons": "Botones verticales", + "basic_hexagone": "hexágono", + "basic_line": "Línea", + "basic_no_all_option": "No hay opción \"Sin filtro\"", + "basic_no_filter": "Sin filtro", + "basic_no_filter_text": "Etiqueta \"Sin filtro\"", + "basic_octagone": "octágono", + "basic_pentagone": "Pentágono", + "basic_pin": "Alfiler", + "basic_speech2text_continuous": "continuo", + "basic_speech2text_detected": "Detectado", + "basic_speech2text_en_us": "inglés", + "basic_speech2text_height": "Altura (píxeles)", + "basic_speech2text_image_active": "Activo", + "basic_speech2text_image_inactive": "Inactivo", + "basic_speech2text_info_allow": "Haga clic en el botón \"Permitir\" de arriba para habilitar su micrófono.", + "basic_speech2text_info_blocked": "El permiso para usar el micrófono está bloqueado. Para cambiar, vaya a chrome://settings/contentExceptions#media-stream", + "basic_speech2text_info_denied": "Se denegó el permiso para utilizar el micrófono.", + "basic_speech2text_info_no_microphone": "No se encontró ningún micrófono. Asegúrate de que haya un micrófono instalado y que la configuración del micrófono esté configurada correctamente.", + "basic_speech2text_info_no_speech": "No se detectó ninguna voz. Es posible que tengas que ajustar la configuración del micrófono.", + "basic_speech2text_info_speak_now": "Habla ahora.", + "basic_speech2text_info_start": "Haga clic en el icono del micrófono y comience a hablar.", + "basic_speech2text_info_upgrade": "Este navegador no admite Web Speech API. Actualice a Chrome versión 25 o posterior.", + "basic_speech2text_key_word_color": "Color de la palabra clave", + "basic_speech2text_key_word_color_tooltip": "Color del texto, si se encuentra la palabra clave", + "basic_speech2text_keywords": "Palabras clave", + "basic_speech2text_no_image": "Sin imágen", + "basic_speech2text_no_results": "No hay resultados", + "basic_speech2text_no_text": "No hay texto de ayuda", + "basic_speech2text_ru_ru": "ruso", + "basic_speech2text_sent": "Enviado", + "basic_speech2text_single": "soltero", + "basic_speech2text_speech_mode": "Modo de voz", + "basic_speech2text_start_stop": "iniciar/detener", + "basic_speech2text_started": "Comenzó", + "basic_speech2text_text_sent_color": "Color del texto enviado", + "basic_speech2text_text_sent_color_tooltip": "Color del texto, cuando el texto se envía para procesarlo.", + "basic_speech2text_width": "Ancho (px)", + "basic_square": "Cuadrado", + "basic_star": "Estrella", + "basic_sub_view": "Subvista", + "basic_triangle": "Triángulo", + "block": "bloquear", + "color": "color", + "color_false": "Color por falso", + "color_true": "Color por verdadero", + "convert from widgeteria widget": "convertir de widget de widgeteria", + "copy": "copia", + "css_project": "Para este proyecto", + "custom_icons": "Especial", + "different": "diferente", + "display": "monitor", + "finish searching": "búsqueda terminada", + "flex": "flexionar", + "flexible": "flexible", + "folder": "Carpeta", + "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": "Grupo", + "group_attrName": "Nombre", + "group_attrType": "Tipo", + "group_fields": "Atributos", + "group_help": "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.", + "group_icon_false": "Icono de falso", + "group_icon_true": "Icono de verdadero", + "group_size_hint": "Puede cambiar el tamaño del grupo, seleccionándolo en el selector desplegable de widgets o haciendo clic en este texto", + "group_text": "Texto", + "help_css_global": "Estos CSS se aplican a todos los proyectos.", + "help_css_project": "Estos CSS se aplican solo a este proyecto", + "hide": "ocultar", + "hide code": "ocultar código", + "horizontal": "horizontal", + "hr": "horas", + "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": "Tamaño del icono en píxeles", + "icon_upload_hint": "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.", + "imageHeight_false": "Altura de imagen", + "imageHeight_true": "Altura de imagen", + "invert_icon_false": "Icono de invertir", + "invert_icon_true": "Icono de invertir", + "jqui_Add new value": "Agregar nuevo valor", + "jqui_Are you sure?": "¿Está seguro?", + "jqui_Bulk edit": "Edición masiva", + "jqui_Close": "Cerca", + "jqui_Example": "Ejemplo", + "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": "Porcentajes", + "jqui_Replace to": "Reemplazar con", + "jqui_Select file": "Seleccionar imagen", + "jqui_Write state": "Escribir estado", + "jqui_active_color": "color activo", + "jqui_ampm": "Am PM", + "jqui_asDate": "como fecha", + "jqui_asFullDate": "Uso de fecha analizable completa", + "jqui_as_string": "Como cuerda", + "jqui_auto": "auto", + "jqui_binary_control": "control binario", + "jqui_button_binary_control_note": "Obsoleto. Utilice el widget \"Control binario\". Mantenido solo por compatibilidad con vis.1", + "jqui_button_color": "Color del boton", + "jqui_button_dialog_close": "Botón de cerrar diálogo", + "jqui_button_input_note": "Obsoleto. Utilice el widget \"Entrada\". Mantenido solo por compatibilidad con vis.1", + "jqui_button_link": "Saltar a URL", + "jqui_button_link_blank": "Saltar a URL (en ventana nueva)", + "jqui_button_link_blank_note": "Obsoleto. Utilice el primer widget con la opción \"Abrir en ventana nueva\". Mantenido solo por compatibilidad con vis.1", + "jqui_button_nav_blank_note": "Obsoleto. Utilice el primer widget con la opción \"Ir a ver\". Mantenido solo por compatibilidad con vis.1", + "jqui_button_text": "Botón de texto", + "jqui_buttontext_view": "Usar el nombre de la vista como título", + "jqui_clearable": "Borrable", + "jqui_color": "Color", + "jqui_container_button_dialog": "Botón=>Diálogo de página", + "jqui_container_dialog": "Diálogo de contenedor", + "jqui_container_icon_dialog": "Icono=>Diálogo de página", + "jqui_dialog_name": "Nombre del cuadro de diálogo", + "jqui_dialog_set_id_tooltip": "Establecer estado por cuadro de diálogo abierto", + "jqui_disableFuture": "Deshabilitar futuro", + "jqui_disablePast": "Desactivar pasado", + "jqui_displayWeekNumber": "Mostrar número de semana", + "jqui_equal_text_length": "Longitudes de texto iguales", + "jqui_equal_text_length_tooltip": "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\".", + "jqui_external_dialog": "Diálogo externo", + "jqui_external_dialog_tooltip": "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.", + "jqui_false": "FALSO", + "jqui_from_oid": "De otro objeto", + "jqui_from_value": "De valor estático", + "jqui_generate": "Generar", + "jqui_group_value": "Valor", + "jqui_hide_close_button": "Ocultar botón de cerrar", + "jqui_href_tooltip": "Esta URL se llamará en el navegador", + "jqui_html": "HTML", + "jqui_html_dialog": "Diálogo HTML", + "jqui_html_external_dialog": "Diálogo externo", + "jqui_html_false": "HTML por falso", + "jqui_html_tooltip": "HTML solo se puede configurar si el texto y el ícono están vacíos", + "jqui_html_true": "HTML por verdadero", + "jqui_icon": "Icono", + "jqui_icon_active": "Icono activo", + "jqui_icon_dialog": "Diálogo de iconos", + "jqui_icon_http_get": "URL de llamada en backend", + "jqui_icon_increment": "Incrementar con icono", + "jqui_icon_link": "Saltar a URL (con icono)", + "jqui_icon_max": "Icono de máximo", + "jqui_icon_state_bool": "Botón de icono booleano", + "jqui_icon_state_push_button": "Presionar el botón", + "jqui_icon_toggle": "Botón de alternar con icono", + "jqui_image": "Imagen", + "jqui_image_active": "Imagen activa", + "jqui_image_height": "Altura de imagen", + "jqui_image_max": "Imagen para máximo", + "jqui_increment_decrement": "Incremento/Decremento", + "jqui_input": "Aporte", + "jqui_input_date": "Entrada de fecha", + "jqui_input_time": "entrada de tiempo", + "jqui_input_with_button": "Entrada con botón", + "jqui_invert_icon": "Icono de invertir", + "jqui_inverted": "invertido", + "jqui_jquery_style": "Estilo jQuery", + "jqui_max": "Valor máximo", + "jqui_min": "Valor mínimo", + "jqui_name": "Título", + "jqui_nav_view": "Ir a ver", + "jqui_navigation_button": "Botón de navegación", + "jqui_navigation_icon": "Icono de navegación", + "jqui_navigation_password": "Navegación con contraseña", + "jqui_not_equal_length": "No igual ancho", + "jqui_off": "Apagado", + "jqui_oid_working": "Identificación de trabajo", + "jqui_on": "Act.", + "jqui_only_icon": "Solo icono", + "jqui_open": "como lista", + "jqui_orientation": "Orientación", + "jqui_password": "Contraseña", + "jqui_password_tooltip": "El usuario debe ingresar la contraseña para abrir el cuadro de diálogo, ir a la página o URL", + "jqui_push_mode": "Modo de empuje", + "jqui_push_mode_tooltip": "Al presionar el botón se escribirá “verdadero” y al soltar el botón se escribirá “falso”.", + "jqui_radio_buttons_on_off": "Botones de radio (encendido/apagado)", + "jqui_radio_list": "Lista de radio con valores.", + "jqui_radio_steps": "Botón de radio (pasos)", + "jqui_range": "rango", + "jqui_read_only": "Solo lectura", + "jqui_repeat_delay": "Retardo de repetición", + "jqui_repeat_interval": "Intervalo de repetición", + "jqui_select_all_on_focus": "Seleccionar todo en foco", + "jqui_select_all_on_focus_tooltip": "Al enfocar, se seleccionará todo el texto, por lo que se puede eliminar o cambiar rápidamente sin presionar el botón de retroceso", + "jqui_select_list": "Seleccionar de la lista", + "jqui_set_label": "con estilo", + "jqui_set_timeout": "Escribir tiempo de espera", + "jqui_single": "soltero", + "jqui_slider": "Control deslizante", + "jqui_slider_note": "Obsoleto. Utilice el widget deslizante con orientación establecida en vertical. Mantenido solo por compatibilidad con vis.1", + "jqui_slider_vertical": "control deslizante vertical", + "jqui_state_note": "Obsoleto. Utilice el widget \"Control de estados\" con la opción \"incrementar/decrementar\". Mantenido solo por compatibilidad con vis.1", + "jqui_states_control": "control de los estados", + "jqui_stepMinute": "Paso minuto", + "jqui_test": "Valor de prueba", + "jqui_text": "Texto", + "jqui_text_active": "Texto activo", + "jqui_text_max": "Texto para máximo", + "jqui_toggle": "Palanca", + "jqui_tooltip": "Información sobre herramientas", + "jqui_true": "Verdadero", + "jqui_type": "Tipo", + "jqui_unit": "Unidad", + "jqui_url_group": "URL de llamada por clic", + "jqui_url_in_background": "URL en back-end", + "jqui_url_in_browser": "URL en el navegador", + "jqui_url_tooltip": "Esta URL será llamada en segundo plano por el motor ioBroker", + "jqui_value": "Valor", + "jqui_value_label_display": "Etiqueta de visualización", + "jqui_variant": "Variante", + "jqui_view_group": "Vista de navegación", + "jqui_wideFormat": "Formato amplio", + "jqui_widgetTitle": "Título", + "jqui_with_enter_button": "Con botón de entrada", + "jqui_write_state_note": "Obsoleto. Utilice el widget \"Estado de escritura\" con la opción \"incrementar/decrementar\". Mantenido solo por compatibilidad con vis.1", + "jqui_write_value": "Escribir valor", + "letter-spacing": "espaciado de letras", + "line-height": "altura de la línea", + "material_icons_baseline": "Lleno", + "material_icons_knx-uf": "knx-uf", + "material_icons_outline": "contorneado", + "material_icons_result": "%s resultados coincidentes", + "material_icons_round": "Redondo", + "material_icons_sharp": "Agudo", + "material_icons_twotone": "Dos tonos", + "material_icons_upload": "Subir", + "multi-views": "Mostrar en Vistas", + "never": "nunca", + "no_reload": "no recarga", + "none": "ninguna", + "normal": "normal", + "not defined": "no definida", + "not-specified": "no definida", + "optional": "Opcional", + "order_help": "Puede arrastrar y soltar cualquier elemento o hacer clic en el elemento con el que se intercambiará el widget seleccionado", + "orientation": "Orientación", + "profile": "Perfil", + "qui_Bool SVG": "SVG booleano", + "reload": "recargar", + "search text": "Buscar texto", + "set_basic": "básico", + "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-0": "Texto [0]", + "signals-text-1": "Texto [1]", + "signals-text-2": "Texto [2]", + "sub_view_tooltip": "Se utiliza para fines especiales, como la navegación de diseño jaeger.", + "text-shadow": "sombra de texto", + "text_false": "Texto por falso", + "text_true": "Texto por verdadero", + "to version": "a versión", + "value_string": "Cuerda", + "version": "versión", + "vertical": "vertical", + "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": "Redimensionable", + "vis_2_widgets_basic_cannot_recursive": "No se pueden usar vistas recursivas", + "vis_2_widgets_basic_contains_view": "Usar vista", + "vis_2_widgets_basic_view_in_widget": "Ver en widget", + "vis_2_widgets_basic_view_not_defined": "Vista no definida", + "vis_2_widgets_swipe_hide_indication_label": "Ocultar indicación", + "vis_2_widgets_swipe_threshold_label": "Límite", + "vis_2_widgets_widgets_swipe_label": "Swipe", + "vis_2_widgets_widgets_tabs_color": "Color", + "vis_2_widgets_widgets_tabs_group_tab": "Pestaña", + "vis_2_widgets_widgets_tabs_label": "Pestañas", + "vis_2_widgets_widgets_tabs_show_tabs": "Número", + "vis_2_widgets_widgets_tabs_tab_icon": "Icono", + "vis_2_widgets_widgets_tabs_tab_icon_color": "Color", + "vis_2_widgets_widgets_tabs_tab_icon_size": "Tamaño de ícono", + "vis_2_widgets_widgets_tabs_tab_image": "Imagen", + "vis_2_widgets_widgets_tabs_tab_overflow_x": "Desbordamiento X", + "vis_2_widgets_widgets_tabs_tab_overflow_y": "Desbordamiento Y", + "vis_2_widgets_widgets_tabs_tab_title": "Título", + "vis_2_widgets_widgets_tabs_tab_view": "Vista", + "vis_2_widgets_widgets_tabs_variant": "Variante", + "vis_2_widgets_widgets_tabs_variant_centered": "centrado", + "vis_2_widgets_widgets_tabs_variant_default": "Por defecto", + "vis_2_widgets_widgets_tabs_variant_full_width": "ancho completo", + "vis_2_widgets_widgets_tabs_vertical": "Vertical", + "welcome_message": "Aún no existe ningún proyecto.", + "word-spacing": "espacio entre palabras" } \ No newline at end of file diff --git a/packages/iobroker.vis-2/src/src/i18n/fr.json b/packages/iobroker.vis-2/src/src/i18n/fr.json index 139a5eae..9d4075c8 100644 --- a/packages/iobroker.vis-2/src/src/i18n/fr.json +++ b/packages/iobroker.vis-2/src/src/i18n/fr.json @@ -1,753 +1,755 @@ { - "%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": "Ajouter", - "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\n", - "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": "Administrateur", - "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.", - "Aluminium1": "Aluminium1", - "Aluminium2": "Aluminium2", - "App bar": "Barre d'application", - "Apply": "Appliquer", - "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": "Les attributs", - "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": "De base", - "Benutzer": "Benutzer", - "Blue flowers": "Fleurs bleues", - "Blue marine": "Bleu marine", - "Blue marine lines": "Lignes marines bleues", - "Blueprint grid": "Grille de plan", - "Bricks": "Briques", - "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", - "CSS": "CSS", - "CSS Class": "Classe CSS", - "CSS Common": "CSS commun", - "CSS Font & Text": "CSS Police et texte", - "CSS background (background-...)": "CSS Arrière-plan (background-...)", - "Cancel": "Annuler", - "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": "Dégager", - "Clear filter": "Effacer le filtre", - "Click to close": "Cliquez pour fermer", - "Clone widget": "Cloner le widget", - "Close": "Proche", - "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": "Coloré", - "Column gap": "Écart de colonne", - "Column width": "Largeur de colonne", - "Comment": "Commentaire", - "Convert %s to %s": "Convertir %s en %s", - "Copied %s": "%s copié", - "Copied to clipboard": "Copié dans le presse-papier", - "Copy": "Copie", - "Copy noun": "Copie", - "Copy to clipboard": "Copier dans le presse-papier", - "Copy view \"%s\"": "Copier la vue \"%s\"", - "Create": "Créer", - "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": "Couper", - "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": "Défaut", - "Default view": "Vue par défaut", - "Default: auto": "Par défaut : \"auto\"", - "Delete": "Effacer", - "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": "Dispositifs", - "Disabled": "Désactivée", - "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\" ?", - "Drag me": "Tire moi", - "Drop the files here ...": "Déposez les fichiers ici...", - "Duplicate": "Dupliquer", - "Duplicate folder": "Dupliquer le dossier", - "Duplicate profile": "Dupliquer le profil", - "Edit": "Éditer", - "Edit binding": "Modifier la liaison", - "Edit folder": "Modifier le dossier", - "Edit group": "Modifier le groupe", - "Edit profile": "Editer le profil", - "Elements": "Éléments", - "Enabled": "Activée", - "Enter": "Entrer", - "Enter password": "Entrer le mot de passe", - "Expand all": "Développer tout", - "Explanation": "Explication", - "Export": "Exporter", - "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": "Des dossiers", - "Filter widgets": "Filtrer les widgets", - "Fm dark background": "Fm fond sombre", - "Fm light background": "Fond clair FM", - "For widgets with relative position": "Pour les widgets avec position relative", - "Fr": "Fr", - "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": "Pour tous les projets", - "Gradient box": "Boîte dégradée", - "Gray 0": "Gris 0", - "Gray 1": "Gris 1", - "Grid": "Grille", - "Group": "Groupe", - "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": "Hauteur", - "Hide": "Cacher", - "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": "Haute", - "High priority": "Haute priorité", - "Highest eg. Holiday": "Le plus élevé, par ex. Vacance", - "Horizontal": "Horizontal", - "Icon": "Icône", - "If user not in group": "Si l'utilisateur n'est pas dans le groupe", - "Ignore": "Ignorer", - "Ignored in edit mode": "Ignoré en mode édition", - "Image": "Image", - "Import": "Importer", - "Import project": "Importer un projet", - "Import widgets": "Importer des widgets", - "Initial filter": "Filtre initial", - "Instance": "Exemple", - "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 screen": "Écran de limite", - "Lined paper": "Papier ligné", - "Lock": "Bloquer", - "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", - "Message": "Message", - "Mo": "Mo", - "Modify": "Modifier", - "More": "Suite", - "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": "Nom", - "Name is not unique": "Le nom n'est pas unique", - "Name of copy": "Nom de la copie", - "Narrow panel": "Panneau étroit", - "Navigation": "La navigation", - "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": "Non", - "No background": "Pas de fond", - "Normal": "Normal", - "OFF": "OFF", - "ON": "ON", - "Objects": "Objets", - "Ok": "Ok", - "On/Off": "Allumé éteint", - "One parameter": "Un paramètre", - "Only for groups": "Uniquement pour les groupes", - "Only the admin user can change permissions": "Seul l'utilisateur administrateur peut modifier les autorisations", - "Open": "Ouvrir", - "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": "Choix", - "Order": "Commande", - "Orientation": "Orientation", - "Palette": "Palette", - "Paste": "Pâte", - "Percent": "Pour cent", - "Permissions": "Autorisations", - "Pixel 5 - Landscape": "Pixel 5 - Paysage", - "Pixel 5 - Portrait": "Pixel 5 - Portrait", - "Priority": "Priorité", - "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 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": "Projets", - "Radial blue": "Bleu radial", - "Read": "Lire", - "Read = Runtime access": "Lecture = accès à l'exécution", - "Read about currentColor in SVG": "En savoir plus sur currentColor en SVG", - "Received user command: %s": "Commande utilisateur reçue : %s", - "Reconnect interval": "Intervalle de reconnexion", - "Redo": "Refaire", - "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": "Rechargement", - "Rename": "Renommer", - "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": "Résolution", - "Responsive settings": "Paramètres réactifs", - "Row gap": "Écart de ligne", - "Sa": "Sa", - "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": "sauvegarder", - "Scripts": "Scénarios", - "Search": "Chercher", - "Select": "Sélectionner", - "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": "Réglages", - "Should it be moved to new place?": "Doit-il être déplacé vers un nouvel endroit ?", - "Show": "Spectacle", - "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 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": "Style", - "Su": "Su", - "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": "Onglets", - "Temperature": "Température", - "Text color": "Couleur du texte", - "Text color if selected": "Couleur du texte si sélectionné", - "Text edit": "Modification de texte", - "Th": "Th", - "Theme": "Thème", - "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": "Titre", - "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": "Ma", - "Type": "Taper", - "Undo": "annuler", - "Ungroup": "Dissocier", - "Uninstall": "Désinstaller", - "Unknown widget type \"%s\"": "Type de widget inconnu \"%s\"", - "Unlock": "Ouvrir", - "Update": "Mettre à jour", - "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": "Valeur", - "Vertical": "Verticale", - "View": "Voir", - "View not defined": "Vue non définie", - "We": "Mi", - "Weekend": "Fin de semaine", - "Widget": "Widget", - "Widget CSS": "CSS des widgets", - "Widget JS": "WidgetJS", - "Widget was deleted in widgeteria": "Le widget a été supprimé dans la widgeteria", - "Widgets": "Widget", - "Width": "Largeur", - "Width x height (px)": "Largeur x hauteur (px)", - "Write": "Écrire", - "Write = Edit mode access": "Ecrire = Accès au mode édition", - "Writer": "Écrivain", - "Wrong password": "Mauvais mot de passe", - "Yes": "Oui", - "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": "Widgeteria", - "ace_All": "Tous", - "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": "Info-bulle par false", - "alt_true": "Info-bulle par true", - "anonymize": "anonymiser", - "apply_to_all": "Pour tous", - "attr_none": "inherit", - "basic_arrow": "Flèche", - "basic_borderColor": "Couleur de la bordure", - "basic_borderRadius": "Rayon de la frontière", - "basic_circle": "Cercle", - "basic_custom": "Polygone personnalisé", - "basic_hexagone": "Hexagone", - "basic_line": "Doubler", - "basic_octagone": "Octogone", - "basic_pentagone": "Pentagone", - "basic_pin": "Épingle", - "basic_speech2text_continuous": "continu", - "basic_speech2text_detected": "Détecté", - "basic_speech2text_en_us": "Anglais", - "basic_speech2text_height": "Hauteur (px)", - "basic_speech2text_image_active": "Actif", - "basic_speech2text_image_inactive": "Inactif", - "basic_speech2text_info_allow": "Cliquez sur le bouton \"Autoriser\" ci-dessus pour activer votre microphone.", - "basic_speech2text_info_blocked": "L'autorisation d'utiliser le microphone est bloquée. Pour modifier, accédez à chrome://settings/contentExceptions#media-stream", - "basic_speech2text_info_denied": "L'autorisation d'utiliser le microphone a été refusée.", - "basic_speech2text_info_no_microphone": "Aucun microphone n'a été trouvé. Assurez-vous qu'un microphone est installé et que les paramètres du microphone sont correctement configurés.", - "basic_speech2text_info_no_speech": "Aucune parole n'a été détectée. Vous devrez peut-être ajuster vos paramètres du microphone.", - "basic_speech2text_info_speak_now": "Parlez maintenant.", - "basic_speech2text_info_start": "Cliquez sur l'icône du microphone et commencez à parler.", - "basic_speech2text_info_upgrade": "L'API Web Speech n'est pas prise en charge par ce navigateur. Passez à Chrome version 25 ou ultérieure.", - "basic_speech2text_key_word_color": "Couleur du mot clé", - "basic_speech2text_key_word_color_tooltip": "Couleur du texte, si mot clé trouvé", - "basic_speech2text_keywords": "Mots clés", - "basic_speech2text_no_image": "Pas d'image", - "basic_speech2text_no_results": "Aucun résultat", - "basic_speech2text_no_text": "Aucun texte d'aide", - "basic_speech2text_ru_ru": "russe", - "basic_speech2text_sent": "Envoyé", - "basic_speech2text_single": "célibataire", - "basic_speech2text_speech_mode": "Mode parole", - "basic_speech2text_start_stop": "commencer arrêter", - "basic_speech2text_started": "Commencé", - "basic_speech2text_text_sent_color": "Couleur du texte envoyé", - "basic_speech2text_text_sent_color_tooltip": "Couleur du texte, lorsque le texte est envoyé pour le traiter", - "basic_speech2text_width": "Largeur (px)", - "basic_square": "Carré", - "basic_star": "Étoile", - "basic_triangle": "Triangle", - "block": "bloquer", - "color": "Couleur", - "color_false": "Couleur par faux", - "color_true": "Couleur par vrai", - "convert from widgeteria widget": "convertir à partir du widget widgeteria", - "copy": "copie", - "css_project": "Pour ce projet", - "custom_icons": "Spécial", - "different": "différent", - "display": "affichage", - "finish searching": "recherche terminée", - "flex": "fléchir", - "flexible": "flexible", - "folder": "Dossier", - "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": "Groupe", - "group_attrName": "Nom", - "group_attrType": "Taper", - "group_fields": "Les attributs", - "group_help": "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.", - "group_icon_false": "Icône par false", - "group_icon_true": "Icône par vrai", - "group_size_hint": "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", - "group_text": "Texte", - "help_css_global": "Ces CSS sont appliquées à tous les projets", - "help_css_project": "Ces CSS ne s'appliquent qu'à ce projet", - "hide": "cacher", - "hide code": "masquer le code", - "horizontal": "horizontal", - "hr": "les heures", - "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": "Taille de l'icône en pixels", - "icon_upload_hint": "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.", - "imageHeight_false": "Hauteur de l'image", - "imageHeight_true": "Hauteur de l'image", - "invert_icon_false": "Icône Inverser", - "invert_icon_true": "Icône Inverser", - "jqui_Add new value": "Ajouter une nouvelle valeur", - "jqui_Are you sure?": "Es-tu sûr?", - "jqui_Bulk edit": "Modification groupée", - "jqui_Close": "Fermer", - "jqui_Example": "Exemple", - "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": "Pourcentages", - "jqui_Replace to": "Remplacer par", - "jqui_Select file": "Sélectionner une image", - "jqui_active_color": "Couleur active", - "jqui_ampm": "Matin après-midi", - "jqui_asDate": "Comme date", - "jqui_asFullDate": "Utilisation de la date analysable complète", - "jqui_as_string": "En tant que chaîne", - "jqui_auto": "auto", - "jqui_binary_control": "Contrôle binaire", - "jqui_button_binary_control_note": "Obsolète. Utilisez le widget \"Contrôle binaire\". Conservé uniquement pour des raisons de compatibilité avec vis.1", - "jqui_button_color": "Couleur du bouton", - "jqui_button_dialog_close": "Bouton de fermeture de la boîte de dialogue", - "jqui_button_input_note": "Obsolète. Utilisez le widget \"Entrée\". Conservé uniquement pour des raisons de compatibilité avec vis.1", - "jqui_button_link": "Aller à l'URL", - "jqui_button_link_blank": "Aller à l'URL (dans une nouvelle fenêtre)", - "jqui_button_link_blank_note": "Obsolète. Utilisez le premier widget avec l'option \"Ouvrir dans une nouvelle fenêtre\". Conservé uniquement pour la compatibilité avec vis.1", - "jqui_button_nav_blank_note": "Obsolète. Utilisez le premier widget avec l'option \"Aller à la vue\". Conservé uniquement pour des raisons de compatibilité avec vis.1", - "jqui_button_text": "Texte du bouton", - "jqui_buttontext_view": "Utiliser le nom de la vue comme titre", - "jqui_clearable": "Effacable", - "jqui_color": "Couleur", - "jqui_container_button_dialog": "Bouton => Boîte de dialogue Page", - "jqui_container_dialog": "Boîte de dialogue Conteneur", - "jqui_container_icon_dialog": "Icône => Boîte de dialogue Page", - "jqui_dialog_name": "Nom de la boîte de dialogue", - "jqui_dialog_set_id_tooltip": "Définir l'état en ouvrant la boîte de dialogue", - "jqui_disableFuture": "Désactiver le futur", - "jqui_disablePast": "Désactiver le passé", - "jqui_displayWeekNumber": "Afficher le numéro de la semaine", - "jqui_equal_text_length": "Longueurs de texte égales", - "jqui_equal_text_length_tooltip": "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\".", - "jqui_external_dialog": "Boîte de dialogue externe", - "jqui_external_dialog_tooltip": "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.", - "jqui_false": "FAUX", - "jqui_from_oid": "Depuis un autre objet", - "jqui_from_value": "À partir d'une valeur statique", - "jqui_generate": "Générer", - "jqui_group_value": "Valeur", - "jqui_hide_close_button": "Masquer le bouton de fermeture", - "jqui_href_tooltip": "Cette URL sera appelée dans le navigateur", - "jqui_html": "HTML", - "jqui_html_dialog": "Boîte de dialogue HTML", - "jqui_html_external_dialog": "Boîte de dialogue externe", - "jqui_html_false": "HTML par faux", - "jqui_html_tooltip": "HTML n'est configurable que si le texte et l'icône sont vides", - "jqui_html_true": "HTML par vrai", - "jqui_icon": "Icône", - "jqui_icon_active": "Icône active", - "jqui_icon_dialog": "Boîte de dialogue d'icône", - "jqui_icon_http_get": "URL d'appel dans le backend", - "jqui_icon_increment": "Incrémenter avec l'icône", - "jqui_icon_link": "Aller à l'URL (avec icône)", - "jqui_icon_max": "Icône pour maximum", - "jqui_icon_state_bool": "Bouton icône booléenne", - "jqui_icon_state_push_button": "Bouton poussoir", - "jqui_icon_toggle": "Bouton bascule avec icône", - "jqui_image": "Image", - "jqui_image_active": "Image active", - "jqui_image_height": "Hauteur de l'image", - "jqui_image_max": "Image pour un maximum", - "jqui_increment_decrement": "Incrémenter/Décrémenter", - "jqui_input": "Saisir", - "jqui_input_date": "Saisie de la date", - "jqui_input_time": "Saisie du temps", - "jqui_input_with_button": "Saisie avec bouton", - "jqui_invert_icon": "Icône Inverser", - "jqui_inverted": "Inversé", - "jqui_jquery_style": "Style jQuery", - "jqui_max": "Valeur maximum", - "jqui_min": "Valeur minimale", - "jqui_name": "Titre", - "jqui_nav_view": "Aller voir", - "jqui_navigation_button": "Bouton de navigation", - "jqui_navigation_icon": "Icône de navigation", - "jqui_navigation_password": "Navigation avec mot de passe", - "jqui_not_equal_length": "Pas la même largeur", - "jqui_off": "Désactivé", - "jqui_oid_working": "ID de travail", - "jqui_on": "Act.", - "jqui_only_icon": "Seule icône", - "jqui_open": "Comme liste", - "jqui_orientation": "Orientation", - "jqui_password": "Mot de passe", - "jqui_password_tooltip": "L'utilisateur doit saisir un mot de passe pour ouvrir la boîte de dialogue, accéder à la page ou à l'URL", - "jqui_push_mode": "Mode poussée", - "jqui_push_mode_tooltip": "En appuyant sur le bouton, « vrai » sera écrit et lorsque vous relâcherez le bouton, « faux » sera écrit.", - "jqui_radio_buttons_on_off": "Boutons radio (marche/arrêt)", - "jqui_radio_list": "Liste radio avec valeurs", - "jqui_radio_steps": "Bouton radio (étapes)", - "jqui_range": "gamme", - "jqui_read_only": "Lecture seulement", - "jqui_repeat_delay": "Délai de répétition", - "jqui_repeat_interval": "Répéter l'intervalle", - "jqui_select_all_on_focus": "Sélectionnez tout sur la mise au point", - "jqui_select_all_on_focus_tooltip": "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", - "jqui_select_list": "Sélectionner dans la liste", - "jqui_set_label": "Stylisé", - "jqui_set_timeout": "Délai d'écriture", - "jqui_single": "célibataire", - "jqui_slider": "Glissière", - "jqui_slider_note": "Obsolète. Utilisez le widget curseur avec une orientation définie sur verticale. Conservé uniquement pour des raisons de compatibilité avec vis.1", - "jqui_slider_vertical": "Curseur vertical", - "jqui_state_note": "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", - "jqui_states_control": "Contrôle des États", - "jqui_stepMinute": "Minute de pas", - "jqui_test": "Valeur de test", - "jqui_text": "Texte", - "jqui_text_active": "Texte actif", - "jqui_text_max": "Texte pour maximum", - "jqui_toggle": "Basculer", - "jqui_tooltip": "Info-bulle", - "jqui_true": "Vrai", - "jqui_type": "Taper", - "jqui_unit": "Unité", - "jqui_url_group": "URL d'appel par clic", - "jqui_url_in_background": "URL dans le backend", - "jqui_url_in_browser": "URL dans le navigateur", - "jqui_url_tooltip": "Cette URL sera appelée en arrière-plan par le moteur ioBroker", - "jqui_value": "Valeur", - "jqui_value_label_display": "Afficher l'étiquette", - "jqui_variant": "Une variante", - "jqui_view_group": "Vue de navigation", - "jqui_wideFormat": "Grand format", - "jqui_widgetTitle": "Titre", - "jqui_with_enter_button": "Avec le bouton Entrée", - "jqui_write_state_note": "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", - "jqui_write_value": "Écrire la valeur", - "letter-spacing": "l'espacement des lettres", - "line-height": "hauteur de la ligne", - "material_icons_baseline": "Rempli", - "material_icons_knx-uf": "knx-uf", - "material_icons_outline": "Décrit", - "material_icons_result": "%s résultats correspondants", - "material_icons_round": "Tour", - "material_icons_sharp": "Tranchant", - "material_icons_twotone": "Deux tons", - "material_icons_upload": "Télécharger", - "multi-views": "Afficher dans les vues", - "never": "jamais", - "no_reload": "pas de rechargement", - "none": "rien", - "normal": "Ordinaire", - "not defined": "non défini", - "not-specified": "non défini", - "optional": "optionnel", - "order_help": "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é", - "orientation": "Orientation", - "profile": "Profil", - "qui_Bool SVG": "SVG booléen", - "reload": "recharger", - "search text": "Texte de recherche", - "set_basic": "de base", - "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-0": "Texte [0]", - "signals-text-1": "Texte [1]", - "signals-text-2": "Texte [2]", - "text-shadow": "ombre de texte", - "text_false": "Texte par faux", - "text_true": "Texte par vrai", - "to version": "à la version", - "value_string": "Chaîne de caractères", - "version": "version", - "vertical": "vertical", - "visResizable": "Redimensionnable", - "vis_2_widgets_basic_cannot_recursive": "Impossible d'utiliser les vues récursives", - "vis_2_widgets_basic_contains_view": "Utiliser la vue", - "vis_2_widgets_basic_view_in_widget": "Afficher dans le widget", - "vis_2_widgets_basic_view_not_defined": "Vue non définie", - "vis_2_widgets_widgets_tabs_color": "Couleur", - "vis_2_widgets_widgets_tabs_group_tab": "Languette", - "vis_2_widgets_widgets_tabs_label": "Onglets", - "vis_2_widgets_widgets_tabs_show_tabs": "Nombre", - "vis_2_widgets_widgets_tabs_tab_icon": "Icône", - "vis_2_widgets_widgets_tabs_tab_icon_color": "Couleur", - "vis_2_widgets_widgets_tabs_tab_icon_size": "Taille de l'icône", - "vis_2_widgets_widgets_tabs_tab_image": "Image", - "vis_2_widgets_widgets_tabs_tab_overflow_x": "Débordement X", - "vis_2_widgets_widgets_tabs_tab_overflow_y": "Débordement Y", - "vis_2_widgets_widgets_tabs_tab_title": "Titre", - "vis_2_widgets_widgets_tabs_tab_view": "Voir", - "vis_2_widgets_widgets_tabs_variant": "Une variante", - "vis_2_widgets_widgets_tabs_variant_centered": "centré", - "vis_2_widgets_widgets_tabs_variant_default": "Défaut", - "vis_2_widgets_widgets_tabs_variant_full_width": "pleine largeur", - "vis_2_widgets_widgets_tabs_vertical": "Vertical", - "welcome_message": "Aucun projet n'existe encore.", - "word-spacing": "espacement des mots", - "basic_sub_view": "Sous-vue", - "sub_view_tooltip": "Il est utilisé à des fins spéciales, comme la navigation Jaeger-Design.", - "basic_no_filter_text": "Étiquette \"Pas de filtre\"", - "basic_no_all_option": "Pas d'option \"Pas de filtre\"", - "basic_filter_multiple": "Sélection multiple", - "basic_filter_type_dropdown": "Menu déroulant", - "basic_filter_type_horizontal_buttons": "Boutons horizontaux", - "basic_filter_type_vertical_buttons": "Boutons verticaux", - "basic_no_filter": "Pas de filtre", - "basic_all_filters": "Ajouter tout ce qui reste", - "Only for desktop": "Uniquement pour ordinateur de bureau", - "Include widget?": "Inclure le widget ?", - "Do you want to include \"%s\" widget into \"%s\"?": "Voulez-vous inclure le widget « %s » dans « %s » ?", - "Unselect": "Désélectionner", - "All": "Tous", - "Load project file...": "Chargement du fichier de projet...", - "Load widgets...": "Chargement des widgets...", - "Loading objects...": "Chargement d'objets...", - "Following views will be changed": "Les vues suivantes seront modifiées", - "Show this attribute by all views": "Afficher cet attribut dans toutes les vues", - "Menu width": "Largeur du menu", - "Do not ask again": "Ne demande plus", - "vis-2-widgets-basic-input_value": "Valeur d'entrée", - "vis-2-widgets-basic-autoSetDelay": "Délai d'écriture automatique", - "vis-2-widgets-basic-noStyle": "Aucun style", - "Clone": "Cloner", - "jqui_Write state": "État d'écriture", - "vis_2_widgets_widgets_swipe_label": "Swipe", - "vis_2_widgets_swipe_hide_indication_label": "Masquer l'indication", - "vis_2_widgets_swipe_threshold_label": "Seuil" + "%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": "Ajouter", + "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\n", + "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": "Administrateur", + "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": "Tous", + "Aluminium1": "Aluminium1", + "Aluminium2": "Aluminium2", + "App bar": "Barre d'application", + "Apply": "Appliquer", + "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": "Les attributs", + "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": "De base", + "Benutzer": "Benutzer", + "Blue flowers": "Fleurs bleues", + "Blue marine": "Bleu marine", + "Blue marine lines": "Lignes marines bleues", + "Blueprint grid": "Grille de plan", + "Bricks": "Briques", + "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", + "CSS": "CSS", + "CSS Class": "Classe CSS", + "CSS Common": "CSS commun", + "CSS Font & Text": "CSS Police et texte", + "CSS background (background-...)": "CSS Arrière-plan (background-...)", + "Cancel": "Annuler", + "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": "Dégager", + "Clear filter": "Effacer le filtre", + "Click to close": "Cliquez pour fermer", + "Clone": "Cloner", + "Clone widget": "Cloner le widget", + "Close": "Proche", + "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": "Coloré", + "Column gap": "Écart de colonne", + "Column width": "Largeur de colonne", + "Comment": "Commentaire", + "Convert %s to %s": "Convertir %s en %s", + "Copied %s": "%s copié", + "Copied to clipboard": "Copié dans le presse-papier", + "Copy": "Copie", + "Copy noun": "Copie", + "Copy to clipboard": "Copier dans le presse-papier", + "Copy view \"%s\"": "Copier la vue \"%s\"", + "Create": "Créer", + "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": "Couper", + "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": "Défaut", + "Default view": "Vue par défaut", + "Default: auto": "Par défaut : \"auto\"", + "Delete": "Effacer", + "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": "Dispositifs", + "Disabled": "Désactivée", + "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": "Dupliquer", + "Duplicate folder": "Dupliquer le dossier", + "Duplicate profile": "Dupliquer le profil", + "Edit": "Éditer", + "Edit binding": "Modifier la liaison", + "Edit folder": "Modifier le dossier", + "Edit group": "Modifier le groupe", + "Edit profile": "Editer le profil", + "Elements": "Éléments", + "Enabled": "Activée", + "Enter": "Entrer", + "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": "Explication", + "Export": "Exporter", + "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": "Des dossiers", + "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": "Fr", + "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": "Pour tous les projets", + "Gradient box": "Boîte dégradée", + "Gray 0": "Gris 0", + "Gray 1": "Gris 1", + "Grid": "Grille", + "Group": "Groupe", + "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": "Hauteur", + "Hide": "Cacher", + "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": "Haute", + "High priority": "Haute priorité", + "Highest eg. Holiday": "Le plus élevé, par ex. Vacance", + "Horizontal": "Horizontal", + "Icon": "Icône", + "If user not in group": "Si l'utilisateur n'est pas dans le groupe", + "Ignore": "Ignorer", + "Ignored in edit mode": "Ignoré en mode édition", + "Image": "Image", + "Import": "Importer", + "Import project": "Importer un projet", + "Import widgets": "Importer des widgets", + "Include widget?": "Inclure le widget ?", + "Initial filter": "Filtre initial", + "Instance": "Exemple", + "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": "Bloquer", + "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": "Message", + "Mo": "Mo", + "Modify": "Modifier", + "More": "Suite", + "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": "Nom", + "Name is not unique": "Le nom n'est pas unique", + "Name of copy": "Nom de la copie", + "Narrow panel": "Panneau étroit", + "Navigation": "La navigation", + "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": "Non", + "No background": "Pas de fond", + "Normal": "Normal", + "OFF": "OFF", + "ON": "ON", + "Objects": "Objets", + "Ok": "Ok", + "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": "Ouvrir", + "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": "Choix", + "Order": "Commande", + "Orientation": "Orientation", + "Palette": "Palette", + "Paste": "Pâte", + "Percent": "Pour cent", + "Permissions": "Autorisations", + "Pixel 5 - Landscape": "Pixel 5 - Paysage", + "Pixel 5 - Portrait": "Pixel 5 - Portrait", + "Priority": "Priorité", + "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 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": "Projets", + "Radial blue": "Bleu radial", + "Read": "Lire", + "Read = Runtime access": "Lecture = accès à l'exécution", + "Read about currentColor in SVG": "En savoir plus sur currentColor en SVG", + "Received user command: %s": "Commande utilisateur reçue : %s", + "Reconnect interval": "Intervalle de reconnexion", + "Redo": "Refaire", + "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": "Rechargement", + "Rename": "Renommer", + "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": "Résolution", + "Responsive settings": "Paramètres réactifs", + "Row gap": "Écart de ligne", + "Sa": "Sa", + "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": "sauvegarder", + "Scripts": "Scénarios", + "Search": "Chercher", + "Select": "Sélectionner", + "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": "Réglages", + "Should it be moved to new place?": "Doit-il être déplacé vers un nouvel endroit ?", + "Show": "Spectacle", + "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 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": "Style", + "Su": "Su", + "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": "Onglets", + "Temperature": "Température", + "Text color": "Couleur du texte", + "Text color if selected": "Couleur du texte si sélectionné", + "Text edit": "Modification de texte", + "Th": "Th", + "Theme": "Thème", + "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": "Titre", + "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": "Ma", + "Type": "Taper", + "Undo": "annuler", + "Ungroup": "Dissocier", + "Uninstall": "Désinstaller", + "Unknown widget type \"%s\"": "Type de widget inconnu \"%s\"", + "Unlock": "Ouvrir", + "Unselect": "Désélectionner", + "Update": "Mettre à jour", + "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": "Valeur", + "Vertical": "Verticale", + "View": "Voir", + "View not defined": "Vue non définie", + "We": "Mi", + "Weekend": "Fin de semaine", + "Widget": "Widget", + "Widget CSS": "CSS des widgets", + "Widget JS": "WidgetJS", + "Widget was deleted in widgeteria": "Le widget a été supprimé dans la widgeteria", + "Widgets": "Widget", + "Width": "Largeur", + "Width x height (px)": "Largeur x hauteur (px)", + "Write": "Écrire", + "Write = Edit mode access": "Ecrire = Accès au mode édition", + "Writer": "Écrivain", + "Wrong password": "Mauvais mot de passe", + "Yes": "Oui", + "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": "Widgeteria", + "ace_All": "Tous", + "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": "Info-bulle par false", + "alt_true": "Info-bulle par true", + "anonymize": "anonymiser", + "apply_to_all": "Pour tous", + "attr_none": "inherit", + "basic_all_filters": "Ajouter tout ce qui reste", + "basic_arrow": "Flèche", + "basic_borderColor": "Couleur de la bordure", + "basic_borderRadius": "Rayon de la frontière", + "basic_circle": "Cercle", + "basic_custom": "Polygone personnalisé", + "basic_filter_multiple": "Sélection multiple", + "basic_filter_type_dropdown": "Menu déroulant", + "basic_filter_type_horizontal_buttons": "Boutons horizontaux", + "basic_filter_type_vertical_buttons": "Boutons verticaux", + "basic_hexagone": "Hexagone", + "basic_line": "Doubler", + "basic_no_all_option": "Pas d'option \"Pas de filtre\"", + "basic_no_filter": "Pas de filtre", + "basic_no_filter_text": "Étiquette \"Pas de filtre\"", + "basic_octagone": "Octogone", + "basic_pentagone": "Pentagone", + "basic_pin": "Épingle", + "basic_speech2text_continuous": "continu", + "basic_speech2text_detected": "Détecté", + "basic_speech2text_en_us": "Anglais", + "basic_speech2text_height": "Hauteur (px)", + "basic_speech2text_image_active": "Actif", + "basic_speech2text_image_inactive": "Inactif", + "basic_speech2text_info_allow": "Cliquez sur le bouton \"Autoriser\" ci-dessus pour activer votre microphone.", + "basic_speech2text_info_blocked": "L'autorisation d'utiliser le microphone est bloquée. Pour modifier, accédez à chrome://settings/contentExceptions#media-stream", + "basic_speech2text_info_denied": "L'autorisation d'utiliser le microphone a été refusée.", + "basic_speech2text_info_no_microphone": "Aucun microphone n'a été trouvé. Assurez-vous qu'un microphone est installé et que les paramètres du microphone sont correctement configurés.", + "basic_speech2text_info_no_speech": "Aucune parole n'a été détectée. Vous devrez peut-être ajuster vos paramètres du microphone.", + "basic_speech2text_info_speak_now": "Parlez maintenant.", + "basic_speech2text_info_start": "Cliquez sur l'icône du microphone et commencez à parler.", + "basic_speech2text_info_upgrade": "L'API Web Speech n'est pas prise en charge par ce navigateur. Passez à Chrome version 25 ou ultérieure.", + "basic_speech2text_key_word_color": "Couleur du mot clé", + "basic_speech2text_key_word_color_tooltip": "Couleur du texte, si mot clé trouvé", + "basic_speech2text_keywords": "Mots clés", + "basic_speech2text_no_image": "Pas d'image", + "basic_speech2text_no_results": "Aucun résultat", + "basic_speech2text_no_text": "Aucun texte d'aide", + "basic_speech2text_ru_ru": "russe", + "basic_speech2text_sent": "Envoyé", + "basic_speech2text_single": "célibataire", + "basic_speech2text_speech_mode": "Mode parole", + "basic_speech2text_start_stop": "commencer arrêter", + "basic_speech2text_started": "Commencé", + "basic_speech2text_text_sent_color": "Couleur du texte envoyé", + "basic_speech2text_text_sent_color_tooltip": "Couleur du texte, lorsque le texte est envoyé pour le traiter", + "basic_speech2text_width": "Largeur (px)", + "basic_square": "Carré", + "basic_star": "Étoile", + "basic_sub_view": "Sous-vue", + "basic_triangle": "Triangle", + "block": "bloquer", + "color": "Couleur", + "color_false": "Couleur par faux", + "color_true": "Couleur par vrai", + "convert from widgeteria widget": "convertir à partir du widget widgeteria", + "copy": "copie", + "css_project": "Pour ce projet", + "custom_icons": "Spécial", + "different": "différent", + "display": "affichage", + "finish searching": "recherche terminée", + "flex": "fléchir", + "flexible": "flexible", + "folder": "Dossier", + "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": "Groupe", + "group_attrName": "Nom", + "group_attrType": "Taper", + "group_fields": "Les attributs", + "group_help": "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.", + "group_icon_false": "Icône par false", + "group_icon_true": "Icône par vrai", + "group_size_hint": "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", + "group_text": "Texte", + "help_css_global": "Ces CSS sont appliquées à tous les projets", + "help_css_project": "Ces CSS ne s'appliquent qu'à ce projet", + "hide": "cacher", + "hide code": "masquer le code", + "horizontal": "horizontal", + "hr": "les heures", + "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": "Taille de l'icône en pixels", + "icon_upload_hint": "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.", + "imageHeight_false": "Hauteur de l'image", + "imageHeight_true": "Hauteur de l'image", + "invert_icon_false": "Icône Inverser", + "invert_icon_true": "Icône Inverser", + "jqui_Add new value": "Ajouter une nouvelle valeur", + "jqui_Are you sure?": "Es-tu sûr?", + "jqui_Bulk edit": "Modification groupée", + "jqui_Close": "Fermer", + "jqui_Example": "Exemple", + "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": "Pourcentages", + "jqui_Replace to": "Remplacer par", + "jqui_Select file": "Sélectionner une image", + "jqui_Write state": "État d'écriture", + "jqui_active_color": "Couleur active", + "jqui_ampm": "Matin après-midi", + "jqui_asDate": "Comme date", + "jqui_asFullDate": "Utilisation de la date analysable complète", + "jqui_as_string": "En tant que chaîne", + "jqui_auto": "auto", + "jqui_binary_control": "Contrôle binaire", + "jqui_button_binary_control_note": "Obsolète. Utilisez le widget \"Contrôle binaire\". Conservé uniquement pour des raisons de compatibilité avec vis.1", + "jqui_button_color": "Couleur du bouton", + "jqui_button_dialog_close": "Bouton de fermeture de la boîte de dialogue", + "jqui_button_input_note": "Obsolète. Utilisez le widget \"Entrée\". Conservé uniquement pour des raisons de compatibilité avec vis.1", + "jqui_button_link": "Aller à l'URL", + "jqui_button_link_blank": "Aller à l'URL (dans une nouvelle fenêtre)", + "jqui_button_link_blank_note": "Obsolète. Utilisez le premier widget avec l'option \"Ouvrir dans une nouvelle fenêtre\". Conservé uniquement pour la compatibilité avec vis.1", + "jqui_button_nav_blank_note": "Obsolète. Utilisez le premier widget avec l'option \"Aller à la vue\". Conservé uniquement pour des raisons de compatibilité avec vis.1", + "jqui_button_text": "Texte du bouton", + "jqui_buttontext_view": "Utiliser le nom de la vue comme titre", + "jqui_clearable": "Effacable", + "jqui_color": "Couleur", + "jqui_container_button_dialog": "Bouton => Boîte de dialogue Page", + "jqui_container_dialog": "Boîte de dialogue Conteneur", + "jqui_container_icon_dialog": "Icône => Boîte de dialogue Page", + "jqui_dialog_name": "Nom de la boîte de dialogue", + "jqui_dialog_set_id_tooltip": "Définir l'état en ouvrant la boîte de dialogue", + "jqui_disableFuture": "Désactiver le futur", + "jqui_disablePast": "Désactiver le passé", + "jqui_displayWeekNumber": "Afficher le numéro de la semaine", + "jqui_equal_text_length": "Longueurs de texte égales", + "jqui_equal_text_length_tooltip": "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\".", + "jqui_external_dialog": "Boîte de dialogue externe", + "jqui_external_dialog_tooltip": "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.", + "jqui_false": "FAUX", + "jqui_from_oid": "Depuis un autre objet", + "jqui_from_value": "À partir d'une valeur statique", + "jqui_generate": "Générer", + "jqui_group_value": "Valeur", + "jqui_hide_close_button": "Masquer le bouton de fermeture", + "jqui_href_tooltip": "Cette URL sera appelée dans le navigateur", + "jqui_html": "HTML", + "jqui_html_dialog": "Boîte de dialogue HTML", + "jqui_html_external_dialog": "Boîte de dialogue externe", + "jqui_html_false": "HTML par faux", + "jqui_html_tooltip": "HTML n'est configurable que si le texte et l'icône sont vides", + "jqui_html_true": "HTML par vrai", + "jqui_icon": "Icône", + "jqui_icon_active": "Icône active", + "jqui_icon_dialog": "Boîte de dialogue d'icône", + "jqui_icon_http_get": "URL d'appel dans le backend", + "jqui_icon_increment": "Incrémenter avec l'icône", + "jqui_icon_link": "Aller à l'URL (avec icône)", + "jqui_icon_max": "Icône pour maximum", + "jqui_icon_state_bool": "Bouton icône booléenne", + "jqui_icon_state_push_button": "Bouton poussoir", + "jqui_icon_toggle": "Bouton bascule avec icône", + "jqui_image": "Image", + "jqui_image_active": "Image active", + "jqui_image_height": "Hauteur de l'image", + "jqui_image_max": "Image pour un maximum", + "jqui_increment_decrement": "Incrémenter/Décrémenter", + "jqui_input": "Saisir", + "jqui_input_date": "Saisie de la date", + "jqui_input_time": "Saisie du temps", + "jqui_input_with_button": "Saisie avec bouton", + "jqui_invert_icon": "Icône Inverser", + "jqui_inverted": "Inversé", + "jqui_jquery_style": "Style jQuery", + "jqui_max": "Valeur maximum", + "jqui_min": "Valeur minimale", + "jqui_name": "Titre", + "jqui_nav_view": "Aller voir", + "jqui_navigation_button": "Bouton de navigation", + "jqui_navigation_icon": "Icône de navigation", + "jqui_navigation_password": "Navigation avec mot de passe", + "jqui_not_equal_length": "Pas la même largeur", + "jqui_off": "Désactivé", + "jqui_oid_working": "ID de travail", + "jqui_on": "Act.", + "jqui_only_icon": "Seule icône", + "jqui_open": "Comme liste", + "jqui_orientation": "Orientation", + "jqui_password": "Mot de passe", + "jqui_password_tooltip": "L'utilisateur doit saisir un mot de passe pour ouvrir la boîte de dialogue, accéder à la page ou à l'URL", + "jqui_push_mode": "Mode poussée", + "jqui_push_mode_tooltip": "En appuyant sur le bouton, « vrai » sera écrit et lorsque vous relâcherez le bouton, « faux » sera écrit.", + "jqui_radio_buttons_on_off": "Boutons radio (marche/arrêt)", + "jqui_radio_list": "Liste radio avec valeurs", + "jqui_radio_steps": "Bouton radio (étapes)", + "jqui_range": "gamme", + "jqui_read_only": "Lecture seulement", + "jqui_repeat_delay": "Délai de répétition", + "jqui_repeat_interval": "Répéter l'intervalle", + "jqui_select_all_on_focus": "Sélectionnez tout sur la mise au point", + "jqui_select_all_on_focus_tooltip": "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", + "jqui_select_list": "Sélectionner dans la liste", + "jqui_set_label": "Stylisé", + "jqui_set_timeout": "Délai d'écriture", + "jqui_single": "célibataire", + "jqui_slider": "Glissière", + "jqui_slider_note": "Obsolète. Utilisez le widget curseur avec une orientation définie sur verticale. Conservé uniquement pour des raisons de compatibilité avec vis.1", + "jqui_slider_vertical": "Curseur vertical", + "jqui_state_note": "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", + "jqui_states_control": "Contrôle des États", + "jqui_stepMinute": "Minute de pas", + "jqui_test": "Valeur de test", + "jqui_text": "Texte", + "jqui_text_active": "Texte actif", + "jqui_text_max": "Texte pour maximum", + "jqui_toggle": "Basculer", + "jqui_tooltip": "Info-bulle", + "jqui_true": "Vrai", + "jqui_type": "Taper", + "jqui_unit": "Unité", + "jqui_url_group": "URL d'appel par clic", + "jqui_url_in_background": "URL dans le backend", + "jqui_url_in_browser": "URL dans le navigateur", + "jqui_url_tooltip": "Cette URL sera appelée en arrière-plan par le moteur ioBroker", + "jqui_value": "Valeur", + "jqui_value_label_display": "Afficher l'étiquette", + "jqui_variant": "Une variante", + "jqui_view_group": "Vue de navigation", + "jqui_wideFormat": "Grand format", + "jqui_widgetTitle": "Titre", + "jqui_with_enter_button": "Avec le bouton Entrée", + "jqui_write_state_note": "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", + "jqui_write_value": "Écrire la valeur", + "letter-spacing": "l'espacement des lettres", + "line-height": "hauteur de la ligne", + "material_icons_baseline": "Rempli", + "material_icons_knx-uf": "knx-uf", + "material_icons_outline": "Décrit", + "material_icons_result": "%s résultats correspondants", + "material_icons_round": "Tour", + "material_icons_sharp": "Tranchant", + "material_icons_twotone": "Deux tons", + "material_icons_upload": "Télécharger", + "multi-views": "Afficher dans les vues", + "never": "jamais", + "no_reload": "pas de rechargement", + "none": "rien", + "normal": "Ordinaire", + "not defined": "non défini", + "not-specified": "non défini", + "optional": "optionnel", + "order_help": "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é", + "orientation": "Orientation", + "profile": "Profil", + "qui_Bool SVG": "SVG booléen", + "reload": "recharger", + "search text": "Texte de recherche", + "set_basic": "de base", + "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-0": "Texte [0]", + "signals-text-1": "Texte [1]", + "signals-text-2": "Texte [2]", + "sub_view_tooltip": "Il est utilisé à des fins spéciales, comme la navigation Jaeger-Design.", + "text-shadow": "ombre de texte", + "text_false": "Texte par faux", + "text_true": "Texte par vrai", + "to version": "à la version", + "value_string": "Chaîne de caractères", + "version": "version", + "vertical": "vertical", + "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": "Redimensionnable", + "vis_2_widgets_basic_cannot_recursive": "Impossible d'utiliser les vues récursives", + "vis_2_widgets_basic_contains_view": "Utiliser la vue", + "vis_2_widgets_basic_view_in_widget": "Afficher dans le widget", + "vis_2_widgets_basic_view_not_defined": "Vue non définie", + "vis_2_widgets_swipe_hide_indication_label": "Masquer l'indication", + "vis_2_widgets_swipe_threshold_label": "Seuil", + "vis_2_widgets_widgets_swipe_label": "Swipe", + "vis_2_widgets_widgets_tabs_color": "Couleur", + "vis_2_widgets_widgets_tabs_group_tab": "Languette", + "vis_2_widgets_widgets_tabs_label": "Onglets", + "vis_2_widgets_widgets_tabs_show_tabs": "Nombre", + "vis_2_widgets_widgets_tabs_tab_icon": "Icône", + "vis_2_widgets_widgets_tabs_tab_icon_color": "Couleur", + "vis_2_widgets_widgets_tabs_tab_icon_size": "Taille de l'icône", + "vis_2_widgets_widgets_tabs_tab_image": "Image", + "vis_2_widgets_widgets_tabs_tab_overflow_x": "Débordement X", + "vis_2_widgets_widgets_tabs_tab_overflow_y": "Débordement Y", + "vis_2_widgets_widgets_tabs_tab_title": "Titre", + "vis_2_widgets_widgets_tabs_tab_view": "Voir", + "vis_2_widgets_widgets_tabs_variant": "Une variante", + "vis_2_widgets_widgets_tabs_variant_centered": "centré", + "vis_2_widgets_widgets_tabs_variant_default": "Défaut", + "vis_2_widgets_widgets_tabs_variant_full_width": "pleine largeur", + "vis_2_widgets_widgets_tabs_vertical": "Vertical", + "welcome_message": "Aucun projet n'existe encore.", + "word-spacing": "espacement des mots" } \ No newline at end of file diff --git a/packages/iobroker.vis-2/src/src/i18n/it.json b/packages/iobroker.vis-2/src/src/i18n/it.json index a571714c..63f176e1 100644 --- a/packages/iobroker.vis-2/src/src/i18n/it.json +++ b/packages/iobroker.vis-2/src/src/i18n/it.json @@ -1,753 +1,755 @@ { - "%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": "Aggiungere", - "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\n", - "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": "Amministratore", - "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.", - "Aluminium1": "alluminio1", - "Aluminium2": "Alluminio2", - "App bar": "Barra delle applicazioni", - "Apply": "Fare domanda a", - "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": "Attributi", - "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": "Di base", - "Benutzer": "Benutzer", - "Blue flowers": "Fiori blu", - "Blue marine": "Marina blu", - "Blue marine lines": "Linee marine blu", - "Blueprint grid": "Griglia del progetto", - "Bricks": "Mattoni", - "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", - "CSS": "CSS", - "CSS Class": "Classe CSS", - "CSS Common": "CSS comune", - "CSS Font & Text": "CSS Carattere e testo", - "CSS background (background-...)": "CSS Sfondo (background-...)", - "Cancel": "Annulla", - "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": "Chiaro", - "Clear filter": "Filtro pulito", - "Click to close": "Clicca per chiudere", - "Clone widget": "Clona widget", - "Close": "Chiudere", - "Close all": "Comprimi tutto", - "Close all but current view": "Chiudi tutto tranne la visualizzazione corrente", - "Close editor": "Chiudi editore", - "Collapse all": "Comprimi tutto", - "Colorful": "Colorato", - "Column gap": "Spazio tra le colonne", - "Column width": "Larghezza della colonna", - "Comment": "Commento", - "Convert %s to %s": "Converti %s in %s", - "Copied %s": "Copiato %s", - "Copied to clipboard": "Copiato negli appunti", - "Copy": "copia", - "Copy noun": "copia", - "Copy to clipboard": "Copia negli appunti", - "Copy view \"%s\"": "Copia vista \"%s\"", - "Create": "Creare", - "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": "Tagliare", - "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": "Predefinito", - "Default view": "Visualizzazione predefinita", - "Default: auto": "Predefinito: \"auto\"", - "Delete": "Elimina", - "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": "Dispositivi", - "Disabled": "Disabilitato", - "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\"?", - "Drag me": "Trascinami", - "Drop the files here ...": "Trascina qui i file...", - "Duplicate": "Duplicare", - "Duplicate folder": "Duplica la cartella", - "Duplicate profile": "Duplica il profilo", - "Edit": "Modificare", - "Edit binding": "Modifica rilegatura", - "Edit folder": "Modifica cartella", - "Edit group": "Modifica gruppo", - "Edit profile": "Modifica Profilo", - "Elements": "Elementi", - "Enabled": "Abilitato", - "Enter": "accedere", - "Enter password": "Inserire la password", - "Expand all": "Espandi tutto", - "Explanation": "Spiegazione", - "Export": "Esportare", - "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": "File", - "Filter widgets": "Filtra i widget", - "Fm dark background": "Fm sfondo scuro", - "Fm light background": "Sfondo chiaro", - "For widgets with relative position": "Per i widget con posizione relativa", - "Fr": "Fr", - "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": "Per tutti i progetti", - "Gradient box": "Casella sfumata", - "Gray 0": "Grigio 0", - "Gray 1": "grigio 1", - "Grid": "Griglia", - "Group": "Gruppo", - "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": "Altezza", - "Hide": "Nascondere", - "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": "Alto", - "High priority": "Priorità alta", - "Highest eg. Holiday": "Il più alto ad es. Vacanza", - "Horizontal": "Orizzontale", - "Icon": "Icona", - "If user not in group": "Se l'utente non è nel gruppo", - "Ignore": "Ignorare", - "Ignored in edit mode": "Ignorato in modalità di modifica", - "Image": "Immagine", - "Import": "Importare", - "Import project": "Importa progetto", - "Import widgets": "Importa widget", - "Initial filter": "Filtro iniziale", - "Instance": "Esempio", - "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 screen": "Schermata Limite", - "Lined paper": "Carta a righe", - "Lock": "Serratura", - "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", - "Message": "Messaggio", - "Mo": "Mo", - "Modify": "Modificare", - "More": "Di più", - "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": "Nome", - "Name is not unique": "Il nome non è univoco", - "Name of copy": "Nome della copia", - "Narrow panel": "Pannello stretto", - "Navigation": "Navigazione", - "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": "No", - "No background": "Nessuno sfondo", - "Normal": "Normale", - "OFF": "OFF", - "ON": "ON", - "Objects": "Oggetti", - "Ok": "Ok", - "On/Off": "Acceso spento", - "One parameter": "Un parametro", - "Only for groups": "Solo per gruppi", - "Only the admin user can change permissions": "Solo l'utente amministratore può modificare le autorizzazioni", - "Open": "Aprire", - "Open all": "Espandi tutto", - "Open it?": "Aprirlo?", - "Open runtime in new window": "Apri runtime in una nuova finestra", - "Open widgeteria": "Apri widgeteria", - "Options": "Opzioni", - "Order": "Ordine", - "Orientation": "Orientamento", - "Palette": "Tavolozza", - "Paste": "Incolla", - "Percent": "Per cento", - "Permissions": "Autorizzazioni", - "Pixel 5 - Landscape": "Pixel 5 - Paesaggio", - "Pixel 5 - Portrait": "Pixel 5 - Ritratto", - "Priority": "Priorità", - "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 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": "Progetti", - "Radial blue": "Blu radiale", - "Read": "Leggere", - "Read = Runtime access": "Lettura = Accesso runtime", - "Read about currentColor in SVG": "Leggi informazioni su currentColor in SVG", - "Received user command: %s": "Comando utente ricevuto: %s", - "Reconnect interval": "Intervallo di riconnessione", - "Redo": "Rifare", - "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": "Ricaricamento", - "Rename": "Rinominare", - "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": "Risoluzione", - "Responsive settings": "Impostazioni reattive", - "Row gap": "Spazio tra le file", - "Sa": "Sa", - "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": "Salva", - "Scripts": "Script", - "Search": "Ricerca", - "Select": "Selezionare", - "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": "Impost.", - "Should it be moved to new place?": "Dovrebbe essere spostato in un nuovo posto?", - "Show": "Mostrare", - "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 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": "Stile", - "Su": "Su", - "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": "Schede", - "Temperature": "Temperatura", - "Text color": "Colore del testo", - "Text color if selected": "Colore del testo se selezionato", - "Text edit": "Modifica del testo", - "Th": "Th", - "Theme": "Tema", - "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": "Titolo", - "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": "tu", - "Type": "Tipo", - "Undo": "Annullare", - "Ungroup": "Separa", - "Uninstall": "Disinstalla", - "Unknown widget type \"%s\"": "Tipo di widget sconosciuto \"%s\"", - "Unlock": "Sbloccare", - "Update": "Aggiornare", - "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": "Valore", - "Vertical": "Verticale", - "View": "Visualizzazione", - "View not defined": "Vista non definita", - "We": "Mi", - "Weekend": "Fine settimana", - "Widget": "Aggeggio", - "Widget CSS": "Widget CSS", - "Widget JS": "Widget JS", - "Widget was deleted in widgeteria": "Il widget è stato eliminato in widgeteria", - "Widgets": "Widget", - "Width": "Larghezza", - "Width x height (px)": "Larghezza x altezza (px)", - "Write": "Scrivere", - "Write = Edit mode access": "Scrittura = accesso alla modalità modifica", - "Writer": "scrittore", - "Wrong password": "Password errata", - "Yes": "sì", - "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": "Widgeteria", - "ace_All": "Tutto", - "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": "Descrizione comando false", - "alt_true": "Descrizione comando true", - "anonymize": "anonimizzare", - "apply_to_all": "Per tutti", - "attr_none": "none", - "basic_arrow": "Freccia", - "basic_borderColor": "Colore del bordo", - "basic_borderRadius": "Raggio del confine", - "basic_circle": "Cerchio", - "basic_custom": "Poligono personalizzato", - "basic_hexagone": "Esagono", - "basic_line": "Linea", - "basic_octagone": "Ottagono", - "basic_pentagone": "Pentagono", - "basic_pin": "Spillo", - "basic_speech2text_continuous": "continuo", - "basic_speech2text_detected": "Rilevato", - "basic_speech2text_en_us": "inglese", - "basic_speech2text_height": "Altezza (px)", - "basic_speech2text_image_active": "Attivo", - "basic_speech2text_image_inactive": "Inattivo", - "basic_speech2text_info_allow": "Fai clic sul pulsante \"Consenti\" in alto per abilitare il microfono.", - "basic_speech2text_info_blocked": "L'autorizzazione all'uso del microfono è bloccata. Per modificare, vai a chrome://settings/contentExceptions#media-stream", - "basic_speech2text_info_denied": "Il permesso di utilizzare il microfono è stato negato.", - "basic_speech2text_info_no_microphone": "Nessun microfono trovato. Assicurati che sia installato un microfono e che le impostazioni del microfono siano configurate correttamente.", - "basic_speech2text_info_no_speech": "Non è stato rilevato alcun parlato. Potrebbe essere necessario modificare le impostazioni del microfono.", - "basic_speech2text_info_speak_now": "Parla adesso.", - "basic_speech2text_info_start": "Fare clic sull'icona del microfono e iniziare a parlare.", - "basic_speech2text_info_upgrade": "L'API Web Speech non è supportata da questo browser. Esegui l'upgrade a Chrome versione 25 o successiva.", - "basic_speech2text_key_word_color": "Colore della parola chiave", - "basic_speech2text_key_word_color_tooltip": "Colore del testo, se è stata trovata la parola chiave", - "basic_speech2text_keywords": "Parole chiave", - "basic_speech2text_no_image": "Nessuna immagine", - "basic_speech2text_no_results": "Nessun risultato", - "basic_speech2text_no_text": "Nessun testo di aiuto", - "basic_speech2text_ru_ru": "russo", - "basic_speech2text_sent": "Inviato", - "basic_speech2text_single": "separare", - "basic_speech2text_speech_mode": "Modalità vocale", - "basic_speech2text_start_stop": "avviare/interrompere", - "basic_speech2text_started": "Iniziato", - "basic_speech2text_text_sent_color": "Colore del testo inviato", - "basic_speech2text_text_sent_color_tooltip": "Colore del testo, quando il testo viene inviato per elaborarlo", - "basic_speech2text_width": "Larghezza (px)", - "basic_square": "Piazza", - "basic_star": "Stella", - "basic_triangle": "Triangolo", - "block": "bloccare", - "color": "colore", - "color_false": "Colore per falso", - "color_true": "Colore per vero", - "convert from widgeteria widget": "convertire dal widget widgeteria", - "copy": "copia", - "css_project": "Per questo progetto", - "custom_icons": "Speciale", - "different": "diverso", - "display": "Schermo", - "finish searching": "ricerca finita", - "flex": "flettere", - "flexible": "flessibile", - "folder": "Cartella", - "font-family": "famiglia di font", - "font-size": "dimensione del font", - "font-style": "stile carattere", - "font-variant": "font-variante", - "font-weight": "peso del carattere", - "group": "Gruppo", - "group_attrName": "Nome", - "group_attrType": "Tipo", - "group_fields": "Attributi", - "group_help": "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.", - "group_icon_false": "Icona di falso", - "group_icon_true": "Icona di vero", - "group_size_hint": "Puoi modificare la dimensione del gruppo, selezionandolo nel selettore del widget a discesa o facendo clic su questo testo", - "group_text": "Testo", - "help_css_global": "Questi CSS vengono applicati a tutti i progetti", - "help_css_project": "Questi CSS vengono applicati solo a questo progetto", - "hide": "nascondere", - "hide code": "nascondi il codice", - "horizontal": "orizzontale", - "hr": "ore", - "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": "Dimensione dell'icona in pixel", - "icon_upload_hint": "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.", - "imageHeight_false": "Altezza dell'immagine", - "imageHeight_true": "Altezza dell'immagine", - "invert_icon_false": "Icona inverti", - "invert_icon_true": "Icona inverti", - "jqui_Add new value": "Aggiungi nuovo valore", - "jqui_Are you sure?": "Sei sicuro?", - "jqui_Bulk edit": "Modifica collettiva", - "jqui_Close": "Vicino", - "jqui_Example": "Esempio", - "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": "Percentuali", - "jqui_Replace to": "Sostituirlo con", - "jqui_Select file": "Seleziona l'immagine", - "jqui_active_color": "Colore attivo", - "jqui_ampm": "Am PM", - "jqui_asDate": "Come data", - "jqui_asFullDate": "Utilizzo della data intera analizzabile", - "jqui_as_string": "Come stringa", - "jqui_auto": "auto", - "jqui_binary_control": "Controllo binario", - "jqui_button_binary_control_note": "Deprecato. Utilizza il widget \"Controllo binario\". Mantenuto solo per compatibilità con vis.1", - "jqui_button_color": "Colore del pulsante", - "jqui_button_dialog_close": "Pulsante di chiusura della finestra di dialogo", - "jqui_button_input_note": "Deprecato. Utilizza il widget \"Inserisci\". Mantenuto solo per compatibilità con vis.1", - "jqui_button_link": "Vai all'URL", - "jqui_button_link_blank": "Passa all'URL (in una nuova finestra)", - "jqui_button_link_blank_note": "Deprecato. Usa il primo widget con l'opzione \"Apri in una nuova finestra\". Mantenuto solo per compatibilità con vis.1", - "jqui_button_nav_blank_note": "Deprecato. Utilizza il primo widget con l'opzione \"Vai a visualizzare\". Mantenuto solo per compatibilità con vis.1", - "jqui_button_text": "Testo del pulsante", - "jqui_buttontext_view": "Utilizza il nome della vista come titolo", - "jqui_clearable": "Cancellabile", - "jqui_color": "Colore", - "jqui_container_button_dialog": "Pulsante => Finestra di dialogo Pagina", - "jqui_container_dialog": "Finestra di dialogo del contenitore", - "jqui_container_icon_dialog": "Icona=>Finestra di dialogo Pagina", - "jqui_dialog_name": "Nome della finestra di dialogo", - "jqui_dialog_set_id_tooltip": "Imposta stato aprendo la finestra di dialogo", - "jqui_disableFuture": "Disabilita futuro", - "jqui_disablePast": "Disabilita passato", - "jqui_displayWeekNumber": "Visualizza il numero della settimana", - "jqui_equal_text_length": "Uguali lunghezze del testo", - "jqui_equal_text_length_tooltip": "Se attivata, la lunghezza dei testi per vero e falso sarà uguale, quindi l'icona rimarrà nello stesso posto negli stati \"off\" e \"on\".", - "jqui_external_dialog": "Dialogo esterno", - "jqui_external_dialog_tooltip": "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.", - "jqui_false": "Falso", - "jqui_from_oid": "Da altro oggetto", - "jqui_from_value": "Dal valore statico", - "jqui_generate": "creare", - "jqui_group_value": "Valore", - "jqui_hide_close_button": "Nascondi pulsante di chiusura", - "jqui_href_tooltip": "Questo URL verrà chiamato nel browser", - "jqui_html": "HTML", - "jqui_html_dialog": "Finestra di dialogo HTML", - "jqui_html_external_dialog": "Dialogo esterno", - "jqui_html_false": "HTML da false", - "jqui_html_tooltip": "L'HTML è configurabile solo se il testo e l'icona sono vuoti", - "jqui_html_true": "HTML per true", - "jqui_icon": "Icona", - "jqui_icon_active": "Icona attiva", - "jqui_icon_dialog": "Finestra di dialogo delle icone", - "jqui_icon_http_get": "Chiama l'URL nel back-end", - "jqui_icon_increment": "Incremento con l'icona", - "jqui_icon_link": "Passa all'URL (con icona)", - "jqui_icon_max": "Icona per il massimo", - "jqui_icon_state_bool": "Pulsante icona booleana", - "jqui_icon_state_push_button": "Premi il bottone", - "jqui_icon_toggle": "Pulsante di attivazione/disattivazione con icona", - "jqui_image": "Immagine", - "jqui_image_active": "Immagine attiva", - "jqui_image_height": "Altezza dell'immagine", - "jqui_image_max": "Immagine per il massimo", - "jqui_increment_decrement": "Incremento/Decremento", - "jqui_input": "Ingresso", - "jqui_input_date": "Immissione della data", - "jqui_input_time": "Immissione dell'ora", - "jqui_input_with_button": "Ingresso con pulsante", - "jqui_invert_icon": "Icona inverti", - "jqui_inverted": "Invertito", - "jqui_jquery_style": "Stile jQuery", - "jqui_max": "Valore massimo", - "jqui_min": "Valore minimo", - "jqui_name": "Titolo", - "jqui_nav_view": "Vai a vedere", - "jqui_navigation_button": "Pulsante di navigazione", - "jqui_navigation_icon": "Icona di navigazione", - "jqui_navigation_password": "Navigazione con password", - "jqui_not_equal_length": "Larghezza non uguale", - "jqui_off": "Spento", - "jqui_oid_working": "Documento d'identità funzionante", - "jqui_on": "Ab.", - "jqui_only_icon": "Solo icona", - "jqui_open": "Come elenco", - "jqui_orientation": "Orientamento", - "jqui_password": "Parola d'ordine", - "jqui_password_tooltip": "L'utente deve inserire la password per aprire la finestra di dialogo, andare alla pagina o all'URL", - "jqui_push_mode": "Modalità push", - "jqui_push_mode_tooltip": "Premendo il pulsante verrà scritto “true” mentre al rilascio del pulsante verrà scritto “false”.", - "jqui_radio_buttons_on_off": "Pulsanti di opzione (on/off)", - "jqui_radio_list": "Elenco radio con valori", - "jqui_radio_steps": "Pulsante di opzione (passi)", - "jqui_range": "allineare", - "jqui_read_only": "Sola lettura", - "jqui_repeat_delay": "Ripeti il ritardo", - "jqui_repeat_interval": "Intervallo di ripetizione", - "jqui_select_all_on_focus": "Seleziona tutto a fuoco", - "jqui_select_all_on_focus_tooltip": "Al fuoco verrà selezionato tutto il testo, quindi può essere eliminato o modificato rapidamente senza premere il pulsante Backspace", - "jqui_select_list": "Seleziona dall'elenco", - "jqui_set_label": "Stile", - "jqui_set_timeout": "Scrivi timeout", - "jqui_single": "separare", - "jqui_slider": "Dispositivo di scorrimento", - "jqui_slider_note": "Deprecato. Utilizza il widget slider con l'orientamento impostato su verticale. Mantenuto solo per compatibilità con vis.1", - "jqui_slider_vertical": "Cursore verticale", - "jqui_state_note": "Deprecato. Utilizza il widget \"Controllo stati\" con l'opzione \"incremento/decremento\". Mantenuto solo per compatibilità con vis.1", - "jqui_states_control": "Controllo degli Stati", - "jqui_stepMinute": "Passo minuto", - "jqui_test": "Valore di prova", - "jqui_text": "Testo", - "jqui_text_active": "Testo attivo", - "jqui_text_max": "Testo per il massimo", - "jqui_toggle": "Attiva/disattiva", - "jqui_tooltip": "Descrizione comando", - "jqui_true": "VERO", - "jqui_type": "Tipo", - "jqui_unit": "Unità", - "jqui_url_group": "Chiama l'URL con un clic", - "jqui_url_in_background": "URL nel back-end", - "jqui_url_in_browser": "URL nel browser", - "jqui_url_tooltip": "Questo URL verrà richiamato in background dal motore ioBroker", - "jqui_value": "Valore", - "jqui_value_label_display": "Visualizza etichetta", - "jqui_variant": "Variante", - "jqui_view_group": "Visualizzazione navigazione", - "jqui_wideFormat": "Formato ampio", - "jqui_widgetTitle": "Titolo", - "jqui_with_enter_button": "Con il pulsante Invio", - "jqui_write_state_note": "Deprecato. Utilizza il widget \"Wirte state\" con l'opzione \"incremento/decremento\". Mantenuto solo per compatibilità con vis.1", - "jqui_write_value": "Scrivi valore", - "letter-spacing": "spaziatura del carattere", - "line-height": "altezza della linea", - "material_icons_baseline": "Riempito", - "material_icons_knx-uf": "knx-uf", - "material_icons_outline": "Delineato", - "material_icons_result": "%s risultati corrispondenti", - "material_icons_round": "Girare", - "material_icons_sharp": "Affilato", - "material_icons_twotone": "Due toni", - "material_icons_upload": "Caricamento", - "multi-views": "Mostra nelle viste", - "never": "mai", - "no_reload": "nessuna ricarica", - "none": "nessuno", - "normal": "normale", - "not defined": "non definito", - "not-specified": "non definito", - "optional": "opzionale", - "order_help": "Puoi trascinare e rilasciare qualsiasi elemento o fare clic sull'elemento con cui verrà scambiato il widget selezionato", - "orientation": "Orientamento", - "profile": "Profilo", - "qui_Bool SVG": "SVG booleano", - "reload": "ricaricare", - "search text": "Cerca testo", - "set_basic": "di base", - "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-0": "Testo [0]", - "signals-text-1": "Testo [1]", - "signals-text-2": "Testo [2]", - "text-shadow": "testo-ombra", - "text_false": "Testo falso", - "text_true": "Testo vero", - "to version": "alla versione", - "value_string": "Corda", - "version": "versione", - "vertical": "verticale", - "visResizable": "Ridimensionabile", - "vis_2_widgets_basic_cannot_recursive": "Impossibile utilizzare visualizzazioni ricorsive", - "vis_2_widgets_basic_contains_view": "Usa vista", - "vis_2_widgets_basic_view_in_widget": "Visualizza nel widget", - "vis_2_widgets_basic_view_not_defined": "Vista non definita", - "vis_2_widgets_widgets_tabs_color": "Colore", - "vis_2_widgets_widgets_tabs_group_tab": "Scheda", - "vis_2_widgets_widgets_tabs_label": "Schede", - "vis_2_widgets_widgets_tabs_show_tabs": "Numero", - "vis_2_widgets_widgets_tabs_tab_icon": "Icona", - "vis_2_widgets_widgets_tabs_tab_icon_color": "Colore", - "vis_2_widgets_widgets_tabs_tab_icon_size": "Dimensione dell'icona", - "vis_2_widgets_widgets_tabs_tab_image": "Immagine", - "vis_2_widgets_widgets_tabs_tab_overflow_x": "Traboccamento X", - "vis_2_widgets_widgets_tabs_tab_overflow_y": "Traboccamento Y", - "vis_2_widgets_widgets_tabs_tab_title": "Titolo", - "vis_2_widgets_widgets_tabs_tab_view": "Visualizzazione", - "vis_2_widgets_widgets_tabs_variant": "Variante", - "vis_2_widgets_widgets_tabs_variant_centered": "centrato", - "vis_2_widgets_widgets_tabs_variant_default": "Predefinito", - "vis_2_widgets_widgets_tabs_variant_full_width": "intera larghezza", - "vis_2_widgets_widgets_tabs_vertical": "Verticale", - "welcome_message": "Non esiste ancora un progetto.", - "word-spacing": "spaziatura delle parole", - "basic_sub_view": "Vista secondaria", - "sub_view_tooltip": "Viene utilizzato per scopi speciali, come la navigazione Jaeger-Design", - "basic_no_filter_text": "Etichetta \"Nessun filtro\".", - "basic_no_all_option": "Nessuna opzione \"Nessun filtro\".", - "basic_filter_multiple": "Selezione multipla", - "basic_filter_type_dropdown": "Menu a discesa", - "basic_filter_type_horizontal_buttons": "Pulsanti orizzontali", - "basic_filter_type_vertical_buttons": "Pulsanti verticali", - "basic_no_filter": "Senza Filtro", - "basic_all_filters": "Aggiungi tutto quello che resta", - "Only for desktop": "Solo per desktop", - "Include widget?": "Includere il widget?", - "Do you want to include \"%s\" widget into \"%s\"?": "Vuoi includere il widget \"%s\" in \"%s\"?", - "Unselect": "Deseleziona", - "All": "Tutto", - "Load project file...": "Caricamento file di progetto...", - "Load widgets...": "Caricamento widget...", - "Loading objects...": "Caricamento oggetti...", - "Following views will be changed": "Le visualizzazioni seguenti verranno modificate", - "Show this attribute by all views": "Mostra questo attributo per tutte le visualizzazioni", - "Menu width": "Larghezza del menù", - "Do not ask again": "Non chiedere di nuovo", - "vis-2-widgets-basic-input_value": "Valore immesso", - "vis-2-widgets-basic-autoSetDelay": "Ritardo per la scrittura automatica", - "vis-2-widgets-basic-noStyle": "Nessuno stile", - "Clone": "Clone", - "jqui_Write state": "Scrivi stato", - "vis_2_widgets_widgets_swipe_label": "Swipe", - "vis_2_widgets_swipe_hide_indication_label": "Nascondi indicazione", - "vis_2_widgets_swipe_threshold_label": "Soglia" + "%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": "Aggiungere", + "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\n", + "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": "Amministratore", + "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": "Tutto", + "Aluminium1": "alluminio1", + "Aluminium2": "Alluminio2", + "App bar": "Barra delle applicazioni", + "Apply": "Fare domanda a", + "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": "Attributi", + "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": "Di base", + "Benutzer": "Benutzer", + "Blue flowers": "Fiori blu", + "Blue marine": "Marina blu", + "Blue marine lines": "Linee marine blu", + "Blueprint grid": "Griglia del progetto", + "Bricks": "Mattoni", + "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", + "CSS": "CSS", + "CSS Class": "Classe CSS", + "CSS Common": "CSS comune", + "CSS Font & Text": "CSS Carattere e testo", + "CSS background (background-...)": "CSS Sfondo (background-...)", + "Cancel": "Annulla", + "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": "Chiaro", + "Clear filter": "Filtro pulito", + "Click to close": "Clicca per chiudere", + "Clone": "Clone", + "Clone widget": "Clona widget", + "Close": "Chiudere", + "Close all": "Comprimi tutto", + "Close all but current view": "Chiudi tutto tranne la visualizzazione corrente", + "Close editor": "Chiudi editore", + "Collapse all": "Comprimi tutto", + "Colorful": "Colorato", + "Column gap": "Spazio tra le colonne", + "Column width": "Larghezza della colonna", + "Comment": "Commento", + "Convert %s to %s": "Converti %s in %s", + "Copied %s": "Copiato %s", + "Copied to clipboard": "Copiato negli appunti", + "Copy": "copia", + "Copy noun": "copia", + "Copy to clipboard": "Copia negli appunti", + "Copy view \"%s\"": "Copia vista \"%s\"", + "Create": "Creare", + "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": "Tagliare", + "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": "Predefinito", + "Default view": "Visualizzazione predefinita", + "Default: auto": "Predefinito: \"auto\"", + "Delete": "Elimina", + "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": "Dispositivi", + "Disabled": "Disabilitato", + "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": "Duplicare", + "Duplicate folder": "Duplica la cartella", + "Duplicate profile": "Duplica il profilo", + "Edit": "Modificare", + "Edit binding": "Modifica rilegatura", + "Edit folder": "Modifica cartella", + "Edit group": "Modifica gruppo", + "Edit profile": "Modifica Profilo", + "Elements": "Elementi", + "Enabled": "Abilitato", + "Enter": "accedere", + "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": "Spiegazione", + "Export": "Esportare", + "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": "File", + "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": "Fr", + "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": "Per tutti i progetti", + "Gradient box": "Casella sfumata", + "Gray 0": "Grigio 0", + "Gray 1": "grigio 1", + "Grid": "Griglia", + "Group": "Gruppo", + "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": "Altezza", + "Hide": "Nascondere", + "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": "Alto", + "High priority": "Priorità alta", + "Highest eg. Holiday": "Il più alto ad es. Vacanza", + "Horizontal": "Orizzontale", + "Icon": "Icona", + "If user not in group": "Se l'utente non è nel gruppo", + "Ignore": "Ignorare", + "Ignored in edit mode": "Ignorato in modalità di modifica", + "Image": "Immagine", + "Import": "Importare", + "Import project": "Importa progetto", + "Import widgets": "Importa widget", + "Include widget?": "Includere il widget?", + "Initial filter": "Filtro iniziale", + "Instance": "Esempio", + "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": "Serratura", + "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": "Messaggio", + "Mo": "Mo", + "Modify": "Modificare", + "More": "Di più", + "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": "Nome", + "Name is not unique": "Il nome non è univoco", + "Name of copy": "Nome della copia", + "Narrow panel": "Pannello stretto", + "Navigation": "Navigazione", + "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": "No", + "No background": "Nessuno sfondo", + "Normal": "Normale", + "OFF": "OFF", + "ON": "ON", + "Objects": "Oggetti", + "Ok": "Ok", + "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": "Aprire", + "Open all": "Espandi tutto", + "Open it?": "Aprirlo?", + "Open runtime in new window": "Apri runtime in una nuova finestra", + "Open widgeteria": "Apri widgeteria", + "Options": "Opzioni", + "Order": "Ordine", + "Orientation": "Orientamento", + "Palette": "Tavolozza", + "Paste": "Incolla", + "Percent": "Per cento", + "Permissions": "Autorizzazioni", + "Pixel 5 - Landscape": "Pixel 5 - Paesaggio", + "Pixel 5 - Portrait": "Pixel 5 - Ritratto", + "Priority": "Priorità", + "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 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": "Progetti", + "Radial blue": "Blu radiale", + "Read": "Leggere", + "Read = Runtime access": "Lettura = Accesso runtime", + "Read about currentColor in SVG": "Leggi informazioni su currentColor in SVG", + "Received user command: %s": "Comando utente ricevuto: %s", + "Reconnect interval": "Intervallo di riconnessione", + "Redo": "Rifare", + "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": "Ricaricamento", + "Rename": "Rinominare", + "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": "Risoluzione", + "Responsive settings": "Impostazioni reattive", + "Row gap": "Spazio tra le file", + "Sa": "Sa", + "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": "Salva", + "Scripts": "Script", + "Search": "Ricerca", + "Select": "Selezionare", + "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": "Impost.", + "Should it be moved to new place?": "Dovrebbe essere spostato in un nuovo posto?", + "Show": "Mostrare", + "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 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": "Stile", + "Su": "Su", + "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": "Schede", + "Temperature": "Temperatura", + "Text color": "Colore del testo", + "Text color if selected": "Colore del testo se selezionato", + "Text edit": "Modifica del testo", + "Th": "Th", + "Theme": "Tema", + "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": "Titolo", + "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": "tu", + "Type": "Tipo", + "Undo": "Annullare", + "Ungroup": "Separa", + "Uninstall": "Disinstalla", + "Unknown widget type \"%s\"": "Tipo di widget sconosciuto \"%s\"", + "Unlock": "Sbloccare", + "Unselect": "Deseleziona", + "Update": "Aggiornare", + "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": "Valore", + "Vertical": "Verticale", + "View": "Visualizzazione", + "View not defined": "Vista non definita", + "We": "Mi", + "Weekend": "Fine settimana", + "Widget": "Aggeggio", + "Widget CSS": "Widget CSS", + "Widget JS": "Widget JS", + "Widget was deleted in widgeteria": "Il widget è stato eliminato in widgeteria", + "Widgets": "Widget", + "Width": "Larghezza", + "Width x height (px)": "Larghezza x altezza (px)", + "Write": "Scrivere", + "Write = Edit mode access": "Scrittura = accesso alla modalità modifica", + "Writer": "scrittore", + "Wrong password": "Password errata", + "Yes": "sì", + "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": "Widgeteria", + "ace_All": "Tutto", + "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": "Descrizione comando false", + "alt_true": "Descrizione comando true", + "anonymize": "anonimizzare", + "apply_to_all": "Per tutti", + "attr_none": "none", + "basic_all_filters": "Aggiungi tutto quello che resta", + "basic_arrow": "Freccia", + "basic_borderColor": "Colore del bordo", + "basic_borderRadius": "Raggio del confine", + "basic_circle": "Cerchio", + "basic_custom": "Poligono personalizzato", + "basic_filter_multiple": "Selezione multipla", + "basic_filter_type_dropdown": "Menu a discesa", + "basic_filter_type_horizontal_buttons": "Pulsanti orizzontali", + "basic_filter_type_vertical_buttons": "Pulsanti verticali", + "basic_hexagone": "Esagono", + "basic_line": "Linea", + "basic_no_all_option": "Nessuna opzione \"Nessun filtro\".", + "basic_no_filter": "Senza Filtro", + "basic_no_filter_text": "Etichetta \"Nessun filtro\".", + "basic_octagone": "Ottagono", + "basic_pentagone": "Pentagono", + "basic_pin": "Spillo", + "basic_speech2text_continuous": "continuo", + "basic_speech2text_detected": "Rilevato", + "basic_speech2text_en_us": "inglese", + "basic_speech2text_height": "Altezza (px)", + "basic_speech2text_image_active": "Attivo", + "basic_speech2text_image_inactive": "Inattivo", + "basic_speech2text_info_allow": "Fai clic sul pulsante \"Consenti\" in alto per abilitare il microfono.", + "basic_speech2text_info_blocked": "L'autorizzazione all'uso del microfono è bloccata. Per modificare, vai a chrome://settings/contentExceptions#media-stream", + "basic_speech2text_info_denied": "Il permesso di utilizzare il microfono è stato negato.", + "basic_speech2text_info_no_microphone": "Nessun microfono trovato. Assicurati che sia installato un microfono e che le impostazioni del microfono siano configurate correttamente.", + "basic_speech2text_info_no_speech": "Non è stato rilevato alcun parlato. Potrebbe essere necessario modificare le impostazioni del microfono.", + "basic_speech2text_info_speak_now": "Parla adesso.", + "basic_speech2text_info_start": "Fare clic sull'icona del microfono e iniziare a parlare.", + "basic_speech2text_info_upgrade": "L'API Web Speech non è supportata da questo browser. Esegui l'upgrade a Chrome versione 25 o successiva.", + "basic_speech2text_key_word_color": "Colore della parola chiave", + "basic_speech2text_key_word_color_tooltip": "Colore del testo, se è stata trovata la parola chiave", + "basic_speech2text_keywords": "Parole chiave", + "basic_speech2text_no_image": "Nessuna immagine", + "basic_speech2text_no_results": "Nessun risultato", + "basic_speech2text_no_text": "Nessun testo di aiuto", + "basic_speech2text_ru_ru": "russo", + "basic_speech2text_sent": "Inviato", + "basic_speech2text_single": "separare", + "basic_speech2text_speech_mode": "Modalità vocale", + "basic_speech2text_start_stop": "avviare/interrompere", + "basic_speech2text_started": "Iniziato", + "basic_speech2text_text_sent_color": "Colore del testo inviato", + "basic_speech2text_text_sent_color_tooltip": "Colore del testo, quando il testo viene inviato per elaborarlo", + "basic_speech2text_width": "Larghezza (px)", + "basic_square": "Piazza", + "basic_star": "Stella", + "basic_sub_view": "Vista secondaria", + "basic_triangle": "Triangolo", + "block": "bloccare", + "color": "colore", + "color_false": "Colore per falso", + "color_true": "Colore per vero", + "convert from widgeteria widget": "convertire dal widget widgeteria", + "copy": "copia", + "css_project": "Per questo progetto", + "custom_icons": "Speciale", + "different": "diverso", + "display": "Schermo", + "finish searching": "ricerca finita", + "flex": "flettere", + "flexible": "flessibile", + "folder": "Cartella", + "font-family": "famiglia di font", + "font-size": "dimensione del font", + "font-style": "stile carattere", + "font-variant": "font-variante", + "font-weight": "peso del carattere", + "group": "Gruppo", + "group_attrName": "Nome", + "group_attrType": "Tipo", + "group_fields": "Attributi", + "group_help": "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.", + "group_icon_false": "Icona di falso", + "group_icon_true": "Icona di vero", + "group_size_hint": "Puoi modificare la dimensione del gruppo, selezionandolo nel selettore del widget a discesa o facendo clic su questo testo", + "group_text": "Testo", + "help_css_global": "Questi CSS vengono applicati a tutti i progetti", + "help_css_project": "Questi CSS vengono applicati solo a questo progetto", + "hide": "nascondere", + "hide code": "nascondi il codice", + "horizontal": "orizzontale", + "hr": "ore", + "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": "Dimensione dell'icona in pixel", + "icon_upload_hint": "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.", + "imageHeight_false": "Altezza dell'immagine", + "imageHeight_true": "Altezza dell'immagine", + "invert_icon_false": "Icona inverti", + "invert_icon_true": "Icona inverti", + "jqui_Add new value": "Aggiungi nuovo valore", + "jqui_Are you sure?": "Sei sicuro?", + "jqui_Bulk edit": "Modifica collettiva", + "jqui_Close": "Vicino", + "jqui_Example": "Esempio", + "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": "Percentuali", + "jqui_Replace to": "Sostituirlo con", + "jqui_Select file": "Seleziona l'immagine", + "jqui_Write state": "Scrivi stato", + "jqui_active_color": "Colore attivo", + "jqui_ampm": "Am PM", + "jqui_asDate": "Come data", + "jqui_asFullDate": "Utilizzo della data intera analizzabile", + "jqui_as_string": "Come stringa", + "jqui_auto": "auto", + "jqui_binary_control": "Controllo binario", + "jqui_button_binary_control_note": "Deprecato. Utilizza il widget \"Controllo binario\". Mantenuto solo per compatibilità con vis.1", + "jqui_button_color": "Colore del pulsante", + "jqui_button_dialog_close": "Pulsante di chiusura della finestra di dialogo", + "jqui_button_input_note": "Deprecato. Utilizza il widget \"Inserisci\". Mantenuto solo per compatibilità con vis.1", + "jqui_button_link": "Vai all'URL", + "jqui_button_link_blank": "Passa all'URL (in una nuova finestra)", + "jqui_button_link_blank_note": "Deprecato. Usa il primo widget con l'opzione \"Apri in una nuova finestra\". Mantenuto solo per compatibilità con vis.1", + "jqui_button_nav_blank_note": "Deprecato. Utilizza il primo widget con l'opzione \"Vai a visualizzare\". Mantenuto solo per compatibilità con vis.1", + "jqui_button_text": "Testo del pulsante", + "jqui_buttontext_view": "Utilizza il nome della vista come titolo", + "jqui_clearable": "Cancellabile", + "jqui_color": "Colore", + "jqui_container_button_dialog": "Pulsante => Finestra di dialogo Pagina", + "jqui_container_dialog": "Finestra di dialogo del contenitore", + "jqui_container_icon_dialog": "Icona=>Finestra di dialogo Pagina", + "jqui_dialog_name": "Nome della finestra di dialogo", + "jqui_dialog_set_id_tooltip": "Imposta stato aprendo la finestra di dialogo", + "jqui_disableFuture": "Disabilita futuro", + "jqui_disablePast": "Disabilita passato", + "jqui_displayWeekNumber": "Visualizza il numero della settimana", + "jqui_equal_text_length": "Uguali lunghezze del testo", + "jqui_equal_text_length_tooltip": "Se attivata, la lunghezza dei testi per vero e falso sarà uguale, quindi l'icona rimarrà nello stesso posto negli stati \"off\" e \"on\".", + "jqui_external_dialog": "Dialogo esterno", + "jqui_external_dialog_tooltip": "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.", + "jqui_false": "Falso", + "jqui_from_oid": "Da altro oggetto", + "jqui_from_value": "Dal valore statico", + "jqui_generate": "creare", + "jqui_group_value": "Valore", + "jqui_hide_close_button": "Nascondi pulsante di chiusura", + "jqui_href_tooltip": "Questo URL verrà chiamato nel browser", + "jqui_html": "HTML", + "jqui_html_dialog": "Finestra di dialogo HTML", + "jqui_html_external_dialog": "Dialogo esterno", + "jqui_html_false": "HTML da false", + "jqui_html_tooltip": "L'HTML è configurabile solo se il testo e l'icona sono vuoti", + "jqui_html_true": "HTML per true", + "jqui_icon": "Icona", + "jqui_icon_active": "Icona attiva", + "jqui_icon_dialog": "Finestra di dialogo delle icone", + "jqui_icon_http_get": "Chiama l'URL nel back-end", + "jqui_icon_increment": "Incremento con l'icona", + "jqui_icon_link": "Passa all'URL (con icona)", + "jqui_icon_max": "Icona per il massimo", + "jqui_icon_state_bool": "Pulsante icona booleana", + "jqui_icon_state_push_button": "Premi il bottone", + "jqui_icon_toggle": "Pulsante di attivazione/disattivazione con icona", + "jqui_image": "Immagine", + "jqui_image_active": "Immagine attiva", + "jqui_image_height": "Altezza dell'immagine", + "jqui_image_max": "Immagine per il massimo", + "jqui_increment_decrement": "Incremento/Decremento", + "jqui_input": "Ingresso", + "jqui_input_date": "Immissione della data", + "jqui_input_time": "Immissione dell'ora", + "jqui_input_with_button": "Ingresso con pulsante", + "jqui_invert_icon": "Icona inverti", + "jqui_inverted": "Invertito", + "jqui_jquery_style": "Stile jQuery", + "jqui_max": "Valore massimo", + "jqui_min": "Valore minimo", + "jqui_name": "Titolo", + "jqui_nav_view": "Vai a vedere", + "jqui_navigation_button": "Pulsante di navigazione", + "jqui_navigation_icon": "Icona di navigazione", + "jqui_navigation_password": "Navigazione con password", + "jqui_not_equal_length": "Larghezza non uguale", + "jqui_off": "Spento", + "jqui_oid_working": "Documento d'identità funzionante", + "jqui_on": "Ab.", + "jqui_only_icon": "Solo icona", + "jqui_open": "Come elenco", + "jqui_orientation": "Orientamento", + "jqui_password": "Parola d'ordine", + "jqui_password_tooltip": "L'utente deve inserire la password per aprire la finestra di dialogo, andare alla pagina o all'URL", + "jqui_push_mode": "Modalità push", + "jqui_push_mode_tooltip": "Premendo il pulsante verrà scritto “true” mentre al rilascio del pulsante verrà scritto “false”.", + "jqui_radio_buttons_on_off": "Pulsanti di opzione (on/off)", + "jqui_radio_list": "Elenco radio con valori", + "jqui_radio_steps": "Pulsante di opzione (passi)", + "jqui_range": "allineare", + "jqui_read_only": "Sola lettura", + "jqui_repeat_delay": "Ripeti il ritardo", + "jqui_repeat_interval": "Intervallo di ripetizione", + "jqui_select_all_on_focus": "Seleziona tutto a fuoco", + "jqui_select_all_on_focus_tooltip": "Al fuoco verrà selezionato tutto il testo, quindi può essere eliminato o modificato rapidamente senza premere il pulsante Backspace", + "jqui_select_list": "Seleziona dall'elenco", + "jqui_set_label": "Stile", + "jqui_set_timeout": "Scrivi timeout", + "jqui_single": "separare", + "jqui_slider": "Dispositivo di scorrimento", + "jqui_slider_note": "Deprecato. Utilizza il widget slider con l'orientamento impostato su verticale. Mantenuto solo per compatibilità con vis.1", + "jqui_slider_vertical": "Cursore verticale", + "jqui_state_note": "Deprecato. Utilizza il widget \"Controllo stati\" con l'opzione \"incremento/decremento\". Mantenuto solo per compatibilità con vis.1", + "jqui_states_control": "Controllo degli Stati", + "jqui_stepMinute": "Passo minuto", + "jqui_test": "Valore di prova", + "jqui_text": "Testo", + "jqui_text_active": "Testo attivo", + "jqui_text_max": "Testo per il massimo", + "jqui_toggle": "Attiva/disattiva", + "jqui_tooltip": "Descrizione comando", + "jqui_true": "VERO", + "jqui_type": "Tipo", + "jqui_unit": "Unità", + "jqui_url_group": "Chiama l'URL con un clic", + "jqui_url_in_background": "URL nel back-end", + "jqui_url_in_browser": "URL nel browser", + "jqui_url_tooltip": "Questo URL verrà richiamato in background dal motore ioBroker", + "jqui_value": "Valore", + "jqui_value_label_display": "Visualizza etichetta", + "jqui_variant": "Variante", + "jqui_view_group": "Visualizzazione navigazione", + "jqui_wideFormat": "Formato ampio", + "jqui_widgetTitle": "Titolo", + "jqui_with_enter_button": "Con il pulsante Invio", + "jqui_write_state_note": "Deprecato. Utilizza il widget \"Wirte state\" con l'opzione \"incremento/decremento\". Mantenuto solo per compatibilità con vis.1", + "jqui_write_value": "Scrivi valore", + "letter-spacing": "spaziatura del carattere", + "line-height": "altezza della linea", + "material_icons_baseline": "Riempito", + "material_icons_knx-uf": "knx-uf", + "material_icons_outline": "Delineato", + "material_icons_result": "%s risultati corrispondenti", + "material_icons_round": "Girare", + "material_icons_sharp": "Affilato", + "material_icons_twotone": "Due toni", + "material_icons_upload": "Caricamento", + "multi-views": "Mostra nelle viste", + "never": "mai", + "no_reload": "nessuna ricarica", + "none": "nessuno", + "normal": "normale", + "not defined": "non definito", + "not-specified": "non definito", + "optional": "opzionale", + "order_help": "Puoi trascinare e rilasciare qualsiasi elemento o fare clic sull'elemento con cui verrà scambiato il widget selezionato", + "orientation": "Orientamento", + "profile": "Profilo", + "qui_Bool SVG": "SVG booleano", + "reload": "ricaricare", + "search text": "Cerca testo", + "set_basic": "di base", + "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-0": "Testo [0]", + "signals-text-1": "Testo [1]", + "signals-text-2": "Testo [2]", + "sub_view_tooltip": "Viene utilizzato per scopi speciali, come la navigazione Jaeger-Design", + "text-shadow": "testo-ombra", + "text_false": "Testo falso", + "text_true": "Testo vero", + "to version": "alla versione", + "value_string": "Corda", + "version": "versione", + "vertical": "verticale", + "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": "Ridimensionabile", + "vis_2_widgets_basic_cannot_recursive": "Impossibile utilizzare visualizzazioni ricorsive", + "vis_2_widgets_basic_contains_view": "Usa vista", + "vis_2_widgets_basic_view_in_widget": "Visualizza nel widget", + "vis_2_widgets_basic_view_not_defined": "Vista non definita", + "vis_2_widgets_swipe_hide_indication_label": "Nascondi indicazione", + "vis_2_widgets_swipe_threshold_label": "Soglia", + "vis_2_widgets_widgets_swipe_label": "Swipe", + "vis_2_widgets_widgets_tabs_color": "Colore", + "vis_2_widgets_widgets_tabs_group_tab": "Scheda", + "vis_2_widgets_widgets_tabs_label": "Schede", + "vis_2_widgets_widgets_tabs_show_tabs": "Numero", + "vis_2_widgets_widgets_tabs_tab_icon": "Icona", + "vis_2_widgets_widgets_tabs_tab_icon_color": "Colore", + "vis_2_widgets_widgets_tabs_tab_icon_size": "Dimensione dell'icona", + "vis_2_widgets_widgets_tabs_tab_image": "Immagine", + "vis_2_widgets_widgets_tabs_tab_overflow_x": "Traboccamento X", + "vis_2_widgets_widgets_tabs_tab_overflow_y": "Traboccamento Y", + "vis_2_widgets_widgets_tabs_tab_title": "Titolo", + "vis_2_widgets_widgets_tabs_tab_view": "Visualizzazione", + "vis_2_widgets_widgets_tabs_variant": "Variante", + "vis_2_widgets_widgets_tabs_variant_centered": "centrato", + "vis_2_widgets_widgets_tabs_variant_default": "Predefinito", + "vis_2_widgets_widgets_tabs_variant_full_width": "intera larghezza", + "vis_2_widgets_widgets_tabs_vertical": "Verticale", + "welcome_message": "Non esiste ancora un progetto.", + "word-spacing": "spaziatura delle parole" } \ No newline at end of file diff --git a/packages/iobroker.vis-2/src/src/i18n/nl.json b/packages/iobroker.vis-2/src/src/i18n/nl.json index 262a85ba..76f87f49 100644 --- a/packages/iobroker.vis-2/src/src/i18n/nl.json +++ b/packages/iobroker.vis-2/src/src/i18n/nl.json @@ -1,753 +1,755 @@ { - "%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": "Toevoegen", - "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\n", - "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": "Beheerder", - "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.", - "Aluminium1": "Aluminium1", - "Aluminium2": "Aluminium2", - "App bar": "Toepassingsbalk", - "Apply": "Toepassen", - "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": "attributen", - "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": "Basis", - "Benutzer": "Benutzer", - "Blue flowers": "Blauwe bloemen", - "Blue marine": "Marine blauw", - "Blue marine lines": "Blauwe zeelijnen", - "Blueprint grid": "Blauwdrukraster", - "Bricks": "Bakstenen", - "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", - "CSS": "CSS", - "CSS Class": "CSS-klasse", - "CSS Common": "CSS algemeen", - "CSS Font & Text": "CSS-lettertype en tekst", - "CSS background (background-...)": "CSS achtergrond (background-...)", - "Cancel": "Annuleren", - "Cannot use recursive views": "Kan recursieve weergaven niet gebruiken", - "Carbon fibre": "Koolstofvezel", - "Carbon fibre1": "Koolstofvezel1", - "Chevron icon color": "Kleur van de showknop", - "Clear": "Duidelijk", - "Clear filter": "Filter wissen", - "Click to close": "Klik om te sluiten", - "Clone widget": "Kloon-widget", - "Close": "Dichtbij", - "Close all": "Alles inklappen", - "Close all but current view": "Sluit alles behalve de huidige weergave", - "Close editor": "Bewerker sluiten", - "Collapse all": "Alles inklappen", - "Colorful": "Kleurrijk", - "Column gap": "Kolomafstand", - "Column width": "Kolombreedte", - "Comment": "Opmerking", - "Convert %s to %s": "Converteer %s naar %s", - "Copied %s": "%s gekopieerd", - "Copied to clipboard": "Gekopieerd naar het klembord", - "Copy": "Kopiëren", - "Copy noun": "Kopiëren", - "Copy to clipboard": "Kopieer naar klembord", - "Copy view \"%s\"": "Kopieer weergave \"%s\"", - "Create": "Creëren", - "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": "Snee", - "Dark reconnect screen": "Donker scherm voor opnieuw verbinden", - "Deactivate binding and use field as standard input": "Deactiveer binding en gebruik veld als standaardinvoer", - "Default": "Standaard", - "Default view": "Standaard weergave", - "Default: auto": "Standaard: \"auto\"", - "Delete": "Verwijderen", - "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": "Apparaten", - "Disabled": "Gehandicapt", - "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?", - "Drag me": "Sleep mij", - "Drop the files here ...": "Zet de bestanden hier neer...", - "Duplicate": "Duplicaat", - "Duplicate folder": "Dupliceer de map", - "Duplicate profile": "Dupliceer het profiel", - "Edit": "Bewerking", - "Edit binding": "Binding bewerken", - "Edit folder": "Map bewerken", - "Edit group": "Groep bewerken", - "Edit profile": "Bewerk profiel", - "Elements": "elementen", - "Enabled": "Ingeschakeld", - "Enter": "Binnenkomen", - "Enter password": "Voer wachtwoord in", - "Expand all": "Alles uitvouwen", - "Explanation": "Uitleg", - "Export": "Exporteren", - "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": "Bestanden", - "Filter widgets": "Filterwidgets", - "Fm dark background": "Fm donkere achtergrond", - "Fm light background": "FM lichte achtergrond", - "For widgets with relative position": "Voor widgets met relatieve positie", - "Fr": "Fr", - "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": "Voor alle projecten", - "Gradient box": "Verloopdoos", - "Gray 0": "Grijs 0", - "Gray 1": "Grijs 1", - "Grid": "Rooster", - "Group": "Groep", - "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": "Hoogte", - "Hide": "Verbergen", - "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": "Hoog", - "High priority": "Hoge prioriteit", - "Highest eg. Holiday": "Hoogste bijv. Vakantie", - "Horizontal": "Horizontaal", - "Icon": "Icoon", - "If user not in group": "Indien gebruiker niet in groep", - "Ignore": "Negeren", - "Ignored in edit mode": "Genegeerd in bewerkingsmodus", - "Image": "Afbeelding", - "Import": "Importeren", - "Import project": "Project importeren", - "Import widgets": "Widgets importeren", - "Initial filter": "Eerste filter", - "Instance": "Voorbeeld", - "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 screen": "Beperk scherm", - "Lined paper": "Lijntjes papier", - "Lock": "Op slot doen", - "Lock dragging": "Vergrendelen slepen", - "Manage projects": "Projecten beheren", - "Manage views": "Weergaven beheren", - "Menu header text": "Menukoptekst", - "Menu header text color": "Tekstkleur menukop", - "Message": "Bericht", - "Mo": "Mo", - "Modify": "Bewerken", - "More": "Meer", - "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": "Naam", - "Name is not unique": "Naam is niet uniek", - "Name of copy": "Naam van exemplaar", - "Narrow panel": "smal paneel", - "Navigation": "Navigatie", - "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": "Nee", - "No background": "Geen achtergrond", - "Normal": "normaal", - "OFF": "OFF", - "ON": "ON", - "Objects": "Voorwerpen", - "Ok": "OK", - "On/Off": "Aan uit", - "One parameter": "Eén parameter", - "Only for groups": "Alleen voor groepen", - "Only the admin user can change permissions": "Alleen de admin-gebruiker kan machtigingen wijzigen", - "Open": "Open", - "Open all": "Alles uitvouwen", - "Open it?": "Open het?", - "Open runtime in new window": "Open runtime in nieuw venster", - "Open widgeteria": "Widgeteria openen", - "Options": "Opties", - "Order": "Volgorde", - "Orientation": "Oriëntatie", - "Palette": "Palet", - "Paste": "Plakken", - "Percent": "procent", - "Permissions": "Rechten", - "Pixel 5 - Landscape": "Pixel 5 - Liggend", - "Pixel 5 - Portrait": "Pixel 5 - Portret", - "Priority": "Prioriteit", - "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 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": "Projecten", - "Radial blue": "Radiaal blauw", - "Read": "Lezen", - "Read = Runtime access": "Lezen = Runtime-toegang", - "Read about currentColor in SVG": "Lees meer over currentColor in SVG", - "Received user command: %s": "Gebruikersopdracht ontvangen: %s", - "Reconnect interval": "Interval opnieuw verbinden", - "Redo": "Opnieuw doen", - "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": "Herladen", - "Rename": "Hernoemen", - "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": "Oplossing", - "Responsive settings": "Responsieve instellingen", - "Row gap": "Rijafstand", - "Sa": "Sa", - "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": "Opslaan", - "Scripts": "Scripts", - "Search": "Zoeken", - "Select": "Selecteer", - "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": "Instellingen", - "Should it be moved to new place?": "Moet het naar een nieuwe plek worden verplaatst?", - "Show": "Show", - "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 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": "Stijl", - "Su": "Su", - "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": "Tabbladen", - "Temperature": "Temperatuur", - "Text color": "Tekst kleur", - "Text color if selected": "Tekstkleur indien geselecteerd", - "Text edit": "Tekst bewerken", - "Th": "Th", - "Theme": "Thema", - "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": "Titel", - "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": "Tu", - "Type": "Type", - "Undo": "ongedaan maken", - "Ungroup": "Degroeperen", - "Uninstall": "Verwijderen", - "Unknown widget type \"%s\"": "Onbekend widgettype \"%s\"", - "Unlock": "Ontgrendelen", - "Update": "Update", - "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": "Waarde", - "Vertical": "Verticaal", - "View": "Visie", - "View not defined": "Weergave niet gedefinieerd", - "We": "Mi", - "Weekend": "Weekend", - "Widget": "Widget", - "Widget CSS": "Widget-CSS", - "Widget JS": "Widget-JS", - "Widget was deleted in widgeteria": "Widget is verwijderd in widgeteria", - "Widgets": "Widgets", - "Width": "Breedte", - "Width x height (px)": "Breedte x hoogte (px)", - "Write": "Schrijven", - "Write = Edit mode access": "Schrijven = Toegang tot bewerkingsmodus", - "Writer": "auteur", - "Wrong password": "Verkeerd wachtwoord", - "Yes": "Ja", - "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": "Widgetaria", - "ace_All": "Alle", - "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": "Tooltip door false", - "alt_true": "Tooltip van true", - "anonymize": "anonimiseren", - "apply_to_all": "Voor iedereen", - "attr_none": "none", - "basic_arrow": "Pijl", - "basic_borderColor": "Rand kleur", - "basic_borderRadius": "Randradius", - "basic_circle": "Cirkel", - "basic_custom": "Aangepaste veelhoek", - "basic_hexagone": "Zeshoek", - "basic_line": "Lijn", - "basic_octagone": "Achthoek", - "basic_pentagone": "Pentagon", - "basic_pin": "Pin", - "basic_speech2text_continuous": "continu", - "basic_speech2text_detected": "Gedetecteerd", - "basic_speech2text_en_us": "Engels", - "basic_speech2text_height": "Hoogte (px)", - "basic_speech2text_image_active": "Actief", - "basic_speech2text_image_inactive": "Inactief", - "basic_speech2text_info_allow": "Klik op de knop 'Toestaan' hierboven om uw microfoon in te schakelen.", - "basic_speech2text_info_blocked": "Toestemming om de microfoon te gebruiken is geblokkeerd. Ga naar chrome://settings/contentExceptions#media-stream om dit te wijzigen", - "basic_speech2text_info_denied": "Toestemming voor het gebruik van de microfoon is geweigerd.", - "basic_speech2text_info_no_microphone": "Er is geen microfoon gevonden. Zorg ervoor dat er een microfoon is geïnstalleerd en dat microfooninstellingen correct zijn geconfigureerd.", - "basic_speech2text_info_no_speech": "Er werd geen spraak gedetecteerd. Mogelijk moet u uw microfooninstellingen aanpassen.", - "basic_speech2text_info_speak_now": "Nu spreken.", - "basic_speech2text_info_start": "Klik op het microfoonpictogram en begin te spreken.", - "basic_speech2text_info_upgrade": "Web Speech API wordt niet ondersteund door deze browser. Upgrade naar Chrome versie 25 of hoger.", - "basic_speech2text_key_word_color": "Sleutelwoord kleur", - "basic_speech2text_key_word_color_tooltip": "Tekstkleur, indien sleutelwoord gevonden", - "basic_speech2text_keywords": "Trefwoorden", - "basic_speech2text_no_image": "Geen afbeelding", - "basic_speech2text_no_results": "Geen resultaten", - "basic_speech2text_no_text": "Geen helptekst", - "basic_speech2text_ru_ru": "Russisch", - "basic_speech2text_sent": "Verstuurd", - "basic_speech2text_single": "enkel", - "basic_speech2text_speech_mode": "Spraakmodus", - "basic_speech2text_start_stop": "start Stop", - "basic_speech2text_started": "Begonnen", - "basic_speech2text_text_sent_color": "Kleur verzonden tekst", - "basic_speech2text_text_sent_color_tooltip": "Tekstkleur, wanneer tekst wordt verzonden om deze te verwerken", - "basic_speech2text_width": "Breedte (px)", - "basic_square": "Vierkant", - "basic_star": "Ster", - "basic_triangle": "Driehoek", - "block": "blok", - "color": "kleur", - "color_false": "Kleur op false", - "color_true": "Kleur op waar", - "convert from widgeteria widget": "converteren van widgeteria-widget", - "copy": "kopie", - "css_project": "Voor dit project", - "custom_icons": "Speciaal", - "different": "verschillend", - "display": "Scherm", - "finish searching": "zoeken klaar", - "flex": "buigen", - "flexible": "flexibel", - "folder": "Map", - "font-family": "font-familie", - "font-size": "lettertypegrootte", - "font-style": "lettertype", - "font-variant": "lettertype-variant", - "font-weight": "lettertype dikte", - "group": "Groep", - "group_attrName": "Naam", - "group_attrType": "Type", - "group_fields": "attributen", - "group_help": "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.", - "group_icon_false": "Icoon door false", - "group_icon_true": "Icoon van waar", - "group_size_hint": "U kunt de groepsgrootte wijzigen door deze te selecteren in de vervolgkeuzewidgetkiezer of door op deze tekst te klikken", - "group_text": "Tekst", - "help_css_global": "Deze CSS wordt toegepast op alle projecten", - "help_css_project": "Deze CSS wordt alleen toegepast op dit project", - "hide": "verbergen", - "hide code": "code verbergen", - "horizontal": "horizontaal", - "hr": "uur", - "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": "Pictogramgrootte in pixels", - "icon_upload_hint": "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.", - "imageHeight_false": "Hoogte afbeelding", - "imageHeight_true": "Hoogte afbeelding", - "invert_icon_false": "Pictogram omkeren", - "invert_icon_true": "Pictogram omkeren", - "jqui_Add new value": "Voeg nieuwe waarde toe", - "jqui_Are you sure?": "Weet je het zeker?", - "jqui_Bulk edit": "Bulkbewerking", - "jqui_Close": "Dichtbij", - "jqui_Example": "Voorbeeld", - "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": "Procenten", - "jqui_Replace to": "Vervangen door", - "jqui_Select file": "Selecteer afbeelding", - "jqui_active_color": "Actieve kleur", - "jqui_ampm": "AM PM", - "jqui_asDate": "Als datum", - "jqui_asFullDate": "Gebruik van volledige parseerbare datum", - "jqui_as_string": "Als touwtje", - "jqui_auto": "auto", - "jqui_binary_control": "Binaire controle", - "jqui_button_binary_control_note": "Verouderd. Gebruik de widget \"Binaire controle\". Alleen bewaard voor compatibiliteit met vis.1", - "jqui_button_color": "Knop kleur", - "jqui_button_dialog_close": "Dialoogvenster sluitknop", - "jqui_button_input_note": "Verouderd. Gebruik de \"Invoer\"-widget. Alleen bewaard voor compatibiliteit met vis.1", - "jqui_button_link": "Spring naar URL", - "jqui_button_link_blank": "Spring naar URL (in nieuw venster)", - "jqui_button_link_blank_note": "Verouderd. Gebruik de eerste widget met de optie \"Openen in nieuw venster\". Alleen behouden voor compatibiliteit met vis.1", - "jqui_button_nav_blank_note": "Verouderd. Gebruik de eerste widget met de optie \"Ga naar weergave\". Alleen bewaard voor compatibiliteit met vis.1", - "jqui_button_text": "Knop tekst", - "jqui_buttontext_view": "Gebruik de weergavenaam als titel", - "jqui_clearable": "Verwijderbaar", - "jqui_color": "Kleur", - "jqui_container_button_dialog": "Button=>Paginadialoogvenster", - "jqui_container_dialog": "Containerdialoogvenster", - "jqui_container_icon_dialog": "Icon=>Paginadialoogvenster", - "jqui_dialog_name": "Dialoognaam", - "jqui_dialog_set_id_tooltip": "Status instellen door dialoogvenster te openen", - "jqui_disableFuture": "Toekomst uitschakelen", - "jqui_disablePast": "Schakel verleden uit", - "jqui_displayWeekNumber": "Weeknummer weergeven", - "jqui_equal_text_length": "Gelijke tekstlengtes", - "jqui_equal_text_length_tooltip": "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\".", - "jqui_external_dialog": "Externe dialoog", - "jqui_external_dialog_tooltip": "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.", - "jqui_false": "Vals", - "jqui_from_oid": "Van ander voorwerp", - "jqui_from_value": "Van statische waarde", - "jqui_generate": "Genereer", - "jqui_group_value": "Waarde", - "jqui_hide_close_button": "Sluitknop verbergen", - "jqui_href_tooltip": "Deze URL wordt in de browser aangeroepen", - "jqui_html": "HTML", - "jqui_html_dialog": "HTML-dialoogvenster", - "jqui_html_external_dialog": "Externe dialoog", - "jqui_html_false": "HTML door false", - "jqui_html_tooltip": "HTML kan alleen worden geconfigureerd als tekst en pictogram leeg zijn", - "jqui_html_true": "HTML door waar", - "jqui_icon": "Icoon", - "jqui_icon_active": "Actief icoon", - "jqui_icon_dialog": "Pictogramdialoog", - "jqui_icon_http_get": "Aanroep-URL in backend", - "jqui_icon_increment": "Verhogen met Icoon", - "jqui_icon_link": "Spring naar URL (met icoon)", - "jqui_icon_max": "Icoon voor maximum", - "jqui_icon_state_bool": "Booleaanse pictogramknop", - "jqui_icon_state_push_button": "Druk op de knop", - "jqui_icon_toggle": "Schakelknop met pictogram", - "jqui_image": "Afbeelding", - "jqui_image_active": "Actief beeld", - "jqui_image_height": "Hoogte afbeelding", - "jqui_image_max": "Afbeelding voor maximaal", - "jqui_increment_decrement": "Verhogen/verlagen", - "jqui_input": "Invoer", - "jqui_input_date": "Invoer van datum", - "jqui_input_time": "Invoer van tijd", - "jqui_input_with_button": "Ingang met knop", - "jqui_invert_icon": "Pictogram omkeren", - "jqui_inverted": "Omgekeerd", - "jqui_jquery_style": "jQuery-stijl", - "jqui_max": "Maximale waarde", - "jqui_min": "Minimale waarde", - "jqui_name": "Titel", - "jqui_nav_view": "Ga naar bekijken", - "jqui_navigation_button": "Navigatieknop", - "jqui_navigation_icon": "Navigatiepictogram", - "jqui_navigation_password": "Navigatie met wachtwoord", - "jqui_not_equal_length": "Niet gelijke breedte", - "jqui_off": "Uit", - "jqui_oid_working": "Werkende ID", - "jqui_on": "Ing.", - "jqui_only_icon": "Alleen icoon", - "jqui_open": "Als lijst", - "jqui_orientation": "Oriëntatie", - "jqui_password": "Wachtwoord", - "jqui_password_tooltip": "De gebruiker moet een wachtwoord invoeren om het dialoogvenster te openen en naar de pagina of URL te gaan", - "jqui_push_mode": "Push-modus", - "jqui_push_mode_tooltip": "Als u op de knop drukt, wordt 'true' geschreven en als u de knop loslaat, wordt 'false' geschreven.", - "jqui_radio_buttons_on_off": "Keuzerondjes (aan/uit)", - "jqui_radio_list": "Radiolijst met waarden", - "jqui_radio_steps": "Keuzerondje (stappen)", - "jqui_range": "bereik", - "jqui_read_only": "Alleen lezen", - "jqui_repeat_delay": "Herhalingsvertraging", - "jqui_repeat_interval": "Herhaal interval", - "jqui_select_all_on_focus": "Selecteer alles met focus", - "jqui_select_all_on_focus_tooltip": "Bij focus wordt alle tekst geselecteerd, zodat deze snel kan worden verwijderd of gewijzigd zonder op de backspace-knop te drukken", - "jqui_select_list": "Selecteer uit de lijst", - "jqui_set_label": "Gestileerd", - "jqui_set_timeout": "Time-out schrijven", - "jqui_single": "enkel", - "jqui_slider": "Schuifregelaar", - "jqui_slider_note": "Verouderd. Gebruik de schuifwidget met de oriëntatie ingesteld op verticaal. Alleen bewaard voor compatibiliteit met vis.1", - "jqui_slider_vertical": "Verticale schuifregelaar", - "jqui_state_note": "Verouderd. Gebruik de widget \"Statescontrole\" met de optie \"verhogen/verlagen\". Alleen bewaard voor compatibiliteit met vis.1", - "jqui_states_control": "Controle door staten", - "jqui_stepMinute": "Stap minuut", - "jqui_test": "Testwaarde", - "jqui_text": "Tekst", - "jqui_text_active": "Actieve tekst", - "jqui_text_max": "Tekst voor maximaal", - "jqui_toggle": "Schakelaar", - "jqui_tooltip": "Tooltip", - "jqui_true": "WAAR", - "jqui_type": "Type", - "jqui_unit": "Eenheid", - "jqui_url_group": "Bel URL door te klikken", - "jqui_url_in_background": "URL in back-end", - "jqui_url_in_browser": "URL in browser", - "jqui_url_tooltip": "Deze URL wordt op de achtergrond aangeroepen door de ioBroker-engine", - "jqui_value": "Waarde", - "jqui_value_label_display": "Etiket weergeven", - "jqui_variant": "Variant", - "jqui_view_group": "Navigatieweergave", - "jqui_wideFormat": "Breed formaat", - "jqui_widgetTitle": "Titel", - "jqui_with_enter_button": "Met enterknop", - "jqui_write_state_note": "Verouderd. Gebruik de widget \"Wirte state\" met de optie \"verhogen/verlagen\". Alleen bewaard voor compatibiliteit met vis.1", - "jqui_write_value": "Schrijf waarde", - "letter-spacing": "letterafstand", - "line-height": "lijnhoogte", - "material_icons_baseline": "Gevuld", - "material_icons_knx-uf": "knx-uf", - "material_icons_outline": "geschetst", - "material_icons_result": "%s overeenkomende resultaten", - "material_icons_round": "Ronde", - "material_icons_sharp": "Scherp", - "material_icons_twotone": "Twee toon", - "material_icons_upload": "Uploaden", - "multi-views": "Weergeven in weergaven", - "never": "nooit", - "no_reload": "geen herladen", - "none": "geen", - "normal": "normaal", - "not defined": "niet gedefinieerd", - "not-specified": "niet gedefinieerd", - "optional": "optioneel", - "order_help": "U kunt elk item slepen en neerzetten of klikken op het item waarmee de geselecteerde widget wordt verwisseld", - "orientation": "oriëntatie", - "profile": "Profiel", - "qui_Bool SVG": "Booleaanse SVG", - "reload": "herladen", - "search text": "Zoek tekst", - "set_basic": "basis", - "signals-count": "Aantal signalen", - "signals-smallIcon-0": "Klein pictogram [0]", - "signals-smallIcon-1": "Klein icoontje [1]", - "signals-smallIcon-2": "Klein icoontje [3]", - "signals-text-0": "Tekst [0]", - "signals-text-1": "Tekst [1]", - "signals-text-2": "Tekst [2]", - "text-shadow": "schaduw tekst", - "text_false": "Tekst door false", - "text_true": "Tekst door waar", - "to version": "naar versie", - "value_string": "snaar", - "version": "versie", - "vertical": "verticaal", - "visResizable": "Aanpasbaar", - "vis_2_widgets_basic_cannot_recursive": "Kan recursieve weergaven niet gebruiken", - "vis_2_widgets_basic_contains_view": "Gebruik weergave", - "vis_2_widgets_basic_view_in_widget": "Bekijk in widget", - "vis_2_widgets_basic_view_not_defined": "Weergave niet gedefinieerd", - "vis_2_widgets_widgets_tabs_color": "Kleur", - "vis_2_widgets_widgets_tabs_group_tab": "tabblad", - "vis_2_widgets_widgets_tabs_label": "Tabbladen", - "vis_2_widgets_widgets_tabs_show_tabs": "Nummer", - "vis_2_widgets_widgets_tabs_tab_icon": "Icoon", - "vis_2_widgets_widgets_tabs_tab_icon_color": "Kleur", - "vis_2_widgets_widgets_tabs_tab_icon_size": "Pictogram grootte", - "vis_2_widgets_widgets_tabs_tab_image": "Afbeelding", - "vis_2_widgets_widgets_tabs_tab_overflow_x": "Overloop X", - "vis_2_widgets_widgets_tabs_tab_overflow_y": "Overloop Y", - "vis_2_widgets_widgets_tabs_tab_title": "Titel", - "vis_2_widgets_widgets_tabs_tab_view": "Weergave", - "vis_2_widgets_widgets_tabs_variant": "Variant", - "vis_2_widgets_widgets_tabs_variant_centered": "gecentreerd", - "vis_2_widgets_widgets_tabs_variant_default": "Standaard", - "vis_2_widgets_widgets_tabs_variant_full_width": "volle breedte", - "vis_2_widgets_widgets_tabs_vertical": "Verticaal", - "welcome_message": "Er is nog geen enkel project.", - "word-spacing": "woordspatiëring", - "basic_sub_view": "Subweergave", - "sub_view_tooltip": "Het wordt gebruikt voor speciale doeleinden, zoals navigatie in jaeger-design", - "basic_no_filter_text": "Etiket \"Geen filter\".", - "basic_no_all_option": "Geen optie \"Geen filter\".", - "basic_filter_multiple": "Meerdere selectie", - "basic_filter_type_dropdown": "Drop-down menu", - "basic_filter_type_horizontal_buttons": "Horizontale knoppen", - "basic_filter_type_vertical_buttons": "Verticale knoppen", - "basic_no_filter": "Geen filter", - "basic_all_filters": "Voeg alles links toe", - "Only for desktop": "Alleen voor desktop", - "Include widget?": "Widget toevoegen?", - "Do you want to include \"%s\" widget into \"%s\"?": "Wilt u de widget \"%s\" opnemen in \"%s\"?", - "Unselect": "Deselecteer", - "All": "Alle", - "Load project file...": "Projectbestand laden...", - "Load widgets...": "Widgets laden...", - "Loading objects...": "Objecten laden...", - "Following views will be changed": "De volgende weergaven zullen worden gewijzigd", - "Show this attribute by all views": "Toon dit attribuut bij alle weergaven", - "Menu width": "Menubreedte", - "Do not ask again": "Niet meer vragen", - "vis-2-widgets-basic-input_value": "Invoerwaarde", - "vis-2-widgets-basic-autoSetDelay": "Vertraging voor automatisch schrijven", - "vis-2-widgets-basic-noStyle": "Geen stijl", - "Clone": "Kloon", - "jqui_Write state": "Schrijf staat", - "vis_2_widgets_widgets_swipe_label": "Swipe", - "vis_2_widgets_swipe_hide_indication_label": "Indicatie verbergen", - "vis_2_widgets_swipe_threshold_label": "Drempelwaarde" + "%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": "Toevoegen", + "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\n", + "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": "Beheerder", + "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": "Alle", + "Aluminium1": "Aluminium1", + "Aluminium2": "Aluminium2", + "App bar": "Toepassingsbalk", + "Apply": "Toepassen", + "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": "attributen", + "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": "Basis", + "Benutzer": "Benutzer", + "Blue flowers": "Blauwe bloemen", + "Blue marine": "Marine blauw", + "Blue marine lines": "Blauwe zeelijnen", + "Blueprint grid": "Blauwdrukraster", + "Bricks": "Bakstenen", + "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", + "CSS": "CSS", + "CSS Class": "CSS-klasse", + "CSS Common": "CSS algemeen", + "CSS Font & Text": "CSS-lettertype en tekst", + "CSS background (background-...)": "CSS achtergrond (background-...)", + "Cancel": "Annuleren", + "Cannot use recursive views": "Kan recursieve weergaven niet gebruiken", + "Carbon fibre": "Koolstofvezel", + "Carbon fibre1": "Koolstofvezel1", + "Chevron icon color": "Kleur van de showknop", + "Clear": "Duidelijk", + "Clear filter": "Filter wissen", + "Click to close": "Klik om te sluiten", + "Clone": "Kloon", + "Clone widget": "Kloon-widget", + "Close": "Dichtbij", + "Close all": "Alles inklappen", + "Close all but current view": "Sluit alles behalve de huidige weergave", + "Close editor": "Bewerker sluiten", + "Collapse all": "Alles inklappen", + "Colorful": "Kleurrijk", + "Column gap": "Kolomafstand", + "Column width": "Kolombreedte", + "Comment": "Opmerking", + "Convert %s to %s": "Converteer %s naar %s", + "Copied %s": "%s gekopieerd", + "Copied to clipboard": "Gekopieerd naar het klembord", + "Copy": "Kopiëren", + "Copy noun": "Kopiëren", + "Copy to clipboard": "Kopieer naar klembord", + "Copy view \"%s\"": "Kopieer weergave \"%s\"", + "Create": "Creëren", + "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": "Snee", + "Dark reconnect screen": "Donker scherm voor opnieuw verbinden", + "Deactivate binding and use field as standard input": "Deactiveer binding en gebruik veld als standaardinvoer", + "Default": "Standaard", + "Default view": "Standaard weergave", + "Default: auto": "Standaard: \"auto\"", + "Delete": "Verwijderen", + "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": "Apparaten", + "Disabled": "Gehandicapt", + "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": "Duplicaat", + "Duplicate folder": "Dupliceer de map", + "Duplicate profile": "Dupliceer het profiel", + "Edit": "Bewerking", + "Edit binding": "Binding bewerken", + "Edit folder": "Map bewerken", + "Edit group": "Groep bewerken", + "Edit profile": "Bewerk profiel", + "Elements": "elementen", + "Enabled": "Ingeschakeld", + "Enter": "Binnenkomen", + "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": "Uitleg", + "Export": "Exporteren", + "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": "Bestanden", + "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": "Fr", + "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": "Voor alle projecten", + "Gradient box": "Verloopdoos", + "Gray 0": "Grijs 0", + "Gray 1": "Grijs 1", + "Grid": "Rooster", + "Group": "Groep", + "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": "Hoogte", + "Hide": "Verbergen", + "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": "Hoog", + "High priority": "Hoge prioriteit", + "Highest eg. Holiday": "Hoogste bijv. Vakantie", + "Horizontal": "Horizontaal", + "Icon": "Icoon", + "If user not in group": "Indien gebruiker niet in groep", + "Ignore": "Negeren", + "Ignored in edit mode": "Genegeerd in bewerkingsmodus", + "Image": "Afbeelding", + "Import": "Importeren", + "Import project": "Project importeren", + "Import widgets": "Widgets importeren", + "Include widget?": "Widget toevoegen?", + "Initial filter": "Eerste filter", + "Instance": "Voorbeeld", + "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": "Op slot doen", + "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": "Bericht", + "Mo": "Mo", + "Modify": "Bewerken", + "More": "Meer", + "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": "Naam", + "Name is not unique": "Naam is niet uniek", + "Name of copy": "Naam van exemplaar", + "Narrow panel": "smal paneel", + "Navigation": "Navigatie", + "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": "Nee", + "No background": "Geen achtergrond", + "Normal": "normaal", + "OFF": "OFF", + "ON": "ON", + "Objects": "Voorwerpen", + "Ok": "OK", + "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": "Open", + "Open all": "Alles uitvouwen", + "Open it?": "Open het?", + "Open runtime in new window": "Open runtime in nieuw venster", + "Open widgeteria": "Widgeteria openen", + "Options": "Opties", + "Order": "Volgorde", + "Orientation": "Oriëntatie", + "Palette": "Palet", + "Paste": "Plakken", + "Percent": "procent", + "Permissions": "Rechten", + "Pixel 5 - Landscape": "Pixel 5 - Liggend", + "Pixel 5 - Portrait": "Pixel 5 - Portret", + "Priority": "Prioriteit", + "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 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": "Projecten", + "Radial blue": "Radiaal blauw", + "Read": "Lezen", + "Read = Runtime access": "Lezen = Runtime-toegang", + "Read about currentColor in SVG": "Lees meer over currentColor in SVG", + "Received user command: %s": "Gebruikersopdracht ontvangen: %s", + "Reconnect interval": "Interval opnieuw verbinden", + "Redo": "Opnieuw doen", + "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": "Herladen", + "Rename": "Hernoemen", + "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": "Oplossing", + "Responsive settings": "Responsieve instellingen", + "Row gap": "Rijafstand", + "Sa": "Sa", + "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": "Opslaan", + "Scripts": "Scripts", + "Search": "Zoeken", + "Select": "Selecteer", + "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": "Instellingen", + "Should it be moved to new place?": "Moet het naar een nieuwe plek worden verplaatst?", + "Show": "Show", + "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 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": "Stijl", + "Su": "Su", + "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": "Tabbladen", + "Temperature": "Temperatuur", + "Text color": "Tekst kleur", + "Text color if selected": "Tekstkleur indien geselecteerd", + "Text edit": "Tekst bewerken", + "Th": "Th", + "Theme": "Thema", + "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": "Titel", + "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": "Tu", + "Type": "Type", + "Undo": "ongedaan maken", + "Ungroup": "Degroeperen", + "Uninstall": "Verwijderen", + "Unknown widget type \"%s\"": "Onbekend widgettype \"%s\"", + "Unlock": "Ontgrendelen", + "Unselect": "Deselecteer", + "Update": "Update", + "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": "Waarde", + "Vertical": "Verticaal", + "View": "Visie", + "View not defined": "Weergave niet gedefinieerd", + "We": "Mi", + "Weekend": "Weekend", + "Widget": "Widget", + "Widget CSS": "Widget-CSS", + "Widget JS": "Widget-JS", + "Widget was deleted in widgeteria": "Widget is verwijderd in widgeteria", + "Widgets": "Widgets", + "Width": "Breedte", + "Width x height (px)": "Breedte x hoogte (px)", + "Write": "Schrijven", + "Write = Edit mode access": "Schrijven = Toegang tot bewerkingsmodus", + "Writer": "auteur", + "Wrong password": "Verkeerd wachtwoord", + "Yes": "Ja", + "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": "Widgetaria", + "ace_All": "Alle", + "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": "Tooltip door false", + "alt_true": "Tooltip van true", + "anonymize": "anonimiseren", + "apply_to_all": "Voor iedereen", + "attr_none": "none", + "basic_all_filters": "Voeg alles links toe", + "basic_arrow": "Pijl", + "basic_borderColor": "Rand kleur", + "basic_borderRadius": "Randradius", + "basic_circle": "Cirkel", + "basic_custom": "Aangepaste veelhoek", + "basic_filter_multiple": "Meerdere selectie", + "basic_filter_type_dropdown": "Drop-down menu", + "basic_filter_type_horizontal_buttons": "Horizontale knoppen", + "basic_filter_type_vertical_buttons": "Verticale knoppen", + "basic_hexagone": "Zeshoek", + "basic_line": "Lijn", + "basic_no_all_option": "Geen optie \"Geen filter\".", + "basic_no_filter": "Geen filter", + "basic_no_filter_text": "Etiket \"Geen filter\".", + "basic_octagone": "Achthoek", + "basic_pentagone": "Pentagon", + "basic_pin": "Pin", + "basic_speech2text_continuous": "continu", + "basic_speech2text_detected": "Gedetecteerd", + "basic_speech2text_en_us": "Engels", + "basic_speech2text_height": "Hoogte (px)", + "basic_speech2text_image_active": "Actief", + "basic_speech2text_image_inactive": "Inactief", + "basic_speech2text_info_allow": "Klik op de knop 'Toestaan' hierboven om uw microfoon in te schakelen.", + "basic_speech2text_info_blocked": "Toestemming om de microfoon te gebruiken is geblokkeerd. Ga naar chrome://settings/contentExceptions#media-stream om dit te wijzigen", + "basic_speech2text_info_denied": "Toestemming voor het gebruik van de microfoon is geweigerd.", + "basic_speech2text_info_no_microphone": "Er is geen microfoon gevonden. Zorg ervoor dat er een microfoon is geïnstalleerd en dat microfooninstellingen correct zijn geconfigureerd.", + "basic_speech2text_info_no_speech": "Er werd geen spraak gedetecteerd. Mogelijk moet u uw microfooninstellingen aanpassen.", + "basic_speech2text_info_speak_now": "Nu spreken.", + "basic_speech2text_info_start": "Klik op het microfoonpictogram en begin te spreken.", + "basic_speech2text_info_upgrade": "Web Speech API wordt niet ondersteund door deze browser. Upgrade naar Chrome versie 25 of hoger.", + "basic_speech2text_key_word_color": "Sleutelwoord kleur", + "basic_speech2text_key_word_color_tooltip": "Tekstkleur, indien sleutelwoord gevonden", + "basic_speech2text_keywords": "Trefwoorden", + "basic_speech2text_no_image": "Geen afbeelding", + "basic_speech2text_no_results": "Geen resultaten", + "basic_speech2text_no_text": "Geen helptekst", + "basic_speech2text_ru_ru": "Russisch", + "basic_speech2text_sent": "Verstuurd", + "basic_speech2text_single": "enkel", + "basic_speech2text_speech_mode": "Spraakmodus", + "basic_speech2text_start_stop": "start Stop", + "basic_speech2text_started": "Begonnen", + "basic_speech2text_text_sent_color": "Kleur verzonden tekst", + "basic_speech2text_text_sent_color_tooltip": "Tekstkleur, wanneer tekst wordt verzonden om deze te verwerken", + "basic_speech2text_width": "Breedte (px)", + "basic_square": "Vierkant", + "basic_star": "Ster", + "basic_sub_view": "Subweergave", + "basic_triangle": "Driehoek", + "block": "blok", + "color": "kleur", + "color_false": "Kleur op false", + "color_true": "Kleur op waar", + "convert from widgeteria widget": "converteren van widgeteria-widget", + "copy": "kopie", + "css_project": "Voor dit project", + "custom_icons": "Speciaal", + "different": "verschillend", + "display": "Scherm", + "finish searching": "zoeken klaar", + "flex": "buigen", + "flexible": "flexibel", + "folder": "Map", + "font-family": "font-familie", + "font-size": "lettertypegrootte", + "font-style": "lettertype", + "font-variant": "lettertype-variant", + "font-weight": "lettertype dikte", + "group": "Groep", + "group_attrName": "Naam", + "group_attrType": "Type", + "group_fields": "attributen", + "group_help": "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.", + "group_icon_false": "Icoon door false", + "group_icon_true": "Icoon van waar", + "group_size_hint": "U kunt de groepsgrootte wijzigen door deze te selecteren in de vervolgkeuzewidgetkiezer of door op deze tekst te klikken", + "group_text": "Tekst", + "help_css_global": "Deze CSS wordt toegepast op alle projecten", + "help_css_project": "Deze CSS wordt alleen toegepast op dit project", + "hide": "verbergen", + "hide code": "code verbergen", + "horizontal": "horizontaal", + "hr": "uur", + "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": "Pictogramgrootte in pixels", + "icon_upload_hint": "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.", + "imageHeight_false": "Hoogte afbeelding", + "imageHeight_true": "Hoogte afbeelding", + "invert_icon_false": "Pictogram omkeren", + "invert_icon_true": "Pictogram omkeren", + "jqui_Add new value": "Voeg nieuwe waarde toe", + "jqui_Are you sure?": "Weet je het zeker?", + "jqui_Bulk edit": "Bulkbewerking", + "jqui_Close": "Dichtbij", + "jqui_Example": "Voorbeeld", + "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": "Procenten", + "jqui_Replace to": "Vervangen door", + "jqui_Select file": "Selecteer afbeelding", + "jqui_Write state": "Schrijf staat", + "jqui_active_color": "Actieve kleur", + "jqui_ampm": "AM PM", + "jqui_asDate": "Als datum", + "jqui_asFullDate": "Gebruik van volledige parseerbare datum", + "jqui_as_string": "Als touwtje", + "jqui_auto": "auto", + "jqui_binary_control": "Binaire controle", + "jqui_button_binary_control_note": "Verouderd. Gebruik de widget \"Binaire controle\". Alleen bewaard voor compatibiliteit met vis.1", + "jqui_button_color": "Knop kleur", + "jqui_button_dialog_close": "Dialoogvenster sluitknop", + "jqui_button_input_note": "Verouderd. Gebruik de \"Invoer\"-widget. Alleen bewaard voor compatibiliteit met vis.1", + "jqui_button_link": "Spring naar URL", + "jqui_button_link_blank": "Spring naar URL (in nieuw venster)", + "jqui_button_link_blank_note": "Verouderd. Gebruik de eerste widget met de optie \"Openen in nieuw venster\". Alleen behouden voor compatibiliteit met vis.1", + "jqui_button_nav_blank_note": "Verouderd. Gebruik de eerste widget met de optie \"Ga naar weergave\". Alleen bewaard voor compatibiliteit met vis.1", + "jqui_button_text": "Knop tekst", + "jqui_buttontext_view": "Gebruik de weergavenaam als titel", + "jqui_clearable": "Verwijderbaar", + "jqui_color": "Kleur", + "jqui_container_button_dialog": "Button=>Paginadialoogvenster", + "jqui_container_dialog": "Containerdialoogvenster", + "jqui_container_icon_dialog": "Icon=>Paginadialoogvenster", + "jqui_dialog_name": "Dialoognaam", + "jqui_dialog_set_id_tooltip": "Status instellen door dialoogvenster te openen", + "jqui_disableFuture": "Toekomst uitschakelen", + "jqui_disablePast": "Schakel verleden uit", + "jqui_displayWeekNumber": "Weeknummer weergeven", + "jqui_equal_text_length": "Gelijke tekstlengtes", + "jqui_equal_text_length_tooltip": "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\".", + "jqui_external_dialog": "Externe dialoog", + "jqui_external_dialog_tooltip": "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.", + "jqui_false": "Vals", + "jqui_from_oid": "Van ander voorwerp", + "jqui_from_value": "Van statische waarde", + "jqui_generate": "Genereer", + "jqui_group_value": "Waarde", + "jqui_hide_close_button": "Sluitknop verbergen", + "jqui_href_tooltip": "Deze URL wordt in de browser aangeroepen", + "jqui_html": "HTML", + "jqui_html_dialog": "HTML-dialoogvenster", + "jqui_html_external_dialog": "Externe dialoog", + "jqui_html_false": "HTML door false", + "jqui_html_tooltip": "HTML kan alleen worden geconfigureerd als tekst en pictogram leeg zijn", + "jqui_html_true": "HTML door waar", + "jqui_icon": "Icoon", + "jqui_icon_active": "Actief icoon", + "jqui_icon_dialog": "Pictogramdialoog", + "jqui_icon_http_get": "Aanroep-URL in backend", + "jqui_icon_increment": "Verhogen met Icoon", + "jqui_icon_link": "Spring naar URL (met icoon)", + "jqui_icon_max": "Icoon voor maximum", + "jqui_icon_state_bool": "Booleaanse pictogramknop", + "jqui_icon_state_push_button": "Druk op de knop", + "jqui_icon_toggle": "Schakelknop met pictogram", + "jqui_image": "Afbeelding", + "jqui_image_active": "Actief beeld", + "jqui_image_height": "Hoogte afbeelding", + "jqui_image_max": "Afbeelding voor maximaal", + "jqui_increment_decrement": "Verhogen/verlagen", + "jqui_input": "Invoer", + "jqui_input_date": "Invoer van datum", + "jqui_input_time": "Invoer van tijd", + "jqui_input_with_button": "Ingang met knop", + "jqui_invert_icon": "Pictogram omkeren", + "jqui_inverted": "Omgekeerd", + "jqui_jquery_style": "jQuery-stijl", + "jqui_max": "Maximale waarde", + "jqui_min": "Minimale waarde", + "jqui_name": "Titel", + "jqui_nav_view": "Ga naar bekijken", + "jqui_navigation_button": "Navigatieknop", + "jqui_navigation_icon": "Navigatiepictogram", + "jqui_navigation_password": "Navigatie met wachtwoord", + "jqui_not_equal_length": "Niet gelijke breedte", + "jqui_off": "Uit", + "jqui_oid_working": "Werkende ID", + "jqui_on": "Ing.", + "jqui_only_icon": "Alleen icoon", + "jqui_open": "Als lijst", + "jqui_orientation": "Oriëntatie", + "jqui_password": "Wachtwoord", + "jqui_password_tooltip": "De gebruiker moet een wachtwoord invoeren om het dialoogvenster te openen en naar de pagina of URL te gaan", + "jqui_push_mode": "Push-modus", + "jqui_push_mode_tooltip": "Als u op de knop drukt, wordt 'true' geschreven en als u de knop loslaat, wordt 'false' geschreven.", + "jqui_radio_buttons_on_off": "Keuzerondjes (aan/uit)", + "jqui_radio_list": "Radiolijst met waarden", + "jqui_radio_steps": "Keuzerondje (stappen)", + "jqui_range": "bereik", + "jqui_read_only": "Alleen lezen", + "jqui_repeat_delay": "Herhalingsvertraging", + "jqui_repeat_interval": "Herhaal interval", + "jqui_select_all_on_focus": "Selecteer alles met focus", + "jqui_select_all_on_focus_tooltip": "Bij focus wordt alle tekst geselecteerd, zodat deze snel kan worden verwijderd of gewijzigd zonder op de backspace-knop te drukken", + "jqui_select_list": "Selecteer uit de lijst", + "jqui_set_label": "Gestileerd", + "jqui_set_timeout": "Time-out schrijven", + "jqui_single": "enkel", + "jqui_slider": "Schuifregelaar", + "jqui_slider_note": "Verouderd. Gebruik de schuifwidget met de oriëntatie ingesteld op verticaal. Alleen bewaard voor compatibiliteit met vis.1", + "jqui_slider_vertical": "Verticale schuifregelaar", + "jqui_state_note": "Verouderd. Gebruik de widget \"Statescontrole\" met de optie \"verhogen/verlagen\". Alleen bewaard voor compatibiliteit met vis.1", + "jqui_states_control": "Controle door staten", + "jqui_stepMinute": "Stap minuut", + "jqui_test": "Testwaarde", + "jqui_text": "Tekst", + "jqui_text_active": "Actieve tekst", + "jqui_text_max": "Tekst voor maximaal", + "jqui_toggle": "Schakelaar", + "jqui_tooltip": "Tooltip", + "jqui_true": "WAAR", + "jqui_type": "Type", + "jqui_unit": "Eenheid", + "jqui_url_group": "Bel URL door te klikken", + "jqui_url_in_background": "URL in back-end", + "jqui_url_in_browser": "URL in browser", + "jqui_url_tooltip": "Deze URL wordt op de achtergrond aangeroepen door de ioBroker-engine", + "jqui_value": "Waarde", + "jqui_value_label_display": "Etiket weergeven", + "jqui_variant": "Variant", + "jqui_view_group": "Navigatieweergave", + "jqui_wideFormat": "Breed formaat", + "jqui_widgetTitle": "Titel", + "jqui_with_enter_button": "Met enterknop", + "jqui_write_state_note": "Verouderd. Gebruik de widget \"Wirte state\" met de optie \"verhogen/verlagen\". Alleen bewaard voor compatibiliteit met vis.1", + "jqui_write_value": "Schrijf waarde", + "letter-spacing": "letterafstand", + "line-height": "lijnhoogte", + "material_icons_baseline": "Gevuld", + "material_icons_knx-uf": "knx-uf", + "material_icons_outline": "geschetst", + "material_icons_result": "%s overeenkomende resultaten", + "material_icons_round": "Ronde", + "material_icons_sharp": "Scherp", + "material_icons_twotone": "Twee toon", + "material_icons_upload": "Uploaden", + "multi-views": "Weergeven in weergaven", + "never": "nooit", + "no_reload": "geen herladen", + "none": "geen", + "normal": "normaal", + "not defined": "niet gedefinieerd", + "not-specified": "niet gedefinieerd", + "optional": "optioneel", + "order_help": "U kunt elk item slepen en neerzetten of klikken op het item waarmee de geselecteerde widget wordt verwisseld", + "orientation": "oriëntatie", + "profile": "Profiel", + "qui_Bool SVG": "Booleaanse SVG", + "reload": "herladen", + "search text": "Zoek tekst", + "set_basic": "basis", + "signals-count": "Aantal signalen", + "signals-smallIcon-0": "Klein pictogram [0]", + "signals-smallIcon-1": "Klein icoontje [1]", + "signals-smallIcon-2": "Klein icoontje [3]", + "signals-text-0": "Tekst [0]", + "signals-text-1": "Tekst [1]", + "signals-text-2": "Tekst [2]", + "sub_view_tooltip": "Het wordt gebruikt voor speciale doeleinden, zoals navigatie in jaeger-design", + "text-shadow": "schaduw tekst", + "text_false": "Tekst door false", + "text_true": "Tekst door waar", + "to version": "naar versie", + "value_string": "snaar", + "version": "versie", + "vertical": "verticaal", + "vis-2-widgets-basic-autoSetDelay": "Vertraging voor automatisch schrijven", + "vis-2-widgets-basic-input_value": "Invoerwaarde", + "vis-2-widgets-basic-noStyle": "Geen stijl", + "visResizable": "Aanpasbaar", + "vis_2_widgets_basic_cannot_recursive": "Kan recursieve weergaven niet gebruiken", + "vis_2_widgets_basic_contains_view": "Gebruik weergave", + "vis_2_widgets_basic_view_in_widget": "Bekijk in widget", + "vis_2_widgets_basic_view_not_defined": "Weergave niet gedefinieerd", + "vis_2_widgets_swipe_hide_indication_label": "Indicatie verbergen", + "vis_2_widgets_swipe_threshold_label": "Drempelwaarde", + "vis_2_widgets_widgets_swipe_label": "Swipe", + "vis_2_widgets_widgets_tabs_color": "Kleur", + "vis_2_widgets_widgets_tabs_group_tab": "tabblad", + "vis_2_widgets_widgets_tabs_label": "Tabbladen", + "vis_2_widgets_widgets_tabs_show_tabs": "Nummer", + "vis_2_widgets_widgets_tabs_tab_icon": "Icoon", + "vis_2_widgets_widgets_tabs_tab_icon_color": "Kleur", + "vis_2_widgets_widgets_tabs_tab_icon_size": "Pictogram grootte", + "vis_2_widgets_widgets_tabs_tab_image": "Afbeelding", + "vis_2_widgets_widgets_tabs_tab_overflow_x": "Overloop X", + "vis_2_widgets_widgets_tabs_tab_overflow_y": "Overloop Y", + "vis_2_widgets_widgets_tabs_tab_title": "Titel", + "vis_2_widgets_widgets_tabs_tab_view": "Weergave", + "vis_2_widgets_widgets_tabs_variant": "Variant", + "vis_2_widgets_widgets_tabs_variant_centered": "gecentreerd", + "vis_2_widgets_widgets_tabs_variant_default": "Standaard", + "vis_2_widgets_widgets_tabs_variant_full_width": "volle breedte", + "vis_2_widgets_widgets_tabs_vertical": "Verticaal", + "welcome_message": "Er is nog geen enkel project.", + "word-spacing": "woordspatiëring" } \ No newline at end of file diff --git a/packages/iobroker.vis-2/src/src/i18n/pl.json b/packages/iobroker.vis-2/src/src/i18n/pl.json index 85312695..ed995c74 100644 --- a/packages/iobroker.vis-2/src/src/i18n/pl.json +++ b/packages/iobroker.vis-2/src/src/i18n/pl.json @@ -1,753 +1,755 @@ { - "%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": "Dodać", - "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\n", - "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": "Administrator", - "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ść.", - "Aluminium1": "Aluminium1", - "Aluminium2": "Aluminium2", - "App bar": "Pasek aplikacji", - "Apply": "Stosować", - "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": "Atrybuty", - "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": "Podstawowy", - "Benutzer": "Benutzer", - "Blue flowers": "Niebieskie kwiaty", - "Blue marine": "Niebieski morski", - "Blue marine lines": "Niebieskie linie morskie", - "Blueprint grid": "Siatka schematu", - "Bricks": "Cegły", - "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", - "CSS": "CSS", - "CSS Class": "Klasa CSS", - "CSS Common": "CSS Wspólne", - "CSS Font & Text": "CSS Czcionka i tekst", - "CSS background (background-...)": "CSS Tło (background-...)", - "Cancel": "Anulować", - "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": "Jasne", - "Clear filter": "Czysty filtr", - "Click to close": "Kliknij, aby zamknąć", - "Clone widget": "Klonuj widżet", - "Close": "Blisko", - "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": "Kolorowy", - "Column gap": "Odstęp kolumny", - "Column width": "Szerokość kolumny", - "Comment": "Komentarz", - "Convert %s to %s": "Konwertuj %s na %s", - "Copied %s": "Skopiowano %s", - "Copied to clipboard": "Skopiowane do schowka", - "Copy": "Kopiuj", - "Copy noun": "Kopiuj", - "Copy to clipboard": "Skopiuj do schowka", - "Copy view \"%s\"": "Kopiuj widok „%s”", - "Create": "Tworzyć", - "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": "Skaleczenie", - "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": "Domyślna", - "Default view": "Widok domyślny", - "Default: auto": "Wartość domyślna: „auto”", - "Delete": "Kasować", - "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": "Urządzenia", - "Disabled": "Wyłączone", - "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”?", - "Drag me": "Pociągnij mnie", - "Drop the files here ...": "Upuść pliki tutaj...", - "Duplicate": "Duplikować", - "Duplicate folder": "Zduplikuj folder", - "Duplicate profile": "Powiel profil", - "Edit": "Edytować", - "Edit binding": "Edytuj wiązanie", - "Edit folder": "Edytuj folder", - "Edit group": "Edytuj grupę", - "Edit profile": "Edytuj profil", - "Elements": "Elementy", - "Enabled": "Włączony", - "Enter": "Wchodzić", - "Enter password": "Wprowadź hasło", - "Expand all": "Rozwiń wszystkie", - "Explanation": "Wyjaśnienie", - "Export": "Eksport", - "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": "Akta", - "Filter widgets": "Filtruj widżety", - "Fm dark background": "Fm ciemne tło", - "Fm light background": "Jasne tło fm", - "For widgets with relative position": "W przypadku widżetów o względnej pozycji", - "Fr": "Fr", - "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": "Dla wszystkich projektów", - "Gradient box": "Gradientowe pudełko", - "Gray 0": "Szary 0", - "Gray 1": "Szary 1", - "Grid": "Krata", - "Group": "Grupa", - "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": "Wysokość", - "Hide": "Ukrywać", - "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": "Wysoka", - "High priority": "Wysoki priorytet", - "Highest eg. Holiday": "Najwyższy np. Wakacje", - "Horizontal": "Poziomy", - "Icon": "Ikona", - "If user not in group": "Jeśli użytkownik nie jest w grupie", - "Ignore": "Ignorować", - "Ignored in edit mode": "Ignorowane w trybie edycji", - "Image": "Obraz", - "Import": "Import", - "Import project": "Importuj projekt", - "Import widgets": "Importuj widżety", - "Initial filter": "Filtr początkowy", - "Instance": "Instancja", - "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 screen": "Ogranicz ekran", - "Lined paper": "Papier w linie", - "Lock": "Zamek", - "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", - "Message": "Wiadomość", - "Mo": "Mo", - "Modify": "Modyfikować", - "More": "Więcej", - "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": "Nazwa", - "Name is not unique": "Nazwa nie jest unikalna", - "Name of copy": "Nazwa kopii", - "Narrow panel": "Wąski panel", - "Navigation": "Nawigacja", - "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": "Nie", - "No background": "Brak tła", - "Normal": "Normalna", - "OFF": "OFF", - "ON": "ON", - "Objects": "Obiekty", - "Ok": "Ok", - "On/Off": "Wł/Wył", - "One parameter": "Jeden parametr", - "Only for groups": "Tylko dla grup", - "Only the admin user can change permissions": "Tylko administrator może zmieniać uprawnienia", - "Open": "otwarty", - "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": "Opcje", - "Order": "Zamówienie", - "Orientation": "Orientacja", - "Palette": "Paleta", - "Paste": "Pasta", - "Percent": "Procent", - "Permissions": "Uprawnienia", - "Pixel 5 - Landscape": "Piksel 5 – Krajobraz", - "Pixel 5 - Portrait": "Piksel 5 – Portret", - "Priority": "Priorytet", - "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 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": "Projektowanie", - "Radial blue": "Promieniowy niebieski", - "Read": "Czytać", - "Read = Runtime access": "Odczyt = dostęp w czasie wykonywania", - "Read about currentColor in SVG": "Przeczytaj o bieżącym kolorze w SVG", - "Received user command: %s": "Otrzymano polecenie użytkownika: %s", - "Reconnect interval": "Interwał ponownego łączenia", - "Redo": "Przerobić", - "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": "Ponowne ładowanie", - "Rename": "Przemianować", - "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": "Rezolucja", - "Responsive settings": "Ustawienia responsywne", - "Row gap": "Odstęp między wierszami", - "Sa": "Sa", - "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": "Ratować", - "Scripts": "Skrypty", - "Search": "Szukaj", - "Select": "Wybierz", - "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": "Ustawienia", - "Should it be moved to new place?": "Czy należy go przenieść w nowe miejsce?", - "Show": "Pokazać", - "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 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": "Styl", - "Su": "Su", - "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": "Zakładki", - "Temperature": "Temperatura", - "Text color": "Kolor tekstu", - "Text color if selected": "Kolor tekstu, jeśli został wybrany", - "Text edit": "Edycja tekstu", - "Th": "Th", - "Theme": "Motyw", - "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": "Tytuł", - "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": "Tu", - "Type": "Rodzaj", - "Undo": "Cofnij", - "Ungroup": "Rozgrupuj", - "Uninstall": "Odinstaluj", - "Unknown widget type \"%s\"": "Nieznany typ widżetu „%s”", - "Unlock": "Odblokować", - "Update": "Aktualizacja", - "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": "Wartość", - "Vertical": "Pionowy", - "View": "Pogląd", - "View not defined": "Widok niezdefiniowany", - "We": "Mi", - "Weekend": "Weekend", - "Widget": "Widżet", - "Widget CSS": "Widżet CSS", - "Widget JS": "Widżet JS", - "Widget was deleted in widgeteria": "Widżet został usunięty w widżeterii", - "Widgets": "Widżety", - "Width": "Szerokość", - "Width x height (px)": "Szerokość x wysokość (px)", - "Write": "Pisać", - "Write = Edit mode access": "Zapis = Dostęp do trybu edycji", - "Writer": "Pisarz", - "Wrong password": "Złe hasło", - "Yes": "TAk", - "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": "Widżeteria", - "ace_All": "Wszystko", - "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": "Etykietka przez false", - "alt_true": "Etykietka zawiera prawdę", - "anonymize": "anonimizować", - "apply_to_all": "Dla wszystkich", - "attr_none": "none", - "basic_arrow": "Strzałka", - "basic_borderColor": "Kolor ramki", - "basic_borderRadius": "Promień granicy", - "basic_circle": "Koło", - "basic_custom": "Niestandardowy wielokąt", - "basic_hexagone": "Sześciokąt", - "basic_line": "Linia", - "basic_octagone": "Oktagon", - "basic_pentagone": "Pentagon", - "basic_pin": "Szpilka", - "basic_speech2text_continuous": "ciągły", - "basic_speech2text_detected": "Wykryto", - "basic_speech2text_en_us": "język angielski", - "basic_speech2text_height": "Wysokość (px)", - "basic_speech2text_image_active": "Aktywny", - "basic_speech2text_image_inactive": "Nieaktywny", - "basic_speech2text_info_allow": "Kliknij przycisk „Zezwalaj” powyżej, aby włączyć mikrofon.", - "basic_speech2text_info_blocked": "Zezwolenie na używanie mikrofonu jest zablokowane. Aby zmienić, przejdź do chrome://settings/contentExceptions#media-stream", - "basic_speech2text_info_denied": "Odmówiono pozwolenia na użycie mikrofonu.", - "basic_speech2text_info_no_microphone": "Nie znaleziono mikrofonu. Upewnij się, że mikrofon jest zainstalowany i że ustawienia mikrofonu są prawidłowo skonfigurowane.", - "basic_speech2text_info_no_speech": "Nie wykryto mowy. Może być konieczne dostosowanie ustawień mikrofonu.", - "basic_speech2text_info_speak_now": "Mów teraz.", - "basic_speech2text_info_start": "Kliknij ikonę mikrofonu i zacznij mówić.", - "basic_speech2text_info_upgrade": "Ta przeglądarka nie obsługuje interfejsu Web Speech API. Uaktualnij przeglądarkę do Chrome w wersji 25 lub nowszej.", - "basic_speech2text_key_word_color": "Kolor słowa kluczowego", - "basic_speech2text_key_word_color_tooltip": "Kolor tekstu, jeśli znaleziono słowo kluczowe", - "basic_speech2text_keywords": "Słowa kluczowe", - "basic_speech2text_no_image": "Brak obrazka", - "basic_speech2text_no_results": "Brak wyników", - "basic_speech2text_no_text": "Brak tekstu pomocy", - "basic_speech2text_ru_ru": "Rosyjski", - "basic_speech2text_sent": "Wysłano", - "basic_speech2text_single": "pojedynczy", - "basic_speech2text_speech_mode": "Tryb mowy", - "basic_speech2text_start_stop": "zacząć zakończyć", - "basic_speech2text_started": "Rozpoczęty", - "basic_speech2text_text_sent_color": "Tekst wysłany w kolorze", - "basic_speech2text_text_sent_color_tooltip": "Kolor tekstu, gdy tekst jest wysyłany do przetworzenia", - "basic_speech2text_width": "Szerokość (px)", - "basic_square": "Kwadrat", - "basic_star": "Gwiazda", - "basic_triangle": "Trójkąt", - "block": "blok", - "color": "kolor", - "color_false": "Pokoloruj według fałszu", - "color_true": "Kolor zgodny z prawdą", - "convert from widgeteria widget": "konwertować z widżetu widgeteria", - "copy": "Kopia", - "css_project": "Dla tego projektu", - "custom_icons": "Specjalny", - "different": "inny; różny", - "display": "wyświetlacz", - "finish searching": "wyszukiwanie zakończone", - "flex": "przewód", - "flexible": "elastyczny", - "folder": "Teczka", - "font-family": "rodzina czcionek", - "font-size": "rozmiar czcionki", - "font-style": "styl czcionki", - "font-variant": "wariant-czcionki", - "font-weight": "grubość czcionki", - "group": "Grupa", - "group_attrName": "Nazwa", - "group_attrType": "Typ", - "group_fields": "Atrybuty", - "group_help": "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.", - "group_icon_false": "Ikona fałszywa", - "group_icon_true": "Ikona zgodnie z prawdą", - "group_size_hint": "Możesz zmienić rozmiar grupy, wybierając ją w rozwijanym selektorze widżetów lub klikając ten tekst", - "group_text": "Tekst", - "help_css_global": "Te CSS mają zastosowanie do wszystkich projektów", - "help_css_project": "Te CSS są stosowane tylko do tego projektu", - "hide": "ukryć", - "hide code": "ukryj kod", - "horizontal": "poziomy", - "hr": "godziny", - "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": "Rozmiar ikony w pikselach", - "icon_upload_hint": "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.", - "imageHeight_false": "Wysokość obrazu", - "imageHeight_true": "Wysokość obrazu", - "invert_icon_false": "Odwróć ikonę", - "invert_icon_true": "Odwróć ikonę", - "jqui_Add new value": "Dodaj nową wartość", - "jqui_Are you sure?": "Jesteś pewny?", - "jqui_Bulk edit": "Edycja zbiorcza", - "jqui_Close": "Zamknąć", - "jqui_Example": "Przykład", - "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": "Procenty", - "jqui_Replace to": "Zamienić", - "jqui_Select file": "Wybierz obraz", - "jqui_active_color": "Aktywny kolor", - "jqui_ampm": "Jestem/Po południu", - "jqui_asDate": "Jako data", - "jqui_asFullDate": "Użycie pełnej daty możliwej do analizy", - "jqui_as_string": "Jako ciąg", - "jqui_auto": "automatyczny", - "jqui_binary_control": "Sterowanie binarne", - "jqui_button_binary_control_note": "Przestarzałe. Użyj widżetu „Kontrola binarna”. Zachowane tylko ze względu na kompatybilność z vis.1", - "jqui_button_color": "Kolor przycisku", - "jqui_button_dialog_close": "Przycisk zamykania okna dialogowego", - "jqui_button_input_note": "Przestarzałe. Użyj widżetu „Wejście”. Zachowane tylko ze względu na kompatybilność z vis.1", - "jqui_button_link": "Przejdź do adresu URL", - "jqui_button_link_blank": "Przejdź do adresu URL (w nowym oknie)", - "jqui_button_link_blank_note": "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", - "jqui_button_nav_blank_note": "Przestarzałe. Użyj pierwszego widgetu z opcją „Przejdź do widoku”. Zachowane tylko ze względu na kompatybilność z vis.1", - "jqui_button_text": "Przycisk tekstowy", - "jqui_buttontext_view": "Użyj nazwy widoku jako tytułu", - "jqui_clearable": "Usuwalne", - "jqui_color": "Kolor", - "jqui_container_button_dialog": "Przycisk=>Okno strony", - "jqui_container_dialog": "Okno dialogowe kontenera", - "jqui_container_icon_dialog": "Ikona=>Okno strony", - "jqui_dialog_name": "Nazwa okna dialogowego", - "jqui_dialog_set_id_tooltip": "Ustaw stan przez otwarte okno dialogowe", - "jqui_disableFuture": "Wyłącz przyszłość", - "jqui_disablePast": "Wyłącz przeszłość", - "jqui_displayWeekNumber": "Wyświetl numer tygodnia", - "jqui_equal_text_length": "Równa długość tekstu", - "jqui_equal_text_length_tooltip": "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”.", - "jqui_external_dialog": "Okno zewnętrzne", - "jqui_external_dialog_tooltip": "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.", - "jqui_false": "FAŁSZ", - "jqui_from_oid": "Z innego obiektu", - "jqui_from_value": "Od wartości statycznej", - "jqui_generate": "Generować", - "jqui_group_value": "Wartość", - "jqui_hide_close_button": "Ukryj przycisk zamykania", - "jqui_href_tooltip": "Ten adres URL zostanie wywołany w przeglądarce", - "jqui_html": "HTML", - "jqui_html_dialog": "Okno HTML", - "jqui_html_external_dialog": "Okno zewnętrzne", - "jqui_html_false": "HTML przez fałsz", - "jqui_html_tooltip": "HTML można konfigurować tylko wtedy, gdy tekst i ikona są puste", - "jqui_html_true": "HTML według prawdy", - "jqui_icon": "Ikona", - "jqui_icon_active": "Aktywna ikona", - "jqui_icon_dialog": "Ikona okna dialogowego", - "jqui_icon_http_get": "Adres URL wywołania w zapleczu", - "jqui_icon_increment": "Przyrost za pomocą ikony", - "jqui_icon_link": "Przejdź do adresu URL (z ikoną)", - "jqui_icon_max": "Ikona maksimum", - "jqui_icon_state_bool": "Przycisk z ikoną logiczną", - "jqui_icon_state_push_button": "Naciśnij przycisk", - "jqui_icon_toggle": "Przycisk przełączania z ikoną", - "jqui_image": "Obraz", - "jqui_image_active": "Aktywny obraz", - "jqui_image_height": "Wysokość obrazu", - "jqui_image_max": "Obraz maksymalnie", - "jqui_increment_decrement": "Zwiększanie/zmniejszanie", - "jqui_input": "Wejście", - "jqui_input_date": "Wprowadzanie daty", - "jqui_input_time": "Wprowadzanie czasu", - "jqui_input_with_button": "Wejście za pomocą przycisku", - "jqui_invert_icon": "Odwróć ikonę", - "jqui_inverted": "Odwrotny", - "jqui_jquery_style": "Styl jQuery", - "jqui_max": "Maksymalna wartość", - "jqui_min": "Minimalna wartość", - "jqui_name": "Tytuł", - "jqui_nav_view": "Przejdź do widoku", - "jqui_navigation_button": "Przycisk nawigacji", - "jqui_navigation_icon": "Ikona nawigacji", - "jqui_navigation_password": "Nawigacja z hasłem", - "jqui_not_equal_length": "Nie równa szerokość", - "jqui_off": "Wyłączony", - "jqui_oid_working": "Identyfikator roboczy", - "jqui_on": "Włączony", - "jqui_only_icon": "Tylko ikona", - "jqui_open": "Jako lista", - "jqui_orientation": "Orientacja", - "jqui_password": "Hasło", - "jqui_password_tooltip": "Użytkownik musi wprowadzić hasło, aby otworzyć okno dialogowe, przejść do strony lub adresu URL", - "jqui_push_mode": "Tryb pchania", - "jqui_push_mode_tooltip": "Po naciśnięciu przycisku zostanie zapisane „prawda”, a po zwolnieniu przycisku zostanie zapisane „fałsz”.", - "jqui_radio_buttons_on_off": "Przyciski opcji (wł./wył.)", - "jqui_radio_list": "Lista radiowa z wartościami", - "jqui_radio_steps": "Przycisk opcji (kroki)", - "jqui_range": "zakres", - "jqui_read_only": "Tylko czytać", - "jqui_repeat_delay": "Powtórz opóźnienie", - "jqui_repeat_interval": "Powtórz interwał", - "jqui_select_all_on_focus": "Zaznacz wszystko na fokusie", - "jqui_select_all_on_focus_tooltip": "Po zaznaczeniu cały tekst zostanie zaznaczony, więc można go szybko usunąć lub zmienić bez naciskania przycisku Backspace", - "jqui_select_list": "Wybierz z listy", - "jqui_set_label": "stylizowany", - "jqui_set_timeout": "Limit czasu zapisu", - "jqui_single": "pojedynczy", - "jqui_slider": "Suwak", - "jqui_slider_note": "Przestarzałe. Użyj widżetu suwaka z orientacją ustawioną na pionową. Zachowane tylko ze względu na kompatybilność z vis.1", - "jqui_slider_vertical": "Suwak pionowy", - "jqui_state_note": "Przestarzałe. Użyj widżetu „Kontrola stanów” z opcją „zwiększ/zmniejsz”. Zachowane tylko ze względu na zgodność z vis.1", - "jqui_states_control": "Kontrola państw", - "jqui_stepMinute": "Krok minuta", - "jqui_test": "Wartość testowa", - "jqui_text": "Tekst", - "jqui_text_active": "Aktywny tekst", - "jqui_text_max": "Tekst na maksimum", - "jqui_toggle": "Przełącznik", - "jqui_tooltip": "Etykietka", - "jqui_true": "PRAWDA", - "jqui_type": "Typ", - "jqui_unit": "Jednostka", - "jqui_url_group": "Zadzwoń do adresu URL po kliknięciu", - "jqui_url_in_background": "Adres URL w zapleczu", - "jqui_url_in_browser": "Adres URL w przeglądarce", - "jqui_url_tooltip": "Ten adres URL zostanie wywołany w tle przez silnik ioBroker", - "jqui_value": "Wartość", - "jqui_value_label_display": "Wyświetl etykietę", - "jqui_variant": "Wariant", - "jqui_view_group": "Widok nawigacji", - "jqui_wideFormat": "Szeroki format", - "jqui_widgetTitle": "Tytuł", - "jqui_with_enter_button": "Z przyciskiem Enter", - "jqui_write_state_note": "Przestarzałe. Użyj widżetu „Zapisz stan” z opcją „zwiększ/zmniejsz”. Zachowane tylko ze względu na kompatybilność z vis.1", - "jqui_write_value": "Zapisz wartość", - "letter-spacing": "odstępy między literami", - "line-height": "Wysokość linii", - "material_icons_baseline": "Wypełniony", - "material_icons_knx-uf": "knx-uf", - "material_icons_outline": "Przedstawione", - "material_icons_result": "%s pasujących wyników", - "material_icons_round": "Okrągły", - "material_icons_sharp": "Ostry", - "material_icons_twotone": "Dwutonowy", - "material_icons_upload": "Wgrywać", - "multi-views": "Pokaż w widokach", - "never": "nigdy", - "no_reload": "bez przeładowania", - "none": "Żaden", - "normal": "normalna", - "not defined": "Nie określono", - "not-specified": "Nie określono", - "optional": "opcjonalny", - "order_help": "Możesz przeciągnąć i upuścić dowolny element lub kliknąć element, z którym wybrany widżet zostanie zamieniony", - "orientation": "Orientacja", - "profile": "Profil", - "qui_Bool SVG": "Wartość logiczna SVG", - "reload": "przeładować", - "search text": "Wyszukaj tekst", - "set_basic": "podstawowy", - "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-0": "Tekst [0]", - "signals-text-1": "Tekst [1]", - "signals-text-2": "Tekst [2]", - "text-shadow": "cień tekstu", - "text_false": "Tekst fałszywy", - "text_true": "Tekst zgodny z prawdą", - "to version": "do wersji", - "value_string": "strunowy", - "version": "wersja", - "vertical": "pionowy", - "visResizable": "Zmienny rozmiar", - "vis_2_widgets_basic_cannot_recursive": "Nie można używać widoków rekurencyjnych", - "vis_2_widgets_basic_contains_view": "Użyj widoku", - "vis_2_widgets_basic_view_in_widget": "Zobacz w widżecie", - "vis_2_widgets_basic_view_not_defined": "Widok niezdefiniowany", - "vis_2_widgets_widgets_tabs_color": "Kolor", - "vis_2_widgets_widgets_tabs_group_tab": "Patka", - "vis_2_widgets_widgets_tabs_label": "Zakładki", - "vis_2_widgets_widgets_tabs_show_tabs": "Numer", - "vis_2_widgets_widgets_tabs_tab_icon": "Ikona", - "vis_2_widgets_widgets_tabs_tab_icon_color": "Kolor", - "vis_2_widgets_widgets_tabs_tab_icon_size": "Rozmiar ikony", - "vis_2_widgets_widgets_tabs_tab_image": "Obraz", - "vis_2_widgets_widgets_tabs_tab_overflow_x": "Przepełnienie X", - "vis_2_widgets_widgets_tabs_tab_overflow_y": "Przepełnienie Y", - "vis_2_widgets_widgets_tabs_tab_title": "Tytuł", - "vis_2_widgets_widgets_tabs_tab_view": "Pogląd", - "vis_2_widgets_widgets_tabs_variant": "Wariant", - "vis_2_widgets_widgets_tabs_variant_centered": "wyśrodkowany", - "vis_2_widgets_widgets_tabs_variant_default": "Domyślny", - "vis_2_widgets_widgets_tabs_variant_full_width": "pełna szerokość", - "vis_2_widgets_widgets_tabs_vertical": "Pionowy", - "welcome_message": "Żaden projekt jeszcze nie istnieje.", - "word-spacing": "odstępy między wyrazami", - "basic_sub_view": "Widok podrzędny", - "sub_view_tooltip": "Służy do celów specjalnych, takich jak nawigacja według projektu Jaeger", - "basic_no_filter_text": "Etykieta „Brak filtra”.", - "basic_no_all_option": "Brak opcji „Bez filtra”.", - "basic_filter_multiple": "Wybór wielokrotny", - "basic_filter_type_dropdown": "Menu rozwijane", - "basic_filter_type_horizontal_buttons": "Przyciski poziome", - "basic_filter_type_vertical_buttons": "Pionowe przyciski", - "basic_no_filter": "Bez filtra", - "basic_all_filters": "Dodaj wszystko, co zostało", - "Only for desktop": "Tylko na komputery stacjonarne", - "Include widget?": "Dołącz widżet?", - "Do you want to include \"%s\" widget into \"%s\"?": "Czy chcesz dołączyć widżet „%s” do „%s”?", - "Unselect": "Odznacz", - "All": "Wszystko", - "Load project file...": "Ładowanie pliku projektu...", - "Load widgets...": "Ładowanie widżetów...", - "Loading objects...": "Ładowanie obiektów...", - "Following views will be changed": "Następujące widoki ulegną zmianie", - "Show this attribute by all views": "Pokaż ten atrybut we wszystkich widokach", - "Menu width": "Szerokość menu", - "Do not ask again": "Nie pytaj ponownie", - "vis-2-widgets-basic-input_value": "Wartość wejściowa", - "vis-2-widgets-basic-autoSetDelay": "Opóźnienie automatycznego zapisu", - "vis-2-widgets-basic-noStyle": "Brak stylu", - "Clone": "Klon", - "jqui_Write state": "Napisz stan", - "vis_2_widgets_widgets_swipe_label": "Swipe", - "vis_2_widgets_swipe_hide_indication_label": "Ukryj wskazanie", - "vis_2_widgets_swipe_threshold_label": "Próg" + "%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": "Dodać", + "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\n", + "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": "Administrator", + "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": "Wszystko", + "Aluminium1": "Aluminium1", + "Aluminium2": "Aluminium2", + "App bar": "Pasek aplikacji", + "Apply": "Stosować", + "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": "Atrybuty", + "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": "Podstawowy", + "Benutzer": "Benutzer", + "Blue flowers": "Niebieskie kwiaty", + "Blue marine": "Niebieski morski", + "Blue marine lines": "Niebieskie linie morskie", + "Blueprint grid": "Siatka schematu", + "Bricks": "Cegły", + "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", + "CSS": "CSS", + "CSS Class": "Klasa CSS", + "CSS Common": "CSS Wspólne", + "CSS Font & Text": "CSS Czcionka i tekst", + "CSS background (background-...)": "CSS Tło (background-...)", + "Cancel": "Anulować", + "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": "Jasne", + "Clear filter": "Czysty filtr", + "Click to close": "Kliknij, aby zamknąć", + "Clone": "Klon", + "Clone widget": "Klonuj widżet", + "Close": "Blisko", + "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": "Kolorowy", + "Column gap": "Odstęp kolumny", + "Column width": "Szerokość kolumny", + "Comment": "Komentarz", + "Convert %s to %s": "Konwertuj %s na %s", + "Copied %s": "Skopiowano %s", + "Copied to clipboard": "Skopiowane do schowka", + "Copy": "Kopiuj", + "Copy noun": "Kopiuj", + "Copy to clipboard": "Skopiuj do schowka", + "Copy view \"%s\"": "Kopiuj widok „%s”", + "Create": "Tworzyć", + "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": "Skaleczenie", + "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": "Domyślna", + "Default view": "Widok domyślny", + "Default: auto": "Wartość domyślna: „auto”", + "Delete": "Kasować", + "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": "Urządzenia", + "Disabled": "Wyłączone", + "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": "Duplikować", + "Duplicate folder": "Zduplikuj folder", + "Duplicate profile": "Powiel profil", + "Edit": "Edytować", + "Edit binding": "Edytuj wiązanie", + "Edit folder": "Edytuj folder", + "Edit group": "Edytuj grupę", + "Edit profile": "Edytuj profil", + "Elements": "Elementy", + "Enabled": "Włączony", + "Enter": "Wchodzić", + "Enter password": "Wprowadź hasło", + "Enter the browser instances divided by comma": "Wprowadź wystąpienia przeglądarki podzielone przecinkiem", + "Expand all": "Rozwiń wszystkie", + "Explanation": "Wyjaśnienie", + "Export": "Eksport", + "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": "Akta", + "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": "Fr", + "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": "Dla wszystkich projektów", + "Gradient box": "Gradientowe pudełko", + "Gray 0": "Szary 0", + "Gray 1": "Szary 1", + "Grid": "Krata", + "Group": "Grupa", + "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": "Wysokość", + "Hide": "Ukrywać", + "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": "Wysoka", + "High priority": "Wysoki priorytet", + "Highest eg. Holiday": "Najwyższy np. Wakacje", + "Horizontal": "Poziomy", + "Icon": "Ikona", + "If user not in group": "Jeśli użytkownik nie jest w grupie", + "Ignore": "Ignorować", + "Ignored in edit mode": "Ignorowane w trybie edycji", + "Image": "Obraz", + "Import": "Import", + "Import project": "Importuj projekt", + "Import widgets": "Importuj widżety", + "Include widget?": "Dołącz widżet?", + "Initial filter": "Filtr początkowy", + "Instance": "Instancja", + "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": "Zamek", + "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": "Wiadomość", + "Mo": "Mo", + "Modify": "Modyfikować", + "More": "Więcej", + "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": "Nazwa", + "Name is not unique": "Nazwa nie jest unikalna", + "Name of copy": "Nazwa kopii", + "Narrow panel": "Wąski panel", + "Navigation": "Nawigacja", + "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": "Nie", + "No background": "Brak tła", + "Normal": "Normalna", + "OFF": "OFF", + "ON": "ON", + "Objects": "Obiekty", + "Ok": "Ok", + "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": "otwarty", + "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": "Opcje", + "Order": "Zamówienie", + "Orientation": "Orientacja", + "Palette": "Paleta", + "Paste": "Pasta", + "Percent": "Procent", + "Permissions": "Uprawnienia", + "Pixel 5 - Landscape": "Piksel 5 – Krajobraz", + "Pixel 5 - Portrait": "Piksel 5 – Portret", + "Priority": "Priorytet", + "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 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": "Projektowanie", + "Radial blue": "Promieniowy niebieski", + "Read": "Czytać", + "Read = Runtime access": "Odczyt = dostęp w czasie wykonywania", + "Read about currentColor in SVG": "Przeczytaj o bieżącym kolorze w SVG", + "Received user command: %s": "Otrzymano polecenie użytkownika: %s", + "Reconnect interval": "Interwał ponownego łączenia", + "Redo": "Przerobić", + "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": "Ponowne ładowanie", + "Rename": "Przemianować", + "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": "Rezolucja", + "Responsive settings": "Ustawienia responsywne", + "Row gap": "Odstęp między wierszami", + "Sa": "Sa", + "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": "Ratować", + "Scripts": "Skrypty", + "Search": "Szukaj", + "Select": "Wybierz", + "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": "Ustawienia", + "Should it be moved to new place?": "Czy należy go przenieść w nowe miejsce?", + "Show": "Pokazać", + "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 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": "Styl", + "Su": "Su", + "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": "Zakładki", + "Temperature": "Temperatura", + "Text color": "Kolor tekstu", + "Text color if selected": "Kolor tekstu, jeśli został wybrany", + "Text edit": "Edycja tekstu", + "Th": "Th", + "Theme": "Motyw", + "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": "Tytuł", + "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": "Tu", + "Type": "Rodzaj", + "Undo": "Cofnij", + "Ungroup": "Rozgrupuj", + "Uninstall": "Odinstaluj", + "Unknown widget type \"%s\"": "Nieznany typ widżetu „%s”", + "Unlock": "Odblokować", + "Unselect": "Odznacz", + "Update": "Aktualizacja", + "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": "Wartość", + "Vertical": "Pionowy", + "View": "Pogląd", + "View not defined": "Widok niezdefiniowany", + "We": "Mi", + "Weekend": "Weekend", + "Widget": "Widżet", + "Widget CSS": "Widżet CSS", + "Widget JS": "Widżet JS", + "Widget was deleted in widgeteria": "Widżet został usunięty w widżeterii", + "Widgets": "Widżety", + "Width": "Szerokość", + "Width x height (px)": "Szerokość x wysokość (px)", + "Write": "Pisać", + "Write = Edit mode access": "Zapis = Dostęp do trybu edycji", + "Writer": "Pisarz", + "Wrong password": "Złe hasło", + "Yes": "TAk", + "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": "Widżeteria", + "ace_All": "Wszystko", + "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": "Etykietka przez false", + "alt_true": "Etykietka zawiera prawdę", + "anonymize": "anonimizować", + "apply_to_all": "Dla wszystkich", + "attr_none": "none", + "basic_all_filters": "Dodaj wszystko, co zostało", + "basic_arrow": "Strzałka", + "basic_borderColor": "Kolor ramki", + "basic_borderRadius": "Promień granicy", + "basic_circle": "Koło", + "basic_custom": "Niestandardowy wielokąt", + "basic_filter_multiple": "Wybór wielokrotny", + "basic_filter_type_dropdown": "Menu rozwijane", + "basic_filter_type_horizontal_buttons": "Przyciski poziome", + "basic_filter_type_vertical_buttons": "Pionowe przyciski", + "basic_hexagone": "Sześciokąt", + "basic_line": "Linia", + "basic_no_all_option": "Brak opcji „Bez filtra”.", + "basic_no_filter": "Bez filtra", + "basic_no_filter_text": "Etykieta „Brak filtra”.", + "basic_octagone": "Oktagon", + "basic_pentagone": "Pentagon", + "basic_pin": "Szpilka", + "basic_speech2text_continuous": "ciągły", + "basic_speech2text_detected": "Wykryto", + "basic_speech2text_en_us": "język angielski", + "basic_speech2text_height": "Wysokość (px)", + "basic_speech2text_image_active": "Aktywny", + "basic_speech2text_image_inactive": "Nieaktywny", + "basic_speech2text_info_allow": "Kliknij przycisk „Zezwalaj” powyżej, aby włączyć mikrofon.", + "basic_speech2text_info_blocked": "Zezwolenie na używanie mikrofonu jest zablokowane. Aby zmienić, przejdź do chrome://settings/contentExceptions#media-stream", + "basic_speech2text_info_denied": "Odmówiono pozwolenia na użycie mikrofonu.", + "basic_speech2text_info_no_microphone": "Nie znaleziono mikrofonu. Upewnij się, że mikrofon jest zainstalowany i że ustawienia mikrofonu są prawidłowo skonfigurowane.", + "basic_speech2text_info_no_speech": "Nie wykryto mowy. Może być konieczne dostosowanie ustawień mikrofonu.", + "basic_speech2text_info_speak_now": "Mów teraz.", + "basic_speech2text_info_start": "Kliknij ikonę mikrofonu i zacznij mówić.", + "basic_speech2text_info_upgrade": "Ta przeglądarka nie obsługuje interfejsu Web Speech API. Uaktualnij przeglądarkę do Chrome w wersji 25 lub nowszej.", + "basic_speech2text_key_word_color": "Kolor słowa kluczowego", + "basic_speech2text_key_word_color_tooltip": "Kolor tekstu, jeśli znaleziono słowo kluczowe", + "basic_speech2text_keywords": "Słowa kluczowe", + "basic_speech2text_no_image": "Brak obrazka", + "basic_speech2text_no_results": "Brak wyników", + "basic_speech2text_no_text": "Brak tekstu pomocy", + "basic_speech2text_ru_ru": "Rosyjski", + "basic_speech2text_sent": "Wysłano", + "basic_speech2text_single": "pojedynczy", + "basic_speech2text_speech_mode": "Tryb mowy", + "basic_speech2text_start_stop": "zacząć zakończyć", + "basic_speech2text_started": "Rozpoczęty", + "basic_speech2text_text_sent_color": "Tekst wysłany w kolorze", + "basic_speech2text_text_sent_color_tooltip": "Kolor tekstu, gdy tekst jest wysyłany do przetworzenia", + "basic_speech2text_width": "Szerokość (px)", + "basic_square": "Kwadrat", + "basic_star": "Gwiazda", + "basic_sub_view": "Widok podrzędny", + "basic_triangle": "Trójkąt", + "block": "blok", + "color": "kolor", + "color_false": "Pokoloruj według fałszu", + "color_true": "Kolor zgodny z prawdą", + "convert from widgeteria widget": "konwertować z widżetu widgeteria", + "copy": "Kopia", + "css_project": "Dla tego projektu", + "custom_icons": "Specjalny", + "different": "inny; różny", + "display": "wyświetlacz", + "finish searching": "wyszukiwanie zakończone", + "flex": "przewód", + "flexible": "elastyczny", + "folder": "Teczka", + "font-family": "rodzina czcionek", + "font-size": "rozmiar czcionki", + "font-style": "styl czcionki", + "font-variant": "wariant-czcionki", + "font-weight": "grubość czcionki", + "group": "Grupa", + "group_attrName": "Nazwa", + "group_attrType": "Typ", + "group_fields": "Atrybuty", + "group_help": "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.", + "group_icon_false": "Ikona fałszywa", + "group_icon_true": "Ikona zgodnie z prawdą", + "group_size_hint": "Możesz zmienić rozmiar grupy, wybierając ją w rozwijanym selektorze widżetów lub klikając ten tekst", + "group_text": "Tekst", + "help_css_global": "Te CSS mają zastosowanie do wszystkich projektów", + "help_css_project": "Te CSS są stosowane tylko do tego projektu", + "hide": "ukryć", + "hide code": "ukryj kod", + "horizontal": "poziomy", + "hr": "godziny", + "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": "Rozmiar ikony w pikselach", + "icon_upload_hint": "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.", + "imageHeight_false": "Wysokość obrazu", + "imageHeight_true": "Wysokość obrazu", + "invert_icon_false": "Odwróć ikonę", + "invert_icon_true": "Odwróć ikonę", + "jqui_Add new value": "Dodaj nową wartość", + "jqui_Are you sure?": "Jesteś pewny?", + "jqui_Bulk edit": "Edycja zbiorcza", + "jqui_Close": "Zamknąć", + "jqui_Example": "Przykład", + "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": "Procenty", + "jqui_Replace to": "Zamienić", + "jqui_Select file": "Wybierz obraz", + "jqui_Write state": "Napisz stan", + "jqui_active_color": "Aktywny kolor", + "jqui_ampm": "Jestem/Po południu", + "jqui_asDate": "Jako data", + "jqui_asFullDate": "Użycie pełnej daty możliwej do analizy", + "jqui_as_string": "Jako ciąg", + "jqui_auto": "automatyczny", + "jqui_binary_control": "Sterowanie binarne", + "jqui_button_binary_control_note": "Przestarzałe. Użyj widżetu „Kontrola binarna”. Zachowane tylko ze względu na kompatybilność z vis.1", + "jqui_button_color": "Kolor przycisku", + "jqui_button_dialog_close": "Przycisk zamykania okna dialogowego", + "jqui_button_input_note": "Przestarzałe. Użyj widżetu „Wejście”. Zachowane tylko ze względu na kompatybilność z vis.1", + "jqui_button_link": "Przejdź do adresu URL", + "jqui_button_link_blank": "Przejdź do adresu URL (w nowym oknie)", + "jqui_button_link_blank_note": "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", + "jqui_button_nav_blank_note": "Przestarzałe. Użyj pierwszego widgetu z opcją „Przejdź do widoku”. Zachowane tylko ze względu na kompatybilność z vis.1", + "jqui_button_text": "Przycisk tekstowy", + "jqui_buttontext_view": "Użyj nazwy widoku jako tytułu", + "jqui_clearable": "Usuwalne", + "jqui_color": "Kolor", + "jqui_container_button_dialog": "Przycisk=>Okno strony", + "jqui_container_dialog": "Okno dialogowe kontenera", + "jqui_container_icon_dialog": "Ikona=>Okno strony", + "jqui_dialog_name": "Nazwa okna dialogowego", + "jqui_dialog_set_id_tooltip": "Ustaw stan przez otwarte okno dialogowe", + "jqui_disableFuture": "Wyłącz przyszłość", + "jqui_disablePast": "Wyłącz przeszłość", + "jqui_displayWeekNumber": "Wyświetl numer tygodnia", + "jqui_equal_text_length": "Równa długość tekstu", + "jqui_equal_text_length_tooltip": "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”.", + "jqui_external_dialog": "Okno zewnętrzne", + "jqui_external_dialog_tooltip": "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.", + "jqui_false": "FAŁSZ", + "jqui_from_oid": "Z innego obiektu", + "jqui_from_value": "Od wartości statycznej", + "jqui_generate": "Generować", + "jqui_group_value": "Wartość", + "jqui_hide_close_button": "Ukryj przycisk zamykania", + "jqui_href_tooltip": "Ten adres URL zostanie wywołany w przeglądarce", + "jqui_html": "HTML", + "jqui_html_dialog": "Okno HTML", + "jqui_html_external_dialog": "Okno zewnętrzne", + "jqui_html_false": "HTML przez fałsz", + "jqui_html_tooltip": "HTML można konfigurować tylko wtedy, gdy tekst i ikona są puste", + "jqui_html_true": "HTML według prawdy", + "jqui_icon": "Ikona", + "jqui_icon_active": "Aktywna ikona", + "jqui_icon_dialog": "Ikona okna dialogowego", + "jqui_icon_http_get": "Adres URL wywołania w zapleczu", + "jqui_icon_increment": "Przyrost za pomocą ikony", + "jqui_icon_link": "Przejdź do adresu URL (z ikoną)", + "jqui_icon_max": "Ikona maksimum", + "jqui_icon_state_bool": "Przycisk z ikoną logiczną", + "jqui_icon_state_push_button": "Naciśnij przycisk", + "jqui_icon_toggle": "Przycisk przełączania z ikoną", + "jqui_image": "Obraz", + "jqui_image_active": "Aktywny obraz", + "jqui_image_height": "Wysokość obrazu", + "jqui_image_max": "Obraz maksymalnie", + "jqui_increment_decrement": "Zwiększanie/zmniejszanie", + "jqui_input": "Wejście", + "jqui_input_date": "Wprowadzanie daty", + "jqui_input_time": "Wprowadzanie czasu", + "jqui_input_with_button": "Wejście za pomocą przycisku", + "jqui_invert_icon": "Odwróć ikonę", + "jqui_inverted": "Odwrotny", + "jqui_jquery_style": "Styl jQuery", + "jqui_max": "Maksymalna wartość", + "jqui_min": "Minimalna wartość", + "jqui_name": "Tytuł", + "jqui_nav_view": "Przejdź do widoku", + "jqui_navigation_button": "Przycisk nawigacji", + "jqui_navigation_icon": "Ikona nawigacji", + "jqui_navigation_password": "Nawigacja z hasłem", + "jqui_not_equal_length": "Nie równa szerokość", + "jqui_off": "Wyłączony", + "jqui_oid_working": "Identyfikator roboczy", + "jqui_on": "Włączony", + "jqui_only_icon": "Tylko ikona", + "jqui_open": "Jako lista", + "jqui_orientation": "Orientacja", + "jqui_password": "Hasło", + "jqui_password_tooltip": "Użytkownik musi wprowadzić hasło, aby otworzyć okno dialogowe, przejść do strony lub adresu URL", + "jqui_push_mode": "Tryb pchania", + "jqui_push_mode_tooltip": "Po naciśnięciu przycisku zostanie zapisane „prawda”, a po zwolnieniu przycisku zostanie zapisane „fałsz”.", + "jqui_radio_buttons_on_off": "Przyciski opcji (wł./wył.)", + "jqui_radio_list": "Lista radiowa z wartościami", + "jqui_radio_steps": "Przycisk opcji (kroki)", + "jqui_range": "zakres", + "jqui_read_only": "Tylko czytać", + "jqui_repeat_delay": "Powtórz opóźnienie", + "jqui_repeat_interval": "Powtórz interwał", + "jqui_select_all_on_focus": "Zaznacz wszystko na fokusie", + "jqui_select_all_on_focus_tooltip": "Po zaznaczeniu cały tekst zostanie zaznaczony, więc można go szybko usunąć lub zmienić bez naciskania przycisku Backspace", + "jqui_select_list": "Wybierz z listy", + "jqui_set_label": "stylizowany", + "jqui_set_timeout": "Limit czasu zapisu", + "jqui_single": "pojedynczy", + "jqui_slider": "Suwak", + "jqui_slider_note": "Przestarzałe. Użyj widżetu suwaka z orientacją ustawioną na pionową. Zachowane tylko ze względu na kompatybilność z vis.1", + "jqui_slider_vertical": "Suwak pionowy", + "jqui_state_note": "Przestarzałe. Użyj widżetu „Kontrola stanów” z opcją „zwiększ/zmniejsz”. Zachowane tylko ze względu na zgodność z vis.1", + "jqui_states_control": "Kontrola państw", + "jqui_stepMinute": "Krok minuta", + "jqui_test": "Wartość testowa", + "jqui_text": "Tekst", + "jqui_text_active": "Aktywny tekst", + "jqui_text_max": "Tekst na maksimum", + "jqui_toggle": "Przełącznik", + "jqui_tooltip": "Etykietka", + "jqui_true": "PRAWDA", + "jqui_type": "Typ", + "jqui_unit": "Jednostka", + "jqui_url_group": "Zadzwoń do adresu URL po kliknięciu", + "jqui_url_in_background": "Adres URL w zapleczu", + "jqui_url_in_browser": "Adres URL w przeglądarce", + "jqui_url_tooltip": "Ten adres URL zostanie wywołany w tle przez silnik ioBroker", + "jqui_value": "Wartość", + "jqui_value_label_display": "Wyświetl etykietę", + "jqui_variant": "Wariant", + "jqui_view_group": "Widok nawigacji", + "jqui_wideFormat": "Szeroki format", + "jqui_widgetTitle": "Tytuł", + "jqui_with_enter_button": "Z przyciskiem Enter", + "jqui_write_state_note": "Przestarzałe. Użyj widżetu „Zapisz stan” z opcją „zwiększ/zmniejsz”. Zachowane tylko ze względu na kompatybilność z vis.1", + "jqui_write_value": "Zapisz wartość", + "letter-spacing": "odstępy między literami", + "line-height": "Wysokość linii", + "material_icons_baseline": "Wypełniony", + "material_icons_knx-uf": "knx-uf", + "material_icons_outline": "Przedstawione", + "material_icons_result": "%s pasujących wyników", + "material_icons_round": "Okrągły", + "material_icons_sharp": "Ostry", + "material_icons_twotone": "Dwutonowy", + "material_icons_upload": "Wgrywać", + "multi-views": "Pokaż w widokach", + "never": "nigdy", + "no_reload": "bez przeładowania", + "none": "Żaden", + "normal": "normalna", + "not defined": "Nie określono", + "not-specified": "Nie określono", + "optional": "opcjonalny", + "order_help": "Możesz przeciągnąć i upuścić dowolny element lub kliknąć element, z którym wybrany widżet zostanie zamieniony", + "orientation": "Orientacja", + "profile": "Profil", + "qui_Bool SVG": "Wartość logiczna SVG", + "reload": "przeładować", + "search text": "Wyszukaj tekst", + "set_basic": "podstawowy", + "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-0": "Tekst [0]", + "signals-text-1": "Tekst [1]", + "signals-text-2": "Tekst [2]", + "sub_view_tooltip": "Służy do celów specjalnych, takich jak nawigacja według projektu Jaeger", + "text-shadow": "cień tekstu", + "text_false": "Tekst fałszywy", + "text_true": "Tekst zgodny z prawdą", + "to version": "do wersji", + "value_string": "strunowy", + "version": "wersja", + "vertical": "pionowy", + "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": "Zmienny rozmiar", + "vis_2_widgets_basic_cannot_recursive": "Nie można używać widoków rekurencyjnych", + "vis_2_widgets_basic_contains_view": "Użyj widoku", + "vis_2_widgets_basic_view_in_widget": "Zobacz w widżecie", + "vis_2_widgets_basic_view_not_defined": "Widok niezdefiniowany", + "vis_2_widgets_swipe_hide_indication_label": "Ukryj wskazanie", + "vis_2_widgets_swipe_threshold_label": "Próg", + "vis_2_widgets_widgets_swipe_label": "Swipe", + "vis_2_widgets_widgets_tabs_color": "Kolor", + "vis_2_widgets_widgets_tabs_group_tab": "Patka", + "vis_2_widgets_widgets_tabs_label": "Zakładki", + "vis_2_widgets_widgets_tabs_show_tabs": "Numer", + "vis_2_widgets_widgets_tabs_tab_icon": "Ikona", + "vis_2_widgets_widgets_tabs_tab_icon_color": "Kolor", + "vis_2_widgets_widgets_tabs_tab_icon_size": "Rozmiar ikony", + "vis_2_widgets_widgets_tabs_tab_image": "Obraz", + "vis_2_widgets_widgets_tabs_tab_overflow_x": "Przepełnienie X", + "vis_2_widgets_widgets_tabs_tab_overflow_y": "Przepełnienie Y", + "vis_2_widgets_widgets_tabs_tab_title": "Tytuł", + "vis_2_widgets_widgets_tabs_tab_view": "Pogląd", + "vis_2_widgets_widgets_tabs_variant": "Wariant", + "vis_2_widgets_widgets_tabs_variant_centered": "wyśrodkowany", + "vis_2_widgets_widgets_tabs_variant_default": "Domyślny", + "vis_2_widgets_widgets_tabs_variant_full_width": "pełna szerokość", + "vis_2_widgets_widgets_tabs_vertical": "Pionowy", + "welcome_message": "Żaden projekt jeszcze nie istnieje.", + "word-spacing": "odstępy między wyrazami" } \ No newline at end of file diff --git a/packages/iobroker.vis-2/src/src/i18n/pt.json b/packages/iobroker.vis-2/src/src/i18n/pt.json index d6a3ba35..772248e3 100644 --- a/packages/iobroker.vis-2/src/src/i18n/pt.json +++ b/packages/iobroker.vis-2/src/src/i18n/pt.json @@ -1,753 +1,755 @@ { - "%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": "Adicionar", - "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\n", - "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": "Administrador", - "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.", - "Aluminium1": "Alumínio1", - "Aluminium2": "Alumínio2", - "App bar": "Barra de aplicativos", - "Apply": "Aplicar", - "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": "Atributos", - "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": "Básico", - "Benutzer": "Benutzer", - "Blue flowers": "Flores azuis", - "Blue marine": "Azul marinho", - "Blue marine lines": "Linhas marinhas azuis", - "Blueprint grid": "Grade de planta", - "Bricks": "Tijolos", - "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", - "CSS": "CSS", - "CSS Class": "Classe CSS", - "CSS Common": "CSS comum", - "CSS Font & Text": "CSS Fonte e texto", - "CSS background (background-...)": "CSS Plano de fundo (background-...)", - "Cancel": "Cancelar", - "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": "Claro", - "Clear filter": "Filtro limpo", - "Click to close": "Clique para fechar", - "Clone widget": "Clonar widget", - "Close": "Perto", - "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": "Colorido", - "Column gap": "Lacuna de coluna", - "Column width": "Largura da coluna", - "Comment": "Comente", - "Convert %s to %s": "Converter %s para %s", - "Copied %s": "Copiado %s", - "Copied to clipboard": "Copiado para a área de transferência", - "Copy": "cópia de", - "Copy noun": "cópia de", - "Copy to clipboard": "Copiar para área de transferência", - "Copy view \"%s\"": "Copiar visualização \"%s\"", - "Create": "Crio", - "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": "Corte", - "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": "Predefinição", - "Default view": "Visualização padrão", - "Default: auto": "Padrão: \"auto\"", - "Delete": "Excluir", - "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": "Dispositivos", - "Disabled": "Desabilitado", - "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\"?", - "Drag me": "Arraste-me", - "Drop the files here ...": "Solte os arquivos aqui...", - "Duplicate": "Duplicado", - "Duplicate folder": "Duplique a pasta", - "Duplicate profile": "Duplique o perfil", - "Edit": "Editar", - "Edit binding": "Editar vinculação", - "Edit folder": "Editar pasta", - "Edit group": "Editar grupo", - "Edit profile": "Editar Perfil", - "Elements": "Elementos", - "Enabled": "Habilitado", - "Enter": "Digitar", - "Enter password": "Digite a senha", - "Expand all": "Expandir todos", - "Explanation": "Explicação", - "Export": "Exportar", - "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": "arquivos", - "Filter widgets": "Filtrar widgets", - "Fm dark background": "Fm fundo escuro", - "Fm light background": "Fundo de luz fm", - "For widgets with relative position": "Para widgets com posição relativa", - "Fr": "Fr", - "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": "Para todos os projetos", - "Gradient box": "Caixa de gradiente", - "Gray 0": "Cinza 0", - "Gray 1": "Cinza 1", - "Grid": "Rede", - "Group": "Grupo", - "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": "Altura", - "Hide": "Esconder", - "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": "Alto", - "High priority": "Prioridade máxima", - "Highest eg. Holiday": "Mais alto, por exemplo. Feriado", - "Horizontal": "Horizontal", - "Icon": "Ícone", - "If user not in group": "Se o usuário não estiver no grupo", - "Ignore": "Ignorar", - "Ignored in edit mode": "Ignorado no modo de edição", - "Image": "Imagem", - "Import": "Importar", - "Import project": "Importar projeto", - "Import widgets": "Importar widgets", - "Initial filter": "Filtro inicial", - "Instance": "Instância", - "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 screen": "Tela limite", - "Lined paper": "Papel pautado", - "Lock": "Trancar", - "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", - "Message": "Mensagem", - "Mo": "Mo", - "Modify": "Modificar", - "More": "Mais", - "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": "Nome", - "Name is not unique": "O nome não é único", - "Name of copy": "Nome da cópia", - "Narrow panel": "Painel estreito", - "Navigation": "Navegação", - "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": "Não", - "No background": "Sem plano de fundo", - "Normal": "Normal", - "OFF": "OFF", - "ON": "ON", - "Objects": "Objetos", - "Ok": "OK", - "On/Off": "Ligado desligado", - "One parameter": "Um parâmetro", - "Only for groups": "Apenas para grupos", - "Only the admin user can change permissions": "Somente o usuário administrador pode alterar as permissões", - "Open": "Abrir", - "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": "Opções", - "Order": "Ordem", - "Orientation": "Orientação", - "Palette": "Paleta", - "Paste": "Colar", - "Percent": "Por cento", - "Permissions": "Permissões", - "Pixel 5 - Landscape": "Pixel 5 - Paisagem", - "Pixel 5 - Portrait": "Pixel 5 - Retrato", - "Priority": "Prioridade", - "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 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": "Projetos", - "Radial blue": "Azul radial", - "Read": "Ler", - "Read = Runtime access": "Leitura = acesso ao tempo de execução", - "Read about currentColor in SVG": "Leia sobre currentColor em SVG", - "Received user command: %s": "Comando de usuário recebido: %s", - "Reconnect interval": "Intervalo de reconexão", - "Redo": "Refazer", - "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": "Recarregando", - "Rename": "Renomear", - "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": "Resolução", - "Responsive settings": "Configurações responsivas", - "Row gap": "Lacuna entre linhas", - "Sa": "Sá", - "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": "Salvar", - "Scripts": "Scripts", - "Search": "Procurar", - "Select": "Selecionar", - "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": "Definições", - "Should it be moved to new place?": "Deve ser movido para um novo local?", - "Show": "mostrar", - "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 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": "Estilo", - "Su": "Su", - "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": "Guias", - "Temperature": "Temperatura", - "Text color": "Cor do texto", - "Text color if selected": "Cor do texto, se selecionado", - "Text edit": "edição de texto", - "Th": "Th", - "Theme": "Tema", - "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": "Título", - "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": "Tu", - "Type": "Modelo", - "Undo": "Desfazer", - "Ungroup": "Desagrupar", - "Uninstall": "Desinstalar", - "Unknown widget type \"%s\"": "Tipo de widget desconhecido \"%s\"", - "Unlock": "Desbloquear", - "Update": "Atualizar", - "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": "Valor", - "Vertical": "Vertical", - "View": "Visão", - "View not defined": "Visualização não definida", - "We": "Mi", - "Weekend": "Final de semana", - "Widget": "Ferramenta", - "Widget CSS": "CSS do widget", - "Widget JS": "Widget JS", - "Widget was deleted in widgeteria": "O widget foi deletado na widgeteria", - "Widgets": "Widgets", - "Width": "Largura", - "Width x height (px)": "Largura x altura (px)", - "Write": "Escrever", - "Write = Edit mode access": "Gravar = acesso ao modo de edição", - "Writer": "Escritor", - "Wrong password": "Senha incorreta", - "Yes": "Sim", - "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": "Widgeteria", - "ace_All": "Todos", - "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": "Dica de ferramenta por falso", - "alt_true": "Dica por true", - "anonymize": "anonimizar", - "apply_to_all": "Para todos", - "attr_none": "none", - "basic_arrow": "Seta", - "basic_borderColor": "Cor da borda", - "basic_borderRadius": "Raio da borda", - "basic_circle": "Círculo", - "basic_custom": "Polígono personalizado", - "basic_hexagone": "Hexágono", - "basic_line": "Linha", - "basic_octagone": "Octógono", - "basic_pentagone": "Pentágono", - "basic_pin": "Alfinete", - "basic_speech2text_continuous": "contínuo", - "basic_speech2text_detected": "Detectou", - "basic_speech2text_en_us": "inglês", - "basic_speech2text_height": "Altura (px)", - "basic_speech2text_image_active": "Ativo", - "basic_speech2text_image_inactive": "Inativo", - "basic_speech2text_info_allow": "Clique no botão \"Permitir\" acima para ativar seu microfone.", - "basic_speech2text_info_blocked": "A permissão para usar o microfone está bloqueada. Para alterar, vá para chrome://settings/contentExceptions#media-stream", - "basic_speech2text_info_denied": "A permissão para usar microfone foi negada.", - "basic_speech2text_info_no_microphone": "Nenhum microfone foi encontrado. Verifique se há um microfone instalado e se as configurações do microfone estão configuradas corretamente.", - "basic_speech2text_info_no_speech": "Nenhuma fala foi detectada. Talvez seja necessário ajustar as configurações do microfone.", - "basic_speech2text_info_speak_now": "Fale agora.", - "basic_speech2text_info_start": "Clique no ícone do microfone e comece a falar.", - "basic_speech2text_info_upgrade": "A API Web Speech não é compatível com este navegador. Atualize para o Chrome versão 25 ou posterior.", - "basic_speech2text_key_word_color": "Cor da palavra-chave", - "basic_speech2text_key_word_color_tooltip": "Cor do texto, se a palavra-chave for encontrada", - "basic_speech2text_keywords": "Palavras-chave", - "basic_speech2text_no_image": "Nenhuma imagem", - "basic_speech2text_no_results": "Nenhum resultado", - "basic_speech2text_no_text": "Nenhum texto de ajuda", - "basic_speech2text_ru_ru": "russo", - "basic_speech2text_sent": "Enviado", - "basic_speech2text_single": "solteiro", - "basic_speech2text_speech_mode": "Modo de fala", - "basic_speech2text_start_stop": "iniciar/parar", - "basic_speech2text_started": "Iniciado", - "basic_speech2text_text_sent_color": "Cor do texto enviado", - "basic_speech2text_text_sent_color_tooltip": "Cor do texto, quando o texto é enviado para processamento", - "basic_speech2text_width": "Largura (px)", - "basic_square": "Quadrado", - "basic_star": "Estrela", - "basic_triangle": "Triângulo", - "block": "quadra", - "color": "cor", - "color_false": "Cor por falso", - "color_true": "Cor por verdadeiro", - "convert from widgeteria widget": "converter de widget widgeteria", - "copy": "cópia", - "css_project": "Para este projeto", - "custom_icons": "Especial", - "different": "diferente", - "display": "exibição", - "finish searching": "procura terminada", - "flex": "flexionar", - "flexible": "flexível", - "folder": "Pasta", - "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": "Grupo", - "group_attrName": "Nome", - "group_attrType": "Tipo", - "group_fields": "Atributos", - "group_help": "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.", - "group_icon_false": "Ícone por falso", - "group_icon_true": "Ícone por verdadeiro", - "group_size_hint": "Você pode alterar o tamanho do grupo, selecionando-o no seletor de widget suspenso ou clicando neste texto", - "group_text": "Texto", - "help_css_global": "Esses CSS são aplicados a todos os projetos", - "help_css_project": "Esses CSS são aplicados apenas a este projeto", - "hide": "ocultar", - "hide code": "ocultar código", - "horizontal": "horizontal", - "hr": "horas", - "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": "Tamanho do ícone em pixels", - "icon_upload_hint": "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.", - "imageHeight_false": "Altura da imagem", - "imageHeight_true": "Altura da imagem", - "invert_icon_false": "Ícone de inversão", - "invert_icon_true": "Ícone de inversão", - "jqui_Add new value": "Adicionar novo valor", - "jqui_Are you sure?": "Tem certeza?", - "jqui_Bulk edit": "Edição em massa", - "jqui_Close": "Fechar", - "jqui_Example": "Exemplo", - "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": "Porcentagens", - "jqui_Replace to": "Substituir com", - "jqui_Select file": "Selecione a imagem", - "jqui_active_color": "Cor ativa", - "jqui_ampm": "Manhã tarde", - "jqui_asDate": "Como data", - "jqui_asFullDate": "Uso de data analisável completa", - "jqui_as_string": "Como corda", - "jqui_auto": "auto", - "jqui_binary_control": "Controle binário", - "jqui_button_binary_control_note": "Descontinuada. Use o widget \"Controle binário\". Mantido apenas para compatibilidade com vis.1", - "jqui_button_color": "Cor do botao", - "jqui_button_dialog_close": "Botão fechar caixa de diálogo", - "jqui_button_input_note": "Descontinuada. Use o widget \"Entrada\". Mantido apenas para compatibilidade com vis.1", - "jqui_button_link": "Ir para URL", - "jqui_button_link_blank": "Ir para URL (em nova janela)", - "jqui_button_link_blank_note": "Descontinuada. Use o primeiro widget com a opção \"Abrir em nova janela\". Mantido apenas para compatibilidade com vis.1", - "jqui_button_nav_blank_note": "Descontinuada. Use o primeiro widget com a opção \"Ir para visualizar\". Mantido apenas para compatibilidade com vis.1", - "jqui_button_text": "Botão de texto", - "jqui_buttontext_view": "Use o nome da visualização como título", - "jqui_clearable": "Eliminável", - "jqui_color": "Cor", - "jqui_container_button_dialog": "Botão=>Caixa de diálogo Página", - "jqui_container_dialog": "Caixa de diálogo do contêiner", - "jqui_container_icon_dialog": "Ícone=>Caixa de diálogo Página", - "jqui_dialog_name": "Nome da caixa de diálogo", - "jqui_dialog_set_id_tooltip": "Definir estado pela caixa de diálogo aberta", - "jqui_disableFuture": "Desativar futuro", - "jqui_disablePast": "Desativar passado", - "jqui_displayWeekNumber": "Exibir número da semana", - "jqui_equal_text_length": "Comprimentos de texto iguais", - "jqui_equal_text_length_tooltip": "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\".", - "jqui_external_dialog": "Diálogo externo", - "jqui_external_dialog_tooltip": "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.", - "jqui_false": "Falso", - "jqui_from_oid": "De outro objeto", - "jqui_from_value": "Do valor estático", - "jqui_generate": "Gerar", - "jqui_group_value": "Valor", - "jqui_hide_close_button": "Ocultar botão fechar", - "jqui_href_tooltip": "Este URL será chamado no navegador", - "jqui_html": "HTML", - "jqui_html_dialog": "Caixa de diálogo HTML", - "jqui_html_external_dialog": "Diálogo externo", - "jqui_html_false": "HTML por falso", - "jqui_html_tooltip": "O HTML só é configurável se o texto e o ícone estiverem vazios", - "jqui_html_true": "HTML por verdadeiro", - "jqui_icon": "Ícone", - "jqui_icon_active": "Ícone ativo", - "jqui_icon_dialog": "Caixa de diálogo de ícones", - "jqui_icon_http_get": "URL de chamada no back-end", - "jqui_icon_increment": "Incrementar com ícone", - "jqui_icon_link": "Ir para URL (com ícone)", - "jqui_icon_max": "Ícone para máximo", - "jqui_icon_state_bool": "Botão de ícone booleano", - "jqui_icon_state_push_button": "Botão de apertar", - "jqui_icon_toggle": "Botão de alternância com ícone", - "jqui_image": "Imagem", - "jqui_image_active": "Imagem ativa", - "jqui_image_height": "Altura da imagem", - "jqui_image_max": "Imagem para máximo", - "jqui_increment_decrement": "Incremento/Decremento", - "jqui_input": "Entrada", - "jqui_input_date": "Entrada de data", - "jqui_input_time": "Entrada de tempo", - "jqui_input_with_button": "Entrada com botão", - "jqui_invert_icon": "Ícone de inversão", - "jqui_inverted": "Invertido", - "jqui_jquery_style": "Estilo jQuery", - "jqui_max": "Valor máximo", - "jqui_min": "Valor mínimo", - "jqui_name": "Título", - "jqui_nav_view": "Ir para ver", - "jqui_navigation_button": "Botão de navegação", - "jqui_navigation_icon": "Ícone de navegação", - "jqui_navigation_password": "Navegação com senha", - "jqui_not_equal_length": "Largura diferente", - "jqui_off": "Desligado", - "jqui_oid_working": "ID de trabalho", - "jqui_on": "Hab.", - "jqui_only_icon": "Único ícone", - "jqui_open": "Como lista", - "jqui_orientation": "Orientação", - "jqui_password": "Senha", - "jqui_password_tooltip": "O usuário deve inserir a senha para abrir a caixa de diálogo, ir para a página ou URL", - "jqui_push_mode": "Modo push", - "jqui_push_mode_tooltip": "Ao pressionar o botão será escrito “true” e ao soltar o botão será escrito “false”.", - "jqui_radio_buttons_on_off": "Botões de rádio (ligar/desligar)", - "jqui_radio_list": "Lista de rádio com valores", - "jqui_radio_steps": "Botão de opção (etapas)", - "jqui_range": "faixa", - "jqui_read_only": "Somente leitura", - "jqui_repeat_delay": "Atraso de repetição", - "jqui_repeat_interval": "Intervalo de repetição", - "jqui_select_all_on_focus": "Selecione tudo em foco", - "jqui_select_all_on_focus_tooltip": "Em foco, todo o texto será selecionado, para que possa ser excluído ou alterado rapidamente sem pressionar o botão backspace", - "jqui_select_list": "Selecione na lista", - "jqui_set_label": "estilizado", - "jqui_set_timeout": "Tempo limite de gravação", - "jqui_single": "solteiro", - "jqui_slider": "Controle deslizante", - "jqui_slider_note": "Descontinuada. Use o widget deslizante com orientação definida como vertical. Mantido apenas para compatibilidade com vis.1", - "jqui_slider_vertical": "Controle deslizante vertical", - "jqui_state_note": "Descontinuada. Use o widget \"Controle de estados\" com a opção \"incremento/decremento\". Mantido apenas para compatibilidade com vis.1", - "jqui_states_control": "Controle dos Estados", - "jqui_stepMinute": "Passo minuto", - "jqui_test": "Valor de teste", - "jqui_text": "Texto", - "jqui_text_active": "Texto ativo", - "jqui_text_max": "Texto para máximo", - "jqui_toggle": "Alternar", - "jqui_tooltip": "Dica", - "jqui_true": "Verdadeiro", - "jqui_type": "Tipo", - "jqui_unit": "Unidade", - "jqui_url_group": "URL de chamada por clique", - "jqui_url_in_background": "URL no back-end", - "jqui_url_in_browser": "URL no navegador", - "jqui_url_tooltip": "Este URL será chamado em segundo plano pelo mecanismo ioBroker", - "jqui_value": "Valor", - "jqui_value_label_display": "Etiqueta de exibição", - "jqui_variant": "Variante", - "jqui_view_group": "Visualização de navegação", - "jqui_wideFormat": "Formato amplo", - "jqui_widgetTitle": "Título", - "jqui_with_enter_button": "Com botão entrar", - "jqui_write_state_note": "Descontinuada. Use o widget \"Wirte state\" com a opção \"incremento/decremento\". Mantido apenas para compatibilidade com vis.1", - "jqui_write_value": "Escrever valor", - "letter-spacing": "espaçamento entre letras", - "line-height": "altura da linha", - "material_icons_baseline": "Preenchidas", - "material_icons_knx-uf": "knx-uf", - "material_icons_outline": "Delineado", - "material_icons_result": "%s resultados correspondentes", - "material_icons_round": "Redondo", - "material_icons_sharp": "Afiado", - "material_icons_twotone": "Dois tons", - "material_icons_upload": "Carregar", - "multi-views": "Mostrar em visualizações", - "never": "Nunca", - "no_reload": "sem recarga", - "none": "Nenhum", - "normal": "normal", - "not defined": "não definido", - "not-specified": "não definido", - "optional": "opcional", - "order_help": "Você pode arrastar e soltar qualquer item ou clicar no item com o qual o widget selecionado será trocado", - "orientation": "Orientação", - "profile": "Perfil", - "qui_Bool SVG": "SVG booleano", - "reload": "recarregar", - "search text": "Texto de pesquisa", - "set_basic": "básico", - "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-0": "Texto [0]", - "signals-text-1": "Texto [1]", - "signals-text-2": "Texto [2]", - "text-shadow": "sombra de texto", - "text_false": "Texto por falso", - "text_true": "Texto por verdadeiro", - "to version": "para versão", - "value_string": "corda", - "version": "versão", - "vertical": "vertical", - "visResizable": "Redimensionável", - "vis_2_widgets_basic_cannot_recursive": "Não é possível usar visualizações recursivas", - "vis_2_widgets_basic_contains_view": "Usar visualização", - "vis_2_widgets_basic_view_in_widget": "Ver no widget", - "vis_2_widgets_basic_view_not_defined": "Visualização não definida", - "vis_2_widgets_widgets_tabs_color": "Cor", - "vis_2_widgets_widgets_tabs_group_tab": "Aba", - "vis_2_widgets_widgets_tabs_label": "Guias", - "vis_2_widgets_widgets_tabs_show_tabs": "Número", - "vis_2_widgets_widgets_tabs_tab_icon": "Ícone", - "vis_2_widgets_widgets_tabs_tab_icon_color": "Cor", - "vis_2_widgets_widgets_tabs_tab_icon_size": "Tamanho do ícone", - "vis_2_widgets_widgets_tabs_tab_image": "Imagem", - "vis_2_widgets_widgets_tabs_tab_overflow_x": "Estouro X", - "vis_2_widgets_widgets_tabs_tab_overflow_y": "Estouro Y", - "vis_2_widgets_widgets_tabs_tab_title": "Título", - "vis_2_widgets_widgets_tabs_tab_view": "Visualizar", - "vis_2_widgets_widgets_tabs_variant": "Variante", - "vis_2_widgets_widgets_tabs_variant_centered": "centrado", - "vis_2_widgets_widgets_tabs_variant_default": "Padrão", - "vis_2_widgets_widgets_tabs_variant_full_width": "largura completa", - "vis_2_widgets_widgets_tabs_vertical": "Vertical", - "welcome_message": "Nenhum projeto ainda existe.", - "word-spacing": "espaçamento entre palavras", - "basic_sub_view": "Subvisualização", - "sub_view_tooltip": "É usado para fins especiais, como navegação Jaeger-design", - "basic_no_filter_text": "Etiqueta \"Sem filtro\"", - "basic_no_all_option": "Sem opção \"Sem filtro\"", - "basic_filter_multiple": "Seleção múltipla", - "basic_filter_type_dropdown": "Menu suspenso", - "basic_filter_type_horizontal_buttons": "Botões horizontais", - "basic_filter_type_vertical_buttons": "Botões verticais", - "basic_no_filter": "Sem filtro", - "basic_all_filters": "Adicione tudo o que resta", - "Only for desktop": "Somente para desktop", - "Include widget?": "Incluir widget?", - "Do you want to include \"%s\" widget into \"%s\"?": "Deseja incluir o widget \"%s\" em \"%s\"?", - "Unselect": "Desmarcar", - "All": "Todos", - "Load project file...": "Carregando arquivo do projeto...", - "Load widgets...": "Carregando widgets...", - "Loading objects...": "Carregando objetos...", - "Following views will be changed": "As seguintes visualizações serão alteradas", - "Show this attribute by all views": "Mostrar este atributo em todas as visualizações", - "Menu width": "Largura do menu", - "Do not ask again": "Não pergunte novamente", - "vis-2-widgets-basic-input_value": "Valor de entrada", - "vis-2-widgets-basic-autoSetDelay": "Atraso para gravação automática", - "vis-2-widgets-basic-noStyle": "Sem estilo", - "Clone": "Clone", - "jqui_Write state": "Escrever estado", - "vis_2_widgets_widgets_swipe_label": "Swipe", - "vis_2_widgets_swipe_hide_indication_label": "Ocultar indicação", - "vis_2_widgets_swipe_threshold_label": "Limite" + "%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": "Adicionar", + "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\n", + "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": "Administrador", + "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": "Todos", + "Aluminium1": "Alumínio1", + "Aluminium2": "Alumínio2", + "App bar": "Barra de aplicativos", + "Apply": "Aplicar", + "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": "Atributos", + "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": "Básico", + "Benutzer": "Benutzer", + "Blue flowers": "Flores azuis", + "Blue marine": "Azul marinho", + "Blue marine lines": "Linhas marinhas azuis", + "Blueprint grid": "Grade de planta", + "Bricks": "Tijolos", + "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", + "CSS": "CSS", + "CSS Class": "Classe CSS", + "CSS Common": "CSS comum", + "CSS Font & Text": "CSS Fonte e texto", + "CSS background (background-...)": "CSS Plano de fundo (background-...)", + "Cancel": "Cancelar", + "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": "Claro", + "Clear filter": "Filtro limpo", + "Click to close": "Clique para fechar", + "Clone": "Clone", + "Clone widget": "Clonar widget", + "Close": "Perto", + "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": "Colorido", + "Column gap": "Lacuna de coluna", + "Column width": "Largura da coluna", + "Comment": "Comente", + "Convert %s to %s": "Converter %s para %s", + "Copied %s": "Copiado %s", + "Copied to clipboard": "Copiado para a área de transferência", + "Copy": "cópia de", + "Copy noun": "cópia de", + "Copy to clipboard": "Copiar para área de transferência", + "Copy view \"%s\"": "Copiar visualização \"%s\"", + "Create": "Crio", + "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": "Corte", + "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": "Predefinição", + "Default view": "Visualização padrão", + "Default: auto": "Padrão: \"auto\"", + "Delete": "Excluir", + "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": "Dispositivos", + "Disabled": "Desabilitado", + "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": "Duplicado", + "Duplicate folder": "Duplique a pasta", + "Duplicate profile": "Duplique o perfil", + "Edit": "Editar", + "Edit binding": "Editar vinculação", + "Edit folder": "Editar pasta", + "Edit group": "Editar grupo", + "Edit profile": "Editar Perfil", + "Elements": "Elementos", + "Enabled": "Habilitado", + "Enter": "Digitar", + "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": "Explicação", + "Export": "Exportar", + "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": "arquivos", + "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": "Fr", + "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": "Para todos os projetos", + "Gradient box": "Caixa de gradiente", + "Gray 0": "Cinza 0", + "Gray 1": "Cinza 1", + "Grid": "Rede", + "Group": "Grupo", + "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": "Altura", + "Hide": "Esconder", + "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": "Alto", + "High priority": "Prioridade máxima", + "Highest eg. Holiday": "Mais alto, por exemplo. Feriado", + "Horizontal": "Horizontal", + "Icon": "Ícone", + "If user not in group": "Se o usuário não estiver no grupo", + "Ignore": "Ignorar", + "Ignored in edit mode": "Ignorado no modo de edição", + "Image": "Imagem", + "Import": "Importar", + "Import project": "Importar projeto", + "Import widgets": "Importar widgets", + "Include widget?": "Incluir widget?", + "Initial filter": "Filtro inicial", + "Instance": "Instância", + "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": "Trancar", + "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": "Mensagem", + "Mo": "Mo", + "Modify": "Modificar", + "More": "Mais", + "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": "Nome", + "Name is not unique": "O nome não é único", + "Name of copy": "Nome da cópia", + "Narrow panel": "Painel estreito", + "Navigation": "Navegação", + "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": "Não", + "No background": "Sem plano de fundo", + "Normal": "Normal", + "OFF": "OFF", + "ON": "ON", + "Objects": "Objetos", + "Ok": "OK", + "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": "Abrir", + "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": "Opções", + "Order": "Ordem", + "Orientation": "Orientação", + "Palette": "Paleta", + "Paste": "Colar", + "Percent": "Por cento", + "Permissions": "Permissões", + "Pixel 5 - Landscape": "Pixel 5 - Paisagem", + "Pixel 5 - Portrait": "Pixel 5 - Retrato", + "Priority": "Prioridade", + "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 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": "Projetos", + "Radial blue": "Azul radial", + "Read": "Ler", + "Read = Runtime access": "Leitura = acesso ao tempo de execução", + "Read about currentColor in SVG": "Leia sobre currentColor em SVG", + "Received user command: %s": "Comando de usuário recebido: %s", + "Reconnect interval": "Intervalo de reconexão", + "Redo": "Refazer", + "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": "Recarregando", + "Rename": "Renomear", + "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": "Resolução", + "Responsive settings": "Configurações responsivas", + "Row gap": "Lacuna entre linhas", + "Sa": "Sá", + "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": "Salvar", + "Scripts": "Scripts", + "Search": "Procurar", + "Select": "Selecionar", + "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": "Definições", + "Should it be moved to new place?": "Deve ser movido para um novo local?", + "Show": "mostrar", + "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 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": "Estilo", + "Su": "Su", + "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": "Guias", + "Temperature": "Temperatura", + "Text color": "Cor do texto", + "Text color if selected": "Cor do texto, se selecionado", + "Text edit": "edição de texto", + "Th": "Th", + "Theme": "Tema", + "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": "Título", + "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": "Tu", + "Type": "Modelo", + "Undo": "Desfazer", + "Ungroup": "Desagrupar", + "Uninstall": "Desinstalar", + "Unknown widget type \"%s\"": "Tipo de widget desconhecido \"%s\"", + "Unlock": "Desbloquear", + "Unselect": "Desmarcar", + "Update": "Atualizar", + "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": "Valor", + "Vertical": "Vertical", + "View": "Visão", + "View not defined": "Visualização não definida", + "We": "Mi", + "Weekend": "Final de semana", + "Widget": "Ferramenta", + "Widget CSS": "CSS do widget", + "Widget JS": "Widget JS", + "Widget was deleted in widgeteria": "O widget foi deletado na widgeteria", + "Widgets": "Widgets", + "Width": "Largura", + "Width x height (px)": "Largura x altura (px)", + "Write": "Escrever", + "Write = Edit mode access": "Gravar = acesso ao modo de edição", + "Writer": "Escritor", + "Wrong password": "Senha incorreta", + "Yes": "Sim", + "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": "Widgeteria", + "ace_All": "Todos", + "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": "Dica de ferramenta por falso", + "alt_true": "Dica por true", + "anonymize": "anonimizar", + "apply_to_all": "Para todos", + "attr_none": "none", + "basic_all_filters": "Adicione tudo o que resta", + "basic_arrow": "Seta", + "basic_borderColor": "Cor da borda", + "basic_borderRadius": "Raio da borda", + "basic_circle": "Círculo", + "basic_custom": "Polígono personalizado", + "basic_filter_multiple": "Seleção múltipla", + "basic_filter_type_dropdown": "Menu suspenso", + "basic_filter_type_horizontal_buttons": "Botões horizontais", + "basic_filter_type_vertical_buttons": "Botões verticais", + "basic_hexagone": "Hexágono", + "basic_line": "Linha", + "basic_no_all_option": "Sem opção \"Sem filtro\"", + "basic_no_filter": "Sem filtro", + "basic_no_filter_text": "Etiqueta \"Sem filtro\"", + "basic_octagone": "Octógono", + "basic_pentagone": "Pentágono", + "basic_pin": "Alfinete", + "basic_speech2text_continuous": "contínuo", + "basic_speech2text_detected": "Detectou", + "basic_speech2text_en_us": "inglês", + "basic_speech2text_height": "Altura (px)", + "basic_speech2text_image_active": "Ativo", + "basic_speech2text_image_inactive": "Inativo", + "basic_speech2text_info_allow": "Clique no botão \"Permitir\" acima para ativar seu microfone.", + "basic_speech2text_info_blocked": "A permissão para usar o microfone está bloqueada. Para alterar, vá para chrome://settings/contentExceptions#media-stream", + "basic_speech2text_info_denied": "A permissão para usar microfone foi negada.", + "basic_speech2text_info_no_microphone": "Nenhum microfone foi encontrado. Verifique se há um microfone instalado e se as configurações do microfone estão configuradas corretamente.", + "basic_speech2text_info_no_speech": "Nenhuma fala foi detectada. Talvez seja necessário ajustar as configurações do microfone.", + "basic_speech2text_info_speak_now": "Fale agora.", + "basic_speech2text_info_start": "Clique no ícone do microfone e comece a falar.", + "basic_speech2text_info_upgrade": "A API Web Speech não é compatível com este navegador. Atualize para o Chrome versão 25 ou posterior.", + "basic_speech2text_key_word_color": "Cor da palavra-chave", + "basic_speech2text_key_word_color_tooltip": "Cor do texto, se a palavra-chave for encontrada", + "basic_speech2text_keywords": "Palavras-chave", + "basic_speech2text_no_image": "Nenhuma imagem", + "basic_speech2text_no_results": "Nenhum resultado", + "basic_speech2text_no_text": "Nenhum texto de ajuda", + "basic_speech2text_ru_ru": "russo", + "basic_speech2text_sent": "Enviado", + "basic_speech2text_single": "solteiro", + "basic_speech2text_speech_mode": "Modo de fala", + "basic_speech2text_start_stop": "iniciar/parar", + "basic_speech2text_started": "Iniciado", + "basic_speech2text_text_sent_color": "Cor do texto enviado", + "basic_speech2text_text_sent_color_tooltip": "Cor do texto, quando o texto é enviado para processamento", + "basic_speech2text_width": "Largura (px)", + "basic_square": "Quadrado", + "basic_star": "Estrela", + "basic_sub_view": "Subvisualização", + "basic_triangle": "Triângulo", + "block": "quadra", + "color": "cor", + "color_false": "Cor por falso", + "color_true": "Cor por verdadeiro", + "convert from widgeteria widget": "converter de widget widgeteria", + "copy": "cópia", + "css_project": "Para este projeto", + "custom_icons": "Especial", + "different": "diferente", + "display": "exibição", + "finish searching": "procura terminada", + "flex": "flexionar", + "flexible": "flexível", + "folder": "Pasta", + "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": "Grupo", + "group_attrName": "Nome", + "group_attrType": "Tipo", + "group_fields": "Atributos", + "group_help": "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.", + "group_icon_false": "Ícone por falso", + "group_icon_true": "Ícone por verdadeiro", + "group_size_hint": "Você pode alterar o tamanho do grupo, selecionando-o no seletor de widget suspenso ou clicando neste texto", + "group_text": "Texto", + "help_css_global": "Esses CSS são aplicados a todos os projetos", + "help_css_project": "Esses CSS são aplicados apenas a este projeto", + "hide": "ocultar", + "hide code": "ocultar código", + "horizontal": "horizontal", + "hr": "horas", + "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": "Tamanho do ícone em pixels", + "icon_upload_hint": "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.", + "imageHeight_false": "Altura da imagem", + "imageHeight_true": "Altura da imagem", + "invert_icon_false": "Ícone de inversão", + "invert_icon_true": "Ícone de inversão", + "jqui_Add new value": "Adicionar novo valor", + "jqui_Are you sure?": "Tem certeza?", + "jqui_Bulk edit": "Edição em massa", + "jqui_Close": "Fechar", + "jqui_Example": "Exemplo", + "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": "Porcentagens", + "jqui_Replace to": "Substituir com", + "jqui_Select file": "Selecione a imagem", + "jqui_Write state": "Escrever estado", + "jqui_active_color": "Cor ativa", + "jqui_ampm": "Manhã tarde", + "jqui_asDate": "Como data", + "jqui_asFullDate": "Uso de data analisável completa", + "jqui_as_string": "Como corda", + "jqui_auto": "auto", + "jqui_binary_control": "Controle binário", + "jqui_button_binary_control_note": "Descontinuada. Use o widget \"Controle binário\". Mantido apenas para compatibilidade com vis.1", + "jqui_button_color": "Cor do botao", + "jqui_button_dialog_close": "Botão fechar caixa de diálogo", + "jqui_button_input_note": "Descontinuada. Use o widget \"Entrada\". Mantido apenas para compatibilidade com vis.1", + "jqui_button_link": "Ir para URL", + "jqui_button_link_blank": "Ir para URL (em nova janela)", + "jqui_button_link_blank_note": "Descontinuada. Use o primeiro widget com a opção \"Abrir em nova janela\". Mantido apenas para compatibilidade com vis.1", + "jqui_button_nav_blank_note": "Descontinuada. Use o primeiro widget com a opção \"Ir para visualizar\". Mantido apenas para compatibilidade com vis.1", + "jqui_button_text": "Botão de texto", + "jqui_buttontext_view": "Use o nome da visualização como título", + "jqui_clearable": "Eliminável", + "jqui_color": "Cor", + "jqui_container_button_dialog": "Botão=>Caixa de diálogo Página", + "jqui_container_dialog": "Caixa de diálogo do contêiner", + "jqui_container_icon_dialog": "Ícone=>Caixa de diálogo Página", + "jqui_dialog_name": "Nome da caixa de diálogo", + "jqui_dialog_set_id_tooltip": "Definir estado pela caixa de diálogo aberta", + "jqui_disableFuture": "Desativar futuro", + "jqui_disablePast": "Desativar passado", + "jqui_displayWeekNumber": "Exibir número da semana", + "jqui_equal_text_length": "Comprimentos de texto iguais", + "jqui_equal_text_length_tooltip": "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\".", + "jqui_external_dialog": "Diálogo externo", + "jqui_external_dialog_tooltip": "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.", + "jqui_false": "Falso", + "jqui_from_oid": "De outro objeto", + "jqui_from_value": "Do valor estático", + "jqui_generate": "Gerar", + "jqui_group_value": "Valor", + "jqui_hide_close_button": "Ocultar botão fechar", + "jqui_href_tooltip": "Este URL será chamado no navegador", + "jqui_html": "HTML", + "jqui_html_dialog": "Caixa de diálogo HTML", + "jqui_html_external_dialog": "Diálogo externo", + "jqui_html_false": "HTML por falso", + "jqui_html_tooltip": "O HTML só é configurável se o texto e o ícone estiverem vazios", + "jqui_html_true": "HTML por verdadeiro", + "jqui_icon": "Ícone", + "jqui_icon_active": "Ícone ativo", + "jqui_icon_dialog": "Caixa de diálogo de ícones", + "jqui_icon_http_get": "URL de chamada no back-end", + "jqui_icon_increment": "Incrementar com ícone", + "jqui_icon_link": "Ir para URL (com ícone)", + "jqui_icon_max": "Ícone para máximo", + "jqui_icon_state_bool": "Botão de ícone booleano", + "jqui_icon_state_push_button": "Botão de apertar", + "jqui_icon_toggle": "Botão de alternância com ícone", + "jqui_image": "Imagem", + "jqui_image_active": "Imagem ativa", + "jqui_image_height": "Altura da imagem", + "jqui_image_max": "Imagem para máximo", + "jqui_increment_decrement": "Incremento/Decremento", + "jqui_input": "Entrada", + "jqui_input_date": "Entrada de data", + "jqui_input_time": "Entrada de tempo", + "jqui_input_with_button": "Entrada com botão", + "jqui_invert_icon": "Ícone de inversão", + "jqui_inverted": "Invertido", + "jqui_jquery_style": "Estilo jQuery", + "jqui_max": "Valor máximo", + "jqui_min": "Valor mínimo", + "jqui_name": "Título", + "jqui_nav_view": "Ir para ver", + "jqui_navigation_button": "Botão de navegação", + "jqui_navigation_icon": "Ícone de navegação", + "jqui_navigation_password": "Navegação com senha", + "jqui_not_equal_length": "Largura diferente", + "jqui_off": "Desligado", + "jqui_oid_working": "ID de trabalho", + "jqui_on": "Hab.", + "jqui_only_icon": "Único ícone", + "jqui_open": "Como lista", + "jqui_orientation": "Orientação", + "jqui_password": "Senha", + "jqui_password_tooltip": "O usuário deve inserir a senha para abrir a caixa de diálogo, ir para a página ou URL", + "jqui_push_mode": "Modo push", + "jqui_push_mode_tooltip": "Ao pressionar o botão será escrito “true” e ao soltar o botão será escrito “false”.", + "jqui_radio_buttons_on_off": "Botões de rádio (ligar/desligar)", + "jqui_radio_list": "Lista de rádio com valores", + "jqui_radio_steps": "Botão de opção (etapas)", + "jqui_range": "faixa", + "jqui_read_only": "Somente leitura", + "jqui_repeat_delay": "Atraso de repetição", + "jqui_repeat_interval": "Intervalo de repetição", + "jqui_select_all_on_focus": "Selecione tudo em foco", + "jqui_select_all_on_focus_tooltip": "Em foco, todo o texto será selecionado, para que possa ser excluído ou alterado rapidamente sem pressionar o botão backspace", + "jqui_select_list": "Selecione na lista", + "jqui_set_label": "estilizado", + "jqui_set_timeout": "Tempo limite de gravação", + "jqui_single": "solteiro", + "jqui_slider": "Controle deslizante", + "jqui_slider_note": "Descontinuada. Use o widget deslizante com orientação definida como vertical. Mantido apenas para compatibilidade com vis.1", + "jqui_slider_vertical": "Controle deslizante vertical", + "jqui_state_note": "Descontinuada. Use o widget \"Controle de estados\" com a opção \"incremento/decremento\". Mantido apenas para compatibilidade com vis.1", + "jqui_states_control": "Controle dos Estados", + "jqui_stepMinute": "Passo minuto", + "jqui_test": "Valor de teste", + "jqui_text": "Texto", + "jqui_text_active": "Texto ativo", + "jqui_text_max": "Texto para máximo", + "jqui_toggle": "Alternar", + "jqui_tooltip": "Dica", + "jqui_true": "Verdadeiro", + "jqui_type": "Tipo", + "jqui_unit": "Unidade", + "jqui_url_group": "URL de chamada por clique", + "jqui_url_in_background": "URL no back-end", + "jqui_url_in_browser": "URL no navegador", + "jqui_url_tooltip": "Este URL será chamado em segundo plano pelo mecanismo ioBroker", + "jqui_value": "Valor", + "jqui_value_label_display": "Etiqueta de exibição", + "jqui_variant": "Variante", + "jqui_view_group": "Visualização de navegação", + "jqui_wideFormat": "Formato amplo", + "jqui_widgetTitle": "Título", + "jqui_with_enter_button": "Com botão entrar", + "jqui_write_state_note": "Descontinuada. Use o widget \"Wirte state\" com a opção \"incremento/decremento\". Mantido apenas para compatibilidade com vis.1", + "jqui_write_value": "Escrever valor", + "letter-spacing": "espaçamento entre letras", + "line-height": "altura da linha", + "material_icons_baseline": "Preenchidas", + "material_icons_knx-uf": "knx-uf", + "material_icons_outline": "Delineado", + "material_icons_result": "%s resultados correspondentes", + "material_icons_round": "Redondo", + "material_icons_sharp": "Afiado", + "material_icons_twotone": "Dois tons", + "material_icons_upload": "Carregar", + "multi-views": "Mostrar em visualizações", + "never": "Nunca", + "no_reload": "sem recarga", + "none": "Nenhum", + "normal": "normal", + "not defined": "não definido", + "not-specified": "não definido", + "optional": "opcional", + "order_help": "Você pode arrastar e soltar qualquer item ou clicar no item com o qual o widget selecionado será trocado", + "orientation": "Orientação", + "profile": "Perfil", + "qui_Bool SVG": "SVG booleano", + "reload": "recarregar", + "search text": "Texto de pesquisa", + "set_basic": "básico", + "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-0": "Texto [0]", + "signals-text-1": "Texto [1]", + "signals-text-2": "Texto [2]", + "sub_view_tooltip": "É usado para fins especiais, como navegação Jaeger-design", + "text-shadow": "sombra de texto", + "text_false": "Texto por falso", + "text_true": "Texto por verdadeiro", + "to version": "para versão", + "value_string": "corda", + "version": "versão", + "vertical": "vertical", + "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": "Redimensionável", + "vis_2_widgets_basic_cannot_recursive": "Não é possível usar visualizações recursivas", + "vis_2_widgets_basic_contains_view": "Usar visualização", + "vis_2_widgets_basic_view_in_widget": "Ver no widget", + "vis_2_widgets_basic_view_not_defined": "Visualização não definida", + "vis_2_widgets_swipe_hide_indication_label": "Ocultar indicação", + "vis_2_widgets_swipe_threshold_label": "Limite", + "vis_2_widgets_widgets_swipe_label": "Swipe", + "vis_2_widgets_widgets_tabs_color": "Cor", + "vis_2_widgets_widgets_tabs_group_tab": "Aba", + "vis_2_widgets_widgets_tabs_label": "Guias", + "vis_2_widgets_widgets_tabs_show_tabs": "Número", + "vis_2_widgets_widgets_tabs_tab_icon": "Ícone", + "vis_2_widgets_widgets_tabs_tab_icon_color": "Cor", + "vis_2_widgets_widgets_tabs_tab_icon_size": "Tamanho do ícone", + "vis_2_widgets_widgets_tabs_tab_image": "Imagem", + "vis_2_widgets_widgets_tabs_tab_overflow_x": "Estouro X", + "vis_2_widgets_widgets_tabs_tab_overflow_y": "Estouro Y", + "vis_2_widgets_widgets_tabs_tab_title": "Título", + "vis_2_widgets_widgets_tabs_tab_view": "Visualizar", + "vis_2_widgets_widgets_tabs_variant": "Variante", + "vis_2_widgets_widgets_tabs_variant_centered": "centrado", + "vis_2_widgets_widgets_tabs_variant_default": "Padrão", + "vis_2_widgets_widgets_tabs_variant_full_width": "largura completa", + "vis_2_widgets_widgets_tabs_vertical": "Vertical", + "welcome_message": "Nenhum projeto ainda existe.", + "word-spacing": "espaçamento entre palavras" } \ No newline at end of file diff --git a/packages/iobroker.vis-2/src/src/i18n/ru.json b/packages/iobroker.vis-2/src/src/i18n/ru.json index 5de15c89..c3275939 100644 --- a/packages/iobroker.vis-2/src/src/i18n/ru.json +++ b/packages/iobroker.vis-2/src/src/i18n/ru.json @@ -1,753 +1,755 @@ { - "%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": "Добавить", - "Add folder": "Добавить папку", - "Add new child folder": "Добавить новую дочернюю папку", - "Add new child profile": "Добавить новый дочерний профиль", - "Add new or update existing widget": "Добавить новый или обновить существующий виджет\n", - "Add new view": "Новая страница", - "Add profile": "Добавить профиль", - "Add project": "Добавить проект", - "Add sub-folder": "Добавить подпапку", - "Add to widgeteria": "Добавить в виджетерию", - "Add view": "Добавить страницу", - "Administrator": "Администратор", - "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.": "Выровнять ширину. Нажмите еще раз, чтобы получить желаемую ширину.", - "Aluminium1": "Алюминий1", - "Aluminium2": "Алюминий2", - "App bar": "Панель приложений", - "Apply": "Применить", - "Apply ALL navigation properties to all views": "Применить ВСЕ свойства навигации ко всем представлениям", - "Apply to all views": "Применить это свойство ко всем представлениям", - "Are you sure": "Ты уверен", - "Are you sure to delete widgets %s?": "Вы уверены, что хотите удалить виджеты %s?", - "Attributes": "Свойства", - "Available for all": "Проект доступен всем пользователям", - "Background class": "Фоновый класс", - "Background color": "Фоновый цвет", - "Background color if selected": "Цвет фона, если выбран", - "Bar color": "Фоновый цвет", - "Bar icon": "Икона", - "Bar image": "Изображение", - "Bar text": "Подпись", - "Basic": "Базовые", - "Benutzer": "Бенютцер", - "Blue flowers": "Синие цветы", - "Blue marine": "Синий морской", - "Blue marine lines": "Синие морские линии", - "Blueprint grid": "Сетка чертежей", - "Bricks": "Кирпичи", - "Bring to front": "На передний план", - "Browse files": "Просмотр файлов", - "Browse objects": "Просмотр объектов", - "Browse the widgeteria": "Просмотрите виджетерию", - "Browser instance ID": "Идентификатор экземпляра браузера", - "CSS": "CSS", - "CSS Class": "CSS-класс", - "CSS Common": "CSS Основные", - "CSS Font & Text": "CSS-шрифт и текст", - "CSS background (background-...)": "CSS Фон (background-...)", - "Cancel": "Отмена", - "Cannot use recursive views": "Невозможно использовать рекурсивные страницы", - "Carbon fibre": "Углеродное волокно", - "Carbon fibre1": "Углеродное волокно1", - "Chevron icon color": "Цвет кнопки «Показать»", - "Clear": "чистый", - "Clear filter": "Очистить фильтр", - "Click to close": "Нажмите, чтобы закрыть", - "Clone widget": "Клонировать виджет", - "Close": "Закрыть", - "Close all": "Свернуть все", - "Close all but current view": "Закрыть все, кроме текущего вида", - "Close editor": "Закрыть редактор", - "Collapse all": "Свернуть все", - "Colorful": "Красочный", - "Column gap": "Разрыв столбца", - "Column width": "Ширина колонки", - "Comment": "Комментарий", - "Convert %s to %s": "Преобразовать %s в %s", - "Copied %s": "Скопировано %s", - "Copied to clipboard": "Скопировано в буфер обмена", - "Copy": "Копировать", - "Copy noun": "Копия", - "Copy to clipboard": "Скопировать в буфер обмена", - "Copy view \"%s\"": "Копировать страницу \"%s\"", - "Create": "Создать", - "Create copy": "Создать копию", - "Create instance": "Создать", - "Create new project": "Создать новый проект", - "Create or import new \"vis-2\" project": "Создать или импортировать новый проект \"vis-2\"", - "Current project": "Текущий проект", - "Cut": "Вырезать", - "Dark reconnect screen": "Темный экран повторного подключения", - "Deactivate binding and use field as standard input": "Деактивировать привязку и использовать поле в качестве стандартного ввода", - "Default": "По умолчанию", - "Default view": "Вид по умолчанию", - "Default: auto": "По умолчанию: «auto»", - "Delete": "Удалить", - "Delete actual view": "Удалить текущую страницу", - "Delete widgets": "Удалить виджеты", - "Destroy inactive view": "Уничтожить неактивную страницу", - "Detected new version of vis files. Reloading in 2 seconds...": "Обнаружена новая версия файлов vis. Перезагружается через 2 секунды...", - "Devices": "Устройства", - "Disabled": "Деактивировано", - "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\"?", - "Drag me": "Перетащите меня", - "Drop the files here ...": "Закинь файлы сюда...", - "Duplicate": "Копировать", - "Duplicate folder": "Копировать папку", - "Duplicate profile": "Копировать профиль", - "Edit": "Редактировать", - "Edit binding": "Изменить привязку", - "Edit folder": "Редактировать папку", - "Edit group": "Редактировать группу", - "Edit profile": "Редактировать профиль", - "Elements": "Элементы", - "Enabled": "Включено", - "Enter": "Применить", - "Enter password": "Введите пароль", - "Expand all": "Раскрыть все", - "Explanation": "Объяснение", - "Export": "Экспорт", - "Export \"%s\"": "Экспорт \"%s\"", - "Export widgets": "Экспорт виджетов", - "External dialog": "Внешний диалог", - "Fields of group will be cleaned": "Поля группы будут очищены", - "File too large": "Файл слишком большой", - "Files": "Файлы", - "Filter widgets": "Фильтровать виджеты", - "Fm dark background": "FM темный фон", - "Fm light background": "FM светлый фон", - "For widgets with relative position": "Для виджетов с относительным положением", - "Fr": "Пт", - "Full HD - Landscape": "Full HD - Пейзаж", - "Full HD - Portrait": "Full HD - Портрет", - "Full panel": "Полная панель", - "Galaxy Fold - Landscape": "Galaxy Fold — Пейзаж", - "Galaxy Fold - Portrait": "Galaxy Fold — Портрет", - "Global": "Для всех проектов", - "Gradient box": "Градиентный контур", - "Gray 0": "Серый 0", - "Gray 1": "Серый 1", - "Grid": "Сетка", - "Group": "Группа", - "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": "Высота", - "Hide": "Скрывать", - "Hide after selection": "Скрыть после выбора", - "Hide all views": "Скрыть все представления", - "Hide attributes": "Скрыть свойства", - "Hide menu": "Скрыть меню", - "Hide palette": "Скрыть палитру", - "Hide panel names": "Скрыть названия панелей", - "Hide selected widgets": "Скрыть выбранные виджеты", - "High": "Высокий", - "High priority": "Высокий приоритет", - "Highest eg. Holiday": "Наивысший, например. День отдыха", - "Horizontal": "Горизонтальный", - "Icon": "Значок", - "If user not in group": "Если пользователь не в группе", - "Ignore": "Игнорировать", - "Ignored in edit mode": "Игнорируется в режиме редактирования", - "Image": "Изображение", - "Import": "Импорт", - "Import project": "Импорт проекта", - "Import widgets": "Импорт виджетов", - "Initial filter": "Начальный фильтр", - "Instance": "Пример", - "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 screen": "Ограничить экран", - "Lined paper": "Линованной бумаги", - "Lock": "Замок", - "Lock dragging": "Блокировка перетаскивания", - "Manage projects": "Проекты", - "Manage views": "Страницы", - "Menu header text": "Текст заголовка меню", - "Menu header text color": "Цвет текста заголовка меню", - "Message": "Сообщение", - "Mo": "Пн", - "Modify": "Буду изменить", - "More": "Более", - "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": "Имя", - "Name is not unique": "Имя не уникальное", - "Name of copy": "Название копии", - "Narrow panel": "Узкая панель", - "Navigation": "Навигация", - "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": "Нет", - "No background": "Без фона", - "Normal": "Обычный", - "OFF": "ВЫКЛ", - "ON": "ВКЛ", - "Objects": "Объекты", - "Ok": "Ok", - "On/Off": "Вкл выкл", - "One parameter": "Один параметр", - "Only for groups": "Только для групп", - "Only the admin user can change permissions": "Только пользователь-администратор может изменять разрешения", - "Open": "Открыть", - "Open all": "Раскрыть все", - "Open it?": "Открой это?", - "Open runtime in new window": "Открыть среду выполнения в новом окне", - "Open widgeteria": "Открыть виджетерию", - "Options": "Опции", - "Order": "Заказ", - "Orientation": "Ориентация", - "Palette": "Палитра", - "Paste": "Вставить", - "Percent": "Процентов", - "Permissions": "Разрешения", - "Pixel 5 - Landscape": "Пиксель 5 – Пейзаж", - "Pixel 5 - Portrait": "Пиксель 5 – Портрет", - "Priority": "Приоритет", - "Project \"%s\" does not exist": "Проект \"%s\" не существует", - "Project \"%s\" was successfully imported": "Проект \"%s\" успешно импортирован", - "Project already exists": "Проект уже существует", - "Project name": "Название проекта", - "Project was updated": "Проект обновлен", - "Project was updated by another browser instance. Do you want to reload it?": "Проект был обновлен другим экземпляром браузера. Вы хотите перезагрузить его?", - "Projects": "Проекты", - "Radial blue": "Радиальный синий", - "Read": "Читать", - "Read = Runtime access": "Чтение = доступ во время выполнения", - "Read about currentColor in SVG": "Прочтите о currentColor в SVG.", - "Received user command: %s": "Полученная пользовательская команда: %s", - "Reconnect interval": "Интервал повторного подключения", - "Redo": "Повторить", - "Reload all browsers if project changed": "Перезагрузите все браузеры, если проект изменился", - "Reload all runtimes": "Перезагрузить все среды выполнения", - "Reload if sleep longer than": "Перезагрузите, если спите дольше, чем", - "Reload now": "Перезагрузить сейчас", - "Reloading": "Перезагрузка", - "Rename": "Переименовать", - "Rename folder \"%s\"": "Переименовать папку \"%s\"", - "Rename project \"%s\"": "Переименовать проект \"%s\"", - "Rename view": "Переименовать страницу", - "Rename view \"%s\"": "Переименовать страницу \"%s\"", - "Render always": "Всегда отрисовывать", - "Reset all intervals to following value:": "Сбросьте все интервалы до следующего значения:", - "Resolution": "Разрешение", - "Responsive settings": "Адаптивные настройки", - "Row gap": "Разрыв строки", - "Sa": "Сб", - "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": "Сохранять", - "Scripts": "Скрипты", - "Search": "Поиск", - "Select": "Выбрать", - "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": "Настр.", - "Should it be moved to new place?": "Стоит ли его перенести на новое место?", - "Show": "Показывать", - "Show all views": "Показать все виды", - "Show app bar": "Показать", - "Show background of button": "Фон кнопки «Показать»", - "Show navigation": "Показать навигацию", - "Show only selected widgets": "Показать только выбранные виджеты", - "Show view": "Показать страницу", - "Specify filter to see more icons": "Укажите фильтр, чтобы увидеть больше значков", - "States Debounce Time (millis)": "Время игнорирования дребезга (млн)", - "Style": "Стиль", - "Su": "Вс", - "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": "Вкладки", - "Temperature": "Температура", - "Text color": "Цвет текста", - "Text color if selected": "Цвет текста, если выбран", - "Text edit": "Редактировать текст", - "Th": "Чт", - "Theme": "Тема", - "This view will be shown only to defined groups": "Эта страница будет отображаться только для определенных групп", - "This widget is already used in \"%s\"": "Этот виджет уже используется в \"%s\"", - "Title": "Заголовок", - "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": "Вт", - "Type": "Тип", - "Undo": "Отмена", - "Ungroup": "Разгруппировать", - "Uninstall": "Удалить", - "Unknown widget type \"%s\"": "Неизвестный тип виджета \"%s\"", - "Unlock": "Разблокировать", - "Update": "Обновить", - "Usage of widget %s": "Использование виджета %s", - "Use background": "Использовать фон", - "Use field as binding": "Использовать поле как привязку", - "User defined": "Определяемые пользователем", - "Value": "Значение", - "Vertical": "Вертикальный", - "View": "Страница", - "View not defined": "Страница не определена", - "We": "Ср", - "Weekend": "выходные", - "Widget": "Виджет", - "Widget CSS": "Виджет CSS", - "Widget JS": "Виджет JS", - "Widget was deleted in widgeteria": "Виджет был удален в виджете", - "Widgets": "Виджеты", - "Width": "Ширина", - "Width x height (px)": "Ширина х высота (px)", - "Write": "Писать", - "Write = Edit mode access": "Write = доступ к режиму редактирования", - "Writer": "Писатель", - "Wrong password": "Неправильный пароль", - "Yes": "Да", - "You can open dialog with following script:": "Вы можете открыть диалог с помощью следующего скрипта:", - "You can provide here the state that controls the activation of this profile": "Вы можете указать здесь состояние, которое контролирует включение этого профиля", - "__marketplace": "Виджетерия", - "ace_All": "Все", - "ace_CaseSensitive Search": "Поиск с учетом регистра", - "ace_RegExp Search": "Поиск по регулярному выражению", - "ace_Search In Selection": "Искать в выборе", - "ace_Search for": "Искать", - "ace_Toggle Replace mode": "Переключить режим замены", - "ace_Whole Word Search": "Поиск всего слова", - "alt_false": "Подсказка при false", - "alt_true": "Подсказка при true", - "anonymize": "анонимизировать", - "apply_to_all": "Для всех", - "attr_none": "none", - "basic_arrow": "Стрелка", - "basic_borderColor": "Цвет границы", - "basic_borderRadius": "Радиус границы", - "basic_circle": "Круг", - "basic_custom": "Произвольный полигон", - "basic_hexagone": "шестиугольник", - "basic_line": "Линия", - "basic_octagone": "Октагон", - "basic_pentagone": "Пентагон", - "basic_pin": "Приколоть", - "basic_speech2text_continuous": "непрерывный", - "basic_speech2text_detected": "Обнаружено", - "basic_speech2text_en_us": "английский", - "basic_speech2text_height": "Высота (пикселей)", - "basic_speech2text_image_active": "Активный", - "basic_speech2text_image_inactive": "Неактивный", - "basic_speech2text_info_allow": "Нажмите кнопку «Разрешить» выше, чтобы включить микрофон.", - "basic_speech2text_info_blocked": "Разрешение на использование микрофона заблокировано. Чтобы изменить, перейдите по адресу chrome://settings/contentExceptions#media-stream.", - "basic_speech2text_info_denied": "В разрешении на использование микрофона было отказано.", - "basic_speech2text_info_no_microphone": "Микрофон не найден. Убедитесь, что микрофон установлен и что настройки микрофона настроены правильно.", - "basic_speech2text_info_no_speech": "Речь не обнаружена. Возможно, вам потребуется изменить настройки микрофона.", - "basic_speech2text_info_speak_now": "Говорите сейчас.", - "basic_speech2text_info_start": "Нажмите на значок микрофона и начните говорить.", - "basic_speech2text_info_upgrade": "API веб-речи не поддерживается этим браузером. Обновите Chrome до версии 25 или более поздней.", - "basic_speech2text_key_word_color": "Ключевое слово цвет", - "basic_speech2text_key_word_color_tooltip": "Цвет текста, если найдено ключевое слово", - "basic_speech2text_keywords": "Ключевые слова", - "basic_speech2text_no_image": "Нет изображения", - "basic_speech2text_no_results": "Без результатов", - "basic_speech2text_no_text": "Нет текста справки", - "basic_speech2text_ru_ru": "русский", - "basic_speech2text_sent": "Отправил", - "basic_speech2text_single": "одинокий", - "basic_speech2text_speech_mode": "Речевой режим", - "basic_speech2text_start_stop": "старт/стоп", - "basic_speech2text_started": "Начал", - "basic_speech2text_text_sent_color": "Цвет отправленного текста", - "basic_speech2text_text_sent_color_tooltip": "Цвет текста, когда текст отправляется на обработку", - "basic_speech2text_width": "Ширина (пикселей)", - "basic_square": "Квадрат", - "basic_star": "Звезда", - "basic_triangle": "Треугольник", - "block": "блокировать", - "color": "цвет", - "color_false": "Цвет по ложному", - "color_true": "Цвет по истине", - "convert from widgeteria widget": "конвертировать из виджета widgeteria", - "copy": "Копия", - "css_project": "Для этого проекта", - "custom_icons": "Спец.", - "different": "разные", - "display": "отображать", - "finish searching": "поиск завершен", - "flex": "сгибаться", - "flexible": "гибкий", - "folder": "Папка", - "font-family": "семейство шрифтов", - "font-size": "размер шрифта", - "font-style": "стиль шрифта", - "font-variant": "вариант шрифта", - "font-weight": "вес шрифта", - "group": "Группа", - "group_attrName": "Имя", - "group_attrType": "Тип", - "group_fields": "Атрибуты", - "group_help": "Вы можете определить в атрибутах виджета группы специальные имена в формате \"%yourCustomName%\" и они появятся в настройках \"Атрибуты\". После этого вы можете указать имя и тип пользовательских атрибутов.", - "group_icon_false": "Иконка при false", - "group_icon_true": "Иконка при true", - "group_size_hint": "Вы можете изменить размер группы, выбрав его в раскрывающемся селекторе виджетов или щелкнув этот текст.", - "group_text": "Текст", - "help_css_global": "Эти CSS применяются ко всем проектам", - "help_css_project": "Эти CSS применяются только к этому проекту", - "hide": "Спрятать", - "hide code": "скрыть код", - "horizontal": "горизонтально", - "hr": "ч.", - "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": "Размер значка в пикселях", - "icon_upload_hint": "Вы можете загрузить свой собственный значок размером до 10 КБ в формате base64. Он будет сохранен непосредственно в проекте. Если вы хотите загрузить SVG-файл, не забудьте установить атрибут currentColor.", - "imageHeight_false": "Высота изображения", - "imageHeight_true": "Высота изображения", - "invert_icon_false": "Инвертировать значок", - "invert_icon_true": "Инвертировать значок", - "jqui_Add new value": "Добавить новое значение", - "jqui_Are you sure?": "Вы уверены?", - "jqui_Bulk edit": "Массовое редактирование", - "jqui_Close": "Закрыть", - "jqui_Example": "Пример", - "jqui_Generate states": "Генерировать состояния", - "jqui_Generate steps": "Создание шагов", - "jqui_Maximum value": "Максимальное значение", - "jqui_Minimum value": "Минимальное значение", - "jqui_Number settings": "Настройки номера", - "jqui_Percents": "Проценты", - "jqui_Replace to": "Заменить", - "jqui_Select file": "Выберите изображение", - "jqui_active_color": "Активный цвет", - "jqui_ampm": "До полудня после полудня", - "jqui_asDate": "Как дата", - "jqui_asFullDate": "Использование полной анализируемой даты", - "jqui_as_string": "Как строка", - "jqui_auto": "авто", - "jqui_binary_control": "Двоичное управление", - "jqui_button_binary_control_note": "Устарело. Используйте виджет «Двоичное управление». Сохранено только для совместимости с vis.1.", - "jqui_button_color": "Цвет кнопки", - "jqui_button_dialog_close": "Кнопка закрытия диалога", - "jqui_button_input_note": "Устарело. Используйте виджет «Ввод». Сохранено только для совместимости с vis.1.", - "jqui_button_link": "Перейти к URL-адресу", - "jqui_button_link_blank": "Перейти к URL (в новом окне)", - "jqui_button_link_blank_note": "Устарело. Используйте первый виджет с опцией «Открыть в новом окне». Сохранено только для совместимости с vis.1", - "jqui_button_nav_blank_note": "Устарело. Используйте первый виджет с опцией «Перейти к просмотру». Сохранено только для совместимости с vis.1.", - "jqui_button_text": "Текст кнопки", - "jqui_buttontext_view": "Использовать имя представления в качестве заголовка", - "jqui_clearable": "Очищаемый", - "jqui_color": "Цвет", - "jqui_container_button_dialog": "Кнопка=>Диалог страницы", - "jqui_container_dialog": "Диалог контейнера", - "jqui_container_icon_dialog": "Значок=>Диалоговое окно страницы", - "jqui_dialog_name": "Имя диалога", - "jqui_dialog_set_id_tooltip": "Установить состояние при открытии диалога", - "jqui_disableFuture": "Отключить будущее", - "jqui_disablePast": "Отключить прошлое", - "jqui_displayWeekNumber": "Отображение номера недели", - "jqui_equal_text_length": "Одинаковая длина текста", - "jqui_equal_text_length_tooltip": "Если эта опция активирована, длина текстов для true и false будет одинаковой, поэтому значок останется на одном и том же месте в состояниях «выключено» и «включено».", - "jqui_external_dialog": "Внешний диалог", - "jqui_external_dialog_tooltip": "Этот диалог не виден на странице, но его можно открыть внешней командой «dialogOpen» с именем диалога или идентификатором виджета в качестве параметра.", - "jqui_false": "ЛОЖЬ", - "jqui_from_oid": "С другого объекта", - "jqui_from_value": "Из статического значения", - "jqui_generate": "Генерировать", - "jqui_group_value": "Значение", - "jqui_hide_close_button": "Скрыть кнопку закрытия", - "jqui_href_tooltip": "Этот URL будет вызываться в браузере", - "jqui_html": "HTML", - "jqui_html_dialog": "HTML-диалог", - "jqui_html_external_dialog": "Внешний диалог", - "jqui_html_false": "HTML при выкл", - "jqui_html_tooltip": "HTML можно настроить только в том случае, если текст и значок пусты.", - "jqui_html_true": "HTML при вкл", - "jqui_icon": "Икона", - "jqui_icon_active": "Активный значок", - "jqui_icon_dialog": "Диалоговое окно со значками", - "jqui_icon_http_get": "URL-адрес вызова в бэкэнде", - "jqui_icon_increment": "Увеличение с помощью значка", - "jqui_icon_link": "Перейти к URL (со значком)", - "jqui_icon_max": "Значок для максимума", - "jqui_icon_state_bool": "Логическая кнопка со значком", - "jqui_icon_state_push_button": "Нажать кнопку", - "jqui_icon_toggle": "Кнопка переключения со значком", - "jqui_image": "Изображение", - "jqui_image_active": "Активное изображение", - "jqui_image_height": "Высота изображения", - "jqui_image_max": "Изображение на максимум", - "jqui_increment_decrement": "Увеличение/Уменьшение", - "jqui_input": "Вход", - "jqui_input_date": "Ввод даты", - "jqui_input_time": "Ввод времени", - "jqui_input_with_button": "Ввод с помощью кнопки", - "jqui_invert_icon": "Инвертировать значок", - "jqui_inverted": "Перевернутый", - "jqui_jquery_style": "Стиль jQuery", - "jqui_max": "Максимальное значение", - "jqui_min": "Минимальное значение", - "jqui_name": "Заголовок", - "jqui_nav_view": "Перейти к странице", - "jqui_navigation_button": "Кнопка навигации", - "jqui_navigation_icon": "Значок навигации", - "jqui_navigation_password": "Навигация с паролем", - "jqui_not_equal_length": "Не равная ширина", - "jqui_off": "Выкл.", - "jqui_oid_working": "Рабочий идентификатор", - "jqui_on": "Вкл.", - "jqui_only_icon": "Только значок", - "jqui_open": "Как список", - "jqui_orientation": "Ориентация", - "jqui_password": "Пароль", - "jqui_password_tooltip": "Пользователь должен ввести пароль, чтобы открыть диалоговое окно, перейти на страницу или URL-адрес.", - "jqui_push_mode": "Режим нажатия", - "jqui_push_mode_tooltip": "При нажатии кнопки будет написано «истина», при отпускании кнопки будет написано «ложь».", - "jqui_radio_buttons_on_off": "Радиокнопки (вкл/выкл)", - "jqui_radio_list": "Список радио со значениями", - "jqui_radio_steps": "Радиокнопка (c шагами)", - "jqui_range": "диапазон", - "jqui_read_only": "Только чтение", - "jqui_repeat_delay": "Задержка повтора", - "jqui_repeat_interval": "Интервал повторения", - "jqui_select_all_on_focus": "Выбрать все в фокусе", - "jqui_select_all_on_focus_tooltip": "В фокусе весь текст будет выделен, поэтому его можно быстро удалить или изменить, не нажимая кнопку возврата.", - "jqui_select_list": "Выбрать из списка", - "jqui_set_label": "Стилизованные", - "jqui_set_timeout": "Тайм-аут записи", - "jqui_single": "один", - "jqui_slider": "Слайдер", - "jqui_slider_note": "Устарело. Используйте виджет-слайдер с вертикальной ориентацией. Сохранено только для совместимости с vis.1.", - "jqui_slider_vertical": "Вертикальный слайдер", - "jqui_state_note": "Устарело. Используйте виджет «Управление состояниями» с опцией «увеличить/уменьшить». Сохранено только для совместимости с vis.1.", - "jqui_states_control": "Штаты контролируют", - "jqui_stepMinute": "Шаг минута", - "jqui_test": "Тестовое значение", - "jqui_text": "Текст", - "jqui_text_active": "Активный текст", - "jqui_text_max": "Текст для максимума", - "jqui_toggle": "Переключать", - "jqui_tooltip": "Подсказка", - "jqui_true": "Истинный", - "jqui_type": "Тип", - "jqui_unit": "Единица", - "jqui_url_group": "URL-адрес вызова по клику", - "jqui_url_in_background": "URL-адрес в бэкэнде", - "jqui_url_in_browser": "URL-адрес в браузере", - "jqui_url_tooltip": "Этот URL будет вызываться в фоновом режиме движком ioBroker.", - "jqui_value": "Значение", - "jqui_value_label_display": "Отображать этикетку", - "jqui_variant": "Вариант", - "jqui_view_group": "Просмотр навигации", - "jqui_wideFormat": "Широкий формат", - "jqui_widgetTitle": "Заголовок", - "jqui_with_enter_button": "С кнопкой ввода", - "jqui_write_state_note": "Устарело. Используйте виджет «Состояние записи» с опцией «увеличить/уменьшить». Сохранено только для совместимости с vis.1.", - "jqui_write_value": "Запись значения", - "letter-spacing": "Межбуквенное расстояние", - "line-height": "высота линии", - "material_icons_baseline": "Заполненные", - "material_icons_knx-uf": "knx-uf", - "material_icons_outline": "Обрисованные", - "material_icons_result": "%s совпадающих результатов", - "material_icons_round": "Закруглённые", - "material_icons_sharp": "Заострённые", - "material_icons_twotone": "Двухцветные", - "material_icons_upload": "Загрузить", - "multi-views": "Показать на страницах", - "never": "никогда", - "no_reload": "нет перезагрузки", - "none": "никто", - "normal": "обычный", - "not defined": "не определено", - "not-specified": "не определено", - "optional": "по желанию", - "order_help": "Вы можете перетащить любой элемент или щелкнуть элемент, с которым выбранный виджет будет заменен", - "orientation": "Ориентация", - "profile": "Профиль", - "qui_Bool SVG": "Бинарный SVG", - "reload": "перезагрузить", - "search text": "Текст поиска", - "set_basic": "базовый", - "signals-count": "Количество сигналов", - "signals-smallIcon-0": "Маленький значок [0]", - "signals-smallIcon-1": "Маленький значок [1]", - "signals-smallIcon-2": "Маленький значок [3]", - "signals-text-0": "Текст [0]", - "signals-text-1": "Текст [1]", - "signals-text-2": "Текст [2]", - "text-shadow": "тень текста", - "text_false": "Текст от ложного", - "text_true": "Текст правда", - "to version": "к версии", - "value_string": "Текстовая строка", - "version": "версия", - "vertical": "вертикально", - "visResizable": "Изменяемый размер", - "vis_2_widgets_basic_cannot_recursive": "Невозможно использовать рекурсивные страницы", - "vis_2_widgets_basic_contains_view": "Страница", - "vis_2_widgets_basic_view_in_widget": "Страница в виджете", - "vis_2_widgets_basic_view_not_defined": "Страница не определена", - "vis_2_widgets_widgets_tabs_color": "Цвет", - "vis_2_widgets_widgets_tabs_group_tab": "Вкладка", - "vis_2_widgets_widgets_tabs_label": "Вкладки", - "vis_2_widgets_widgets_tabs_show_tabs": "Количество", - "vis_2_widgets_widgets_tabs_tab_icon": "Икона", - "vis_2_widgets_widgets_tabs_tab_icon_color": "Цвет", - "vis_2_widgets_widgets_tabs_tab_icon_size": "Размер значка", - "vis_2_widgets_widgets_tabs_tab_image": "Изображение", - "vis_2_widgets_widgets_tabs_tab_overflow_x": "Переполнение X", - "vis_2_widgets_widgets_tabs_tab_overflow_y": "Переполнение Y", - "vis_2_widgets_widgets_tabs_tab_title": "Заголовок", - "vis_2_widgets_widgets_tabs_tab_view": "Вид", - "vis_2_widgets_widgets_tabs_variant": "Вариант", - "vis_2_widgets_widgets_tabs_variant_centered": "сосредоточенный", - "vis_2_widgets_widgets_tabs_variant_default": "По умолчанию", - "vis_2_widgets_widgets_tabs_variant_full_width": "полная ширина", - "vis_2_widgets_widgets_tabs_vertical": "Вертикальный", - "welcome_message": "Ни одного проекта пока не существует.", - "word-spacing": "межсловный интервал", - "basic_sub_view": "Подстраница", - "sub_view_tooltip": "Он используется для специальных целей, таких как навигация jaeger-design.", - "basic_no_filter_text": "Ярлык «Без фильтра»", - "basic_no_all_option": "Нет опции «Без фильтра»", - "basic_filter_multiple": "Множественный выбор", - "basic_filter_type_dropdown": "Выпадающее меню", - "basic_filter_type_horizontal_buttons": "Горизонтальные кнопки", - "basic_filter_type_vertical_buttons": "Вертикальные кнопки", - "basic_no_filter": "Нет фильтра", - "basic_all_filters": "Добавить все, что осталось", - "Only for desktop": "Только для рабочего стола", - "Include widget?": "Включить виджет?", - "Do you want to include \"%s\" widget into \"%s\"?": "Вы хотите включить виджет «%s» в «%s»?", - "Unselect": "Отменить выбор", - "All": "Все", - "Load project file...": "Загрузка файла проекта...", - "Load widgets...": "Загрузка виджетов...", - "Loading objects...": "Загрузка объектов...", - "Following views will be changed": "Следующие представления будут изменены", - "Show this attribute by all views": "Показать этот атрибут во всех представлениях", - "Menu width": "Ширина меню", - "Do not ask again": "Не спрашивай снова", - "vis-2-widgets-basic-input_value": "Входное значение", - "vis-2-widgets-basic-autoSetDelay": "Задержка для автозаписи", - "vis-2-widgets-basic-noStyle": "Нет стиля", - "Clone": "Клонировать", - "jqui_Write state": "Написать состояние", - "vis_2_widgets_widgets_swipe_label": "Swipe", - "vis_2_widgets_swipe_hide_indication_label": "Скрыть индикацию", - "vis_2_widgets_swipe_threshold_label": "Порог" + "%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": "Добавить", + "Add folder": "Добавить папку", + "Add new child folder": "Добавить новую дочернюю папку", + "Add new child profile": "Добавить новый дочерний профиль", + "Add new or update existing widget": "Добавить новый или обновить существующий виджет\n", + "Add new view": "Новая страница", + "Add profile": "Добавить профиль", + "Add project": "Добавить проект", + "Add sub-folder": "Добавить подпапку", + "Add to widgeteria": "Добавить в виджетерию", + "Add view": "Добавить страницу", + "Administrator": "Администратор", + "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": "Все", + "Aluminium1": "Алюминий1", + "Aluminium2": "Алюминий2", + "App bar": "Панель приложений", + "Apply": "Применить", + "Apply ALL navigation properties to all views": "Применить ВСЕ свойства навигации ко всем представлениям", + "Apply to all views": "Применить это свойство ко всем представлениям", + "Are you sure": "Ты уверен", + "Are you sure to delete widgets %s?": "Вы уверены, что хотите удалить виджеты %s?", + "Attributes": "Свойства", + "Available for all": "Проект доступен всем пользователям", + "Background class": "Фоновый класс", + "Background color": "Фоновый цвет", + "Background color if selected": "Цвет фона, если выбран", + "Bar color": "Фоновый цвет", + "Bar icon": "Икона", + "Bar image": "Изображение", + "Bar text": "Подпись", + "Basic": "Базовые", + "Benutzer": "Бенютцер", + "Blue flowers": "Синие цветы", + "Blue marine": "Синий морской", + "Blue marine lines": "Синие морские линии", + "Blueprint grid": "Сетка чертежей", + "Bricks": "Кирпичи", + "Bring to front": "На передний план", + "Browse files": "Просмотр файлов", + "Browse objects": "Просмотр объектов", + "Browse the widgeteria": "Просмотрите виджетерию", + "Browser instance ID": "Идентификатор экземпляра браузера", + "CSS": "CSS", + "CSS Class": "CSS-класс", + "CSS Common": "CSS Основные", + "CSS Font & Text": "CSS-шрифт и текст", + "CSS background (background-...)": "CSS Фон (background-...)", + "Cancel": "Отмена", + "Cannot use recursive views": "Невозможно использовать рекурсивные страницы", + "Carbon fibre": "Углеродное волокно", + "Carbon fibre1": "Углеродное волокно1", + "Chevron icon color": "Цвет кнопки «Показать»", + "Clear": "чистый", + "Clear filter": "Очистить фильтр", + "Click to close": "Нажмите, чтобы закрыть", + "Clone": "Клонировать", + "Clone widget": "Клонировать виджет", + "Close": "Закрыть", + "Close all": "Свернуть все", + "Close all but current view": "Закрыть все, кроме текущего вида", + "Close editor": "Закрыть редактор", + "Collapse all": "Свернуть все", + "Colorful": "Красочный", + "Column gap": "Разрыв столбца", + "Column width": "Ширина колонки", + "Comment": "Комментарий", + "Convert %s to %s": "Преобразовать %s в %s", + "Copied %s": "Скопировано %s", + "Copied to clipboard": "Скопировано в буфер обмена", + "Copy": "Копировать", + "Copy noun": "Копия", + "Copy to clipboard": "Скопировать в буфер обмена", + "Copy view \"%s\"": "Копировать страницу \"%s\"", + "Create": "Создать", + "Create copy": "Создать копию", + "Create instance": "Создать", + "Create new project": "Создать новый проект", + "Create or import new \"vis-2\" project": "Создать или импортировать новый проект \"vis-2\"", + "Current project": "Текущий проект", + "Cut": "Вырезать", + "Dark reconnect screen": "Темный экран повторного подключения", + "Deactivate binding and use field as standard input": "Деактивировать привязку и использовать поле в качестве стандартного ввода", + "Default": "По умолчанию", + "Default view": "Вид по умолчанию", + "Default: auto": "По умолчанию: «auto»", + "Delete": "Удалить", + "Delete actual view": "Удалить текущую страницу", + "Delete widgets": "Удалить виджеты", + "Destroy inactive view": "Уничтожить неактивную страницу", + "Detected new version of vis files. Reloading in 2 seconds...": "Обнаружена новая версия файлов vis. Перезагружается через 2 секунды...", + "Devices": "Устройства", + "Disabled": "Деактивировано", + "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": "Копировать", + "Duplicate folder": "Копировать папку", + "Duplicate profile": "Копировать профиль", + "Edit": "Редактировать", + "Edit binding": "Изменить привязку", + "Edit folder": "Редактировать папку", + "Edit group": "Редактировать группу", + "Edit profile": "Редактировать профиль", + "Elements": "Элементы", + "Enabled": "Включено", + "Enter": "Применить", + "Enter password": "Введите пароль", + "Enter the browser instances divided by comma": "Введите экземпляры браузера, разделенные запятой.", + "Expand all": "Раскрыть все", + "Explanation": "Объяснение", + "Export": "Экспорт", + "Export \"%s\"": "Экспорт \"%s\"", + "Export widgets": "Экспорт виджетов", + "External dialog": "Внешний диалог", + "Fields of group will be cleaned": "Поля группы будут очищены", + "File too large": "Файл слишком большой", + "Files": "Файлы", + "Filter widgets": "Фильтровать виджеты", + "Fm dark background": "FM темный фон", + "Fm light background": "FM светлый фон", + "Following views will be changed": "Следующие представления будут изменены", + "For widgets with relative position": "Для виджетов с относительным положением", + "Fr": "Пт", + "Full HD - Landscape": "Full HD - Пейзаж", + "Full HD - Portrait": "Full HD - Портрет", + "Full panel": "Полная панель", + "Galaxy Fold - Landscape": "Galaxy Fold — Пейзаж", + "Galaxy Fold - Portrait": "Galaxy Fold — Портрет", + "Global": "Для всех проектов", + "Gradient box": "Градиентный контур", + "Gray 0": "Серый 0", + "Gray 1": "Серый 1", + "Grid": "Сетка", + "Group": "Группа", + "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": "Высота", + "Hide": "Скрывать", + "Hide after selection": "Скрыть после выбора", + "Hide all views": "Скрыть все представления", + "Hide attributes": "Скрыть свойства", + "Hide menu": "Скрыть меню", + "Hide palette": "Скрыть палитру", + "Hide panel names": "Скрыть названия панелей", + "Hide selected widgets": "Скрыть выбранные виджеты", + "High": "Высокий", + "High priority": "Высокий приоритет", + "Highest eg. Holiday": "Наивысший, например. День отдыха", + "Horizontal": "Горизонтальный", + "Icon": "Значок", + "If user not in group": "Если пользователь не в группе", + "Ignore": "Игнорировать", + "Ignored in edit mode": "Игнорируется в режиме редактирования", + "Image": "Изображение", + "Import": "Импорт", + "Import project": "Импорт проекта", + "Import widgets": "Импорт виджетов", + "Include widget?": "Включить виджет?", + "Initial filter": "Начальный фильтр", + "Instance": "Пример", + "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": "Замок", + "Lock dragging": "Блокировка перетаскивания", + "Manage projects": "Проекты", + "Manage views": "Страницы", + "Menu header text": "Текст заголовка меню", + "Menu header text color": "Цвет текста заголовка меню", + "Menu width": "Ширина меню", + "Message": "Сообщение", + "Mo": "Пн", + "Modify": "Буду изменить", + "More": "Более", + "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": "Имя", + "Name is not unique": "Имя не уникальное", + "Name of copy": "Название копии", + "Narrow panel": "Узкая панель", + "Navigation": "Навигация", + "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": "Нет", + "No background": "Без фона", + "Normal": "Обычный", + "OFF": "ВЫКЛ", + "ON": "ВКЛ", + "Objects": "Объекты", + "Ok": "Ok", + "On/Off": "Вкл выкл", + "One parameter": "Один параметр", + "Only for desktop": "Только для рабочего стола", + "Only for groups": "Только для групп", + "Only the admin user can change permissions": "Только пользователь-администратор может изменять разрешения", + "Open": "Открыть", + "Open all": "Раскрыть все", + "Open it?": "Открой это?", + "Open runtime in new window": "Открыть среду выполнения в новом окне", + "Open widgeteria": "Открыть виджетерию", + "Options": "Опции", + "Order": "Заказ", + "Orientation": "Ориентация", + "Palette": "Палитра", + "Paste": "Вставить", + "Percent": "Процентов", + "Permissions": "Разрешения", + "Pixel 5 - Landscape": "Пиксель 5 – Пейзаж", + "Pixel 5 - Portrait": "Пиксель 5 – Портрет", + "Priority": "Приоритет", + "Project \"%s\" does not exist": "Проект \"%s\" не существует", + "Project \"%s\" was successfully imported": "Проект \"%s\" успешно импортирован", + "Project already exists": "Проект уже существует", + "Project name": "Название проекта", + "Project was updated": "Проект обновлен", + "Project was updated by another browser instance. Do you want to reload it?": "Проект был обновлен другим экземпляром браузера. Вы хотите перезагрузить его?", + "Projects": "Проекты", + "Radial blue": "Радиальный синий", + "Read": "Читать", + "Read = Runtime access": "Чтение = доступ во время выполнения", + "Read about currentColor in SVG": "Прочтите о currentColor в SVG.", + "Received user command: %s": "Полученная пользовательская команда: %s", + "Reconnect interval": "Интервал повторного подключения", + "Redo": "Повторить", + "Reload all browsers if project changed": "Перезагрузите все браузеры, если проект изменился", + "Reload all runtimes": "Перезагрузить все среды выполнения", + "Reload if sleep longer than": "Перезагрузите, если спите дольше, чем", + "Reload now": "Перезагрузить сейчас", + "Reloading": "Перезагрузка", + "Rename": "Переименовать", + "Rename folder \"%s\"": "Переименовать папку \"%s\"", + "Rename project \"%s\"": "Переименовать проект \"%s\"", + "Rename view": "Переименовать страницу", + "Rename view \"%s\"": "Переименовать страницу \"%s\"", + "Render always": "Всегда отрисовывать", + "Reset all intervals to following value:": "Сбросьте все интервалы до следующего значения:", + "Resolution": "Разрешение", + "Responsive settings": "Адаптивные настройки", + "Row gap": "Разрыв строки", + "Sa": "Сб", + "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": "Сохранять", + "Scripts": "Скрипты", + "Search": "Поиск", + "Select": "Выбрать", + "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": "Настр.", + "Should it be moved to new place?": "Стоит ли его перенести на новое место?", + "Show": "Показывать", + "Show all views": "Показать все виды", + "Show app bar": "Показать", + "Show background of button": "Фон кнопки «Показать»", + "Show navigation": "Показать навигацию", + "Show only selected widgets": "Показать только выбранные виджеты", + "Show this attribute by all views": "Показать этот атрибут во всех представлениях", + "Show view": "Показать страницу", + "Specify filter to see more icons": "Укажите фильтр, чтобы увидеть больше значков", + "States Debounce Time (millis)": "Время игнорирования дребезга (млн)", + "Style": "Стиль", + "Su": "Вс", + "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": "Вкладки", + "Temperature": "Температура", + "Text color": "Цвет текста", + "Text color if selected": "Цвет текста, если выбран", + "Text edit": "Редактировать текст", + "Th": "Чт", + "Theme": "Тема", + "This view will be shown only to defined groups": "Эта страница будет отображаться только для определенных групп", + "This widget is already used in \"%s\"": "Этот виджет уже используется в \"%s\"", + "Title": "Заголовок", + "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": "Вт", + "Type": "Тип", + "Undo": "Отмена", + "Ungroup": "Разгруппировать", + "Uninstall": "Удалить", + "Unknown widget type \"%s\"": "Неизвестный тип виджета \"%s\"", + "Unlock": "Разблокировать", + "Unselect": "Отменить выбор", + "Update": "Обновить", + "Usage of widget %s": "Использование виджета %s", + "Use background": "Использовать фон", + "Use field as binding": "Использовать поле как привязку", + "User defined": "Определяемые пользователем", + "Value": "Значение", + "Vertical": "Вертикальный", + "View": "Страница", + "View not defined": "Страница не определена", + "We": "Ср", + "Weekend": "выходные", + "Widget": "Виджет", + "Widget CSS": "Виджет CSS", + "Widget JS": "Виджет JS", + "Widget was deleted in widgeteria": "Виджет был удален в виджете", + "Widgets": "Виджеты", + "Width": "Ширина", + "Width x height (px)": "Ширина х высота (px)", + "Write": "Писать", + "Write = Edit mode access": "Write = доступ к режиму редактирования", + "Writer": "Писатель", + "Wrong password": "Неправильный пароль", + "Yes": "Да", + "You can open dialog with following script:": "Вы можете открыть диалог с помощью следующего скрипта:", + "You can provide here the state that controls the activation of this profile": "Вы можете указать здесь состояние, которое контролирует включение этого профиля", + "__marketplace": "Виджетерия", + "ace_All": "Все", + "ace_CaseSensitive Search": "Поиск с учетом регистра", + "ace_RegExp Search": "Поиск по регулярному выражению", + "ace_Search In Selection": "Искать в выборе", + "ace_Search for": "Искать", + "ace_Toggle Replace mode": "Переключить режим замены", + "ace_Whole Word Search": "Поиск всего слова", + "alt_false": "Подсказка при false", + "alt_true": "Подсказка при true", + "anonymize": "анонимизировать", + "apply_to_all": "Для всех", + "attr_none": "none", + "basic_all_filters": "Добавить все, что осталось", + "basic_arrow": "Стрелка", + "basic_borderColor": "Цвет границы", + "basic_borderRadius": "Радиус границы", + "basic_circle": "Круг", + "basic_custom": "Произвольный полигон", + "basic_filter_multiple": "Множественный выбор", + "basic_filter_type_dropdown": "Выпадающее меню", + "basic_filter_type_horizontal_buttons": "Горизонтальные кнопки", + "basic_filter_type_vertical_buttons": "Вертикальные кнопки", + "basic_hexagone": "шестиугольник", + "basic_line": "Линия", + "basic_no_all_option": "Нет опции «Без фильтра»", + "basic_no_filter": "Нет фильтра", + "basic_no_filter_text": "Ярлык «Без фильтра»", + "basic_octagone": "Октагон", + "basic_pentagone": "Пентагон", + "basic_pin": "Приколоть", + "basic_speech2text_continuous": "непрерывный", + "basic_speech2text_detected": "Обнаружено", + "basic_speech2text_en_us": "английский", + "basic_speech2text_height": "Высота (пикселей)", + "basic_speech2text_image_active": "Активный", + "basic_speech2text_image_inactive": "Неактивный", + "basic_speech2text_info_allow": "Нажмите кнопку «Разрешить» выше, чтобы включить микрофон.", + "basic_speech2text_info_blocked": "Разрешение на использование микрофона заблокировано. Чтобы изменить, перейдите по адресу chrome://settings/contentExceptions#media-stream.", + "basic_speech2text_info_denied": "В разрешении на использование микрофона было отказано.", + "basic_speech2text_info_no_microphone": "Микрофон не найден. Убедитесь, что микрофон установлен и что настройки микрофона настроены правильно.", + "basic_speech2text_info_no_speech": "Речь не обнаружена. Возможно, вам потребуется изменить настройки микрофона.", + "basic_speech2text_info_speak_now": "Говорите сейчас.", + "basic_speech2text_info_start": "Нажмите на значок микрофона и начните говорить.", + "basic_speech2text_info_upgrade": "API веб-речи не поддерживается этим браузером. Обновите Chrome до версии 25 или более поздней.", + "basic_speech2text_key_word_color": "Ключевое слово цвет", + "basic_speech2text_key_word_color_tooltip": "Цвет текста, если найдено ключевое слово", + "basic_speech2text_keywords": "Ключевые слова", + "basic_speech2text_no_image": "Нет изображения", + "basic_speech2text_no_results": "Без результатов", + "basic_speech2text_no_text": "Нет текста справки", + "basic_speech2text_ru_ru": "русский", + "basic_speech2text_sent": "Отправил", + "basic_speech2text_single": "одинокий", + "basic_speech2text_speech_mode": "Речевой режим", + "basic_speech2text_start_stop": "старт/стоп", + "basic_speech2text_started": "Начал", + "basic_speech2text_text_sent_color": "Цвет отправленного текста", + "basic_speech2text_text_sent_color_tooltip": "Цвет текста, когда текст отправляется на обработку", + "basic_speech2text_width": "Ширина (пикселей)", + "basic_square": "Квадрат", + "basic_star": "Звезда", + "basic_sub_view": "Подстраница", + "basic_triangle": "Треугольник", + "block": "блокировать", + "color": "цвет", + "color_false": "Цвет по ложному", + "color_true": "Цвет по истине", + "convert from widgeteria widget": "конвертировать из виджета widgeteria", + "copy": "Копия", + "css_project": "Для этого проекта", + "custom_icons": "Спец.", + "different": "разные", + "display": "отображать", + "finish searching": "поиск завершен", + "flex": "сгибаться", + "flexible": "гибкий", + "folder": "Папка", + "font-family": "семейство шрифтов", + "font-size": "размер шрифта", + "font-style": "стиль шрифта", + "font-variant": "вариант шрифта", + "font-weight": "вес шрифта", + "group": "Группа", + "group_attrName": "Имя", + "group_attrType": "Тип", + "group_fields": "Атрибуты", + "group_help": "Вы можете определить в атрибутах виджета группы специальные имена в формате \"%yourCustomName%\" и они появятся в настройках \"Атрибуты\". После этого вы можете указать имя и тип пользовательских атрибутов.", + "group_icon_false": "Иконка при false", + "group_icon_true": "Иконка при true", + "group_size_hint": "Вы можете изменить размер группы, выбрав его в раскрывающемся селекторе виджетов или щелкнув этот текст.", + "group_text": "Текст", + "help_css_global": "Эти CSS применяются ко всем проектам", + "help_css_project": "Эти CSS применяются только к этому проекту", + "hide": "Спрятать", + "hide code": "скрыть код", + "horizontal": "горизонтально", + "hr": "ч.", + "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": "Размер значка в пикселях", + "icon_upload_hint": "Вы можете загрузить свой собственный значок размером до 10 КБ в формате base64. Он будет сохранен непосредственно в проекте. Если вы хотите загрузить SVG-файл, не забудьте установить атрибут currentColor.", + "imageHeight_false": "Высота изображения", + "imageHeight_true": "Высота изображения", + "invert_icon_false": "Инвертировать значок", + "invert_icon_true": "Инвертировать значок", + "jqui_Add new value": "Добавить новое значение", + "jqui_Are you sure?": "Вы уверены?", + "jqui_Bulk edit": "Массовое редактирование", + "jqui_Close": "Закрыть", + "jqui_Example": "Пример", + "jqui_Generate states": "Генерировать состояния", + "jqui_Generate steps": "Создание шагов", + "jqui_Maximum value": "Максимальное значение", + "jqui_Minimum value": "Минимальное значение", + "jqui_Number settings": "Настройки номера", + "jqui_Percents": "Проценты", + "jqui_Replace to": "Заменить", + "jqui_Select file": "Выберите изображение", + "jqui_Write state": "Написать состояние", + "jqui_active_color": "Активный цвет", + "jqui_ampm": "До полудня после полудня", + "jqui_asDate": "Как дата", + "jqui_asFullDate": "Использование полной анализируемой даты", + "jqui_as_string": "Как строка", + "jqui_auto": "авто", + "jqui_binary_control": "Двоичное управление", + "jqui_button_binary_control_note": "Устарело. Используйте виджет «Двоичное управление». Сохранено только для совместимости с vis.1.", + "jqui_button_color": "Цвет кнопки", + "jqui_button_dialog_close": "Кнопка закрытия диалога", + "jqui_button_input_note": "Устарело. Используйте виджет «Ввод». Сохранено только для совместимости с vis.1.", + "jqui_button_link": "Перейти к URL-адресу", + "jqui_button_link_blank": "Перейти к URL (в новом окне)", + "jqui_button_link_blank_note": "Устарело. Используйте первый виджет с опцией «Открыть в новом окне». Сохранено только для совместимости с vis.1", + "jqui_button_nav_blank_note": "Устарело. Используйте первый виджет с опцией «Перейти к просмотру». Сохранено только для совместимости с vis.1.", + "jqui_button_text": "Текст кнопки", + "jqui_buttontext_view": "Использовать имя представления в качестве заголовка", + "jqui_clearable": "Очищаемый", + "jqui_color": "Цвет", + "jqui_container_button_dialog": "Кнопка=>Диалог страницы", + "jqui_container_dialog": "Диалог контейнера", + "jqui_container_icon_dialog": "Значок=>Диалоговое окно страницы", + "jqui_dialog_name": "Имя диалога", + "jqui_dialog_set_id_tooltip": "Установить состояние при открытии диалога", + "jqui_disableFuture": "Отключить будущее", + "jqui_disablePast": "Отключить прошлое", + "jqui_displayWeekNumber": "Отображение номера недели", + "jqui_equal_text_length": "Одинаковая длина текста", + "jqui_equal_text_length_tooltip": "Если эта опция активирована, длина текстов для true и false будет одинаковой, поэтому значок останется на одном и том же месте в состояниях «выключено» и «включено».", + "jqui_external_dialog": "Внешний диалог", + "jqui_external_dialog_tooltip": "Этот диалог не виден на странице, но его можно открыть внешней командой «dialogOpen» с именем диалога или идентификатором виджета в качестве параметра.", + "jqui_false": "ЛОЖЬ", + "jqui_from_oid": "С другого объекта", + "jqui_from_value": "Из статического значения", + "jqui_generate": "Генерировать", + "jqui_group_value": "Значение", + "jqui_hide_close_button": "Скрыть кнопку закрытия", + "jqui_href_tooltip": "Этот URL будет вызываться в браузере", + "jqui_html": "HTML", + "jqui_html_dialog": "HTML-диалог", + "jqui_html_external_dialog": "Внешний диалог", + "jqui_html_false": "HTML при выкл", + "jqui_html_tooltip": "HTML можно настроить только в том случае, если текст и значок пусты.", + "jqui_html_true": "HTML при вкл", + "jqui_icon": "Икона", + "jqui_icon_active": "Активный значок", + "jqui_icon_dialog": "Диалоговое окно со значками", + "jqui_icon_http_get": "URL-адрес вызова в бэкэнде", + "jqui_icon_increment": "Увеличение с помощью значка", + "jqui_icon_link": "Перейти к URL (со значком)", + "jqui_icon_max": "Значок для максимума", + "jqui_icon_state_bool": "Логическая кнопка со значком", + "jqui_icon_state_push_button": "Нажать кнопку", + "jqui_icon_toggle": "Кнопка переключения со значком", + "jqui_image": "Изображение", + "jqui_image_active": "Активное изображение", + "jqui_image_height": "Высота изображения", + "jqui_image_max": "Изображение на максимум", + "jqui_increment_decrement": "Увеличение/Уменьшение", + "jqui_input": "Вход", + "jqui_input_date": "Ввод даты", + "jqui_input_time": "Ввод времени", + "jqui_input_with_button": "Ввод с помощью кнопки", + "jqui_invert_icon": "Инвертировать значок", + "jqui_inverted": "Перевернутый", + "jqui_jquery_style": "Стиль jQuery", + "jqui_max": "Максимальное значение", + "jqui_min": "Минимальное значение", + "jqui_name": "Заголовок", + "jqui_nav_view": "Перейти к странице", + "jqui_navigation_button": "Кнопка навигации", + "jqui_navigation_icon": "Значок навигации", + "jqui_navigation_password": "Навигация с паролем", + "jqui_not_equal_length": "Не равная ширина", + "jqui_off": "Выкл.", + "jqui_oid_working": "Рабочий идентификатор", + "jqui_on": "Вкл.", + "jqui_only_icon": "Только значок", + "jqui_open": "Как список", + "jqui_orientation": "Ориентация", + "jqui_password": "Пароль", + "jqui_password_tooltip": "Пользователь должен ввести пароль, чтобы открыть диалоговое окно, перейти на страницу или URL-адрес.", + "jqui_push_mode": "Режим нажатия", + "jqui_push_mode_tooltip": "При нажатии кнопки будет написано «истина», при отпускании кнопки будет написано «ложь».", + "jqui_radio_buttons_on_off": "Радиокнопки (вкл/выкл)", + "jqui_radio_list": "Список радио со значениями", + "jqui_radio_steps": "Радиокнопка (c шагами)", + "jqui_range": "диапазон", + "jqui_read_only": "Только чтение", + "jqui_repeat_delay": "Задержка повтора", + "jqui_repeat_interval": "Интервал повторения", + "jqui_select_all_on_focus": "Выбрать все в фокусе", + "jqui_select_all_on_focus_tooltip": "В фокусе весь текст будет выделен, поэтому его можно быстро удалить или изменить, не нажимая кнопку возврата.", + "jqui_select_list": "Выбрать из списка", + "jqui_set_label": "Стилизованные", + "jqui_set_timeout": "Тайм-аут записи", + "jqui_single": "один", + "jqui_slider": "Слайдер", + "jqui_slider_note": "Устарело. Используйте виджет-слайдер с вертикальной ориентацией. Сохранено только для совместимости с vis.1.", + "jqui_slider_vertical": "Вертикальный слайдер", + "jqui_state_note": "Устарело. Используйте виджет «Управление состояниями» с опцией «увеличить/уменьшить». Сохранено только для совместимости с vis.1.", + "jqui_states_control": "Штаты контролируют", + "jqui_stepMinute": "Шаг минута", + "jqui_test": "Тестовое значение", + "jqui_text": "Текст", + "jqui_text_active": "Активный текст", + "jqui_text_max": "Текст для максимума", + "jqui_toggle": "Переключать", + "jqui_tooltip": "Подсказка", + "jqui_true": "Истинный", + "jqui_type": "Тип", + "jqui_unit": "Единица", + "jqui_url_group": "URL-адрес вызова по клику", + "jqui_url_in_background": "URL-адрес в бэкэнде", + "jqui_url_in_browser": "URL-адрес в браузере", + "jqui_url_tooltip": "Этот URL будет вызываться в фоновом режиме движком ioBroker.", + "jqui_value": "Значение", + "jqui_value_label_display": "Отображать этикетку", + "jqui_variant": "Вариант", + "jqui_view_group": "Просмотр навигации", + "jqui_wideFormat": "Широкий формат", + "jqui_widgetTitle": "Заголовок", + "jqui_with_enter_button": "С кнопкой ввода", + "jqui_write_state_note": "Устарело. Используйте виджет «Состояние записи» с опцией «увеличить/уменьшить». Сохранено только для совместимости с vis.1.", + "jqui_write_value": "Запись значения", + "letter-spacing": "Межбуквенное расстояние", + "line-height": "высота линии", + "material_icons_baseline": "Заполненные", + "material_icons_knx-uf": "knx-uf", + "material_icons_outline": "Обрисованные", + "material_icons_result": "%s совпадающих результатов", + "material_icons_round": "Закруглённые", + "material_icons_sharp": "Заострённые", + "material_icons_twotone": "Двухцветные", + "material_icons_upload": "Загрузить", + "multi-views": "Показать на страницах", + "never": "никогда", + "no_reload": "нет перезагрузки", + "none": "никто", + "normal": "обычный", + "not defined": "не определено", + "not-specified": "не определено", + "optional": "по желанию", + "order_help": "Вы можете перетащить любой элемент или щелкнуть элемент, с которым выбранный виджет будет заменен", + "orientation": "Ориентация", + "profile": "Профиль", + "qui_Bool SVG": "Бинарный SVG", + "reload": "перезагрузить", + "search text": "Текст поиска", + "set_basic": "базовый", + "signals-count": "Количество сигналов", + "signals-smallIcon-0": "Маленький значок [0]", + "signals-smallIcon-1": "Маленький значок [1]", + "signals-smallIcon-2": "Маленький значок [3]", + "signals-text-0": "Текст [0]", + "signals-text-1": "Текст [1]", + "signals-text-2": "Текст [2]", + "sub_view_tooltip": "Он используется для специальных целей, таких как навигация jaeger-design.", + "text-shadow": "тень текста", + "text_false": "Текст от ложного", + "text_true": "Текст правда", + "to version": "к версии", + "value_string": "Текстовая строка", + "version": "версия", + "vertical": "вертикально", + "vis-2-widgets-basic-autoSetDelay": "Задержка для автозаписи", + "vis-2-widgets-basic-input_value": "Входное значение", + "vis-2-widgets-basic-noStyle": "Нет стиля", + "visResizable": "Изменяемый размер", + "vis_2_widgets_basic_cannot_recursive": "Невозможно использовать рекурсивные страницы", + "vis_2_widgets_basic_contains_view": "Страница", + "vis_2_widgets_basic_view_in_widget": "Страница в виджете", + "vis_2_widgets_basic_view_not_defined": "Страница не определена", + "vis_2_widgets_swipe_hide_indication_label": "Скрыть индикацию", + "vis_2_widgets_swipe_threshold_label": "Порог", + "vis_2_widgets_widgets_swipe_label": "Swipe", + "vis_2_widgets_widgets_tabs_color": "Цвет", + "vis_2_widgets_widgets_tabs_group_tab": "Вкладка", + "vis_2_widgets_widgets_tabs_label": "Вкладки", + "vis_2_widgets_widgets_tabs_show_tabs": "Количество", + "vis_2_widgets_widgets_tabs_tab_icon": "Икона", + "vis_2_widgets_widgets_tabs_tab_icon_color": "Цвет", + "vis_2_widgets_widgets_tabs_tab_icon_size": "Размер значка", + "vis_2_widgets_widgets_tabs_tab_image": "Изображение", + "vis_2_widgets_widgets_tabs_tab_overflow_x": "Переполнение X", + "vis_2_widgets_widgets_tabs_tab_overflow_y": "Переполнение Y", + "vis_2_widgets_widgets_tabs_tab_title": "Заголовок", + "vis_2_widgets_widgets_tabs_tab_view": "Вид", + "vis_2_widgets_widgets_tabs_variant": "Вариант", + "vis_2_widgets_widgets_tabs_variant_centered": "сосредоточенный", + "vis_2_widgets_widgets_tabs_variant_default": "По умолчанию", + "vis_2_widgets_widgets_tabs_variant_full_width": "полная ширина", + "vis_2_widgets_widgets_tabs_vertical": "Вертикальный", + "welcome_message": "Ни одного проекта пока не существует.", + "word-spacing": "межсловный интервал" } \ No newline at end of file diff --git a/packages/iobroker.vis-2/src/src/i18n/uk.json b/packages/iobroker.vis-2/src/src/i18n/uk.json index ad11a17f..1ba8d4ad 100644 --- a/packages/iobroker.vis-2/src/src/i18n/uk.json +++ b/packages/iobroker.vis-2/src/src/i18n/uk.json @@ -1,753 +1,755 @@ { - "%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": "додати", - "Add folder": "Додати папку", - "Add new child folder": "Додати нову дочірню папку", - "Add new child profile": "Додати новий профіль дитини", - "Add new or update existing widget": "Додайте новий або оновіть наявний віджет\n", - "Add new view": "Новий вигляд", - "Add profile": "Додати профіль", - "Add project": "Додати проект", - "Add sub-folder": "Додати вкладену папку", - "Add to widgeteria": "Додати до widgeteria", - "Add view": "Додати вид", - "Administrator": "Адміністратор", - "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.": "Вирівняти ширину. Натисніть більше часу, щоб отримати потрібну ширину.", - "Aluminium1": "Алюміній1", - "Aluminium2": "Алюміній2", - "App bar": "Панель додатків", - "Apply": "Застосувати", - "Apply ALL navigation properties to all views": "Застосуйте ВСІ властивості навігації до всіх поданнях", - "Apply to all views": "Застосуйте цю властивість до всіх представлень", - "Are you sure": "Ти впевнений", - "Are you sure to delete widgets %s?": "Ви впевнені, що хочете видалити віджети %s?", - "Attributes": "Атрибути", - "Available for all": "Проект доступний для всіх користувачів", - "Background class": "Фоновий клас", - "Background color": "Колір фону", - "Background color if selected": "Колір фону, якщо вибрано", - "Bar color": "Колір фону", - "Bar icon": "значок", - "Bar image": "Зображення", - "Bar text": "Підпис", - "Basic": "Базовий", - "Benutzer": "Бенуцер", - "Blue flowers": "Сині квіти", - "Blue marine": "Синій морський", - "Blue marine lines": "Сині морські лінії", - "Blueprint grid": "Сітка креслення", - "Bricks": "Цегла", - "Bring to front": "На передній план", - "Browse files": "Перегляд файлів", - "Browse objects": "Перегляд об’єктів", - "Browse the widgeteria": "Перегляньте віджетерію", - "Browser instance ID": "Ідентифікатор екземпляра браузера", - "CSS": "CSS", - "CSS Class": "Клас CSS", - "CSS Common": "CSS Common", - "CSS Font & Text": "CSS Шрифт і текст", - "CSS background (background-...)": "CSS Фон (background-...)", - "Cancel": "Скасувати", - "Cannot use recursive views": "Не можна використовувати рекурсивні перегляди", - "Carbon fibre": "Вуглецеве волокно", - "Carbon fibre1": "Вуглецеве волокно 1", - "Chevron icon color": "Колір кнопки показу", - "Clear": "ясно", - "Clear filter": "Очистити фільтр", - "Click to close": "Натисніть, щоб закрити", - "Clone widget": "Віджет клонування", - "Close": "Закрити", - "Close all": "Закрити всі", - "Close all but current view": "Закрити всі, крім поточного перегляду", - "Close editor": "Закрити редактор", - "Collapse all": "Закрити всі", - "Colorful": "Барвистий", - "Column gap": "Розрив колони", - "Column width": "Ширина колонки", - "Comment": "коментар", - "Convert %s to %s": "Перетворити %s на %s", - "Copied %s": "Скопійовано %s", - "Copied to clipboard": "Скопійовано в буфер обміну", - "Copy": "Копія", - "Copy noun": "Копія", - "Copy to clipboard": "Копіювати в буфер обміну", - "Copy view \"%s\"": "Копіювати перегляд \"%s\"", - "Create": "Створити", - "Create copy": "Створити копію", - "Create instance": "Створити", - "Create new project": "Створити новий проект", - "Create or import new \"vis-2\" project": "Створіть або імпортуйте новий проект \"vis-2\".", - "Current project": "Поточний проект", - "Cut": "Вирізати", - "Dark reconnect screen": "Темний екран повторного підключення", - "Deactivate binding and use field as standard input": "Дезактивувати прив’язку та використовувати поле як стандартний вхід", - "Default": "За замовчуванням", - "Default view": "Перегляд за замовчуванням", - "Default: auto": "Типове значення: \"auto\"", - "Delete": "Видалити", - "Delete actual view": "Видалити фактичний вигляд", - "Delete widgets": "Видалити віджети", - "Destroy inactive view": "Знищити неактивне подання", - "Detected new version of vis files. Reloading in 2 seconds...": "Виявлено нову версію файлів vis. Перезавантаження за 2 секунди...", - "Devices": "Пристрої", - "Disabled": "Вимкнено", - "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\"?", - "Drag me": "Перетягни мене", - "Drop the files here ...": "Перекиньте файли сюди...", - "Duplicate": "дублікат", - "Duplicate folder": "Дубльована папка", - "Duplicate profile": "Дублюйте профіль", - "Edit": "Редагувати", - "Edit binding": "Редагувати прив'язку", - "Edit folder": "Редагувати папку", - "Edit group": "Редагувати групу", - "Edit profile": "Редагувати профіль", - "Elements": "Елементи", - "Enabled": "Увімкнено", - "Enter": "Введіть", - "Enter password": "Введіть пароль", - "Expand all": "Розгорнути все", - "Explanation": "Пояснення", - "Export": "Експорт", - "Export \"%s\"": "Експорт \"%s\"", - "Export widgets": "Експорт віджетів", - "External dialog": "Зовнішній діалог", - "Fields of group will be cleaned": "Поля групи будуть очищені", - "File too large": "Файл завеликий", - "Files": "Файли", - "Filter widgets": "Фільтр віджетів", - "Fm dark background": "Fm темний фон", - "Fm light background": "Fm світлий фон", - "For widgets with relative position": "Для віджетів із відносним розташуванням", - "Fr": "О", - "Full HD - Landscape": "Full HD - пейзаж", - "Full HD - Portrait": "Full HD - портрет", - "Full panel": "Повна панель", - "Galaxy Fold - Landscape": "Galaxy Fold – пейзаж", - "Galaxy Fold - Portrait": "Galaxy Fold – портрет", - "Global": "Для всіх проектів", - "Gradient box": "Коробка градієнта", - "Gray 0": "Сірий 0", - "Gray 1": "Сірий 1", - "Grid": "Сітка", - "Group": "Група", - "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": "Висота", - "Hide": "Сховати", - "Hide after selection": "Сховати після виділення", - "Hide all views": "Приховати всі перегляди", - "Hide attributes": "Приховати атрибути", - "Hide menu": "Приховати меню", - "Hide palette": "Сховати палітру", - "Hide panel names": "Приховати назви панелей", - "Hide selected widgets": "Приховати вибрані віджети", - "High": "Високий", - "High priority": "Високий пріоритет", - "Highest eg. Holiday": "Найвищий напр. Свято", - "Horizontal": "Горизонтальний", - "Icon": "значок", - "If user not in group": "Якщо користувач не в групі", - "Ignore": "Ігнорувати", - "Ignored in edit mode": "Ігнорується в режимі редагування", - "Image": "Зображення", - "Import": "Імпорт", - "Import project": "Імпорт проекту", - "Import widgets": "Імпорт віджетів", - "Initial filter": "Початковий фільтр", - "Instance": "Екземпляр", - "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 screen": "Обмежити екран", - "Lined paper": "Лінійований папір", - "Lock": "Замок", - "Lock dragging": "Перетягування замка", - "Manage projects": "Керуйте проектами", - "Manage views": "Керувати переглядами", - "Menu header text": "Текст заголовка меню", - "Menu header text color": "Колір тексту заголовка меню", - "Message": "повідомлення", - "Mo": "пн", - "Modify": "Змінити", - "More": "більше", - "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": "Ім'я", - "Name is not unique": "Назва не унікальна", - "Name of copy": "Назва примірника", - "Narrow panel": "Вузька панель", - "Navigation": "Навігація", - "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": "Ні", - "No background": "Без фону", - "Normal": "нормальний", - "OFF": "ВИМКНЕНО", - "ON": "УВІМКНЕНО", - "Objects": "Об'єкти", - "Ok": "Ok", - "On/Off": "Увімкнено вимкнено", - "One parameter": "Один параметр", - "Only for groups": "Тільки для груп", - "Only the admin user can change permissions": "Лише адміністратор може змінювати дозволи", - "Open": "ВІДЧИНЕНО", - "Open all": "Розгорнути все", - "Open it?": "Відкрий це?", - "Open runtime in new window": "Відкрити середовище виконання в новому вікні", - "Open widgeteria": "Відкрити widgeteria", - "Options": "Опції", - "Order": "порядок", - "Orientation": "Орієнтація", - "Palette": "Палітра", - "Paste": "Вставити", - "Percent": "Відсоток", - "Permissions": "Дозволи", - "Pixel 5 - Landscape": "Pixel 5 – пейзаж", - "Pixel 5 - Portrait": "Pixel 5 – Портрет", - "Priority": "Пріоритет", - "Project \"%s\" does not exist": "Проект \"%s\" не існує", - "Project \"%s\" was successfully imported": "Проект \"%s\" успішно імпортовано", - "Project already exists": "Проект вже існує", - "Project name": "Назва проекту", - "Project was updated": "Проект оновлено", - "Project was updated by another browser instance. Do you want to reload it?": "Проект оновлено іншим екземпляром браузера. Ви хочете перезавантажити його?", - "Projects": "Проекти", - "Radial blue": "Радіальний синій", - "Read": "Прочитайте", - "Read = Runtime access": "Читання = доступ під час виконання", - "Read about currentColor in SVG": "Прочитайте про currentColor у SVG", - "Received user command: %s": "Отримано команду користувача: %s", - "Reconnect interval": "Інтервал повторного підключення", - "Redo": "Повторити", - "Reload all browsers if project changed": "Перезавантажте всі браузери, якщо проект змінився", - "Reload all runtimes": "Перезавантажте всі середовища виконання", - "Reload if sleep longer than": "Перезавантажте, якщо спите довше", - "Reload now": "Перезавантажте зараз", - "Reloading": "Перезавантаження", - "Rename": "Перейменувати", - "Rename folder \"%s\"": "Перейменувати папку \"%s\"", - "Rename project \"%s\"": "Перейменувати проект \"%s\"", - "Rename view": "Перейменувати вигляд", - "Rename view \"%s\"": "Перейменувати перегляд \"%s\"", - "Render always": "Рендер завжди", - "Reset all intervals to following value:": "Скинути всі інтервали до наступного значення:", - "Resolution": "роздільна здатність", - "Responsive settings": "Чуйні налаштування", - "Row gap": "Проміжок між рядами", - "Sa": "Sa", - "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": "зберегти", - "Scripts": "Сценарії", - "Search": "Пошук", - "Select": "Виберіть", - "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": "Налашт.", - "Should it be moved to new place?": "Чи варто його переносити на нове місце?", - "Show": "Показати", - "Show all views": "Показати всі перегляди", - "Show app bar": "Показати", - "Show background of button": "Фон кнопки «Показати».", - "Show navigation": "Показати навігацію", - "Show only selected widgets": "Показати лише вибрані віджети", - "Show view": "Показати вид", - "Specify filter to see more icons": "Укажіть фільтр, щоб побачити більше значків", - "States Debounce Time (millis)": "Час усунення дребезгу в штатах (мілісекунди)", - "Style": "Стиль", - "Su": "Нд", - "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": "Вкладки", - "Temperature": "Температура", - "Text color": "Колір тексту", - "Text color if selected": "Колір тексту, якщо вибрано", - "Text edit": "Редагування тексту", - "Th": "чт", - "Theme": "Тема", - "This view will be shown only to defined groups": "Це вікно буде показано лише визначеним групам", - "This widget is already used in \"%s\"": "Цей віджет уже використовується в \"%s\"", - "Title": "Назва", - "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": "вт", - "Type": "Тип", - "Undo": "Скасувати", - "Ungroup": "Розгрупувати", - "Uninstall": "Видалити", - "Unknown widget type \"%s\"": "Невідомий тип віджета \"%s\"", - "Unlock": "Розблокувати", - "Update": "оновлення", - "Usage of widget %s": "Використання віджета %s", - "Use background": "Використовуйте фон", - "Use field as binding": "Використовувати поле як прив’язку", - "User defined": "Визначений користувачем", - "Value": "Значення", - "Vertical": "Вертикальний", - "View": "Переглянути", - "View not defined": "Перегляд не визначено", - "We": "ми", - "Weekend": "Вихідні", - "Widget": "Віджет", - "Widget CSS": "Віджет CSS", - "Widget JS": "Віджет JS", - "Widget was deleted in widgeteria": "Віджет видалено у widgeteria", - "Widgets": "Віджети", - "Width": "Ширина", - "Width x height (px)": "Ширина х висота (px)", - "Write": "Напишіть", - "Write = Edit mode access": "Запис = доступ до режиму редагування", - "Writer": "Письменник", - "Wrong password": "Неправильний пароль", - "Yes": "Так", - "You can open dialog with following script:": "Ви можете відкрити діалогове вікно за допомогою наступного сценарію:", - "You can provide here the state that controls the activation of this profile": "Тут можна вказати стан, який контролює активацію цього профілю", - "__marketplace": "Віджетерія", - "ace_All": "все", - "ace_CaseSensitive Search": "Пошук з урахуванням регістру", - "ace_RegExp Search": "Пошук RegExp", - "ace_Search In Selection": "Пошук у вибраному", - "ace_Search for": "Шукати", - "ace_Toggle Replace mode": "Перемкнути режим заміни", - "ace_Whole Word Search": "Пошук усього слова", - "alt_false": "Підказка від false", - "alt_true": "Підказка від true", - "anonymize": "анонімізувати", - "apply_to_all": "Для усіх", - "attr_none": "none", - "basic_arrow": "Стрілка", - "basic_borderColor": "Колір рамки", - "basic_borderRadius": "Радіус кордону", - "basic_circle": "Коло", - "basic_custom": "Довільний полігон", - "basic_hexagone": "Шестикутник", - "basic_line": "лінія", - "basic_octagone": "Восьмикутник", - "basic_pentagone": "П'ятикутник", - "basic_pin": "Pin", - "basic_speech2text_continuous": "безперервний", - "basic_speech2text_detected": "Виявлено", - "basic_speech2text_en_us": "англійська", - "basic_speech2text_height": "Висота (px)", - "basic_speech2text_image_active": "Активний", - "basic_speech2text_image_inactive": "Неактивний", - "basic_speech2text_info_allow": "Натисніть кнопку «Дозволити» вище, щоб увімкнути мікрофон.", - "basic_speech2text_info_blocked": "Дозвіл на використання мікрофона заблоковано. Щоб змінити, перейдіть на сторінку chrome://settings/contentExceptions#media-stream", - "basic_speech2text_info_denied": "У дозволі на використання мікрофона відмовлено.", - "basic_speech2text_info_no_microphone": "Мікрофон не знайдено. Переконайтеся, що встановлено мікрофон і що налаштування мікрофона налаштовано правильно.", - "basic_speech2text_info_no_speech": "Мовлення не виявлено. Можливо, вам знадобиться змінити налаштування мікрофона.", - "basic_speech2text_info_speak_now": "Говори зараз.", - "basic_speech2text_info_start": "Натисніть на значок мікрофона та почніть говорити.", - "basic_speech2text_info_upgrade": "Web Speech API не підтримується цим браузером. Оновіть до Chrome версії 25 або новішої.", - "basic_speech2text_key_word_color": "Колір ключового слова", - "basic_speech2text_key_word_color_tooltip": "Колір тексту, якщо ключове слово знайдено", - "basic_speech2text_keywords": "Ключові слова", - "basic_speech2text_no_image": "Немає зображення", - "basic_speech2text_no_results": "Немає результатів", - "basic_speech2text_no_text": "Немає довідкового тексту", - "basic_speech2text_ru_ru": "російський", - "basic_speech2text_sent": "Надісланий", - "basic_speech2text_single": "неодружений", - "basic_speech2text_speech_mode": "Режим мовлення", - "basic_speech2text_start_stop": "старт/зупинка", - "basic_speech2text_started": "розпочато", - "basic_speech2text_text_sent_color": "Текст надіслано кольоровим", - "basic_speech2text_text_sent_color_tooltip": "Колір тексту, коли текст надсилається на обробку", - "basic_speech2text_width": "Ширина (px)", - "basic_square": "Майдан", - "basic_star": "зірка", - "basic_triangle": "Трикутник", - "block": "блокувати", - "color": "колір", - "color_false": "Колір за фальшивим", - "color_true": "Колір за правдою", - "convert from widgeteria widget": "конвертувати з віджета widgeteria", - "copy": "копія", - "css_project": "Для цього проекту", - "custom_icons": "Спеціальні", - "different": "інший", - "display": "дисплей", - "finish searching": "пошук завершено", - "flex": "flex", - "flexible": "гнучкий", - "folder": "Папка", - "font-family": "сімейство шрифтів", - "font-size": "розмір шрифту", - "font-style": "стиль шрифту", - "font-variant": "шрифт-варіант", - "font-weight": "вага шрифту", - "group": "Група", - "group_attrName": "Ім'я", - "group_attrType": "Тип", - "group_fields": "Атрибути", - "group_help": "Ви можете визначити в атрибутах віджета групи спеціальні назви у форматі \"%yourCustomName%\" і вони відображатимуться в налаштуваннях \"Атрибути\". Після цього ви можете вказати назву та тип настроюваних атрибутів.", - "group_icon_false": "Значок від false", - "group_icon_true": "Значок від true", - "group_size_hint": "Ви можете змінити розмір групи, вибравши його у випадаючому списку віджетів або клацнувши цей текст", - "group_text": "текст", - "help_css_global": "Ці CSS застосовуються до всіх проектів", - "help_css_project": "Ці CSS застосовуються лише до цього проекту", - "hide": "приховати", - "hide code": "приховати код", - "horizontal": "горизонтальний", - "hr": "год", - "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": "Розмір значка в пікселях", - "icon_upload_hint": "Ви можете завантажити власну піктограму розміром до 10 Кбайт як base64. Він буде збережений безпосередньо в проекті. Якщо ви хочете завантажити файл SVG, не забудьте встановити атрибут currentColor.", - "imageHeight_false": "Висота зображення", - "imageHeight_true": "Висота зображення", - "invert_icon_false": "Інвертувати значок", - "invert_icon_true": "Інвертувати значок", - "jqui_Add new value": "Додати нове значення", - "jqui_Are you sure?": "Ти впевнений?", - "jqui_Bulk edit": "Масове редагування", - "jqui_Close": "Закрити", - "jqui_Example": "приклад", - "jqui_Generate states": "Генеруйте стани", - "jqui_Generate steps": "Створення кроків", - "jqui_Maximum value": "Максимальне значення", - "jqui_Minimum value": "Мінімальна вартість", - "jqui_Number settings": "Налаштування номера", - "jqui_Percents": "Відсотки", - "jqui_Replace to": "Замінити", - "jqui_Select file": "Виберіть зображення", - "jqui_active_color": "Активний колір", - "jqui_ampm": "Дообіду, після обіду", - "jqui_asDate": "Як дата", - "jqui_asFullDate": "Використання повної аналізованої дати", - "jqui_as_string": "Як рядок", - "jqui_auto": "авто", - "jqui_binary_control": "Двійковий контроль", - "jqui_button_binary_control_note": "Застаріле. Використовуйте віджет «Двійковий контроль». Збережено тільки для сумісності з vis.1", - "jqui_button_color": "Колір кнопки", - "jqui_button_dialog_close": "Кнопка закриття діалогового вікна", - "jqui_button_input_note": "Застаріле. Використовуйте віджет «Введення». Збережено тільки для сумісності з vis.1", - "jqui_button_link": "Перейти до URL", - "jqui_button_link_blank": "Перейти до URL (у новому вікні)", - "jqui_button_link_blank_note": "Застаріле. Використовуйте перший віджет із опцією «Відкрити в новому вікні». Збережено тільки для сумісності з vis.1", - "jqui_button_nav_blank_note": "Застаріле. Використовуйте перший віджет із опцією «Перейти до перегляду». Збережено тільки для сумісності з vis.1", - "jqui_button_text": "Текст кнопки", - "jqui_buttontext_view": "Використовуйте назву перегляду як назву", - "jqui_clearable": "Очищається", - "jqui_color": "колір", - "jqui_container_button_dialog": "Кнопка=>Діалог сторінки", - "jqui_container_dialog": "Діалог контейнера", - "jqui_container_icon_dialog": "Icon=>Діалог сторінки", - "jqui_dialog_name": "Назва діалогу", - "jqui_dialog_set_id_tooltip": "Установити стан відкритим діалоговим вікном", - "jqui_disableFuture": "Вимкнути майбутнє", - "jqui_disablePast": "Вимкнути минуле", - "jqui_displayWeekNumber": "Показати номер тижня", - "jqui_equal_text_length": "Рівна довжина тексту", - "jqui_equal_text_length_tooltip": "Якщо активовано, довжина текстів для true та false буде однаковою, тому значок залишатиметься на тому самому місці у «вимкненому» та «увімкненому» станах.", - "jqui_external_dialog": "Зовнішній діалог", - "jqui_external_dialog_tooltip": "Це діалогове вікно не відображається на сторінці, але його можна відкрити зовнішньою командою \"dialogOpen\" із назвою діалогового вікна або ідентифікатором віджета як параметром.", - "jqui_false": "помилковий", - "jqui_from_oid": "З іншого об'єкта", - "jqui_from_value": "Від статичного значення", - "jqui_generate": "Генерувати", - "jqui_group_value": "Значення", - "jqui_hide_close_button": "Приховати кнопку закриття", - "jqui_href_tooltip": "Ця URL-адреса буде викликана в браузері", - "jqui_html": "HTML", - "jqui_html_dialog": "Діалог HTML", - "jqui_html_external_dialog": "Зовнішній діалог", - "jqui_html_false": "HTML через false", - "jqui_html_tooltip": "HTML можна налаштувати, лише якщо текст і піктограма порожні", - "jqui_html_true": "HTML від true", - "jqui_icon": "значок", - "jqui_icon_active": "Активний значок", - "jqui_icon_dialog": "Діалогове вікно піктограм", - "jqui_icon_http_get": "URL-адреса виклику в серверній частині", - "jqui_icon_increment": "Збільшення за допомогою значка", - "jqui_icon_link": "Перейти до URL-адреси (зі значком)", - "jqui_icon_max": "Піктограма максимуму", - "jqui_icon_state_bool": "Логічна кнопка піктограми", - "jqui_icon_state_push_button": "Нажимна Кнопка", - "jqui_icon_toggle": "Кнопка-перемикач із піктограмою", - "jqui_image": "Зображення", - "jqui_image_active": "Активне зображення", - "jqui_image_height": "Висота зображення", - "jqui_image_max": "Зображення на максимум", - "jqui_increment_decrement": "Приріст/Зменшення", - "jqui_input": "Введення", - "jqui_input_date": "Введення дати", - "jqui_input_time": "Введення часу", - "jqui_input_with_button": "Вхід за допомогою кнопки", - "jqui_invert_icon": "Інвертувати значок", - "jqui_inverted": "Перевернутий", - "jqui_jquery_style": "Стиль jQuery", - "jqui_max": "Максимальне значення", - "jqui_min": "Мінімальна вартість", - "jqui_name": "Назва", - "jqui_nav_view": "Перейти до перегляду", - "jqui_navigation_button": "Кнопка навігації", - "jqui_navigation_icon": "Значок навігації", - "jqui_navigation_password": "Навігація з паролем", - "jqui_not_equal_length": "Не однакова ширина", - "jqui_off": "Вимкнено", - "jqui_oid_working": "Робочий ID", - "jqui_on": "Увімкнено", - "jqui_only_icon": "Тільки значок", - "jqui_open": "Як список", - "jqui_orientation": "Орієнтація", - "jqui_password": "Пароль", - "jqui_password_tooltip": "Користувач повинен ввести пароль, щоб відкрити діалогове вікно, перейти на сторінку або URL", - "jqui_push_mode": "Режим Push", - "jqui_push_mode_tooltip": "При натисканні кнопки буде написано «true», а коли ви відпустите кнопку, буде написано «false».", - "jqui_radio_buttons_on_off": "Перемикачі (увімкнення/вимкнення)", - "jqui_radio_list": "Список радіостанцій зі значеннями", - "jqui_radio_steps": "Перемикач (кроки)", - "jqui_range": "діапазон", - "jqui_read_only": "Лише для читання", - "jqui_repeat_delay": "Повторити затримку", - "jqui_repeat_interval": "Інтервал повторення", - "jqui_select_all_on_focus": "Вибрати все у фокусі", - "jqui_select_all_on_focus_tooltip": "У фокусі буде виділено весь текст, тому його можна швидко видалити або змінити, не натискаючи кнопку Backspace", - "jqui_select_list": "Виберіть зі списку", - "jqui_set_label": "Стилізована", - "jqui_set_timeout": "Написати тайм-аут", - "jqui_single": "неодружений", - "jqui_slider": "повзунок", - "jqui_slider_note": "Застаріле. Використовуйте віджет-повзунок із вертикальною орієнтацією. Збережено тільки для сумісності з vis.1", - "jqui_slider_vertical": "Вертикальний слайдер", - "jqui_state_note": "Застаріле. Використовуйте віджет «Контроль станів» із опцією «збільшення/зменшення». Збережено тільки для сумісності з vis.1", - "jqui_states_control": "Державний контроль", - "jqui_stepMinute": "Крокова хвилина", - "jqui_test": "Перевірочне значення", - "jqui_text": "текст", - "jqui_text_active": "Активний текст", - "jqui_text_max": "Текст на максимум", - "jqui_toggle": "Перемикач", - "jqui_tooltip": "Підказка", - "jqui_true": "правда", - "jqui_type": "Тип", - "jqui_unit": "одиниця", - "jqui_url_group": "Виклик URL за кліком", - "jqui_url_in_background": "URL у серверній частині", - "jqui_url_in_browser": "URL у браузері", - "jqui_url_tooltip": "Ця URL-адреса викликатиметься у фоновому режимі системою ioBroker", - "jqui_value": "Значення", - "jqui_value_label_display": "Етикетка дисплея", - "jqui_variant": "Варіант", - "jqui_view_group": "Перегляд навігації", - "jqui_wideFormat": "Широкий формат", - "jqui_widgetTitle": "Назва", - "jqui_with_enter_button": "З кнопкою введення", - "jqui_write_state_note": "Застаріле. Використовуйте віджет \"Wirte state\" з опцією \"increment/decrement\". Збережено тільки для сумісності з vis.1", - "jqui_write_value": "Напишіть значення", - "letter-spacing": "міжлітерний інтервал", - "line-height": "висота лінії", - "material_icons_baseline": "Заповнений", - "material_icons_knx-uf": "knx-uf", - "material_icons_outline": "Окреслено", - "material_icons_result": "%s відповідних результатів", - "material_icons_round": "Круглий", - "material_icons_sharp": "Гострий", - "material_icons_twotone": "Двоколірний", - "material_icons_upload": "Завантажити", - "multi-views": "Показати в Переглядах", - "never": "ніколи", - "no_reload": "без перезавантажень", - "none": "немає", - "normal": "нормально", - "not defined": "не визначений", - "not-specified": "не визначений", - "optional": "необов'язковий", - "order_help": "Ви можете перетягнути будь-який елемент або клацнути елемент, яким буде замінено вибраний віджет", - "orientation": "Орієнтація", - "profile": "Профіль", - "qui_Bool SVG": "Логічний SVG", - "reload": "перезавантажити", - "search text": "Пошуковий текст", - "set_basic": "базовый", - "signals-count": "Кількість сигналів", - "signals-smallIcon-0": "Маленький значок [0]", - "signals-smallIcon-1": "Маленький значок [1]", - "signals-smallIcon-2": "Маленький значок [3]", - "signals-text-0": "Текст [0]", - "signals-text-1": "Текст [1]", - "signals-text-2": "Текст [2]", - "text-shadow": "текст-тінь", - "text_false": "Текст від false", - "text_true": "Текст від правда", - "to version": "до версії", - "value_string": "рядок", - "version": "версія", - "vertical": "вертикальний", - "visResizable": "Змінний розмір", - "vis_2_widgets_basic_cannot_recursive": "Не можна використовувати рекурсивні перегляди", - "vis_2_widgets_basic_contains_view": "Перегляд", - "vis_2_widgets_basic_view_in_widget": "Переглянути у віджеті", - "vis_2_widgets_basic_view_not_defined": "Перегляд не визначено", - "vis_2_widgets_widgets_tabs_color": "Колір", - "vis_2_widgets_widgets_tabs_group_tab": "вкладка", - "vis_2_widgets_widgets_tabs_label": "Вкладки", - "vis_2_widgets_widgets_tabs_show_tabs": "Номер", - "vis_2_widgets_widgets_tabs_tab_icon": "значок", - "vis_2_widgets_widgets_tabs_tab_icon_color": "колір", - "vis_2_widgets_widgets_tabs_tab_icon_size": "Розмір значка", - "vis_2_widgets_widgets_tabs_tab_image": "Зображення", - "vis_2_widgets_widgets_tabs_tab_overflow_x": "Переповнення X", - "vis_2_widgets_widgets_tabs_tab_overflow_y": "Перелив Y", - "vis_2_widgets_widgets_tabs_tab_title": "Назва", - "vis_2_widgets_widgets_tabs_tab_view": "Переглянути", - "vis_2_widgets_widgets_tabs_variant": "Варіант", - "vis_2_widgets_widgets_tabs_variant_centered": "по центру", - "vis_2_widgets_widgets_tabs_variant_default": "За замовчуванням", - "vis_2_widgets_widgets_tabs_variant_full_width": "повна ширина", - "vis_2_widgets_widgets_tabs_vertical": "Вертикальний", - "welcome_message": "Жодного проекту ще немає.", - "word-spacing": "міжсловний інтервал", - "basic_sub_view": "Підвид", - "sub_view_tooltip": "Використовується для спеціальних цілей, як-от навігація Jaeger-design", - "basic_no_filter_text": "Мітка «Без фільтра».", - "basic_no_all_option": "Немає опції \"Без фільтра\".", - "basic_filter_multiple": "Множинний вибір", - "basic_filter_type_dropdown": "Випадаюче меню", - "basic_filter_type_horizontal_buttons": "Горизонтальні кнопки", - "basic_filter_type_vertical_buttons": "Вертикальні кнопки", - "basic_no_filter": "Без фільтра", - "basic_all_filters": "Додайте всі ліві", - "Only for desktop": "Тільки для робочого столу", - "Include widget?": "Включити віджет?", - "Do you want to include \"%s\" widget into \"%s\"?": "Бажаєте включити віджет \"%s\" до \"%s\"?", - "Unselect": "Скасувати вибір", - "All": "все", - "Load project file...": "Завантаження файлу проекту...", - "Load widgets...": "Завантаження віджетів...", - "Loading objects...": "Завантаження об'єктів...", - "Following views will be changed": "Наступні перегляди будуть змінені", - "Show this attribute by all views": "Показувати цей атрибут усіма видами", - "Menu width": "Ширина меню", - "Do not ask again": "Не запитуй знову", - "vis-2-widgets-basic-input_value": "Вхідне значення", - "vis-2-widgets-basic-autoSetDelay": "Затримка для автозапису", - "vis-2-widgets-basic-noStyle": "Ніякого стилю", - "Clone": "Клон", - "jqui_Write state": "Написати стан", - "vis_2_widgets_widgets_swipe_label": "Swipe", - "vis_2_widgets_swipe_hide_indication_label": "Приховати позначку", - "vis_2_widgets_swipe_threshold_label": "поріг" + "%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": "додати", + "Add folder": "Додати папку", + "Add new child folder": "Додати нову дочірню папку", + "Add new child profile": "Додати новий профіль дитини", + "Add new or update existing widget": "Додайте новий або оновіть наявний віджет\n", + "Add new view": "Новий вигляд", + "Add profile": "Додати профіль", + "Add project": "Додати проект", + "Add sub-folder": "Додати вкладену папку", + "Add to widgeteria": "Додати до widgeteria", + "Add view": "Додати вид", + "Administrator": "Адміністратор", + "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": "все", + "Aluminium1": "Алюміній1", + "Aluminium2": "Алюміній2", + "App bar": "Панель додатків", + "Apply": "Застосувати", + "Apply ALL navigation properties to all views": "Застосуйте ВСІ властивості навігації до всіх поданнях", + "Apply to all views": "Застосуйте цю властивість до всіх представлень", + "Are you sure": "Ти впевнений", + "Are you sure to delete widgets %s?": "Ви впевнені, що хочете видалити віджети %s?", + "Attributes": "Атрибути", + "Available for all": "Проект доступний для всіх користувачів", + "Background class": "Фоновий клас", + "Background color": "Колір фону", + "Background color if selected": "Колір фону, якщо вибрано", + "Bar color": "Колір фону", + "Bar icon": "значок", + "Bar image": "Зображення", + "Bar text": "Підпис", + "Basic": "Базовий", + "Benutzer": "Бенуцер", + "Blue flowers": "Сині квіти", + "Blue marine": "Синій морський", + "Blue marine lines": "Сині морські лінії", + "Blueprint grid": "Сітка креслення", + "Bricks": "Цегла", + "Bring to front": "На передній план", + "Browse files": "Перегляд файлів", + "Browse objects": "Перегляд об’єктів", + "Browse the widgeteria": "Перегляньте віджетерію", + "Browser instance ID": "Ідентифікатор екземпляра браузера", + "CSS": "CSS", + "CSS Class": "Клас CSS", + "CSS Common": "CSS Common", + "CSS Font & Text": "CSS Шрифт і текст", + "CSS background (background-...)": "CSS Фон (background-...)", + "Cancel": "Скасувати", + "Cannot use recursive views": "Не можна використовувати рекурсивні перегляди", + "Carbon fibre": "Вуглецеве волокно", + "Carbon fibre1": "Вуглецеве волокно 1", + "Chevron icon color": "Колір кнопки показу", + "Clear": "ясно", + "Clear filter": "Очистити фільтр", + "Click to close": "Натисніть, щоб закрити", + "Clone": "Клон", + "Clone widget": "Віджет клонування", + "Close": "Закрити", + "Close all": "Закрити всі", + "Close all but current view": "Закрити всі, крім поточного перегляду", + "Close editor": "Закрити редактор", + "Collapse all": "Закрити всі", + "Colorful": "Барвистий", + "Column gap": "Розрив колони", + "Column width": "Ширина колонки", + "Comment": "коментар", + "Convert %s to %s": "Перетворити %s на %s", + "Copied %s": "Скопійовано %s", + "Copied to clipboard": "Скопійовано в буфер обміну", + "Copy": "Копія", + "Copy noun": "Копія", + "Copy to clipboard": "Копіювати в буфер обміну", + "Copy view \"%s\"": "Копіювати перегляд \"%s\"", + "Create": "Створити", + "Create copy": "Створити копію", + "Create instance": "Створити", + "Create new project": "Створити новий проект", + "Create or import new \"vis-2\" project": "Створіть або імпортуйте новий проект \"vis-2\".", + "Current project": "Поточний проект", + "Cut": "Вирізати", + "Dark reconnect screen": "Темний екран повторного підключення", + "Deactivate binding and use field as standard input": "Дезактивувати прив’язку та використовувати поле як стандартний вхід", + "Default": "За замовчуванням", + "Default view": "Перегляд за замовчуванням", + "Default: auto": "Типове значення: \"auto\"", + "Delete": "Видалити", + "Delete actual view": "Видалити фактичний вигляд", + "Delete widgets": "Видалити віджети", + "Destroy inactive view": "Знищити неактивне подання", + "Detected new version of vis files. Reloading in 2 seconds...": "Виявлено нову версію файлів vis. Перезавантаження за 2 секунди...", + "Devices": "Пристрої", + "Disabled": "Вимкнено", + "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": "дублікат", + "Duplicate folder": "Дубльована папка", + "Duplicate profile": "Дублюйте профіль", + "Edit": "Редагувати", + "Edit binding": "Редагувати прив'язку", + "Edit folder": "Редагувати папку", + "Edit group": "Редагувати групу", + "Edit profile": "Редагувати профіль", + "Elements": "Елементи", + "Enabled": "Увімкнено", + "Enter": "Введіть", + "Enter password": "Введіть пароль", + "Enter the browser instances divided by comma": "Введіть екземпляри браузера, розділивши їх комою", + "Expand all": "Розгорнути все", + "Explanation": "Пояснення", + "Export": "Експорт", + "Export \"%s\"": "Експорт \"%s\"", + "Export widgets": "Експорт віджетів", + "External dialog": "Зовнішній діалог", + "Fields of group will be cleaned": "Поля групи будуть очищені", + "File too large": "Файл завеликий", + "Files": "Файли", + "Filter widgets": "Фільтр віджетів", + "Fm dark background": "Fm темний фон", + "Fm light background": "Fm світлий фон", + "Following views will be changed": "Наступні перегляди будуть змінені", + "For widgets with relative position": "Для віджетів із відносним розташуванням", + "Fr": "О", + "Full HD - Landscape": "Full HD - пейзаж", + "Full HD - Portrait": "Full HD - портрет", + "Full panel": "Повна панель", + "Galaxy Fold - Landscape": "Galaxy Fold – пейзаж", + "Galaxy Fold - Portrait": "Galaxy Fold – портрет", + "Global": "Для всіх проектів", + "Gradient box": "Коробка градієнта", + "Gray 0": "Сірий 0", + "Gray 1": "Сірий 1", + "Grid": "Сітка", + "Group": "Група", + "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": "Висота", + "Hide": "Сховати", + "Hide after selection": "Сховати після виділення", + "Hide all views": "Приховати всі перегляди", + "Hide attributes": "Приховати атрибути", + "Hide menu": "Приховати меню", + "Hide palette": "Сховати палітру", + "Hide panel names": "Приховати назви панелей", + "Hide selected widgets": "Приховати вибрані віджети", + "High": "Високий", + "High priority": "Високий пріоритет", + "Highest eg. Holiday": "Найвищий напр. Свято", + "Horizontal": "Горизонтальний", + "Icon": "значок", + "If user not in group": "Якщо користувач не в групі", + "Ignore": "Ігнорувати", + "Ignored in edit mode": "Ігнорується в режимі редагування", + "Image": "Зображення", + "Import": "Імпорт", + "Import project": "Імпорт проекту", + "Import widgets": "Імпорт віджетів", + "Include widget?": "Включити віджет?", + "Initial filter": "Початковий фільтр", + "Instance": "Екземпляр", + "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": "Замок", + "Lock dragging": "Перетягування замка", + "Manage projects": "Керуйте проектами", + "Manage views": "Керувати переглядами", + "Menu header text": "Текст заголовка меню", + "Menu header text color": "Колір тексту заголовка меню", + "Menu width": "Ширина меню", + "Message": "повідомлення", + "Mo": "пн", + "Modify": "Змінити", + "More": "більше", + "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": "Ім'я", + "Name is not unique": "Назва не унікальна", + "Name of copy": "Назва примірника", + "Narrow panel": "Вузька панель", + "Navigation": "Навігація", + "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": "Ні", + "No background": "Без фону", + "Normal": "нормальний", + "OFF": "ВИМКНЕНО", + "ON": "УВІМКНЕНО", + "Objects": "Об'єкти", + "Ok": "Ok", + "On/Off": "Увімкнено вимкнено", + "One parameter": "Один параметр", + "Only for desktop": "Тільки для робочого столу", + "Only for groups": "Тільки для груп", + "Only the admin user can change permissions": "Лише адміністратор може змінювати дозволи", + "Open": "ВІДЧИНЕНО", + "Open all": "Розгорнути все", + "Open it?": "Відкрий це?", + "Open runtime in new window": "Відкрити середовище виконання в новому вікні", + "Open widgeteria": "Відкрити widgeteria", + "Options": "Опції", + "Order": "порядок", + "Orientation": "Орієнтація", + "Palette": "Палітра", + "Paste": "Вставити", + "Percent": "Відсоток", + "Permissions": "Дозволи", + "Pixel 5 - Landscape": "Pixel 5 – пейзаж", + "Pixel 5 - Portrait": "Pixel 5 – Портрет", + "Priority": "Пріоритет", + "Project \"%s\" does not exist": "Проект \"%s\" не існує", + "Project \"%s\" was successfully imported": "Проект \"%s\" успішно імпортовано", + "Project already exists": "Проект вже існує", + "Project name": "Назва проекту", + "Project was updated": "Проект оновлено", + "Project was updated by another browser instance. Do you want to reload it?": "Проект оновлено іншим екземпляром браузера. Ви хочете перезавантажити його?", + "Projects": "Проекти", + "Radial blue": "Радіальний синій", + "Read": "Прочитайте", + "Read = Runtime access": "Читання = доступ під час виконання", + "Read about currentColor in SVG": "Прочитайте про currentColor у SVG", + "Received user command: %s": "Отримано команду користувача: %s", + "Reconnect interval": "Інтервал повторного підключення", + "Redo": "Повторити", + "Reload all browsers if project changed": "Перезавантажте всі браузери, якщо проект змінився", + "Reload all runtimes": "Перезавантажте всі середовища виконання", + "Reload if sleep longer than": "Перезавантажте, якщо спите довше", + "Reload now": "Перезавантажте зараз", + "Reloading": "Перезавантаження", + "Rename": "Перейменувати", + "Rename folder \"%s\"": "Перейменувати папку \"%s\"", + "Rename project \"%s\"": "Перейменувати проект \"%s\"", + "Rename view": "Перейменувати вигляд", + "Rename view \"%s\"": "Перейменувати перегляд \"%s\"", + "Render always": "Рендер завжди", + "Reset all intervals to following value:": "Скинути всі інтервали до наступного значення:", + "Resolution": "роздільна здатність", + "Responsive settings": "Чуйні налаштування", + "Row gap": "Проміжок між рядами", + "Sa": "Sa", + "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": "зберегти", + "Scripts": "Сценарії", + "Search": "Пошук", + "Select": "Виберіть", + "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": "Налашт.", + "Should it be moved to new place?": "Чи варто його переносити на нове місце?", + "Show": "Показати", + "Show all views": "Показати всі перегляди", + "Show app bar": "Показати", + "Show background of button": "Фон кнопки «Показати».", + "Show navigation": "Показати навігацію", + "Show only selected widgets": "Показати лише вибрані віджети", + "Show this attribute by all views": "Показувати цей атрибут усіма видами", + "Show view": "Показати вид", + "Specify filter to see more icons": "Укажіть фільтр, щоб побачити більше значків", + "States Debounce Time (millis)": "Час усунення дребезгу в штатах (мілісекунди)", + "Style": "Стиль", + "Su": "Нд", + "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": "Вкладки", + "Temperature": "Температура", + "Text color": "Колір тексту", + "Text color if selected": "Колір тексту, якщо вибрано", + "Text edit": "Редагування тексту", + "Th": "чт", + "Theme": "Тема", + "This view will be shown only to defined groups": "Це вікно буде показано лише визначеним групам", + "This widget is already used in \"%s\"": "Цей віджет уже використовується в \"%s\"", + "Title": "Назва", + "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": "вт", + "Type": "Тип", + "Undo": "Скасувати", + "Ungroup": "Розгрупувати", + "Uninstall": "Видалити", + "Unknown widget type \"%s\"": "Невідомий тип віджета \"%s\"", + "Unlock": "Розблокувати", + "Unselect": "Скасувати вибір", + "Update": "оновлення", + "Usage of widget %s": "Використання віджета %s", + "Use background": "Використовуйте фон", + "Use field as binding": "Використовувати поле як прив’язку", + "User defined": "Визначений користувачем", + "Value": "Значення", + "Vertical": "Вертикальний", + "View": "Переглянути", + "View not defined": "Перегляд не визначено", + "We": "ми", + "Weekend": "Вихідні", + "Widget": "Віджет", + "Widget CSS": "Віджет CSS", + "Widget JS": "Віджет JS", + "Widget was deleted in widgeteria": "Віджет видалено у widgeteria", + "Widgets": "Віджети", + "Width": "Ширина", + "Width x height (px)": "Ширина х висота (px)", + "Write": "Напишіть", + "Write = Edit mode access": "Запис = доступ до режиму редагування", + "Writer": "Письменник", + "Wrong password": "Неправильний пароль", + "Yes": "Так", + "You can open dialog with following script:": "Ви можете відкрити діалогове вікно за допомогою наступного сценарію:", + "You can provide here the state that controls the activation of this profile": "Тут можна вказати стан, який контролює активацію цього профілю", + "__marketplace": "Віджетерія", + "ace_All": "все", + "ace_CaseSensitive Search": "Пошук з урахуванням регістру", + "ace_RegExp Search": "Пошук RegExp", + "ace_Search In Selection": "Пошук у вибраному", + "ace_Search for": "Шукати", + "ace_Toggle Replace mode": "Перемкнути режим заміни", + "ace_Whole Word Search": "Пошук усього слова", + "alt_false": "Підказка від false", + "alt_true": "Підказка від true", + "anonymize": "анонімізувати", + "apply_to_all": "Для усіх", + "attr_none": "none", + "basic_all_filters": "Додайте всі ліві", + "basic_arrow": "Стрілка", + "basic_borderColor": "Колір рамки", + "basic_borderRadius": "Радіус кордону", + "basic_circle": "Коло", + "basic_custom": "Довільний полігон", + "basic_filter_multiple": "Множинний вибір", + "basic_filter_type_dropdown": "Випадаюче меню", + "basic_filter_type_horizontal_buttons": "Горизонтальні кнопки", + "basic_filter_type_vertical_buttons": "Вертикальні кнопки", + "basic_hexagone": "Шестикутник", + "basic_line": "лінія", + "basic_no_all_option": "Немає опції \"Без фільтра\".", + "basic_no_filter": "Без фільтра", + "basic_no_filter_text": "Мітка «Без фільтра».", + "basic_octagone": "Восьмикутник", + "basic_pentagone": "П'ятикутник", + "basic_pin": "Pin", + "basic_speech2text_continuous": "безперервний", + "basic_speech2text_detected": "Виявлено", + "basic_speech2text_en_us": "англійська", + "basic_speech2text_height": "Висота (px)", + "basic_speech2text_image_active": "Активний", + "basic_speech2text_image_inactive": "Неактивний", + "basic_speech2text_info_allow": "Натисніть кнопку «Дозволити» вище, щоб увімкнути мікрофон.", + "basic_speech2text_info_blocked": "Дозвіл на використання мікрофона заблоковано. Щоб змінити, перейдіть на сторінку chrome://settings/contentExceptions#media-stream", + "basic_speech2text_info_denied": "У дозволі на використання мікрофона відмовлено.", + "basic_speech2text_info_no_microphone": "Мікрофон не знайдено. Переконайтеся, що встановлено мікрофон і що налаштування мікрофона налаштовано правильно.", + "basic_speech2text_info_no_speech": "Мовлення не виявлено. Можливо, вам знадобиться змінити налаштування мікрофона.", + "basic_speech2text_info_speak_now": "Говори зараз.", + "basic_speech2text_info_start": "Натисніть на значок мікрофона та почніть говорити.", + "basic_speech2text_info_upgrade": "Web Speech API не підтримується цим браузером. Оновіть до Chrome версії 25 або новішої.", + "basic_speech2text_key_word_color": "Колір ключового слова", + "basic_speech2text_key_word_color_tooltip": "Колір тексту, якщо ключове слово знайдено", + "basic_speech2text_keywords": "Ключові слова", + "basic_speech2text_no_image": "Немає зображення", + "basic_speech2text_no_results": "Немає результатів", + "basic_speech2text_no_text": "Немає довідкового тексту", + "basic_speech2text_ru_ru": "російський", + "basic_speech2text_sent": "Надісланий", + "basic_speech2text_single": "неодружений", + "basic_speech2text_speech_mode": "Режим мовлення", + "basic_speech2text_start_stop": "старт/зупинка", + "basic_speech2text_started": "розпочато", + "basic_speech2text_text_sent_color": "Текст надіслано кольоровим", + "basic_speech2text_text_sent_color_tooltip": "Колір тексту, коли текст надсилається на обробку", + "basic_speech2text_width": "Ширина (px)", + "basic_square": "Майдан", + "basic_star": "зірка", + "basic_sub_view": "Підвид", + "basic_triangle": "Трикутник", + "block": "блокувати", + "color": "колір", + "color_false": "Колір за фальшивим", + "color_true": "Колір за правдою", + "convert from widgeteria widget": "конвертувати з віджета widgeteria", + "copy": "копія", + "css_project": "Для цього проекту", + "custom_icons": "Спеціальні", + "different": "інший", + "display": "дисплей", + "finish searching": "пошук завершено", + "flex": "flex", + "flexible": "гнучкий", + "folder": "Папка", + "font-family": "сімейство шрифтів", + "font-size": "розмір шрифту", + "font-style": "стиль шрифту", + "font-variant": "шрифт-варіант", + "font-weight": "вага шрифту", + "group": "Група", + "group_attrName": "Ім'я", + "group_attrType": "Тип", + "group_fields": "Атрибути", + "group_help": "Ви можете визначити в атрибутах віджета групи спеціальні назви у форматі \"%yourCustomName%\" і вони відображатимуться в налаштуваннях \"Атрибути\". Після цього ви можете вказати назву та тип настроюваних атрибутів.", + "group_icon_false": "Значок від false", + "group_icon_true": "Значок від true", + "group_size_hint": "Ви можете змінити розмір групи, вибравши його у випадаючому списку віджетів або клацнувши цей текст", + "group_text": "текст", + "help_css_global": "Ці CSS застосовуються до всіх проектів", + "help_css_project": "Ці CSS застосовуються лише до цього проекту", + "hide": "приховати", + "hide code": "приховати код", + "horizontal": "горизонтальний", + "hr": "год", + "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": "Розмір значка в пікселях", + "icon_upload_hint": "Ви можете завантажити власну піктограму розміром до 10 Кбайт як base64. Він буде збережений безпосередньо в проекті. Якщо ви хочете завантажити файл SVG, не забудьте встановити атрибут currentColor.", + "imageHeight_false": "Висота зображення", + "imageHeight_true": "Висота зображення", + "invert_icon_false": "Інвертувати значок", + "invert_icon_true": "Інвертувати значок", + "jqui_Add new value": "Додати нове значення", + "jqui_Are you sure?": "Ти впевнений?", + "jqui_Bulk edit": "Масове редагування", + "jqui_Close": "Закрити", + "jqui_Example": "приклад", + "jqui_Generate states": "Генеруйте стани", + "jqui_Generate steps": "Створення кроків", + "jqui_Maximum value": "Максимальне значення", + "jqui_Minimum value": "Мінімальна вартість", + "jqui_Number settings": "Налаштування номера", + "jqui_Percents": "Відсотки", + "jqui_Replace to": "Замінити", + "jqui_Select file": "Виберіть зображення", + "jqui_Write state": "Написати стан", + "jqui_active_color": "Активний колір", + "jqui_ampm": "Дообіду, після обіду", + "jqui_asDate": "Як дата", + "jqui_asFullDate": "Використання повної аналізованої дати", + "jqui_as_string": "Як рядок", + "jqui_auto": "авто", + "jqui_binary_control": "Двійковий контроль", + "jqui_button_binary_control_note": "Застаріле. Використовуйте віджет «Двійковий контроль». Збережено тільки для сумісності з vis.1", + "jqui_button_color": "Колір кнопки", + "jqui_button_dialog_close": "Кнопка закриття діалогового вікна", + "jqui_button_input_note": "Застаріле. Використовуйте віджет «Введення». Збережено тільки для сумісності з vis.1", + "jqui_button_link": "Перейти до URL", + "jqui_button_link_blank": "Перейти до URL (у новому вікні)", + "jqui_button_link_blank_note": "Застаріле. Використовуйте перший віджет із опцією «Відкрити в новому вікні». Збережено тільки для сумісності з vis.1", + "jqui_button_nav_blank_note": "Застаріле. Використовуйте перший віджет із опцією «Перейти до перегляду». Збережено тільки для сумісності з vis.1", + "jqui_button_text": "Текст кнопки", + "jqui_buttontext_view": "Використовуйте назву перегляду як назву", + "jqui_clearable": "Очищається", + "jqui_color": "колір", + "jqui_container_button_dialog": "Кнопка=>Діалог сторінки", + "jqui_container_dialog": "Діалог контейнера", + "jqui_container_icon_dialog": "Icon=>Діалог сторінки", + "jqui_dialog_name": "Назва діалогу", + "jqui_dialog_set_id_tooltip": "Установити стан відкритим діалоговим вікном", + "jqui_disableFuture": "Вимкнути майбутнє", + "jqui_disablePast": "Вимкнути минуле", + "jqui_displayWeekNumber": "Показати номер тижня", + "jqui_equal_text_length": "Рівна довжина тексту", + "jqui_equal_text_length_tooltip": "Якщо активовано, довжина текстів для true та false буде однаковою, тому значок залишатиметься на тому самому місці у «вимкненому» та «увімкненому» станах.", + "jqui_external_dialog": "Зовнішній діалог", + "jqui_external_dialog_tooltip": "Це діалогове вікно не відображається на сторінці, але його можна відкрити зовнішньою командою \"dialogOpen\" із назвою діалогового вікна або ідентифікатором віджета як параметром.", + "jqui_false": "помилковий", + "jqui_from_oid": "З іншого об'єкта", + "jqui_from_value": "Від статичного значення", + "jqui_generate": "Генерувати", + "jqui_group_value": "Значення", + "jqui_hide_close_button": "Приховати кнопку закриття", + "jqui_href_tooltip": "Ця URL-адреса буде викликана в браузері", + "jqui_html": "HTML", + "jqui_html_dialog": "Діалог HTML", + "jqui_html_external_dialog": "Зовнішній діалог", + "jqui_html_false": "HTML через false", + "jqui_html_tooltip": "HTML можна налаштувати, лише якщо текст і піктограма порожні", + "jqui_html_true": "HTML від true", + "jqui_icon": "значок", + "jqui_icon_active": "Активний значок", + "jqui_icon_dialog": "Діалогове вікно піктограм", + "jqui_icon_http_get": "URL-адреса виклику в серверній частині", + "jqui_icon_increment": "Збільшення за допомогою значка", + "jqui_icon_link": "Перейти до URL-адреси (зі значком)", + "jqui_icon_max": "Піктограма максимуму", + "jqui_icon_state_bool": "Логічна кнопка піктограми", + "jqui_icon_state_push_button": "Нажимна Кнопка", + "jqui_icon_toggle": "Кнопка-перемикач із піктограмою", + "jqui_image": "Зображення", + "jqui_image_active": "Активне зображення", + "jqui_image_height": "Висота зображення", + "jqui_image_max": "Зображення на максимум", + "jqui_increment_decrement": "Приріст/Зменшення", + "jqui_input": "Введення", + "jqui_input_date": "Введення дати", + "jqui_input_time": "Введення часу", + "jqui_input_with_button": "Вхід за допомогою кнопки", + "jqui_invert_icon": "Інвертувати значок", + "jqui_inverted": "Перевернутий", + "jqui_jquery_style": "Стиль jQuery", + "jqui_max": "Максимальне значення", + "jqui_min": "Мінімальна вартість", + "jqui_name": "Назва", + "jqui_nav_view": "Перейти до перегляду", + "jqui_navigation_button": "Кнопка навігації", + "jqui_navigation_icon": "Значок навігації", + "jqui_navigation_password": "Навігація з паролем", + "jqui_not_equal_length": "Не однакова ширина", + "jqui_off": "Вимкнено", + "jqui_oid_working": "Робочий ID", + "jqui_on": "Увімкнено", + "jqui_only_icon": "Тільки значок", + "jqui_open": "Як список", + "jqui_orientation": "Орієнтація", + "jqui_password": "Пароль", + "jqui_password_tooltip": "Користувач повинен ввести пароль, щоб відкрити діалогове вікно, перейти на сторінку або URL", + "jqui_push_mode": "Режим Push", + "jqui_push_mode_tooltip": "При натисканні кнопки буде написано «true», а коли ви відпустите кнопку, буде написано «false».", + "jqui_radio_buttons_on_off": "Перемикачі (увімкнення/вимкнення)", + "jqui_radio_list": "Список радіостанцій зі значеннями", + "jqui_radio_steps": "Перемикач (кроки)", + "jqui_range": "діапазон", + "jqui_read_only": "Лише для читання", + "jqui_repeat_delay": "Повторити затримку", + "jqui_repeat_interval": "Інтервал повторення", + "jqui_select_all_on_focus": "Вибрати все у фокусі", + "jqui_select_all_on_focus_tooltip": "У фокусі буде виділено весь текст, тому його можна швидко видалити або змінити, не натискаючи кнопку Backspace", + "jqui_select_list": "Виберіть зі списку", + "jqui_set_label": "Стилізована", + "jqui_set_timeout": "Написати тайм-аут", + "jqui_single": "неодружений", + "jqui_slider": "повзунок", + "jqui_slider_note": "Застаріле. Використовуйте віджет-повзунок із вертикальною орієнтацією. Збережено тільки для сумісності з vis.1", + "jqui_slider_vertical": "Вертикальний слайдер", + "jqui_state_note": "Застаріле. Використовуйте віджет «Контроль станів» із опцією «збільшення/зменшення». Збережено тільки для сумісності з vis.1", + "jqui_states_control": "Державний контроль", + "jqui_stepMinute": "Крокова хвилина", + "jqui_test": "Перевірочне значення", + "jqui_text": "текст", + "jqui_text_active": "Активний текст", + "jqui_text_max": "Текст на максимум", + "jqui_toggle": "Перемикач", + "jqui_tooltip": "Підказка", + "jqui_true": "правда", + "jqui_type": "Тип", + "jqui_unit": "одиниця", + "jqui_url_group": "Виклик URL за кліком", + "jqui_url_in_background": "URL у серверній частині", + "jqui_url_in_browser": "URL у браузері", + "jqui_url_tooltip": "Ця URL-адреса викликатиметься у фоновому режимі системою ioBroker", + "jqui_value": "Значення", + "jqui_value_label_display": "Етикетка дисплея", + "jqui_variant": "Варіант", + "jqui_view_group": "Перегляд навігації", + "jqui_wideFormat": "Широкий формат", + "jqui_widgetTitle": "Назва", + "jqui_with_enter_button": "З кнопкою введення", + "jqui_write_state_note": "Застаріле. Використовуйте віджет \"Wirte state\" з опцією \"increment/decrement\". Збережено тільки для сумісності з vis.1", + "jqui_write_value": "Напишіть значення", + "letter-spacing": "міжлітерний інтервал", + "line-height": "висота лінії", + "material_icons_baseline": "Заповнений", + "material_icons_knx-uf": "knx-uf", + "material_icons_outline": "Окреслено", + "material_icons_result": "%s відповідних результатів", + "material_icons_round": "Круглий", + "material_icons_sharp": "Гострий", + "material_icons_twotone": "Двоколірний", + "material_icons_upload": "Завантажити", + "multi-views": "Показати в Переглядах", + "never": "ніколи", + "no_reload": "без перезавантажень", + "none": "немає", + "normal": "нормально", + "not defined": "не визначений", + "not-specified": "не визначений", + "optional": "необов'язковий", + "order_help": "Ви можете перетягнути будь-який елемент або клацнути елемент, яким буде замінено вибраний віджет", + "orientation": "Орієнтація", + "profile": "Профіль", + "qui_Bool SVG": "Логічний SVG", + "reload": "перезавантажити", + "search text": "Пошуковий текст", + "set_basic": "базовый", + "signals-count": "Кількість сигналів", + "signals-smallIcon-0": "Маленький значок [0]", + "signals-smallIcon-1": "Маленький значок [1]", + "signals-smallIcon-2": "Маленький значок [3]", + "signals-text-0": "Текст [0]", + "signals-text-1": "Текст [1]", + "signals-text-2": "Текст [2]", + "sub_view_tooltip": "Використовується для спеціальних цілей, як-от навігація Jaeger-design", + "text-shadow": "текст-тінь", + "text_false": "Текст від false", + "text_true": "Текст від правда", + "to version": "до версії", + "value_string": "рядок", + "version": "версія", + "vertical": "вертикальний", + "vis-2-widgets-basic-autoSetDelay": "Затримка для автозапису", + "vis-2-widgets-basic-input_value": "Вхідне значення", + "vis-2-widgets-basic-noStyle": "Ніякого стилю", + "visResizable": "Змінний розмір", + "vis_2_widgets_basic_cannot_recursive": "Не можна використовувати рекурсивні перегляди", + "vis_2_widgets_basic_contains_view": "Перегляд", + "vis_2_widgets_basic_view_in_widget": "Переглянути у віджеті", + "vis_2_widgets_basic_view_not_defined": "Перегляд не визначено", + "vis_2_widgets_swipe_hide_indication_label": "Приховати позначку", + "vis_2_widgets_swipe_threshold_label": "поріг", + "vis_2_widgets_widgets_swipe_label": "Swipe", + "vis_2_widgets_widgets_tabs_color": "Колір", + "vis_2_widgets_widgets_tabs_group_tab": "вкладка", + "vis_2_widgets_widgets_tabs_label": "Вкладки", + "vis_2_widgets_widgets_tabs_show_tabs": "Номер", + "vis_2_widgets_widgets_tabs_tab_icon": "значок", + "vis_2_widgets_widgets_tabs_tab_icon_color": "колір", + "vis_2_widgets_widgets_tabs_tab_icon_size": "Розмір значка", + "vis_2_widgets_widgets_tabs_tab_image": "Зображення", + "vis_2_widgets_widgets_tabs_tab_overflow_x": "Переповнення X", + "vis_2_widgets_widgets_tabs_tab_overflow_y": "Перелив Y", + "vis_2_widgets_widgets_tabs_tab_title": "Назва", + "vis_2_widgets_widgets_tabs_tab_view": "Переглянути", + "vis_2_widgets_widgets_tabs_variant": "Варіант", + "vis_2_widgets_widgets_tabs_variant_centered": "по центру", + "vis_2_widgets_widgets_tabs_variant_default": "За замовчуванням", + "vis_2_widgets_widgets_tabs_variant_full_width": "повна ширина", + "vis_2_widgets_widgets_tabs_vertical": "Вертикальний", + "welcome_message": "Жодного проекту ще немає.", + "word-spacing": "міжсловний інтервал" } \ No newline at end of file diff --git a/packages/iobroker.vis-2/src/src/i18n/zh-cn.json b/packages/iobroker.vis-2/src/src/i18n/zh-cn.json index 4cb20e3e..5d926281 100644 --- a/packages/iobroker.vis-2/src/src/i18n/zh-cn.json +++ b/packages/iobroker.vis-2/src/src/i18n/zh-cn.json @@ -1,753 +1,755 @@ { - "%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": "添加", - "Add folder": "新增文件夹", - "Add new child folder": "添加新的子文件夹", - "Add new child profile": "添加新的子配置文件", - "Add new or update existing widget": "添加新的或更新现有的小部件\n", - "Add new view": "添加新视图", - "Add profile": "添加个人资料", - "Add project": "添加项目", - "Add sub-folder": "添加子文件夹", - "Add to widgeteria": "添加到 widderia", - "Add view": "添加视图", - "Administrator": "行政人员", - "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.": "对齐宽度。按更多时间以获得所需的宽度。", - "Aluminium1": "铝1", - "Aluminium2": "铝2", - "App bar": "应用栏", - "Apply": "申请", - "Apply ALL navigation properties to all views": "将所有导航属性应用于所有视图", - "Apply to all views": "将此属性应用于所有视图", - "Are you sure": "你确定吗", - "Are you sure to delete widgets %s?": "您确定要删除小部件 %s 吗?", - "Attributes": "属性", - "Available for all": "所有用户均可访问的项目", - "Background class": "背景类", - "Background color": "背景颜色", - "Background color if selected": "背景颜色(如果选择)", - "Bar color": "背景颜色", - "Bar icon": "图标", - "Bar image": "图像", - "Bar text": "标题", - "Basic": "基本的", - "Benutzer": "本努策", - "Blue flowers": "蓝色花朵", - "Blue marine": "蓝色海洋", - "Blue marine lines": "蓝色海洋线", - "Blueprint grid": "蓝图网格", - "Bricks": "砖块", - "Bring to front": "带到前面", - "Browse files": "浏览文件", - "Browse objects": "浏览对象", - "Browse the widgeteria": "浏览widgeteria", - "Browser instance ID": "浏览器实例 ID", - "CSS": "CSS", - "CSS Class": "CSS 类", - "CSS Common": "CSS 通用", - "CSS Font & Text": "CSS 字体和文本", - "CSS background (background-...)": "CSS 背景(background-...)", - "Cancel": "取消", - "Cannot use recursive views": "不能使用递归视图", - "Carbon fibre": "碳纤维", - "Carbon fibre1": "碳纤维1", - "Chevron icon color": "显示按钮的颜色", - "Clear": "清除", - "Clear filter": "清除过滤器", - "Click to close": "点击关闭", - "Clone widget": "克隆小部件", - "Close": "关", - "Close all": "全部收缩", - "Close all but current view": "关闭除当前视图之外的所有视图", - "Close editor": "关闭编辑器", - "Collapse all": "全部收缩", - "Colorful": "丰富多彩的", - "Column gap": "柱间隙", - "Column width": "列宽", - "Comment": "评论", - "Convert %s to %s": "将 %s 转换为 %s", - "Copied %s": "已复制 %s", - "Copied to clipboard": "复制到剪贴板", - "Copy": "复制", - "Copy noun": "复制", - "Copy to clipboard": "复制到剪贴板", - "Copy view \"%s\"": "复制视图“%s”", - "Create": "创建", - "Create copy": "创建副本", - "Create instance": "创建实例", - "Create new project": "创建新项目", - "Create or import new \"vis-2\" project": "创建或导入新的“vis-2”项目", - "Current project": "当前的项目", - "Cut": "切", - "Dark reconnect screen": "黑暗的重新连接屏幕", - "Deactivate binding and use field as standard input": "停用绑定并使用字段作为标准输入", - "Default": "默认", - "Default view": "默认视图", - "Default: auto": "默认值:“auto”", - "Delete": "删除", - "Delete actual view": "删除实际视图", - "Delete widgets": "删除小部件", - "Destroy inactive view": "销毁非活动视图", - "Detected new version of vis files. Reloading in 2 seconds...": "检测到新版本的 vis 文件。 2秒后重新加载...", - "Devices": "设备", - "Disabled": "已禁用", - "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”吗?", - "Drag me": "拉我一把", - "Drop the files here ...": "把文件放在这里...", - "Duplicate": "复制", - "Duplicate folder": "复制文件夹", - "Duplicate profile": "复制配置文件", - "Edit": "编辑", - "Edit binding": "编辑绑定", - "Edit folder": "编辑文件夹", - "Edit group": "编辑群组", - "Edit profile": "编辑个人资料", - "Elements": "元素", - "Enabled": "启用", - "Enter": "进入", - "Enter password": "输入密码", - "Expand all": "展开全部", - "Explanation": "解释", - "Export": "出口", - "Export \"%s\"": "出口 \"%s\"", - "Export widgets": "导出小部件", - "External dialog": "外部对话", - "Fields of group will be cleaned": "组的字段将被清理", - "File too large": "文件过大", - "Files": "文件", - "Filter widgets": "过滤器小部件", - "Fm dark background": "Fm 深色背景", - "Fm light background": "Fm 浅色背景", - "For widgets with relative position": "对于具有相对位置的小部件", - "Fr": "Fr", - "Full HD - Landscape": "全高清 - 风景", - "Full HD - Portrait": "全高清 - 人像", - "Full panel": "全面板", - "Galaxy Fold - Landscape": "Galaxy Fold - 风景", - "Galaxy Fold - Portrait": "Galaxy Fold - 人像", - "Global": "对于所有项目", - "Gradient box": "渐变框", - "Gray 0": "灰色 0", - "Gray 1": "灰色 1", - "Grid": "网格", - "Group": "团体", - "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": "高度", - "Hide": "隐藏", - "Hide after selection": "选择后隐藏", - "Hide all views": "隐藏所有视图", - "Hide attributes": "隐藏属性", - "Hide menu": "隐藏菜单", - "Hide palette": "隐藏调色板", - "Hide panel names": "隐藏面板名称", - "Hide selected widgets": "隐藏选定的小部件", - "High": "高的", - "High priority": "高优先级", - "Highest eg. Holiday": "最高例如。假期", - "Horizontal": "水平的", - "Icon": "图标", - "If user not in group": "如果用户不在组中", - "Ignore": "忽略", - "Ignored in edit mode": "在编辑模式下被忽略", - "Image": "图片", - "Import": "进口", - "Import project": "导入项目", - "Import widgets": "导入小部件", - "Initial filter": "初始过滤器", - "Instance": "实例", - "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 screen": "限制屏", - "Lined paper": "横格纸", - "Lock": "锁", - "Lock dragging": "锁定拖动", - "Manage projects": "管理项目", - "Manage views": "管理视图", - "Menu header text": "菜单标题文本", - "Menu header text color": "菜单标题文字颜色", - "Message": "信息", - "Mo": "莫", - "Modify": "调整", - "More": "更多的", - "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": "姓名", - "Name is not unique": "名称不是唯一的", - "Name of copy": "副本名称", - "Narrow panel": "窄面板", - "Navigation": "导航", - "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": "不", - "No background": "无背景", - "Normal": "普通的", - "OFF": "离开", - "ON": "在", - "Objects": "对象", - "Ok": "好的", - "On/Off": "开关", - "One parameter": "一个参数", - "Only for groups": "仅适用于团体", - "Only the admin user can change permissions": "只有管理员用户可以更改权限", - "Open": "打开", - "Open all": "展开全部", - "Open it?": "打开它?", - "Open runtime in new window": "在新窗口中打开运行时", - "Open widgeteria": "打开widderia", - "Options": "选项", - "Order": "命令", - "Orientation": "方向", - "Palette": "调色板", - "Paste": "粘贴", - "Percent": "百分", - "Permissions": "权限", - "Pixel 5 - Landscape": "像素 5 - 横向", - "Pixel 5 - Portrait": "像素 5 - 纵向", - "Priority": "优先事项", - "Project \"%s\" does not exist": "项目“%s”不存在", - "Project \"%s\" was successfully imported": "项目“%s”已成功导入", - "Project already exists": "项目已经存在", - "Project name": "项目名", - "Project was updated": "项目已更新", - "Project was updated by another browser instance. Do you want to reload it?": "项目已由另一个浏览器实例更新。你想重新加载它吗?", - "Projects": "项目", - "Radial blue": "径向蓝色", - "Read": "读", - "Read = Runtime access": "读取 = 运行时访问", - "Read about currentColor in SVG": "了解 SVG 中的 currentColor", - "Received user command: %s": "收到用户命令:%s", - "Reconnect interval": "重新连接间隔", - "Redo": "重做", - "Reload all browsers if project changed": "如果项目更改,请重新加载所有浏览器", - "Reload all runtimes": "重新加载所有运行时", - "Reload if sleep longer than": "如果睡眠时间超过", - "Reload now": "立即重新加载", - "Reloading": "重装", - "Rename": "改名", - "Rename folder \"%s\"": "重命名文件夹“%s”", - "Rename project \"%s\"": "重命名项目“%s”", - "Rename view": "重命名视图", - "Rename view \"%s\"": "重命名视图“%s”", - "Render always": "始终渲染", - "Reset all intervals to following value:": "将所有间隔重置为以下值:", - "Resolution": "解析度", - "Responsive settings": "响应式设置", - "Row gap": "行间隙", - "Sa": "萨", - "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": "节省", - "Scripts": "脚本", - "Search": "搜索", - "Select": "选择", - "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": "设置", - "Should it be moved to new place?": "是否应该搬到新地方?", - "Show": "节目", - "Show all views": "显示所有视图", - "Show app bar": "展示", - "Show background of button": "显示按钮的背景", - "Show navigation": "显示导航", - "Show only selected widgets": "仅显示选定的小部件", - "Show view": "显示视图", - "Specify filter to see more icons": "指定过滤器以查看更多图标", - "States Debounce Time (millis)": "状态去抖时间(毫秒)", - "Style": "风格", - "Su": "苏", - "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": "选项卡", - "Temperature": "温度", - "Text color": "文字颜色", - "Text color if selected": "文本颜色(如果选择)", - "Text edit": "文本编辑", - "Th": "Th", - "Theme": "主题", - "This view will be shown only to defined groups": "此视图将仅显示给定义的组", - "This widget is already used in \"%s\"": "该小部件已在“%s”中使用", - "Title": "标题", - "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": "涂", - "Type": "类型", - "Undo": "撤消", - "Ungroup": "解组", - "Uninstall": "卸载", - "Unknown widget type \"%s\"": "未知的小部件类型“%s”", - "Unlock": "开锁", - "Update": "更新", - "Usage of widget %s": "小部件 %s 的使用", - "Use background": "使用背景", - "Use field as binding": "使用字段作为绑定", - "User defined": "用户自定义", - "Value": "价值", - "Vertical": "垂直的", - "View": "看法", - "View not defined": "查看未定义", - "We": "Mi", - "Weekend": "周末", - "Widget": "小部件", - "Widget CSS": "小部件 CSS", - "Widget JS": "小部件JS", - "Widget was deleted in widgeteria": "widget 已在 widgeteria 中删除", - "Widgets": "小部件", - "Width": "宽度", - "Width x height (px)": "宽度 x 高度(像素)", - "Write": "写", - "Write = Edit mode access": "写入 = 编辑模式访问", - "Writer": "作家", - "Wrong password": "密码错误", - "Yes": "是的", - "You can open dialog with following script:": "您可以使用以下脚本打开对话框:", - "You can provide here the state that controls the activation of this profile": "您可以在此处提供控制此配置文件启用的状态", - "__marketplace": "小鸡科", - "ace_All": "全部", - "ace_CaseSensitive Search": "区分大小写搜索", - "ace_RegExp Search": "正则表达式搜索", - "ace_Search In Selection": "在选择中搜索", - "ace_Search for": "搜索", - "ace_Toggle Replace mode": "切换替换模式", - "ace_Whole Word Search": "全词搜索", - "alt_false": "工具提示为 false", - "alt_true": "工具提示为 true", - "anonymize": "匿名化", - "apply_to_all": "对所有人", - "attr_none": "none", - "basic_arrow": "箭", - "basic_borderColor": "边框颜色", - "basic_borderRadius": "边界半径", - "basic_circle": "圆圈", - "basic_custom": "自定义多边形", - "basic_hexagone": "六边形", - "basic_line": "线", - "basic_octagone": "八角形", - "basic_pentagone": "五角大楼", - "basic_pin": "别针", - "basic_speech2text_continuous": "连续的", - "basic_speech2text_detected": "检测到", - "basic_speech2text_en_us": "英语", - "basic_speech2text_height": "高度(像素)", - "basic_speech2text_image_active": "积极的", - "basic_speech2text_image_inactive": "不活跃", - "basic_speech2text_info_allow": "单击上面的“允许”按钮以启用您的麦克风。", - "basic_speech2text_info_blocked": "使用麦克风的权限被阻止。要更改,请转到 chrome://settings/contentExceptions#media-stream", - "basic_speech2text_info_denied": "使用麦克风的权限被拒绝。", - "basic_speech2text_info_no_microphone": "没有找到麦克风。确保已安装麦克风并且麦克风设置配置正确。", - "basic_speech2text_info_no_speech": "未检测到任何语音。您可能需要调整麦克风设置。", - "basic_speech2text_info_speak_now": "现在讲。", - "basic_speech2text_info_start": "单击麦克风图标并开始讲话。", - "basic_speech2text_info_upgrade": "此浏览器不支持 Web Speech API。升级到 Chrome 版本 25 或更高版本。", - "basic_speech2text_key_word_color": "关键词颜色", - "basic_speech2text_key_word_color_tooltip": "文本颜色(如果找到关键字)", - "basic_speech2text_keywords": "关键词", - "basic_speech2text_no_image": "没有图像", - "basic_speech2text_no_results": "没有结果", - "basic_speech2text_no_text": "无帮助文字", - "basic_speech2text_ru_ru": "俄语", - "basic_speech2text_sent": "发送", - "basic_speech2text_single": "单身的", - "basic_speech2text_speech_mode": "语音模式", - "basic_speech2text_start_stop": "开始/停止", - "basic_speech2text_started": "开始", - "basic_speech2text_text_sent_color": "发送的文字颜色", - "basic_speech2text_text_sent_color_tooltip": "文本颜色,当文本发送到处理它时", - "basic_speech2text_width": "宽度(像素)", - "basic_square": "正方形", - "basic_star": "星星", - "basic_triangle": "三角形", - "block": "堵塞", - "color": "颜色", - "color_false": "按假颜色", - "color_true": "按真实颜色", - "convert from widgeteria widget": "从 widderia 小部件转换", - "copy": "副本", - "css_project": "对于这个项目", - "custom_icons": "特别的", - "different": "不同的", - "display": "展示", - "finish searching": "搜索完成", - "flex": "柔性", - "flexible": "灵活的", - "folder": "文件夹", - "font-family": "字体系列", - "font-size": "字体大小", - "font-style": "字体样式", - "font-variant": "字体变体", - "font-weight": "字体粗细", - "group": "团体", - "group_attrName": "姓名", - "group_attrType": "类型", - "group_fields": "属性", - "group_help": "您可以在组的小部件的属性中定义格式为“%yourCustomName%”的特殊名称,它将出现在“属性”设置中。之后,您可以提供自定义属性的名称和类型。", - "group_icon_false": "图标由 false", - "group_icon_true": "图标由 true", - "group_size_hint": "您可以通过在下拉小部件选择器中选择它或单击此文本来更改组大小", - "group_text": "文本", - "help_css_global": "这些 CSS 适用于所有项目", - "help_css_project": "这些 CSS 仅适用于该项目", - "hide": "隐藏", - "hide code": "隐藏代码", - "horizontal": "水平的", - "hr": "小时", - "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": "图标大小(以像素为单位)", - "icon_upload_hint": "您可以上传自己的图标(最多 10k 字节)作为 base64。它将直接保存在项目中。如果您想上传 SVG 文件,请不要忘记设置 currentColor 属性。", - "imageHeight_false": "图像高度", - "imageHeight_true": "图像高度", - "invert_icon_false": "反转图标", - "invert_icon_true": "反转图标", - "jqui_Add new value": "增加新价值", - "jqui_Are you sure?": "你确定吗?", - "jqui_Bulk edit": "批量编辑", - "jqui_Close": "关闭", - "jqui_Example": "例子", - "jqui_Generate states": "生成状态", - "jqui_Generate steps": "生成步骤", - "jqui_Maximum value": "最大值", - "jqui_Minimum value": "最小值", - "jqui_Number settings": "号码设置", - "jqui_Percents": "百分比", - "jqui_Replace to": "用。。。来代替", - "jqui_Select file": "选择图片", - "jqui_active_color": "活性颜色", - "jqui_ampm": "上午下午", - "jqui_asDate": "截至日期", - "jqui_asFullDate": "使用完整的可解析日期", - "jqui_as_string": "作为字符串", - "jqui_auto": "汽车", - "jqui_binary_control": "二元控制", - "jqui_button_binary_control_note": "已弃用。使用“二进制控制”小部件。保留只是为了与 vis.1 兼容", - "jqui_button_color": "按钮颜色", - "jqui_button_dialog_close": "对话框关闭按钮", - "jqui_button_input_note": "已弃用。使用“输入”小部件。保留只是为了与 vis.1 兼容", - "jqui_button_link": "跳转到网址", - "jqui_button_link_blank": "跳转到网址(在新窗口中)", - "jqui_button_link_blank_note": "已弃用。使用带有“在新窗口中打开”选项的第一个小部件。保留只是为了与 vis.1 兼容", - "jqui_button_nav_blank_note": "已弃用。使用带有“转到查看”选项的第一个小部件。保留只是为了与 vis.1 兼容", - "jqui_button_text": "按钮文字", - "jqui_buttontext_view": "使用视图名称作为标题", - "jqui_clearable": "可清除", - "jqui_color": "颜色", - "jqui_container_button_dialog": "按钮=>页面对话框", - "jqui_container_dialog": "容器对话框", - "jqui_container_icon_dialog": "图标=>页面对话框", - "jqui_dialog_name": "对话框名称", - "jqui_dialog_set_id_tooltip": "通过打开对话框设置状态", - "jqui_disableFuture": "禁用未来", - "jqui_disablePast": "禁用过去", - "jqui_displayWeekNumber": "显示周数", - "jqui_equal_text_length": "相等的文本长度", - "jqui_equal_text_length_tooltip": "如果激活,则 true 和 false 的文本长度将相等,因此图标在“关闭”和“打开”状态下将保持在同一位置。", - "jqui_external_dialog": "外部对话", - "jqui_external_dialog_tooltip": "该对话框在页面上不可见,但可以通过外部命令“dialogOpen”以对话框名称或小部件 ID 作为参数打开它。", - "jqui_false": "错误的", - "jqui_from_oid": "来自其他对象", - "jqui_from_value": "从静态值", - "jqui_generate": "产生", - "jqui_group_value": "价值", - "jqui_hide_close_button": "隐藏关闭按钮", - "jqui_href_tooltip": "该 URL 将在浏览器中调用", - "jqui_html": "超文本标记语言", - "jqui_html_dialog": "HTML对话框", - "jqui_html_external_dialog": "外部对话", - "jqui_html_false": "HTML 为 false", - "jqui_html_tooltip": "HTML 仅在文本和图标为空时才可配置", - "jqui_html_true": "HTML 为 true", - "jqui_icon": "图标", - "jqui_icon_active": "活动图标", - "jqui_icon_dialog": "图标对话框", - "jqui_icon_http_get": "后台调用地址", - "jqui_icon_increment": "用图标递增", - "jqui_icon_link": "跳转到 URL(带图标)", - "jqui_icon_max": "最大图标", - "jqui_icon_state_bool": "布尔图标按钮", - "jqui_icon_state_push_button": "按钮", - "jqui_icon_toggle": "带图标的切换按钮", - "jqui_image": "图像", - "jqui_image_active": "活动图像", - "jqui_image_height": "图像高度", - "jqui_image_max": "最大图像", - "jqui_increment_decrement": "递增/递减", - "jqui_input": "输入", - "jqui_input_date": "输入日期", - "jqui_input_time": "输入时间", - "jqui_input_with_button": "用按钮输入", - "jqui_invert_icon": "反转图标", - "jqui_inverted": "倒", - "jqui_jquery_style": "jQuery 风格", - "jqui_max": "最大值", - "jqui_min": "最小值", - "jqui_name": "标题", - "jqui_nav_view": "前往查看", - "jqui_navigation_button": "导航按钮", - "jqui_navigation_icon": "导航图标", - "jqui_navigation_password": "使用密码导航", - "jqui_not_equal_length": "宽度不等", - "jqui_off": "离开", - "jqui_oid_working": "工作身份证", - "jqui_on": "启用", - "jqui_only_icon": "仅图标", - "jqui_open": "作为列表", - "jqui_orientation": "方向", - "jqui_password": "密码", - "jqui_password_tooltip": "用户必须输入密码才能打开对话框、转到页面或 URL", - "jqui_push_mode": "推送模式", - "jqui_push_mode_tooltip": "按下按钮时,将写入“true”,松开按钮时,将写入“false”。", - "jqui_radio_buttons_on_off": "单选按钮(开/关)", - "jqui_radio_list": "包含值的单选列表", - "jqui_radio_steps": "单选按钮(步骤)", - "jqui_range": "范围", - "jqui_read_only": "只读", - "jqui_repeat_delay": "重复延迟", - "jqui_repeat_interval": "重复间隔", - "jqui_select_all_on_focus": "选择所有焦点", - "jqui_select_all_on_focus_tooltip": "焦点上所有文本都将被选择,因此可以快速删除或更改文本,而无需按退格按钮", - "jqui_select_list": "从列表中选择", - "jqui_set_label": "风格化", - "jqui_set_timeout": "写入超时", - "jqui_single": "单身的", - "jqui_slider": "滑块", - "jqui_slider_note": "已弃用。使用方向设置为垂直的滑块小部件。保留只是为了与 vis.1 兼容", - "jqui_slider_vertical": "垂直滑块", - "jqui_state_note": "已弃用。使用带有“增量/减量”选项的“状态控制”小部件。保留只是为了与 vis.1 兼容", - "jqui_states_control": "国家控制", - "jqui_stepMinute": "步数分钟", - "jqui_test": "测试值", - "jqui_text": "文本", - "jqui_text_active": "活动文本", - "jqui_text_max": "最大文本", - "jqui_toggle": "切换", - "jqui_tooltip": "工具提示", - "jqui_true": "真的", - "jqui_type": "类型", - "jqui_unit": "单元", - "jqui_url_group": "点击调用URL", - "jqui_url_in_background": "后端网址", - "jqui_url_in_browser": "浏览器中的网址", - "jqui_url_tooltip": "ioBroker 引擎将在后台调用此 URL", - "jqui_value": "价值", - "jqui_value_label_display": "显示标签", - "jqui_variant": "变体", - "jqui_view_group": "导航视图", - "jqui_wideFormat": "宽幅", - "jqui_widgetTitle": "标题", - "jqui_with_enter_button": "带输入按钮", - "jqui_write_state_note": "已弃用。使用带有“增量/减量”选项的“Wirte state”小部件。保留只是为了与 vis.1 兼容", - "jqui_write_value": "写入值", - "letter-spacing": "字母间距", - "line-height": "线高", - "material_icons_baseline": "填充", - "material_icons_knx-uf": "knx-uf", - "material_icons_outline": "概述", - "material_icons_result": "%s 匹配结果", - "material_icons_round": "圆形的", - "material_icons_sharp": "锋利的", - "material_icons_twotone": "双色", - "material_icons_upload": "上传", - "multi-views": "在视图中显示", - "never": "绝不", - "no_reload": "没有重装", - "none": "没有任何", - "normal": "普通的", - "not defined": "没有定义的", - "not-specified": "没有定义的", - "optional": "可选的", - "order_help": "您可以拖放任何项目或单击将与所选小部件交换的项目", - "orientation": "方向", - "profile": "轮廓", - "qui_Bool SVG": "布尔SVG", - "reload": "重新加载", - "search text": "搜索文字", - "set_basic": "基本的", - "signals-count": "信号数量", - "signals-smallIcon-0": "小图标 [0]", - "signals-smallIcon-1": "小图标 [1]", - "signals-smallIcon-2": "小图标 [3]", - "signals-text-0": "文字 [0]", - "signals-text-1": "文本[1]", - "signals-text-2": "文字[2]", - "text-shadow": "文字阴影", - "text_false": "文字由假", - "text_true": "文字真实", - "to version": "版本", - "value_string": "细绳", - "version": "版本", - "vertical": "垂直的", - "visResizable": "可调整大小", - "vis_2_widgets_basic_cannot_recursive": "不能使用递归视图", - "vis_2_widgets_basic_contains_view": "使用视图", - "vis_2_widgets_basic_view_in_widget": "在小部件中查看", - "vis_2_widgets_basic_view_not_defined": "查看未定义", - "vis_2_widgets_widgets_tabs_color": "颜色", - "vis_2_widgets_widgets_tabs_group_tab": "标签", - "vis_2_widgets_widgets_tabs_label": "选项卡", - "vis_2_widgets_widgets_tabs_show_tabs": "数字", - "vis_2_widgets_widgets_tabs_tab_icon": "图标", - "vis_2_widgets_widgets_tabs_tab_icon_color": "颜色", - "vis_2_widgets_widgets_tabs_tab_icon_size": "图标大小", - "vis_2_widgets_widgets_tabs_tab_image": "图像", - "vis_2_widgets_widgets_tabs_tab_overflow_x": "溢出X", - "vis_2_widgets_widgets_tabs_tab_overflow_y": "溢出Y", - "vis_2_widgets_widgets_tabs_tab_title": "标题", - "vis_2_widgets_widgets_tabs_tab_view": "看法", - "vis_2_widgets_widgets_tabs_variant": "变体", - "vis_2_widgets_widgets_tabs_variant_centered": "居中", - "vis_2_widgets_widgets_tabs_variant_default": "默认", - "vis_2_widgets_widgets_tabs_variant_full_width": "全屏宽度", - "vis_2_widgets_widgets_tabs_vertical": "垂直的", - "welcome_message": "目前还没有一个项目存在。", - "word-spacing": "字间距", - "basic_sub_view": "子视图", - "sub_view_tooltip": "它用于特殊目的,例如 jaeger-design 导航", - "basic_no_filter_text": "“无过滤器”标签", - "basic_no_all_option": "没有“无过滤器”选项", - "basic_filter_multiple": "多项选择", - "basic_filter_type_dropdown": "下拉式菜单", - "basic_filter_type_horizontal_buttons": "水平按钮", - "basic_filter_type_vertical_buttons": "垂直按钮", - "basic_no_filter": "没有过滤器", - "basic_all_filters": "添加所有剩余的", - "Only for desktop": "仅适用于桌面", - "Include widget?": "包括小部件吗?", - "Do you want to include \"%s\" widget into \"%s\"?": "您想将“%s”小部件包含到“%s”中吗?", - "Unselect": "取消选择", - "All": "全部", - "Load project file...": "正在加载项目文件...", - "Load widgets...": "正在加载小部件...", - "Loading objects...": "正在加载对象...", - "Following views will be changed": "以下视图将被更改", - "Show this attribute by all views": "通过所有视图显示此属性", - "Menu width": "菜单宽度", - "Do not ask again": "不要再问了", - "vis-2-widgets-basic-input_value": "输入值", - "vis-2-widgets-basic-autoSetDelay": "自动写入延迟", - "vis-2-widgets-basic-noStyle": "没有风格", - "Clone": "克隆", - "jqui_Write state": "写状态", - "vis_2_widgets_widgets_swipe_label": "Swipe", - "vis_2_widgets_swipe_hide_indication_label": "隐藏指示", - "vis_2_widgets_swipe_threshold_label": "临界点" + "%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": "添加", + "Add folder": "新增文件夹", + "Add new child folder": "添加新的子文件夹", + "Add new child profile": "添加新的子配置文件", + "Add new or update existing widget": "添加新的或更新现有的小部件\n", + "Add new view": "添加新视图", + "Add profile": "添加个人资料", + "Add project": "添加项目", + "Add sub-folder": "添加子文件夹", + "Add to widgeteria": "添加到 widderia", + "Add view": "添加视图", + "Administrator": "行政人员", + "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": "全部", + "Aluminium1": "铝1", + "Aluminium2": "铝2", + "App bar": "应用栏", + "Apply": "申请", + "Apply ALL navigation properties to all views": "将所有导航属性应用于所有视图", + "Apply to all views": "将此属性应用于所有视图", + "Are you sure": "你确定吗", + "Are you sure to delete widgets %s?": "您确定要删除小部件 %s 吗?", + "Attributes": "属性", + "Available for all": "所有用户均可访问的项目", + "Background class": "背景类", + "Background color": "背景颜色", + "Background color if selected": "背景颜色(如果选择)", + "Bar color": "背景颜色", + "Bar icon": "图标", + "Bar image": "图像", + "Bar text": "标题", + "Basic": "基本的", + "Benutzer": "本努策", + "Blue flowers": "蓝色花朵", + "Blue marine": "蓝色海洋", + "Blue marine lines": "蓝色海洋线", + "Blueprint grid": "蓝图网格", + "Bricks": "砖块", + "Bring to front": "带到前面", + "Browse files": "浏览文件", + "Browse objects": "浏览对象", + "Browse the widgeteria": "浏览widgeteria", + "Browser instance ID": "浏览器实例 ID", + "CSS": "CSS", + "CSS Class": "CSS 类", + "CSS Common": "CSS 通用", + "CSS Font & Text": "CSS 字体和文本", + "CSS background (background-...)": "CSS 背景(background-...)", + "Cancel": "取消", + "Cannot use recursive views": "不能使用递归视图", + "Carbon fibre": "碳纤维", + "Carbon fibre1": "碳纤维1", + "Chevron icon color": "显示按钮的颜色", + "Clear": "清除", + "Clear filter": "清除过滤器", + "Click to close": "点击关闭", + "Clone": "克隆", + "Clone widget": "克隆小部件", + "Close": "关", + "Close all": "全部收缩", + "Close all but current view": "关闭除当前视图之外的所有视图", + "Close editor": "关闭编辑器", + "Collapse all": "全部收缩", + "Colorful": "丰富多彩的", + "Column gap": "柱间隙", + "Column width": "列宽", + "Comment": "评论", + "Convert %s to %s": "将 %s 转换为 %s", + "Copied %s": "已复制 %s", + "Copied to clipboard": "复制到剪贴板", + "Copy": "复制", + "Copy noun": "复制", + "Copy to clipboard": "复制到剪贴板", + "Copy view \"%s\"": "复制视图“%s”", + "Create": "创建", + "Create copy": "创建副本", + "Create instance": "创建实例", + "Create new project": "创建新项目", + "Create or import new \"vis-2\" project": "创建或导入新的“vis-2”项目", + "Current project": "当前的项目", + "Cut": "切", + "Dark reconnect screen": "黑暗的重新连接屏幕", + "Deactivate binding and use field as standard input": "停用绑定并使用字段作为标准输入", + "Default": "默认", + "Default view": "默认视图", + "Default: auto": "默认值:“auto”", + "Delete": "删除", + "Delete actual view": "删除实际视图", + "Delete widgets": "删除小部件", + "Destroy inactive view": "销毁非活动视图", + "Detected new version of vis files. Reloading in 2 seconds...": "检测到新版本的 vis 文件。 2秒后重新加载...", + "Devices": "设备", + "Disabled": "已禁用", + "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": "复制", + "Duplicate folder": "复制文件夹", + "Duplicate profile": "复制配置文件", + "Edit": "编辑", + "Edit binding": "编辑绑定", + "Edit folder": "编辑文件夹", + "Edit group": "编辑群组", + "Edit profile": "编辑个人资料", + "Elements": "元素", + "Enabled": "启用", + "Enter": "进入", + "Enter password": "输入密码", + "Enter the browser instances divided by comma": "输入浏览器实例,以逗号分隔", + "Expand all": "展开全部", + "Explanation": "解释", + "Export": "出口", + "Export \"%s\"": "出口 \"%s\"", + "Export widgets": "导出小部件", + "External dialog": "外部对话", + "Fields of group will be cleaned": "组的字段将被清理", + "File too large": "文件过大", + "Files": "文件", + "Filter widgets": "过滤器小部件", + "Fm dark background": "Fm 深色背景", + "Fm light background": "Fm 浅色背景", + "Following views will be changed": "以下视图将被更改", + "For widgets with relative position": "对于具有相对位置的小部件", + "Fr": "Fr", + "Full HD - Landscape": "全高清 - 风景", + "Full HD - Portrait": "全高清 - 人像", + "Full panel": "全面板", + "Galaxy Fold - Landscape": "Galaxy Fold - 风景", + "Galaxy Fold - Portrait": "Galaxy Fold - 人像", + "Global": "对于所有项目", + "Gradient box": "渐变框", + "Gray 0": "灰色 0", + "Gray 1": "灰色 1", + "Grid": "网格", + "Group": "团体", + "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": "高度", + "Hide": "隐藏", + "Hide after selection": "选择后隐藏", + "Hide all views": "隐藏所有视图", + "Hide attributes": "隐藏属性", + "Hide menu": "隐藏菜单", + "Hide palette": "隐藏调色板", + "Hide panel names": "隐藏面板名称", + "Hide selected widgets": "隐藏选定的小部件", + "High": "高的", + "High priority": "高优先级", + "Highest eg. Holiday": "最高例如。假期", + "Horizontal": "水平的", + "Icon": "图标", + "If user not in group": "如果用户不在组中", + "Ignore": "忽略", + "Ignored in edit mode": "在编辑模式下被忽略", + "Image": "图片", + "Import": "进口", + "Import project": "导入项目", + "Import widgets": "导入小部件", + "Include widget?": "包括小部件吗?", + "Initial filter": "初始过滤器", + "Instance": "实例", + "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": "锁", + "Lock dragging": "锁定拖动", + "Manage projects": "管理项目", + "Manage views": "管理视图", + "Menu header text": "菜单标题文本", + "Menu header text color": "菜单标题文字颜色", + "Menu width": "菜单宽度", + "Message": "信息", + "Mo": "莫", + "Modify": "调整", + "More": "更多的", + "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": "姓名", + "Name is not unique": "名称不是唯一的", + "Name of copy": "副本名称", + "Narrow panel": "窄面板", + "Navigation": "导航", + "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": "不", + "No background": "无背景", + "Normal": "普通的", + "OFF": "离开", + "ON": "在", + "Objects": "对象", + "Ok": "好的", + "On/Off": "开关", + "One parameter": "一个参数", + "Only for desktop": "仅适用于桌面", + "Only for groups": "仅适用于团体", + "Only the admin user can change permissions": "只有管理员用户可以更改权限", + "Open": "打开", + "Open all": "展开全部", + "Open it?": "打开它?", + "Open runtime in new window": "在新窗口中打开运行时", + "Open widgeteria": "打开widderia", + "Options": "选项", + "Order": "命令", + "Orientation": "方向", + "Palette": "调色板", + "Paste": "粘贴", + "Percent": "百分", + "Permissions": "权限", + "Pixel 5 - Landscape": "像素 5 - 横向", + "Pixel 5 - Portrait": "像素 5 - 纵向", + "Priority": "优先事项", + "Project \"%s\" does not exist": "项目“%s”不存在", + "Project \"%s\" was successfully imported": "项目“%s”已成功导入", + "Project already exists": "项目已经存在", + "Project name": "项目名", + "Project was updated": "项目已更新", + "Project was updated by another browser instance. Do you want to reload it?": "项目已由另一个浏览器实例更新。你想重新加载它吗?", + "Projects": "项目", + "Radial blue": "径向蓝色", + "Read": "读", + "Read = Runtime access": "读取 = 运行时访问", + "Read about currentColor in SVG": "了解 SVG 中的 currentColor", + "Received user command: %s": "收到用户命令:%s", + "Reconnect interval": "重新连接间隔", + "Redo": "重做", + "Reload all browsers if project changed": "如果项目更改,请重新加载所有浏览器", + "Reload all runtimes": "重新加载所有运行时", + "Reload if sleep longer than": "如果睡眠时间超过", + "Reload now": "立即重新加载", + "Reloading": "重装", + "Rename": "改名", + "Rename folder \"%s\"": "重命名文件夹“%s”", + "Rename project \"%s\"": "重命名项目“%s”", + "Rename view": "重命名视图", + "Rename view \"%s\"": "重命名视图“%s”", + "Render always": "始终渲染", + "Reset all intervals to following value:": "将所有间隔重置为以下值:", + "Resolution": "解析度", + "Responsive settings": "响应式设置", + "Row gap": "行间隙", + "Sa": "萨", + "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": "节省", + "Scripts": "脚本", + "Search": "搜索", + "Select": "选择", + "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": "设置", + "Should it be moved to new place?": "是否应该搬到新地方?", + "Show": "节目", + "Show all views": "显示所有视图", + "Show app bar": "展示", + "Show background of button": "显示按钮的背景", + "Show navigation": "显示导航", + "Show only selected widgets": "仅显示选定的小部件", + "Show this attribute by all views": "通过所有视图显示此属性", + "Show view": "显示视图", + "Specify filter to see more icons": "指定过滤器以查看更多图标", + "States Debounce Time (millis)": "状态去抖时间(毫秒)", + "Style": "风格", + "Su": "苏", + "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": "选项卡", + "Temperature": "温度", + "Text color": "文字颜色", + "Text color if selected": "文本颜色(如果选择)", + "Text edit": "文本编辑", + "Th": "Th", + "Theme": "主题", + "This view will be shown only to defined groups": "此视图将仅显示给定义的组", + "This widget is already used in \"%s\"": "该小部件已在“%s”中使用", + "Title": "标题", + "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": "涂", + "Type": "类型", + "Undo": "撤消", + "Ungroup": "解组", + "Uninstall": "卸载", + "Unknown widget type \"%s\"": "未知的小部件类型“%s”", + "Unlock": "开锁", + "Unselect": "取消选择", + "Update": "更新", + "Usage of widget %s": "小部件 %s 的使用", + "Use background": "使用背景", + "Use field as binding": "使用字段作为绑定", + "User defined": "用户自定义", + "Value": "价值", + "Vertical": "垂直的", + "View": "看法", + "View not defined": "查看未定义", + "We": "Mi", + "Weekend": "周末", + "Widget": "小部件", + "Widget CSS": "小部件 CSS", + "Widget JS": "小部件JS", + "Widget was deleted in widgeteria": "widget 已在 widgeteria 中删除", + "Widgets": "小部件", + "Width": "宽度", + "Width x height (px)": "宽度 x 高度(像素)", + "Write": "写", + "Write = Edit mode access": "写入 = 编辑模式访问", + "Writer": "作家", + "Wrong password": "密码错误", + "Yes": "是的", + "You can open dialog with following script:": "您可以使用以下脚本打开对话框:", + "You can provide here the state that controls the activation of this profile": "您可以在此处提供控制此配置文件启用的状态", + "__marketplace": "小鸡科", + "ace_All": "全部", + "ace_CaseSensitive Search": "区分大小写搜索", + "ace_RegExp Search": "正则表达式搜索", + "ace_Search In Selection": "在选择中搜索", + "ace_Search for": "搜索", + "ace_Toggle Replace mode": "切换替换模式", + "ace_Whole Word Search": "全词搜索", + "alt_false": "工具提示为 false", + "alt_true": "工具提示为 true", + "anonymize": "匿名化", + "apply_to_all": "对所有人", + "attr_none": "none", + "basic_all_filters": "添加所有剩余的", + "basic_arrow": "箭", + "basic_borderColor": "边框颜色", + "basic_borderRadius": "边界半径", + "basic_circle": "圆圈", + "basic_custom": "自定义多边形", + "basic_filter_multiple": "多项选择", + "basic_filter_type_dropdown": "下拉式菜单", + "basic_filter_type_horizontal_buttons": "水平按钮", + "basic_filter_type_vertical_buttons": "垂直按钮", + "basic_hexagone": "六边形", + "basic_line": "线", + "basic_no_all_option": "没有“无过滤器”选项", + "basic_no_filter": "没有过滤器", + "basic_no_filter_text": "“无过滤器”标签", + "basic_octagone": "八角形", + "basic_pentagone": "五角大楼", + "basic_pin": "别针", + "basic_speech2text_continuous": "连续的", + "basic_speech2text_detected": "检测到", + "basic_speech2text_en_us": "英语", + "basic_speech2text_height": "高度(像素)", + "basic_speech2text_image_active": "积极的", + "basic_speech2text_image_inactive": "不活跃", + "basic_speech2text_info_allow": "单击上面的“允许”按钮以启用您的麦克风。", + "basic_speech2text_info_blocked": "使用麦克风的权限被阻止。要更改,请转到 chrome://settings/contentExceptions#media-stream", + "basic_speech2text_info_denied": "使用麦克风的权限被拒绝。", + "basic_speech2text_info_no_microphone": "没有找到麦克风。确保已安装麦克风并且麦克风设置配置正确。", + "basic_speech2text_info_no_speech": "未检测到任何语音。您可能需要调整麦克风设置。", + "basic_speech2text_info_speak_now": "现在讲。", + "basic_speech2text_info_start": "单击麦克风图标并开始讲话。", + "basic_speech2text_info_upgrade": "此浏览器不支持 Web Speech API。升级到 Chrome 版本 25 或更高版本。", + "basic_speech2text_key_word_color": "关键词颜色", + "basic_speech2text_key_word_color_tooltip": "文本颜色(如果找到关键字)", + "basic_speech2text_keywords": "关键词", + "basic_speech2text_no_image": "没有图像", + "basic_speech2text_no_results": "没有结果", + "basic_speech2text_no_text": "无帮助文字", + "basic_speech2text_ru_ru": "俄语", + "basic_speech2text_sent": "发送", + "basic_speech2text_single": "单身的", + "basic_speech2text_speech_mode": "语音模式", + "basic_speech2text_start_stop": "开始/停止", + "basic_speech2text_started": "开始", + "basic_speech2text_text_sent_color": "发送的文字颜色", + "basic_speech2text_text_sent_color_tooltip": "文本颜色,当文本发送到处理它时", + "basic_speech2text_width": "宽度(像素)", + "basic_square": "正方形", + "basic_star": "星星", + "basic_sub_view": "子视图", + "basic_triangle": "三角形", + "block": "堵塞", + "color": "颜色", + "color_false": "按假颜色", + "color_true": "按真实颜色", + "convert from widgeteria widget": "从 widderia 小部件转换", + "copy": "副本", + "css_project": "对于这个项目", + "custom_icons": "特别的", + "different": "不同的", + "display": "展示", + "finish searching": "搜索完成", + "flex": "柔性", + "flexible": "灵活的", + "folder": "文件夹", + "font-family": "字体系列", + "font-size": "字体大小", + "font-style": "字体样式", + "font-variant": "字体变体", + "font-weight": "字体粗细", + "group": "团体", + "group_attrName": "姓名", + "group_attrType": "类型", + "group_fields": "属性", + "group_help": "您可以在组的小部件的属性中定义格式为“%yourCustomName%”的特殊名称,它将出现在“属性”设置中。之后,您可以提供自定义属性的名称和类型。", + "group_icon_false": "图标由 false", + "group_icon_true": "图标由 true", + "group_size_hint": "您可以通过在下拉小部件选择器中选择它或单击此文本来更改组大小", + "group_text": "文本", + "help_css_global": "这些 CSS 适用于所有项目", + "help_css_project": "这些 CSS 仅适用于该项目", + "hide": "隐藏", + "hide code": "隐藏代码", + "horizontal": "水平的", + "hr": "小时", + "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": "图标大小(以像素为单位)", + "icon_upload_hint": "您可以上传自己的图标(最多 10k 字节)作为 base64。它将直接保存在项目中。如果您想上传 SVG 文件,请不要忘记设置 currentColor 属性。", + "imageHeight_false": "图像高度", + "imageHeight_true": "图像高度", + "invert_icon_false": "反转图标", + "invert_icon_true": "反转图标", + "jqui_Add new value": "增加新价值", + "jqui_Are you sure?": "你确定吗?", + "jqui_Bulk edit": "批量编辑", + "jqui_Close": "关闭", + "jqui_Example": "例子", + "jqui_Generate states": "生成状态", + "jqui_Generate steps": "生成步骤", + "jqui_Maximum value": "最大值", + "jqui_Minimum value": "最小值", + "jqui_Number settings": "号码设置", + "jqui_Percents": "百分比", + "jqui_Replace to": "用。。。来代替", + "jqui_Select file": "选择图片", + "jqui_Write state": "写状态", + "jqui_active_color": "活性颜色", + "jqui_ampm": "上午下午", + "jqui_asDate": "截至日期", + "jqui_asFullDate": "使用完整的可解析日期", + "jqui_as_string": "作为字符串", + "jqui_auto": "汽车", + "jqui_binary_control": "二元控制", + "jqui_button_binary_control_note": "已弃用。使用“二进制控制”小部件。保留只是为了与 vis.1 兼容", + "jqui_button_color": "按钮颜色", + "jqui_button_dialog_close": "对话框关闭按钮", + "jqui_button_input_note": "已弃用。使用“输入”小部件。保留只是为了与 vis.1 兼容", + "jqui_button_link": "跳转到网址", + "jqui_button_link_blank": "跳转到网址(在新窗口中)", + "jqui_button_link_blank_note": "已弃用。使用带有“在新窗口中打开”选项的第一个小部件。保留只是为了与 vis.1 兼容", + "jqui_button_nav_blank_note": "已弃用。使用带有“转到查看”选项的第一个小部件。保留只是为了与 vis.1 兼容", + "jqui_button_text": "按钮文字", + "jqui_buttontext_view": "使用视图名称作为标题", + "jqui_clearable": "可清除", + "jqui_color": "颜色", + "jqui_container_button_dialog": "按钮=>页面对话框", + "jqui_container_dialog": "容器对话框", + "jqui_container_icon_dialog": "图标=>页面对话框", + "jqui_dialog_name": "对话框名称", + "jqui_dialog_set_id_tooltip": "通过打开对话框设置状态", + "jqui_disableFuture": "禁用未来", + "jqui_disablePast": "禁用过去", + "jqui_displayWeekNumber": "显示周数", + "jqui_equal_text_length": "相等的文本长度", + "jqui_equal_text_length_tooltip": "如果激活,则 true 和 false 的文本长度将相等,因此图标在“关闭”和“打开”状态下将保持在同一位置。", + "jqui_external_dialog": "外部对话", + "jqui_external_dialog_tooltip": "该对话框在页面上不可见,但可以通过外部命令“dialogOpen”以对话框名称或小部件 ID 作为参数打开它。", + "jqui_false": "错误的", + "jqui_from_oid": "来自其他对象", + "jqui_from_value": "从静态值", + "jqui_generate": "产生", + "jqui_group_value": "价值", + "jqui_hide_close_button": "隐藏关闭按钮", + "jqui_href_tooltip": "该 URL 将在浏览器中调用", + "jqui_html": "超文本标记语言", + "jqui_html_dialog": "HTML对话框", + "jqui_html_external_dialog": "外部对话", + "jqui_html_false": "HTML 为 false", + "jqui_html_tooltip": "HTML 仅在文本和图标为空时才可配置", + "jqui_html_true": "HTML 为 true", + "jqui_icon": "图标", + "jqui_icon_active": "活动图标", + "jqui_icon_dialog": "图标对话框", + "jqui_icon_http_get": "后台调用地址", + "jqui_icon_increment": "用图标递增", + "jqui_icon_link": "跳转到 URL(带图标)", + "jqui_icon_max": "最大图标", + "jqui_icon_state_bool": "布尔图标按钮", + "jqui_icon_state_push_button": "按钮", + "jqui_icon_toggle": "带图标的切换按钮", + "jqui_image": "图像", + "jqui_image_active": "活动图像", + "jqui_image_height": "图像高度", + "jqui_image_max": "最大图像", + "jqui_increment_decrement": "递增/递减", + "jqui_input": "输入", + "jqui_input_date": "输入日期", + "jqui_input_time": "输入时间", + "jqui_input_with_button": "用按钮输入", + "jqui_invert_icon": "反转图标", + "jqui_inverted": "倒", + "jqui_jquery_style": "jQuery 风格", + "jqui_max": "最大值", + "jqui_min": "最小值", + "jqui_name": "标题", + "jqui_nav_view": "前往查看", + "jqui_navigation_button": "导航按钮", + "jqui_navigation_icon": "导航图标", + "jqui_navigation_password": "使用密码导航", + "jqui_not_equal_length": "宽度不等", + "jqui_off": "离开", + "jqui_oid_working": "工作身份证", + "jqui_on": "启用", + "jqui_only_icon": "仅图标", + "jqui_open": "作为列表", + "jqui_orientation": "方向", + "jqui_password": "密码", + "jqui_password_tooltip": "用户必须输入密码才能打开对话框、转到页面或 URL", + "jqui_push_mode": "推送模式", + "jqui_push_mode_tooltip": "按下按钮时,将写入“true”,松开按钮时,将写入“false”。", + "jqui_radio_buttons_on_off": "单选按钮(开/关)", + "jqui_radio_list": "包含值的单选列表", + "jqui_radio_steps": "单选按钮(步骤)", + "jqui_range": "范围", + "jqui_read_only": "只读", + "jqui_repeat_delay": "重复延迟", + "jqui_repeat_interval": "重复间隔", + "jqui_select_all_on_focus": "选择所有焦点", + "jqui_select_all_on_focus_tooltip": "焦点上所有文本都将被选择,因此可以快速删除或更改文本,而无需按退格按钮", + "jqui_select_list": "从列表中选择", + "jqui_set_label": "风格化", + "jqui_set_timeout": "写入超时", + "jqui_single": "单身的", + "jqui_slider": "滑块", + "jqui_slider_note": "已弃用。使用方向设置为垂直的滑块小部件。保留只是为了与 vis.1 兼容", + "jqui_slider_vertical": "垂直滑块", + "jqui_state_note": "已弃用。使用带有“增量/减量”选项的“状态控制”小部件。保留只是为了与 vis.1 兼容", + "jqui_states_control": "国家控制", + "jqui_stepMinute": "步数分钟", + "jqui_test": "测试值", + "jqui_text": "文本", + "jqui_text_active": "活动文本", + "jqui_text_max": "最大文本", + "jqui_toggle": "切换", + "jqui_tooltip": "工具提示", + "jqui_true": "真的", + "jqui_type": "类型", + "jqui_unit": "单元", + "jqui_url_group": "点击调用URL", + "jqui_url_in_background": "后端网址", + "jqui_url_in_browser": "浏览器中的网址", + "jqui_url_tooltip": "ioBroker 引擎将在后台调用此 URL", + "jqui_value": "价值", + "jqui_value_label_display": "显示标签", + "jqui_variant": "变体", + "jqui_view_group": "导航视图", + "jqui_wideFormat": "宽幅", + "jqui_widgetTitle": "标题", + "jqui_with_enter_button": "带输入按钮", + "jqui_write_state_note": "已弃用。使用带有“增量/减量”选项的“Wirte state”小部件。保留只是为了与 vis.1 兼容", + "jqui_write_value": "写入值", + "letter-spacing": "字母间距", + "line-height": "线高", + "material_icons_baseline": "填充", + "material_icons_knx-uf": "knx-uf", + "material_icons_outline": "概述", + "material_icons_result": "%s 匹配结果", + "material_icons_round": "圆形的", + "material_icons_sharp": "锋利的", + "material_icons_twotone": "双色", + "material_icons_upload": "上传", + "multi-views": "在视图中显示", + "never": "绝不", + "no_reload": "没有重装", + "none": "没有任何", + "normal": "普通的", + "not defined": "没有定义的", + "not-specified": "没有定义的", + "optional": "可选的", + "order_help": "您可以拖放任何项目或单击将与所选小部件交换的项目", + "orientation": "方向", + "profile": "轮廓", + "qui_Bool SVG": "布尔SVG", + "reload": "重新加载", + "search text": "搜索文字", + "set_basic": "基本的", + "signals-count": "信号数量", + "signals-smallIcon-0": "小图标 [0]", + "signals-smallIcon-1": "小图标 [1]", + "signals-smallIcon-2": "小图标 [3]", + "signals-text-0": "文字 [0]", + "signals-text-1": "文本[1]", + "signals-text-2": "文字[2]", + "sub_view_tooltip": "它用于特殊目的,例如 jaeger-design 导航", + "text-shadow": "文字阴影", + "text_false": "文字由假", + "text_true": "文字真实", + "to version": "版本", + "value_string": "细绳", + "version": "版本", + "vertical": "垂直的", + "vis-2-widgets-basic-autoSetDelay": "自动写入延迟", + "vis-2-widgets-basic-input_value": "输入值", + "vis-2-widgets-basic-noStyle": "没有风格", + "visResizable": "可调整大小", + "vis_2_widgets_basic_cannot_recursive": "不能使用递归视图", + "vis_2_widgets_basic_contains_view": "使用视图", + "vis_2_widgets_basic_view_in_widget": "在小部件中查看", + "vis_2_widgets_basic_view_not_defined": "查看未定义", + "vis_2_widgets_swipe_hide_indication_label": "隐藏指示", + "vis_2_widgets_swipe_threshold_label": "临界点", + "vis_2_widgets_widgets_swipe_label": "Swipe", + "vis_2_widgets_widgets_tabs_color": "颜色", + "vis_2_widgets_widgets_tabs_group_tab": "标签", + "vis_2_widgets_widgets_tabs_label": "选项卡", + "vis_2_widgets_widgets_tabs_show_tabs": "数字", + "vis_2_widgets_widgets_tabs_tab_icon": "图标", + "vis_2_widgets_widgets_tabs_tab_icon_color": "颜色", + "vis_2_widgets_widgets_tabs_tab_icon_size": "图标大小", + "vis_2_widgets_widgets_tabs_tab_image": "图像", + "vis_2_widgets_widgets_tabs_tab_overflow_x": "溢出X", + "vis_2_widgets_widgets_tabs_tab_overflow_y": "溢出Y", + "vis_2_widgets_widgets_tabs_tab_title": "标题", + "vis_2_widgets_widgets_tabs_tab_view": "看法", + "vis_2_widgets_widgets_tabs_variant": "变体", + "vis_2_widgets_widgets_tabs_variant_centered": "居中", + "vis_2_widgets_widgets_tabs_variant_default": "默认", + "vis_2_widgets_widgets_tabs_variant_full_width": "全屏宽度", + "vis_2_widgets_widgets_tabs_vertical": "垂直的", + "welcome_message": "目前还没有一个项目存在。", + "word-spacing": "字间距" } \ No newline at end of file diff --git a/packages/iobroker.vis-2/src/src/version.json b/packages/iobroker.vis-2/src/src/version.json index a324ca5d..94b10f39 100644 --- a/packages/iobroker.vis-2/src/src/version.json +++ b/packages/iobroker.vis-2/src/src/version.json @@ -1,3 +1,3 @@ { - "version": "2.10.6" + "version": "2.10.7" } \ No newline at end of file diff --git a/packages/types-vis-2/index.d.ts b/packages/types-vis-2/index.d.ts index 74b5b2ba..1eb4997c 100644 --- a/packages/types-vis-2/index.d.ts +++ b/packages/types-vis-2/index.d.ts @@ -767,6 +767,7 @@ export interface ViewSettings { sizex?: number; sizey?: number; limitScreen?: boolean; + limitForInstances?: string; limitScreenDesktop?: boolean; limitScreenBorderWidth?: number; limitScreenBorderColor?: string; diff --git a/packages/types-vis-2/visBaseWidget.d.ts b/packages/types-vis-2/visBaseWidget.d.ts new file mode 100644 index 00000000..cfb5396e --- /dev/null +++ b/packages/types-vis-2/visBaseWidget.d.ts @@ -0,0 +1,143 @@ +/** + * ioBroker.vis-2 + * https://github.com/ioBroker/ioBroker.vis-2 + * + * Copyright (c) 2022-2024 Denis Haev https://github.com/GermanBluefox, + * Creative Common Attribution-NonCommercial (CC BY-NC) + * + * http://creativecommons.org/licenses/by-nc/4.0/ + * + * Short content: + * Licensees may copy, distribute, display and perform the work and make derivative works based on it only if they give the author or licensor the credits in the manner specified by these. + * Licensees may copy, distribute, display, and perform the work and make derivative works based on it only for noncommercial purposes. + * (Free for non-commercial use). + */ +import type React from 'react'; +import { type JSX } from 'react'; +import type { AnyWidgetId, ResizeHandler, GroupData, WidgetData, WidgetStyle, Widget, RxRenderWidgetProps, VisRxWidgetStateValues, VisWidgetCommand, VisBaseWidgetProps } from './index'; +type Resize = 'left' | 'right' | 'top' | 'bottom' | 'bottom-left' | 'bottom-right' | 'top-left' | 'top-right' | boolean; +export interface WidgetDataState extends WidgetData { + bindings: string[]; + _originalData?: string; +} +export interface GroupDataState extends GroupData { + bindings?: string[]; + _originalData?: string; +} +export interface WidgetStyleState extends WidgetStyle { + bindings?: string[]; + _originalData?: string; +} +export interface VisBaseWidgetState { + applyBindings?: false | true | { + top: string | number; + left: string | number; + }; + data: WidgetDataState | GroupDataState; + draggable?: boolean; + editMode: boolean; + gap?: number; + hideHelper?: boolean; + isHidden?: boolean; + multiViewWidget?: boolean; + resizable?: boolean; + resizeHandles?: ResizeHandler[]; + rxStyle?: WidgetStyleState; + selected?: boolean; + selectedOne?: boolean; + showRelativeMoveMenu?: boolean; + style: WidgetStyleState; + usedInWidget: boolean; + widgetHint?: 'light' | 'dark' | 'hide'; +} +export interface VisBaseWidgetMovement { + top: number; + left: number; + width: number; + height: number; + order?: AnyWidgetId[]; +} +/** + * Methods which should be optionally implemented by inherited classes + */ +interface VisBaseWidget { + renderSignals(): React.ReactNode; + renderLastChange(style: unknown): React.ReactNode; +} + +interface CanHTMLDivElement extends HTMLDivElement { + _customHandlers?: { + onShow: (el: HTMLDivElement, id: string) => void; + onHide: (el: HTMLDivElement, id: string) => void; + }; + _storedDisplay?: React.CSSProperties['display']; +} +declare class VisBaseWidget = VisBaseWidgetState> extends React.Component { + static FORBIDDEN_CHARS: RegExp; + /** We do not store the SVG Element in the state because it is cyclic */ + private relativeMoveMenu?; + /** if currently resizing */ + private resize; + private readonly uuid; + protected refService: any; + protected widDiv: null | CanHTMLDivElement; + readonly onCommandBound: typeof this.onCommand; + protected onResize: undefined | (() => void); + private updateInterval?; + private pressTimeout?; + private shadowDiv; + private stealCursor?; + private beforeIncludeColor?; + private lastClick?; + protected movement?: VisBaseWidgetMovement; + /** If resizing is currently locked */ + protected resizeLocked?: boolean; + protected visDynamicResizable: undefined | null | { + default: boolean; + desiredSize: { + width: number; + height: number; + } | boolean; + }; + protected isCanWidget?: boolean; + constructor(props: VisBaseWidgetProps); + static replacePRJ_NAME(data: Record, style: Record, props: VisBaseWidgetProps): void; + componentDidMount(): void; + componentWillUnmount(): void; + onCommand(command: VisWidgetCommand, _option?: any): any; + static getDerivedStateFromProps(props: VisBaseWidgetProps, state: VisBaseWidgetState): Partial; + static removeFromArray(items: Record, IDs: string[], view: string, widget: string): void; + static parseStyle(style: string, isRxStyle?: boolean): Record; + onMouseDown(e: React.MouseEvent): void; + createWidgetMovementShadow(): void; + isResizable(): any; + onMove: (x: number | undefined, y: number | undefined, save?: boolean, calculateRelativeWidgetPosition?: null | ((id: AnyWidgetId, left: string, top: string, shadowDiv: HTMLDivElement, order: AnyWidgetId[]) => void)) => void; + onTempSelect: (selected?: boolean) => void; + onResizeStart(e: React.MouseEvent, type: Resize): void; + getResizeHandlers(selected: boolean, widget: Widget, borderWidth: string): JSX.Element[]; + isUserMemberOfGroup(user: string, userGroups: string[]): boolean; + static isWidgetFilteredOutStatic(viewsActiveFilter: { + [view: string]: string[]; + } | null, widgetData: WidgetData | GroupData, view: string, editMode: boolean): boolean; + isWidgetFilteredOut(widgetData: WidgetData | GroupData): boolean; + static isWidgetHidden(widgetData: WidgetData | GroupData, states: VisRxWidgetStateValues, id: string): any; + /** + * Render the widget body + * + * @param _props + */ + renderWidgetBody(_props: RxRenderWidgetProps): JSX.Element | JSX.Element[] | null; + changeOrder(e: React.MouseEvent, dir: number): void; + static formatValue(value: string | number, decimals: number | string, _format?: string): string; + formatIntervalHelper(value: number, type: 'seconds' | 'minutes' | 'hours' | 'days'): string; + formatInterval(timestamp: number, isMomentJs: boolean): any; + startUpdateInterval(): void; + formatDate(value: string | Date | number, format?: boolean | string, interval?: boolean, isMomentJs?: boolean, forRx?: boolean): string | JSX.Element; + onToggleRelative(e: React.MouseEvent): void; + onToggleWidth(e: React.MouseEvent): void; + onToggleLineBreak(e: React.MouseEvent): void; + static correctStylePxValue(value: string | number): string | number; + renderRelativeMoveMenu(): JSX.Element; + render(): JSX.Element; +} +export default VisBaseWidget; diff --git a/packages/types-vis-2/visRxWidget.d.ts b/packages/types-vis-2/visRxWidget.d.ts new file mode 100644 index 00000000..a999ed68 --- /dev/null +++ b/packages/types-vis-2/visRxWidget.d.ts @@ -0,0 +1,114 @@ +/** + * ioBroker.vis-2 + * https://github.com/ioBroker/ioBroker.vis-2 + * + * Copyright (c) 2022-2024 Denis Haev https://github.com/GermanBluefox, + * Creative Common Attribution-NonCommercial (CC BY-NC) + * + * http://creativecommons.org/licenses/by-nc/4.0/ + * + * Short content: + * Licensees may copy, distribute, display and perform the work and make derivative works based on it only if they give the author or licensor the credits in the manner specified by these. + * Licensees may copy, distribute, display, and perform the work and make derivative works based on it only for noncommercial purposes. + * (Free for non-commercial use). + */ +import type React from 'react'; +import type { Component, JSX } from 'react'; +import type { AnyWidgetId, RxWidgetInfo, VisRxWidgetStateValues, StateID, RxWidgetInfoAttributesField, RxRenderWidgetProps, RxWidgetInfoWriteable, Writeable, VisViewProps, VisBaseWidgetProps, VisWidgetCommand } from './index'; +import type { VisBaseWidgetState } from './visBaseWidget'; +import type VisBaseWidget from './visBaseWidget'; +type VisRxWidgetProps = VisBaseWidgetProps; + +interface VisRxData { + _originalData?: string; + filterkey?: string | string[]; + /** If value is hide widget should be hidden if user not in groups, else disabled */ + 'visibility-groups-action': 'hide' | 'disabled'; + /** If entry in an array but user not in array, apply visibility-groups-action logic */ + 'visibility-groups': string[]; +} + +export interface VisRxWidgetState extends VisBaseWidgetState { + rxData: VisRxData; + values: VisRxWidgetStateValues; + visible: boolean; + disabled?: boolean; +} + +export declare const POSSIBLE_MUI_STYLES: string[]; + +declare class VisRxWidget, TState extends Partial = VisRxWidgetState> extends VisBaseWidget { + static POSSIBLE_MUI_STYLES: string[]; + private linkContext; + /** Method called when state changed */ + private readonly onStateChangedBind; + private newState?; + private wrappedContent?; + private updateTimer?; + private ignoreMouseEvents?; + private mouseDownOnView?; + private bindingsTimer?; + private informIncludedWidgets?; + private filterDisplay?; + constructor(props: VisRxWidgetProps); + static findField(widgetInfo: RxWidgetInfo | RxWidgetInfoWriteable, name: string): Writeable | null; + static getI18nPrefix(): string; + static getText(text: string | ioBroker.Translated): any; + static t(key: string, ...args: string[]): string; + static getLanguage(): ioBroker.Languages; + onCommand(command: VisWidgetCommand, _option?: any): any; + onStateUpdated(id: string, state: ioBroker.State): void; + onIoBrokerStateChanged: (id: StateID, state: ioBroker.State | null | undefined) => void; + /** + * Called if ioBroker state changed + */ + onStateChanged( + /** state object */ + id?: StateID | null, + /** state value */ + state?: ioBroker.State | null | undefined, + /** if state should not be set */ + doNotApplyState?: boolean): Partial; + applyBinding(stateId: string, newState: typeof this.state): void; + componentDidMount(): void; + onRxDataChanged(_prevRxData: typeof this.state.rxData): void; + onRxStyleChanged(_prevRxStyle: typeof this.state.rxStyle): void; + componentDidUpdate(prevProps: VisRxWidgetProps, prevState: typeof this.state): void; + componentWillUnmount(): void; + /** + * Check if the logged-in user's group has visibility permissions for this widget + */ + isWidgetVisibleForGroup(newState: typeof this.newState): boolean; + /** + * Checks if widget is visible, according to the state, id + * + * @param stateId state id to check visibility for + * @param newState the new state + */ + checkVisibility(stateId?: string | null, newState?: typeof this.newState): boolean; + onPropertiesUpdated(): Promise; + formatValue(value: number | string, round: number): string; + wrapContent(content: React.JSX.Element | React.JSX.Element[], addToHeader?: React.JSX.Element | null | React.JSX.Element[], cardContentStyle?: React.CSSProperties, headerStyle?: React.CSSProperties, onCardClick?: (e?: React.MouseEvent) => void, components?: Record>): any; + renderWidgetBody(props: RxRenderWidgetProps): React.JSX.Element | null; + getWidgetView(view: string, props?: Partial): JSX.Element; + getWidgetInWidget(view: string, wid: AnyWidgetId, props?: { + index?: number; + refParent?: React.RefObject; + isRelative?: boolean; + }): any; + isSignalVisible(index: number): any; + static text2style(textStyle: string, style: any): any; + renderSignal(index: number): JSX.Element; + renderLastChange(widgetStyle: any): JSX.Element; + renderSignals(): React.ReactNode; + render(): any; + /** + * Get information about specific widget, needs to be implemented by widget class + */ + getWidgetInfo(): Readonly; +} +export default VisRxWidget;