/**
* Copyright JS Foundation and other contributors, http://js.foundation
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
**/
var RED=function(){function s(e,i){i=i||function(){};var t,n=//.exec(e.trim());t=n?n[1]:"unknown";try{var a=!1,s=$("
"+e+"
");s.find("script").each(function(e,t){var n=$(t).attr("src");if(n&&!/^\s*(https?:|\/|\.)/.test(n)){$(t).remove();var o=document.createElement("script");o.onload=function(){$("body").append(s),i()},$("body").append(o),o.src=RED.settings.apiRootUrl+n,a=!0}}),a||($("body").append(s),i())}catch(e){RED.notify(RED._("notification.errors.failedToAppendNode",{module:t,error:e.toString()}),{type:"error",timeout:1e4}),console.log("["+t+"] "+e.toString()),i()}}function r(t){$.ajax({headers:{Accept:"application/json"},cache:!1,url:"icons",success:function(e){RED.nodes.setIconSets(e),t&&t()}})}function t(){$.ajax({headers:{Accept:"text/html"},cache:!1,url:"nodes",success:function(e){var t=e.trim().split(/(?=)/),n=function(){0===t.length?($("body").i18n(),$("#palette > .palette-spinner").hide(),$(".palette-scroll").removeClass("hide"),$("#palette-search").removeClass("hide"),d(function(){RED.settings.theme("projects.enabled",!1)?RED.projects.refresh(function(e){RED.sidebar.info.refresh(),e||(RED.menu.setDisabled("menu-item-projects-open",!0),RED.menu.setDisabled("menu-item-projects-settings",!0),!1===e||RED.projects.showStartup()),o()}):(RED.sidebar.info.refresh(),o())})):s(t.shift(),n)};n()}})}function d(n){$.ajax({headers:{Accept:"application/json"},cache:!1,url:"flows",success:function(e){if(e){var t=window.location.hash;RED.nodes.version(e.rev),RED.nodes.import(e.flows),RED.nodes.dirty(!1),RED.view.redraw(!0),/^#flow\/.+$/.test(t)&&RED.workspaces.show(t.substring(6))}n()}})}function o(){var a={};RED.comms.subscribe("notification/#",function(e,n){var t=e.split("/")[1];if("runtime-deploy"!==t&&"node"!==t){if("project-update"===t)return RED.nodes.clear(),RED.history.clear(),RED.view.redraw(!0),void RED.projects.refresh(function(){d(function(){var e=RED.projects.getActiveProject(),t={"change-branch":RED._("notification.project.change-branch",{project:e.git.branches.local}),"merge-abort":RED._("notification.project.merge-abort"),loaded:RED._("notification.project.loaded",{project:n.project}),updated:RED._("notification.project.updated",{project:n.project}),pull:RED._("notification.project.pull",{project:n.project}),revert:RED._("notification.project.revert",{project:n.project}),"merge-complete":RED._("notification.project.merge-complete")}[n.action];RED.notify(""+t+"
"),RED.sidebar.info.refresh()})});if(n.text){n.default=n.text;var o=RED._(n.text,n),i={type:n.type,fixed:void 0===n.timeout,timeout:n.timeout,id:t};"runtime-state"===t&&("missing-types"===n.error?(o+="",RED.projects.getActiveProject()?i.buttons=[{text:RED._("notification.label.manage-project-dep"),click:function(){a[t].hideNotification(),RED.projects.settings.show("deps")}}]:i.buttons=[{text:RED._("common.label.close"),click:function(){a[t].hideNotification()}}]):"credentials_load_failed"===n.error?RED.settings.theme("projects.enabled",!1)?RED.user.hasPermission("projects.write")&&(i.buttons=[{text:"Setup credentials",click:function(){a[t].hideNotification(),RED.projects.showCredentialsPrompt()}}]):i.buttons=[{text:"Close",click:function(){a[t].hideNotification()}}]:"missing_flow_file"===n.error?RED.user.hasPermission("projects.write")&&(i.buttons=[{text:"Setup project files",click:function(){a[t].hideNotification(),RED.projects.showFilesPrompt()}}]):"missing_package_file"===n.error?RED.user.hasPermission("projects.write")&&(i.buttons=[{text:"Create default package file",click:function(){a[t].hideNotification(),RED.projects.createDefaultPackageFile()}}]):"project_empty"===n.error?RED.user.hasPermission("projects.write")&&(i.buttons=[{text:"No thanks",click:function(){a[t].hideNotification()}},{text:"Create default project files",click:function(){a[t].hideNotification(),RED.projects.createDefaultFileSet()}}]):"git_merge_conflict"===n.error&&(RED.nodes.clear(),RED.sidebar.versionControl.refresh(!0),RED.user.hasPermission("projects.write")&&(i.buttons=[{text:"Show merge conflicts",click:function(){a[t].hideNotification(),RED.sidebar.versionControl.showLocalChanges()}}]))),a.hasOwnProperty(t)?a[t].update(o,i):a[t]=RED.notify(o,i)}else a.hasOwnProperty(t)&&(a[t].close(),delete a[t])}}),RED.comms.subscribe("status/#",function(e,t){var n=e.split("/"),o=RED.nodes.node(n[1]);o&&(t.hasOwnProperty("text")&&"."!==t.text[0]&&(t.text=o._(t.text.toString(),{defaultValue:t.text.toString()})),o.status=t,o.dirty=!0,RED.view.redraw())}),RED.comms.subscribe("notification/node/#",function(e,t){var n,o,i;if("notification/node/added"==e){var a=[];t.forEach(function(e){var t=e.id;RED.nodes.addNodeSet(e),a=a.concat(e.types),RED.i18n.loadNodeCatalog(t,function(){$.get("nodes/"+t,function(e){s(e)})})}),a.length&&(i="",RED.notify(RED._("palette.event.nodeAdded",{count:a.length})+i,"success")),r()}else if("notification/node/removed"==e){for(n=0;n"+o.types.join(" ")+" ",RED.notify(RED._("palette.event.nodeRemoved",{count:o.types.length})+i,"success"));r()}else"notification/node/enabled"==e?t.types&&(RED.nodes.getNodeSet(t.id).added?(RED.nodes.enableNodeSet(t.id),i="",RED.notify(RED._("palette.event.nodeEnabled",{count:t.types.length})+i,"success")):$.get("nodes/"+t.id,function(e){s(e),i="",RED.notify(RED._("palette.event.nodeAdded",{count:t.types.length})+i,"success")})):"notification/node/disabled"==e?t.types&&(RED.nodes.disableNodeSet(t.id),i="",RED.notify(RED._("palette.event.nodeDisabled",{count:t.types.length})+i,"success")):"node/upgraded"==e&&(RED.notify(RED._("palette.event.nodeUpgraded",{module:t.module,version:t.version}),"success"),RED.nodes.registry.setModulePendingUpdated(t.module,t.version));RED.library.loadFlowLibrary()})}function n(){$.get("red/about",function(e){RED.sidebar.info.set(' '+marked(e)),RED.sidebar.info.show()})}function i(){var e=[];RED.settings.theme("projects.enabled",!1)&&e.push({id:"menu-item-projects-menu",label:"Projects",options:[{id:"menu-item-projects-new",label:"New",disabled:!1,onselect:"core:new-project"},{id:"menu-item-projects-open",label:"Open",disabled:!1,onselect:"core:open-project"},{id:"menu-item-projects-settings",label:"Project Settings",disabled:!1,onselect:"core:show-project-settings"}]}),e.push({id:"menu-item-view-menu",label:RED._("menu.label.view.view"),options:[{id:"menu-item-sidebar",label:RED._("menu.label.sidebar.show"),toggle:!0,onselect:"core:toggle-sidebar",selected:!0},null]}),e.push(null),e.push({id:"menu-item-import",label:RED._("menu.label.import"),options:[{id:"menu-item-import-clipboard",label:RED._("menu.label.clipboard"),onselect:"core:show-import-dialog"},{id:"menu-item-import-library",label:RED._("menu.label.library"),options:[]}]}),e.push({id:"menu-item-export",label:RED._("menu.label.export"),options:[{id:"menu-item-export-clipboard",label:RED._("menu.label.clipboard"),onselect:"core:show-export-dialog"},{id:"menu-item-export-library",label:RED._("menu.label.library"),disabled:!0,onselect:"core:library-export"}]}),e.push(null),e.push({id:"menu-item-search",label:RED._("menu.label.search"),onselect:"core:search"}),e.push(null),e.push({id:"menu-item-config-nodes",label:RED._("menu.label.displayConfig"),onselect:"core:show-config-tab"}),e.push({id:"menu-item-workspace",label:RED._("menu.label.flows"),options:[{id:"menu-item-workspace-add",label:RED._("menu.label.add"),onselect:"core:add-flow"},{id:"menu-item-workspace-edit",label:RED._("menu.label.rename"),onselect:"core:edit-flow"},{id:"menu-item-workspace-delete",label:RED._("menu.label.delete"),onselect:"core:remove-flow"}]}),e.push({id:"menu-item-subflow",label:RED._("menu.label.subflows"),options:[{id:"menu-item-subflow-create",label:RED._("menu.label.createSubflow"),onselect:"core:create-subflow"},{id:"menu-item-subflow-convert",label:RED._("menu.label.selectionToSubflow"),disabled:!0,onselect:"core:convert-to-subflow"}]}),e.push(null),!1!==RED.settings.theme("palette.editable")&&(e.push({id:"menu-item-edit-palette",label:RED._("menu.label.editPalette"),onselect:"core:manage-palette"}),e.push(null)),e.push({id:"menu-item-user-settings",label:RED._("menu.label.settings"),onselect:"core:show-user-settings"}),e.push(null),e.push({id:"menu-item-keyboard-shortcuts",label:RED._("menu.label.keyboardShortcuts"),onselect:"core:show-help"}),e.push({id:"menu-item-help",label:RED.settings.theme("menu.menu-item-help.label",RED._("menu.label.help")),href:RED.settings.theme("menu.menu-item-help.url","http://nodered.org/docs")}),e.push({id:"menu-item-node-red-version",label:"v"+RED.settings.version,onselect:"core:show-about"}),RED.view.init(),RED.userSettings.init(),RED.user.init(),RED.library.init(),RED.keyboard.init(),RED.palette.init(),!1!==RED.settings.theme("palette.editable")?RED.palette.editor.init():console.log("Palette editor disabled"),RED.sidebar.init(),RED.settings.theme("projects.enabled",!1)?RED.projects.init():console.log("Projects disabled"),RED.subflow.init(),RED.workspaces.init(),RED.clipboard.init(),RED.search.init(),RED.editor.init(),RED.diff.init(),RED.menu.init({id:"btn-sidemenu",options:e}),RED.deploy.init(RED.settings.theme("deployButton",null)),RED.notifications.init(),RED.actions.add("core:show-about",n),RED.nodes.init(),RED.comms.connect(),$("#main-container").show(),$(".header-toolbar").show(),$.ajax({headers:{Accept:"application/json"},cache:!1,url:"nodes",success:function(e){RED.nodes.setNodeList(e),RED.i18n.loadNodeCatalogs(function(){r(t)})}})}var a=!1;return{init:function(e){if(a)throw new Error("RED already initialised");a=!0,ace.require("ace/ext/language_tools"),(e=e||{}).apiRootUrl=e.apiRootUrl||"",e.apiRootUrl&&!/\/$/.test(e.apiRootUrl)&&(e.apiRootUrl=e.apiRootUrl+"/"),RED.i18n.init(e,function(){RED.settings.init(e,i)})}}}();RED.events=function(){var i={};return{on:function(e,t){i[e]=i[e]||[],i[e].push(t)},off:function(e,t){var n=i[e];if(n)for(var o=0;o"+RED.settings.user.username+""}),RED.menu.addItem("btn-usermenu",{id:"usermenu-item-logout",label:RED._("menu.label.logout"),onselect:function(){RED.user.logout()}}))}var i=/^((.+)\.)?read$/,a=/^((.+)\.)?write$/;return{init:function(){if(RED.settings.user&&(!RED.settings.editorTheme||!RED.settings.editorTheme.hasOwnProperty("userMenu"))){var e=$(' ').prependTo(".header-toolbar");RED.settings.user.image?$(' ').css({backgroundImage:"url("+RED.settings.user.image+")"}).appendTo(e.find("a")):$(' ').appendTo(e.find("a")),RED.menu.init({id:"btn-usermenu",options:[]}),p()}},login:function(d,l){"function"==typeof d&&(l=d,d={});var c=$('');c.dialog({autoOpen:!1,dialogClass:"ui-dialog-no-close",modal:!0,closeOnEscape:!!d.cancelable,width:600,resizable:!1,draggable:!1}),$("#node-dialog-login-fields").empty(),$.ajax({dataType:"json",url:"auth/login",success:function(i){var e=0;if("credentials"==i.type){for(;e",{class:"form-row"});$(''+RED._(t.label)+": ").appendTo(n);var o=$(' ').appendTo(n);e'+RED._("user.loginFailed")+' '+(d.cancelable?''+RED._("common.label.cancel")+" ":"")+' ').appendTo("#node-dialog-login-fields"),$("#node-dialog-login-submit").button(),$("#node-dialog-login-fields").submit(function(e){$("#node-dialog-login-submit").button("option","disabled",!0),$("#node-dialog-login-failed").hide(),$(".login-spinner").show();for(var t={client_id:"node-red-editor",grant_type:"password",scope:""},n=0;n ",{class:"form-row",style:"text-align: center"}).appendTo("#node-dialog-login-fields");var a=$(' ',{style:"padding: 10px"}).appendTo(n).click(function(){document.location=t.url});if(t.image)$(" ",{src:t.image}).appendTo(a);else if(t.label){var s=$(" ").text(t.label);t.icon&&($(" ",{class:"fa fa-2x "+t.icon,style:"vertical-align: middle"}).appendTo(a),s.css({verticalAlign:"middle",marginLeft:"8px"})),s.appendTo(a)}a.button()}d.cancelable&&$("#node-dialog-login-cancel").button().click(function(e){$("#node-dialog-login").dialog("destroy").remove()});var r=i.image||"red/images/node-red-256.png";$("#node-dialog-login-image").load(function(){c.dialog("open")}).attr("src",r)}})},logout:function(){var e=RED.settings.get("auth-tokens"),t=e?e.access_token:"";$.ajax({url:"auth/revoke",type:"POST",data:{token:t}}).done(function(e,t,n){RED.settings.remove("auth-tokens"),e&&e.redirect?document.location.href=e.redirect:document.location.reload(!0)}).fail(function(e,t,n){401===e.status?document.location.reload(!0):console.log(t)})},hasPermission:function(e){return""===e||!RED.settings.user||function e(t,n){if(""===n)return!0;var o;if(Array.isArray(n)){for(o=0;o'+RED._("notification.errors.lostConnectionTry")+"";s.update(e),$(s).find("a").click(function(e){e.preventDefault(),s.update(RED._("notification.errors.lostConnection")),clearInterval(c),r()})}},1e3)))}},subscribe:function(e,t){null==u[e]&&(u[e]=[]),u[e].push(t),a&&1==a.readyState&&a.send(JSON.stringify({subscribe:e}))},unsubscribe:function(e,t){if(u[e]){for(var n=0;n=e.length);s++)if(!(e[s].isParsed||e.keep||e[s].isSeparator)){var r=e[s].content,d=r.indexOf(n.content);if(!(d<0)){var l,c=0;if(n.continued)for(;c++,0===(l=r.indexOf(n.content,d+c*n.content.length)););else c=1;if(l=d+c*n.content.length,e.splice(s,1),0=e.length);s++)if(!(e[s].isParsed||e[s].inBounds||e.keep||e[s].isSeparator)){var r=u(e[s],n[a]),d=r.bStart,l=r.bEnd;if(!(d<0||l<0)){var c=e[s].content;if(e.splice(s,1),0=e.length);s++)if(!(e[s].isParsed||e[s].keep||e[s].isSeparator)){var r=e[s].content,d=r.indexOf(n[a]);0<=d&&(e.splice(s,1),0/g,""):e},getDirection:function(e,t,n,o){if("auto"!==t&&/^(rtl|ltr)$/i.test(t))return t;n=/^(rtl|ltr)$/i.test(n)?n:"ltr";var i=o?e.split("").reverse().join(""):e,a=/[A-Za-z\u05d0-\u065f\u066a-\u06ef\u06fa-\u07ff\ufb1d-\ufdff\ufe70-\ufefc]/.exec(i);return a?a[0]<="z"?"ltr":"rtl":n},hasArabicChar:function(e){return!!/[\u0600-\u065f\u066a-\u06ef\u06fa-\u07ff\ufb1d-\ufdff\ufe70-\ufefc]/.exec(e)},showMarks:function(e,t){for(var n="",o=0;o";break;case"":n+="";break;case"":n+="";break;case"":n+="";break;case"":n+="";break;case"":n+="";break;case"":n+="";break;default:n+=i}}var a=void 0!==t&&/^(rtl|ltr)$/i.test(t)?"rtl"===t?"":"":"";return a+n+(""===a?"":"")},hideMarks:function(e){return e.replace(//g,this.LRM).replace(//g,this.RLM).replace(//g,this.LRE).replace(//g,this.RLE).replace(//g,this.LRO).replace(//g,this.RLO).replace(//g,this.PDF)},showTags:function(e){return""+e+" "},hideTags:function(e){return e.replace(//g,"").replace(/<\/xmp>/g,"")}},l=function(){var e={};function s(e,t){var n=Array.isArray(e)?e[0]:e;return n.guiDir||(n.guiDir="ltr"),n.dir||(n.dir=n.guiDir),t&&(void 0===n.points&&(n.points=[]),n.cases||(n.cases=[]),n.bounds||(n.bounds=[]),n.commonHandler=r),n}function i(e,t,n){if(!e||!t)return new f({content:""});var o=s(t,!0),i=[new f({content:e,actual:e,localGui:o.dir})],a=r.handle;return o.handler&&"function"==typeof o.handler&&(a=o.handler.handle),a(e,i,o,n),i}function a(e,t,n){var o=s(t,!1);return n?function(e,t,n){for(var o="",i="",a=0;a":""===i||""!==r&&r===i&&!stop||(o+=""+(a==e.length-1&&""!==r?"":" "),""!==r&&(o+="")),"auto"===s&&(s=p.getDirection(e[a].content,s,t.guiDir)),/^(rtl|ltr)$/i.test(s)?(o+=""+e[a].content+" ",s):(o+=e[a].content,p.getDirection(e[a].content,s,t.guiDir,!0)),a"}else""!==i&&(o+=" ");i=r,stop=!1}else stop=!0;var l="auto"===t.dir?p.getDirection(e[0].actual,t.dir,t.guiDir):t.dir;l!==t.guiDir&&(o=""+o+" ");return o}(e,o):function(e,t,n){for(var o="",i="",a=!1,s=0;s",continued:!0,subDir:n?"rtl":"ltr"},cases:[{args:{subs:{content:"<",continued:!0,subDir:n?"ltr":"rtl"}}}]};return a?l.parseStructure(e,s,!!o,i):l.parseAndDisplayStructure(e,s,!!o,i)}},n={format:function(e,t,n,o,i,a){var s={guiDir:n?"rtl":"ltr",dir:"ltr",points:","};return a?l.parseStructure(e,s,!!o,i):l.parseAndDisplayStructure(e,s,!!o,i)}},o={format:function(e,t,n,o,i,a){var s={guiDir:n?"rtl":"ltr",dir:function(e,t){if("ar"!==p.getLocaleDetails(t).lang)return"ltr";var n=e.indexOf("@");return 0.:,;@",cases:[{handler:r,args:{bounds:[{startAfter:'"',endBefore:'"'},{startAfter:"(",endBefore:")"}],points:""}}]};return a?l.parseStructure(e,s,!!o,i):l.parseAndDisplayStructure(e,s,!!o,i)}},i={format:function(e,t,n,o,i,a){var s={guiDir:n?"rtl":"ltr",dir:"ltr",points:"/\\:."};return a?l.parseStructure(e,s,!!o,i):l.parseAndDisplayStructure(e,s,!!o,i)}},a={format:function(e,t,n,o,i,a){var s={guiDir:n?"rtl":"ltr",dir:"ltr",points:" /%^&[]<>=!?~:.,|()+-*{}"};return a?l.parseStructure(e,s,!!o,i):l.parseAndDisplayStructure(e,s,!!o,i)}},s={format:function(e,t,n,o,i,a){var s={guiDir:n?"rtl":"ltr",dir:"ltr",points:"\t!#%&()*+,-./:;<=>?|[]{}",cases:[{handler:r,args:{bounds:[{startAfter:"/*",endBefore:"*/"},{startAfter:"--",end:"\n"},{startAfter:"--"}]}},{handler:r,args:{subs:{content:" ",continued:!0}}},{handler:r,args:{bounds:[{startAfter:"'",endBefore:"'"},{startAfter:'"',endBefore:'"'}]}}]};return a?l.parseStructure(e,s,!!o,i):l.parseAndDisplayStructure(e,s,!!o,i)}},c={format:function(e,t,n,o,i,a){var s={guiDir:n?"rtl":"ltr",dir:"ltr",points:"_"};return a?l.parseStructure(e,s,!!o,i):l.parseAndDisplayStructure(e,s,!!o,i)}},u={format:function(e,t,n,o,i,a){var s={guiDir:n?"rtl":"ltr",dir:"ltr",points:":?#/@.[]="};return a?l.parseStructure(e,s,!!o,i):l.parseAndDisplayStructure(e,s,!!o,i)}},h={format:function(e,t,n,o,i,a){var s={guiDir:n?"rtl":"ltr",dir:t.dir?t.dir:n?"rtl":"ltr",points:" ,.!?;:"};return a?l.parseStructure(e,s,!!o,i):l.parseAndDisplayStructure(e,s,!!o,i)}},g={format:function(e,t,n,o,i,a){var s={guiDir:n?"rtl":"ltr",dir:"ltr",points:" /[]<>=!:@.|()+-*",cases:[{handler:r,args:{bounds:[{startAfter:'"',endBefore:'"'},{startAfter:"'",endBefore:"'"}],points:""}}]};return a?l.parseStructure(e,s,!!o,i):l.parseAndDisplayStructure(e,s,!!o,i)}},v={format:function(e,t,n,o,i,a){var s={},r="",d=Array.isArray(t)?t[0]:t;for(r in d)d.hasOwnProperty(r)&&(s[r]=d[r]);return s.guiDir=n?"rtl":"ltr",s.dir=s.dir?s.dir:s.guiDir,a?l.parseStructure(e,s,!!o,i):l.parseAndDisplayStructure(e,s,!!o,i)}},m=(function(){var e={msgLang:"en",msgDir:"",phLang:"",phDir:"",phPacking:["{","}"],phStt:{type:"none",args:{}},guiDir:""},t=!1;function n(e){return"he"===e||"iw"===e||"ar"===e?"rtl":"ltr"}function o(e){0===e.msgDir.length&&(e.msgDir=n(e.msgLang)),e.msgDir="ltr"!==e.msgDir&&"rtl"!==e.msgDir&&"auto"!=e.msgDir?"ltr":e.msgDir,0===e.guiDir.length&&(e.guiDir=e.msgDir),e.guiDir="rtl"!==e.guiDir?"ltr":"rtl",0===e.phDir.length&&(e.phDir=0===e.phLang.length?e.msgDir:n(e.phLang)),e.phDir="ltr"!==e.phDir&&"rtl"!==e.phDir&&"auto"!=e.phDir?"ltr":e.phDir,"string"==typeof e.phPacking&&(e.phPacking=e.phPacking.split("")),e.phPacking.length<2&&(e.phPacking=["{","}"])}}(),null);function b(e){switch(e){case"breadcrumb":return t;case"comma":return n;case"email":return o;case"filepath":return i;case"formula":return a;case"sql":return s;case"underscore":return c;case"url":return u;case"word":return h;case"xpath":return g;default:return v}}function y(t,e,n,o,i){if(!t||1!=t.nodeType)return!1;m||(m=document.createEvent("Event")).initEvent("TF",!0,!0),t.setAttribute("data-tf-type",e);var a="undefined"===n?"{}":JSON.stringify(Array.isArray(n)?n[0]:n);t.setAttribute("data-tf-args",a);var s="ltr";if("undefined"===o&&(t.dir?s=t.dir:t.style&&t.style.direction&&(s=t.style.direction),o="rtl"===s.toLowerCase()),t.setAttribute("data-tf-dir",o),t.setAttribute("data-tf-locale",p.getLocaleDetails(i).lang),function(e){var t=window.navigator.userAgent;if(0<=t.indexOf("MSIE")||0<=t.indexOf("Trident")||0<=t.indexOf("Edge"))return!1;var n=document.createElement(e.tagName);n.contentEditable=!0;var o="oninput"in n;return o||(n.setAttribute("oninput","return;"),o="function"==typeof n.oninput),n=null,o}(t)){t.oninput;t.oninput=function(e){w(e.target)}}else t.onkeyup=function(e){w(e.target),t.dispatchEvent(m)},t.onmouseup=function(e){w(e.target),t.dispatchEvent(m)};return w(t),!0}function w(e){var t=e.textContent||"",n=document.getSelection();if(0===t.length||!n||n.rangeCount<=0)e.dispatchEvent(m);else{var o,i,a=n.getRangeAt(0),s=a.cloneRange();o=a.startContainer,i=a.startOffset;var r=0;3===o.nodeType&&(r+=i),s.setStart(e,0),s.setEndBefore(o);var d=document.createElement("div");d.appendChild(s.cloneContents()),r+=d.textContent.length,e.innerHTML=b(e.getAttribute("data-tf-type")).format(t,JSON.parse(e.getAttribute("data-tf-args")),"true"===e.getAttribute("data-tf-dir"),!0,e.getAttribute("data-tf-locale"));var l=e,c=e,p=0,u=!1;for(n.removeAllRanges(),a.setStart(e,0),a.setEnd(e,0);c;){if(3===c.nodeType){if(p+c.nodeValue.length>=r){a.setStart(c,r-p);break}p+=c.nodeValue.length,c=c.nextSibling}else{if(c.hasChildNodes()){c=(l=c).firstChild;continue}c=c.nextSibling}for(;!c;){if(l===e){u=!0;break}c=l.nextSibling,l=l.parentNode}if(u)break}n.addRange(a),e.dispatchEvent(m)}}return{getHtml:function(e,t,n,o,i){return b(t).format(e,n,o,!0,i)},attach:function(e,t,n,o,i){return y(e,t,n,o,i)}}}(),RED.state={DEFAULT:0,MOVING:1,JOINING:2,MOVING_ACTIVE:3,ADDING:4,EDITING:5,EXPORT:6,IMPORT:7,IMPORT_DRAGGING:8,QUICK_JOINING:9,PANNING:10},RED.nodes=function(){var q,W,p=[],H={},u=[],K={},s=[],a={},t=null,o=!1;var X=function(){var i={},a=[],s={},r={},n={},t={};n.tab={defaults:{label:{value:""},disabled:{value:!1},info:{value:""}}};var o={setModulePendingUpdated:function(e,t){i[e].pending_version=t,RED.events.emit("registry:module-updated",{module:e,version:t})},getModule:function(e){return i[e]},getNodeSetForType:function(e){return o.getNodeSet(r[e])},getModuleList:function(){return i},getNodeList:function(){return a},getNodeTypes:function(){return Object.keys(n)},setNodeList:function(e){a=[];for(var t=0;te.outputs&&(e.outputs=e.wires.length),e.outputs)for(var t=0;t")+" ";l.length;RED.notify(""+RED._("clipboard.importUnrecognised",{count:l.length})+"
"+c,"error",!1,1e4)}var p=RED.workspaces.active(),u=ne(p);for(o=0;oP.outputs&&(P._def.defaults.hasOwnProperty("outputs")&&isNaN(parseInt(i.outputs))?P.outputs=P.wires.length:(console.log("Warning: node.wires longer than node.outputs - trimming wires:",P.id," wires:",P.wires.length," outputs:",P.outputs),P.wires=P.wires.slice(0,P.outputs))),P._def.defaults)P._def.defaults.hasOwnProperty(w)&&"inputs"!==w&&"outputs"!==w&&(P[w]=i[w],P._config[w]=JSON.stringify(i[w]));if(P._config.x=P.x,P._config.y=P.y,P._def.hasOwnProperty("credentials")&&i.hasOwnProperty("credentials"))for(w in P.credentials={},P._def.credentials)P._def.credentials.hasOwnProperty(w)&&i.credentials.hasOwnProperty(w)&&(P.credentials[w]=i.credentials[w])}}Q(P),RED.editor.validateNode(P),"unknown"!==(_[i.id]=P).type&&"config"===P._def.category||k.push(P)}var M={catch:"scope",status:"scope","link in":"links","link out":"links"};for(o=0;o",_[U[J]].id);delete i.wires}for(var F in i._def.defaults)if(i._def.defaults.hasOwnProperty(F))if(i._def.defaults[F].type&&_[i[F]])i[F]=_[i[F]].id,(y=RED.nodes.node(i[F]))&&-1===y.users.indexOf(i)&&y.users.push(i);else if(M.hasOwnProperty(i.type)&&M[i.type]===F&&void 0!==i[F]&&null!==i[F])for(var G=0;G=s.i&&e.sourcePort++})}if(t.subflow&&t.subflow.hasOwnProperty("instances")&&t.subflow.instances.forEach(function(e){var t=RED.nodes.node(e.id);t&&(t.changed=e.changed,t.dirty=!0)}),i&&RED.nodes.filterNodes({type:"subflow:"+i.id}).forEach(function(e){for(e.inputs=i.in.length,e.outputs=i.out.length;e.outputs>e.ports.length;)e.ports.push(e.ports.length);e.resize=!0,e.dirty=!0}),t.nodes)for(n=0;nt.subflow.inputCount?t.node.in.splice(t.subflow.inputCount):0t.subflow.outputCount?t.node.out.splice(t.subflow.outputCount):0 /g,">")}function I(e){var t;if(Array.isArray(e))t=$(' ').text("array["+e.length+"]");else if(null===e)t=$('null ');else if("object"==typeof e)t=e.hasOwnProperty("type")&&"Buffer"===e.type&&e.hasOwnProperty("data")?$(' ').text("buffer["+e.length+"]"):e.hasOwnProperty("type")&&"array"===e.type&&e.hasOwnProperty("data")?$(' ').text("array["+e.length+"]"):e.hasOwnProperty("type")&&"function"===e.type?$(' ').text("function"):e.hasOwnProperty("type")&&"number"===e.type?$(' ').text(e.data):$('object ');else if("string"==typeof e){var n;n=30').html('"'+P(n)+'"')}else t="number"==typeof e?$(' ').text(""+e):$(' ').text(""+e);return t}function A(n,o,i,e){n.addClass("debug-message-expandable"),n.prop("toggle",function(){return function(e){var t=n.parent();if(t.hasClass("collapsed")){if(e)return o&&!t.hasClass("built")&&(o(),t.addClass("built")),t.removeClass("collapsed"),!0}else if(!e)return t.addClass("collapsed"),!0;return!1}}),n.click(function(e){var t=!$(this).parent().hasClass("collapsed");$(this).prop("toggle")(!t)&&i&&i(!t),e.preventDefault()}),e&&n.click()}var z={},r={};function M(e,t,n,o){if(t&&0');if(D.collapse=function(){D.find(".debug-message-expandable").parent().addClass("collapsed")},l=$(' ').appendTo(D),g&&function(n,o,t,i,e,a){z.hasOwnProperty(o)||(z[o]={});var s=$(' ').appendTo(n),r=$(' ').appendTo(s);if(t)var d=$(' ').appendTo(r).click(function(e){e.preventDefault(),e.stopPropagation(),RED.clipboard.copyText(t,d,"clipboard.copyMessagePath")});var l=$(' ').appendTo(r).click(function(e){e.preventDefault(),e.stopPropagation(),RED.clipboard.copyText(i,l,"clipboard.copyMessageValue")});if(void 0!==a&&""!==a){var c=z[o].hasOwnProperty(a);$(' ').appendTo(s).click(function(e){if(e.preventDefault(),e.stopPropagation(),z[o].hasOwnProperty(a))delete z[o][a],$(this).removeClass("selected"),n.removeClass("debug-message-row-pinned");else{var t="$"+("["===a[0]?"":".")+a;z[o][a]=J(t),$(this).addClass("selected"),n.addClass("debug-message-row-pinned")}}).toggleClass("selected",c),n.toggleClass("debug-message-row-pinned",c)}}(l,g,h,n,0,p),u)i||($(' ').text(u).appendTo(l),$(": ").appendTo(l));else if(D.addClass("debug-message-top-level"),g){var a=z[g];if(m=[],a){for(var s in a)if(a.hasOwnProperty(s))try{void 0!==V({$:n},a[s])&&m.push(s)}catch(e){}m.sort()}D.clearPinned=function(){D.find(".debug-message-row-pinned").removeClass("debug-message-row-pinned"),z[g]={}}}o=$(' ').appendTo(l);var E=Array.isArray(n),R=!1;if(n&&"object"==typeof n&&n.hasOwnProperty("type")&&n.hasOwnProperty("data")&&(n.__enc__&&"array"===n.type||"Buffer"===n.type)&&(R=E=!0),null==n)$(''+n+" ").appendTo(o);else if(n.__enc__&&"number"===n.type)t=$('').text(n.data).appendTo(o);else if("function"===f||n.__enc__&&"function"===n.type)t=$('').text("function").appendTo(o);else if("internal"===f||n.__enc__&&"internal"===n.type)t=$('').text("[internal]").appendTo(o);else if("string"==typeof n)/[\t\n\r]/.test(n)&&(D.addClass("collapsed"),$(' ').prependTo(l),A(l,function(){$('').text(f||"string").appendTo(l);var e=$('
').appendTo(D);$(' ').text(n).appendTo(e)},function(e){b&&b(h,e)},M(p,m))),t=$('').html('"'+P(N(n))+'"').appendTo(o),/^#[0-9a-f]{6}$/i.test(n)&&$(' ').css("backgroundColor",n).appendTo(t);else if("number"==typeof n)t=$(' ').appendTo(o),Number.isInteger(n)&&0<=n&&(t.addClass("debug-message-type-number-toggle"),t.click(function(e){e.preventDefault(),B($(this),n,g,h,!0)})),B(t,n,g,h,!1,"hex"===f?"hex":void 0);else if(E){D.addClass("collapsed");var x=n.length;if(f){var T=/\[(\d+)\]/.exec(f);T&&(x=parseInt(T[1]))}var _=n,k="array";R?(_=n.data,void 0===x&&(x=_.length),_.__enc__&&(_=_.data),k=n.type.toLowerCase()):/buffer/.test(f)&&(k="buffer");var j=_.length;if(0 ').prependTo(l);var C=$('
').appendTo(D);D.addClass("debug-message-buffer-raw")}if(u)c=$(' ').text(f||k+"["+x+"]").appendTo(o);else{c=$('').appendTo(o),$("[ ").appendTo(c);var S=Math.min(x,10);for(d=0;d, ").appendTo(c);S …").appendTo(c),0===S&&$('empty ').appendTo(c),$(" ] ").appendTo(c)}0