control-freak-ide/server/nodejs/dist/web/nxappmain/serverbuild.js
plastic-hub-dev-node-saturn 538369cff7 latest
2021-05-12 18:35:18 +02:00

884 lines
447 KiB
JavaScript

//>>built
require({cache:{"xide/types":function(){define(["dcl/dcl"],function(f){f=new f(null,{declaredClass:"xide/types"});f.test=22;return f})},"dcl/dcl":function(){(function(f){"undefined"!=typeof define?define(["./mini"],f):"undefined"!=typeof module?module.exports=f(require("./mini")):dcl=f(dcl)})(function(f){function n(){}function l(c,b,d){var a=c||n,e=b||n,r=d||n,p=function(){var b,c;a.apply(this,arguments);try{b=r.apply(this,arguments)}catch(h){b=h,c=!0}e.call(this,arguments,b);if(c)throw b;return b};
p.advices={before:c,after:b,around:d};return p}function m(c){return function(b,d){var a=b._meta,e;a&&((e=+a.weaver[d]||0)&&e!=c&&f._error("set chaining",d,b,c,e),a.weaver[d]=c)}}var g=f(f.Super,{constructor:function(){this.before=this.around.before;this.after=this.around.after;this.around=this.around.around}});f.mix(f,{Advice:g,advise:function(c){return f._makeSuper(c,g)},before:function(c){return f.advise({before:c})},after:function(c){return f.advise({after:c})},around:f.superCall,chainBefore:m(1),
chainAfter:m(2),isInstanceOf:function(c,b){if(c instanceof b)return!0;c=c.constructor._meta;var d;if(c)for(c=c.bases,d=c.length-1;0<=d;--d)if(c[d]===b)return!0;return!1},_stub:function(c,b,d,a){a=a[d]=f._extractChain(b,d,"around");var e=f._extractChain(b,d,"before").reverse();b=f._extractChain(b,d,"after");a=c?f._stubChainSuper(a,1==c?function(a){return f._stubChain(a.reverse())}:f._stubChain,d):f._stubSuper(a,d);return e.length||b.length?l(f._stubChain(e),f._stubChain(b),a):a||function(){}}});return f})},
"dcl/mini":function(){(function(f){"undefined"!=typeof define?define([],f):"undefined"!=typeof module?module.exports=f():dcl=f()})(function(){function f(c,a){var e=[0],d,p,k,q,h,u,g,t,x=0,w;if(c)if(c instanceof Array){h={};g=c.slice(0).reverse();for(t=g.length-1;0<=t;--t)if(p=g[t],p._uniqueId=p._uniqueId||m++,d=p._meta){u=d.bases;for(x=u.length-1;0<x;--x)w=u[x]._uniqueId,h[w]=(h[w]||0)+1;g[t]=u.slice(0)}else g[t]=[p];d={};a:for(;g.length;){for(t=0;t<g.length;++t)if(u=g[t],p=u[0],w=p._uniqueId,!h[w]){d[w]||
(e.push(p),d[w]=1);u.shift();u.length?--h[u[0]._uniqueId]:g.splice(t,1);continue a}f._error("cycle",a,g)}c=c[0];x=e.length-((q=c._meta)&&c===e[e.length-(x=q.bases.length)]?x:1)-1}else c._uniqueId=c._uniqueId||m++,e=e.concat((q=c._meta)?q.bases:c);d=c?f.delegate(c.prototype):{};for(u=c&&(q=c._meta)?f.delegate(q.weaver):{constructor:2};0<x;--x)if(p=e[x],q=p._meta,f.mix(d,q&&q.ownProps||p.prototype),q)for(w in g=q.weaver)u[w]=(+u[w]||0)|g[w];for(w in a)l(q=a[w])?u[w]=+u[w]||0:d[w]=q;q={bases:e,ownProps:a,
weaver:u,chains:{}};e[0]={_meta:q,prototype:d};c=d;p=q.weaver;h=q.bases;u=q.chains;for(k in p)c[k]=f._stub(p[k],h,k,u);k=d.constructor;k._meta=q;k.prototype=d;e[0]=k;e=f._postprocess(k);a.declaredClass&&!b[a.declaredClass]&&(b[a.declaredClass]=e);return e}function n(b){this.around=b}function l(b){return b&&b.spr instanceof n}var m=0,g={},c,b={};(c=function(b,a){for(var e in a)b[e]=a[e]})(f,{mix:c,delegate:function(b){return Object.create(b)},allKeys:function(b){var a=[],e;for(e in b)a.push(e);return a},
Super:n,superCall:function(b){return f._makeSuper(b)},_makeSuper:function(b,a){var e=function(){};e.spr=new (a||n)(b);return e},_postprocess:function(b){return b},_error:function(b){throw Error("dcl: "+b);},_instantiate:function(b,a,e){a=b.spr.around(a);a.ctr=b.ctr;return a},_extractChain:function(b,a,e){for(var c=b.length-1,d=[],k,q,h="around"==e;k=b[c];--c)if((q=k._meta)?(q=q.ownProps).hasOwnProperty(a)&&(l(q=q[a])?h?q.spr.around:q=q.spr[e]:h):h&&(q="constructor"==a?k:k.prototype[a])&&q!==g[a])"function"==
typeof q?(q.ctr=k,d.push(q)):f._error("wrong super",k,a);return d},_stubChain:function(b){var a=b.length,e;return a?1==a?(e=b[0],function(){e.apply(this,arguments)}):function(){for(var e=0;e<a;++e)b[e].apply(this,arguments)}:0},_stubSuper:function(b,a){for(var e=0,c,d=g[a];c=b[e];++e)d=l(c)?b[e]=f._instantiate(c,d,a):c;return"constructor"!=a?d:function(){d.apply(this,arguments)}},_stubChainSuper:function(b,a,e){for(var c=0,d,k,q=0;d=b[c];++c)l(d)&&(k=c-q,b[c]=f._instantiate(d,k?1==k?b[q]:a(b.slice(q,
c)):0,e),q=c);return(k=c-q)?1==k&&"constructor"!=e?b[q]:a(q?b.slice(q):b):0},_stub:function(b,a,e,c){a=c[e]=f._extractChain(a,e,"around");return(b?f._stubChainSuper(a,f._stubChain,e):f._stubSuper(a,e))||function(){}}});f.getObject=function(c){return b[c]};f.setObject=function(c,a){return b[c]=a};return f})},"xide/types/Types":function(){define("dojo/_base/lang xide/types dojo/_base/json dojo/_base/kernel xide/utils xide/utils/ObjectUtils".split(" "),function(f,n,l,m,g){null==n.customTypes&&(n.customTypes=
{});null==n.customEnumerations&&(n.customEnumerations={});null==n.widgetMappings&&(n.widgetMappings={});null==n.customMimeIcons&&(n.customMimeIcons={});null==n.CICallbacks&&(n.CICallbacks={});n.resolveType=function(c){return n.customTypes[c]?n.customTypes[c]:null};n.registerType=function(c,b){n.customTypes[c]=b};n.registerWidgetMapping=function(c,b){n.widgetMappings[c]=b};n.registerEnumeration=function(c,b){n.customEnumerations[c]=b};n.resolveEnumeration=function(c){return n.customEnumerations[c]?
n.customEnumerations[c]:null};n.resolveWidgetMapping=function(c){return n.widgetMappings[c]?n.widgetMappings[c]:null};n.registerCICallbacks=function(c,b){n.CICallbacks[c]||(n.CICallbacks[c]={});g.mixin(n.CICallbacks[c],b);return null};n.getCICallbacks=function(c){return n.CICallbacks[c]?n.CICallbacks[c]:null};n.GRID_FEATURE={KEYBOARD_NAVIGATION:"KEYBOARD_NAVIGATION",KEYBOARD_SELECT:"KEYBOARD_SELECT",SELECTION:"SELECTION",ACTIONS:"ACTIONS",CONTEXT_MENU:"CONTEXT_MENU"};n.VIEW_FEATURE={KEYBOARD_NAVIGATION:"KEYBOARD_NAVIGATION",
KEYBOARD_SELECT:"KEYBOARD_SELECT",SELECTION:"SELECTION",ACTIONS:"ACTIONS",CONTEXT_MENU:"CONTEXT_MENU"};n.KEYBOARD_PROFILE={DEFAULT:{prevent_default:!0,prevent_repeat:!1},PASS_THROUGH:{prevent_default:!1,prevent_repeat:!1},SEQUENCE:{prevent_default:!0,is_sequence:!0,prevent_repeat:!0}};n.CI_STATE={NONE:0,PENDING:1,PROCESSING:2,FAILED:4,SUCCESSED:8,PROCESSED:16,DEQUEUED:32,SOLVED:64,END:128};n.CIFLAG={NONE:0,BASE_64:1,USE_FUNCTION:2,REPLACE_VARIABLES:4,REPLACE_VARIABLES_EVALUATED:8,ESCAPE:16,REPLACE_BLOCK_CALLS:32,
REMOVE_DELIMTTERS:64,ESCAPE_SPECIAL_CHARS:128,USE_REGEX:256,USE_FILTREX:512,CASCADE:1024,EXPRESSION:2048,DONT_PARSE:4096,TO_HEX:8192,REPLACE_HEX:16384,WAIT:32768,DONT_ESCAPE:65536,END:131072};n.CI_CORDER={};n.ECIType={BOOL:0,BOX:1,COLOUR:2,ENUMERATION:3,FILE:4,FLAGS:5,FLOAT:6,INTEGER:7,MATRIX:8,OBJECT:9,REFERENCE:10,QUATERNION:11,RECTANGLE:12,STRING:13,VECTOR:14,VECTOR2D:15,VECTOR4D:16,ICON:17,IMAGE:18,BANNER:19,LOGO:20,STRUCTURE:21,BANNER2:22,ICON_SET:23,SCRIPT:24,EXPRESSION:25,RICHTEXT:26,ARGUMENT:27,
JSON_DATA:28,EXPRESSION_EDITOR:29,WIDGET_REFERENCE:30,DOM_PROPERTIES:31,BLOCK_REFERENCE:32,BLOCK_SETTINGS:33,FILE_EDITOR:34,END:35,UNKNOWN:-1};n.ITEM_TYPE={FILE:"BTFILE",WIDGET:"WIDGET",BLOCK:"BLOCK",TEXT:"TEXT",EXPRESSION:"EXPRESSION"};n.EXPRESSION_PARSER||(n.EXPRESSION_PARSER={});n.COMPONENT_NAMES={XIDEVE:"xideve",XNODE:"xnode",XBLOX:"xblox",XFILE:"xfile",XACE:"xace",XEXPRESSION:"xexpression",XCONSOLE:"xconsole",XTRACK:"xtrack"};n.WIDGET_REFERENCE_MODE={BY_ID:"byid",BY_CLASS:"byclass",BY_CSS:"bycss",
BY_EXPRESSION:"expression"};n.VIEW_SPLIT_MODE={DESIGN:1,SOURCE:2,SPLIT_VERTICAL:6,SPLIT_HORIZONTAL:7};n.RESOURCE_VARIABLES={ACE:"ACE",APP_URL:"APP_URL",SITE_URL:"SITE_URL"};n.EVENTS={ERROR:"onError",STATUS:"onStatus",ON_CREATED_MANAGER:"onCreatedManager",ON_ITEM_SELECTED:"onItemSelected",ON_ITEM_REMOVED:"onItemRemoved",ON_ITEM_CLOSED:"onItemClosed",ON_ITEM_ADDED:"onItemAdded",ON_ITEM_MODIFIED:"onItemModified",ON_NODE_SERVICE_STORE_READY:"onNodeServiceStoreReady",ON_FILE_STORE_READY:"onFileStoreReady",
ON_CONTEXT_MENU_OPEN:"onContextMenuOpen",ON_CI_UPDATE:"onCIUpdate",ON_WIDGET_READY:"onWidgetReady",ON_CREATED_WIDGET:"onWidgetCreated",RESIZE:"onResize",ON_MODULE_RELOADED:"onModuleReloaded",ON_MODULE_UPDATED:"onModuleUpdated",ON_DID_OPEN_ITEM:"onDidOpenItem",ON_DID_RENDER_COLLECTION:"onDidRenderCollection",ON_PLUGIN_LOADED:"onPluginLoaded",ON_PLUGIN_READY:"onPluginReady",ALL_PLUGINS_READY:"onAllPluginsReady",ON_CREATE_EDITOR_BEGIN:"onCreateEditorBegin",ON_CREATE_EDITOR_END:"onCreateEditorEnd",REGISTER_EDITOR:"registerEditor",
ON_EXPRESSION_EDITOR_ADD_FUNCTIONS:"onExpressionEditorAddFunctions",ON_ACE_READY:"onACEReady",ON_UNSAVED_CONTENT:"onUnSavedContent",ON_FILE_CHANGED:"fileChanged",ON_FILE_DELETED:"fileDeleted",IMAGE_LOADED:"imageLoaded",IMAGE_ERROR:"imageError",UPLOAD_BEGIN:"uploadBegin",UPLOAD_PROGRESS:"uploadProgress",UPLOAD_FINISH:"uploadFinish",UPLOAD_FAILED:"uploadFailed",ON_FILE_CONTENT_CHANGED:"onFileContentChanged",ON_COPY_BEGIN:"onCopyBegin",ON_COPY_END:"onCopyEnd",ON_DELETE_BEGIN:"onDeleteBegin",ON_DELETE_END:"onDeleteEnd",
ON_MOVE_BEGIN:"onMoveBegin",ON_MOVE_END:"onMoveEnd",ON_CHANGED_CONTENT:"onChangedContent",ON_COMPRESS_BEGIN:"onCompressBegin",ON_COMPRESS_END:"onCompressEnd",ON_COMPONENT_READY:"onComponentReady",ON_ALL_COMPONENTS_LOADED:"onAllComponentsLoaded",ON_APP_READY:"onAppReady",ON_CREATE_STORE:"onCreateStore",ON_STORE_CREATED:"onStoreCreated",ON_STORE_CHANGED:"onStoreChanged",ON_STATUS_MESSAGE:"onStatusMessage",SAVE_LAYOUT:"layoutSave",RESTORE_LAYOUT:"layoutRestore",ON_SHOW_PANEL:"onShowPanel",ON_PANEL_CLOSED:"onPanelClosed",
ON_PANEL_CREATED:"onPanelCreated",ON_MAIN_VIEW_READY:"onMainViewReady",ON_MAIN_MENU_READY:"onMainMenuReady",ON_MAIN_MENU_OPEN:"onMainMenuOpen",ON_VIEW_REMOVED:"onViewRemoved",ON_VIEW_SHOW:"onViewShow",ON_VIEW_HIDE:"onViewHide",ON_VIEW_ADDED:"onViewAdded",ON_OPEN_VIEW:"onOpenView",ON_VIEW_MAXIMIZE_START:"onViewMaximizeStart",ON_VIEW_MAXIMIZE_END:"onViewMaximizeEnd",ON_CONTAINER_ADDED:"onContainerAdded",ON_CONTAINER_REMOVED:"onContainerRemoved",ON_REMOVE_CONTAINER:"onRemoveContainer",ON_CONTAINER_REPLACED:"onContainerReplaced",
ON_CONTAINER_SPLIT:"onContainerSplit",ON_RENDER_WELCOME_GRID_GROUP:"onRenderWelcomeGridGroup",ON_DND_SOURCE_OVER:"/dnd/source/over",ON_DND_START:"/dnd/start",ON_DND_DROP_BEFORE:"/dnd/drop/before",ON_DND_DROP:"/dnd/drop",ON_DND_CANCEL:"/dnd/cancel"};n.DIALOG_SIZE={SIZE_NORMAL:"size-normal",SIZE_SMALL:"size-small",SIZE_WIDE:"size-wide",SIZE_LARGE:"size-large"};n.DIALOG_TYPE={DEFAULT:"type-default",INFO:"type-info",PRIMARY:"type-primary",SUCCESS:"type-success",WARNING:"type-warning",DANGER:"type-danger"};
f.mixin(n,{LAYOUT_RIGHT_CENTER_BOTTOM:"LAYOUT_RIGHT_CENTER_BOTTOM",LAYOUT_CENTER_BOTTOM:"LAYOUT_CENTER_BOTTOM",LAYOUT_CENTER_RIGHT:"LAYOUT_CENTER_RIGHT",LAYOUT_LEFT_CENTER_RIGHT:"LAYOUT_LEFT_CENTER_RIGHT",LAYOUT_LEFT_CENTER_RIGHT_BOTTOM:"LAYOUT_LEFT_CENTER_RIGHT_BOTTOM"});m.fromJson=function(c,b){var d=null,a=!1;b=!0;try{d=eval("("+c+")")}catch(e){a=!0}if(a){a=c.substring(c.indexOf("{"),c.lastIndexOf("}")+1);try{a&&(d=eval("("+a+")"))}catch(e){!1!==b&&console.error("error in json parsing! "+c);if(-1!==
c.indexOf("error"))return{jsonrpc:"2.0",result:{error:{code:1,message:c,data:null}},id:0};throw Error(c);}}return d};return n})},"xide/utils":function(){define(["dcl/dcl"],function(f){return f(null,{declaredClass:"xide.utils"})})},"xide/utils/ObjectUtils":function(){define(["xide/utils","require","dojo/Deferred","xide/lodash"],function(f,n,l,m){function g(a){var b=parseInt(a,10);return b.toString()===a?b:a}function c(a,b,d,k){m.isNumber(b)&&(b=[b]);if(m.isEmpty(b))return a;if(m.isString(b))return c(a,
b.split(".").map(g),d,k);var e=b[0];if(1===b.length)return b=a[e],void 0!==b&&k||(a[e]=d),b;void 0===a[e]&&(m.isNumber(b[1])?a[e]=[]:a[e]={});return c(a[e],b.slice(1),d,k)}function b(a,c){m.isNumber(c)&&(c=[c]);if(!m.isEmpty(a)){if(m.isEmpty(c))return a;if(m.isString(c))return b(a,c.split("."));var e=g(c[0]),d=a[e];if(1===c.length)void 0!==d&&(m.isArray(a)?a.splice(e,1):delete a[e]);else if(void 0!==a[e])return b(a[e],c.slice(1));return a}}"use strict";f.delegate=function(){function a(){}return function(b,
c){a.prototype=b;b=new a;a.prototype=null;c&&lang._mixin(b,c);return b}}();f.debounce=function(a,b,c,d,q,h,u){var e=a[b+"_debounced"];e||(e=a[b+"_debounced"]=m.debounce(c,d,q));!0!==h||a[b+"_debouncedFirst"]||(a[b+"_debouncedFirst"]=!0,c.apply(a,u));return e()};f.pluck=function(a,b){return m.map(a,b)};f.download=function(a,b){var c=document.createElement("a");b=m.isString(b)?b:JSON.stringify(b,null,2);c.setAttribute("href","data:text/plain;charset\x3dutf-8,"+encodeURIComponent(b));c.setAttribute("download",
a);c.style.display="none";document.body.appendChild(c);c.click();document.body.removeChild(c)};f.hasObject=function(a){var b=null;try{b=n(a)}catch(p){console.error("error in utils.hasObject ",p)}return b};f.toUrl=function(a){n({cacheBust:null,waitSeconds:5});return n.toUrl(a)};f.getObject=function(a,b){var c=null;if(f.isString(a)){try{c=n(a)}catch(q){}try{if(!c){var e=new l,c=n([a],function(a){e.resolve(a)});return e.promise}}catch(q){}return c}return f.isObject(a)?a:null!==c?c:b};f.toArray=function(a){var b=
[],c;for(c in a)b.push({name:c,value:a[c]});return b};f.toObject=function(a,b){if(!a)return{};if(!1!==b)return b.object(b.map(a,b.values));if(f.isObject(a)&&a[0])return a[0];b={};for(var c=0;c<a.length;++c)b[c]=a[c];return b};f.byString=function(a,b,c){b=b.replace(/\[(\w+)\]/g,".$1");b=b.replace(/^\./,"");for(b=b.split(".");b.length;)if(c=b.shift(),c in a)a=a[c];else return;return a};var d=Object.prototype.hasOwnProperty,a={has:function(a,b){if(m.isEmpty(a))return!1;m.isNumber(b)?b=[b]:m.isString(b)&&
(b=b.split("."));if(m.isEmpty(b)||0===b.length)return!1;for(var c=0;c<b.length;c++){var e=b[c];if((m.isObject(a)||m.isArray(a))&&d.call(a,e))a=a[e];else return!1}return!0},ensureExists:function(a,b,d){return c(a,b,d,!0)},set:function(a,b,d,k){return c(a,b,d,k)},insert:function(b,c,d,k){var e=a.get(b,c);k=~~k;m.isArray(e)||(e=[],a.set(b,c,e));e.splice(k,0,d)},empty:function(b,c){if(m.isEmpty(c))return b;if(!m.isEmpty(b)){var e,k;if(!(e=a.get(b,c)))return b;if(m.isString(e))return a.set(b,c,"");if(m.isBoolean(e))return a.set(b,
c,!1);if(m.isNumber(e))return a.set(b,c,0);if(m.isArray(e))e.length=0;else if(m.isObject(e))for(k in e)d.call(e,k)&&delete e[k];else return a.set(b,c,null)}},push:function(b,c){var e=a.get(b,c);m.isArray(e)||(e=[],a.set(b,c,e));e.push.apply(e,Array.prototype.slice.call(arguments,2))},coalesce:function(b,c,d){for(var e,q=0,h=c.length;q<h;q++)if(void 0!==(e=a.get(b,c[q])))return e;return d},get:function(b,c,d){m.isNumber(c)&&(c=[c]);if(m.isEmpty(c))return b;if(m.isEmpty(b)&&b&&null===b.innerHTML)return d;
if(m.isString(c))return a.get(b,c.split("."),d);var e=g(c[0]);if(1===c.length){if(b&&void 0===b[e])return d;if(b)return b[e]}return b?a.get(b[e],c.slice(1),d):d},del:function(a,c){return b(a,c)}};f.getAt=function(b,c,d){return a.get(b,c,d)};f.setAt=function(b,c,d){return a.set(b,c,d)};f.hasAt=function(b,c){return a.has(b,c)};f.ensureAt=function(b,c,d){return a.ensureExists(b,c,d)};f.deleteAt=function(b,c){return a.del(b,c)};f.merge=function(a,b){for(var c in b)"object"!=typeof a[c]?a[c]=b[c]:"object"==
typeof b[c]&&(a[c]=f.merge(a[c],b[c]));return a};f.clone=function(a){if(!a||"object"!=typeof a||f.isFunction(a))return a;if(a.nodeType&&"cloneNode"in a)return a.cloneNode(!0);if(a instanceof Date)return new Date(a.getTime());if(a instanceof RegExp)return new RegExp(a);var b,c,e;if(f.isArray(a))for(b=[],c=0,e=a.length;c<e;++c)c in a&&b.push(f.clone(a[c]));else b=a.constructor?new a.constructor:{};return f._mixin(b,a,f.clone)};f._mixin=function(a,b,c){var d,e,h={};for(d in b)e=b[d],d in a&&(a[d]===
e||d in h&&h[d]===e)||(a[d]=c?c(e):e);return a};f.mixin=function(a,b){if(b){a||(a={});for(var c=arguments.length,d=1;d<c;d++)f._mixin(a,arguments[d])}return a};f.cloneKeys=function(a,b){var c={},d;for(d in a)if(!0!==b||d in a)c[d]=a[d];return c};f.isArray=function(a){return m.isArray(a)};f.isObject=function(a){return m.isObject(a)};f.isString=function(a){return m.isString(a)};f.isNumber=function(a){return m.isNumber(a)};f.isFunction=function(a){return m.isFunction(a)};return f})},"xide/lodash":function(){define([],
function(f){if("undefined"!==typeof _)return _;if(f&&f._)return f._;console.error("error loading lodash",global._)})},"xlog/Server":function(){define(["dcl/dcl","xide/types","xide/factory","dojo/node!winston"],function(f,n,l,m){return f(null,{declaredClass:"xlog.Server",fileLogger:null,loggly:null,delegate:null,publishLog:!0,loggers:{},constructor:function(g){for(var c in arguments)arguments.hasOwnProperty(c)&&(this[c]=g[c])},createLogger:function(g){var c=new m.Logger({transports:[new m.transports.File(g)]});
if(this.publishLog)c.on("logging",function(b,c,a,e){e.logId=g.filename;b={level:c,message:a,data:e,time:(new Date).getTime()};l.publish(n.EVENTS.ON_SERVER_LOG_MESSAGE,b)});return c},start:function(g){this.loggers={};this.options=g;if(g.fileLogger&&(this.fileLogger=m.add(m.transports.File,g.fileLogger),this.publishLog))this.fileLogger.on("logging",function(c,b,d,a){c={level:b,message:d,data:a,time:(new Date).getTime()};l.publish(n.EVENTS.ON_SERVER_LOG_MESSAGE,c)});g.loggly&&(this.loggly=m.add(m.transports.Loggly,
g.loggly));null===g.console&&m.remove(m.transports.Console)}})})},"xide/factory":function(){define(["dcl/dcl"],function(f){return new f(null,{declaredClass:"xide/factory"})})},"nxapp/types":function(){define(["dojo/_base/declare"],function(f){return f("nxapp.types",null,{})})},"nxapp/utils/FileUtils":function(){define("dojo/_base/json dojo/node!path dojo/node!fs dojo/node!util nxapp/utils xdojo/has!host-node?dojo/node!glob-fs xdojo/has!host-node?dojo/node!glob-base xdojo/has!host-node?dojo/node!glob".split(" "),
function(f,n,l,m,g,c,b,d){g.list=function(a){try{var d={},r=b(a);r.base&&(d.cwd=r.base,r.isGlob&&(a=r.glob));var p=(new c).readdirSync(a,d),k=[];_.each(p,function(a){k.push((d.cwd?d.cwd+n.sep:"")+a)})}catch(q){return null}return k};g.__toObject=function(a){try{var b=l.statSync(a,function(a){}),c=b.isDirectory();return{path:a,sizeBytes:b.size,size:c?"Folder":"",owner:b.uid,group:b.gid,mode:b.mode,isDir:c,directory:c,name:n.win32.basename(a),fileType:c?"folder":"file",modified:b.mtime.getTime()/1E3}}catch(p){return{path:a,
sizeBytes:0,size:0,owner:0,group:0,mode:0,directory:!1,mime:"unknown",name:n.win32.basename(a),fileType:"file",modified:0}}};g.ls=function(a){function b(b,c){return b?b=!p||c&&"/"!==c?a.join(c,b):""+b:""}var c={},p="win32"===process.platform;if("/*"===a&&p){var k=[];flop.read("/",function(a,b){_.each(b.files,function(a){k.push({path:"/"+a.name+":",sizeBytes:0,size:0,owner:0,group:0,mode:0,directory:!0,mime:"unknown",name:a.name,fileType:"folder",modified:0,drive:!0})})})}else{var q="";if(p)if(5===
a.length){var h=a.split(":/");2==h.length&&(q=h[0][1]+":/",c={root:q},a="/*")}else h=a.split(":/"),2==h.length&&(q=h[0][1]+":/",c={root:q},a=""+h[1]);c=d.sync(a,c);_.isArray(c)||(c=[c]);k=[];_.each(c,function(a){a=g.__toObject(a);p&&a&&a.path&&(a.path=n.resolve(b(a.path)));a.realPath=n.resolve(a.path);a&&k.push(a)});return k}};g.resolve=function(a){var b=n.resolve(a);try{if(l.statSync(b))return b}catch(p){return b}try{if(l.statSync(a))return a;var c=process.cwd()+n.sep+a;if(l.statSync(c))return c}catch(p){}return null};
g.isDirectory=function(a){return(a=g.resolve(a))&&(a=l.statSync(a))&&a.isDirectory()?!0:!1};g.getExtension=function(a){a=n.extname(a||"").split(".");return a[a.length-1]};g.readFile=function(a){var b=l.statSync(a).size,c=new Buffer(b);a=l.openSync(a,"r");if(!b)return"";l.readSync(a,c,0,b,0);l.closeSync(a);return c.toString()};g.writeFile=function(a,b){l.writeFile(a,b,function(a){a&&console.log(a)})};g.writeJSONFile=function(a,b){b=JSON.stringify(b,null,4);l.writeFile(a,b,function(a){a&&console.log(a)})};
return g})},"nxapp/utils":function(){define(["dojo/_base/declare"],function(f){return f("nxapp.utils",null,{})})},"xdojo/has":function(){define(["dojo/has"],function(f){return f})},"nxapp/utils/TCPUtils":function(){define(["dojo/node!net","nxapp/utils","nxapp/server/WebSocket","nxapp/server/DeviceServer","nxapp/server/FileServer"],function(f,n,l,m,g){n.checkPort=function(c,b,d){var a=new f.Socket,e=null;a.on("connect",function(){e="open";a.end()});a.setTimeout(1500);a.on("timeout",function(){e="closed";
a.destroy()});a.on("error",function(a){e="closed"});a.on("close",function(a){d(null,e,b,c)});a.connect(c,b)};n.createSocketServer=function(c,b){var d=new l;d.init({options:{port:c.socket_server.port,context:b,host:c.socket_server.host}});d.ctx=b;d.start(null,c);return l};n.createDeviceServer=function(c,b){var d=new m;d.init({options:{port:c.socket_server.port,context:b,host:c.socket_server.host}});d.ctx=b;d.start(null,c);return d};n.createFileServer=function(c,b){var d=new g;d.init({options:{port:c.socket_server.port,
context:b,host:c.socket_server.host}});d.ctx=b;console.error("create file server "+c.socket_server.host);d.start(null,c);return l};n.connect=function(c,b){};return n})},"nxapp/server/WebSocket":function(){define("dcl/dcl dojo/_base/lang xide/types xide/factory nxapp/server/ServerBase nxapp/utils/_LogMixin nxapp/server/_CommandsParserMixin dojo/node!http dojo/node!sockjs dojo/node!colors xide/utils".split(" "),function(f,n,l,m,g,c,b,d,a,e,r){var p=!1;return f([g,c,b],{declaredClass:"nxapp.server.WebSocket",
_io_socket:null,clients:null,handleManagerCommand:function(a,b){switch(a.manager_command){case l.SOCKET_SERVER_COMMANDS.MANAGER_TEST:console.dir("Test Manager command");break;case l.SOCKET_SERVER_COMMANDS.WATCH:(b=this.ctx.getFileManager())&&b.watch(a.path,a.watch);break;case l.SOCKET_SERVER_COMMANDS.MQTT_PUBLISH:return this.sendMQTTMessage(a,b);case l.SOCKET_SERVER_COMMANDS.MANAGER_START_DRIVER:return this.startDriver(a,b);case l.SOCKET_SERVER_COMMANDS.GET_DEVICE_VARIABLES:return this.getVariables(a,
b);case l.SOCKET_SERVER_COMMANDS.WRITE_LOG_MESSAGE:this.logClientMessage(a);break;case l.SOCKET_SERVER_COMMANDS.MANAGER_STOP_DRIVER:this.stopDriver(a);break;case l.SOCKET_SERVER_COMMANDS.MANAGER_STATUS:a={message:"returning status",deviceConnections:this.options.context.getConnectionManager().getNumberOfConnections()};this.emit(l.SOCKET_SERVER_COMMANDS.SIGNAL_RESPONSE,JSON.stringify(a));break;case l.SOCKET_SERVER_COMMANDS.MANAGER_CLOSE_ALL:this.options.context.getConnectionManager().closeAll()}},
handleDeviceCommand:function(a,b){var c=a.device_command,d=this.options.context,e=this;p=!1;this.showDebugMsg("socket_server")&&p&&console.log("Handle device command: "+c+" | "+l.SOCKET_SERVER_COMMANDS.CALL_METHOD);console.error("handle device command",a);var k=d.getConnectionManager().connect(a.host,a.protocol,a.port,null,null,b);b||p&&console.error("---have no client connect");try{d.getConnectionManager().registerFeedBack(k,function(b,c){e.profile.debug.debugDevices&&p&&console.log("Data received from "+
b.host);if(_.isString(c))a.lastResponse=""+c;else if(_.isObject(c))try{a.lastResponse=JSON.stringify(c)}catch(A){p&&console.error("error serializing data")}e.onDeviceMessage(b,c)})}catch(x){console.error("-register feed back function failed",x),console.trace()}try{switch(c){case l.SOCKET_SERVER_COMMANDS.CALL_METHOD:this.options.context.getConnectionManager().callMethod(k,a,b);break;case l.SOCKET_SERVER_COMMANDS.DEVICE_SEND:this.options.context.getConnectionManager().send(k,a.command,a.options)}}catch(x){console.error("error command parser "+
c,x)}},broadCastMessage:function(a,b){for(var c=this.clients.length;c--;)if(void 0!==this.clients[c]){var d={event:a,data:_.isString(b)?JSON.parse(b):b};3===this.clients[c].readyState?(this.clients[c].close(),this.clients.remove(this.clients[c])):(p&&console.log(e.green("writing broadcast message "+d.event+" have "+this.clients.length+" clients readystate : "+this.clients[c].readyState)),d=JSON.stringify(d),this.clients[c].write(d))}else console.log("invalid data")},onFileChanged:function(a){this.broadCastMessage(l.EVENTS.ON_FILE_CHANGED,
{path:a.path,type:a.type})},start:function(b,c){this.profile=c;this.options=n.mixin(this.options,b);this.clients=[];var h=this;b=this.options.port;var e=this.options.host;if(b){this.initLogger(c.debug);this.log("Socket server running in "+b,"socket_server");c={};this.showDebugMsg("socket_server")||(c.log=function(){});c=a.createServer(c);var k=d.createServer(this._handler);c.installHandlers(k);k.listen(b,e);this._handleSocketEmits(c);m.publish(l.EVENTS.ON_WEBSOCKET_START,{socket_server:{port:b,socket_handler:c}},
this);c.on("connection",function(a){var b=h.clients.push(a);a.on("close",function(){p&&console.error("close connection : "+b);delete h.clients[b]})});return!0}console.error("Port must be provided into options");return!1},emit:function(a,b){console.log("emit + "+this.id+"#"+a,b);this.showDebugMsg("socket_server")&&!_.isString(b)&&_.isObject(b)&&(b=JSON.stringify(b));this.socket?this.socket.write(b):p&&console.error("-------- WebSocket::emit failed. Have no socket! "+a+" id "+this.id)},_handleSocketEmits:function(a){var b=
this.options.port,c=this;a.on("connection",function(a){c.socket=a;p&&console.log("client connected");m.publish(l.EVENTS.ON_WEBSOCKET_CONNECTION,{connection:{port:b,socket_handler:a}},this);a.on("data",function(b){n.isString(b)&&(b=dojo.fromJson(b));b.manager_command?c.handleManagerCommand(b,a):c.handleDeviceCommand(b,a)});a.on("close",function(){console.error("closed!")})})},constructor:function(){this.id=r.createUUID()}})})},"nxapp/server/ServerBase":function(){define(["dcl/dcl","xide/model/Base",
"xide/utils","xide/mixins/EventedMixin"],function(f,n,l,m){return f([n.dcl,m.dcl],{options:null,delegate:null,ctx:null,declaredClass:"nxapp.server.ServerBase",_defaultOptions:function(){return{delegate:this}},init:function(g){this.options=l.mixin(this._defaultOptions(),g.options)}})})},"xide/model/Base":function(){define(["dcl/dcl","dojo/_base/declare","xide/utils"],function(f,n,l){var m={declaredClass:"xide/model/Base",constructor:function(g){l.mixin(this,g)},getLabel:function(){return null},getID:function(){return null}};
n=n("xide/model/Base",null,m);n.dcl=f(null,m);return n})},"xide/mixins/EventedMixin":function(){define("dojo/_base/array dcl/dcl xdojo/declare xdojo/has xide/types xide/factory".split(" "),function(f,n,l,m,g,c){m={_didRegisterSubscribers:!1,subscribers:null,subscribes:{},emits:{},__events:null,addPublishFilter:function(b,c){b&&(null!=c?this.emits[b]=c:b in this.emits&&delete this.emits[b])},filterSubscribe:function(b){return this.subscribes?!1!==this.subscribes[b]:!0},filterPublish:function(b){return this.emits?
!1!==this.emits[b]:!0},subscribe:function(b,d,a){this.__events||(this.__events={});b=c.subscribe(b,d,a||this,this.filterSubscribe.bind(this));d=this.__events;a=0;for(var e=b.length;a<e;a++){var r=b[a].type;d[r]||(d[r]=[]);d[r].push(b[a])}return b},publish:function(b,d,a,e){var r=this;0<e?setTimeout(function(){c.publish(b,d,a||r,r.filterPublish.bind(r))}.bind(r),e):c.publish(b,d,a||r,r.filterPublish.bind(r))},_destroyHandle:function(b){},_destroyHandles:function(){if(this.__events){for(var b in this.__events)f.forEach(this.__events[b],
function(b){b&&b.remove&&b.remove()});delete this.__events}},destroy:function(){this._emit("destroy");this.inherited&&this.inherited(arguments);this._destroyHandles()},once:function(b,c){function a(){d.unsubscribe(b,c);return c.apply(d,arguments)}var d=this;a.listener=c;d._on(b,a);return this},_emit:function(b){if(this.__events){if(!this._didRegisterSubscribers&&this.subscribers){for(var c=0;c<this.subscribers.length;c++){var a=this.subscribers[c];this._on(a.event,a.handler,a.owner)}this._didRegisterSubscribers=
!0}if(!0===arguments[2])throw Error("Please use emit.sticky() instead of passing sticky\x3dtrue for event: "+b);a=this.__events[b];c=1<arguments.length?arguments[2]:null;if(a){var e;if("function"==typeof a)switch(arguments.length){case 1:return a.call(this);case 2:return a.call(this,arguments[1]);case 3:return a.call(this,arguments[1],arguments[2]);default:var r=Array.prototype.slice.call(arguments,1);e=a.apply(this,r)}else if(_.isArray(a))for(var r=Array.prototype.slice.call(arguments,1),a=a.slice(),
p,k=null,q=null,h=0,u=a.length;h<u;h++)k=a[h],q=k.owner||this,r&&r[0]&&(r[0].owner=r[0]?r[0].owner||q:null),k.handler&&(p=k.handler.apply(q,r)),void 0!==p&&(e=p),r&&r[0]&&r[0].owner&&(r[0].owner=null);c&&!0===c["public"]&&this.publish(b,r);return e}}},unsubscribe:function(b,c){if(!this.__events||!this.__events[b])return this;if("function"!==typeof c||!c)return f.forEach(this.__events[b],dojo.unsubscribe),delete this.__events[b],this.__events[b]=[],this;var a=this.__events[b];if(_.isArray(a)){var d=
[];_.each(a,function(a,b,e){(a.handler==c?a.handler:a.handler.listener==c&&a.handler.listener)&&d.push(a)});_.each(d,function(a){a.remove()});0===a.length&&delete this.__events[b]}else(this.__events[b].listener||this.__events[b])===c&&delete this.__events[b];return this},listeners:function(b){this.__events||(this.__events={});this.__events[b]||(this.__events[b]=[]);isArray(this.__events[b])||(this.__events[b]=[this.__events[b]]);return this.__events[b]},addHandle:function(b,c){this.__events||(this.__events=
{});this.__events[b]||(this.__events[b]=[]);c.type=b;this.__events[b].push(c);return c},__on:function(b,c,a,e){var d=e;"function"!=typeof a||e||(e=a,a=null);b=b.jquery?b:$(b);b.on(c,a,e);this.__events||(this.__events={});this.__events[c]||(this.__events[c]=[]);var p=this.__events[c];b={handler:d,owner:this,type:c,element:b,selector:a,remove:function(){p.remove(this);this.element.off(this.type,this.selector,this.handler)}};p.push(b);return b},_on_:function(b,c,a){try{this.__events||(this.__events=
{});this.__events[b]||(this.__events[b]=[]);var d=this.__events[b];if(!d)this.__events[b]=c;else if(_.isArray(d)){if(-1!=d.indexOf(c))return console.warn("adding same listener twice",b);c={handler:c,owner:a||this,type:b,remove:function(){d.remove(this);a&&a.__events&&a.__events[b]&&a.__events[b].remove(this);this.handler=this.owner=null;delete this.type}};d.push(c);return c}}catch(r){logError(r)}return this},_on:function(b,c,a){var d=this;_.isArray(b)||(b=[b]);b.forEach(function(b){d._on_(b,c,a)});
return this}};l=l(null,m);l.Impl=m;l.dcl=n(null,m);n.chainAfter(l.dcl,"destroy");return l})},"xdojo/declare":function(){define(["dojo/_base/declare"],function(f){return f})},"nxapp/utils/_LogMixin":function(){define(["dcl/dcl"],function(f){return f(null,{declaredClass:"nxapp.utils._LogMixin",debug_conf:null,logger:null,initLogger:function(f){this.debug_conf=f},log:function(f,l,m,g){l||(l=this._debugContext().main);l&&!this.showDebugMsg(l)||!this.logger||(m=m||"info",g.time=(new Date).getTime(),this.logger.log(m,
f,g))},logEx:function(f,l,m,g){this.logger?(l=l||"info",g=g||{},g.type=m||"Unknown",g.time=g.time||(new Date).getTime(),this.logger.log(l,f,g)):console.error("have no logger!")},showDebugMsg:function(f){if(null!=this.debug_conf)return this.debug_conf.all?!0:this.debug_conf[f]?!0:!1;this.debug_conf={all:!0};return!0}})})},"nxapp/server/_CommandsParserMixin":function(){define(["dcl/dcl","nxapp/types/Types","nxapp/utils/_console"],function(f,n,l){var m=!1;return f(null,{declaredClass:"nxapp.server._CommandsParserMixin",
handleManagerCommand:function(g,c){switch(g.manager_command){case n.SOCKET_SERVER_COMMANDS.MANAGER_TEST:console.dir("Test Manager command");break;case n.SOCKET_SERVER_COMMANDS.WATCH:(c=this.ctx.getFileManager())&&c.watch(g.path,g.watch);break;case n.SOCKET_SERVER_COMMANDS.MQTT_PUBLISH:return this.sendMQTTMessage(g,c);case n.SOCKET_SERVER_COMMANDS.MANAGER_START_DRIVER:return this.startDriver(g,c);case n.SOCKET_SERVER_COMMANDS.GET_DEVICE_VARIABLES:return this.getVariables(g,c);case n.SOCKET_SERVER_COMMANDS.WRITE_LOG_MESSAGE:this.logClientMessage(g);
break;case n.SOCKET_SERVER_COMMANDS.MANAGER_STOP_DRIVER:this.stopDriver(g);break;case n.SOCKET_SERVER_COMMANDS.MANAGER_STATUS:g={message:"returning status",deviceConnections:this.options.context.getConnectionManager().getNumberOfConnections()};this.emit(n.SOCKET_SERVER_COMMANDS.SIGNAL_RESPONSE,JSON.stringify(g));break;case n.SOCKET_SERVER_COMMANDS.MANAGER_CLOSE_ALL:this.options.context.getConnectionManager().closeAll()}},handleDeviceCommand:function(g,c){var b=g.device_command,d=this.options.context,
a=this;m=!1;this.showDebugMsg("socket_server")&&m&&console.log("Handle device command: "+b+" | "+n.SOCKET_SERVER_COMMANDS.CALL_METHOD);console.error("handle device command",g);var e=d.getConnectionManager().connect(g.host,g.protocol,g.port,null,null,c);c||m&&console.error("---have no client connect");try{d.getConnectionManager().registerFeedBack(e,function(b,c){a.profile.debug.debugDevices&&m&&console.log("Data received from "+b.host);if(_.isString(c))g.lastResponse=""+c;else if(_.isObject(c))try{g.lastResponse=
JSON.stringify(c)}catch(k){m&&console.error("error serializing data")}a.onDeviceMessage(b,c)})}catch(r){console.error("-register feed back function failed",r),console.trace()}try{switch(b){case n.SOCKET_SERVER_COMMANDS.CALL_METHOD:this.options.context.getConnectionManager().callMethod(e,g,c);break;case n.SOCKET_SERVER_COMMANDS.DEVICE_SEND:this.options.context.getConnectionManager().send(e,g.command,g.options)}}catch(r){console.error("error command parser "+b,r)}}})})},"nxapp/types/Types":function(){define(["dojo/_base/lang",
"xide/types/Types","xcf/types/Types"],function(f,n){f.mixin(n.EVENTS,{ON_FILE_CHANGED:"fileChanged",ON_CONNECTION_CREATED:"connectionCreated",ON_CONNECTION_ERROR:"connectionError",ON_WEBSOCKET_START:"webSocketStart",ON_WEBSOCKET_CONNECTION:"webSocketConnection",ON_MQTT_MESSAGE:"onMQTTMessage",ON_DEVICE_MESSAGE:"onDeviceMessage",ON_COMMAND_FINISH:"onCommandFinish",ON_COMMAND_ERROR:"onCommandError",ON_DEVICE_DISCONNECTED:"onDeviceDisconnected",ON_DEVICE_CONNECTED:"onDeviceConnected",STORE_CHANGED:"storeChange",
BEFORE_STORE_CHANGE:"beforeStoreChange",STORE_REFRESHED:"storeRefreshed",ON_DID_OPEN_ITEM:"onDidOpenItem",ON_SHOW_PANEL:"onShowPanel",ITEM_SELECTED:"itemSelected",ERROR:"fileOperationError",STATUS:"fileOperationStatus",IMAGE_LOADED:"imageLoaded",IMAGE_ERROR:"imageError",RESIZE:"resize",UPLOAD_BEGIN:"uploadBegin",UPLOAD_PROGRESS:"uploadProgress",UPLOAD_FINISH:"uploadFinish",ON_CLIPBOARD_COPY:"onClipboardCopy",ON_CLIPBOARD_PASTE:"onClipboardPaste",ON_CLIPBOARD_CUT:"onClipboardCut",ON_CONTEXT_MENU_OPEN:"onContextMenuOpen",
ON_PLUGIN_LOADED:"onPluginLoaded",ON_PLUGIN_READY:"onPluginReady",ON_MAIN_VIEW_READY:"onMainViewReady2",REGISTER_EDITOR:"registerEditor",REGISTER_ACTION:"registerAction",ON_FILE_CONTENT_CHANGED:"onFileContentChanged",ON_PANEL_CLOSED:"onPanelClosed",ON_PANEL_CREATED:"onPanelCreated",SET_DEVICE_VARIABLES:"setDeviceVariables"});n.LOG_CONTEXT={DEVICE:"Device"};return n})},"xcf/types/Types":function(){define("xaction/types xide/types/Types xide/types xide/utils/ObjectUtils xide/utils xide/utils/HexUtils".split(" "),
function(f,n,l,m,g,c){String.prototype.setBytes||(String.prototype.setBytes=function(b){this.bytes=b});String.prototype.getBytes||(String.prototype.getBytes=function(){return this.bytes?this.bytes:c.stringToBuffer(this)});String.prototype.getString||(String.prototype.getString=function(){return this.string});String.prototype.setString||(String.prototype.setString=function(b){this.string=b});String.prototype.hexString||(String.prototype.hexString=function(){var b=this.getBytes();return c.bufferToHexString(b)});
l.VARIABLE_FLAGS={PUBLISH:2,PUBLISH_IF_SERVER:4};l.LOGGING_FLAGS={NONE:0,GLOBAL_CONSOLE:1,STATUS_BAR:2,POPUP:4,FILE:8,DEV_CONSOLE:16,DEVICE_CONSOLE:32};g.mixin(l.ITEM_TYPE,{DEVICE:"Device",DEVICE_GROUP:"Device Group",DRIVER:"Driver",DRIVER_GROUP:"Driver Group",PROTOCOL:"Protocol",PROTOCOL_GROUP:"Protocol Group"});l.SERVICE_STATUS={OFFLINE:"offline",ONLINE:"online",TIMEOUT:"timeout"};l.PROTOCOL={TCP:"tcp",UDP:"udp",SERIAL:"serial",DRIVER:"driver",SSH:"ssh",MQTT:"mqtt"};g.mixin(l.EVENTS,{ON_DEBUGGER_READY:"onDebuggerReady",
ON_DEVICE_SELECTED:"onDeviceSelected",ON_DEVICE_GROUP_SELECTED:"onDeviceGroupSelected",ON_PROTOCOL_SELECTED:"onProtocolSelected",ON_PROTOCOL_GROUP_SELECTED:"onProtocolGroupSelected",ON_PROTOCOL_CHANGED:"onProtocolChanged",ON_MQTT_MESSAGE:"onMQTTMessage",ON_DEVICE_MESSAGE:"onDeviceMessage",ON_DEVICE_MESSAGE_EXT:"onDeviceMessageExt",ON_COMMAND_FINISH:"onCommandFinish",ON_COMMAND_PROGRESS:"onCommandProgress",ON_COMMAND_PAUSED:"onCommandPaused",ON_COMMAND_STOPPED:"onCommandStopped",ON_COMMAND_ERROR:"onCommandError",
ON_DEVICE_DISCONNECTED:"onDeviceDisconnected",ON_DEVICE_CONNECTED:"onDeviceConnected",ON_DEVICE_COMMAND:"onDeviceCommand",ON_DEVICE_STATE_CHANGED:"onDeviceStateChanged",ON_DEVICE_DRIVER_INSTANCE_READY:"onDeviceDriveInstanceReady",ON_DRIVER_SELECTED:"onDriverSelected",ON_DRIVER_GROUP_SELECTED:"onDriverGroupSelected",ON_DRIVER_VARIABLE_ADDED:"onDriverVariableAdded",ON_DRIVER_VARIABLE_REMOVED:"onDriverVariableRemoved",ON_DRIVER_VARIABLE_CHANGED:"onDriverVariableChanged",ON_DRIVER_COMMAND_ADDED:"onDriverCommandAdded",
ON_DRIVER_COMMAND_REMOVED:"onDriverCommandRemoved",ON_DRIVER_COMMAND_CHANGE:"onDriverVariableChanged",ON_SCOPE_CREATED:"onScopeCreated",ON_DRIVER_MODIFIED:"onDriverModified",SET_DEVICE_VARIABLES:"setDeviceVariables",ON_SERVER_LOG_MESSAGE:"onServerLogMessage",ON_CLIENT_LOG_MESSAGE:"onClientLogMessage",ON_DEVICE_SERVER_CONNECTED:"onDeviceServerConnected",ON_RUN_CLASS_EVENT:"onRunClassEvent"});l.MESSAGE_SOURCE={DEVICE:"DEVICE",GUI:"GUI",BLOX:"BLOX",CODE:"CODE"};l.DEVICE_STATE={CONNECTING:"DeviceIsConnecting",
CONNECTED:"DeviceIsConnected",SYNCHRONIZING:"DeviceIsSynchronizing",READY:"DeviceIsReady",DISCONNECTED:"DeviceIsDisconnected",DISABLED:"DeviceIsDisabled",LOST_DEVICE_SERVER:"LostDeviceServerConnection"};l.DRIVER_PROPERTY={CF_DRIVER_NAME:"CF_DRIVER_NAME",CF_DRIVER_ICON:"CF_DRIVER_ICON",CF_DRIVER_CLASS:"CF_DRIVER_CLASS",CF_DRIVER_ID:"CF_DRIVER_ID",CF_DRIVER_COMMANDS:"CF_DRIVER_COMMANDS",CF_DRIVER_VARIABLES:"CF_DRIVER_VARIABLES",CF_DRIVER_RESPONSES:"CF_DRIVER_RESPONSES"};l.PROTOCOL_PROPERTY={CF_PROTOCOL_TITLE:"Title",
CF_PROTOCOL_ICON:"CF_PROTOCOL_ICON",CF_PROTOCOL_CLASS:"CF_PROTOCOL_CLASS",CF_PROTOCOL_ID:"CF_PROTOCOL_ID",CF_PROTOCOL_COMMANDS:"CF_PROTOCOL_COMMANDS",CF_PROTOCOL_VARIABLES:"CF_PROTOCOL_VARIABLES",CF_PROTOCOL_RESPONSES:"CF_PROTOCOL_RESPONSES"};l.DEVICE_PROPERTY={CF_DEVICE_DRIVER:"Driver",CF_DEVICE_HOST:"Host",CF_DEVICE_PORT:"Port",CF_DEVICE_PROTOCOL:"Protocol",CF_DEVICE_TITLE:"Title",CF_DEVICE_ID:"Id",CF_DEVICE_ENABLED:"Enabled",CF_DEVICE_OPTIONS:"Options",CF_DEVICE_DRIVER_OPTIONS:"DriverOptions",
CF_DEVICE_LOGGING_FLAGS:"Logging Flags"};l.LOG_OUTPUT={DEVICE_CONNECTED:"Device Connected",DEVICE_DISCONNECTED:"Device Disonnected",RESPONSE:"Response",SEND_COMMAND:"Send Command",DEVICE_ERROR:"Device Error"};l.DEFAULT_DEVICE_LOGGING_FLAGS={};f=l.LOGGING_FLAGS;l.DEFAULT_DEVICE_LOGGING_FLAGS[l.LOG_OUTPUT.DEVICE_CONNECTED]=f.GLOBAL_CONSOLE|f.POPUP|f.STATUS_BAR|f.DEVICE_CONSOLE;l.DEFAULT_DEVICE_LOGGING_FLAGS[l.LOG_OUTPUT.DEVICE_DISCONNECTED]=f.GLOBAL_CONSOLE|f.POPUP|f.STATUS_BAR|f.DEVICE_CONSOLE;l.DEFAULT_DEVICE_LOGGING_FLAGS[l.LOG_OUTPUT.RESPONSE]=
f.DEVICE_CONSOLE|f.GLOBAL_CONSOLE;l.DEFAULT_DEVICE_LOGGING_FLAGS[l.LOG_OUTPUT.SEND_COMMAND]=f.DEVICE_CONSOLE|f.GLOBAL_CONSOLE;l.DEFAULT_DEVICE_LOGGING_FLAGS[l.LOG_OUTPUT.DEVICE_ERROR]=f.GLOBAL_CONSOLE|f.POPUP|f.STATUS_BAR|f.DEV_CONSOLE|f.DEVICE_CONSOLE;l.DRIVER_FLAGS={RUNS_ON_SERVER:2,DEBUG:4,SERVER:16};g.mixin(l.ITEM_TYPE,{CF_DRIVER_VARIABLE:"DriverVariable",CF_DRIVER_BASIC_COMMAND:"DriverBasicCommand",CF_DRIVER_CONDITIONAL_COMMAND:"DriverConditionalCommand",CF_DRIVER_RESPONSE_VARIABLE:"DriverResponseVariable"});
l.BLOCK_GROUPS={CF_DRIVER_VARIABLE:"DriverVariable",CF_DRIVER_BASIC_COMMAND:"DriverBasicCommand",CF_DRIVER_CONDITIONAL_COMMAND:"DriverConditionalCommand",CF_DRIVER_RESPONSE_VARIABLE:"DriverResponseVariable",CF_DRIVER_RESPONSE_BLOCKS:"conditionalProcess",CF_DRIVER_RESPONSE_VARIABLES:"processVariables",CF_DRIVER_BASIC_VARIABLES:"basicVariables"};l.COMMAND_TYPES={BASIC_COMMAND:"basic",CONDITIONAL_COMMAND:"conditional",INIT_COMMAND:"init"};g.mixin(l.ECIType,{DEVICE_NETWORK_SETTINGS:l.ECIType.END+1,DRIVER_COMMAND_SETTINGS:"CommandSettings"});
l.VFS_ROOTS={SYSTEM_DRIVERS:"system_drivers",USER_DRIVERS:"user_drivers"};l.SOCKET_SERVER_COMMANDS={SIGNAL_MANAGER:"Manager_command",RUN_FILE:"Run_File",RUN_CLASS:"Run_Class",RUN_APP_SERVER_CLASS:"Run_App_Server_Class",RUN_APP_SERVER_CLASS_METHOD:"Run_App_Server_Class_Method",RUN_APP_SERVER_COMPONENT_METHOD:"Run_App_Server_Component_Method",CANCEL_APP_SERVER_COMPONENT_METHOD:"Cancel_App_Server_Component_Method",ANSWER_APP_SERVER_COMPONENT_METHOD_INTERRUPT:"Answer_App_Server_Component_Method_Interrupt",
SIGNAL_DEVICE:"Device_command",SIGNAL_RESPONSE:"WebSocket_response",MANAGER_TEST:"Manager_Test",MANAGER_CLOSE_ALL:"Close_All_Connections",MANAGER_STATUS:"status",MANAGER_START_DRIVER:"startDriver",START_DEVICE:"startDevice",STOP_DEVICE:"stopDevice",CREATE_CONNECTION:"createConnection",MANAGER_STOP_DRIVER:"stopDriver",DEVICE_SEND:"Device_Send",CALL_METHOD:"Call_Method",RUN_SHELL:"Run_Shell",WATCH:"Watch_Directory",MQTT_PUBLISH:"MQTT_PUBLISH",MQTT_SUBSCRIBE:"MQTT_SUBSCRIBE",GET_DEVICE_VARIABLES:"getVariables",
WRITE_LOG_MESSAGE:"Write_Log_Message",INIT_DEVICES:"INIT_DEVICES",PROTOCOL_METHOD:"PROTOCOL_METHOD"};return l})},"xaction/types":function(){define(["xide/types","dojo/_base/lang"],function(f,n){n.mixin(f.EVENTS,{ON_ACTION_CHANGE_CONTEXT:"onChangeActionContext",ON_ACTION_CONTEXT_CHANGED:"onActionContextChanged",REGISTER_ACTION:"registerAction",SET_ITEM_ACTIONS:"onSetItemsActions",ON_CLIPBOARD_COPY:"onClipboardCopy",ON_CLIPBOARD_PASTE:"onClipboardPaste",ON_CLIPBOARD_CUT:"onClipboardCut",ON_RENDER_ACTIONS:"onRenderActions",
ON_DID_ACTION:"onDidAction",ON_AFTER_ACTION:"onAfterAction"});f.ACTION={LAYOUT:"View/Layout",COLUMNS:"View/Columns",SELECTION:"File/Select",CLIPBOARD:"Edit/Clipboard",UNDO:"Edit/Undo",REDO:"Edit/Redo",CLIPBOARD_COPY:"Edit/Clipboard/Copy",CLIPBOARD_PASTE:"Edit/Clipboard/Paste",CLIPBOARD_CUT:"Edit/Clipboard/Cut",COPY:"File/Copy",MOVE:"File/Move",RENAME:"File/Rename",DELETE:"File/Delete",OPEN:"File/Open",EDIT:"File/Edit",SAVE:"File/Save",SEARCH:"File/Search",TOOLBAR:"View/Show/Toolbar",STATUSBAR:"View/Show/Statusbar",
BREADCRUMB:"View/Show/Breadcrumb",HEADER:"View/Show/Header",DOWNLOAD:"File/Download",DOWNLOAD_TO:"File/downloadTo",INFO:"File/Info",COMPRESS:"File/Compress",RELOAD:"File/Reload",UPLOAD:"File/Upload",PREVIEW:"File/Preview",OPEN_IN:"File/Open In",INSERT_IMAGE:"insertImage",COPY_PASTE:"copypaste",DND:"dnd",OPTIONS:"options",NEW_FILE:"File/New/New File",NEW_DIRECTORY:"File/New/New Folder",GET_CONTENT:"get",SET_CONTENT:"set",FIND:"File/Find",CUSTOM:"custom",PERMA_LINK:"permaLink",ADD_MOUNT:"ADD_MOUNT",
REMOVE_MOUNT:"REMOVE_MOUNT",EDIT_MOUNT:"EDIT_MOUNT",PERSPECTIVE:"PERSPECTIVE",RUN:"File/Run",GO_UP:"Navigation/Go Up",STOP:"File/Stop",CLOSE:"View/Close",FULLSCREEN:"View/Fullscreen",OPEN_IN_TAB:"File/OpenInNewTab",SOURCE:"Navigation/Source",RIBBON:"View/Show/Ribbon",MAIN_MENU:"View/Show/MainMenu",NAVIGATION:"View/Show/Navigation",BASH_CONSOLE:"File/Console/Bash",JS_CONSOLE:"File/Console/JS",PHP_CONSOLE:"File/Console/PHP",CONSOLE:"File/Console/PHP",SIZE_STATS:"View/Show/SizeStats",WELCOME:"Window/Welcome",
CONTEXT_MENU:"File/ContextMenu"};f.ACTION_TYPE={MULTI_TOGGLE:"multiToggle",SINGLE_TOGGLE:"singleToggle"};f.ACTION_ICON={CLIPBOARD_COPY:"fa-copy",CLIPBOARD_PASTE:"fa-paste",UPLOAD:"fa-upload",RENAME:"el-icon-edit",DELETE:"text-danger fa-remove",RELOAD:"fa-refresh",EDIT:"fa-pencil",SAVE:"fa-floppy-o",SEARCH:"fa-search",NEW_DIRECTORY:"fa-magic",NEW_FILE:"fa-magic",RUN:"text-success el-icon-play",COMPRESS:"fa-file-archive-o",EXTRACT:"fa-folder-open",DOWNLOAD:"fa-download",GO_UP:"fa-level-up",TOOLBAR:"fa-bars",
STATUSBAR:"fa-terminal",PREVIEW:"fa-eye",MAXIMIZE:"fa-arrows-alt",UNDO:"fa-undo",REDO:"fa-repeat"};return f})},"xide/utils/HexUtils":function(){define(["xide/utils","xide/types","dojo/json","xide/lodash"],function(f,n,l,m){function g(a){var c="";a=parseInt(a,16);65535>=a?c+=String.fromCharCode(a):1114111>=a?(a-=65536,c+=String.fromCharCode(55296|a>>10)+String.fromCharCode(56320|a&1023)):c+="hex2Char error: Code point out of range: "+b(a);return c}function c(a){var c="";65535>=a?c+=String.fromCharCode(a):
1114111>=a?(a-=65536,c+=String.fromCharCode(55296|a>>10)+String.fromCharCode(56320|a&1023)):c+="dec2char error: Code point out of range: "+b(a);return c}function b(a){return(a+0).toString(16).toUpperCase()}function d(a){return A[a>>4&15]+A[a&15]}function a(a){return a=a.replace(/0x([A-Fa-f0-9]{1,4})(\s)?/g,function(a,b){g(b);return g(b)})}function e(a){a=a.replace(/[Uu]\+10([A-Fa-f0-9]{4})/g,function(a,b){return g("10"+b)});return a=a.replace(/[Uu]\+([A-Fa-f0-9]{1,5})/g,function(a,b){return g(b)})}
function r(a){return a=a.replace(/&#x([A-Fa-f0-9]{1,6});/g,function(a,b){return g(b)})}function p(a){return a=a.replace(/&#([0-9]{1,7});/g,function(a,b){return c(b)})}function k(a){return a=a.replace(/0x([A-Fa-f0-9]{1,6})/g,function(a,b){return g(b)})}function q(a,b){b?(a=a.replace(/\\([A-Fa-f0-9]{1,6})(\s)?/g,function(a,b){return g(b)}),a=a.replace(/\\/g,"")):a=a.replace(/\\([A-Fa-f0-9]{2,6})(\s)?/g,function(a,b){return g(b)});return a}function h(a,b){a=a.replace(/\\u\{([A-Fa-f0-9]{1,})\}/g,function(a,
b){return g(b)});a=a.replace(/\\U([A-Fa-f0-9]{8})/g,function(a,b){return g(b)});a=a.replace(/\\u([A-Fa-f0-9]{4})/g,function(a,b){return g(b)});b&&(a=a.replace(/\\b/g,"\b"),a=a.replace(/\\t/g,"\t"),a=a.replace(/\\n/g,"\n"),a=a.replace(/\\v/g,"\v"),a=a.replace(/\\f/g,"\f"),a=a.replace(/\\r/g,"\r"),a=a.replace(/\\\'/g,"'"),a=a.replace(/\\\"/g,'"'),a=a.replace(/\\\\/g,"\\"));return a}function u(a){return a=a.replace(/((%[A-Fa-f0-9]{2})+)/g,function(a,h){a="";var d=0,e=0;h=h.split("%");for(var k=1;k<h.length;k++){var q=
parseInt(h[k],16);switch(d){case 0:0<=q&&127>=q?a+=c(q):192<=q&&223>=q?(d=1,e=q&31):224<=q&&239>=q?(d=2,e=q&15):240<=q&&247>=q?(d=3,e=q&7):a+="convertpEsc2Char: error "+b(q)+"! ";break;case 1:if(128>q||191<q)a+="convertpEsc2Char: error "+b(q)+"! ";d--;a+=c(e<<6|q-128);e=0;break;case 2:case 3:if(128>q||191<q)a+="convertpEsc2Char: error "+b(q)+"! ";e=e<<6|q-128;d--}}return a})}function v(a){var b={};return a=a.replace(/&([A-Za-z0-9]+);/g,function(a,c){return c in b?b[c]:a})}function t(a,b){"hex"==b?
a=a.replace(/(\b[A-Fa-f0-9]{2,6}\b)/g,function(a,b){return g(b)}):"dec"==b?a=a.replace(/(\b[0-9]+\b)/g,function(a,b){return c(b)}):"utf8"==b?a=a.replace(/(( [A-Fa-f0-9]{2})+)/g,function(a,b){return x(b)}):"utf16"==b&&(a=a.replace(/(( [A-Fa-f0-9]{1,6})+)/g,function(a,b){return w(b)}));return a}function x(a){var h="",d=0,e=0;a=a.replace(/^\s+/,"");a=a.replace(/\s+$/,"");if(0==a.length)return"";a=a.replace(/\s+/g," ");a=a.split(" ");for(var k=0;k<a.length;k++){var q=parseInt(a[k],16);switch(d){case 0:0<=
q&&127>=q?h+=c(q):192<=q&&223>=q?(d=1,e=q&31):224<=q&&239>=q?(d=2,e=q&15):240<=q&&247>=q?(d=3,e=q&7):h+="convertUTF82Char: error1 "+b(q)+"! ";break;case 1:if(128>q||191<q)h+="convertUTF82Char: error2 "+b(q)+"! ";d--;h+=c(e<<6|q-128);e=0;break;case 2:case 3:if(128>q||191<q)h+="convertUTF82Char: error3 "+b(q)+"! ";e=e<<6|q-128;d--}}return h.replace(/ $/,"")}function w(a){var h=0,d="";a=a.replace(/^\s+/,"");a=a.replace(/\s+$/,"");if(0==a.length)return null;a=a.replace(/\s+/g," ");a=a.split(" ");for(var e=
0;e<a.length;e++){var q=parseInt(a[e],16);if(0>q||65535<q)d+="!Error in convertUTF162Char: unexpected value, b\x3d"+b(q)+"!";if(0!=h)if(56320<=q&&57343>=q){d+=c(65536+(h-55296<<10)+(q-56320));h=0;continue}else d+="Error in convertUTF162Char: low surrogate expected, b\x3d"+b(q)+"!",h=0;55296<=q&&56319>=q?h=q:d+=c(q)}return d}var A="0123456789ABCDEF".split("");f.dec2hex4=function(a){return A[a>>12&15]+A[a>>8&15]+A[a>>4&15]+A[a&15]};f.dec2hex=b;f.dec2char=c;f.dec2hex2=d;f.convertUTF82Char=x;f.convertUTF162Char=
w;f.convertUnicode2Char=e;f.convertCharStr2pEsc=function(a){for(var c="",h=0,e="",q=0;q<a.length;q++){var k=a.charCodeAt(q);if(0>k||65535<k)e+="Error in convertChar2CP: byte out of range "+b(k)+"!";if(0!=h)if(56320<=k&&57343>=k){e+=b(65536+(h-55296<<10)+(k-56320))+" ";h=0;continue}else e+="Error in convertChar2CP: surrogate out of range "+b(h)+"!",h=0;55296<=k&&56319>=k?h=k:e+=b(k)+" "}h=e.substring(0,e.length-1);if(0==a.length)return"";a=h.split(" ");for(h=0;h<a.length;h++)e=parseInt(a[h],16),c=
32==e?c+"%20":65<=e&&90>=e?c+String.fromCharCode(e):97<=e&&122>=e?c+String.fromCharCode(e):48<=e&&57>=e?c+String.fromCharCode(e):45==e||46==e||95==e||126==e?c+String.fromCharCode(e):127>=e?c+("%"+d(e)):2047>=e?c+("%"+d(192|e>>6&31)+"%"+d(128|e&63)):65535>=e?c+("%"+d(224|e>>12&15)+"%"+d(128|e>>6&63)+"%"+d(128|e&63)):1114111>=e?c+("%"+d(240|e>>18&7)+"%"+d(128|e>>12&63)+"%"+d(128|e>>6&63)+"%"+d(128|e&63)):c+("!Error "+b(e)+"!");return c};f.convertAllEscapes=function(b,c){b=e(b);b=a(b);b=k(b);b=r(b);
b=p(b);b=h(b,!1);b=q(b,!1);b=u(b);b=v(b);return b=t(b,c)};var B="0123456789abcdef".split("");f.to_hex=function(a){for(var b="",c=!0,h=32;0<h;){var h=h-4,d=a>>h&15;c&&0==d||(c=!1,b+=B[d])}return"0x"+(""==b?"0":b)};f.replaceHex=function(a){return m.isString(a)?a.replace(/x([0-9A-Fa-f]{2})/gmi,function(a,b){return String.fromCharCode(parseInt(b,16))}):a};var y=function(a,b){for(a=a.toString(16).toUpperCase();a.length<b;)a="0"+a;return a};f.stringToHex=function(a){for(var b="",c=0,h=a.length,d;c<h;c+=
1)d=a.charCodeAt(c),b+=y(d.toString(16),2)+" ";return b};f.stringToBufferStr=function(a){for(var b=0,c=a.length,h,d=[];b<c;b+=1)h=a.charCodeAt(b),d.push(h);return d.join(",")};f.stringToBuffer=function(a){for(var b=0,c=a.length,h,d=[];b<c;b+=1)h=a.charCodeAt(b),d.push(h);return d};f.bufferToHexString=function(a){a=-1!==a.indexOf(",")?a.split(","):[a];for(var b=[],c=0;c<a.length;c++)b.push(f.dec2hex2(a[c]));return b.join(" ")};f.bufferFromDecString=function(a){a=-1!==a.indexOf(",")?a.split(","):[a];
for(var b=0;b<a.length;b++)a[b]=parseInt(a[b],10);return a};f.stringFromDecString=function(a){a=f.bufferFromDecString(a);for(var b="",c=0;c<a.length;c++)b+=String.fromCharCode(a[c]);return b};f.stringToHex2=function(a){for(var b="",c=0,h=a.length,d;c<h;c+=1)d=a.charCodeAt(c),b+=y(d.toString(16),2)+" ";return b};f.hexToString=function(a){a=a.split(" ");for(var b="",c=0,h=a.length,d;c<h;c+=1)d=String.fromCharCode(parseInt(a[c],16)),b+=d;return b};f.prettyHex=function(a){var b=Math.ceil(a.length/16),
c=a.length%16||16,h=a.length.toString(16).length;6>h&&(h=6);for(var d="Offset";d.length<h;)d+=" ";var d="\u001b[36m"+d+" ",e;for(e=0;16>e;e++)d+=" "+y(e,2);d+="\u001b[0m\n";a.length&&(d+="\n");var q=0,k,p;for(e=0;e<b;e++){d+="\u001b[36m"+y(q,h)+"\u001b[0m ";k=e===b-1?c:16;p=16-k;for(var r=void 0,r=0;r<k;r++)d+=" "+y(a[q],2),q++;for(r=0;r<p;r++)d+=" ";q-=k;d+=" ";for(r=0;r<k;r++)p=a[q],d+=31<p&&127>p||159<p?String.fromCharCode(p):".",q++;d+="\n"}return d};f.hexEncode=function(a,b){var c,h,d=
"";for(h=0;h<a.length;h++)c=a.charCodeAt(h).toString(16),d+=((null!==b?b:"000")+c).slice(-4);return d};f.markHex=function(a,b,c,h){b=b||"";c=c||"";var d=""+a;a=/[^\x20-\x7E]/gim;a.exec(d);d.match(a);d.replace(a,function(a,h){h=f.hexEncode(a,"$");2==h.length&&(h=h.replace("$","$0"));h=h.toUpperCase();d=d.replace(a,b+h+c)});return d};return f})},"nxapp/utils/_console":function(){define(["dojo/has!host-node?dojo/node!tracer","dojo/has!host-node?dojo/node!util","nxapp/utils","dojo/has"],function(f,n,
l,m){var g=g;f&&(g=f.colorConsole({format:"\x3c{{title}}\x3e {{message}} "+(m("build")?"":"(in {{file}}:{{line}})"),dateformat:"HH:MM:ss.L"}));"undefined"==typeof logError&&(global.logError=function(c,b){g.error("Error "+b,c)});l.stack=function(){g.log(Error().stack)};g.clear=function(){n.print("\u001b[2J\u001b[0;0H")};return g})},"nxapp/server/DeviceServer":function(){define("dcl/dcl dojo/_base/lang xide/types xide/factory nxapp/server/WebSocket dojo/node!http dojo/node!sockjs dojo/node!path dojo/node!fs-jetpack dojo/node!server-destroy nxapp/utils/_console xide/utils nxapp/model/Connection".split(" "),
function(f,n,l,m,g,c,b,d,a,e,r,p,k){var q=!1;return f([g],{destroy:function(){try{this.socketServer&&this.socketServer.destroy(),this.ctx.getConnectionManager().destroy()}catch(h){r.error("error destroying Device-Server",h)}},mqttManager:null,declaredClass:"nxapp.server.DeviceServer",protocolMethod:function(a,b){var c=this.ctx.getConnectionManager().protocolMethod(a.protocol,a.method,a.options);if(c&&c.then){var h=this;c.then(function(c){h.sendClientMessage(b,null,l.SOCKET_SERVER_COMMANDS.PROTOCOL_METHOD,
{options:a.options,result:c})})}else r.error("calling protocol method failed! method returned nothing",c)},handleManagerCommand:function(a,b){var c=a.manager_command;switch(c){case l.SOCKET_SERVER_COMMANDS.MANAGER_TEST:r.dir("Test Manager command");break;case l.SOCKET_SERVER_COMMANDS.PROTOCOL_METHOD:return this.protocolMethod(a,b);case l.SOCKET_SERVER_COMMANDS.RUN_SHELL:return this.ctx.getDeviceManager().runShell(a.cmd,a.args,a.options);case l.SOCKET_SERVER_COMMANDS.RUN_FILE:return this.ctx.runFile(a);
case l.SOCKET_SERVER_COMMANDS.INIT_DEVICES:return this.ctx.loadDevices(a);case l.SOCKET_SERVER_COMMANDS.RUN_CLASS:return this.ctx.runClass(a);case l.SOCKET_SERVER_COMMANDS.RUN_APP_SERVER_CLASS:return this.ctx.runAppServerClass(a);case l.SOCKET_SERVER_COMMANDS.RUN_APP_SERVER_CLASS_METHOD:return this.ctx.runAppServerClassMethod(a,b);case l.SOCKET_SERVER_COMMANDS.RUN_APP_SERVER_COMPONENT_METHOD:return this.ctx.runAppServerComponentMethod(a,b);case l.SOCKET_SERVER_COMMANDS.CANCEL_APP_SERVER_COMPONENT_METHOD:return this.ctx.cancelAppServerComponentMethod(a,
b);case l.SOCKET_SERVER_COMMANDS.ANSWER_APP_SERVER_COMPONENT_METHOD_INTERRUPT:return this.ctx.answerAppServerComponentMethodInterrupt(a,b);case l.SOCKET_SERVER_COMMANDS.WATCH:if(this.profile.user&&a.path&&this.profile.user!==a.path){r.warn("Error watching path: this path doesnt belong to this instance! \t\n This instance is using "+this.profile.user+" as user directory but your path belongs to \t\n "+a.path+" : aborting watch command");break}(b=this.ctx.getFileManager())&&b.watch(a.path,a.watch);
break;case l.SOCKET_SERVER_COMMANDS.MQTT_PUBLISH:return this.sendMQTTMessage(a,b);case l.SOCKET_SERVER_COMMANDS.MANAGER_START_DRIVER:return this.startDriver(a,b);case l.SOCKET_SERVER_COMMANDS.CREATE_CONNECTION:return this.createConnection(a,b);case l.SOCKET_SERVER_COMMANDS.START_DEVICE:return this.startDevice(a,b);case l.SOCKET_SERVER_COMMANDS.GET_DEVICE_VARIABLES:return this.getVariables(a,b);case l.SOCKET_SERVER_COMMANDS.WRITE_LOG_MESSAGE:this.logClientMessage(a);break;case l.SOCKET_SERVER_COMMANDS.MANAGER_STOP_DRIVER:this.stopDriver(a);
break;case l.SOCKET_SERVER_COMMANDS.STOP_DEVICE:break;case l.SOCKET_SERVER_COMMANDS.MANAGER_STATUS:a={message:"returning status",deviceConnections:this.options.context.getConnectionManager().getNumberOfConnections()};this.emit(l.SOCKET_SERVER_COMMANDS.SIGNAL_RESPONSE,JSON.stringify(a));break;case l.SOCKET_SERVER_COMMANDS.MANAGER_CLOSE_ALL:this.options.context.getConnectionManager().closeAll();break;default:r.error("unkown command "+c)}},handleDeviceCommand:function(a,b){var c=a.device_command,d=this.options.context,
h=this;q=!1;var e=a.options,k=null;b||q&&r.error("---have no client ");e.host&&e.protocol?k=d.getConnectionManager().connect(e.host,e.protocol,e.port||"",null,e,b):r.error("handle device command: invalid args. data.options is not xide/types/DeviceInfo",p.inspect(a));try{k&&(k.options=e,d.getConnectionManager().registerFeedBack2(k,function(b,c){if(_.isString(c))a.lastResponse=""+c;else if(_.isObject(c))try{a.lastResponse=JSON.stringify(c)}catch(H){q&&r.error("error serializing data")}h.onDeviceMessage(b,
c)}))}catch(B){r.error("-register feed back function failed",B),r.trace(B)}try{switch(c){case l.SOCKET_SERVER_COMMANDS.CALL_METHOD:this.options.context.getConnectionManager().callMethod(k,a,b);break;case l.SOCKET_SERVER_COMMANDS.DEVICE_SEND:this.options.context.getConnectionManager().send(k,a.command,a.options)}}catch(B){r.error("error command parser "+c,B.stack)}},sendMQTTMessage:function(a,b){var c=a.data.device;a.data.sourceHost=b.remoteAddress;a.data.sourcePort=b.remotePort;if(c){if((b=this.ctx.getConnectionManager().getConnection2(c))&&
b.variables&&(c=a.topic.split("/"),4==c.length&&"Variable"==c[2])){c=c[3];if(!c)return;for(var d=0;d<b.variables.length;d++){var h=b.variables[d];h.name===c&&(h.value=a.data.value)}}}else r.error("cant find device");this.mqttManager&&this.mqttManager.publishTopic(a.topic,a.data)},updateDeviceState:function(a,b){this.mqttManager&&this.mqttManager.publishTopic(a,b)},sendClientMessage:function(a,b,c,d){b={data:p.mixin({device:b},d),event:c};a.write(JSON.stringify(b))},getVariables:function(a,b){var c=
a.device,d=this.ctx.getConnectionManager().getConnection2(c),h=[];if(this.profile.user&&c.userDirectory&&this.profile.user!==decodeURIComponent(c.userDirectory))r.warn("Error in Device#getVariables: the device doesnt belong to this instance:\t\n This instance is using "+this.profile.user+" as user directory but your device belongs to \t\n "+decodeURIComponent(c.userDirectory)+" : aborting start device command");else{if(d){d.options=c;var e=d.variables;e?(h=e,this.sendClientMessage(b,c,l.EVENTS.SET_DEVICE_VARIABLES,
{variables:e})):(h=d.variables=a.variables,_.each(h,function(a){a.value=a.initial}),this.sendClientMessage(b,c,l.EVENTS.SET_DEVICE_VARIABLES,{variables:a.variables}))}else r.error("cant find device connection");if((a=b.mqtt)&&!a.didSubscribe)for(b=0;b<h.length;b++)a.subscribe(c.host+"/"+c.port+"/Variable/"+h[b].name)}},logClientMessage:function(a){var b=a.data.device;a.data.device?this.logEx(a.message,a.level,a.type,{device:b,deviceMessage:"",time:a.time}):r.error("wrong log parameters, host missing",
a)},getLogger:function(b){var c=this.ctx.getLogManager(),h=c.options,e=p.replaceAll("/","_",b.host)+"_"+b.port+"_"+b.protocol+".json",q=c.loggers[e],h=(b=b[b.deviceScope])?a.dir(b+d.sep+"logs").path():h.fileLogger.dirname;q||(q=c.createLogger({filename:e,dirname:h,json:!0,console:null}),c.loggers[e]=q);return q},logEx:function(a,b,c,d){var h=this.getLogger(d.device);b=b||"info";d=d||{};d.type=c||"Unknown";d.time=d.time||(new Date).getTime();h.log(b,a,d)},stopDriver:function(a){var b=this.ctx.getConnectionManager(),
c=this.ctx.getDeviceManager(),d=b.getConnection2(a);d&&(d.options=a,d.client.close());b.removeConnection(d,null,!0);!d&&q&&r.log("have no such connection "+k.generateId(a));c.stopDevice(a.id)},sendClientEvent:function(a){},startDriver:function(a,b){var c=this.ctx.getConnectionManager(),d=this.ctx.getDeviceManager(),e=c.getConnection2(a),h=a.driverOptions&1<<l.DRIVER_FLAGS.RUNS_ON_SERVER,p=a.driverOptions&1<<l.DRIVER_FLAGS.SERVER;q&&r.log("start driver "+a.host+" : "+a.port+"@"+a.protocol+" server side \x3d "+
h+" device Scope "+a.deviceScope+" is server \x3d "+p+" found connection:"+(e?"true":"false")+" external client "+b.isExternal());r.error("con : ",a.userDirectory);r.error("con : ",this.profile.user);if(h&&h&&!e)if(d&&d.startDevice||r.error("!deviceManager || !startDevice"),h=d.getItemById(a.id)){if(p=d.toDeviceControlInfo(h))return d.startDevice(h,!0),!0;p&&q&&r.log("driver runs server side, start device! "+p.toString())}else{r.warn("DeviceServer::startDriver : cant find device");return}if(!e)return q&&
r.log("start driver: connection doesnt exists "+a.host+" : "+a.port+"@"+a.protocol+" : "+a.deviceScope+" id : "+k.generateId(a)),a[a.driverScope]?c.connect(a.host,a.protocol,a.port,a.mqtt,a,b):(r.error("have no driver scope"),null);e.options=a;c.onConnect2(e,!0,!0);if(!a.deviceScope)throw r.error("has no device scope",a),Error("has no device scope",a);return"xxxx"},startDevice:function(a,b){var c=this.ctx.getDeviceManager(),d=this.ctx.getConnectionManager(),e=a.driverOptions&1<<l.DRIVER_FLAGS.RUNS_ON_SERVER,
h=a.driverOptions&1<<l.DRIVER_FLAGS.SERVER,k=decodeURIComponent(a.userDirectory);q&&r.log("start device "+a.host+" : "+a.port+"@"+a.protocol+" server side \x3d "+e+" device Scope "+a.deviceScope+" is server \x3d "+h+" external client "+b.isExternal());if(this.profile.user&&k&&this.profile.user!==k)r.error("Error: the device doesnt belong to this instance:\t\n This instance is using "+this.profile.user+" as user directory but your device belongs to \t\n "+k+" : aborting start device command");else if(e=
c.getItemById(a.id)){c.updateDevice(a,e);if(h=c.toDeviceControlInfo(e))return c.startDevice(e,null,b).then(function(){var b=d.getConnection2(a);if(b)d.onConnect2(b,!0,!0);else r.error("DeviceServer::startDevice : cant find connection")}),!0;r.error("cant find device info");h&&q&&r.log("driver runs server side, start device! "+h.toString())}else q&&r.error("no such device",a.host+":"+a.port+" - id \x3d "+a.id)},createConnection:function(a,b){var c=this.ctx.getConnectionManager(),d=c.getConnection2(a),
e=a.driverOptions&1<<l.DRIVER_FLAGS.RUNS_ON_SERVER,h=a.driverOptions&1<<l.DRIVER_FLAGS.SERVER;if(this.profile.user&&a.userDirectory&&this.profile.user!==decodeURIComponent(a.userDirectory))r.warn("Error in createConnection: the device doesnt belong to this instance:\t\n This instance is using "+this.profile.user+" as user directory but your device belongs to \t\n "+decodeURIComponent(a.userDirectory)+" : aborting start device command \n");else{q&&r.log("createConnection "+a.host+" : "+a.port+"@"+
a.protocol+" server side \x3d "+e+" device Scope "+a.deviceScope+" is server \x3d "+h+" found connection:"+(d?"true":"false")+" | is external client:"+b.isExternal());if(!d)return q&&r.log("createConnection: connection doesnt exists "+a.host+" : "+a.port+"@"+a.protocol+" : "+a.deviceScope+" id : "+k.generateId(a)),a[a.driverScope]?c.connect(a.host,a.protocol,a.port,a.mqtt,a,b):(r.error("have no driver scope"),null);d.options=a;c.onConnect2(d,!0,!0);if(!a.deviceScope)throw r.error("has no device scope",
a),Error("has no device scope",a);return d}},onFileChanged:function(a){this.broadCastMessage(l.EVENTS.ON_FILE_CHANGED,{path:a.path,event:a.event})},onDeviceMessage:function(a,b,c){if(a)if(null===b)q&&r.error("---onDeviceMessage:have no data "+a.options.id+" server id \x3d "+k.generateId(a.options));else{c={device:a.options,deviceMessage:b,bytes:c&&c.join?c.join(","):""};var d=b.event||l.EVENTS.ON_DEVICE_MESSAGE;if(a&&a.isRunAsServer()&&d===l.EVENTS.ON_DEVICE_MESSAGE)this.ctx.getDeviceManager().onDeviceServerMessage({event:l.EVENTS.ON_DEVICE_MESSAGE,
data:{data:c}});else this.broadCastMessage(b.event||l.EVENTS.ON_DEVICE_MESSAGE,c)}else r.error("---onDeviceMessage:have no connection object")},onLogMessage:function(a){this.broadCastMessage(l.EVENTS.ON_SERVER_LOG_MESSAGE,a)},onClientDisconnect:function(a){a.mqtt&&(a.mqtt.end(),delete a.mqtt)},onClientConnection:function(a){if(this.mqttManager){var b=this;if(!a)q&&r.error("DeviceServer::onClientConnection connection null");else if(!a.mqtt){var c=this.mqttManager.createMQTTClient(a.remoteAddress,a.remotePort);
c.client=a;a.mqtt=c;c.on("message",function(c,d){d.sourceHost!==a.remoteAddress&&d.sourcePort!==a.remotePort&&b.sendClientMessage(a,{},l.EVENTS.ON_MQTT_MESSAGE,{topic:c,message:d.toString(),host:a.remoteAddress,port:a.remotePort})})}}},start:function(a,d){this.profile=d;this.options=n.mixin(this.options,a);this.clients=[];var h=this;a=this.options.port;var k=this.options.host;this.subscribe(l.EVENTS.ON_SERVER_LOG_MESSAGE,this.onLogMessage,this);if(a){this.initLogger(d.debug);this.log("Socket server running in "+
a,"socket_server");d={heartbeat_delay:2E3};q||(d.log=function(){});d=b.createServer(d);var p=global.httpServer||c.createServer(this._handler);this.socket=p;d.installHandlers(p);p.listen(a,k);this._handleSocketEmits(d);this.socketServer=p;e(this.socketServer);this.publish(l.EVENTS.ON_WEBSOCKET_START,{socket_server:{port:a,socket_handler:d}},this);d.on("connection",function(a){var b=h.clients.push(a);q&&r.log("on device server client connection "+b);h.onClientConnection(a);a.isExternal=function(){return!0};
a.on("close",function(){q&&r.info("close client connection "+b);h.onClientDisconnect(a);h.clients.remove(a)})});return!0}r.error("Port must be provided into options");return!1},_handleSocketEmits:function(a){var b=this.options.port,c=this;a.on("connection",function(a){c.socket=a;m.publish(l.EVENTS.ON_WEBSOCKET_CONNECTION,{connection:{port:b,socket_handler:a}},this);a.on("data",function(b){_.isString(b)&&(b=p.fromJson(b));b.manager_command?c.handleManagerCommand(b,a):c.handleDeviceCommand(b,a)})})}})})},
"nxapp/model/Connection":function(){define("dcl/dcl xide/model/Base xide/mixins/EventedMixin xide/encoding/MD5 xide/utils xide/types".split(" "),function(f,n,l,m,g,c){function b(b,a){var d=b[b.deviceScope],r=b[b.driverScope];if(!d&&a&&(a=a.ctx.getDeviceManager())){var p=a.getDeviceById(b.id);p&&(r=a.toDeviceControlInfo(p),d=r[r.deviceScope],r=r[r.driverScope])}d=g.replaceAll("/","",d+r);d=g.replaceAll("\\","",d);return m(JSON.stringify({protocol:b.protocol,port:b.port,host:b.host,hash:d,isServer:b.driverOptions&
1<<c.DRIVER_FLAGS.SERVER,runAsServer:b.driverOptions&1<<c.DRIVER_FLAGS.RUNS_ON_SERVER}),1)}f=f([l.dcl],{connected:!1,__registered:!1,declaredClass:"nxapp/model/Connection",client:null,options:null,socket:null,id:null,toString:function(){var b=this.options;return b.deviceScope+"://"+b.host+":"+b.port+"@"+b.protocol+"@"+(this.isServer()?"server":"")},constructor:function(c,a){this.client=c;this.options=a;g.mixin(this,{protocol:a.protocol,port:a.port,host:a.host});this.id=b(a);c.connection=this},isServer:function(){return this.options.driverOptions&
1<<c.DRIVER_FLAGS.SERVER},isRunAsServer:function(){return this.options.driverOptions&1<<c.DRIVER_FLAGS.RUNS_ON_SERVER}});f.generateId=b;f.generateHash=function(b){var a=g.replaceAll("/","",b[b.deviceScope]+b[b.driverScope]),a=g.replaceAll("\\","",a);return{protocol:b.protocol,port:b.port,host:b.host,hash:a,isServer:b.driverOptions&1<<c.DRIVER_FLAGS.SERVER,runAsServer:b.driverOptions&1<<c.DRIVER_FLAGS.RUNS_ON_SERVER}};return f})},"xide/encoding/MD5":function(){define(["./_base"],function(f){function n(b,
a){return b<<a|b>>>32-a}function l(b,a,c,r,p,k){return f.addWords(n(f.addWords(f.addWords(a,b),f.addWords(r,k)),p),c)}function m(b,a,c,r,p,k,q){return l(a&c|~a&r,b,a,p,k,q)}function g(b,a,c,r,p,k,q){return l(a&r|c&~r,b,a,p,k,q)}function c(b,a,c,r,p,k,q){return l(c^(a|~r),b,a,p,k,q)}function b(b,a){b[a>>5]|=128<<a%32;b[(a+64>>>9<<4)+14]=a;a=1732584193;for(var e=-271733879,d=-1732584194,p=271733878,k=0;k<b.length;k+=16){var q=a,h=e,u=d,v=p;a=m(a,e,d,p,b[k+0],7,-680876936);p=m(p,a,e,d,b[k+1],12,-389564586);
d=m(d,p,a,e,b[k+2],17,606105819);e=m(e,d,p,a,b[k+3],22,-1044525330);a=m(a,e,d,p,b[k+4],7,-176418897);p=m(p,a,e,d,b[k+5],12,1200080426);d=m(d,p,a,e,b[k+6],17,-1473231341);e=m(e,d,p,a,b[k+7],22,-45705983);a=m(a,e,d,p,b[k+8],7,1770035416);p=m(p,a,e,d,b[k+9],12,-1958414417);d=m(d,p,a,e,b[k+10],17,-42063);e=m(e,d,p,a,b[k+11],22,-1990404162);a=m(a,e,d,p,b[k+12],7,1804603682);p=m(p,a,e,d,b[k+13],12,-40341101);d=m(d,p,a,e,b[k+14],17,-1502002290);e=m(e,d,p,a,b[k+15],22,1236535329);a=g(a,e,d,p,b[k+1],5,-165796510);
p=g(p,a,e,d,b[k+6],9,-1069501632);d=g(d,p,a,e,b[k+11],14,643717713);e=g(e,d,p,a,b[k+0],20,-373897302);a=g(a,e,d,p,b[k+5],5,-701558691);p=g(p,a,e,d,b[k+10],9,38016083);d=g(d,p,a,e,b[k+15],14,-660478335);e=g(e,d,p,a,b[k+4],20,-405537848);a=g(a,e,d,p,b[k+9],5,568446438);p=g(p,a,e,d,b[k+14],9,-1019803690);d=g(d,p,a,e,b[k+3],14,-187363961);e=g(e,d,p,a,b[k+8],20,1163531501);a=g(a,e,d,p,b[k+13],5,-1444681467);p=g(p,a,e,d,b[k+2],9,-51403784);d=g(d,p,a,e,b[k+7],14,1735328473);e=g(e,d,p,a,b[k+12],20,-1926607734);
a=l(e^d^p,a,e,b[k+5],4,-378558);p=l(a^e^d,p,a,b[k+8],11,-2022574463);d=l(p^a^e,d,p,b[k+11],16,1839030562);e=l(d^p^a,e,d,b[k+14],23,-35309556);a=l(e^d^p,a,e,b[k+1],4,-1530992060);p=l(a^e^d,p,a,b[k+4],11,1272893353);d=l(p^a^e,d,p,b[k+7],16,-155497632);e=l(d^p^a,e,d,b[k+10],23,-1094730640);a=l(e^d^p,a,e,b[k+13],4,681279174);p=l(a^e^d,p,a,b[k+0],11,-358537222);d=l(p^a^e,d,p,b[k+3],16,-722521979);e=l(d^p^a,e,d,b[k+6],23,76029189);a=l(e^d^p,a,e,b[k+9],4,-640364487);p=l(a^e^d,p,a,b[k+12],11,-421815835);
d=l(p^a^e,d,p,b[k+15],16,530742520);e=l(d^p^a,e,d,b[k+2],23,-995338651);a=c(a,e,d,p,b[k+0],6,-198630844);p=c(p,a,e,d,b[k+7],10,1126891415);d=c(d,p,a,e,b[k+14],15,-1416354905);e=c(e,d,p,a,b[k+5],21,-57434055);a=c(a,e,d,p,b[k+12],6,1700485571);p=c(p,a,e,d,b[k+3],10,-1894986606);d=c(d,p,a,e,b[k+10],15,-1051523);e=c(e,d,p,a,b[k+1],21,-2054922799);a=c(a,e,d,p,b[k+8],6,1873313359);p=c(p,a,e,d,b[k+15],10,-30611744);d=c(d,p,a,e,b[k+6],15,-1560198380);e=c(e,d,p,a,b[k+13],21,1309151649);a=c(a,e,d,p,b[k+4],
6,-145523070);p=c(p,a,e,d,b[k+11],10,-1120210379);d=c(d,p,a,e,b[k+2],15,718787259);e=c(e,d,p,a,b[k+9],21,-343485551);a=f.addWords(a,q);e=f.addWords(e,h);d=f.addWords(d,u);p=f.addWords(p,v)}return[a,e,d,p]}f.MD5=function(c,a){a=a||f.outputTypes.Base64;c=b(f.stringToWord(c),8*c.length);switch(a){case f.outputTypes.Raw:return c;case f.outputTypes.Hex:return f.wordToHex(c);case f.outputTypes.String:return f.wordToString(c);default:return f.wordToBase64(c)}};f.MD5._hmac=function(c,a,e){e=e||f.outputTypes.Base64;
var d=f.stringToWord(a);16<d.length&&(d=b(d,8*a.length));var p=[];a=[];for(var k=0;16>k;k++)p[k]=d[k]^909522486,a[k]=d[k]^1549556828;c=b(p.concat(f.stringToWord(c)),512+8*c.length);c=b(a.concat(c),640);switch(e){case f.outputTypes.Raw:return c;case f.outputTypes.Hex:return f.wordToHex(c);case f.outputTypes.String:return f.wordToString(c);default:return f.wordToBase64(c)}};return f.MD5})},"xide/encoding/_base":function(){define(["dojo/_base/lang"],function(f){return{outputTypes:{Base64:0,Hex:1,String:2,
Raw:3},addWords:function(f,l){var m=(f&65535)+(l&65535);return(f>>16)+(l>>16)+(m>>16)<<16|m&65535},stringToWord:function(f){for(var l=[],m=0,g=8*f.length;m<g;m+=8)l[m>>5]|=(f.charCodeAt(m/8)&255)<<m%32;return l},wordToString:function(f){for(var l=[],m=0,g=32*f.length;m<g;m+=8)l.push(String.fromCharCode(f[m>>5]>>>m%32&255));return l.join("")},wordToHex:function(f){for(var l=[],m=0,g=4*f.length;m<g;m++)l.push("0123456789abcdef".charAt(f[m>>2]>>m%4*8+4&15)+"0123456789abcdef".charAt(f[m>>2]>>m%4*8&15));
return l.join("")},wordToBase64:function(f){for(var l=[],m=0,g=4*f.length;m<g;m+=3)for(var c=(f[m>>2]>>m%4*8&255)<<16|(f[m+1>>2]>>(m+1)%4*8&255)<<8|f[m+2>>2]>>(m+2)%4*8&255,b=0;4>b;b++)8*m+6*b>32*f.length?l.push("\x3d"):l.push("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(c>>6*(3-b)&63));return l.join("")},stringToUtf8:function(f){for(var l="",m=-1,g,c;++m<f.length;)g=f.charCodeAt(m),c=m+1<f.length?f.charCodeAt(m+1):0,55296<=g&&56319>=g&&56320<=c&&57343>=c&&(g=65536+((g&
1023)<<10)+(c&1023),m++),127>=g?l+=String.fromCharCode(g):2047>=g?l+=String.fromCharCode(192|g>>>6&31,128|g&63):65535>=g?l+=String.fromCharCode(224|g>>>12&15,128|g>>>6&63,128|g&63):2097151>=g&&(l+=String.fromCharCode(240|g>>>18&7,128|g>>>12&63,128|g>>>6&63,128|g&63));return l}}})},"nxapp/server/FileServer":function(){define("dojo/_base/declare dojo/_base/lang xide/types xide/factory nxapp/server/WebSocket nxapp/utils/_LogMixin dojo/node!http dojo/node!sockjs".split(" "),function(f,n,l,m,g,c,b,d){return f("nxapp.server.WebSocket",
[g,c],{onFileChanged:function(a){this.broadCastMessage(l.EVENTS.ON_FILE_CHANGED,{path:a.path,modulePath:a.modulePath,mask:a.mask,type:a.type})},start:function(a,c){this.profile=c;this.options=n.mixin(this.options,a);this.clients=[];var e=this;m.subscribe(l.EVENTS.ON_FILE_CHANGED,this.onFileChanged,this);a=this.options.port;var p=this.options.host;if(a){this.initLogger(c.debug);this.log("File Socket server running in "+a,"socket_server");c={};this.showDebugMsg("socket_server")||(c.log=function(){});
c=d.createServer(c);var k=b.createServer(this._handler);c.installHandlers(k);k.listen(a,p);this._handleSocketEmits(c);m.publish(l.EVENTS.ON_WEBSOCKET_START,{socket_server:{port:a,socket_handler:c}},this);c.on("connection",function(a){var b=e.clients.push(a);a.on("close",function(){delete e.clients[b]})});return!0}console.error("Port must be provided into options");return!1},_handleSocketEmits:function(a){var b=this.options.port,c=this;a.on("connection",function(a){c.socket=a;m.publish(l.EVENTS.ON_WEBSOCKET_CONNECTION,
{connection:{port:b,socket_handler:a}},this);a.on("close",function(){})})}})})},"nxappmain/nxAppBase":function(){define("dcl/dcl nxapp/utils/FileUtils dojo/node!commander dojo/node!fs dojo/node!os dojo/node!path dojo/node!util xide/factory/Events dojo/has xide/model/Base xide/utils".split(" "),function(f,n,l,m,g,c,b,d,a,e,r){a.add("windows",function(){return"win32"===g.platform()});a.add("osx",function(){return"darwin"===g.platform()});a.add("linux",function(){return"linux"===g.platform()});a.add("arm",
function(){return"arm"===g.arch()});return f(e.dcl,{declaredClass:"nxappmain.nxAppBase",profile:null,commander:null,profilePath:"/nxappmain/profile_device_server.json",getDefaultProfilePath:function(){return dojoConfig.cwd+this.profilePath},getProfile:function(a){var b={};a||(a=this.commander.profile&&0<this.commander.profile.length?this.commander.profile:this.getDefaultProfilePath());var c=dojoConfig.cwd;try{m.existsSync(a)||(a=c+"/"+this.profilePath)}catch(h){console.error("error reading profile path ")}(c=
n.readFile(a))?b=dojo.fromJson(c):console.error("have no profile at : "+a);if(c=(c=this.commander.system)?n.resolve(c):null)b.system=c,b.data=c,b.watchr.paths=[c+a.sep+"system",c+a.sep+"workspace"];return b},init:function(){try{this.commander||(l.version("0.0.1").option("-i, --info","return service profile").option("-f, --file \x3cpath\x3e","run a file").option("-u, --user \x3cpath\x3e","user directory").option("--diagnose \x3cboolean\x3e","do some diagnose").option("--modules","list all modules").option("--start \x3cboolean\x3e",
"start devices").option("--serverSide \x3cboolean\x3e","make devices server side").option("-s, --system \x3cname\x3e","path to system scope").option("-j, --jhelp","output options as json").option("-t, --test","enable test mode").option("--mqtt \x3cboolean\x3e","enable or disable MQTT functionality"),this.commander=l,this.commander.allowUnknownOption(!0),this.commander.parse(process.argv));if(l.jhelp){var a=[];l.options.map(function(b){a.push(b)});console.log(JSON.stringify(a));process.exit()}this.profile=
this.getProfile(this.profilePath);r.mixin(this.profile,this.commander);var b=dojoConfig.cwd;this.profile.system=c.join(b,this.profile.system);var d=c.resolve(this.profile.system);m.existsSync(d)||(d=process.cwd()+"/data/system",this.profile.system=d,l.system=d);if(this.profile.user){m.existsSync(this.profile.user)?this.profile.user=this.profile.user:this.profile.user=c.join(b,this.profile.user);var e=c.resolve(this.profile.user);m.existsSync(e)&&(this.profile.user=e)}this.commander.start&&(this.profile.start=
"true"===this.commander.start);this.commander.serverSide&&(this.profile.serverSide="true"===this.commander.serverSide)}catch(u){console.error("error init ",u)}}})})},"xide/factory/Events":function(){define("xide/factory dojo/_base/connect dojo/_base/lang dojo/on dojo/has xide/lodash".split(" "),function(f,n,l,m,g){var c={click:null,dblclick:null,mousedown:null,mouseup:null,mouseover:null,mousemove:null,mouseout:null,keypress:null,keydown:null,keyup:null,focus:null,blur:null,change:null};f.publish=
function(b,c,a,e){c=c?_.isString(c)?{message:c}:c:{};a=b;var d=n.publish,p=[];_.isArray(b)||(a=[b]);b=0;for(var k=a.length;b<k;b++){var q=a[b];if(!e||e(q))p=d(q,c)}return p};f.subscribe=function(b,d,a,e){var g=b,p=n.subscribe,k=[];_.isArray(b)||(g=[b]);b=0;for(var q=g.length;b<q;b++)if(g[b]&&(!e||e(f))){var h=g[b],u=_.isString(h),f=u?h:h.key,t=u?d:h.handler,h=f in c,u=void 0;null!=a?(t=null!=t?t:a[f],u=h?m(a,f,l.hitch(a,t)):p(f,l.hitch(a,t)),u.handler=l.hitch(a,t)):(u=n.subscribe(f,t),u.handler=t);
u.type=f;k.push(u)}return k};return f})},"nxapp/manager/Context":function(){define("dcl/dcl ./ConnectionManager xide/manager/ContextBase require nxapp/utils/_console xide/types xide/utils dojo/node!path".split(" "),function(f,n,l,m,g,c,b,d){return f(l,{declaredClass:"nxapp.manager.Context",connectionManager:null,blockManager:null,deviceServer:null,logManager:null,loadDevices:function(a){g.log("load devices",a);var b=this.getDeviceManager(),c=this.getDriverManager();b.debug();var p=b.getStores()[a.scope],
k=a.path;p?p.connected?g.warn("store "+p.scope+" is already connected"):g.info("connecting store "+p.scope):(g.info("connecting store "+a.scope),c.createStore({items:this.getDrivers(d.resolve(k+"/drivers"),"user_drivers")},"user_drivers",!0),b.initStore({items:this.getDevices(d.resolve(k+"/devices"),"user_devices")},"user_devices",!0))},runFile:function(a){g.log("run file",a)},broadCastMessage:function(a,d){this.getDeviceServer().broadCastMessage(c.EVENTS.ON_RUN_CLASS_EVENT,b.mixin({event:c.EVENTS.ON_RUN_CLASS_EVENT},
d))},runClass:function(a){var b=a["class"],c=this;try{m([b],function(d){d=new d(a.args);try{d.run({data:a,clear:function(){this.data.progress=null;this.data.finish=null;this.data.error=null;this.data.data=null},onProgress:function(a,b){this.clear();this.data.progress=a;this.data.data=b;c.broadCastMessage(null,this.data)},onFinish:function(a,b){this.clear();this.data.finish=a;this.data.data=b;c.broadCastMessage(null,this.data)},onError:function(a,b){this.clear();this.data.error=a;this.data.data=b;
c.broadCastMessage(null,this.data)}})}catch(k){g.error("error running class "+b,k),a.error=k.message,c.broadCastMessage(null,a)}})}catch(p){g.error("error loading class "+b,p)}},runAppServerClass:function(a){return this.appServer.runClass(a,this)},runAppServerComponentMethod:function(a,b){return this.appServer.runComponentMethod(a,this,b)},cancelAppServerComponentMethod:function(a,b){return this.appServer.cancelComponentMethod(a,this,b)},answerAppServerComponentMethodInterrupt:function(a,b){return this.appServer.answerAppServerComponentMethodInterrupt(a,
this,b)},runAppServerClassMethod:function(a,b){return this.appServer.runClassMethod(a,this,b)},getDeviceServer:function(){return this.deviceServer},getConnectionManager:function(){return this.connectionManager},initManagers:function(a){this.connectionManager.init(a)},constructManagers:function(){this.connectionManager=new n({ctx:this})},getLogManager:function(){return this.logManager}})})},"nxapp/manager/ConnectionManager":function(){define("dcl/dcl nxapp/manager/ManagerBase nxapp/utils/_LogMixin nxapp/protocols/Tcp nxapp/protocols/Udp nxapp/protocols/Driver nxapp/protocols/SSH nxapp/protocols/Serial nxapp/protocols/MQTT nxapp/protocols/ProtocolBase nxapp/types/Types xide/factory xide/utils nxapp/utils/_console xide/data/_Base nxapp/model/Connection xide/data/TreeMemory xide/data/ObservableStore dstore/Trackable dojo/_base/declare dojo/Deferred dojo/node!path require".split(" "),
function(f,n,l,m,g,c,b,d,a,e,r,p,k,q,h,u,v,t,x,w,A,B,y){return f([n,l],{declaredClass:"nxapp.manager.ConnectionManager",options:null,profile:null,lastUpTime:null,mqttManager:null,pool:[],poolNotFound:-1,store:null,destroy:function(){q.log("destroy cm");this.closeAll()},getDriverModule:function(a){var b=new A;if(!a||!a.driver)return q.error("cant get driver module. options invalid or no driver specified"),b.resolve(null),b;try{var c=a[a.driverScope],d=c+"/"+a.driver,d=k.replaceAll("/",B.sep,d);try{y.undef(d),
y([d],function(a){b.resolve(a)})}catch(C){q.error("-----error loading driver module at drivers root "+c+" and module "+a.driver+" :: "+C.message,C.stack),b.resolve()}}catch(C){q.error("Error connecting driver "+C.message),b.resolve()}return b},protocolMethod:function(a,b,c){c=c||{};var d=new A,e=this;this.getDriverModule(c.device).then(function(h){(h=e._protocolMethod(a,b,c,h))&&h.then?h.then(function(a){d.resolve(a)}):d.resolve([])},function(a){q.error("cant get driver : "+c.device)});return d},
_protocolMethod:function(c,e,h,k){h=h||{};h=h.args;c===r.PROTOCOL.DRIVER&&k&&(c=k.is?k.is()||c:c);var p={};switch(c){case r.PROTOCOL.DRIVER:if(k&&k[e]){p=k[e](h);break}case r.PROTOCOL.UDP:if(e in g){p=g[e].apply(this,h);break}case r.PROTOCOL.MQTT:if(e in a){p=a[e].apply(this,h);break}case r.PROTOCOL.SSH:if(e in b){p=b[e].apply(this,h);break}case r.PROTOCOL.TCP:if(e in m){p=m[e].apply(this,h);break}case r.PROTOCOL.SERIAL:if(e in d)return d[e].apply(this,h);q.error("no such protcol method "+e+" in "+
c);break;default:return c=new A,c.resolve([]),c}return p},onWakeup:function(){this.lastUpTime=(new Date).getTime();for(var a=0;a<this.pool.length;a++){var b=this.pool[a];b.socket&&b.socket.close&&b.socket.close();b.socket&&b.socket._socket&&b.socket._socket.close&&b.socket._socket.close()}this.pool=[]},init:function(a){this.profile=a;this.initLogger(a.debug);this.lastUpTime=(new Date).getTime();this.store=new (w("nxapp.data.Store",[v,x,t],{}))({idProperty:"id",Model:u});var b=this;setInterval(function(){var a=
(new Date).getTime();if(3E3<a-b.lastUpTime)b.onWakeup();b.lastUpTime=a},1E3)},connect:function(e,h,k,f,t,v){if(!e)return q.error("ConnectionManager::connect : have no host"),null;if(!h)return q.error("ConnectionManager::connect : have no protocol"),null;if(!t)return q.error("ConnectionManager::connect : have no options"),null;v=u.generateId(t,this);if(v=this.store.getSync(v)){if(!v.isServer()&&!v.isRunAsServer())this.onConnect2(v,!0,!0);return v}var w=v=null,w=this.ctx;switch(h){case r.PROTOCOL.TCP:v=
new m({owner:this,options:t,delegate:this,ctx:w});break;case r.PROTOCOL.UDP:v=new g({owner:this,options:t,delegate:this,ctx:w});break;case r.PROTOCOL.DRIVER:v=new c({owner:this,options:t,delegate:this,ctx:w});break;case r.PROTOCOL.SSH:v=new b({owner:this,options:t,delegate:this,ctx:w});break;case r.PROTOCOL.SERIAL:v=new d({owner:this,options:t,delegate:this,ctx:w});break;case r.PROTOCOL.MQTT:v=new a({owner:this,options:t,delegate:this,ctx:w})}if(v){e=this.addConnection2(v,t);v.init();v.connection=
e;w=v.connect();e.socket=w;p.publish(r.EVENTS.ON_CONNECTION_CREATED,{connection:e},this);if(this.mqttManager)this.mqttManager.onConnectedToDevice(t,v,f);return e}p.publish(r.EVENTS.ON_CONNECTION_ERROR,{connection:{port:k,host:e,protocol:h}},this);return!1},send:function(a,b,c){if(a){var d=a.client;if(d){var e=d._socket;a.client||q.error("connection has no client");if(e){if(!e.writable)return q.error("socket not writable, closing connection"+a.lastError),this.close(a,!0),!1}else return q.error("have no socket"),
!1;a&&a.options&&this.logEx(r.LOG_OUTPUT.SEND_COMMAND+" : "+b,"info","server",r.LOG_OUTPUT.SEND_COMMAND,a);return d.send(b,c)}q.error("send "+b+" have no client")}else q.error("send "+b+" have no connection")},callMethod:function(a,b){b=k.getJson(b);var c=b.method,d=b.args;if(a)if(a.client){if(a.client[c])return q.log("call method : "+c+" with ",[d,b]),a.client[c].apply(a.client,[d,b,a]);q.error("no such method "+c,a.client.declaredClass)}else q.error("call method : connection has no client object");
else q.error("call method : invalid connection")},close:function(a){a&&(a._destroyed=!0,a.client.destroy())},closeAll:function(){_.each(this.store.query({}),this.close,this)},onTimeout:function(a){},onClose:function(a,b){a&&a.options&&(this.logEx(r.LOG_OUTPUT.DEVICE_DISCONNECTED,"info","server",r.LOG_OUTPUT.DEVICE_DISCONNECTED,a),this.publish(r.EVENTS.ON_DEVICE_DISCONNECTED,{device:a.options,connection:a}));a._destroyed=!0;this.removeConnection(a,b)},onDrain:function(a){},onError:function(a,b,c){c&&
q.log(" Error: "+c.host+":"+c.port+"@"+c.protocol,b);a&&(a.lastError=b);this.removeConnection(a,c)},onFinish:function(a,b,c){b=this.connectionExists(a.host,a.port,a.protocol);b!=this.poolNotFound?this.callFeedBack(b,data):q.error("ConnectionManager::onData : cant find pool - reference:"+b+":"+a.host+":"+a.port+":"+a.protocol)},onData:function(a,b,c){try{this.callFeedBack2(a,b,c)}catch(z){q.error("call feedback error : "+z.message),q.log(z.stack)}a&&a.options&&this.logEx(r.LOG_OUTPUT.RESPONSE+":"+
b,"info","server",r.LOG_OUTPUT.RESPONSE,a)},hasFlag:function(a,b){var c=r.LOGGING_FLAGS;a=a.loggingFlags;a=_.isString(a)?k.fromJson(a):a||{};b=a[b];return null!=b&&b&c.FILE?!0:!1},onConnect2:function(a,b,c){if(a.connected){b={device:a.options,isReplay:c};var d=this.ctx.getDeviceServer();this.getConnection2(a.options);d.broadCastMessage(r.EVENTS.ON_DEVICE_CONNECTED,b);this.publish(r.EVENTS.ON_DEVICE_CONNECTED,{device:a.options,isReplay:c,connection:a});a&&!a.__registered&&(this.registerFeedBack2(a,
function(a,b,c){b&&(b.lastResponse=_.isString(b)?b:JSON.stringify(b,null,2));d.onDeviceMessage(a,b,c)}),a.__registered=!0);a&&a.options&&!c&&this.logEx(r.LOG_OUTPUT.ON_DEVICE_CONNECTED,"info","server",r.LOG_OUTPUT.ON_DEVICE_CONNECTED,a);if(a.client&&a.client.onConnect)a.client.onConnect();return a}},logEx:function(a,b,c,d,e){var h=this.ctx.getDeviceServer();if(e&&e.options){var k=e.options;this.hasFlag(k,d)&&h.logEx(a+" "+e.toString(),b||"info",c||"server",{device:k})}},_onConnect:function(a,b,c,
d){q.log("Connected to "+d.declaredClass+":"+a+":"+b+" via "+c+" : ",d.options);if(!d.options)throw q.error("have no options: ",d),Error("Asdf");a={device:{host:a,port:b,protocol:c,options:d?d.options:null}};this.ctx.getDeviceServer().broadCastMessage(r.EVENTS.ON_DEVICE_CONNECTED,a);var e=this.ctx.getDeviceServer();d&&(d.__registered?q.error("already registered"):(this.registerFeedBack2(d,function(a,b,c){b.lastResponse=""+b;e.onDeviceMessage(a,b)}),d.__registered=!0))},onHandle:function(a,b){},getNumberOfConnections:function(){return this.pool.length},
getDeviceConnection:function(){if(this.getNumberOfConnections())for(var a=0;a<this.pool.length;a++);},addConnection:function(a,b,c,d,e,h,k,q){k=new u(k,a,q);this.store.putSync(k);this.pool.push({socket:a,host:b,port:c,protocol:d,user:e,customFields:h,feedbackTo:[]});return k},addConnection2:function(a,b){a=new u(a,b);return this.store.putSync(a)},removeConnection:function(a,b,c){var d=this;a&&(a=this.getConnection2(a.options));a&&(a=this.getConnection2(a.options),this.ctx.getDeviceServer()&&setTimeout(function(){var b=
{device:a.options,error:a.lastError,stopped:c};d.ctx.getDeviceServer().broadCastMessage(r.EVENTS.ON_DEVICE_DISCONNECTED,b)},1E3),this.store.removeSync(a.id),a._destroyed=!0)},clearPool:function(){this.pool=[]},getConnection:function(a){if(3==arguments.length){for(var b=arguments[0],c=arguments[1],d=arguments[2],e=0;e<this.pool.length;e++){var h=this.pool[e];if(h.host==b&&h.port==d&&h.protocol==c)return h}return null}return this.pool[a]},getConnection2:function(a){return this.store.getSync(u.generateId(a,
this))},getConnectionById:function(a){return this.store.getSync(a)},registerFeedBack2:function(a,b){a&&(a.feedbackTo||(a.feedbackTo=[]),a&&0<a.feedbackTo.length||a.feedbackTo.push(b))},_registerFeedBack:function(a,b){var c=this.getConnection(a);null==c?q.error("cant find connection for pool ref:"+a):c&&0<c.feedbackTo.length||c.feedbackTo.push(b)},callFeedBack:function(a,b){throw Error();},callFeedBack2:function(a,b,c){if(a)if(a.feedbackTo&&0!=a.feedbackTo.length)for(var d=0;d<a.feedbackTo.length;d++)a.feedbackTo[d](a,
b,c);else q.error("-- call feed back: have no feedback targets",a.options.host);else q.error("-- call feed back: have no connection")},connectionExists:function(a,b,c){var d=this.poolNotFound;_.each(this.pool,function(e,h){e&&e.host===a&&e.port===b&&e.protocol===c&&(d=h)});return d},forEachPool:function(a){_.each(this.pool,function(b,c){a(b,c)})}})})},"nxapp/manager/ManagerBase":function(){define(["dcl/dcl","xide/model/Base","xide/mixins/EventedMixin"],function(f,n,l){n=f([n.dcl,l.dcl],{declaredClass:"nxapp.manager.ManagerBase",
ctx:null,profile:null,init:function(f){this.profile=f}});f.chainAfter(n,"init");return n})},"nxapp/protocols/Tcp":function(){define("dcl/dcl nxapp/utils nxapp/protocols/ProtocolBase dojo/node!net dojo/node!child_process dojo/node!util dojo/node!path xide/mixins/EventedMixin xide/mixins/ReloadMixin xide/types dojo/Deferred dojo/node!evilscan dojo/node!ipaddr.js dojo/node!os".split(" "),function(f,n,l,m,g,c,b,d,a,e,r,p,k,q){f=f(l,{declaredClass:"nxapp.protocols.Tcp",_socket:null,protocolName:"tcp",
delegate:null,driverInstance:null,_handleSocketEmits:function(a){var b=this;b.clients=[];var c=this.blockScope,d=c.getVariable("value"),h=c.getVariables({group:e.BLOCK_GROUPS.CF_DRIVER_RESPONSE_VARIABLES}),k=c.getBlocks({group:e.BLOCK_GROUPS.CF_DRIVER_RESPONSE_BLOCKS});a.on("connection",function(a){b.socket=a;b.clients.push(a);a.on("data",function(a){a=[{string:a.toString(),bytes:a.join(",")}];for(var b=0;b<a.length;b++)if(0!==a[b].length){d.value=new String(a[b].string);d.value.setBytes(a[b].bytes);
for(var q=0;q<h.length;q++){var p=h[q];if("value"!=h[q].title){var g=null,g=d.value;"number"!=typeof g&&(g=""+g,g="'"+g+"'");p.target&&"None"!=p.target&&null!==g&&"null"!=g&&"'null'"!=g&&(p=c.getVariable(p.target))&&(p.value=g,this.publish(e.EVENTS.ON_DRIVER_VARIABLE_CHANGED,{item:p,scope:c,owner:this,save:!1,source:e.MESSAGE_SOURCE.BLOX}))}}for(p=0;p<a.length;p++)if(g=a[p],_.isObject(g)&&g.src&&(q=c.getBlockById(g.src))&&q.onData)q.onData(g);for(p=0;p<k.length;p++)if(q=k[p],!1!==q.enabled){q.override=
{args:[d.value]};try{c.solveBlock(k[p],{highlight:!1})}catch(z){console.log("----solving response block crashed ",z),console.trace()}}}});a.on("close",function(){})})},_creatingServer:!1,makeServer:function(){if(!this._creatingServer){this._creatingServer=!0;try{var a=this.options,b=a.port,c=a.host,d=this;this.owner.ctx.getDriverManager().createDriverInstance(a).then(function(a){d.blockScope=a.blockScope;d.driverInstance=a.driverInstance});var k=new m.Server;k.listen(b,c);d._socket=k;k.writable=!0;
d._handleSocketEmits(k);d.connection.connected=!0;d.delegate.onConnect2(d.connection);this.subscribe(e.EVENTS.ON_DEVICE_CONNECTED,this.onDeviceConnected);this.subscribe(e.EVENTS.ON_DEVICE_DISCONNECTED,this.onDeviceDisconnected)}catch(w){console.error("error creating server",w)}return this}},connections:null,onDeviceConnected:function(a){if(a=a.connection){var b=a.options,c=this.options;this.connections||(this.connections=[]);a.id!==this.connection.id&&this.delegate.getConnectionById(a.id)&&c.host===
b.host&&c.port===b.port&&c.protocol===b.protocol&&!a.isServer()&&-1===this.connections.indexOf(a)&&this.connections.push(a)}},onDeviceDisconnected:function(a){if(a=a.connection)this.connections||(this.connections=[]),-1!==this.connections.indexOf(a)&&this.connections.remove(a)},connect:function(){if(this.isServer())return this.makeServer();var a=this.options,b=this.options.port,c=this.options.host;this.clients=[];this._socket=new m.Socket(n.mixin({allowHalfOpen:!0,writable:!0,readable:!0},a.options));
var d=this;this.isDebug()&&console.log("TCP-Client-\x3eConnect to "+this.options.host+" : "+this.options.port+" @ "+this.protocolName);this._socket.connect(b,c,function(){d.connection.connected=!0;d.delegate.onConnect2(d.connection)});this._socket.setNoDelay(!0);this._socket.setKeepAlive(!0,0);this._socket.owner=this;this._setupEventListeners(this._socket,this.delegate);return this},broadCastMessage:function(a,b){var c=this;this.connections&&_.each(this.connections,function(a){a&&a._destroyed&&c.connections.remove(a);
if(a)if(a.client)a.client.delegate.onData(a,b.toString(),b);else console.error("not at a real connection",a);else console.error("invalid connection",a)})},send:function(a){null==a?console.error("TCP : invalid command"):(a=n.bufferFromDecString(a),a=new Buffer(a),this.isServer()?this.broadCastMessage(e.EVENTS.ON_DEVICE_MESSAGE,a):this._socket.write(a))},destroy:function(){console.log("destroy");this.isServer()?this._socket.close():this._socket.end();this.blockScope&&this.blockScope.destroy();this.driverInstance&&
this.driverInstance.destroy();delete this.blockScope;delete this.driverInstance;delete this.connections;delete this.clients;delete this._socket;this._destroyed=!0},close:function(){this.isServer()?(this._socket.close(),this.destroy()):this._socket.end()}});f.net=m;f.ls=function(a){try{var b=function(){var a=!0;_.each(h,function(b){b.done||(a=!1)});if(a){var b=[];h=_.filter(h,function(a){return 0<a.list.length});_.each(h,function(a){b=b.concat(a.list)});c.resolve(b)}},c=new r,d=q.networkInterfaces(),
e=[];Object.keys(d).forEach(function(a){var b=0;d[a].forEach(function(c){"IPv4"===c.family&&!1===c.internal&&(1<=b?e.push({face:a+b,ip:c.address}):e.push({face:a,ip:c.address}),++b)})});var h={};_.each(e,function(d){var e=k.parse(d.ip).octets;e[e.length-1]=0;var q=e.join(".")+"-254",e=new p({target:q,port:""+(a.ports||"80"),status:"Open",timeout:500,banner:!1});h[q]||(h[q]={done:!1},h[q].list=[]);e.on("result",function(a){"open"===a.status&&h[q].list.push({host:a.ip,port:a.port,description:d.face+
" "+d.ip,"interface":d.face})});e.on("error",function(a){c.reject("error scanning tcp")});e.on("done",function(){h[q].done=!0;b()});e.run()})}catch(A){console.error("error",A)}return c};f.options=function(a){a=new r;var b=e.ECIType,b=[n.createCI("allowHalfOpen",b.BOOL,!0,{group:"Network"}),n.createCI("readable",b.BOOL,!0,{group:"Network"}),n.createCI("writable",b.BOOL,!0,{group:"Network"})];a.resolve(b);return a};return f})},"nxapp/protocols/ProtocolBase":function(){define("dcl/dcl xide/model/Base xide/types xide/utils nxapp/utils/_LogMixin xide/mixins/ReloadMixin dojo/Deferred".split(" "),
function(f,n,l,m,g,c,b){n=f([n.dcl,g,c.dcl],{onReloaded:function(){console.error("on reloaded")},options:null,declaredClass:"nxapp.protocols.ProtocolBase",protocolName:"undefined",debug_connection:"protocol_connection",debug_messages:"protocol_messages",getModule:function(c){var a=new b;try{require(["dojo/node!"+c],function(b){a.resolve(b)})}catch(e){a.reject(e)}return a},delegate:null,connection:null,_setupEventListeners:function(b,a){var c=this,d=c.connection;b.handle=function(b){a.onHandle(d,b)};
b.on("data",function(b){a.onData(d,b.toString(),b);for(var c=0;c<b.length;c++);});a||(console.error("have no handler"),m.stack());d||(console.error("have no connection"),m.stack());b.on("error",function(b){c.isDebug()&&console.error("socket error : ",b);a.onError(d,b)});b.on("drain",function(){a.onDrain(d)});b.on("timeout",function(){a.onTimeout(d)});b.on("close",function(b){a.onClose(d,b)})},isDebug:function(){var b=this.connection;return b&&(b=b.options)&&(b=b.driverOptions)&&b&1<<l.DRIVER_FLAGS.DEBUG?
!0:!1},isServer:function(){var b=this.connection;return b&&(b=b.options)&&(b=b.driverOptions)&&b&1<<l.DRIVER_FLAGS.SERVER?!0:!1},runAsServer:function(){var b=this.connection;return b&&(b=b.options)&&(b=b.driverOptions)&&b&1<<l.DRIVER_FLAGS.RUNS_ON_SERVER?!0:!1},_defaultOptions:function(){return{port:23,text_encoding:"utf8",end_of_command:"\r"}},toString:function(b,a){b=m.bufferFromDecString(b);return(new Buffer(b)).toString(a)},init:function(){this.initLogger(this.options.debug);this.initReload();
var b=this;this.subscribe(l.EVENTS.ON_MODULE_RELOADED,function(a){b.modulePath&&a.module&&b.modulePath===a.module&&(b.mergeFunctions(b,a.newModule.prototype),b.onReloaded())})},mergeFunctions:function(b,a){for(var c in a)"constructor"!==c&&"inherited"!==c&&_.isFunction(a[c])&&(b[c]=null,b[c]=a[c],console.log("update : "+c))},logConnection:function(b){this.log(b,this.debug_connection)},logMessages:function(b){this.log(b,this.debug_messages)},send:function(b){},onConnect:function(){},destroy:function(){}});
f.chainAfter(n,"onConnect");f.chainAfter(n,"init");f.chainAfter(n,"close");f.chainAfter(n,"destroy");return n})},"xide/mixins/ReloadMixin":function(){define(["xdojo/declare","dcl/dcl","xide/types","xide/utils","xide/mixins/EventedMixin"],function(f,n,l,m,g){var c={_mergeFunctions:!0,_mergeMissingVariables:!0,isInstanceOf_:function(b){try{if(!!this instanceof b||this.isInstanceOf&&this.isInstanceOf(b))return!0;var c=m.getAt(this,"constructor._meta.bases",[]),a=b.prototype.declaredClass;return _.findWhere(c,
function(c){return c==b||m.getAt(c,"superclass.declaredClass")===a||m.getAt(c,"prototype.declaredClass")===a})}catch(e){console.log("ReloadMixin :: this.isInstanceOf_ crashed "+e)}return!1},mergeFunctions:function(b,c){for(var a in c)"constructor"!==a&&"inherited"!==a&&(_.isFunction(c[a])&&(b[a]=null,b[a]=c[a]),_.isArray(c[a])&&null==b[a]&&(b[a]=c[a]))},onModuleReloaded:function(b){var c=b.newModule;if(c&&c.prototype&&!b._processed){var a=c.prototype,e=a.declaredClass,g=!1,p=this.declaredClass;e&&
(e&&p&&(g=m.replaceAll("/",".",p)===m.replaceAll("/",".",e)),g?(this.mergeFunctions(this,a),this.onReloaded&&(b._processed=!0,this.onReloaded(c))):b.module&&m.replaceAll("//","/",b.module)===p&&this.mergeFunctions(this,a))}},initReload:function(){this.subscribe(l.EVENTS.ON_MODULE_RELOADED)}};f=f(null,c);f.Impl=c;f.dcl=n(g.dcl,c);return f})},"nxapp/protocols/Udp":function(){define("dcl/dcl nxapp/protocols/ProtocolBase dojo/node!dgram xide/utils dojo/Deferred xide/types".split(" "),function(f,n,l,m,
g,c){f=f(n,{declaredClass:"nxapp.protocols.Udp",_socket:null,protocolName:"udp",port:null,host:null,destroy:function(){this._socket.close()},onData:function(b){var c=this.delegate;this.isDebug()&&console.log("UDP: got data : "+this.connection.toString(),b);c.onData(this.connection,b)},makeServer:function(b,c){var a=this;c.port=c.port||this.port;b.bind(c.port,c.ip);a.isDebug()&&console.log("UDP: Make server, bind socket to "+c.ip+" :: "+c.port);b.on("listening",function(){var c=b.address();a.isDebug()&&
console.log("\t UDP Server listening on "+c.address+":"+c.port)});b.on("message",function(b,c){a.isDebug()&&console.log("UDP: on server message "+a.connection.toString()+" - "+c.address+":"+c.port+" - "+b);a.onData(b.toString())})},connect:function(){var b=this.options;this.port=this.options.port;this.host=this.options.host;this.protocol=this.protocolName;this._socket=l.createSocket("udp4");b=m.getJson(b.options);this._setupEventListeners(this._socket,this.delegate);this._socket.writable=!0;this.connection.connected=
!0;this.delegate.onConnect2(this.connection);b&&!0===b.server&&this.makeServer(this._socket,b);return this},send:function(b,c){try{var a=this,d=m.bufferFromDecString(b),g=new Buffer(d),p=g.toString();console.log("UDP - "+a.connection.toString()+" Sending command: "+b+" \x3d "+p+" l\x3d "+p.length);this._socket.send(g,0,g.length,this.port,this.host,function(b,c){if(b)a.delegate.onError(b)})}catch(k){console.error("crash !")}},close:function(){try{this._socket.close()}catch(b){console.error("Error closing udp connection : ",
b)}}});f.options=function(b){try{var d=new g,a=c.ECIType,e=[m.createCI("ip",a.STRING,"",{group:"Network",title:"IP",description:"The ip address to bind the server."}),m.createCI("port",a.STRING,"",{group:"Network",title:"Port",description:"The port to use when its a server"}),m.createCI("server",a.BOOL,!1,{group:"Network",title:"Make this as server.",description:""})];d.resolve(e);return d}catch(r){console.error("error",r)}return d};return f})},"nxapp/protocols/Driver":function(){define("dcl/dcl nxapp/utils nxapp/protocols/ProtocolBase dojo/node!path require xide/types nxapp/utils/_console".split(" "),
function(f,n,l,m,g,c,b){l=f(l,{declaredClass:"nxapp.protocols.Driver",_socket:null,protocolName:"driver",instance:null,constructor:function(b){n.mixin(this,b)},onError:function(d,a,e){this.isDebug()&&b.info("Driver-\x3eonError "+d+" id "+a.params.id+" src "+a.params.src);try{this.delegate.onData(this.connection,n.mixin({cmd:d,event:c.EVENTS.ON_COMMAND_ERROR,result:e.toString()},a),e)}catch(r){b.error("onFinish-Error:",r)}},onConnected:function(){this.isDebug()&&b.log("# driver onConnected "+this.options.host+
" : "+this.options.port+" @ "+this.protocolName);this.connection.connected=!0;this.delegate.onConnect2(this.connection)},onConnect:function(){this._socket.onConnect&&this._socket.onConnect()},onFinish:function(d,a,e){this.isDebug()&&b.info("Driver-\x3eonFinish "+d+" id "+a.params.id+" src "+a.params.src);try{this.delegate.onData(this.connection,n.mixin({cmd:d,event:c.EVENTS.ON_COMMAND_FINISH,result:e.toString()},a),e)}catch(r){b.error("onFinish-Error:",r)}},onProgress:function(d,a,e){this.isDebug()&&
b.info("Driver-\x3eonProgress "+d+" id "+a.params.id+" src "+a.params.src);try{this.delegate.onData(this.connection,n.mixin({cmd:d,event:c.EVENTS.ON_COMMAND_PROGRESS,result:e.toString()},a),e)}catch(r){b.error("onFinish-Progress:",r)}},onPaused:function(d,a,e){this.isDebug()&&b.info("Driver-\x3eonPaused "+d+" id "+a.params.id+" src "+a.params.src);try{this.delegate.onData(this.connection,n.mixin({cmd:d,event:c.EVENTS.ON_COMMAND_PAUSED,result:e.toString()},a),e)}catch(r){b.error("onFinish-Paused:",
r)}},onStopped:function(d,a,e){this.isDebug()&&b.info("Driver-\x3eonStopped "+d+" id "+a.params.id+" src "+a.params.src);try{this.delegate.onData(this.connection,n.mixin({cmd:d,event:c.EVENTS.ON_COMMAND_STOPPED,result:e.toString()},a),e)}catch(r){b.error("onFinish-Stopped:",r)}},_connect:function(c,a,e){c=new c(a);c.owner=this;c.options=this.options;c.delegate=this.delegate;c.connection=this.connection;this.modulePath=c.modulePath=e;c.connect||b.error("have no connect");this._socket=c;this._socket.writable=
!0;c.connect()},onDeviceDisconnected:function(b){this.delegate.onClose(this.connection,this.options)},onData:function(c,a){this.isDebug()&&b.log("Driver on data : ");a=a||new Buffer(c);this.delegate.onData(this.connection,c,a);this._socket&&this._socket.onData&&this._socket.onData(this.connection,c,a)},connect:function(){var c=this.options;this.isDebug()&&b.log("connect custom driver");if(!c||!c.driver)return b.error("no driver in options",c),this;try{var a=c[c.driverScope],e=a+"/"+c.driver,e=n.replaceAll("/",
m.sep,e);this.isDebug()&&b.log("load driver : "+e+" drivers root : "+a+" from "+m.dirname(e));var r=this;try{g.undef||b.error("require has no undef"),g.undef&&g.undef(e),g([e],function(a){if("function"!==typeof a)r.close(),r.onDeviceDisconnected();else try{r._connect?r._connect(a,c,e):b.error("have no _connect")}catch(k){b.error("error calling connect on "+e+" | Error "+k.message,k)}})}catch(p){b.error("-----error loading driver module at drivers root "+a+" and module "+c.driver+" :: "+p.message,
p.stack)}}catch(p){b.error("Error connecting driver "+p.message)}return this},send:function(c,a){c?(this.isDebug()&&b.log("send : ",c),this._socket.write(c,a)):b.error("TCP : invalid command")},close:function(){this._socket&&this._socket.destroy&&this._socket.destroy()}});f.chainAfter(l,"close");f.chainAfter(l,"destroy");return l})},"nxapp/protocols/SSH":function(){define("dcl/dcl xide/utils nxapp/types/Types nxapp/protocols/ProtocolBase dojo/node!net dojo/node!fs dojo/node!path dojo/node!ssh2 dojo/node!strip-ansi dojo/node!child_process dojo/node!util dojo/node!deferred dojo/node!ansi-to-html dojo/node!ansi_up nxapp/utils/_console xide/encoding/MD5 dojo/Deferred".split(" "),
function(f,n,l,m,g,c,b,d,a,e,r,p,k,q,h,u,v){var t=!1;f=f(m,{declaredClass:"nxapp.protocols.SSH",_socket:null,protocolName:"ssh",instance:null,sshOptions:null,running:null,getOptions:function(a,d,e){var k=null;if(e.privateKeyPath){var q=b.resolve(e.privateKeyPath);q?k=c.readFileSync(q).toString():t||this.isDebug()&&h.warn("Sorry, cant resolve file "+e.privateKeyPath)}a={config:!1,host:a,username:e.username,password:e.password,agent:"",agentForward:!1,port:d,proxy:{port:d},ignoreErrors:!1,minimatch:{},
debug:t||this.isDebug()?function(a){h.log("SSH _ DEBUG : "+a)}:null,suppressRemoteErrors:!1,callback:function(){}};k&&(a.privateKey=k);return n.mixin(a,e)},onConnected:function(){t||this.isDebug()&&h.log("# "+this.protocolName+" - Protocol:: onConnected "+this.options.host+" : "+this.options.port+" @ "+this.protocolName);this.connection.connected=!0;this.delegate.onConnect2(this.connection)},onError:function(a,b){this.delegate.onError(this.connection,n.mixin({code:a},b),this.options)},onClose:function(){this.delegate.onClose(this.connection,
this.options)},connect:function(){var a=this.options,b=this;if(!a||!a.driver)return t||b.isDebug()&&h.error("no driver in options",a),this;var c=a.host,e=a.port,a=n.getJson(a.options);!0===a.debug&&(t=!0);var k=this.getOptions(c,e,a),a=function(a){var b={host:a.host,port:a.port,username:a.username,readyTimeout:a.readyTimeout,agentForward:a.agentForward};a.privateKey?(b.privateKey=a.privateKey.trim(),a.passphrase&&(b.passphrase=a.passphrase.trim())):a.password?(b.password=a.password,a.agent&&(b.agent=
a.agent)):b.agent=a.agent;return b}(k);this.sshOptions=k;this.host=c;this.port=e;this.protocol=this.protocolName;t||b.isDebug()&&h.log("SSH-\x3econnecting SSH with");var q=new d;q.on("keyboard-interactive",function(a,b,c,d,e){d.forEach(function(a){-1!==a.prompt.toLowerCase().indexOf("password")&&e([k.password])})});q.on("connect",function(){t||b.isDebug()&&h.log("SSH-\x3eConnection :: connect")});q.on("ready",function(){t||b.isDebug()&&h.log("SSH-\x3eConnection :: ready");var a,c,d;q.once("session",
function(e,q){e().once("pty",function(b,e,q){a=q.rows;c=q.cols;d=q.term;b&&b();t&&h.log("SSH-\x3e pty "+a+" "+c+" "+d)}).once("shell",function(a,c){t||b.isDebug()&&h.log("SSH-\x3eshell")})});b.onConnected()});q.on("error",function(a){t||b.isDebug()&&h.warn("SSH-\x3eConnection - Error :: "+a);a=a.level+":"+a.message;b.onError(a);b.lastError=a});q.on("debug",function(a){t||b.isDebug()&&h.log("SSH-\x3eConnection :: debug :: "+a)});q.on("end",function(){t||b.isDebug()&&h.log("SSH-\x3eConnection :: end");
b.onClose()});q.on("close",function(a){if(a)t||b.isDebug()&&h.log("SSH - Connection :: Close, had Error ");else b.onClose()});try{q.connect(a)}catch(I){t||b.isDebug()&&h.warn("SSH-\x3eConnection - Error :: "+I);b.onError("fatal:"+I.message);return}this._socket=q;this._socket.writable=!0;return this},onData:function(a,b){this.isDebug()&&h.log("SSH-\x3eonData",a);this.delegate.onData(this.connection,a||"",b)},onProgress:function(a,b,c){this.isDebug()&&h.info("SSH-\x3eonProgress "+a+" id "+b.params.id+
" src "+b.params.src);try{this.delegate.onData(this.connection,n.mixin({cmd:a,event:l.EVENTS.ON_COMMAND_PROGRESS,result:c.toString()},b),c)}catch(B){h.error("onFinish-Progress:",B)}},onCommandError:function(a,b,c){t||this.isDebug()&&h.log("SSH-\x3eonCommandError "+a+" id "+b.params.id+" src "+b.params.src);try{this.delegate.onData(this.connection,n.mixin({cmd:a,event:l.EVENTS.ON_COMMAND_ERROR},b),c)}catch(B){h.error("---",B)}},onFinish:function(a,b,c){t||this.isDebug()&&h.info("SSH-\x3eonFinish "+
a+" id "+b.params.id+" src "+b.params.src);try{this.delegate.onData(this.connection,n.mixin({cmd:a,event:l.EVENTS.ON_COMMAND_FINISH},b),c)}catch(B){h.error("onFinish-Error:",B)}},_addCommand:function(a){u(JSON.stringify(a.join(",")),1)},execCommand:function(a,b){var c=this._socket,d=this,e=d.sshOptions,g=p(),r=b.params,u=r.id,f=r.wait,m=new k(e.ansiOptions||{}),v=1==e.waitForEOF,l="";if(0===a.length)d.isDebug()&&h.log("SSH-\x3eno more SSH commands, call Defered::resolve");else{var w=a.shift();d.isDebug()&&
h.log("SSH-\x3eExecuting :: "+w,b.params);c.exec(w,e,function(c,k){if(c)t||d.isDebug()&&h.log("---error in SSH ",c);else{var p;k.on("data",function(a,c){p=String(a);!0!==e.ansiUp&&1==e.html?p=m.toHtml(p):1==e.ansiUp&&1==e.html&&(p=q.ansi_to_html(p));d.isDebug()&&h.log("SSH DATA : signal \x3d "+c+" : "+p);if("stderr"!==c)if(v)l+=p,k.lastData=l;else{if(f)d.onProgress(w,b,a);else d.onData(p,a);k.lastData=p}});k.on("end",function(a){t||d.isDebug()&&h.log("SSH-\x3eStream :: EOF, had Error "+(1==k.hadError));
p&&"function"===typeof e.callback&&e.callback(p.trim());!0!==k.hadError?(v&&(t||d.isDebug()&&h.error("--------------release data on EOF"),d.onData(k.lastData)),g.resolve(u)):g.reject({id:u,error:k.lastData})});k.on("exit",function(){t||d.isDebug()&&h.log("SSH-\x3eStream :: exit")});k.on("close",function(c,q){t||d.isDebug()&&h.log("SSH-\x3eStream :: close :: code: "+c+", signal: "+q);127==c&&(k.hadError=!0,g.reject({id:u,error:k.lastData}));e.ignoreErrors||0===c?d.execCommand(a,b):(t||d.isDebug()&&
h.error("SSH-\x3eError executing task "+w+" _ code "+c),d.onCommandError(w,b))})}})}return g.promise},send:function(a,b){t||this.isDebug()&&h.log("send : "+a,b.params);if(null==a)h.error("SSH: invalid command");else{b=b||{id:n.createUUID()};a=this.toString(a);t||this.isDebug()&&h.log("SSH-\x3esend : "+a);var c=this.execCommand([a],b),d=this;c.then(function(c){d.onFinish(a,b)},function(c){b.error=c.error;d.onCommandError(a,b)});return c}},close:function(){this._socket&&this._socket.end()},init:function(){this.running=
{}}});f.options=function(a){try{var b=new v,c=l.ECIType,d=[n.createCI("username",c.STRING,"",{group:"Network",title:"User name"}),n.createCI("password",c.STRING,"",{group:"Network",title:"Password",password:!0}),n.createCI("localhostName",c.STRING,"",{group:"Network",title:"Local host name",description:"Along with localUsername and privateKey, set this to a non-empty string for hostbased user authentication"}),n.createCI("tryKeyboard",c.BOOL,!1,{group:"Network",title:"Try keyboard",description:"ry keyboard-interactive user authentication if primary user authentication method fails. If you set this to true"}),
n.createCI("keepaliveInterval",c.INTEGER,0,{group:"Network",title:" Keep alive interval",description:"How often (in milliseconds) to send SSH-level keepalive packets to the server (in a similar way as OpenSSH's ServerAliveInterval config option). Set to 0 to disable."}),n.createCI("keepaliveCountMax",c.INTEGER,3,{group:"Network",title:"Keep alive count maximum",description:" How many consecutive, unanswered SSH-level keepalive packets that can be sent to the server before disconnection (similar to OpenSSH's ServerAliveCountMax config option)."}),
n.createCI("readyTimeout",c.INTEGER,2E4,{group:"Network",title:"Ready timeout",description:"How long (in milliseconds) to wait for the SSH handshake to complete."}),n.createCI("strictVendor",c.BOOL,!0,{group:"Network",title:"Strict vendor",description:"Performs a strict server vendor check before sending vendor-specific requests, etc. (e.g. check for OpenSSH server when using openssh_noMoreSessions()"})];b.resolve(d);return b}catch(y){h.error("error",y)}return b};return f})},"nxapp/protocols/Serial":function(){define("dcl/dcl xide/utils xide/utils/StringUtils nxapp/types/Types nxapp/protocols/ProtocolBase dojo/node!child_process dojo/node!util nxapp/utils/_console xdojo/has dojo/node!xcf-server-misc/serialport dojo/node!@serialport/parser-delimiter dojo/Deferred".split(" "),
function(f,n,l,m,g,c,b,d,a,e,r,p){var k=!0;f=f(g,{declaredClass:"nxapp.protocols.Serial",_socket:null,protocolName:"serial",instance:null,client:null,sshOptions:null,getOptions:function(a,b,c,d){return n.mixin({baudRate:9600,parity:"none",rtscts:!1,xon:!1,xoff:!1,xany:!1,hupcl:!0,cts:!1,dtr:!0,dts:!1,brk:!1,rts:!1,dataBits:8,stopBits:1,bufferSize:65536},c)},onConnected:function(){d.log("# "+this.protocolName+" - Protocol:: onConnected "+this.options.host+" : "+this.options.port+" @ "+this.protocolName);
this.connection.connected=!0;this.delegate.onConnect2(this.connection)},onError:function(a,b){this.delegate.onError(this.connection,n.mixin({code:a},b),this.options)},onClose:function(){this.delegate.onClose(this.connection,this.options)},connect:function(){try{e||(d.warn("serial port was not loaded!"),e=global.nRequire("serialport"),d.warn("got serial port : "+(null!=e)))}catch(B){d.error("cant load serial port",B)}if(!e||!e.parsers)return d.error('----heavy error! It seems that node-js module "serial-port" has not been installed correctly '+
a("serialport")),this.onError('----heavy error! It seems that node-js module "serial-port" has not been installed correctly '+a("serialport"),e);if(!a("serialport"))return d.error("have no serial port flag enabled, abort!"),this.onError("have serial no port");try{var b=this.options;if(!a("serialport"))return this.onError("have serial port");if(!b||!b.driver)return d.error("no driver in options",b),this;var c=this,p=b.host,g=b.port,f=n.getJson(b.options||{});!0===f.debug&&(k=!0);var m=b.responseSettings||
{};f.baudrate&&(f.baudRate=parseInt(f.baudrate),delete f.baudrate);f.stopbits&&(f.stopBits=parseInt(f.stopbits),delete f.stopbits);f.databits&&(f.dataBits=parseInt(f.databits),delete f.databits);var l=this.getOptions(p,g,f,m.delimiter);d.log("open serial port: options",l);this.serialOptions=l;this.protocol=this.protocolName;l.baudRate&&_.isString(l.baudRate)&&(l.baudRate=parseInt(l.baudRate));l.stopbits&&(l.stopBits=parseInt(l.stopbits),delete f.stopbits);l.databits&&(l.dataBits=parseInt(l.databits),
delete l.databits);d.log("Serial-\x3econnecting to "+p+" with",n.inspect(l));var A=new e(p,l);this.client=A;A.on("error",function(a){c.onError(a.toString(),a)});try{A.on("open",function(a){if(a)a=a.level+":"+a.message,c.onError(a),c.lastError=a;else{c.onConnected();a="\n";try{a=JSON.parse(JSON.stringify({d:m.delimiter})).d}catch(y){d.error("error parsing delimitter ",y)}"\\n"===a&&(a="\n");"\\r"===a&&(a="\r");A.pipe(new r({delimiter:a||"\r"})).on("data",function(a){d.log("Serial-\x3eonData "+a.toString());
c.onData(a.toString()+m.delimiter,a)})}})}catch(B){}A.on("close",function(a){try{c.onClose(),A.close()}catch(y){}});this._socket={};this._socket.writable=!0;return this}catch(B){return c.onError(B.message),d.trace(),this}},onData:function(a,b){this.delegate.onData(this.connection,a,b)},onCommandError:function(a,b){k||this.isDebug()&&d.log("SERIAL-\x3eCommandError "+a+" id "+b.id+" src "+b.src);try{this.delegate.onData(this.connection,n.mixin({cmd:a,event:m.EVENTS.ON_COMMAND_ERROR},b))}catch(u){d.error("---",
u)}},onFinish:function(a,b){k||this.isDebug()&&d.log("SERIAL-\x3eonFinish "+a+" id "+b.id+" src "+b.src);try{this.delegate.onData(this.connection,n.mixin({cmd:a,event:m.EVENTS.ON_COMMAND_FINISH},b))}catch(u){d.error("onFinish-Error:",u)}},send:function(a,b){null==a?d.error("SERIAL invalid command"):(b=b||{id:n.createUUID()},a=n.bufferFromDecString(a),a=new Buffer(a),b=a.toString(),this.isDebug()&&d.log("Serial - Sending command: "+b),this.client.write(a))},close:function(){this.client&&this.client.close()}});
f.ls=function(a){var b=new p;e?e.list(function(a,c){c=c.filter(function(a){return!0});c=_.map(c,function(a){return{host:a.comName,port:"",description:a.manufacturer,id:a.pnpId}});b.resolve(c)}):(d.error("have no serial port"),b.reject("serialport nodejs library not present"));return b};f.options=function(a){try{a=function(a,b){return{label:a,value:a||b}};var b=new p,c=m.ECIType,e=[n.createCI(m.DEVICE_PROPERTY.CF_DEVICE_PORT,c.STRING,"",{group:"Network",disabled:!0}),n.createCI("baudRate",c.ENUMERATION,
115200,{group:"Network",title:"Baud rate",options:[a(115200),a(115200),a(57600),a(38400),a(19200),a(9600),a(4800),a(2400),a(1800),a(1200),a(600),a(300),a(200),a(150),a(134),a(110),a(75),a(50)]}),n.createCI("databits",c.ENUMERATION,8,{group:"Network",title:"Data bits",options:[a(8),a(7),a(6),a(5)]}),n.createCI("stopbits",c.ENUMERATION,1,{group:"Network",title:"Stop bits",options:[a(1),a(2)]}),n.createCI("parity",c.ENUMERATION,"none",{group:"Network",title:"Parity",options:[a("none"),a("even"),a("mark"),
a("odd"),a("space")]}),n.createCI("rtscts",c.BOOL,!1,{group:"Network"}),n.createCI("xon",c.BOOL,!1,{group:"Network"}),n.createCI("xoff",c.BOOL,!1,{group:"Network"}),n.createCI("flowcontrol",c.BOOL,!0,{group:"Network"}),n.createCI("buffersize",c.INTEGER,65536,{group:"Network"})];b.resolve(e);return b}catch(t){d.error("error",t)}return b};return f})},"xide/utils/StringUtils":function(){define(["xide/utils","xide/types","dojo/json","xide/lodash"],function(f,n,l,m){function g(c,b){var d=[],a=[];null==
b&&(b=function(b,c){return d[0]===c?"[Circular ~]":"[Circular ~."+a.slice(0,d.indexOf(c)).join(".")+"]"});return function(e,g){if(0<d.length){var p=d.indexOf(this);~p?d.splice(p+1):d.push(this);~p?a.splice(p,Infinity,e):a.push(e);~d.indexOf(g)&&(g=b.call(this,e,g))}else d.push(g);return null==c?g:c.call(this,e,g)}}f.stringify=function(c){return JSON.stringify(c,g(),2)};f.round=function(c,b,d){if("number"!==typeof c||isNaN(c)||Infinity===c||-Infinity===c)return"";b="undefined"===typeof b?3:parseInt(b,
10)||0;var a=Math.pow(10,b);c=(Math.round(c*a)/a).toFixed(b);d||(c=""+ +c);return c};f.humanFileSize=function(c,b){var d=b?1E3:1024;if(Math.abs(c)<d)return c+" B";b=b?"kB MB GB TB PB EB ZB YB".split(" "):"KiB MiB GiB TiB PiB EiB ZiB YiB".split(" ");var a=-1;do c/=d,++a;while(Math.abs(c)>=d&&a<b.length-1);return c.toFixed(1)+" "+b[a]};"function"!=typeof String.prototype.startsWith&&(String.prototype.startsWith=function(c){return 0===this.indexOf(c)});"function"!=typeof String.prototype.endsWith&&(String.prototype.endsWith=
function(c){return this.substring(this.length-c.length,this.length)===c});f.isNativeEvent=function(c){var b={onclick:null,ondblclick:null,onmousedown:null,onmouseup:null,onmouseover:null,onmousemove:null,onmouseout:null,onkeypress:null,onkeydown:null,onkeyup:null,onfocus:null,onblur:null,onchange:null};if(c in b)return!0;b={click:null,dblclick:null,mousedown:null,mouseup:null,mouseover:null,mousemove:null,mouseout:null,keypress:null,keydown:null,keyup:null,focus:null,blur:null,change:null};return c in
b};f.isSystemEvent=function(c){for(var b in n.EVENTS)if(n.EVENTS[b]===c)return!0;return!1};f.contains=function(c,b){for(var d=0;d<c.length;d++)if(c[d]===b)return d;return-1};f.getObjectKeyByValue=function(c,b){if(c&&b)for(var d in c)if(c.hasOwnProperty(d)&&c[d]===b)return d;return null};f.removeURLParameter=function(c,b){var d=c.split("?");if(2<=d.length){c=encodeURIComponent(b)+"\x3d";b=d[1].split(/[&;]/g);for(var a=b.length;0<a--;)-1!==b[a].lastIndexOf(c,0)&&b.splice(a,1);c=d[0]+"?"+b.join("\x26")}return c};
f.replaceUrlParam=function(c,b,d){if(-1==c.indexOf(b))return c+=(0<c.indexOf("?")?"\x26":"?")+b+"\x3d"+d;var a=c.replace(new RegExp("("+b+"\x3d).*?(\x26|$)"),"$1"+d+"$2");a==c&&(a=a+(0<a.indexOf("?")?"\x26":"?")+b+"\x3d"+d);return a};f.buildPath=function(c,b,d){var a=""+c,a=f.replaceAll("/","",c);c=(""+b).replace("./","/").replace(/^\/|\/$/g,"");a=a+"://"+c;return!0===d?encodeURIComponent(a):a};f.isImage=function(c){return null!=c.toLowerCase().match(/\.(jpeg|jpg|gif|png)$/)};f.hasFlag3=function(c,
b){return 1<<b&c?!0:!1};f.hasFlag=function(c,b){return 1<<b&c?!0:!1};f.disableFlag=function(c,b){return c&~(1<<b)};f.cleanUrl=function(c){c&&(c=c.replace("//","/"),c=c.replace("./","/"),c=c.replace("http:/","http://"),c=c.replace("./","/"),c=c.replace("////","/"),c=c.replace("///","/"));return c};f.getJson=function(c,b,d){try{return m.isString(c)?l.parse(c,!1):!0===b?null:c}catch(a){!1!==d&&console.error("error parsing json data "+c+" error \x3d "+a)}return null};f.fromJson=function(c){if(!m.isString(c))return c;
var b=null,d=!1;try{b=eval("("+c+")",{})}catch(a){d=!0}if(d){c=c.substring(c.indexOf("{"),c.lastIndexOf("}")+1);try{b=eval("("+c+")",{})}catch(a){throw Error(c);}}return b};f.replaceAll=function(c,b,d){return d?d.split(c).join(b):""};f.isValidString=function(c){return null!=c&&null!=c.length&&0<c.length&&"undefined"!=c};f.substituteString=function(c,b){return c.replace(/\$\{([^\s\:\}]+)(?:\:([^\s\:\}]+))?\}/g,function(c,a){return b[a]})};f.findOcurrences=function(c,b){var d=f.escapeRegExp(b.begin);
b=f.escapeRegExp(b.end);return c.match(new RegExp(d+"([^"+b+"]*)"+b,"g"))};f.escapeRegExp=function(c){for(var b="[ ] ( ) { } * + . | ||".split(" "),d=0;d<b.length;d++)c=c.replace(b[d],"\\"+b[d]);return c};f.multipleReplace=function(c,b){var d=[],a;for(a in b)d[d.length]=a;return c.replace(new RegExp(d.join("\\b|\\b"),"g"),function(a){return b[a]||b["\\"+a]})};f.replace=function(c,b,d,a){if(!c)return"";if(d&&m.isObject(d)||m.isArray(d)){if(a){b=f.findOcurrences(c,a);var e=f.replaceAll;if(b)for(var g=
0,p=b.length;g<p;g++){var k=b[g],q=e(a.begin,"",k),q=e(a.end,"",q);c=e(k,d[q],c)}}else return f.multipleReplace(c,d);return c}return f.replaceAll(b,d,c)};f.capitalize=function(c){return c.substring(0,1).toUpperCase()+c.substring(1)};f.vsprintf=function(c,b){return f.sprintf.apply(this,[c].concat(b))};f.sprintf=function(){var c=arguments,b=0,d=function(a,b,c,d){c||(c=" ");b=a.length>=b?"":Array(1+b-a.length>>>0).join(c);return d?a+b:b+a},a=function(a,b,c,e,h,g){var k=e-a.length;0<k&&(a=c||!h?d(a,e,
g,c):a.slice(0,b.length)+d("",k,"0",!0)+a.slice(b.length));return a},e=function(b,c,e,q,h,g,f){b>>>=0;e=e&&b&&{2:"0b",8:"0",16:"0x"}[c]||"";b=e+d(b.toString(c),g||0,"0",!1);return a(b,e,q,h,f)};return c[b++].replace(/%%|%(\d+\$)?([-+\'#0 ]*)(\*\d+\$|\*|\d+)?(\.(\*\d+\$|\*|\d+))?([scboxXuideEfFgG])/g,function(g,p,k,q,h,f,m){var r,u;if("%%"===g)return"%";var l=!1;u="";var v=h=!1;r=" ";for(var n=k.length,y=0;k&&y<n;y++)switch(k.charAt(y)){case " ":u=" ";break;case "+":u="+";break;case "-":l=!0;break;
case "'":r=k.charAt(y+1);break;case "0":h=!0;break;case "#":v=!0}q=q?"*"===q?+c[b++]:"*"==q.charAt(0)?+c[q.slice(1,-1)]:+q:0;0>q&&(q=-q,l=!0);if(!isFinite(q))throw Error("sprintf: (minimum-)width must be finite");f=f?"*"===f?+c[b++]:"*"==f.charAt(0)?+c[f.slice(1,-1)]:+f:-1<"fFeE".indexOf(m)?6:"d"===m?0:void 0;p=p?c[p.slice(0,-1)]:c[b++];switch(m){case "s":return m=String(p),null!=f&&(m=m.slice(0,f)),a(m,"",l,q,h,r);case "c":return m=String.fromCharCode(+p),null!=f&&(m=m.slice(0,f)),a(m,"",l,q,h,void 0);
case "b":return e(p,2,v,l,q,f,h);case "o":return e(p,8,v,l,q,f,h);case "x":return e(p,16,v,l,q,f,h);case "X":return e(p,16,v,l,q,f,h).toUpperCase();case "u":return e(p,10,v,l,q,f,h);case "i":case "d":return r=+p||0,r=Math.round(r-r%1),g=0>r?"-":u,p=g+d(String(Math.abs(r)),f,"0",!1),a(p,g,l,q,h);case "e":case "E":case "f":case "F":case "g":case "G":return r=+p,g=0>r?"-":u,u=["toExponential","toFixed","toPrecision"]["efg".indexOf(m.toLowerCase())],m=["toString","toUpperCase"]["eEfFgG".indexOf(m)%2],
p=g+Math.abs(r)[u](f),a(p,g,l,q,h)[m]();default:return g}})};f.cleanString=function(c){return c?c=c.replace(/[\r]/g,"").replace(/[\b]/g,"").replace(/[\f]/g,"").replace(/[\n]/g,"").replace(/\\/g,""):null};f.normalizePath=function(c){if(!c)return null;c=f.cleanString(c);c=c.replace("./","");return c=c.replace(/([^:]\/)\/+/g,"$1")};n.PATH_PARTS={DIRNAME:1,BASENAME:2,EXTENSION:4,FILENAME:8,PATHINFO_ALL:0};f.basename=function(c,b){var d=c.charAt(c.length-1);if("/"===d||"\\"===d)c=c.slice(0,-1);c=c.replace(/^.*[\/\\]/g,
"");"string"===typeof b&&c.substr(c.length-b.length)==b&&(c=c.substr(0,c.length-b.length));return c};f.pathinfo=function(c,b){var d="",a="",e="",g=0,p={},k=0,q=0,h=k=!1,u=!1;if(!c)return!1;b||(b="PATHINFO_ALL");var m={PATHINFO_DIRNAME:1,PATHINFO_BASENAME:2,PATHINFO_EXTENSION:4,PATHINFO_FILENAME:8,PATHINFO_ALL:0};for(e in m)m.hasOwnProperty(e)&&(m.PATHINFO_ALL|=m[e]);if("number"!==typeof b){b=[].concat(b);for(q=0;q<b.length;q++)m[b[q]]&&(g|=m[b[q]]);b=g}e=function(a){a+="";var b=a.lastIndexOf(".")+
1;return b?b!==a.length?a.substr(b):"":!1};b&m.PATHINFO_DIRNAME&&(g=c.replace(/\\/g,"/").replace(/\/[^\/]*\/?$/,""),p.dirname=g===c?".":g);b&m.PATHINFO_BASENAME&&(!1===k&&(k=f.basename(c)),p.basename=k);b&m.PATHINFO_EXTENSION&&(!1===k&&(k=f.basename(c)),!1===h&&(h=e(k)),!1!==h&&(p.extension=h));b&m.PATHINFO_FILENAME&&(!1===k&&(k=f.basename(c)),!1===h&&(h=e(k)),!1===u&&(u=k.slice(0,k.length-(h?h.length+1:!1===h?0:1))),p.filename=u);k=0;for(d in p)p.hasOwnProperty(d)&&(k++,a=d);return 1===k?p[a]:p};
f.parse_url=function(c,b){var d="source scheme authority userInfo user pass host port relative path directory file query fragment".split(" "),a=this.php_js&&this.php_js.ini||{},e=a["phpjs.parse_url.mode"]&&a["phpjs.parse_url.mode"].local_value||"php",g={php:/^(?:([^:\/?#]+):)?(?:\/\/()(?:(?:()(?:([^:@]*):?([^:@]*))?@)?([^:\/?#]*)(?::(\d*))?))?()(?:(()(?:(?:[^?#\/]*\/)*)()(?:[^?#]*))(?:\?([^#]*))?(?:#(.*))?)/,strict:/^(?:([^:\/?#]+):)?(?:\/\/((?:(([^:@]*):?([^:@]*))?@)?([^:\/?#]*)(?::(\d*))?))?((((?:[^?#\/]*\/)*)([^?#]*))(?:\?([^#]*))?(?:#(.*))?)/,
loose:/^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/\/?)?((?:(([^:@]*):?([^:@]*))?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/},g=g[e].exec(c),p={};for(c=14;c--;)g[c]&&(p[d[c]]=g[c]);if(b)return p[b.replace("PHP_URL_","").toLowerCase()];if("php"!==e){var k=a["phpjs.parse_url.queryKey"]&&a["phpjs.parse_url.queryKey"].local_value||"queryKey",g=/(?:^|&)([^&=]*)=?([^&]*)/g;p[k]={};b=p[d[12]]||"";b.replace(g,function(a,b,c){b&&(p[k][b]=
c)})}delete p.source;return p};f.getMimeTable=function(){return{}};f.getMimeTable2=function(){return{mid:"fa-file-audio-o",txt:"fa-file-text-o",sql:"fa-cube",js:"fa-cube",gif:"fa-file-picture-o",jpg:"fa-file-picture-o",html:"fa-cube",htm:"fa-cube",rar:"fa-file-zip-o",gz:"fa-file-zip-o",tgz:"fa-file-zip-o",z:"fa-file-zip-o",ra:"fa-file-movie-o",ram:"fa-file-movie-o",rm:"fa-file-movie-o",pl:"source_pl.png",zip:"fa-file-zip-o",wav:"fa-file-audio-o",php:"fa-cube",php3:"fa-cube",phtml:"fa-cube",exe:"fa-file-o",
bmp:"fa-file-picture-o",png:"fa-file-picture-o",css:"fa-cube",mp3:"fa-file-audio-o",m4a:"fa-file-audio-o",aac:"fa-file-audio-o",xls:"fa-file-excel-o",xlsx:"fa-file-excel-o",ods:"fa-file-excel-o",sxc:"fa-file-excel-o",csv:"fa-file-excel-o",tsv:"fa-file-excel-o",doc:"fa-file-word-o",docx:"fa-file-word-o",odt:"fa-file-word-o",swx:"fa-file-word-o",rtf:"fa-file-word-o",md:"fa-file-word-o",ppt:"fa-file-powerpoint-o",pps:"fa-file-powerpoint-o",odp:"fa-file-powerpoint-o",sxi:"fa-file-powerpoint-o",pdf:"fa-file-pdf-o",
mov:"fa-file-movie-o",avi:"fa-file-movie-o",mpg:"fa-file-movie-o",mpeg:"fa-file-movie-o",mp4:"fa-file-movie-o",m4v:"fa-file-movie-o",ogv:"fa-file-movie-o",webm:"fa-file-movie-o",wmv:"fa-file-movie-o",swf:"fa-file-movie-o",flv:"fa-file-movie-o",tiff:"fa-file-picture-o",tif:"fa-file-picture-o",svg:"fa-file-picture-o",psd:"fa-file-picture-o",ers:"horo.png"}};f.getIconTable=function(){return{}};f.urlDecode=function(c,b){if(!c||!c.length)return{};var d={};c=c.split("\x26");for(var a,e,g=0,p=c.length;g<
p;g++)a=c[g].split("\x3d"),e=decodeURIComponent(a[0]),a=decodeURIComponent(a[1]),null!=a&&"true"===a?a=!0:"false"===a&&(a=!1),!0!==b?"undefined"==typeof d[e]?d[e]=a:("string"==typeof d[e]&&(d[e]=[d[e]]),d[e].push(a)):d[e]=a;return d};f.getUrlArgs=function(c){var b={};if(c&&(-1!=c.indexOf("?")||-1!=c.indexOf("\x26"))){c=(c.substr(c.indexOf("?")+1)||location.search.substring(1)).split("\x26");for(var d=0;d<c.length;d++){var a=c[d].indexOf("\x3d"),e=c[d].substring(0,a),a=c[d].substring(a+1),a=decodeURIComponent(a);
b[e]=a}}return b};f.urlArgs=function(c){c=f.getUrlArgs(c);var b={},d;for(d in c){var a=c[d],e=f.findOcurrences(a,{begin:"|",end:"|"}),g=null;if(e&&e.length)for(var a=a.replace(e[0],""),e=e[0].substr(1,e[0].length-2).split(","),g={},p=0;p<e.length;p++){var k=e[p].split(":");g[k[0]]=k[1]}a&&a.length&&(b[d]={value:a,options:g})}return b};f.getIcon=function(c){if(!c)return"txt2.png";if(c=f.getFileExtension(c)){var b=f.getMimeTable();if(null!=b[c])return b[c]}return"txt2.png"};f.getIconClass=function(c){if(!c)return"fa-file-o";
c=f.getFileExtension(c);if(n.customMimeIcons[c])return n.customMimeIcons[c];if(c){var b=f.getMimeTable2();if(null!=b[c])return b[c]}return"fa-file-o"};f.getFileExtension=function(c){if(!c||""==c)return"";c=f.getBaseName(c).split(".");return 1<c.length?c[c.length-1].toLowerCase():""};f.createUUID=function(){var c=function(){return(65536*(1+Math.random())|0).toString(16).substring(1)};return c()+c()+"-"+c()+"-"+c()+"-"+c()+"-"+c()+c()+c()};f.getBaseName=function(c){if(null==c)return null;var b="/";
-1!==c.indexOf("\\")&&(b="\\");return c.substr(c.lastIndexOf(b)+1,c.length)};f.basename=function(c,b){var d=c.charAt(c.length-1);if("/"===d||"\\"===d)c=c.slice(0,-1);c=c.replace(/^.*[\/\\]/g,"");"string"===typeof b&&c.substr(c.length-b.length)===b&&(c=c.substr(0,c.length-b.length));return c};f.pathinfo=function(c,b){var d=f.basename,a="",e="",g="",p=0,k={},q=0,h=0,u=q=!1,m=!1;if(!c)return!1;b||(b="PATHINFO_ALL");var t={PATHINFO_DIRNAME:1,PATHINFO_BASENAME:2,PATHINFO_EXTENSION:4,PATHINFO_FILENAME:8,
PATHINFO_ALL:0};for(g in t)t.hasOwnProperty(g)&&(t.PATHINFO_ALL|=t[g]);if("number"!==typeof b){b=[].concat(b);for(h=0;h<b.length;h++)t[b[h]]&&(p|=t[b[h]]);b=p}g=function(a){a+="";var b=a.lastIndexOf(".")+1;return b?b!==a.length?a.substr(b):"":!1};b&t.PATHINFO_DIRNAME&&(p=c.replace(/\\/g,"/").replace(/\/[^\/]*\/?$/,""),k.dirname=p===c?".":p);b&t.PATHINFO_BASENAME&&(!1===q&&(q=d(c)),k.basename=q);b&t.PATHINFO_EXTENSION&&(!1===q&&(q=d(c)),!1===u&&(u=g(q)),!1!==u&&(k.extension=u));b&t.PATHINFO_FILENAME&&
(!1===q&&(q=d(c)),!1===u&&(u=g(q)),!1===m&&(m=q.slice(0,q.length-(u?u.length+1:!1===u?0:1))),k.filename=m);q=0;for(a in k)k.hasOwnProperty(a)&&(q++,e=a);return 1===q?k[e]:k};f.strip_tags=function(c,b){b=(((b||"")+"").toLowerCase().match(/<[a-z][a-z0-9]*>/g)||[]).join("");return c.replace(/\x3c!--[\s\S]*?--\x3e|<\?(?:php)?[\s\S]*?\?>/gi,"").replace(/<\/?([a-z][a-z0-9]*)\b[^>]*>/gi,function(c,a){return-1<b.indexOf("\x3c"+a.toLowerCase()+"\x3e")?c:""})};return f})},"nxapp/protocols/MQTT":function(){define("dcl/dcl xide/utils nxapp/types/Types nxapp/protocols/ProtocolBase dojo/node!util nxapp/utils/_console dojo/node!mqtt dojo/Deferred".split(" "),
function(f,n,l,m,g,c,b,d){var a=!0;f=f(m,{declaredClass:"nxapp.protocols.MQTT",_socket:null,protocolName:"mqtt",instance:null,subscriptions:null,mqttClient:null,getOptions:function(a,b,c){return n.mixin({clean:!1,clientId:c.clientId||a+":"+b,port:b,protocol:""},c)},onConnected:function(){a&&c.log("# "+this.protocolName+" - Protocol:: onConnected "+this.options.host+" : "+this.options.port+" @ "+this.protocolName);this.connection.connected=!0;this.delegate.onConnect2(this.connection)},onError:function(a,
b){this.delegate.onError(this.connection,n.mixin({code:a},b),this.options)},onClose:function(a){this.delegate.onClose(this.connection,a)},connect:function(){var d=this.options;if(!d||!d.driver)return a||this.isDebug()&&c.error("no driver in options",d),this;var g=this,p=d.host,k=d.port,d=n.getJson(d.options||{});!0===d.debug&&(a=!0);d=this.getOptions(p,k,d);this.host=p;this.port=k;this.protocol=this.protocolName;a||this.isDebug()&&c.log("MQTT-\x3econnecting to "+p+" with",d);var q=null;try{q=b.connect(p,
d),q.on("error",function(a){c.error("MQTT-\x3eerror connecting to "+p+" with",a)})}catch(h){a||this.isDebug()&&c.error("MQTT-\x3econnect error :: code: ",h);return}this.mqttClient=q;try{q.on("connect",function(a){g.onConnected()})}catch(h){a||this.isDebug()&&c.error("MQTT-\x3econnect error :: code: ",h)}q.on("close",function(b){a||g.isDebug()&&c.log("MQTT-\x3eclose :: code: ",b);g.onClose();q.end()});this._socket={};this._socket.writable=!0;return this},onData:function(a,b){this.delegate.onData(this.connection,
a,b)},onCommandError:function(b,d){a||this.isDebug()&&c.log("MQTT-\x3eCommandError "+b+" id "+d.id+" src "+d.src);try{this.delegate.onData(this.connection,n.mixin({cmd:b,event:l.EVENTS.ON_COMMAND_ERROR},d))}catch(p){c.error("---",p)}},onFinish:function(b,d,g){a||this.isDebug()&&c.log("MQTT onFinish "+b+" id "+d.id+" src "+d.src);try{this.delegate.onData(this.connection,n.mixin({cmd:b,event:l.EVENTS.ON_COMMAND_FINISH},d),g)}catch(k){c.error("onFinish-Error:",k)}},addSubscription:function(a,b,d){!this.subscriptions&&
(this.subscriptions={});if(a){var e=this,q=""+a;if(!this.subscriptions[q]){b={qos:parseInt(b.qos)||0};this.mqttClient.subscribe(q,b);this.isDebug()&&c.log("add subscription : "+a+" for ",g.inspect(d,{depth:null,colors:!0}));var h=this.subscriptions[q]={id:d.params.id,src:d.params.src,topic:q};this.mqttClient.on("message",function(a,b){if(a===q)if(b=n.getJson(b.toString()),_.isArray(b))e.onData(n.mixin({payload:b,topic:a},h));else if(_.isObject(b))b.topic||(b.topic=a),e.onData(n.mixin(b,h));else if(_.isString(b)||
_.isNumber(b))e.onData(n.mixin({payload:b,topic:a},h));else c.error("-unknown "+a)})}}else c.error("invalid topic")},unSubscribeTopic:function(a,b,c){a=n.getJson(a);(a=""+a.topic)&&this.unsubscribe(a)},subscribeTopic:function(a,b,c){a=n.getJson(a);b=n.getJson(b);c=""+a.topic;delete a.topic;this.addSubscription(c,a,b)},publishTopic:function(b,d,g){try{b=n.getJson(b);d=n.getJson(d);var e=""+b.topic,q=b.qos,h=b.retain;delete b.topic;delete b.qos;delete b.retain;var p=b.payload||b;if(_.isObject(p))try{p=
JSON.stringify(p)}catch(v){c.error("error generating payload",v);return}this.mqttClient.publish(e,p,{qos:q,retain:h})}catch(v){a||this.isDebug()&&c.log("---error ",v)}},send:function(a,b){},unsubscribe:function(a){a&&this.mqttClient&&this.subscriptions&&this.subscriptions[a]&&(this.mqttClient.unsubscribe(a),delete this.subscriptions[a])},close:function(){this.mqttClient&&(_.each(this.subscriptions,this.unsubscribe,this),this.mqttClient.end(),this.mqttClient=null)}});f.options=function(a){try{var b=
new d,e=l.ECIType,k=[n.createCI("clientId",e.STRING,"",{group:"Network",title:"Client id",description:"mqttjs_' + Math.random().toString(16).substr(2, 8)"}),n.createCI("protocolVersion",e.INTEGER,4,{group:"Network",title:"Protocol id",description:""}),n.createCI("protocolId",e.STRING,"",{group:"Network",title:"Protocol id",description:""}),n.createCI("username",e.STRING,"",{group:"Network",title:"User name",description:"the username required by your broker, if any"}),n.createCI("password",e.STRING,
"",{group:"Network",title:"Password",password:!0,description:"the password required by your broker, if any"}),n.createCI("keepalive",e.INTEGER,10,{group:"Network",title:"Keep alive",description:"10 seconds, set to 0 to disable"}),n.createCI("reconnectPeriod",e.INTEGER,1E3,{group:"Network",title:"Reconnect period",description:"1000 milliseconds, interval between two re-connections"}),n.createCI("connectTimeout",e.INTEGER,3E4,{group:"Network",title:"Connect timeout",description:"30 * 1000 milliseconds, time to wait before a CONNACK is received"}),
n.createCI("reschedulePings",e.BOOL,!0,{group:"Network",title:"Reschedule",description:"reschedule ping messages after sending packets"}),n.createCI("queueQoSZero",e.BOOL,!0,{group:"Network",title:"Queue QoS Zero",description:" if connection is broken, queue outgoing QoS zero messages (default true)"}),n.createCI("clean",e.BOOL,!0,{group:"Network",title:"Clean",description:"set to false to receive QoS 1 and 2 messages while offline"})];b.resolve(k);return b}catch(q){c.error("error",q)}return b};return f})},
"xide/data/_Base":function(){define("dojo/_base/declare dstore/QueryResults xide/mixins/EventedMixin xide/encoding/MD5 xdojo/has xide/lodash dojo/when dojo/Deferred".split(" "),function(f,n,l,m,g,c,b,d){return f("xide/data/_Base",l,{__all:null,allowCache:!0,_find:function(a){a=c.filter(this.data,a);return c.isArray(a)?a:c.isObject(a)?[a]:[]},notify:function(){},_query:function(a){var c=new d;a=this.filter(a);b(a.fetch(),function(a){c.resolve(a)});return c},constructor:function(){var a=this;if(a._getQuerierFactory("filter")||
a._getQuerierFactory("sort"))this.queryEngine=function(b,c){c=c||{};var d=a._getQuerierFactory("filter"),e=d?d(b):passthrough;b=a._getQuerierFactory("sort");var h=passthrough;b&&(h=b(arrayUtil.map(c.sort,function(a){return{property:a.attribute,descending:a.descending}})));var g=passthrough;isNaN(c.start)&&isNaN(c.count)||(g=function(a){var b=c.start||0,b=a.slice(b,b+(c.count||Infinity));b.total=a.length;return b});return function(a){return g(h(e(a)))}};var b=this;a.on("add,update,delete",function(c){var d=
c.type,e=c.target;b.notify("add"===d||"update"===d?e:void 0,"delete"===d||"update"===d?"id"in c?c.id:a.getIdentity(e):void 0)})},destroy:function(){this._emit("destroy",this);this.query().forEach(function(a){!0===a.destroyOnRemove&&a.destroy&&a.destroy()});delete this._queryCache;this._queryCache=null},refreshItem:function(a,b){this.emit("update",{target:a,property:b})},query:function(a,b,d){if(c.isEmpty(a)){var e=this;return _.map(this.data,function(a){return e.getSync(a[e.idProperty])},this)}_.some(a,
function(a){return null==a});a&&m(JSON.stringify(a),1);g("xcf-ui");b=b||{};a=a||{};var k=this.filter(a),q;if(a=b.sort)if("[object Array]"===Object.prototype.toString.call(a))for(;d=a.pop();)k=k.sort(d.attribute,d.descending);else k=k.sort(a);"start"in b&&(q=b.start||0,q=k[k.fetchRangeSync?"fetchRangeSync":"fetchRange"]({start:q,end:b.count?q+b.count:Infinity}),q.total=q.totalLength);q=q||new n(k[k.fetchSync?"fetchSync":"fetch"]());q.observe=function(a,b){var c=k.on("add",function(b){a(b.target,-1,
b.index)}),d=k.on("update",function(c){!b&&c.previousIndex===c.index&&isFinite(c.index)||a(c.target,c.previousIndex,c.index)}),e=k.on("delete",function(b){a(b.target,b.previousIndex,-1)}),h={remove:function(){c.remove();d.remove();e.remove()}};h.cancel=h.remove;return h};g("xcf-ui");return q}})})},"dstore/QueryResults":function(){define(["dojo/_base/lang","dojo/when"],function(f,n){function l(f,g){return n(this,function(c){for(var b=0,d=c.length;b<d;b++)f.call(g,c[b],b,c)})}return function(m,g){var c=
g&&"totalLength"in g;if(m.then){m=f.delegate(m);var b=m.then(function(b){var a=c?g.totalLength:b.totalLength||b.length;b.totalLength=a;return!c&&a});m.totalLength=c?g.totalLength:b;m.response=g&&g.response}else m.totalLength=c?g.totalLength:m.length;m.forEach=l;return m}})},"xide/data/TreeMemory":function(){define(["dojo/_base/declare","xide/data/Memory","dstore/Tree","dojo/Deferred","dstore/QueryResults"],function(f,n,l,m,g){return f("xide.data.TreeMemory",[n,l],{_state:{filter:null},parentProperty:"parentId",
reset:function(){this._state.filter=null;this.resetQueryLog()},resetQueryLog:function(){this.queryLog=[]},fetchRange:function(){var c=this._fetchRange(arguments);return new g(c.then(function(b){return b}),{totalLength:c.then(function(b){return b.length})})},filter:function(c){var b=this.inherited(arguments);this._state.filter=c;return b},_fetchRange:function(c){var b=new m;c=this.fetchRangeSync(c);if(this._state.filter){if(this._state.filter.parent){var d=this.getSync(this._state.filter[this.parentProperty]);
d&&(this.reset(),c={},this.getChildrenSync?c=this.getChildrenSync(d):(c[this.parentProperty]=d[this.idProperty],c=this.root.query(c)))}this._state&&this._state.filter&&this._state.filter.group&&(this.getSync(this._state.filter.parent),d&&(this.reset(),c=d.items))}b.resolve(c);return b},getChildren:function(c){var b={};b[this.parentProperty]=this.getIdentity(c);return this.root.filter(b)},children:function(c){var b=this,d=this.root.data,a=[];d.forEach(function(d){d[b.parentProperty]==c[b.idProperty]&&
a.push(d)});return d},mayHaveChildren:function(c){return!1===c._mayHaveChildren?!1:!0}})})},"xide/data/Memory":function(){define(["dojo/_base/declare","dstore/Memory","xide/data/_Base"],function(f,n,l){return f("xide.data.Memory",[n,l],{silent:function(f){if(void 0===f)return this._ignoreChangeEvents;if(!0===f||!1===f&&f!==this._ignoreChangeEvents)this._ignoreChangeEvents=f},putSync:function(f){var g=this;(f=this.inherited(arguments))&&!f._store&&Object.defineProperty(f,"_store",{get:function(){return g}});
return f}})})},"dstore/Memory":function(){define("dojo/_base/declare dojo/_base/array ./Store ./Promised ./SimpleQuery ./QueryResults".split(" "),function(f,n,l,m,g,c){return f([l,m,g],{constructor:function(){this.storage.version=0},postscript:function(){this.inherited(arguments);this.setData(this.data||[])},data:null,autoEmitEvents:!1,getSync:function(b){return this.storage.fullData[this.storage.index[b]]},putSync:function(b,c){c=c||{};var a=this.storage,d=a.index,g=a.fullData,p=this.Model;!p||b instanceof
p||(b=this._restore(b));var k=this.getIdentity(b);null==k&&(this._setIdentity(b,"id"in c?c.id:Math.random()),k=this.getIdentity(b));a.version++;var a=k in d?"update":"add",p={target:b},q;if("update"===a){if(!1===c.overwrite)throw Error("Object already exists");g.splice(q=d[k],1);k=q}else k=this.defaultNewToStart?0:g.length;if("beforeId"in c){var h=c.beforeId;null===h?c=g.length:(c=d[h],q<c&&--c);void 0!==c?p.beforeId=h:(console.error("options.beforeId was specified but no corresponding index was found"),
c=k)}else c=k;g.splice(c,0,b);q=isFinite(q)?Math.min(q,c):c;for(c=g.length;q<c;++q)d[this.getIdentity(g[q])]=q;this.emit(a,p);return b},addSync:function(b,c){(c=c||{}).overwrite=!1;return this.putSync(b,c)},removeSync:function(b){var c=this.storage,a=c.index,c=c.fullData;if(b in a)return a=c.splice(a[b],1)[0],this._reindex(),!0!==this._ignoreChangeEvents&&this.emit("delete",{id:b,target:a}),!0},setData:function(b){this.parse&&(b=this.parse(b));b.items&&(this.idProperty=b.identifier||this.idProperty,
b=b.items);this.storage.fullData=this.data=b;this._reindex()},_reindex:function(){for(var b=this.storage,c=b.index={},a=b.fullData,e=this.Model,g=Object.prototype,p=0,k=a.length;p<k;p++){var q=a[p];if(e&&!(q instanceof e)){var h=this._restore(q,q.__proto__===g);q!==h&&(a[p]=q=h)}c[this.getIdentity(q)]=p}b.version++},fetchSync:function(){var b=this.data;if(!b||b._version!==this.storage.version){for(var b=this.storage.fullData,d=this.queryLog,a=0,e=d.length;a<e;a++)b=d[a].querier(b);b._version=this.storage.version;
this.data=b}return new c(b)},fetchRangeSync:function(b){var d=this.fetchSync();return new c(d.slice(b.start,b.end),{totalLength:d.length})},_includePropertyInSubCollection:function(b){return"data"!==b&&this.inherited(arguments)}})})},"dstore/Store":function(){define("dojo/_base/lang dojo/_base/array dojo/aspect dojo/has dojo/when dojo/_base/declare dstore/QueryMethod dstore/Filter dojo/Evented".split(" "),function(f,n,l,m,g,c,b,d,a){function e(a){return function(b,c){var d=this;g(b,function(b){b=
{target:b};var e=c[1]||{};"beforeId"in e&&(b.beforeId=e.beforeId);d.emit(a,b)});return b}}m.add("object-proto",!!{}.__proto__&&!{}.watch);var r=m("object-proto");return c(a,{constructor:function(b){b&&c.safeMixin(this,b);this.Model&&this.Model.createSubclass&&(this.Model=this.Model.createSubclass([],{}).extend({_store:this}));this.storage=new a;var d=this;this.autoEmitEvents&&(l.after(this,"add",e("add")),l.after(this,"put",e("update")),l.after(this,"remove",function(a,b){g(a,function(){d.emit("delete",
{id:b[0]})});return a}))},autoEmitEvents:!0,idProperty:"id",queryAccessors:!0,getIdentity:function(a){return a.get?a.get(this.idProperty):a[this.idProperty]},_setIdentity:function(a,b){a.set?a.set(this.idProperty,b):a[this.idProperty]=b},forEach:function(a,b){var c=this;return g(this.fetch(),function(d){for(var e=0,h;void 0!==(h=d[e]);e++)a.call(b,h,e,c);return d})},on:function(a,b){return this.storage.on(a,b)},emit:function(a,b){b=b||{};b.type=a;try{return this.storage.emit(a,b)}finally{return b.cancelable}},
parse:null,stringify:null,Model:null,_restore:function(a,b){var c=this.Model;if(c&&a){var d=c.prototype,e=d._restore;e?a=e.call(a,c,b):r&&b?a.__proto__=d:a=f.delegate(d,a)}return a},create:function(a){return new this.Model(a)},_createSubCollection:function(a){var b=f.delegate(this.constructor.prototype),d;for(d in this)this._includePropertyInSubCollection(d,b)&&(b[d]=this[d]);return c.safeMixin(b,a)},_includePropertyInSubCollection:function(a,b){return!(a in b)||b[a]!==this[a]},queryLog:[],filter:new b({type:"filter",
normalizeArguments:function(a){var b=this.Filter;return a instanceof b?[a]:[new b(a)]}}),Filter:d,sort:new b({type:"sort",normalizeArguments:function(a,b){var c;"function"===typeof a?c=[a]:(c=a instanceof Array?a.slice():"object"===typeof a?[].slice.call(arguments):[{property:a,descending:b}],c=n.map(c,function(a){a=f.mixin({},a);a.descending=!!a.descending;return a}),c=[c]);return c}}),select:new b({type:"select"}),_getQuerierFactory:function(a){return this["_create"+(a[0].toUpperCase()+a.substr(1))+
"Querier"]}})})},"dstore/QueryMethod":function(){define([],function(){return function(f){var n=f.type,l=f.normalizeArguments,m=f.applyQuery,g=f.querierFactory;return function(){var c=Array.prototype.slice.call(arguments),b=l?l.apply(this,c):c,c={type:n,arguments:c,normalizedArguments:b},d=this._getQuerierFactory(n)||g;d&&(c.querier=d.apply(this,b));b=this._createSubCollection({queryLog:this.queryLog.concat(c)});return m?m.call(this,b,c):b}}})},"dstore/Filter":function(){define(["dojo/_base/declare"],
function(f){function n(f){return function(){var g=this.constructor,c=new g;c.type=f;c.args=Array.prototype.slice.call(arguments);return this.type?n("and").call(g.prototype,this,c):c}}function l(f){return function(){for(var g=this.constructor,c=[],b=0;b<arguments.length;b++){var d=arguments[b];c.push(d instanceof g?d:new g(d))}g=new g;g.type=f;g.args=c;this.type===f?g.args=this.args.concat(c):this.type?c.unshift(this):1===c.length&&(g.type=c[0].type,g.args=c[0].args.slice());return g}}f=f(null,{constructor:function(f){var g=
typeof f;switch(g){case "object":var g=this,c;for(c in f)var b=f[c],g=b instanceof this.constructor?g[b.type](c,b.args[0]):b&&b.test?g.match(c,b):g.eq(c,b);this.type=g.type;this.args=g.args;break;case "function":case "string":this.type=g,this.args=[f]}},and:l("and"),or:l("or"),eq:n("eq"),ne:n("ne"),lt:n("lt"),lte:n("lte"),gt:n("gt"),gte:n("gte"),contains:n("contains"),"in":n("in"),match:n("match")});f.filterCreator=n;f.logicalOperatorCreator=l;return f})},"dstore/Promised":function(){define(["dojo/_base/declare",
"dojo/Deferred","./QueryResults","dojo/when"],function(f,n,l,m){function g(c,b){return function(){var d=new n;try{d.resolve(this[c].apply(this,arguments))}catch(a){d.reject(a)}return b?(d=new l(d.promise),d.totalLength=m(d.totalLength),d):d.promise}}return f(null,{get:g("getSync"),put:g("putSync"),add:g("addSync"),remove:g("removeSync"),fetch:g("fetchSync",!0),fetchRange:g("fetchRangeSync",!0)})})},"dstore/SimpleQuery":function(){define(["dojo/_base/declare","dojo/_base/array"],function(f,n){function l(g,
c){if(-1<g.indexOf(".")){var b=g.split("."),d=b.length;return function(a){for(var e=0;e<d;e++)a=a&&(c&&a.get?a.get(b[e]):a[b[e]]);return a}}return function(a){return a.get?a.get(g):a[g]}}var m={eq:function(g,c){return g===c},"in":function(g,c){return-1<n.indexOf(c.data||c,g)},ne:function(g,c){return g!==c},lt:function(g,c){return g<c},lte:function(g,c){return g<=c},gt:function(g,c){return g>c},gte:function(g,c){return g>=c},match:function(g,c,b){return c.test(g,b)},contains:function(g,c,b,d){var a=
this;return n.every(c.data||c,function(c){if("object"===typeof c&&c.type){var e=a._getFilterComparator(c.type);return n.some(g,function(g){return e.call(a,g,c.args[1],b,d)})}return-1<n.indexOf(g,c)})}};return f(null,{_createFilterQuerier:function(g){function c(e){var g=e.type;e=e.args;var p=d._getFilterComparator(g);if(p){var k=e[0],q=l(k,b),h=e[1];h&&h.fetchSync&&(h=h.fetchSync());return function(a){return p.call(d,q(a),h,a,k)}}switch(g){case "and":case "or":for(var f=0,m=e.length;f<m;f++){var t=
c(e[f]);a=a?function(a,b){return"and"===g?function(c){return a(c)&&b(c)}:function(c){return a(c)||b(c)}}(a,t):t}return a;case "function":return e[0];case "string":f=d[e[0]];if(!f)throw Error("No filter function "+e[0]+" was found in the collection");return f;case void 0:return function(){return!0};default:throw Error('Unknown filter operation "'+g+'"');}}var b=this.queryAccessors,d=this,a=c(g);return function(b){return n.filter(b,a)}},_getFilterComparator:function(g){return m[g]||this.inherited(arguments)},
_createSelectQuerier:function(g){return function(c){var b=g.length;return n.map(c,g instanceof Array?function(c){for(var a={},d=0;d<b;d++){var f=g[d];a[f]=c[f]}return a}:function(b){return b[g]})}},_createSortQuerier:function(g){var c=this.queryAccessors;return function(b){b=b.slice();b.sort("function"==typeof g?g:function(b,a){for(var d=0;d<g.length;d++){var f,p=g[d];if("function"==typeof p)f=p(b,a);else{f=p.get||(p.get=l(p.property,c));var p=p.descending,k=f(b);f=f(a);null!=k&&(k=k.valueOf());null!=
f&&(f=f.valueOf());f=k===f?0:!!p===(null===k||k>f&&null!==f)?-1:1}if(0!==f)return f}return 0});return b}}})})},"dstore/Tree":function(){define(["dojo/_base/declare"],function(f){return f(null,{constructor:function(){this.root=this},mayHaveChildren:function(f){return"hasChildren"in f?f.hasChildren:!0},getRootCollection:function(){return this.root.filter({parent:null})},getChildren:function(f){return this.root.filter({parent:this.getIdentity(f)})}})})},"xide/data/ObservableStore":function(){define(["dojo/_base/declare",
"xide/mixins/EventedMixin","xide/lodash"],function(f,n,l){return f("xide/data/Observable",n,{_ignoreChangeEvents:!0,observedProperties:[],putSync:function(f,g){this.silent(!g);var c=this.inherited(arguments),b=this;!1!==g&&this.emit("added",c);c&&!c._store&&Object.defineProperty(c,"_store",{get:function(){return b}});this._observe(c);this.silent(!1);return c},removeSync:function(f,g){this.silent(g);var c=this.getSync(f);c&&c.onRemove&&c.onRemove();c=this.inherited(arguments);this.silent(!1);return c},
_onItemChanged:function(f,g,c,b){this._ignoreChangeEvents||(g={target:f,property:g,value:c,source:b},this.emit("update",g),f.onItemChanged&&f.onItemChanged(g))},_observe:function(f){var g=this,c=this.observedProperties;f.observed&&(c=c.concat(f.observed));c.forEach(function(b){f.property&&f.property(b).observe(function(c){this._onItemChanged(f,b,c,this)}.bind(g))})},setData:function(f){var g=this,c=this.inherited(arguments);this.silent(!0);f&&f.forEach(function(b){return g._observe});this.silent(!1);
return c}})})},"dstore/Trackable":function(){define("dojo/_base/lang dojo/_base/declare dojo/aspect dojo/when dojo/promise/all dojo/_base/array dojo/on".split(" "),function(f,n,l,m,g,c,b){function d(a,b,c){for(var d=a.length-1;0<=d;--d){var e=a[d],k=e.start,e=k+e.count;if(b>e){a.splice(d+1,0,{start:b,count:c-b});return}c>=k&&(b=Math.min(b,k),c=Math.max(c,e),a.splice(d,1))}a.unshift({start:b,count:c-b})}var a=0,e={track:function(){function e(){return function(){var a=this,b=this.inherited(arguments);
m(b,function(b){b=a._results=b.slice();a._partialResults&&(a._partialResults=null);a._ranges=[];d(a._ranges,0,b.length)});return b}}function g(){return function(a){var b=this,c=a.start,e=a.end,h=this.inherited(arguments);this._results||m(h,function(a){return m(a.totalLength,function(h){var k=b._partialResults||(b._partialResults=[]);e=Math.min(e,c+a.length);k.length=h;h=[c,e-c].concat(a);k.splice.apply(k,h);d(b._ranges,c,e);return a})});return h}}function k(b,d){a++;var e=d.target;d=f.delegate(d,
w[b]);m(t._results||t._partialResults,function(a){if(a){var h,k,g,p=t._ranges,f,u="id"in d?d.id:q.getIdentity(e),r=-1,m=-1,l=-1,v=-1;if("delete"===b||"update"===b)for(h=0;-1===r&&h<p.length;++h)for(f=p[h],k=f.start,g=k+f.count;k<g;++k)if(q.getIdentity(a[k])==u){r=d.previousIndex=k;m=h;a.splice(r,1);f.count--;for(k=h+1;k<p.length;++k)p[k].start--;break}if("add"===b||"update"===b){if(x){if(x([e]).length){var w=0;g=p.length-1;k=-1;for(var n;w<=g&&-1===l;)h=w+Math.round((g-w)/2),f=p[h],m=a.slice(f.start,
f.start+f.count),"beforeId"in d&&(k=null===d.beforeId?m.length:A(m,d.beforeId)),-1===k&&(k=r>=Math.max(0,f.start-1)&&r<=f.start+f.count?r:q.defaultNewToStart?0:m.length),m.splice(k,0,e),u=c.indexOf(x(m),e),n=f.start+u,0===u&&0!==f.start?g=h-1:u>=m.length-1&&n<a.length?w=h+1:(l=n,v=h);if(-1===l&&0<w&&w<p.length)var y=!0}}else{k=-1;if("beforeId"in d)if(null===d.beforeId)l=a.length,k=p.length-1;else for(h=0,g=p.length;-1===v&&h<g;++h)f=p[h],l=A(a,d.beforeId,f.start,f.start+f.count),-1!==l&&(v=h);else"update"===
b?(l=r,v=m):q.defaultNewToStart?k=l=0:(l=a.length,k=p.length-1);-1!==k&&-1===v&&(f=p[k])&&f.start<=l&&l<=f.start+f.count&&(v=k)}if(-1<l&&-1<v)for(d.index=l,a.splice(l,0,e),p[v].count++,h=v+1;h<p.length;++h)p[h].start++;else if(y)for(d.beforeIndex=p[w].start,h=w;h<p.length;++h)p[h].start++}d.totalLength=a.length}(a=t["on_tracked"+b])&&a.call(t,d)})}var q=this.store||this,h=[],u={add:1,update:1,"delete":1},v;for(v in u)h.push(this.on(v,function(a){return function(b){k(a,b)}}(v)));var t=n.safeMixin(f.delegate(this),
{_ranges:[],fetch:e(),fetchRange:g(),releaseRange:function(a,b){if(this._partialResults){a:for(var c=this._ranges,d=0,e;e=c[d];++d){var h=e.start,k=h+e.count;if(a<=h)if(b>=k)c.splice(d,1);else{e.start=b;e.count=k-e.start;break a}else if(a<k)if(b>h){c.splice(d,1,{start:h,count:a-h},{start:b,count:k-b});break a}else e.count=a-e.start}for(;a<b;++a)delete this._partialResults[a]}},on:function(a,c){var d=this,e=this.getInherited(arguments);return b.parse(t,a,c,function(a,b){return b in u?l.after(t,"on_tracked"+
b,c,!0):e.call(d,b,c)})},tracking:{remove:function(){for(;0<h.length;)h.pop().remove();this.remove=function(){}}},track:null});this.fetchSync&&(n.safeMixin(t,{fetchSync:e(),fetchRangeSync:g()}),t.fetchSync());var x;c.forEach(this.queryLog,function(a){var b=x,c=a.querier;c&&(x=b?function(a){return c(b(a))}:c)});var w={add:{index:void 0},update:{previousIndex:void 0,index:void 0},"delete":{previousIndex:void 0}},A=function(a,b,c,d){d=void 0!==d?d:a.length;for(c=void 0!==c?c:0;c<d;++c)if(q.getIdentity(a[c])===
b)return c;return-1};return t}};g=n(null,e);g.create=function(a,b){a=n.safeMixin(f.delegate(a),e);n.safeMixin(a,b);return a};return g})},"xide/manager/ContextBase":function(){define("dcl/dcl xide/factory xide/types xide/utils xide/mixins/EventedMixin dojo/_base/kernel dojo/_base/lang".split(" "),function(f,n,l,m,g,c,b){g=f(g.dcl,{declaredClass:"xide.manager.ContextBase",language:"en",managers:[],mixins:null,_getModuleDojo:function(c){return b.getObject(m.replaceAll("/",".",c))||b.getObject(c)},_getModuleDcl:function(b){return f.getObject?
f.getObject(b)||f.getObject(m.replaceAll("/",".",b)):null},getModule:function(b){return this._getModuleDojo(b)||this._getModuleDcl(b)},setModule:function(c,a){if(this._getModuleDojo(c))return b.setObject(m.replaceAll("/",".",c),a);if(this._getModuleDcl(c))return f.setObject(m.replaceAll("/",".",c),a)},createManager:function(b,a,e){try{this.managers||(this.managers=[]);var d={ctx:this,config:a||this.config};m.mixin(d,e);if(_.isString(b)&&this.namespace){var g=null,g=b.includes(".")?""+b:this.namespace+
b;b=c.getObject(g)&&f.getObject(g)?g:this.defaultNamespace+b}else _.isObject(b);var k=n.createInstance(b,d);if(k)return this.managers.push(k),n.publish(l.EVENTS.ON_CREATED_MANAGER,{instance:k,className:b,ctx:this,config:a||this.config}),k}catch(q){console.error("error creating manager "+q,arguments)}},constructManagers:function(){},initManagers:function(){},doMixins:function(b){var a=this;this.mixins=b||this.mixins;b.forEach(function(b){var c=a.getModule(b.declaredClass);b.declaredClass===a.declaredClass&&
(c=a);c&&m.mixin(c.prototype,b.mixin)})}});f.chainAfter(g,"constructManagers");f.chainAfter(g,"initManagers");return g})},"nxapp/Commons":function(){define("dojo/has dojo/_base/lang nxapp/types/Types xide/factory xide/factory/Events xide/factory/Objects xide/utils/StringUtils xide/utils/HexUtils xide/utils/CIUtils xide/utils/ObjectUtils xide/utils/StoreUtils nxapp/utils/FileUtils xide/utils nxapp/utils dojo/node!os dojo/node!util nxapp/utils/_console".split(" "),function(f,n,l,m,g,c,b,d,a,e,r,p,k,
q,h,u,v){n="linux";"win32"===h.platform()?n="windows":"darwin"===h.platform()?n="osx":"linux"===h.platform()&&"arm"==h.arch()&&(n="arm");"arm"===n?f.add("serialport",function(){return!1}):f.add("serialport",function(){return!0});k.mixin(q,k);k.mixin(k,q);k.inspect=function(a){return u.inspect(a,{depth:null,colors:!0})};Array.prototype.remove=function(){for(var a,b=arguments,c=b.length,d;c&&this.length;)for(a=b[--c];-1!=(d=this.indexOf(a));)this.splice(d,1);return this};Array.prototype.contains=function(a){for(var b=
this.length;b--;)if(this[b]==a)return!0;return!1};Array.prototype.indexOfPropertyValue||(Array.prototype.indexOfPropertyValue=function(a,b){for(var c=0;c<this.length;c++)if(this[c][a]&&this[c][a]==b)return c;return-1});"function"!=typeof String.prototype.startsWith&&(String.prototype.startsWith=function(a){return this.substring(0,a.length)===a});"function"!=typeof String.prototype.endsWith&&(String.prototype.endsWith=function(a){return this.substring(this.length-a.length,this.length)===a});return{utils:q,
types:l}})},"xide/factory/Objects":function(){define(["dcl/dcl","xide/utils","xide/factory","xdojo/declare"],function(f,n,l,m){l.createInstance=function(g,c,b){var d={};n.mixin(d,c);c=g;if(_.isString(g)&&(c=dojo.getObject(c)||f.getObject(c),!c))return console.error("no such class : "+g),null;b&&(c=m(b,c.prototype));d.id||(d.id=(c.declaredClass||"no_class_").replace(/\//g,"_")+n.createUUID());g=new c(d);g.ctrArgs=d;return g};return l})},"xide/utils/CIUtils":function(){define(["xide/utils","xide/types",
"xide/factory","dojo/has","xide/lodash"],function(f,n,l,m,g){f.toOptions=function(c){c=f.flattenCIS(c);for(var b=[],d=0;d<c.length;d++){var a=c[d];b.push({name:f.toString(a.name),value:f.getCIValue(a),type:f.toInt(a.type),enumType:f.toString(a.enumType),visible:f.toBoolean(a.visible),active:f.toBoolean(a.active),changed:f.toBoolean(a.changed),group:f.toString(a.group),user:f.toObject(a.user),dst:f.toString(a.dst),id:f.toString(a.id),params:f.toString(a.params)})}return b};if(m("xideve")||m("xblox-ui"))f.getEventsAsOptions=
function(c){var b=[{label:"Select Event",value:""}],d;for(d in n.EVENTS)b.push({label:n.EVENTS[d],value:n.EVENTS[d]});b=b.concat([{label:"onclick",value:"onclick"},{label:"ondblclick",value:"dblclick"},{label:"onmousedown",value:"mousedown"},{label:"onmouseup",value:"mouseup"},{label:"onmouseover",value:"mouseover"},{label:"onmousemove",value:"mousemove"},{label:"onmouseout",value:"mouseout"},{label:"onkeypress",value:"keypress"},{label:"onkeydown",value:"keydown"},{label:"onkeyup",value:"keyup"},
{label:"onfocus",value:"focus"},{label:"onblur",value:"blur"},{label:"On Load",value:"Load"}]);for(d=0;d<b.length;d++){var a=b[d];if(a.value===c){a.selected=!0;break}}return b};f.flattenCIS=function(c){for(var b=[],d=[],a=0;a<c.length;a++){var e=c[a],g=f.toInt(e.type);g>n.ECIType.END&&(g=n.resolveType(g))&&(f.mixin(b,g),d.push(e))}0<b.length&&(c=c.concat(b));if(d)for(a in d)c.remove(d[a]);return c};f.arrayContains=function(c,b){for(var d=0;d<c.length;d++)if(c[d]===b)return!0;return!1};f.setStoreCIValueByField=
function(c,b,d){null==c[b]&&(c[b]=[]);c[b][0]=f.getStringValue(d);return c};f.createOption=function(c,b,d){return f.mixin({label:c,value:null!=b?b:c},d)};f.createCI=function(c,b,d,a,e){c={dataRef:null,dataSource:null,name:c,group:-1,id:c,title:c,type:b,uid:-1,value:null!=d?d:-1,visible:!0,enumType:-1,"class":"cmx.types.ConfigurableInformation"};f.mixin(c,a);e&&e.publish&&l.publish(e.publish,{CI:c,owner:e.owner},e.owner);return c};f.createCIAsArray=function(c,b,d,a){return{chainType:[d?d:0],dataRef:[null],
dataSource:[null],params:[],name:[c],group:[-1],id:[c],title:[c],type:[b],uid:[-1],value:[a?a:-1],visible:[!0],enumType:[-1],parentId:[-1],"class":["cmx.types.ConfigurableInformation"]}};f.hasValue=function(c){return c.value&&null!=c.value[0]&&0<c.value[0].length&&"0"!=c.value[0]&&"undefined"!=c.value[0]&&"Unset"!=c.value[0]};f.hasValueAndDataRef=function(c){return c.value&&null!=c.value[0]&&0<c.value[0].length&&"0"!=c.value[0]&&"undefined"!=c.value[0]&&"Unset"!=c.value[0]&&c.dataRef&&null!=c.dataRef[0]&&
0<c.dataRef[0].length&&"0"!=c.dataRef[0]&&"undefined"!=c.dataRef[0]};f.getInputCIByName=function(c,b){if(!c||!b)return null;var d=c.inputs;d||(d=c);if(null!=d)for(c=0;c<d.length;c++){var a=d[c],e=f.getStringValue(a.name);if(null!=e&&e.toLowerCase()===b.toLowerCase())return a}return null};f.getInputCIById=function(c,b){if(!c)return null;var d=c.inputs;d||(d=c);if(null!=d)for(c=0;c<d.length;c++){var a=d[c],e=f.getStringValue(a.id);if(null!=e&&e.toLowerCase()===b.toLowerCase())return a}return null};
f.getCIByChainAndName=function(c,b,d){if(!c)return null;(b=0==b?c.inputs:1==b?c.outputs:null)||(b=c);if(null!=b)for(c=0;c<b.length;c++){var a=b[c],e=f.getStringValue(a.name);if(null!=e&&e.toLowerCase()===d.toLowerCase())return a}return null};f.getCIByUid=function(c,b){if(null!=c)for(var d=0;d<c.length;d++){var a=c[d],e=f.getStringValue(a.uid);if(null!=e&&e===b)return a}return null};f.getCIById=function(c,b,d){c=0==b?c.inputs:1==b?c.outputs:null;if(null!=c)for(b=0;b<c.length;b++){var a=c[b];if(a.id[0]==
d[0])return a}return null};f.getCIInputValueByName=function(c,b){return(c=f.getCIByChainAndName(c,0,b))?c.value:null};f.getCIValue=function(c){return f.getCIValueByField(c,"value")};f.getStringValue=function(c){return f.toString(c)};f.toString=function(c){return null!=c?g.isArray(c)?c&&1==c.length&&null==c[0]?null:""+(null!=c[0]?c[0]:c):""+c:null};f.setIntegerValue=function(c,b){null!=c&&(dojo.isArray(c)?c[0]=b:c=b)};f.getCIValueByField=function(c,b){return null!=c[b]?g.isArray(c[b])?c[b][0]?c[b][0]:
c[b]:c[b]:null};f.setCIValueByField=function(c,b,d){if(!c)return c;null==c[b]&&(c[b]=[]);c[b]=d;return c};f.setCIValue=function(c,b,d){(c=f.getInputCIByName(c,b))&&f.setCIValueByField(c,"value",d);return c};f.getCIInputValueByNameAndField=function(c,b,d){return(c=f.getCIByChainAndName(c,0,b))?c[""+d]:null};f.getCIInputValueByNameAndFieldStr=function(c,b,d){return(c=f.getCIInputValueByNameAndField(c,b,d))?f.getStringValue(c):null};f.getCIInputValueByNameAndFieldBool=function(c,b,d){return(c=f.getCIInputValueByNameAndField(c,
b,d))?f.toBoolean(c):null};f.getCIWidgetByName=function(c,b){for(var d=0;d<c.length;d++){var a=c[d];if(a._widget&&a.name===b)return a._widget}return null};return f})},"xide/utils/StoreUtils":function(){define(["xide/utils","xide/data/Memory","dojo/_base/kernel","xide/lodash"],function(f,n,l,m){f.removeFromStore=function(g,c,b,d,a,e,r){if(null!=c&&g){c=m.isString(c)?g.getSync(c)||c:c;d=d||g.idProperty;a=a||g.parentProperty;c&&g.removeSync(c[d],e);var p={};p[a]=c[d]?c[d]:c;!0===r&&m.isObject(c)&&f.destroy(c,
!0);if(!0===b&&(c=g.query(p))&&c.length)for(p=0;p<c.length;p++)f.removeFromStore(g,c[p],b,d,a,e,r)}};f.toString=function(g){return null!=g?l.isArray(g)?g&&1==g.length&&null==g[0]?null:""+(null!=g[0]?g[0]:g):""+g:null};f.toBoolean=function(g){var c=!1;null!=g&&(g=g[0]?g[0]:g,null!=g&&(c=!(!0!==g&&"true"!==g&&"1"!==g)));return c};f.toObject=function(g){return null!=g?g[0]?g[0]:g:null};f.toInt=function(g){if(_.isNumber(g))return g;var c=-1;null!=g&&(g=1<g.length?g:g[0]?g[0]:g,null!=g&&(c=parseInt(g,
10)));return c};f.getStoreItemById=function(g,c){return f.queryStoreEx(g,{id:c},null,null)};f.getAppDataElementByIdAndType=function(g,c,b){return f.queryStore(g,{uid:c,type:b},null,null)};f.getElementsByType=function(g,c){return f.queryStoreEx(g,{type:c})};f.queryStoreEx=function(g,c,b,d){if(!g)return console.error("utils.queryStoreEx: store \x3d null"),null;if(g instanceof n)return g=f.queryMemoryStoreEx(g,c),d&&g&&g[0]?g[0]:g;var a=null;g.query&&(a=g.query(c));return!0===b&&a&&0===a.length?null:
!0===d&&a&&1==a.length?a[0]:a};f.queryStore=function(g,c,b){return(g=f.queryStoreEx(g,c,null,null))&&1==g.length?g[0]:!0===b&&g&&0===g.length?null:g};f.queryMemoryStoreEx=function(g,c){var b=[];g.query(c).forEach(function(c){b.push(c)});return b};f.queryMemoryStoreSingle=function(g,c){g=f.queryMemoryStoreEx(g,c);return 1==g.length?g[0]:g};return f})},"nxapp/manager/FileManager":function(){define("dcl/dcl dojo/has nxapp/manager/ManagerBase nxapp/utils/_LogMixin xide/types xide/factory dojo/node!path dojo/node!fs dojo/node!child_process dojo/node!chokidar".split(" "),
function(f,n,l,m,g,c,b,d,a,e){n("windows");n("arm");return f([l,m],{declaredClass:"nxapp.manager.FileManager",watcher:null,resolve:function(a){var c="",e=b.resolve(dojoConfig.libRoot),q=b.resolve(dojoConfig.clientRoot);if(d.existsSync(b.resolve(a)))return a;"/"==a[0]?a=b.resolve(a):b.resolve(e+"/"+a)?c=b.resolve(e+"/"+a):d.existsSync(b.resolve(a))?c=b.resolve(a):b.resolve(q+"/"+a)&&(c=b.resolve(q+"/"+a));return c},watch:function(a,b){try{d.existsSync(a)&&b&&this.watcher&&this.watcher.add&&this.watcher.add(a)}catch(k){}},
initChokidar:function(a){function f(a){a=a.replace(dojoConfig.libRoot+"/","");a.startsWith("/")&&(a=a.replace("/",""));return a}for(var k=0;k<a.watchr.paths.length;k++){var q=a.watchr.paths[k],h=b.resolve(dojoConfig.libRoot),u=b.resolve(dojoConfig.clientRoot);"/"==q[0]?q=b.resolve(q):b.resolve(q)&&d.existsSync(q)?a.watchr.paths[k]=b.resolve(q):d.existsSync(b.resolve(h+"/"+q))?a.watchr.paths[k]=b.resolve(h+"/"+q):d.existsSync(b.resolve(q))?a.watchr.paths[k]=b.resolve(q):b.resolve(u+"/"+q)&&(a.watchr.paths[k]=
b.resolve(u+"/"+q))}var m=this,r=e.watch(a.watchr.paths,{ignored:function(a){return-1!==a.indexOf("metadata")||-1!==a.indexOf(".git")?!0:!1},persistent:!0,ignoreInitial:!0,awaitWriteFinish:!0});r.on("addDir",function(a){r.add(a);c.publish(g.EVENTS.ON_FILE_CHANGED,{path:a,modulePath:f(a)},m)});r.on("add",function(a){c.publish(g.EVENTS.ON_FILE_CHANGED,{path:a,modulePath:f(a),type:"added"},m)});r.on("unlinkDir",function(a){r.unwatch(a);c.publish(g.EVENTS.ON_FILE_CHANGED,{path:a,modulePath:f(a),type:"delete"},
m)});r.on("change",function(a){m.publish(g.EVENTS.ON_FILE_CHANGED,{path:a,modulePath:f(a),type:"changed"},m)});r.on("raw",function(a,b,d){if("rename"===a)try{var e=e.statSync(d.watchedPath)}catch(y){-1!==d.watchedPath.indexOf(b)&&c.publish(g.EVENTS.ON_FILE_CHANGED,{path:d.watchedPath,modulePath:d.watchedPath.replace(dojoConfig.libRoot,""),type:"delete"},m)}});this.watcher=r},initWindows_Watchr:function(a){for(var e=0;e<a.watchr.paths.length;e++){var k=a.watchr.paths[e],q=b.resolve(dojoConfig.libRoot),
h=b.resolve(dojoConfig.clientRoot);"/"==k[0]?k=b.resolve(k):b.resolve(q+"/"+k)?a.watchr.paths[e]=b.resolve(q+"/"+k):d.existsSync(b.resolve(k))?a.watchr.paths[e]=b.resolve(k):b.resolve(h+"/"+k)&&(a.watchr.paths[e]=b.resolve(h+"/"+k))}_.each(a.watchr.paths,function(a){});var f=this;watchr.watch({paths:a.watchr.paths,interval:500,listeners:{log:function(a){},error:function(a){console.log("an error occured:",a)},watching:function(a,b,c){},change:function(a,b,d,e){b&&c.publish(g.EVENTS.ON_FILE_CHANGED,
{path:b,modulePath:b.replace(dojoConfig.libRoot,"")},f)}},next:function(a,b){if(a)return console.log("watching everything failed with error",a);console.log("watching everything completed")}})},initWindows:function(c){for(var e=0;e<c.watchr.paths.length;e++){var k=c.watchr.paths[e],q=b.resolve(dojoConfig.libRoot),h=b.resolve(dojoConfig.clientRoot);"/"==k[0]?k=b.resolve(k):b.resolve(q+"/"+k)?c.watchr.paths[e]=b.resolve(q+"/"+k):d.existsSync(b.resolve(k))?c.watchr.paths[e]=b.resolve(k):b.resolve(h+"/"+
k)&&(c.watchr.paths[e]=b.resolve(h+"/"+k))}var g=new function(b,c,d,e){var h=a.spawn;b=h(b,c);var k=this;b.stdout.on("data",function(a){d(k,a)});b.stdout.on("end",e)}(b.resolve(global.cwd+"/inotifywait.exe"),["-r","-m","-q","--format\x3d%w|%e|%f",c.watchr.paths[0]],function(a,c){a.stdout="";a=c.toString().split(/(\r?\n)/g);for(c=0;c<a.length;c++){var d=a[c];d&&5<d.length&&(d=d.split("|"),3==d.length&&b.resolve(d[0]+"/"+d[2]))}},function(){console.log("end : "+g.stdout)})},init:function(a){return this.initChokidar(a)},
initLinux:function(a,e){for(var k=0;k<a.watchr.paths.length;k++){var q=a.watchr.paths[k],h=b.resolve(dojoConfig.libRoot),f=b.resolve(dojoConfig.clientRoot);"/"==q[0]?q=b.resolve(q):b.resolve(h+"/"+q)?a.watchr.paths[k]=b.resolve(h+"/"+q):d.existsSync(b.resolve(q))?a.watchr.paths[k]=b.resolve(q):b.resolve(f+"/"+q)&&(a.watchr.paths[k]=b.resolve(f+"/"+q))}var p=this,m=function(a){var b=[];d.existsSync(a)&&d.readdirSync(a).forEach(function(c){c=a+"/"+c;var e=d.statSync(c);e&&e.isDirectory()&&(b.push(c),
b=b.concat(m(c)))});return b},q=function(){return{all_events:function(a){if(a&&a.name&&a.name.indexOf&&-1==a.name.indexOf(".git")&&-1==a.name.indexOf(".tmp")&&-1==a.name.indexOf("_jb_old_")&&-1==a.name.indexOf("_jb_bak_")&&-1==a.masks.toString().indexOf("access")){a.masks.toString().indexOf("moved_to");var d=b.resolve(a.watch+"/"+a.name),e="changed";-1!==a.masks.toString().replace("all_events,","").indexOf("delete")&&(e="deleted");d&&c.publish(g.EVENTS.ON_FILE_CHANGED,{path:d,modulePath:d.replace(dojoConfig.libRoot,
""),type:e},p)}},close_write:function(a){-1==a.name.indexOf(".git")&&-1==a.name.indexOf(".tmp")&&-1==a.name.indexOf("_jb_old_")&&-1==a.name.indexOf("_jb_bak_")&&-1==a.masks.toString().indexOf("access")&&-1==a.masks.toString().indexOf("moved_to")&&(a=b.resolve(a.watch+"/"+a.name))&&c.publish(g.EVENTS.ON_FILE_CHANGED,{path:a,modulePath:a.replace(dojoConfig.libRoot,"")},p)},access:!0,moved_to:!0,moved_from:!0,"delete":!0}}();e=e.create(!1);for(h=0;h<a.watchr.paths.length;h++)if(k=a.watchr.paths[h],d.existsSync(k))for(f=
m(k),e.watch(q,k),k=0;k<f.length;k++)e.watch(q,f[k])}})})},"nxapp/manager/ExportManager":function(){define("dcl/dcl nxapp/manager/ManagerBase nxapp/manager/_Drivers_Devices nxapp/utils/_LogMixin nxapp/utils/_console xide/utils nxapp/utils dojo/node!path dojo/node!fs-jetpack dojo/node!cheerio dojo/node!fs dojo/has".split(" "),function(f,n,l,m,g,c,b,d,a,e,r,p){return f([n,m,l],{declaredClass:"nxapp.manager.ExportManager",options:null,serverTemplates:null,linux32:!0,linux64:!0,osx:!0,arm:!0,windows:!0,
nginxOptions:null,mongoOptions:null,serverOptions:null,init:function(a){this.profile=a},run:function(a){this.delegate=a;this.initWithOptions(this.options)},onProgress:function(a){this.delegate&&this.delegate.onProgress(a);g.log("Progress: "+a)},onError:function(a){this.delegate&&this.delegate.onError(a)},onFinish:function(a){this.delegate&&this.delegate.onFinish(a);g.log("Finish: "+a)},initWithOptions:function(a){this.options=a;c.mixin(this,a);this.onProgress("Export Manager: begin export",{progress:0});
if(!this.root)throw this.onError("Export Manager: have no root"),Error("Export Manager: have no root");if(!this.data)throw this.onError("Export Manager: have no data"),Error("Export Manager: have no data");if(this.user){this.client||(this.client=b.resolve(this.root+"/Code/client/"));this.serverTemplates||(this.serverTemplates=b.resolve(this.root+"/server-template"));this.dist||(this.dist=b.resolve(this.root+"/dist/all/server/"));g.log("export with \n",c.inspect({"System Data":this.data,"User Data":this.user+
" \x3d "+d.resolve(this.user),Root:d.resolve(this.root),"Server-Templates":this.serverTemplates,Target:d.resolve(this.target),"Node Servers":d.resolve(this.dist),Client:this.client,"Export Windows":this.windows,"Export Linux - 32 ":this.linux32,"Export Linux - 64 ":this.linux64,"Export OSX":this.osx,"Export ARM":this.arm}));a=c.mixin({port:8889,templatePath:b.resolve(this.serverTemplates+"/nginx/all/conf/nginx.app.template.conf")},this.nginxOptions);var e=c.mixin({port:9997,mongo_port:27018,mqtt_port:1884},
this.serverOptions);this.exportNGINX(a);this.exportMongo(this.mongoOptions||{});this.createDirectoryLayout();this.exportServer();this.onProgress("Exported Servers",{progress:.2});this.exportUser();this.onProgress("Exported User",{progress:.3});this.exportSystem();this.onProgress("Exported System Data",{progress:.4});this.exportMisc(e);this.onProgress("Exported Misc Data",{progress:.5});this.exportHTML(e);this.onProgress("Exported User Workspace HTML",{progress:.6});this.exportDevices({serverSide:!0});
this.onProgress("Exported Devices",{progress:.7});this.exportDrivers({});this.onProgress("Exported Drivers",{progress:.8});this.client?this.exportClientEx():this.exportClientDist();this.onProgress("Exported Client Application Assets",{progress:.9});g.log("Export Done! Your application can be found at "+this.target);this.onProgress("Export Done",{progress:1.2});this.onFinish("Export Done! Your application can be found at "+this.target)}else this.onError("Export Manager: have no user")},exportHTML:function(b){function c(a,
c){var d=r.readdirSync(a);d.length&&_.each(d,function(d){if(-1!==d.indexOf(".dhtml")){var h=c.replace(e.path()+"/","");k.exportHTMLFile2(a+"/"+d,h,b)}})}var e=a.dir(this.target+"/www/user/workspace/"),k=this;(function(a){r.existsSync(a)?r.readdirSync(a).forEach(function(e){e=a+"/"+e;var h=r.statSync(e);if(h){var q=e.replace(d+"/","");h.isDirectory()?c(e,q):-1!==e.indexOf(".dhtml")&&(q=q.replace(a+"/",""),k.exportHTMLFile2(e,q,b))}else g.error("cant get stat for "+e)}):g.error("device path "+a+" doesnt exists");
return[]})(e.path())},exportHTMLFile2:function(b,q,h){var k=a.dir(this.root+"/export/"),k=c.readFile(d.resolve(k.path()+"/app.template.html")),g=c.pathinfo(b);q===g.basename&&(q="");q=c.mixin({libRoot:"/Code/client/src/lib",lodashUrl:"/Code/client/src/lib/external/lodash.min.js",requireBaseUrl:"/Code/client/src/lib/xibm/ibm",jQueryUrl:"/Code/client/src/lib/external/jquery-1.9.1.min.js",data:"",user:"/user",css:"./"+c.cleanUrl(g.filename+".css"),theme:"bootstrap",blox_file:"./"+q+"/"+g.filename+".xblox",
scene_file:"./"+q+"/"+g.filename+".dhtml",mount:"workspace",VFS_VARS:JSON.stringify({user_drivers:"./www/user/drivers",system_drivers:"./www/system/drivers"},null,2)},h);k=c.replace(k,null,q,{begin:"%",end:"%"});q=c.readFile(b);q=q.replace("\x3cviewHeaderTemplate/\x3e",k);q=q.replace(/\burl\s*\(\s*["']?([^"'\r\n\)\(]+)["']?\s*\)/gi,function(a,b){a=b.split("://");var c=a[1];return a[0]&&c?"url('./"+c+"')":b});k=e.load(q);k("HEAD").append(k('\n\x3cscript type\x3d"text/javascript"\x3e\n\tvar test \x3d 0;\n\x3c/script\x3e'));
c.writeFile(b.replace(".dhtml",".html"),k.html())},exportHTMLFile:function(b){var k=a.dir(this.root+"/export/"),h=a.dir(this.target+"/www/user/workspace/"),h=d.resolve(h.path()+"/ascene.dhtml"),k=c.readFile(d.resolve(k.path()+"/app.template.html"));b=c.mixin({libRoot:"/Code/client/src/lib",lodashUrl:"/Code/client/src/lib/external/lodash.min.js",requireBaseUrl:"/Code/client/src/lib/xibm/ibm",jQueryUrl:"/Code/client/src/lib/external/jquery-1.9.1.min.js",data:"",user:"/user",css:"./ascene.css",theme:"bootstrap",
blox_file:"./ascene.xblox",mount:"workspace",VFS_VARS:JSON.stringify({user_drivers:"./www/user/drivers",system_drivers:"./www/system/drivers"},null,2)},b);k=c.replace(k,null,b,{begin:"%",end:"%"});b=c.readFile(h);b=b.replace("\x3cviewHeaderTemplate/\x3e",k);b=b.replace(/\burl\s*\(\s*["']?([^"'\r\n\)\(]+)["']?\s*\)/gi,function(a,b){a=b.split("://");var c=a[1];return a[0]&&c?(g.error("----"+c),"url('./"+c+"')"):b});b=e.load(b);b("HEAD").append(b('\n\x3cscript type\x3d"text/javascript"\x3e\n\tvar test \x3d 0;\n\x3c/script\x3e'));
c.writeFile(h.replace(".dhtml",".html"),b.html())},exportDevices:function(a){var b=d.resolve(this.target+"/www/user/devices"),e=this.getDevices(b,"user_devices",a);c.writeFile(b+"/user_devices.json",JSON.stringify({items:e},null,2));b=d.resolve(this.target+"/www/system/devices");e=this.getDevices(b,"system_devices",a);c.writeFile(b+"/system_devices.json",JSON.stringify({items:e},null,2))},exportDrivers:function(a){var b=d.resolve(this.target+"/www/user/drivers");a=this.getDrivers(b,"user_drivers");
c.writeFile(b+"/user_drivers.json",JSON.stringify({items:a},null,2));b=d.resolve(this.target+"/www/system/drivers");a=this.getDrivers(b,"system_drivers");c.writeFile(b+"/system_drivers.json",JSON.stringify({items:a},null,2))},exportMisc:function(e){var k=a.dir(this.root+"/export"),h=a.dir(this.target);a.copy(k.path(),h.path(),{matching:["**"],overwrite:!0});var g=b.readFile(d.resolve(k.path()+"/profile_device_server.json")),g=c.replace(g,null,e,{begin:"%",end:"%"});"false"!==this.linux32&&a.exists(h.path()+
d.sep+"/server/linux_32/nxappmain/profile_device_server.json")&&c.writeFile(h.path()+d.sep+"/server/linux_32/nxappmain/profile_device_server.json",g);"false"!==this.linux64&&a.exists(h.path()+d.sep+"/server/linux_64/nxappmain/profile_device_server.json")&&c.writeFile(h.path()+d.sep+"/server/linux_64/nxappmain/profile_device_server.json",g);"false"!==this.windows&&a.exists(h.path()+d.sep+"/server/windows/nxappmain/profile_device_server.json")&&"false"!==this.windows&&c.writeFile(h.path()+d.sep+"/server/windows/nxappmain/profile_device_server.json",
g);"false"!==this.arm&&a.exists(h.path()+d.sep+"/server/arm/nxappmain/profile_device_server.json")&&c.writeFile(h.path()+d.sep+"/server/arm/nxappmain/profile_device_server.json",g);"false"!==this.osx&&a.exists(h.path()+d.sep+"/server/osx_64/nxappmain/profile_device_server.json")&&c.writeFile(h.path()+d.sep+"/server/osx_64/nxappmain/profile_device_server.json",g);g=b.readFile(d.resolve(k.path()+"/start.js"));g=c.replace(g,null,e,{begin:"%",end:"%"});"false"!==this.linux32&&a.exists(h.path()+"/server/linux_32/start.js")&&
c.writeFile(h.path()+"/server/linux_32/start.js",g);"false"!==this.linux64&&a.exists(h.path()+"/server/linux_64/start.js")&&c.writeFile(h.path()+"/server/linux_64/start.js",g);"false"!==this.windows&&c.writeFile(h.path()+"/server/windows/start.js",g);"false"!==this.arm&&a.exists(h.path()+"/server/arm/start.js")&&c.writeFile(h.path()+"/server/arm/start.js",g);"false"!==this.osx&&a.exists(h.path()+"/server/osx_64/start.js")&&c.writeFile(h.path()+"/server/osx_64/start.js",g)},exportClientEx:function(){var b=
a.dir(d.resolve(this.client)+""),c=a.dir(this.target+"/www/Code/client");a.copy(b.path(),c.path(),{matching:["**"],overwrite:!0})},exportClient:function(){var b=a.dir(this.root+"/Code/client"),c=a.dir(this.target+"/www/Code/client");a.copy(b.path(),c.path(),{matching:["**"],overwrite:!0})},exportClientDist:function(){var b=a.dir(this.root+"/dist/all/Code/client/"),c=a.dir(this.target+"/www/Code/client");a.copy(b.path(),c.path(),{matching:["**"],overwrite:!0})},exportUser:function(){var b=a.dir(this.user),
c=a.dir(this.target+"/www/user");g.log("export user from "+b.path()+" to "+c.path());try{a.copy(b.path(),c.path(),{matching:["**","!./.git/**/*","!**/**claycenter","!./claycenter","!**claycenter"],overwrite:!0})}catch(h){"EEXIST"===h.code&&g.error("Error copying, file exists!",h),"EACCES"===h.code&&g.error("Error copying, file access perrmissions!",h),g.error("error : ",h)}},exportSystem:function(){var b=a.dir(this.data+"/system"),c=a.dir(this.target+"/www/system");a.copy(b.path(),c.path(),{matching:["**"],
overwrite:!0})},clean:function(){},copyServer:function(b){var c=a.dir(this.target+"/server/"+b),d="";if(this.dist){if(!a.exists(this.dist+"/"+b))return;d=a.dir(this.dist+"/"+b)}else d=a.dir(this.root+"/server/"+b);if(a.exists(d.path())){g.info("export Device-Server "+b+" from : "+d.path());try{a.copy(d.path(),c.path(),{matching:["**"],overwrite:!0})}catch(u){"EEXIST"===u.code&&g.error("Error copying, file exists!",u),"EACCES"===u.code&&g.error("Error copying, file access perrmissions!",u)}}},exportServer:function(a){"false"!==
this.windows&&this.copyServer("windows");"false"!==this.linux32&&this.copyServer("linux_32");"false"!==this.linux64&&this.copyServer("linux_64");"false"!==this.arm&&this.copyServer("arm");"false"!==this.osx&&this.copyServer("osx_64")},createDirectoryLayout:function(){a.dir(this.target+"/data/_MONGO");a.dir(this.target+"/www/");a.dir(this.target+"/nginx/logs")},exportMongo:function(b){b=a.dir(this.serverTemplates+"/mongo");var c=a.dir(this.target+"/mongo");a.copy(b.path(),c.path(),{matching:"mongod-arm mongod-linux_32 mongod-linux_64 mongod-windows.exe mongod-32.exe mongod-osx".split(" "),
overwrite:!0})},exportNGINX:function(e){var k=a.dir(this.serverTemplates+"/nginx"),h=a.dir(this.target+"/nginx");try{a.copy(k.path(),h.path(),{matching:"nginx-arm nginx-linux_32 nginx-linux_64 nginx-windows.exe nginx-osx msvcr110.dll".split(" "),overwrite:!0})}catch(u){"EEXIST"===u.code&&g.error("Error copying, file exists!",u),"EACCES"===u.code&&g.error("Error copying, file access perrmissions!",u),"ETXTBSY"===u.code&&g.error("Error copying, file is busy",u)}k=a.dir(this.serverTemplates+"/nginx/all/conf");
h=a.dir(this.target+"/nginx");a.copy(k.path(),h.path(),{overwrite:!0});k=a.dir(this.serverTemplates+"/nginx/temp");h=a.dir(this.target+"/nginx/temp");a.copy(k.path(),h.path(),{overwrite:!0});k=b.readFile(e.templatePath);e=c.replace(k,null,e,{begin:"%%",end:"%%"});k=a.dir(this.serverTemplates+"/nginx/all/conf");h=a.dir(this.target+"/nginx/");c.writeFile(h.path()+d.sep+"nginx.conf",e)}})})},"nxapp/manager/_Drivers_Devices":function(){define("dcl/dcl dojo/node!path dojo/node!fs nxapp/utils xide/utils/StringUtils xide/types nxapp/utils/_console".split(" "),
function(f,n,l,m,g,c,b){return f(null,{declaredClass:"nxapp.manager._Drivers_Devices",profile:null,getDevices:function(d,a,e){function f(d,e){var h=l.readdirSync(d);h.length&&_.each(h,function(h){if(-1!=h.indexOf(".meta.json")){var f=g.getJson(m.readFile(d+n.sep+h),!0,!1);if(f){if(q){var p=m.getCIByChainAndName(f,0,c.DEVICE_PROPERTY.CF_DEVICE_DRIVER_OPTIONS);!p||p.value&1<<c.DRIVER_FLAGS.RUNS_ON_SERVER||(p.value|=1<<c.DRIVER_FLAGS.RUNS_ON_SERVER)}f?(h={isDir:!1,path:e+"/"+h,parentId:e,scope:a,user:f,
id:m.getCIInputValueByName(f,c.DEVICE_PROPERTY.CF_DEVICE_ID)},k.push(h)):b.error("device has no meta "+d+n.sep+h)}else b.error("cant get device meta for "+h+" path \x3d "+d+n.sep+h)}})}function p(a){var c=[];l.existsSync(a)?l.readdirSync(a).forEach(function(e){e=a+"/"+e;var h=l.statSync(e);if(h){var g=e.replace(d+"/","");h.isDirectory()&&(k.push({isDir:!0,parent:g,name:g,path:g}),f(e,g),c.push(e.replace(d+"/","")),c=c.concat(p(e)))}else b.error("cant get stat for "+e)}):b.error("device path "+a+" doesnt exists");
return c}require({packages:[{name:a,location:d}]});var k=[];e=e||{};var q=e.serverSide;p(d);return k},getDrivers:function(d,a,e){function f(d,e){var h=l.readdirSync(d);h.length&&_.each(h,function(h){if(-1!=h.indexOf(".meta.json")){var q=g.getJson(m.readFile(d+n.sep+h),!0,!1);if(q){var f=m.getCIInputValueByName(q,c.DRIVER_PROPERTY.CF_DRIVER_ID),p=d+"/"+h.replace(".meta.json",".xblox"),u=g.getJson(m.readFile(p),!0,!1);u||b.warn("invalid blocks file for driver "+e+"/"+h+" blox path \x3d "+p);k.push({isDir:!1,
path:e+"/"+h,parentId:e,scope:a,user:q,id:f,blox:u||{},blockPath:p})}else b.error("cant get driver meta "+d+n.sep+h)}})}function p(a){var c=[];l.existsSync(a)?l.readdirSync(a).forEach(function(b){b=a+"/"+b;var e=l.statSync(b);if(e){var h=b.replace(n+"/","");e.isDirectory()&&(k.push({isDir:!0,parent:h,name:h,path:h}),f(b,h),c.push(b.replace(d+"/","")),c=c.concat(p(b)))}}):b.error("driver path "+a+" doesnt exists");return c}require({packages:[{name:a,location:d}]});var k=[];p(d);return k}})})},"nxapp/client/WebSocket":function(){define(["dojo/_base/declare",
"dojo/_base/lang","nxapp/utils/_LogMixin","nxapp/client/ClientBase","dojo/node!sockjs-client"],function(f,n,l,m,g){return f("nxapp.client.WebSocket",[m,l],{_socket:null,debugConnect:!0,connect:function(c){this.options=n.mixin(this.options,c);c=this.options.host;var b=this.options.port;this.options.debug&&this.initLogger(this.options.debug);this.log("Sock-JS-Client Connecting to "+c+":"+b,"socket_client");var d=g.create(c+":"+b),a=this;d.on("close",function(){console.log("on close!",a.options)});d.on("connection",
function(){a.log("socket client connected","socket_client");d.on("error",function(a){console.error("Socket client error ")});d.on("end",function(){a.log("socket client connection end","socket_client")})});this._socket=d},emit:function(c,b){this.showDebugMsg("socket_client")&&(console.log("Emiting: "+c+" with: "),console.dir(b));this._socket.write(b)},onSignal:function(c,b){this._socket.on("data",b)}})})},"nxapp/client/ClientBase":function(){define(["dojo/_base/declare","dojo/Stateful","dojo/_base/lang"],
function(f,n,l){return f("nxapp.server.ClientBase",[n],{options:null,_defaultOptions:function(){return{}},init:function(f){this.options=l.mixin(this._defaultOptions(),f.options)}})})},"dcl/inherited":function(){(function(f){"undefined"!=typeof define?define(["./mini","./advise"],f):"undefined"!=typeof module?module.exports=f(require("./mini"),require("./advise")):f(dcl,advise)})(function(f,n){function l(c,b,d){var a=3>arguments.length&&c.callee,e=m.call(this,a?a.ctr:c,a?a.nom:b);if(e)return e.apply(this,
a?c||b:d)}function m(c,b){var d=this.constructor._meta,a,e,f;if(!+d.weaver[b]){if(d){if(d.chains.hasOwnProperty(b)){if(a=d.chains[b])for(f=a.length-1;0<=f;--f)if(e=a[f],e.ctr===c)return 0<f?a[f-1]:0;return}a=d.bases;for(f=a.length-1;0<=f&&a[f]!==c;--f);if(0<=f)for(++f,c=a.length;f<c;++f)if(d=(e=a[f])._meta){if((d=d.ownProps).hasOwnProperty(b))return d[b]}else return e.prototype[b]}return g[b]}}var g={};n.after(f,"_postprocess",function(c,b){c=b._meta.bases;for(var d=c.length-1,a,e,g;0<=d;--d)if(a=
c[d],e=a._meta)e=e.ownProps,f.allKeys(e).some(function(b){g=e[b];if("function"==typeof g){if(g.nom===b)return 1;g.nom=b;g.ctr=a}});b.prototype.inherited=l;b.prototype.getInherited=m});f.getInherited=l.get=m;return f.inherited=l})},"dcl/advise":function(){(function(f){"undefined"!=typeof define?define([],f):"undefined"!=typeof module?module.exports=f():advise=f()})(function(){function f(g,c){this.next_before=this.prev_before=this.next_after=this.prev_after=this.next_around=this.prev_around=this;this.instance=
g;this.name=c}function n(g){var c=function(){var b,c,a=arguments,e;for(b=g.prev_before;b!==g;b=b.prev_before)b.before.apply(this,a);try{g.prev_around!==g&&(c=g.prev_around.around.apply(this,a))}catch(r){c=r,e=!0}for(b=g.next_after;b!==g;b=b.next_after)b.after.call(this,a,c);if(e)throw c;return c};c.adviceNode=g;return c}function l(g,c,b){var d=g[c],a;d&&d.adviceNode&&d.adviceNode instanceof f?a=d.adviceNode:(a=new f(g,c),d&&d.advices?(d=d.advices,a.add(d.before,d.after,d.around)):a.add(0,0,d),g[c]=
n(a));"function"==typeof b&&(b=b(c,g));return a.add(b.before,b.after,0,b.around)}var m=f.prototype={add:function(g,c,b,d){var a=new f(this.instance,this.name);a.parent=this;a.before=g;this._add("before",a);a.after=c;this._add("after",a);a.around=b;this._add("around",a,d);if(a.original=d)a.around=l._instantiate(d,a.prev_around.around,this);return a},_add:function(g,c,b){if(c[g]||b)b="next_"+g,g="prev_"+g,(c[g]=this[g])[b]=(c[b]=this)[g]=c},remove:function(g){this._remove("before",g);this._remove("after",
g);this._remove("around",g)},_remove:function(g,c){var b="next_"+g;g="prev_"+g;c[b][g]=c[g];c[g][b]=c[b]},destroy:function(){var g=this.prev_around.around,c=this.next_around,b=this.parent;this.remove(this);if(c!==this)for(;c!==b;g=c.around,c=c.next_around)c.original&&(c.around=l._instantiate(c.original,g,this));this.instance=0}};m.unadvise=m.destroy;l.before=function(g,c,b){return l(g,c,{before:b})};l.after=function(g,c,b){return l(g,c,{after:b})};l.around=function(g,c,b){return l(g,c,{around:b})};
l.Node=f;l._instantiate=function(g,c,b){return g(c)};return l})},"nxapp/manager/DeviceServerContext":function(){define("dcl/dcl nxapp/manager/Context nxapp/Commons xcf/types/Types dojo/node!path dojo/node!fs nxapp/utils xide/types nxapp/manager/DriverManager xcf/manager/DeviceManager nxapp/manager/FileManager xcf/manager/Context nxapp/manager/DeviceManager xcf/manager/BlockManager xide/manager/ResourceManager xblox/factory/Blocks dojo/node!tracer nxapp/utils/_console nxapp/manager/_Drivers_Devices dojo/_base/lang dojo/promise/all require dojo/has nxapp/manager/TestManager".split(" "),
function(f,n,l,m,g,c,b,d,a,e,r,p,k,q,h,u,v,t,x,w,A,B,y,H,I){var F=f(null,{declaredClass:"DeviceServerClientClass",write:function(a){t.error("device server client write",a)},emit:function(a){t.error("device server client emit",a)}}),z=null,C=f(null,{owner:null,remoteAddress:"fake - address",remotePort:"fake - port",isExternal:function(){return!1},constructor:function(a){b.mixin(this,a)},write:function(a){var c=this.owner.getDeviceManager(),e=b.getJson(a),e=e||{};if(e.data&&e.data.device){var h=c.getDeviceStoreItem(e.data.device);
if(h)if(h=c.toDeviceControlInfo(h)){if(!h.serverSide)return}else t.error("no info")}if(e&&e.data&&e.data.deviceMessage&&e.data.deviceMessage.event===d.EVENTS.ON_COMMAND_FINISH)c.onCommandFinish(e.data.device,e.data.deviceMessage);else if(e.data&&e.data.deviceMessage&&e.data.deviceMessage.event===d.EVENTS.ON_COMMAND_ERROR)c.onCommandError(e.data.device,e.data.deviceMessage);else if(e.event===d.EVENTS.ON_DEVICE_DISCONNECTED)c.publish(d.EVENTS.ON_DEVICE_DISCONNECTED,e.data);else{if(e.event===d.EVENTS.SET_DEVICE_VARIABLES)return c.onSetDeviceServerVariables(e.data);
if(e.event===d.EVENTS.ON_DEVICE_CONNECTED)c.publish(d.EVENTS.ON_DEVICE_CONNECTED,e.data);else if(e.event!==d.EVENTS.ON_SERVER_LOG_MESSAGE)if(e.event===d.EVENTS.ON_MQTT_MESSAGE)c.publish(d.EVENTS.ON_MQTT_MESSAGE,e.data),c.onMQTTMessage(e.data);else if(e.event!==d.EVENTS.ON_FILE_CHANGED)c.onDeviceServerMessage({data:a})}},emit:function(){t.error("device server client emit",arguments)}});return f([n,p,x],{setAppServer:function(a){this.appServer=a},declaredClass:"nxapp.manager.DeviceServerContext",profile:null,
appServer:null,testManager:null,getTestManager:function(){return this.testManager},doTests:function(){return this.getTestManager().doTests()},initManagers:function(a){a&&(this.profile=a);this.testManager&&this.testManager.init(a);this.deviceManager.init();this.driverManager.init();this.blockManager.init();this.fileManager.init(a);this.blockManager.onReady();var b=this;this.subscribe(d.EVENTS.ON_FILE_CHANGED,function(a){b.onXIDEMessage({event:d.EVENTS.ON_FILE_CHANGED,data:a,type:a.type},!1);b.fileChanged(a);
b.deviceManager.onFileChanged(a);b.driverManager.onFileChanged(a);b.getDeviceServer().broadCastMessage(d.EVENTS.ON_FILE_CHANGED,{path:a.path,modulePath:a.modulePath,mask:a.mask,type:a.type})})},getModule:function(a){return w.getObject(b.replaceAll("/",".",a))||w.getObject(a)||(f.getObject?f.getObject(a)||f.getObject(b.replaceAll("/",".",a)):null)},_reloadModule:function(a,c){if(B.undef){var e=null;if(-1===a.indexOf(".json")&&-1===a.indexOf("nxapp")&&-1!=a.indexOf(".js")&&-1===a.indexOf("/build/")){a=
a.replace("0/8","0.8");var h=w.getObject(b.replaceAll("/",".",a))||w.getObject(a);if(h&&h.prototype&&h.prototype.reloadModule)h.prototype.reloadModule();else{var e=B.on("error",function(b){t.log(b.src,b.id);t.error("require error "+a,b);e.remove()}),k=this.getModule(a);if(!k&&(k="undefined"!==typeof a?k:null,!k&&"undefined"!==typeof window))if(k=b.getAt(window,b.replaceAll("/",".",a),null))h=k;else try{k=B(b.replaceAll(".","/",a))}catch(L){}k&&(h=k);B.undef(a);var g=this;c&&setTimeout(function(){B({waitSeconds:5});
try{B([a],function(b){t.log("reloaded module : "+a+(null!==k?" have obj":"have no obj"));B({cacheBust:"time\x3d"+(new Date).getTime()});_.isString(b)?t.error("module reloaded failed : "+b+" for module : "+a):(b.modulePath=a,h&&(g.mergeFunctions(h.prototype,b.prototype),h.prototype&&h.prototype._onReloaded&&h.prototype._onReloaded(b)),g.publish(d.EVENTS.ON_MODULE_RELOADED,{module:a,newModule:b}),b.prototype&&b.prototype.declaredClass&&g.publish(d.EVENTS.ON_MODULE_UPDATED,{moduleClass:b.prototype.declaredClass,
moduleProto:b.prototype}))})}catch(L){t.error("error reloading module "+a,L.stack),logError(L,"error reloading module "+a)}},10)}}}},fileChanged:function(a){},onAllDevicesStarted:function(){this.profile.test&&this.doTests()},onReady:function(){var a=this.getDeviceServer();if(a){var b=this.connection;a.clients||(a.clients=[]);b&&(a.clients.push(b),a.onClientConnection(b));global.process.emit("device-server-ready",this);this.initDevices();z=this;global.sctx=z}else t.error("have no device server")},
getUserDirectory:function(){return this.profile.user},destroy:function(){t.log("destroy dsc");this.deviceServer.destroy();this.mqttManager&&this.mqttManager.destroy()},constructManagers:function(){e=f([e,k],{});this.driverManager=this.createManager(a,null);this.fileManager=this.createManager(r,null);this.blockManager=this.createManager(q,null);H&&(this.testManager=this.createManager(H,null));this.connection=new C({owner:this});this.deviceManager=this.createManager(e,null,{deviceServerClient:new F({}),
connection:this.connection});if(this.profile){var b=g.resolve(this.profile.system),b={system_drivers:g.resolve(b+"/system/drivers"),system_devices:g.resolve(b+"/system/devices")};if(this.profile.user){var c=g.resolve(this.profile.user);b.user_drivers=g.resolve(c+"/drivers");b.user_devices=g.resolve(c+"/devices");this.userDirectory=c}this.resourceManager=this.createManager(h);this.resourceManager.resourceVariables={VFS_CONFIG:b}}},onLoaded:function(){},initDevices:function(){var a=this.profile,b=g.resolve(a.system),
c=this.getDeviceManager(),d=this.getDriverManager(),e=a.serverSide;d.createStore({items:this.getDrivers(g.resolve(b+"/system/drivers"),"system_drivers")},"system_drivers",!0);c.initStore({items:this.getDevices(g.resolve(b+"/system/devices"),"system_devices",{serverSide:e})},"system_devices",!0);a.user&&(d.createStore({items:this.getDrivers(g.resolve(a.user+"/drivers"),"user_drivers")},"user_drivers",!0),c.initStore({items:this.getDevices(g.resolve(a.user+"/devices"),"user_devices",{serverSide:e})},
"user_devices",!0));A(c.connectToAllDevices()).then(function(){this.onAllDevicesStarted()}.bind(this))}})})},"nxapp/manager/DriverManager":function(){define("dcl/dcl nxapp/utils/_LogMixin xide/types xcf/manager/DriverManager nxapp/utils/_console dojo/node!path xide/mixins/EventedMixin xide/mixins/ReloadMixin dojo/Deferred xcf/model/Variable nxapp/utils".split(" "),function(f,n,l,m,g,c,b,d,a,e,r){return f([m,n],{declaredClass:"nxapp.manager.DriverManager",createDriverInstance:function(e){var k=this.ctx,
q=k.getDeviceManager(),h=k.getDriverManager(),p=e.driverScope,m=e.deviceScope,t=new a,n=e.system_drivers+"/DriverBase.js",w=e[p]+"/"+e.driver,A=e.driverId,B=e.deviceId||e.id,y=e[p],H=e[m],I=e.hash,F=h.getDriverById(A),z=q.getDeviceById(B,q.stores[m]);if(!F){if(!y)return g.error("invalid drivers path "+y,e),t.reject("invalid drivers path "+y),t;B=k.getDrivers(c.resolve(y),p);if(!B||!B.length)return t.reject("have no devices at "+y),t;y=this.createStore({items:B},p,!1);F=h.getDriverById(A,y);if(!F)return t.reject("cant find driver "+
A),t}if(!z){h=k.getDevices(c.resolve(H),m);if(!h||!h.length)return t.reject("have no devices at "+H),t;z=q.initStore({items:h},m,!1).getSync(e.devicePath);if(!z)return t.reject("cant find device "+e.devicePath),t}z.info=e;var C=this;require(["system_drivers/DriverBase"],function(a){a.prototype.declaredClass=n;require([p+"/"+e.driver.replace(".js","")],function(c){c=new (f([a,b.dcl,d.dcl,c],{}));c.declaredClass=w;c.options=e;c.baseClass=a.prototype.declaredClass;c.modulePath=w;c.delegate=q;c.driver=
F;c.serverSide=e.serverSide;c.utils=r;c.types=l;c.device=z;c.id=r.createUUID();c.getDevice=function(){return this.device};c.getDeviceInfo=function(){return this.getDevice().info};var h=F.user,p=r.getCIByChainAndName(h,0,l.DRIVER_PROPERTY.CF_DRIVER_COMMANDS);p&&p.params&&(c.sendSettings=r.getJson(p.params));(h=r.getCIByChainAndName(h,0,l.DRIVER_PROPERTY.CF_DRIVER_RESPONSES))&&h.params&&(c.responseSettings=r.getJson(h.params));try{c.start(),c.initReload()}catch(J){g.error("crash in driver instance startup! "+
z.toString())}C.driverInstance=c;h=A+"_"+I+"_"+z.path;F.blox&&F.blox.blocks||(g.error("Attention : INVALID driver",z.toString()),F.blox={blocks:[]});F.blockPath&&(r.getJson(r.readFile(F.blockPath)),F.blox=r.getJson(r.readFile(F.blockPath)));q.deviceInstances||(q.deviceInstances={});q.deviceInstances[I]=c;h=k.getBlockManager().createScope({id:h,device:z,driver:F,instance:c,ctx:k,serverSide:e.serverSide,uuid:r.createUUID(),getContext:function(){return this.instance}},dojo.clone(F.blox.blocks));c.blockScope=
h;z.blockScope=h;z.driverInstance=c;C.blockScope=h;t.resolve({driverInstance:c,blockScope:h})})});t.then(function(a){a.blockScope.start()});return t}})})},"xcf/manager/DriverManager":function(){define("dcl/dcl dojo/_base/declare dojo/_base/lang dojo/_base/json xide/types xcf/types/Types xide/utils xcf/manager/BeanManager xcf/model/Variable xcf/manager/DriverManager_Server xide/data/TreeMemory xide/data/ObservableStore dstore/Trackable xdojo/has xcf/model/Driver xide/manager/ServerActionBase xide/data/Reference dojo/Deferred xide/mixins/ReloadMixin xide/mixins/EventedMixin xdojo/has!xcf-ui?./DriverManager_UI xdojo/has!xcf-ui?xide/views/_CIDialog".split(" "),
function(f,n,l,m,g,c,b,d,a,e,r,p,k,q,h,u,v,t,x,w,A,B){l=[u,d,e];q("runDrivers");q("xcf-ui")&&l.push(A);return f(l,{beanName:"Driver",beanUrlPattern:"{id}",breanScheme:"driver://",onStoreCreated:function(a){var b=a.type;a=a.store;var c=a.query({isDir:!1});if(b===g.ITEM_TYPE.DRIVER)for(b=0;b<c.length;b++){var d=c[b];null==d._completed&&"Default"!==d.name&&(d._completed=!0,q("xcf-ui")&&this.completeDriver(a,d,d))}},removeDriverInstance:function(a,b){try{this.getContext().getDeviceManager().toDeviceControlInfo(b);
var c=this.getDriverById(a.device.info.driverId),d=c._store,e=c.path,h=e+"_instances_instance_"+b.path,k=d.getSync(h);k&&d.removeSync(h);var g=_.find(c.instances,{path:h});g&&c.instances.remove(g);b.removeReference(k);k&&(k.refresh(),d.getSync(e+"_instances").refresh())}catch(K){logError(K,"error removing driver instance")}},createDriverBlockScope:function(a){var c=b.clone(a.blox&&a.blox.blocks?a.blox.blocks:[]);return a.blockScope=this.ctx.getBlockManager().createScope({id:a.id,device:null,driver:a,
instance:null,ctx:this.ctx,getContext:function(){return this.instance}},c,function(b){b&&console.error(b+" : in "+a.name+" , re-save driver!")})},addDeviceInstance:function(a,b){},declaredClass:"xcf.manager.DriverManager",beanNamespace:"driver",beanName:"Driver",beanIconClass:"fa-exchange",groupType:g.ITEM_TYPE.DRIVER_GROUP,itemType:g.ITEM_TYPE.DRIVER,itemMetaTitleField:g.DRIVER_PROPERTY.CF_DRIVER_NAME,defaultScope:"system_drivers",serviceClass:"XCF_Driver_Service",rawData:null,store:null,treeView:null,
driverScopes:null,_isLoading:!1,getDriverModule:function(a){var c=new t,d=b.getCIInputValueByName(a.user,g.DRIVER_PROPERTY.CF_DRIVER_CLASS);a=a.scope;d=d?d.replace("./",""):"";a=require.toUrl(a);a=b.removeURLParameter(a,"bust");a=b.removeURLParameter(a,"time");a=a.replace("/main.js","");require.cache||(a=a.replace("/.js","/"));var e;e=(a+"/"+d).replace("?","");try{require([e],function(a){c.resolve(a)})}catch(z){console.error("error loading driver module from "+a+"---"+d,z),logError(z,"error loading driver module"),
c.reject(z.message)}return c},loadDriverModule:function(a){var c=this.driverScopes.system_drivers+"DriverBase";require.toUrl(this.driverScopes.system_drivers);var d=this,e=new t,h=require;h([c],function(c){var k=d.driverScopes[a.scope],q=!require.cache;q?require({config:{urlArgs:null}}):require({cacheBust:null});k=require.toUrl(k);q&&(k=k.replace("/.js","/"));var p=b.getCIInputValueByName(a.user,g.DRIVER_PROPERTY.CF_DRIVER_CLASS),p=p.replace("./",""),p=p.replace(".js",""),p=a.scope+"/"+p,p=p.replace("",
"").trim();try{h.undef(p),h([p],function(a){function b(c,d){a.getFields=c.getFields;c.onReloaded=b;d.onReloaded=b}a.declaredClass=p;f([c,w.dcl,x.dcl,a],{}).getFields=a.getFields;a.onReloaded=b;e.resolve(a)})}catch(D){}});return e},getBlock:function(a){a=b.parse_url(a);a=b.urlArgs(a.host);var c=this.getItemById(a.driver.value),d=null,e=!1;c&&!c.blockScope&&(e=!0,this.createDriverBlockScope(c));c&&c.blockScope&&(d=c.blockScope.getBlockById(a.block.value));e&&(c.blockScope.destroy(),delete c.blockScope);
return d},getDriverByUrl:function(a){a=b.parse_url(a);a=b.urlArgs(a.host);return this.getItemById(a.driver.value)},_driverQueryCache:null,_getDriverById:function(a,c){if(c&&c.getSync){var d=c.query();_.isArray(d)||(d=[d]);for(var e=0;e<d.length;e++){var h=d[e];if(!h.isDir){var k=b.getInputCIByName(h.user,g.DRIVER_PROPERTY.CF_DRIVER_ID);if(k&&k.value==a)return c.getSync(h.path)}}return null}},getDriverById:function(a,b){if(b)return this._getDriverById(a,b);var c=b=null;q("xcf-ui");for(var d in this.stores)if(b=
this.stores[d],b=this._getDriverById(a,b)){c=b;break}q("xcf-ui");return c},getDriverByPath:function(a){var c=null,d;for(d in this.stores){a:{c=b.queryStore(this.stores[d],{isDir:!1});_.isArray(c)||(c=[c]);for(var e=0;e<c.length;e++){var h=c[e];if(h.path==a){c=h;break a}}c=null}if(c)return c}return null},getItemById:function(a){return this.getDriverById(a)},onNewDriverScopeCreated:function(a){},onScopeCreated:function(a){},onDeviceDisconnected:function(a){},onDriverCreated:function(a){q("xcf-ui")&&
g.registerEnumeration("Driver",this.getDriversAsEnumeration(a))},onDriverRemoved:function(a,b){q("xcf-ui")&&g.registerEnumeration("Driver",this.getDriversAsEnumeration(a))},onStoreReady:function(a){q("xcf-ui")&&g.registerEnumeration("Driver",this.getDriversAsEnumeration(a))},createStore:function(a,c,d){a&&!a.items&&a["0"]&&(a={items:a["0"].items});var e=new (n("driverStore",[r,k,p],{}))({data:[],Model:h,idProperty:"path",scope:c,id:b.createUUID(),mayHaveChildren:function(a){return a.isDir},observedProperties:["name",
"enabled"]});a&&a.items&&(e.setData(a.items),_.each(a.items,function(a){a._store=e}));c&&!1!==d&&this.setStore(c,e);return e},initStore:function(a,b,c){return this.createStore(a,b,c)},getStore:function(a){a=a||"system_drivers";var b=this.stores[a];return b?b:this.ls(a)},ls:function(a,b){function c(c){try{var e=this.createStore(c,a,b);this.onStoreReady(e);!1!==b&&this.publish(g.EVENTS.ON_STORE_CREATED,{data:c,owner:this,store:e,type:this.itemType});d.resolve(e)}catch(G){logError(G,"error ls drivers")}}
var d=new t;if(this.prefetch&&this.prefetch[a])return c.apply(this,[this.prefetch[a]]),delete this.prefetch[a],d;q("php")?this.runDeferred(null,"ls",[a]).then(c.bind(this)):d.resolve({items:[]});return d},init:function(){var a=this,b=g.EVENTS;this.subscribe([b.ON_SCOPE_CREATED,b.ON_STORE_CREATED]);this.subscribe(b.ON_BLOCK_EXPRESSION_FAILED,function(c){a.publish(b.ON_SERVER_LOG_MESSAGE,{data:{type:"Expression",device:c.deviceInfo},level:"error",message:"Expression Failed: "+c.item.title+" : "+c.item.value})});
this.driverScopes={system_drivers:"system_drivers/",user_drivers:"user_drivers/"}}})})},"xcf/manager/BeanManager":function(){define("dcl/dcl xdojo/has dojo/_base/lang xide/types xide/utils xide/manager/BeanManager dojo/Deferred xide/noob xdojo/has!xtrack?xide/interface/Track xdojo/has!xcf-ui?xide/views/ActionDialog xdojo/has!xcf-ui?xide/views/CIActionDialog xdojo/has!xcf-ui?xide/views/CIGroupedSettingsView".split(" "),function(f,n,l,m,g,c,b,d,a,e,r,p){c=f(c,{getItemByPath:function(a){for(var b in this.stores){var c=
this.stores[b].getSync(a);if(c)return c}},setStore:function(a,b){var c=this.stores[a];c&&(console.error("setting existing store "+a),c.destroy(),delete this.stores[a]);return this.stores[a]=b},onCIUpdate:function(a){a.owner===this&&this.updateCI(a.ci,a.newValue,a.oldValue,a.storeItem)},init:function(){this.stores={};this.subscribe(m.EVENTS.ON_CI_UPDATE)}});return n("xcf-ui")?f(c,{declaredClass:"xcf.manager.BeanManager",getViewClass:function(b,c){b=b||{};g.mixin(b,{startup:function(){a&&this.getContext().getTrackingManager().track(this.getTrackingCategory(),
this.getTrackingLabel(this.item),this.getTrackingUrl(this.item),m.ACTION.OPEN,this.getContext().getUserDirectory());if(this.inherited)return this.inherited(arguments)}});return f([c||p,a?a.dcl:d.dcl],b)},getFile:function(a){var c=new b,d=this.getContext().getFileManager().getStore(a.scope);d.initRoot().then(function(){d._loadPath(".",!0).then(function(){d.getItem(a.path,!0).then(function(a){c.resolve(a)})})});return c},toUrl:function(a,b,c,d){return l.replace((d||"")+"deviceScope\x3d{deviceScope}\x26device\x3d{deviceId}\x26driver\x3d{driverId}\x26driverScope\x3d{driverScope}\x26block\x3d{block}",
{deviceId:a.id,deviceScope:a.scope,driverId:b.id,driverScope:b.scope,block:c?c.id:""})},newGroup:function(){var a=this,b=this.getItem(),c=b?!0===b.isDir?b.path:"":"",b=new r({title:"New "+this.groupType,delegate:{onOk:function(b,d){var e=g.getCIInputValueByName(d,"Title"),h=g.getCIInputValueByName(d,"Scope");a.createGroup(h,c+"/"+e,function(){var b=a.createNewGroupItem(e,h,c);a.store.putSync(b);a.publish(m.EVENTS.ON_STORE_CHANGED,{owner:a,store:a.store,action:m.NEW_DIRECTORY,item:b})})}},cis:[g.createCI("Title",
13,""),g.createCI("Scope",3,this.defaultScope,{options:[{label:"System",value:this.defaultScope},{label:"User",value:this.userScope}]})]});b.startup();b.show()},onDeleteItem:function(a){var b=!0===g.toBoolean(a.isDir),c=b?"removeGroup":"removeItem",d=this;(new e({title:"Remove "+this.beanName+(b?" Group":"")+' "'+a.name+'" ',style:"max-width:400px",titleBarClass:"text-danger",delegate:{isRemoving:!1,onOk:function(){d[c](g.toString(a.scope),g.toString(a.path),g.toString(a.name),function(){d.onItemDeleted(a);
d.publish(m.EVENTS.ON_STORE_CHANGED,{owner:d,store:d.store,action:m.DELETE,item:a})})}}})).show()},createNewGroupItem:function(a,b,c){return this.createItemStruct(a,b,c,a,!0,this.groupType)},createNewItem:function(a,b,c){return this.createItemStruct(a,b,c,c+"/"+a,!1,this.itemType)},createItem:function(a,b,c,d,e){return this.runDeferred(null,"createItem",[a,b,c,d,e])},ls:function(a,b){return this.runDeferred(null,"ls",[a]).then(function(a){try{this.rawData=a,this.initStore(a),this.publish(m.EVENTS.ON_STORE_CREATED,
{data:a,owner:this,store:this.store,type:this.itemType})}catch(u){logError(u,"error ls")}}.bind(this))}}):c})},"xide/manager/BeanManager":function(){define("dcl/dcl dojo/_base/lang xdojo/has xide/utils xide/encoding/MD5 xide/registry xide/data/TreeMemory".split(" "),function(f,n,l,m,g,c,b){return f(null,{declaredClass:"xide.manager.BeanManager",beanNamespace:"beanNS",beanName:"beanName",beanPriority:-1,createItemStruct:function(b,a,c,g,f,k){return{name:b,isDir:f,parentId:c,path:g,beanType:k,scope:a}},
getMetaValue:function(b,a){return m.getCIInputValueByName(m.getAt(b,this.itemMetaPath||"user"),a)},getStore:function(){return this.store},isValid:function(){return null!=this.store},initStore:function(c){this.store=new b({data:c.items,idProperty:"path"});this.onStoreReady(this.store);return this.store},onStoreReady:function(){},_onReloaded:function(b){this.mergeNewModule(b.prototype);b=this.declaredClass;(b=n.getObject(m.replaceAll("/",".",b))||n.getObject(b))&&b.prototype&&b.prototype.solve&&this.mergeNewModule(b.prototype)}})})},
"xide/registry":function(){define(["dojo/_base/array","dojo/_base/window","xdojo/has"],function(f,n,l){var m={},g={},c={length:0,add:function(b){this._hash[b.id]&&(this.remove(b.id),this.add(b));g[b.id]=b;this.length++},remove:function(b){g[b]&&(delete g[b],this.length--)},byId:function(b){return"string"==typeof b?g[b]:b},byNode:function(b){return g[b.getAttribute("widgetId")]},toArray:function(){return _.values(_.mapKeys(g,function(b,c){b.id=c;return b}))},getUniqueId:function(b){var c;do c=b+"_"+
(b in m?++m[b]:m[b]=0);while(g[c]);return c},findWidgets:function(b,c){function a(b){for(b=b.firstChild;b;b=b.nextSibling)if(1==b.nodeType){var e=b.getAttribute("widgetId");e?(e=g[e])&&d.push(e):b!==c&&a(b)}}var d=[];a(b);return d},_destroyAll:function(){_.each(c.findWidgets(n.body()),function(b){b._destroyed||(b.destroyRecursive?b.destroyRecursive():b.destroy&&b.destroy())})},getEnclosingWidget:function(b){for(;b;){var c=1==b.nodeType&&b.getAttribute("widgetId");if(c)return g[c];b=b.parentNode}return null},
_hash:g};return c})},"xide/noob":function(){define(["xdojo/declare","dcl/dcl"],function(f,n){f=f("noob",null,{});f.dcl=n(null,{});return f})},"xcf/model/Variable":function(){define(["dcl/dcl","xide/types","xblox/model/variables/Variable"],function(f,n,l){return f(l,{declaredClass:"xcf.model.Variable",hasInlineEdits:!0,gui:"off",cmd:"off",save:!1,target:"None",name:"No Title",value:-1,observed:["value","initial","name"],solve:function(){var f="";if("processVariables"===this.group){var g=this.scope.getVariable("value");
g&&(g=g.value,this.isNumber(g)||(g="'"+g+"'"),f="var value \x3d "+g+";\n")}return this.scope.parseExpression(f+this.getValue(),!0)},canEdit:function(){return!0},canDisable:function(){return!1},getFields:function(){var f=this.getDefaultFields();f.push(this.utils.createCI("title",13,this.name,{group:"General",title:"Name",dst:"name"}));var g=this;f.push(this.utils.createCI("value",this.types.ECIType.EXPRESSION,this.value,{group:"General",title:"Value",dst:"value",widget:{allowACECache:!0,showBrowser:!1,
showSaveButton:!0,editorOptions:{showGutter:!1,autoFocus:!1,hasConsole:!1},aceOptions:{hasEmmet:!1,hasLinking:!1,hasMultiDocs:!1},item:this},delegate:{runExpression:function(c,b,d){if("processVariables"==g.group){var a=g.scope.getVariable("value"),e="";a&&(a=a.value,g.isNumber(a)||(a="'"+a+"'"),e="var value \x3d "+a+";\n")}return g.scope.expressionModel.parse(g.scope,e+c,!1,b,d)}}}));f.push(this.utils.createCI("flags",5,this.flags,{group:"General",title:"Flags",dst:"flags",data:[{value:4096,label:"Dont parse",
title:"Do not parse the string and use it as is"},{value:2048,label:"Expression",title:"Parse it as Javascript"}],widget:{hex:!0}}));return f},onChangeField:function(f,g,c){"value"===f&&this.publish(n.EVENTS.ON_DRIVER_VARIABLE_CHANGED,{item:this,scope:this.scope,save:!1,source:n.MESSAGE_SOURCE.GUI})}})})},"xblox/model/variables/Variable":function(){define(["dcl/dcl","xide/types","xblox/model/Block"],function(f,n,l){return f(l,{declaredClass:"xblox.model.variables.Variable",name:null,value:null,register:!0,
readOnly:!1,initial:null,isVariable:!0,flags:4096,getValue:function(){return this.value},canDisable:function(){return!1},canMove:function(){return!1},getIconClass:function(){return"el-icon-quotes-alt"},getBlockIcon:function(){return'\x3cspan class\x3d"'+this.icon+'"\x3e\x3c/span\x3e '},toText:function(){return"\x3cspan class\x3d'text-primary'\x3e"+this.getBlockIcon()+this.makeEditable("name","right","text","Enter a unique name","inline")+"\x3c/span\x3e"},solve:function(){this.scope.parseExpression(this.getValue(),
!0);return[]},getFields:function(){var f=this.getDefaultFields(),g=this;f.push(this.utils.createCI("title",n.ECIType.STRING,this.name,{group:"General",title:"Name",dst:"name"}));f.push(this.utils.createCI("value",n.ECIType.EXPRESSION,this.value,{group:"General",title:"Value",dst:"value",delegate:{runExpression:function(c,b,d){return g.scope.expressionModel.parse(g.scope,c,!1,b,d)}}}));return f}})})},"xblox/model/Block":function(){define("dcl/dcl dojo/Deferred dojo/_base/lang dojo/has xblox/model/ModelBase xide/factory xide/utils xide/types xide/utils/ObjectUtils xide/lodash xdojo/has!xblox-ui?xblox/model/Block_UI".split(" "),
function(f,n,l,m,g,c,b,d,a,e,r){function p(a,b){for(var c=0;c<b.length;c++)if(a.id===b[c].id)return c}m=[g];m.push(f(null,{getStatusIcon:function(){},getStatusClass:function(){},setStatusClass:function(){},onActivity:function(){},onRun:function(){},onFailed:function(){},onSuccess:function(){},getIconClass:function(){}}));r&&m.push(r);b.mixin(d,{BLOCK_FLAGS:{NONE:0,ACTIVE:1,SCRIPT:2,RESERVED1:4,USEFUNCTION:8,RESERVED2:16,SINGLE:32,WAITSFORMESSAGE:64,VARIABLEINPUTS:128,VARIABLEOUTPUTS:256,VARIABLEPARAMETERINPUTS:512,
VARIABLEPARAMETEROUTPUTS:1024,TOPMOST:16384,BUILDINGBLOCK:32768,MESSAGESENDER:65536,MESSAGERECEIVER:131072,TARGETABLE:262144,CUSTOMEDITDIALOG:524288,RESERVED0:1048576,EXECUTEDLASTFRAME:2097152,DEACTIVATENEXTFRAME:4194304,RESETNEXTFRAME:8388608,INTERNALLYCREATEDINPUTS:16777216,INTERNALLYCREATEDOUTPUTS:33554432,INTERNALLYCREATEDINPUTPARAMS:67108864,INTERNALLYCREATEDOUTPUTPARAMS:134217728,INTERNALLYCREATEDLOCALPARAMS:1073741824,ACTIVATENEXTFRAME:268435456,LOCKED:536870912,LAUNCHEDONCE:2147483648},BLOCK_CALLBACKMASK:{PRESAVE:1,
DELETE:2,ATTACH:4,DETACH:8,PAUSE:16,RESUME:32,CREATE:64,RESET:4096,POSTSAVE:256,LOAD:512,EDITED:1024,SETTINGSEDITED:2048,READSTATE:4096,NEWSCENE:8192,ACTIVATESCRIPT:16384,DEACTIVATESCRIPT:32768,RESETINBREAKPOINT:65536,RENAME:131072,BASE:14,SAVELOAD:769,PPR:304,EDITIONS:3072,ALL:4294967295}});r=f(m,{declaredClass:"xblox.model.Block",scopeId:null,isCommand:!1,outlet:0,_destroyed:!1,enabled:!0,serializeMe:!0,name:null,shareTitle:"",sharable:!1,items:null,parent:null,_return:null,_lastResult:null,_deferredObject:null,
_currentIndex:0,_lastRunSettings:null,_onLoaded:!1,beanType:"BLOCK",override:{},ignoreSerialize:"_didSubscribe _currentIndex _deferredObject _destroyed _return parent __started ignoreSerialize _lastRunSettings _onLoaded beanType sharable override virtual _scenario _didRegisterSubscribers additionalProperties renderBlockIcon serializeMe _statusIcon _statusClass hasInlineEdits _loop help owner _lastCommand allowActionOverride canDelete isCommand lastCommand autoCreateElse _postCreated _counter".split(" "),
_parseString:function(a,c,e,g){try{c=c||this._lastSettings||{};g=g||c.flags||d.CIFLAG.EXPRESSION;var h=this.scope,k=!(g&d.CIFLAG.DONT_PARSE),q=g&d.CIFLAG.EXPRESSION;g&d.CIFLAG.TO_HEX&&(a=b.to_hex(a));!1!==k&&(a=b.convertAllEscapes(a,"none"));var f=c.override||this.override||{},p=f&&f.variables?f.variables:null,m="",m=q&&!1!==k?h.parseExpression(a,null,p,null,null,null,f.args,g):""+a}catch(y){console.error(y)}return m},postCreate:function(){},childrenByClass:function(a){for(var b=this.getChildren(),
c=[],d=0;d<b.length;d++){var e=b[d];e.isInstanceOf(a)&&c.push(e)}return c},childrenByNotClass:function(a){for(var b=this.getChildren(),c=[],d=0;d<b.length;d++){var e=b[d];e.isInstanceOf(a)||c.push(e)}return c},getInstance:function(){var a=this.scope.instance;return a?a:null},pause:function(){},mergeNewModule:function(a){for(var b in a){var c=a[b];c&&e.isFunction(c)&&(this[b]=c)}},__onReloaded:function(a){this.mergeNewModule(a.prototype);a=this.declaredClass;(a=l.getObject(b.replaceAll("/",".",a))||
l.getObject(a))&&a.prototype&&a.prototype.solve&&this.mergeNewModule(a.prototype)},reparent:function(){if(!this)return!1;if(!this.getParent()){var a=this.next(null,1)||this.next(null,-1);a&&(this.group=null,a._add(this))}},unparent:function(a,b){if(!this)return!1;var c=this.getParent();c&&c.removeBlock&&c.removeBlock(this,!1);this.group=a;this.parent=this.parentId=null;!1!==b&&(this._place(null,-1,null),this._place(null,-1,null))},move:function(a){if(!this)return!1;var b=this.getParent(),c=null;if(b){c=
b[b._getContainer(this)];if(!c||2>c.length||!this.containsItem(c,this))return!1;b=this.indexOf(c,this);if(0>b+a)return!1;var d=c[b+a];if(!d)return!1;c[b+a]=this;c[b]=d}else this._place(null,a);return!0},_place:function(a,b,c){var d=this._store,h=this;(a=a||h.next(null,b))?(a=e.isString(a)?d.getSync(a):a,h=e.isString(h)?d.getSync(h):h,c=c||d.storage.fullData,b=-1==b?0:1,c.remove(h),-1==b&&(b=0),c.splice(Math.max(p(a,c)+b,0),0,h),d._reindex()):console.error("have no next",this)},index:function(){var a=
this.getParent(),b=null,c=this.group,b=this._store;if(a)return b=a[a._getContainer(this)]||[],b=b.filter(function(a){return a.group===c}),!b||2>b.length||!this.containsItem(b,this)?!1:this.indexOf(b,this);b=b.storage.fullData;b=b.filter(function(a){return a.group===c});return this.indexOf(b,this)},numberOfParents:function(){var a=0,b=this.getParent();b&&(a++,a+=b.numberOfParents());return a},getTopRoot:function(){var a=this.getParent();if(a){var b=a.getParent();b&&(a=b)}return a},next:function(a,
b){function c(a,b,d,e,h){var g=a.indexOf(b,a),k=b[g+d*e];if(k){if(!k.parentId&&k.group&&k.group===a.group)return h=g+d*e,k;e++;return c(a,b,d,e,h)}return null}a=a||this._store.storage.fullData;return c(this,a,b,1,0)},getParent:function(a){if(this.parentId)return this.scope.getBlockById(this.parentId)},getScope:function(){var a=this.scope;if(this.scopeId&&0<this.scopeId.length){var b=a.owner;b&&b.hasScope&&(b.hasScope(this.scopeId)?a=b.getScope(this.scopeId):console.error("have scope id but cant resolve it",
this))}return a},canAdd:function(){return null},getTarget:function(){var a=this._targetReference;if(a)return a;var b=this.getParent();b&&b.getTarget&&(a=b.getTarget());return a},addToEnd:function(a,b){b&&null!=a.length&&null!=b.length&&a.push.apply(a,b);return a},removeBlock:function(a,b){a&&(!1!==b&&a.empty&&a.empty(),!1!==b&&delete a.items,a.parent=null,a.parentId=null,this.items&&this.items.remove(a))},_getContainer:function(a){return"items"},empty:function(a){try{this._empty(a)}catch(q){debugger}},
_empty:function(a){if(a=a||this.items)for(var b=0;b<a.length;b++){var c=a[b];c&&c.empty&&c.empty();c&&this.scope&&this.scope.blockStore&&this.scope.blockStore.remove(c.id)}},containsItem:function(a,b){for(var c=a.length;c--;)if(a[c].id===b.id)return!0;return!1},indexOf:function(a,b){for(var c=a.length;c--;)if(a[c].id===b.id)return c;return-1},_getBlock:function(a){if(!this||!this.parentId)return!1;var b=this.scope.getBlockById(this.parentId);if(!b)return null;b=b[b._getContainer(this)];if(!b||2>b.length||
!this.containsItem(b,this))return null;var c=this.indexOf(b,this);return 0>c+a?!1:(a=b[c+a])?a:null},getPreviousBlock:function(){return this._getBlock(-1)},getNextBlock:function(){return this._getBlock(1)},_getPreviousResult:function(){var a=this.getPreviousBlock()||this.getParent();return a&&null!=a._lastResult?this.isArray(a._lastResult)?a._lastResult:[a._lastResult]:null},getPreviousResult:function(){var a=null;if((a=(a=this.getPreviousBlock())&&a._lastResult&&a.enabled?a:this.getParent())&&!a._lastResult){var b=
a.getParent();b&&(a=b)}return a&&null!=a._lastResult?(this.isArray(a._lastResult),a._lastResult):null},_getArg:function(a,b){var c=parseFloat(a);return isNaN(c)?"true"===a||"false"===a?"true"===a:a&&b&&e.isString(a)?"'"+a+"'":a:c},getArgs:function(a){var c=[];a=a||{};var d=a.args||this._get("args");a.override&&a.override.args&&(d=a.override.args);d&&(c=b.getJson(d,null,!1));if(c&&0==c.length&&d&&d.length&&e.isString(d)){if(-1!==d.indexOf(",")){d=d.split(",");for(a=0;a<d.length;a++){var g=parseFloat(d[a]);
isNaN(g)?"true"===d[a]||"false"===d[a]?c.push(b.toBoolean(d[a])):c.push(d[a]):c.push(g)}return c}c=[this._getArg(d)]}!e.isArray(c)&&(c=[]);a=this.getPreviousResult();null!=a&&(e.isArray(a)&&1==a.length?c.push(a[0]):c.push(a));return c||[d]},remove:function(a){this._destroyed=!0;null!=this.parentId&&null==this.parent&&(this.parent=this.scope.getBlockById(this.parentId));if(this.parent&&this.parent.removeBlock)this.parent.removeBlock(this);else if(a=a||this)a.empty&&a.empty(),delete a.items,a.parent=
null,this.items&&this.items.remove(a)},prepareArgs:function(a){a||(a={});a.id||(a.id=this.createUUID());a.items||(a.items=[])},_add:function(a,b,d,e){var h=null;try{b?(this.prepareArgs(b),h=c.createBlock(a,b,null,e)):null==b&&(h=a);(h.scope=this.scope)&&(h=this.scope.registerBlock(h,e));h.parent=this;h.parentId=this.id;h.scope=this.scope;var g=d||this._getContainer();if(g)if(this[g]||(this[g]=[]),-1!==this.indexOf(this[g],h))console.error(" have already "+h.id+" in "+g);else{if(this.id==h.id){console.error("tried to add our self to "+
g);return}this[g].push(h)}h.group=null;return h}catch(x){logError(x,"_add")}return null},getStore:function(){return this.getScope().getStore()},add:function(a,b,c){a=this._add(a,b,c);return a.getStore().getSync(a.id)},getContext:function(){return this.scope.instance&&this.scope.instance?this.scope.instance:null},resolved:function(){this._deferredObject&&(this._deferredObject.resolve(),delete this._deferredObject)},_solve:function(a,b){b=b||{highlight:!1};for(var c=[],d=0;d<this.items.length;d++)this.addToEnd(c,
this.items[d].solve(a,b));return c},solve:function(a,b){b=b||{highlight:!1};for(var c=[],d=0;d<this.items.length;d++)this.addToEnd(c,this.items[d].solve(a,b));return c},solveMany:function(a,b){!this._lastRunSettings&&b&&(this._lastRunSettings=b);b=this._lastRunSettings||b;this._currentIndex=0;this._return=[];a=this[this._getContainer()];if(a.length)return a=this.runFrom(a,0,b),this.onSuccess(this,b),a;this.onSuccess(this,b);return[]},runFrom:function(a,b,c){var d=this;a=a||this.items;this._return||
(this._return=[]);var e=function(b){b._deferredObject.then(function(e){b._lastResult=b._lastResult||e;d._currentIndex++;d.runFrom(a,d._currentIndex,c)})};if(a.length)for(;b<a.length;b++){var h=a[b];if(!0===h.deferred){h._deferredObject=new n;this._currentIndex=b;e(h);this.addToEnd(this._return,h.solve(this.scope,c));break}else this.addToEnd(this._return,h.solve(this.scope,c))}else this.onSuccess(this,c);return this._return},serializeField:function(a){return-1==this.ignoreSerialize.indexOf(a)},onLoad:function(){},
activate:function(){},deactivate:function(){},_get:function(a){if(this.override)return a in this.override?this.override[a]:this[a]},onDidRun:function(){this.override&&(this.override.args&&delete this.override.args,delete this.override)},destroy:function(){this.stop(!0);this.reset();this._destroyed=!0;delete this.virtual},reset:function(){this._lastSettings={};clearTimeout(this._loop);this._loop=null;delete this.override;this.override=null;delete this._lastResult;this.override={}},stop:function(){this.reset();
this.getItems&&e.invoke(this.getItems(),"stop")}});r.FLAGS=d.BLOCK_FLAGS;r.EMITS=d.BLOCK_CALLBACKMASK;r.prototype.onSuccess||(r.prototype.onSuccess=function(){},r.prototype.onRun=function(){},r.prototype.onFailed=function(){});f.chainAfter(r,"stop");f.chainAfter(r,"destroy");f.chainAfter(r,"onDidRun");return r})},"xblox/model/ModelBase":function(){define(["dcl/dcl","xide/utils","xide/types","xide/mixins/EventedMixin","xide/lodash"],function(f,n,l,m,g){m=f(m.dcl,{declaredClass:"xblox.model.ModelBase",
id:null,description:"",parent:null,parentId:null,group:null,order:0,_store:null,outputs:function(){return[]},takes:function(){return[]},needs:function(){return[]},constructor:function(c){for(var b in c)c.hasOwnProperty(b)&&(this[b]=c[b]);this.id||(this.id=this.createUUID());this.utils=n;this.types=l},keys:function(c){var b=[],d;for(d in c)b.push(d);return b},values:function(c){var b=[],d;for(d in c)b.push(c[d]);return b},toArray:function(){return this.map()},size:function(){return this.toArray().length},
createUUID:n.createUUID,canEdit:function(){return!0},getFields:function(){return null},isString:function(c){return"string"==typeof c},isNumber:function(c){return"number"==typeof c},isBoolean:function(c){return"boolean"==typeof c},isObject:g.isObject,isArray:g.isArray,getValue:function(c){var b=parseFloat(c);return isNaN(b)?"true"===c||!0===c?!0:"false"===c||!1===c?!1:c:b},isScript:function(c){return this.isString(c)&&(-1!=c.indexOf("return")||-1!=c.indexOf(";")||-1!=c.indexOf("(")||-1!=c.indexOf("+")||
-1!=c.indexOf("-")||-1!=c.indexOf("\x3c")||-1!=c.indexOf("*")||-1!=c.indexOf("/")||-1!=c.indexOf("%")||-1!=c.indexOf("\x3d")||-1!=c.indexOf("\x3d\x3d")||-1!=c.indexOf("\x3e")||-1!=c.indexOf("[")||-1!=c.indexOf("{")||-1!=c.indexOf("}"))},replaceAll:function(c,b,d){return this.isString(d)?d.split(c).join(b):d},isInValidState:function(){return!0},destroy:function(){}});f.chainAfter(m,"destroy");return m})},"xcf/manager/DriverManager_Server":function(){define(["dcl/dcl","dojo/_base/declare","xide/types",
"xide/utils"],function(f,n,l,m){return f(null,{declaredClass:"xcf.manager.DriverManager_Server",onDriverBlocksChanged:function(g,c){},onFileChanged:function(g){if("changed"===g.type&&!g._didb){g._didb=!0;var c=m.replaceAll("\\","/",g.path),c=m.replaceAll("//","/",c),c=c.replace(/\\/g,"/"),b;b=c;b=-1!=b.indexOf("system/driver")?b.substr(b.indexOf("system/driver")+14,b.length):null;b&&-1!==b.indexOf(".xblox")&&(console.log("driver blocks changed "+b+" @ "+c,g),this.onDriverBlocksChanged(c,b))}},createDriverInstance:function(g,
c){var b=this,d=this.driverScopes.system_drivers+"DriverBase";require([d],function(a){a.prototype.declaredClass=d;var e=b.driverScopes[g.scope],f=m.getCIInputValueByName(g.user,l.DRIVER_PROPERTY.CF_DRIVER_CLASS);if(f){var p=e+f,p=p.replace(".js",""),p=p.replace("./","");require([p],function(d){d=new (n([a],d.prototype));d.baseClass=a.prototype.declaredClass;d.modulePath=m.replaceAll("//","/",p);d.delegate=b;g.instance=d;c&&c(d);try{d.start()}catch(q){}return d})}else console.error("cant find driver class in meta")})}})})},
"xcf/model/Driver":function(){define(["dcl/dcl","xide/data/Model","xide/data/Source","xide/mixins/EventedMixin","xide/utils"],function(f,n,l,m,g){return f([n,l.dcl,m.dcl],{itemMetaPath:"user.meta",getStore:function(){return this._store},getScope:function(){var c=this.getStore();return c?c.scope:this.scope},getMetaValue:function(c){return g.getCIInputValueByName(this.user,c)},setMetaValue:function(c,b,d){var a=g.getCIByChainAndName(this.user,0,c);if(a){var e=this.getMetaValue(c);g.setCIValueByField(a,
"value",b);this[c]=b;!1!==d&&this.publish(types.EVENTS.ON_CI_UPDATE,{owner:this.owner,ci:a,newValue:b,oldValue:e})}},getParent:function(){return this._store.getSync(this.parentId)},_mayHaveChildren:!1})})},"xide/data/Model":function(){define(["dcl/dcl","dojo/Deferred","dojo/aspect","dojo/when","xide/utils"],function(f,n,l,m,g){function c(a,b){var c=a.schema[b];void 0===c||c instanceof v||(c=new v(c),c._parent=a);c&&(c.name=b);return c}function b(a){var b,c=1;a(function(a,d,e){a&&a.then?(c++,b||(b=
new n),a.then(function(a){d(a,e);c--;c||b.resolve()}).then(null,b.reject)):d(a,e)});if(b)return c--,c||b.resolve(),b.promise}function d(){2>p&&q&&(q(),q=null);p--}function a(){return a}var e=[].slice,r=f(null,{declaredClass:"xide/data/Model",schema:{},additionalProperties:!0,_scenario:"update",constructor:function(a){this.init(a)},refresh:function(a,b){var c=this._store;c&&c.refreshItem(this,a,b)},getStore:function(){return this._store},getParent:function(){return this._store.getSync(this[this._store.parentProperty])},
init:function(a){this._scenario="insert";a=this._setValues(a);for(var b in this.schema){var c=this.schema[b];c&&"object"===typeof c&&"default"in c&&!a.hasOwnProperty(b)&&(c=c["default"],a[b]="function"===typeof c?c.call(this):c)}},_setValues:function(a){return g.mixin(this,a)},_getValues:function(){return this._values||this},save:function(a){var b=this;return m(a&&a.skipValidation?!0:this.validate(),function(a){if(!a)throw b.createValidationError(b.errors);a=b._scenario;b.prepareForSerialization();
return b._store&&m(b._store["insert"===a?"add":"put"](b),function(a){b.set(a);b._scenario="update";return b})})},remove:function(){var a=this._store;return a.remove(a.getIdentity(this))},prepareForSerialization:function(){this._scenario=void 0;this._inherited&&(this._inherited.toJSON=a)},createValidationError:function(a){return Error("Validation error")},property:function(a,b){var d=this.hasOwnProperty("_properties")?this._properties:this._properties=new u,h=d[a];h||(h=c(this,a),h=d[a]=h?g.delegate(h):
new v,h.name=a,h._parent=this);return b?h.property.apply(h,e.call(arguments,1)):h},get:function(a){var b,d=this.schema[a];return(d=b||this.schema[a])&&d.valueOf&&(d.valueOf!==t||d.hasCustomGet)?((b=b||this.hasOwnProperty("_properties")&&this._properties[a])||(b=g.delegate(c(this,a),{name:a,_parent:this})),b.valueOf()):this._getValues()[a]},set:function(b,c){if("object"===typeof b){p++;try{for(var e in b)c=b[e],!b.hasOwnProperty(e)||c&&c.toJSON===a||this.set(e,c)}finally{d()}}else{e=this.schema[b];
if(!e&&!this.additionalProperties)return console.warn("Schema does not contain a definition for",b);var h=this.hasOwnProperty("_properties")&&this._properties[b];!h&&(c&&"object"===typeof c||e&&e.put!==x)&&(h=this.property(b));h?h.put(c):(e&&e.coerce&&(c=e.coerce(c)),this._getValues()[b]=c);return c}},observe:function(a,b,c){return this.property(a).observe(b,c)},validate:function(a){},isValid:function(){var a=!0,b;for(b in this.schema){var c=this.hasOwnProperty("_properties")&&this._properties[b];
c&&c.errors&&c.errors.length&&(a=!1)}return a}});r.createSubclass=function(a,b){a=f([this].concat(a),b||{});a.extend=function(a){g.mixin(this.prototype,a);return this};return a};var p=0,k,q;(r.nextTurn=function(a){q=a}).atEnd=!0;var h=f(r,{observe:function(a,b){var c;if("string"===typeof a)return console.error("fff"),this.inherited(arguments);b&&b.onlyFutureUpdates||(c=new h,this._has()&&(c.value=a(this.valueOf())));var d=this._addListener(function(b){b=a(b);c&&c.put(b)});return c?(c.remove=d.remove,
c):d},validateOnSet:!1,validators:null,_addListener:function(a){return l.after(this,"onchange",a,!0)},valueOf:function(){return this._get()},_get:function(){return this.value},_has:function(){return this.hasOwnProperty("value")},setValue:function(a){this.value=a},put:function(a){var b=this._get();a=this.coerce(a);this.errors&&this.set("errors",void 0);var c=this;p++;return m(this.setValue(a,this._parent),function(e){void 0!==e&&(a=e);c.onchange&&c._queueChange(c.onchange,b);var h,g=b&&"object"===
typeof b&&!(b instanceof Array),f=a&&"object"===typeof a&&!(a instanceof Array);if(g||f){e={};if(g)for(h in b=b._getValues?b._getValues():b,b)e[h]={old:b[h]};if(f)for(h in a=a._getValues?a._getValues():a,a)(e[h]=e[h]||{}).value=a[h];c._values=f&&a;for(h in e)g=e[h],(f=c._properties&&c._properties[h])&&f.onchange&&f._queueChange(f.onchange,g.old)}c.validateOnSet&&c.validate();d()})},coerce:function(a){var b=this.type;b&&("string"===b?a=""+a:"number"===b?a=+a:"boolean"===b?a="false"===a||"0"===a||a instanceof
Array&&!a.length?!1:!!a:"function"!==typeof b||a instanceof b||(a=new b(a)));return a},addError:function(a){this.set("errors",(this.errors||[]).concat([a]))},checkForErrors:function(a){var b=[];this.type&&!("function"===typeof this.type?a instanceof this.type:this.type===typeof a)&&b.push(a+" is not a "+this.type);!this.required||null!=a&&""!==a||b.push("required, and it was not present");return b},validate:function(){var a=this,c=this._parent,d=this.validators,e=this.valueOf(),h=[];return m(b(function(b){function g(a){a&&
h.push.apply(h,a)}if(d)for(var f=0;f<d.length;f++)b(d[f].checkForErrors(e,a,c),g);b(a.checkForErrors(e,a,c),g)}),function(){if(h.length)return a.set("errors",h),!1;void 0!==a.get("errors")&&a.set("errors",void 0);return!0})},_queueChange:function(a,b){if(!a._queued){a._queued=!0;var c=this,d=function(){a._queued=!1;a.call(c,c._get(),b)};k&&k.push(d);k||(!r.nextTurn.atEnd||0<p?(k=[d],r.nextTurn(function(){for(var a=0;a<k.length;a++)k[a]();k=null})):d())}},toJSON:function(){return this._values||this}}),
u=function(){};u.prototype.toJSON=a;var v=r.Property=f(h,{init:function(a){if("string"===typeof a||"function"===typeof a)a={type:a};a&&g.mixin(this,a)},_get:function(){return this._parent._getValues()[this.name]},_has:function(){return this.name in this._parent._getValues()},setValue:function(a,b){b._getValues()[this.name]=a}}),t=v.prototype.valueOf,x=v.prototype.put;return r})},"xide/data/Source":function(){define(["dcl/dcl","dojo/_base/declare","xide/utils","xide/lodash"],function(f,n,l,m){var g=
{_references:null,_originReference:null,_store:null,onReferenceUpdate:function(){},onReferenceRemoved:function(){},onReferenceDelete:function(){},updateReference:function(){},destroy:function(){this._references=null},getReferences:function(){return this._references?l.pluck(this._references,"item"):[]},hasReference:function(c){return m.find(this._references,{item:c})},addReference:function(c,b,d){!this._references&&(this._references=[]);if(this.hasReference(c))console.warn("already have reference");
else{this._references.push({item:c,settings:b});if(b&&b.onDelete&&c._store)c._store.on("delete",function(a){a.target==c&&(this._store.removeSync(this[this._store.idProperty]),this._references.remove(a.target))}.bind(this));d&&c.addSource&&c.addSource(this,b)}},removeReference:function(c){this._references&&m.each(this._references,function(b){if(b&&b.item==c)return this._references&&this._references.remove(b),!0},this)},updateReferences:function(c){var b=c.property,d=c.value;this._references||(this._references=
[]);for(var a=0;a<this._references.length;a++){var e=this._references[a],g=e.item,e=e.settings||{},f=g._store;if(this._originReference!=g&&c.property&&e.properties&&e.properties[c.property]){f&&f.silent(!0);try{if(g.onSourceChanged)g.onSourceChanged(b,d,c.type);else g.set(b,d)}catch(k){console.error("error updating reference! "+k,k)}f&&(f.silent(!1),f.emit("update",{target:g}))}}},constructor:function(c){this._references=[];l.mixin(this,c)},onItemChanged:function(c){this.updateReferences(c)}};n=n("xgrid.data.Source",
null,g);n.dcl=f(null,g);n.Implementation=g;return n})},"xide/manager/ServerActionBase":function(){define("dcl/dcl dojo/_base/declare xdojo/has dojo/Deferred xide/manager/RPCService xide/manager/ManagerBase xide/types xide/utils".split(" "),function(f,n,l,m,g,c,b,d){l={declaredClass:"xide.manager.ServerActionBase",serviceObject:null,serviceUrl:null,singleton:!0,serviceClass:null,defaultOptions:{omit:!0,checkMessages:!0,checkErrors:!0},base64_encode:function(a){var b,c,d,g,f=0,h=0,m="",m=[];if(!a)return a;
do b=a.charCodeAt(f++),c=a.charCodeAt(f++),d=a.charCodeAt(f++),g=b<<16|c<<8|d,b=g>>18&63,c=g>>12&63,d=g>>6&63,g&=63,m[h++]="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\x3d".charAt(b)+"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\x3d".charAt(c)+"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\x3d".charAt(d)+"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\x3d".charAt(g);while(f<a.length);m=m.join("");a=a.length%3;return(a?m.slice(0,
a-3):m)+"\x3d\x3d\x3d".slice(a||3)},runDeferred:function(a,b,c,d,g){var e=this,h=arguments;if(this.serviceObject.__init){if(this.serviceObject.__init.isResolved())return this._runDeferred(a,b,c,d,g);var f=new m;this.serviceObject.__init.then(function(){e._runDeferred(a,b,c,d,g).then(function(){f.resolve(h)})});return f}return this._runDeferred(a,b,c,d)},_runDeferred:function(a,c,d,g,f){var e=new m,h;g=g||this.defaultOptions;this.check();if(!this.checkCall(a,c,g.omit))return e.reject("method doesnt exists: "+
c+" for service class:"+this.serviceClass+" in "+this.declaredClass);this.prepareCall();var k=this.getService(),p=this.getServiceClass(a),l=this,r=function(a,b){var c=e;g.returnProm&&(c=h);c._data=a;if(b&&g.onError)return g.onError(b);c.resolve(a)};h=k[p][c](d);h.then(function(a){a=a||{};var d=a.error||{};if(g.checkMessages&&d&&3==d.code)l.onMessages(d);if(g.checkErrors){if(1==d.code){g.displayError&&l.onError(d,p+"::"+c);e.reject(d);return}}else{if(1==d.code&&g.displayError)l.onError(d,p+"::"+c);
if(d&&d.code&&0!==d.code){r(a,d);return}}g.omit&&l.publish(b.EVENTS.STATUS,{message:"Ok!",what:arguments},this);r(a)},function(a){f&&f(a);l.onError({code:1,message:"Rest Error for "+c})});return g.returnProm?h:e},getService:function(){return this.serviceObject},getServiceClass:function(a){return a||this.serviceClass},hasMethod:function(a,b){var c=this.getService();b=b||this.getServiceClass();return c&&b&&null!=c[b]&&null!=c[b][a]},findServiceUrl:function(a){var b=window.xFileConfig;if(b&&b.mixins)for(var c=
0;c<b.mixins.length;c++){var d=b.mixins[c];if(d.declaredClass===a&&d.mixin&&d.mixin.serviceUrl)return decodeURIComponent(d.mixin.serviceUrl)}return null},init:function(){this.check()},_initService:function(){return!1},check:function(){this.serviceObject||this._initService()},onError:function(a,c){if(a)if(1===a.code){if(a.message&&_.isArray(a.message)){this.publish(b.EVENTS.ERROR,{message:a.message.join("\x3cbr/\x3e")});return}}else 0===a.code&&this.publish(b.EVENTS.STATUS,"Ok");c&&(a.message=c+" -\x3e "+
a.message);this.publish(b.EVENTS.ERROR,{error:a},this)},checkCall:function(a,b,c){a=this.getServiceClass(a);return this.getService()?this.hasMethod(b,a)||!0!==c?!0:(this.onError({code:1,message:["Sorry, server doesnt know "+b+" in "+a]}),!1):!1},prepareCall:function(){var a={};this.config&&this.config.RPC_PARAMS&&(a=d.mixin(a,this.config.RPC_PARAMS.rpcFixedParams),this.serviceObject.extraArgs=a)},callMethodEx:function(a,c,d,g,f){(a=a||this.serviceClass)||console.error("have no service class! "+this.declaredClass,
this);this.check();if(this.checkCall(a,c,f)){this.prepareCall();var e=this;return this.serviceObject[this.getServiceClass(a)][c](d).then(function(d){try{g&&g(d)}catch(u){console.error("bad news : callback for method "+c+" caused a crash in service class "+a),logError(u,"server method failed "+u)}if(d&&d.error&&3==d.error.code)e.onMessages(d.error);if(d&&d.error&&d.error&&0!=d.error.code)e.onError(d.error);else 1==f&&e.publish(b.EVENTS.STATUS,{message:"Ok!"},this)},function(a){e.onError(a)})}},callMethodEx2:function(a,
b,c,d,g){this.check();if(this.checkCall(a,b,g))return this.prepareCall(),this.serviceObject[this.getServiceClass(a)][b](c)},callMethod:function(a,c,g,f){c=c||[[]];var e=this.serviceClass;try{var q=this;if(null==this.serviceObject[e][a]){if(!0===f)this.onError({code:1,message:["Sorry, server doesnt know "+a+" in "+e]});return null}e={};e=d.mixin(e,this.config.RPC_PARAMS.rpcFixedParams);e[this.config.RPC_PARAMS.rpcUserField]=this.config.RPC_PARAMS.rpcUserValue;this.serviceObject.extraArgs=e;this.serviceObject.signatureField=
this.config.RPC_PARAMS.rpcSignatureField;this.serviceObject.signatureToken=this.config.RPC_PARAMS.rpcSignatureToken;this.serviceObject[this.serviceClass][a](c).then(function(a){try{g&&g(a)}catch(u){logError(u,"Error calling RPC method")}if(a&&a.error&&3==a.error.code)this.onMessages(a.error);if(a&&a.error&&a.error&&1==a.error.code)this.onError(a.error);else!1!==f&&this.publish(b.EVENTS.STATUS,{message:"Ok!"},this)}.bind(this),function(a){this.onError(a)}.bind(this))}catch(h){q.onError(h),logError(h,
"Error calling RPC method")}}};f=f(c,l);f.declare=n(null,l);return f})},"xide/manager/RPCService":function(){define("dojo/_base/declare dojo/_base/kernel dojo/_base/lang xide/rpc/Service xide/rpc/JsonRPC dojo/has dojo/Deferred xide/utils xide/types xide/mixins/EventedMixin xide/encoding/SHA1".split(" "),function(f,n,l,m,g,c,b,d,a,e,r){return f("xide.manager.RPCService",[m,e],{extraArgs:null,signatureField:"sig",signatureToken:null,correctTarget:!0,sync:!1,defaultOptions:{omit:!0,checkMessages:!0,
checkErrors:!0},onError:function(b){if(b)if(1===b.code){if(b.message&&_.isArray(b.message)){this.publish(a.EVENTS.ERROR,{message:b.message.join("\x3cbr/\x3e")});return}}else 0===b.code&&this.publish(a.EVENTS.STATUS,"Ok");this.publish(a.EVENTS.ERROR,{error:b},this)},prepareCall:function(){var a={};this.config&&this.config.RPC_PARAMS&&(this.extraArgs=a=d.mixin(a,this.config.RPC_PARAMS.rpcFixedParams),this.config.RPC_PARAMS.rpcUserField&&(a[this.config.RPC_PARAMS.rpcUserField]=this.config.RPC_PARAMS.rpcUserValue,
this.signatureField=this.config.RPC_PARAMS.rpcSignatureField,this.signatureToken=this.config.RPC_PARAMS.rpcSignatureToken))},runDeferred:function(c,d,e,h){var g=new b;h=h||this.defaultOptions;if(!this.checkCall(c,d,h.omit))return g.reject("method doesnt exists: "+d+" for service class:"+this.serviceClass+" in "+this.declaredClass);this.prepareCall();var f=this;this[this.getServiceClass(c)][d](e).then(function(b){if(h.checkMessages&&b&&b.error&&3==b.error.code)f.onMessages(b.error);h.checkErrors&&
b&&b.error&&b.error&&0!=b.error.code?(f.onError(b.error),g.reject(b.error)):(h.omit&&f.publish(a.EVENTS.STATUS,{message:"Ok!",what:arguments},this),g.resolve(b))},function(a){f.onError(a)});return g},getParameterMap:function(a,b){return(a=this._smd.services[a+"."+b])&&a.parameters?a.parameters:[]},_getRequest:function(a,b){var c=this._smd,d=m.envelopeRegistry.match(a.envelope||c.envelope||"NONE"),e=(a.parameters||a.params||[]).concat(c.parameters||[]);if(d.namedParams){if(1==b.length&&l.isObject(b[0]))b=
b[0];else{for(var g={},f=a.parameters||a.params,k=0;k<f.length;k++)"undefined"==typeof b[k]&&f[k].optional||(g[f[k].name]=b[k]);b=g}if(a.strictParameters||c.strictParameters)for(k in b){g=!1;for(f=0;f<e.length;f++)e[k].name==k&&(g=!0);g||delete b[k]}for(k=0;k<e.length;k++)if(g=e[k],!g.optional&&g.name&&null!=b&&!b[g.name])if(g["default"])b[g.name]=g["default"];else if(!(g.name in b))throw Error("Required parameter "+g.name+" was omitted");}else e&&e[0]&&e[0].name&&1==b.length&&n.isObject(b[0])&&(b=
!1===d.namedParams?m.toOrdered(e,b):b[0]);l.isObject(this._options)&&(b=n.mixin(b,this._options));e=a._schema||a.returns;b=d.serialize.apply(this,[c,a,b]);b._envDef=d;return n.mixin(b,{sync:this.sync,contentType:a.contentType||c.contentType||b.contentType,headers:a.headers||c.headers||b.headers||{},target:b.target||m.getTarget(c,a),transport:a.transport||c.transport||b.transport,envelope:a.envelope||c.envelope||b.envelope,timeout:a.timeout||c.timeout,callbackParamName:a.callbackParamName||c.callbackParamName,
rpcObjectParamName:a.rpcObjectParamName||c.rpcObjectParamName,schema:e,handleAs:b.handleAs||"auto",preventCache:a.preventCache||c.preventCache,frameDoc:this._options.frameDoc||void 0})},_executeMethod:function(a){var b=[],c;if(2==arguments.length&&l.isArray(arguments[1]))b=arguments[1];else for(c=1;c<arguments.length;c++)b.push(arguments[c]);var d=this._getRequest(a,b);this.correctTarget&&(d.target=this._smd.target);b=m.transportRegistry.match(d.transport).fire(d);b.addBoth(function(a){return d._envDef.deserialize.call(this,
a)});return b},getServiceClass:function(a){return a||this.serviceClass},hasMethod:function(a,b){b=b||this.getServiceClass();return this&&b&&null!=this[b]&&null!=this[b][a]},checkCall:function(a,b,c){a=this.getServiceClass(a);if(!this.hasMethod(b,a)&&!0===c){debugger;this.onError({code:1,message:["Sorry, server doesnt know "+b+" in "+a]});return!1}return!0},base64_encode:function(a){var b,c,d,e,g=0,f=0,p="",p=[];if(!a)return a;do b=a.charCodeAt(g++),c=a.charCodeAt(g++),d=a.charCodeAt(g++),e=b<<16|
c<<8|d,b=e>>18&63,c=e>>12&63,d=e>>6&63,e&=63,p[f++]="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\x3d".charAt(b)+"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\x3d".charAt(c)+"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\x3d".charAt(d)+"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\x3d".charAt(e);while(g<a.length);p=p.join("");a=a.length%3;return(a?p.slice(0,a-3):p)+"\x3d\x3d\x3d".slice(a||3)},callMethodEx:function(a,b,
c,d,e,g){if(!this[a]||null==this[a][b])return!0===g&&e&&e({code:1,message:["Sorry, server doesnt know "+b+" in class"+a]}),null;g={};this.config&&this.config.RPC_PARAMS&&(g=l.mixin(g,this.config.RPC_PARAMS.rpcFixedParams),g[this.config.RPC_PARAMS.rpcUserField]=this.config.RPC_PARAMS.rpcUserValue,this.extraArgs=g,this.signatureField=this.config.RPC_PARAMS.rpcSignatureField,this.signatureToken=this.config.RPC_PARAMS.rpcSignatureToken);this[a][b](c).then(function(c){try{d&&d(c)}catch(x){console.error("bad news : callback for method "+
b+" caused a crash in service class "+a)}c&&c.error&&c.error&&0!=c.error.code&&e&&e(c.error)},function(a){e(a)})},callMethod:function(a,b,c,d,e,g){try{var h=this;if(null==this[a][b])return!0===g&&e&&e({code:1,message:["Sorry, server doesnt know "+b+" in "+a]}),null;g={};g=l.mixin(g,this.config.RPC_PARAMS.rpcFixedParams);this[a][b](c).then(function(a){try{d&&d(a)}catch(w){console.error("crashed in "+b),console.dir(w)}a&&a.error&&a.error&&1==a.error.code&&e&&e(a.error)},function(a){h.onError(a)})}catch(x){console.error("crash! "+
x)}}})})},"xide/rpc/Service":function(){define("dojo/_base/kernel dojo/_base/lang dojo/_base/xhr dojo/_base/declare xide/rpc/AdapterRegistry dojo/_base/url xide/utils xide/lodash".split(" "),function(f,n,l,m,g,c,b,d){function a(a,b){var c=a._baseUrl;a.target&&(c=new f._Url(c,a.target)+"");b.target&&(c=new f._Url(c,b.target)+"");return c}function e(a,b){if(f.isArray(b))return b;for(var c=[],d=0;d<a.length;d++)c.push(b[a[d].name]);return c}var r=new g(!0),p=new g(!0),k=1;m=m("xide.rpc.Service",null,
{constructor:function(a,c){function e(a){a._baseUrl=new f._Url(f.isBrowser?location.href:f.config.baseUrl,h||".")+"";g._smd=a;c&&"methods"===c.services&&(a.services=a.methods,delete a.methods,a.transport="POST",c.mixin&&n.mixin(a,c.mixin),c=null);for(var b in g._smd.services){a=b.split(".");for(var d=g,e=0;e<a.length-1;e++)d=d[a[e]]||(d[a[e]]={});d[a[a.length-1]]=g._generateService(b,g._smd.services[b])}}var h,g=this;a&&(d.isString(a)||a instanceof f._Url?(h=a instanceof f._Url?a+"":a,this.__init=
l.getText(h),g=this,this.__init.then(function(a){e(b.fromJson(a))})):e(a));this._options=c?c:{};this._requestId=0},_generateService:function(a,b){if(this[b])throw Error("WARNING: "+a+" already exists for service. Unable to generate function");b.name=a;var c=f.hitch(this,"_executeMethod",b),d=r.match(b.transport||this._smd.transport);d.getExecutor&&(c=d.getExecutor(c,b,this));b=b.returns||(b._schema={});b._service=c;c.servicePath="/"+a+"/";c._schema=b;c.id=k++;return c},_getRequest:function(b,c){var d=
this._smd,g=p.match(b.envelope||d.envelope||"NONE"),h=(b.parameters||[]).concat(d.parameters||[]);if(g.namedParams){if(1==c.length&&f.isObject(c[0]))c=c[0];else{for(var k={},q=0;q<b.parameters.length;q++)"undefined"==typeof c[q]&&b.parameters[q].optional||(k[b.parameters[q].name]=c[q]);c=k}if(b.strictParameters||d.strictParameters)for(q in c){for(var k=!1,m=0;m<h.length;m++)h[m].name==q&&(k=!0);k||delete c[q]}for(q=0;q<h.length;q++)if(k=h[q],!k.optional&&k.name&&!c[k.name])if(k["default"])c[k.name]=
k["default"];else if(!(k.name in c))throw Error("Required parameter "+k.name+" was omitted");}else h&&h[0]&&h[0].name&&1==c.length&&f.isObject(c[0])&&(c=!1===g.namedParams?e(h,c):c[0]);f.isObject(this._options)&&(c=f.mixin(c,this._options));delete c.mixin;h=b._schema||b.returns;c=g.serialize.apply(this,[d,b,c]);c._envDef=g;return f.mixin(c,{sync:!1,contentType:b.contentType||d.contentType||c.contentType,headers:b.headers||d.headers||c.headers||{},target:c.target||a(d,b),transport:b.transport||d.transport||
c.transport,envelope:b.envelope||d.envelope||c.envelope,timeout:b.timeout||d.timeout,callbackParamName:b.callbackParamName||d.callbackParamName,rpcObjectParamName:b.rpcObjectParamName||d.rpcObjectParamName,schema:h,handleAs:c.handleAs||"auto",preventCache:b.preventCache||d.preventCache,frameDoc:this._options.frameDoc||void 0})},_executeMethod:function(a){var b=[],c;for(c=1;c<arguments.length;c++)b.push(arguments[c]);var d=this._getRequest(a,b),b=r.match(d.transport).fire(d);b.addBoth(function(a){return d._envDef.deserialize.call(this,
a)});return b}});m.transportRegistry=r;m.envelopeRegistry=p;m._nextId=k;m.getTarget=a;m.toOrdered=e;m._sync=!1;p.register("URL",function(a){return"URL"==a},{serialize:function(a,b,c){return{data:f.objectToQuery(c),transport:"POST"}},deserialize:function(a){return a},namedParams:!0});p.register("JSON",function(a){return"JSON"==a},{serialize:function(a,b,c){return{data:f.toJson(c),handleAs:"json",contentType:"application/json"}},deserialize:function(a){return a}});p.register("PATH",function(a){return"PATH"==
a},{serialize:function(b,c,d){var e;b=a(b,c);if(f.isArray(d))for(e=0;e<d.length;e++)b+="/"+d[e];else for(e in d)b+="/"+e+"/"+d[e];return{data:"",target:b}},deserialize:function(a){return a}});r.register("POST",function(a){return"POST"==a},{fire:function(a){a.url=a.target;a.postData=a.data;return f.rawXhrPost(a)}});r.register("GET",function(a){return"GET"==a},{fire:function(a){a.url=a.target+(a.data?"?"+(a.rpcObjectParamName?a.rpcObjectParamName+"\x3d":"")+a.data:"");return l.get(a)}});f._contentHandlers&&
(f._contentHandlers.auto=function(a){var b=f._contentHandlers,c=a.getResponseHeader("Content-Type");return c?c.match(/\/.*json/)?b.json(a):c.match(/\/javascript/)?b.javascript(a):c.match(/\/xml/)?b.xml(a):b.text(a):b.text(a)});return m})},"xide/rpc/AdapterRegistry":function(){define(["dojo/_base/kernel","dojo/_base/lang"],function(f,n){f=f.AdapterRegistry=function(f){this.pairs=[];this.returnWrappers=f||!1};n.extend(f,{register:function(f,m,g,c,b){this.pairs[b?"unshift":"push"]([f,m,g,c])},match:function(){for(var f=
0;f<this.pairs.length;f++){var m=this.pairs[f];if(m[1].apply(this,arguments))return m[3]||this.returnWrappers?m[2]:m[2].apply(this,arguments)}throw Error("No match found");},unregister:function(f){for(var m=0;m<this.pairs.length;m++)if(this.pairs[m][0]==f)return this.pairs.splice(m,1),!0;return!1}});return f})},"xide/rpc/JsonRPC":function(){define(["./Service","dojo/errors/RequestError","xide/utils/StringUtils"],function(f,n,l){function m(g){return{serialize:function(c,b,d,a){c={id:this._requestId++,
method:b.name,params:d};g&&(c.jsonrpc=g);return{data:JSON.stringify(c),handleAs:"json",contentType:"application/json",transport:"POST"}},deserialize:function(c){if("Error"==c.name||c instanceof n)c=l.fromJson(c.responseText);if(c.error){var b=Error(c.error.message||c.error);b._rpcErrorObject=c.error;return b}return c.result}}}f.envelopeRegistry.register("JSON-RPC-1.0",function(g){return"JSON-RPC-1.0"==g},l.mixin({namedParams:!1},m()));f.envelopeRegistry.register("JSON-RPC-2.0",function(g){return"JSON-RPC-2.0"==
g},l.mixin({namedParams:!0},m("2.0")))})},"xide/encoding/SHA1":function(){define(["./_base"],function(f){function n(b,c){b[c>>5]|=128<<24-c%32;b[(c+64>>9<<4)+15]=c;c=Array(80);for(var a=1732584193,d=-271733879,g=-1732584194,p=271733878,k=-1009589776,q=0;q<b.length;q+=16){for(var h=a,m=d,l=g,n=p,x=k,w=0;80>w;w++){if(16>w)c[w]=b[q+w];else{var A=c[w-3]^c[w-8]^c[w-14]^c[w-16];c[w]=A<<1|A>>>31}A=f.addWords(f.addWords(a<<5|a>>>27,20>w?d&g|~d&p:40>w?d^g^p:60>w?d&g|d&p|g&p:d^g^p),f.addWords(f.addWords(k,
c[w]),20>w?1518500249:40>w?1859775393:60>w?-1894007588:-899497514));k=p;p=g;g=d<<30|d>>>2;d=a;a=A}a=f.addWords(a,h);d=f.addWords(d,m);g=f.addWords(g,l);p=f.addWords(p,n);k=f.addWords(k,x)}return[a,d,g,p,k]}function l(b){for(var c=[],a=0,e=8*b.length;a<e;a+=8)c[a>>5]|=(b.charCodeAt(a/8)&255)<<24-a%32;return c}function m(b){for(var c=[],a=0,e=4*b.length;a<e;a++)c.push("0123456789abcdef".charAt(b[a>>2]>>8*(3-a%4)+4&15),"0123456789abcdef".charAt(b[a>>2]>>8*(3-a%4)&15));return c.join("")}function g(b){for(var c=
[],a=0,e=32*b.length;a<e;a+=8)c.push(String.fromCharCode(b[a>>5]>>>24-a%32&255));return c.join("")}function c(b){for(var c=[],a=0,e=4*b.length;a<e;a+=3)for(var g=(b[a>>2]>>8*(3-a%4)&255)<<16|(b[a+1>>2]>>8*(3-(a+1)%4)&255)<<8|b[a+2>>2]>>8*(3-(a+2)%4)&255,f=0;4>f;f++)8*a+6*f>32*b.length?c.push("\x3d"):c.push("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(g>>6*(3-f)&63));return c.join("")}f.SHA1=function(b,d){d=d||f.outputTypes.Base64;b=n(l(b),8*b.length);switch(d){case f.outputTypes.Raw:return b;
case f.outputTypes.Hex:return m(b);case f.outputTypes.String:return g(b);default:return c(b)}};f.SHA1._hmac=function(b,d,a){a=a||f.outputTypes.Base64;var e=l(d);16<e.length&&(e=n(e,8*d.length));var r=Array(16);d=Array(16);for(var p=0;16>p;p++)r[p]=e[p]^909522486,d[p]=e[p]^1549556828;b=n(r.concat(l(b)),512+8*b.length);b=n(d.concat(b),672);switch(a){case f.outputTypes.Raw:return b;case f.outputTypes.Hex:return m(b);case f.outputTypes.String:return g(b);default:return c(b)}};return f.SHA1})},"xide/manager/ManagerBase":function(){define("dcl/dcl xide/mixins/EventedMixin xide/model/Base xide/utils dojo/_base/xhr dojo/_base/kernel".split(" "),
function(f,n,l,m,g,c){n=f([l.dcl,n.dcl],{declaredClass:"xide.manager.ManagerBase",ctx:null,init:function(){this.initReload&&this.initReload()},_getText:function(b,c){var a;c=m.mixin({url:b,sync:!0,handleAs:"text",load:function(b){a=b}},c);b=g.get(c);return c.sync?""+a+"":b},getContext:function(){return this.ctx}});f.chainAfter(n,"init");return n})},"xide/data/Reference":function(){define(["dcl/dcl","xide/utils","xide/lodash","xide/mixins/EventedMixin"],function(f,n,l,m){var g={_sources:[],destroyOnRemove:!0,
_store:null,removeSource:function(c){},updateSource:function(c){},onSourceUpdate:function(c){},onSourceRemoved:function(c){},onSourceDelete:function(c){},onItemChanged:function(c){},destroy:function(){var c=this;(!this.item||this.item.removeReference)&&this.item&&this.item.removeReference(this);this.inherited&&this.inherited(arguments);this._sources&&(this._sources.forEach(function(b){b.item&&b.item.removeReference&&b.item.removeReference(c)}),this._sources=null)},hasSource:function(c){return l.find(this._sources,
{item:c})},addSource:function(c,b){this.hasSource(c)||(this._sources.push({item:c,settings:b}),b&&b.onDelete&&this.addHandle("delete",c._store.on("delete",function(b){b.target==c&&this._store.removeSync(this[this._store.idProperty])}.bind(this))))},updateSources:function(c){this._sources.forEach(function(b){var d=b.item;b=b.settings;c.property&&b.properties&&b.properties[c.property]&&(d._store.silent(!0),d.set(c.property,c.value),d._store.silent(!1),d._store.emit("update",{target:d}))})},constructor:function(c){this._sources=
[];n.mixin(this,c)}};f=f([m.dcl],g);f.Implementation=g;return f})},"xcf/manager/DeviceManager":function(){define("dcl/dcl xdojo/declare dojo/_base/lang xide/encoding/MD5 xide/types xide/utils xide/factory xcf/manager/BeanManager xide/mixins/ReloadMixin xide/mixins/EventedMixin ./DeviceManager_Server ./DeviceManager_DeviceServer xide/data/Memory xide/data/TreeMemory dojo/has xide/data/ObservableStore dstore/Trackable xcf/model/Device dojo/Deferred xide/manager/ServerActionBase xide/data/Reference xide/utils/StringUtils xcf/mixins/LogMixin xdojo/has!xcf-ui?./DeviceManager_UI xdojo/has!xexpression?xexpression/Expression dojo/promise/all xide/console xide/lodash".split(" "),
function(f,n,l,m,g,c,b,d,a,e,r,p,k,q,h,u,v,t,x,w,A,B,y,H,I,F,z,C,G,E){b=[w,d,r,p,a.dcl,y];var K=h("xcf-ui"),D=g.DEVICE_PROPERTY;h("runDrivers");var J=g.EVENTS;h("xcf-ui")&&b.push(H);return f(b,{declaredClass:"xcf.manager.DeviceManager",beanNamespace:"device",beanName:"Device",beanUrlPattern:"{id}",breanScheme:"device://",beanPriority:1,beanIconClass:"fa-sliders",groupType:g.ITEM_TYPE.DEVICE_GROUP,itemType:g.ITEM_TYPE.DEVICE,itemMetaTitleField:D.CF_DEVICE_TITLE,systemScope:"system_devices",userScope:"user_devices",
appScope:"app_devices",defaultScope:"system_devices",serviceClass:"XCF_Device_Service",rawData:null,store:null,treeView:null,deviceServerClient:null,deviceInstances:null,driverScopes:null,autoConnectDevices:!0,consoles:null,lastUpTime:null,reconnectDevice:15E3,reconnectDeviceServer:5E3,onRunClassEvent:function(a){var b=a.args.id||a.id;if(this.running&&this.running[b]){var c=this.running[b].delegate;if(c){a.error&&c.onError&&(c.onError(a.error),delete this.running[b]);a.finish&&c.onFinish&&(c.onFinish(a.finish),
delete this.running[b]);if(a.progress&&c.onProgress)c.onProgress(a.progress);if(a.interrupt&&c.onInterrupt)c.onInterrupt(a.interrupt)}}},getInstanceByName:function(a){var b=this.deviceInstances,c;for(c in b){var d=b[c].device;if(d&&this.getMetaValue(d,D.CF_DEVICE_TITLE)===a)return b[c]}},getFile:function(a){var b=new x,c=this.ctx;C.isString(a)&&(a=this.getItemByPath(a+".meta.json")||this.getItemByPath(a)||a);var d=c.getFileManager().getStore(a.scope);if(c=d._getItem(a.path))return b.resolve(c),b;
d.initRoot().then(function(){d._loadPath(".",!0).then(function(){d.getItem(a.path,!0).then(function(a){b.resolve(a)})})});return b},getSourceHash:function(){return this.ctx.getUserDirectory()||"no_user_directory"},checkDeviceServerConnection:function(){if(!this.ctx.getNodeServiceManager)return!0;var a=this.getContext(),a=h("xnode")&&a.getNodeServiceManager?this.ctx.getNodeServiceManager():null;if(!this.deviceServerClient&&a){a=a.getStore();if(!a)return!1;this.createDeviceServerClient(a)}else return!1;
return!0},addDriverFunctions:function(a,b){for(var c in b)"constructor"!==c&&"inherited"!==c&&"getInherited"!==c&&"isInstanceOf"!==c&&"__inherited"!==c&&"onModuleReloaded"!==c&&"start"!==c&&"publish"!==c&&"subscribe"!==c&&"getInherited"!==c&&"getInherited"!==c&&C.isFunction(b[c])&&!a[c]&&(a[c]=b[c])},addLoggingFunctions:function(a,b){var c=this;b.log=function(a,d,e,h){h=h||{};var f=l.clone(h);h.type=h.type||d||"Driver";b.options&&(h.device=b.options);c.publish(g.EVENTS.ON_SERVER_LOG_MESSAGE,{data:h,
level:a||"info",message:e,details:f})}},completeDriverInstance:function(a,b,c){var d=this,e=b.blockScope.blockStore,h=c.path,f=h+"_commands",k=h+"_variables";e.on("delete",function(a){var b=-1!==a.target.declaredClass.indexOf("Variable")?k:f,d=c._store.getSync(b);d&&d.refresh();(a=c._store.getSync(b+"_reference_"+a.target.id))&&a.refresh()});e.on("added",function(b){var d=b.name,e=b.icon||"fa-exclamation",h=-1!==b.declaredClass.indexOf("Variable"),p=h?k:f;-1!=b.declaredClass.indexOf(h?"Variable":
"Command")&&(d=new A({enabled:!0,path:p+"_reference_"+b.id,name:d,id:b.id,parentId:p,_mayHaveChildren:!1,virtual:!0,tooltip:!0,icon:e,ref:{driver:a,item:b,device:c},type:g.ITEM_TYPE.BLOCK}),d=c._store.putSync(d),b.addReference(d,{properties:{name:!0,enabled:!0,value:!0},onDelete:!0},!0),d.refresh())});b.setVariable=function(b,c,e,h,f){if(b=this.blockScope.getVariable(b))b.value=c,!1===f&&(b.__ignoreChangeMark=!0),b.set("value",c,e,h,f),!1===f&&(b.__ignoreChangeMark=!1),d.publish(g.EVENTS.ON_DRIVER_VARIABLE_CHANGED,
{item:b,scope:this.blockScope,driver:a,owner:d,save:!0===e,publish:h})};b.getVariable=function(a){return(a=this.blockScope.getVariable(a))?a._getArg(a.value,!1):""};b.log=function(a,c,e,h){h=h||{};var f=l.clone(h);h.type=h.type||c||"Driver";b.options&&(h.device=b.options);d.publish(g.EVENTS.ON_SERVER_LOG_MESSAGE,{data:h,level:a||"info",message:e,details:f})};for(var p in a)"constructor"!==p&&"inherited"!==p&&"getInherited"!==p&&"isInstanceOf"!==p&&"__inherited"!==p&&"onModuleReloaded"!==p&&"start"!==
p&&"publish"!==p&&"subscribe"!==p&&"getInherited"!==p&&"getInherited"!==p&&l.isFunction(a[p])&&!b[p]&&(b[p]=a[p])},getDevice:function(a){var b=a;if(C.isString(a)){var c=this.getItemById(a);c?b=c:(a=this.getItemByPath(a))&&(b=a)}return b},stopDevice:function(a){var b=this.getDevice(a)||a;if(b){if(this.checkDeviceServerConnection(),b._userStopped=!0,(a=this.toDeviceControlInfo(b))&&(a.serverSide||b.isServer())){var c=a.hash;this.deviceInstances[c]&&(this._removeInstance(this.deviceInstances[c],c,b),
delete this.deviceInstances[c],this.sendManagerCommand(g.SOCKET_SERVER_COMMANDS.MANAGER_STOP_DRIVER,a))}}else z.error("cant find device "+a)},getStore:function(a){a=a||"system_devices";var b=this.stores[a];if(b)return b;if(a)return this.ls(a)},getDevices:function(a,b){var d=this.getStore();if(!d)return[];d=c.queryStore(d,{isDir:!1});d._S&&(d=[d]);for(var e=[],g=0;g<d.length;g++){var h=d[g],f=this.getMetaValue(h,D.CF_DEVICE_ENABLED);if(!0===a&&!0===f||null===f||!1===a)if(e.push(h),!0===b&&(f=this.getMetaValue(h,
D.CF_DEVICE_DRIVER)))if(f=this.ctx.getDriverManager().getItemById(f))h.driver=f}return e},getStores:function(){var a=[],b;for(b in this.stores){var c=this.stores[b];c&&a.push(c)}return a},getStorePath:function(a){var b=this.getContext().getResourceManager();if("user_devices"===a)return b.getVariable("USER_DIRECTORY")},connectToAllDevices:function(){function a(a){if(!a)z.error("have no device store");else if(!a.connected){a.connected=!0;a=c.queryStore(a,{isDir:!1});a._S&&(a=[a]);C.isArray(a)||(a=[a]);
for(var b=0;b<a.length;b++){var g=a[b],h=d.getMetaValue(g,D.CF_DEVICE_ENABLED);if(1==h||null==h)g=d.startDevice(g),e.push(g)}}}if(this.deviceServerClient){var b=this.getStores(),d=this;if(this.getStores().length){var e=[];this.deviceServerClient.dfd?this.deviceServerClient.dfd.then(function(){C.each(b,a,this)}.bind(this)):C.each(b,a,this);return e}}else this.checkDeviceServerConnection()},updateDevice:function(a,b){b&&(b.setMetaValue(g.DEVICE_PROPERTY.CF_DEVICE_DRIVER_OPTIONS,a.driverOptions),b.setMetaValue(g.DEVICE_PROPERTY.CF_DEVICE_OPTIONS,
a.options),b.setMetaValue(g.DEVICE_PROPERTY.CF_DEVICE_ENABLED,a.enabled))},debug:function(){z.info("Debug info stores : ");C.each(this.stores,function(a){z.log("have store "+a.scope)})},_getLogText:function(a){return moment().format("HH:mm:ss:SSS")+" :: "+a+""},_parse:function(a,b){var c=""+b;0<c.indexOf("{{")||0<c.indexOf("}}")?(z.time("parse expression"),c=(new I).parse(g.EXPRESSION_PARSER.FILTREX,c,this,{variables:a.getVariablesAsObject(),delimiters:{begin:"{{",end:"}}"}}),z.timeEnd("parse expression")):
(a=a.parseExpression(b))&&(c=a);return c},runCommand:function(a,b){},_lastActions:null,onStoreReloaded:function(a){this.completeDeviceStore()},getInstance:function(a){if(a=a?a._store?this.toDeviceControlInfo(a):a:null)return this.getDriverInstance(a,!1)},getDriverInstance:function(a,b){if(!a)return z.error("getDriverInstance::have no device info"),null;for(var d in this.deviceInstances){var e=this.deviceInstances[d],f=e.options;if(f&&f.port===a.port&&f.host===a.host&&f.protocol===a.protocol&&f.isServer===
a.isServer)return b&&e.sendSettings&&h("xcf-ui")&&(b=!1),!1!==b&&e&&!e.sendSettings&&(a=this.ctx.getDriverManager().getItemById(a.driverId))&&(a=a.user,(b=c.getCIByChainAndName(a,0,g.DRIVER_PROPERTY.CF_DRIVER_COMMANDS))&&b.params&&(e.sendSettings=c.getJson(b.params)),(a=c.getCIByChainAndName(a,0,g.DRIVER_PROPERTY.CF_DRIVER_RESPONSES))&&a.params&&(e.responseSettings=c.getJson(a.params))),e}return null},_reconnectServerTimer:null,onDeviceServerConnectionLost:function(){if(!this.deviceServerClient||
!this.deviceServerClient.pageUnloaded)if(this.deviceServerClient&&(this.deviceServerClient.destroy(),this.deviceServerClient=null),!this._reconnectServerTimer){var a=this;K&&a.ctx.getNotificationManager().postMessage({message:"Lost connection to device server, try reconnecting in 5 seconds",type:"error",showCloseButton:!0,duration:1E3});this._reconnectServerTimer=setTimeout(function(){a.checkDeviceServerConnection();a._reconnectServerTimer=null},this.reconnectDeviceServer);z.log("lost device server connection");
C.each(this.deviceInstances,function(a){if(a&&a.device&&!a.domNode){a=a.device;var b=a.driverInstance;b&&b.onLostServer&&b.onLostServer();a.setState(g.DEVICE_STATE.LOST_DEVICE_SERVER)}})}},onMQTTMessage:function(a){var b=c.getJson(a.message),d=!1;if(b){var e=b.sourceHost,f=b.sourcePort,k=a.host,p=a.port;e&&f&&e===k&&f==p&&(d=!0)}if(!d&&(d=a.topic.split("/"),4==d.length&&"Variable"===d[2]&&b.device))if(this.getDeviceStoreItem(b.device)){if(a=this.toDeviceControlInfo(b.device))if(a=this.getDriverInstance(a))if(a=
a.blockScope.getVariable(d[3]))h("xcf-ui")?(a.set("value",b.value),a.refresh()):(delete a.value,a.value=b.value),this.publish(g.EVENTS.ON_DRIVER_VARIABLE_CHANGED,{item:a,scope:a.scope,owner:this,save:!1,publish:!0,source:"mqtt",publishMQTT:!1})}else z.error("cant find device for : "+a.topic)},getBlock:function(a){for(var b in this.deviceInstances){var c=this.deviceInstances[b];if(c&&c.device&&(c=c.blockScope)&&(c=c.resolveBlock(a)))return c}return this.ctx.getDriverManager().getBlock(a)},onNodeServiceStoreReady:function(a){if(this.deviceServerClient)return this.deviceServerClient;
this.createDeviceServerClient(a.store)},onDriverUpdated:function(a,b){},onModuleReloaded:function(a){if(0!=this.deviceInstances.length){var b=c.replaceAll("//","/",a.module);a=a.newModule;for(var d in this.deviceInstances){var e=this.deviceInstances[d];if(e.modulePath===b||e.baseClass===b)this.mergeFunctions(e,a.prototype),e.blockScope&&(e.blockScope.expressionModel.expressionCache={}),this.onDriverUpdated(e,b)}}},_removeInstance:function(a,b,c){a.destroy&&a.destroy();a.blockScope&&a.blockScope._destroy();
delete this.deviceInstances[b];this.ctx.getBlockManager().removeScope(a.options.id);this.ctx.getDriverManager().removeDriverInstance(a,c);c.reset()},removeDriverInstance:function(a){if(a=this.getDriverInstance(a))this.ctx.getBlockManager().removeScope(a.options.id),a.blockScope&&a.blockScope.destroy(),a.destroy();for(var b in this.deviceInstances)a==this.deviceInstances[b]&&delete this.deviceInstances[b]},getMetaValue:function(a,b){return(a=a.user)?c.getCIInputValueByName(a,b):null},getDeviceByHost:function(a,
b){for(var d=c.queryStore(this.getStore(),{isDir:!1}),e=0;e<d.length;e++){var g=d[e],h=this.getMetaValue(g,D.CF_DEVICE_HOST),f=this.getMetaValue(g,D.CF_DEVICE_PORT);if(h==a&&f==b)return g}return null},getDeviceByUrl:function(a){a=c.parse_url(a);a=c.urlArgs(a.host);return this.getDeviceById(a.device.value)},getDeviceById:function(a,b){function d(b){b=c.queryStore(b,{isDir:!1});b._S&&(b=[b]);for(var d=0;d<b.length;d++){var g=b[d];if(e.getMetaValue(g,D.CF_DEVICE_ID)==a)return g}return null}var e=this;
if(b=C.isString(b)?this.getStore(b):null)return d(b);for(var g in this.stores)if(b=d(this.stores[g]))return b;return null},getDeviceByName:function(a,b){function d(b){b=c.queryStore(b,{isDir:!1});b._S&&(b=[b]);for(var d=0;d<b.length;d++){var g=b[d];if(e.getMetaValue(g,D.CF_DEVICE_TITLE)==a)return g}return null}var e=this;if(b=C.isString(b)?this.getStore(b):null)return d(b);for(var g in this.stores)if(b=d(this.stores[g]))return b;return null},getDevicesByDriverId:function(a){var b=c.queryStore(this.getStore(),
{isDir:!1});b._S&&(b=[b]);for(var d=0;d<b.length;d++){var e=b[d];if(this.getMetaValue(e,D.CF_DEVICE_ID)==a)return e}return null},_cachedItems:null,getDeviceStoreItem:function(a){if(a){if(a.hash&&this._cachedItems){var b=this._cachedItems[a.hash];if(b)return b}if(b=this.getStore(a.deviceScope)){var d=a.devicePath?this.getItemByPath(a.devicePath):null;if(d)return d;var e=C.filter(b.data,function(a){return!0!==a.isDir});if(!e)return null;e&&!C.isArray(e)&&(e=[e]);for(var g=0;g<e.length;g++){var d=e[g],
h=d.user,f=c.getCIInputValueByName(h,D.CF_DEVICE_HOST),k=c.getCIInputValueByName(h,D.CF_DEVICE_PORT),p=c.getCIInputValueByName(h,D.CF_DEVICE_ID),h=c.getCIInputValueByName(h,D.CF_DEVICE_PROTOCOL);if(k===a.port&&f===a.host&&h===a.protocol&&d.isServer()===a.isServer&&p===a.id)return(b=b.getSync(d.path))&&(d=b),a.hash&&(this._cachedItems||(this._cachedItems={}),this._cachedItems[a.hash]=d),d}}}},onDriverSettingsChanged:function(a,b){for(var d in this.deviceInstances){var e=this.deviceInstances[d];if(e&&
e.driver==b){b=b.user;(d=c.getCIByChainAndName(b,0,g.DRIVER_PROPERTY.CF_DRIVER_COMMANDS))&&d.params&&d==a&&(e.sendSettings=c.getJson(d.params));(a=c.getCIByChainAndName(b,0,g.DRIVER_PROPERTY.CF_DRIVER_RESPONSES))&&a.params&&(e.responseSettings=c.getJson(a.params));break}}},onDeviceStateChanged:function(a,b){!0!==a._userStopped&&!0!==b&&a.info&&a.state&&a.state==g.DEVICE_STATE.DISCONNECTED&&this.ctx.getNotificationManager().postMessage({message:"Lost connection to "+a.info.host+", ...reconnecting",
type:"error",showCloseButton:!1,duration:1500});!0!==b&&a.info&&a.state&&a.state==g.DEVICE_STATE.CONNECTED&&this.ctx.getNotificationManager().postMessage({message:"Connected to "+a.info.host+"",type:"success",showCloseButton:!1,duration:2E3})},connectDevice:function(a){this.checkDeviceServerConnection();var b=this.toDeviceControlInfo(a);if(b){var c=b.hash;if(this.deviceInstances[c])return a.setState(g.DEVICE_STATE.CONNECTED),this.deviceInstances[c];a.setState(g.DEVICE_STATE.CONNECTING);this.publish(g.EVENTS.ON_STATUS_MESSAGE,
{text:"Trying to connect to "+b.toString(),type:"info"});this.sendManagerCommand(g.SOCKET_SERVER_COMMANDS.MANAGER_START_DRIVER,b)}else z.error("couldnt start device, invalid control info")},onAppReady:function(a){a=a.context;a.deviceManager=this;a.driverManager=this;a.blockManager&&c.mixin(a.blockManager.scopes,this.ctx.getBlockManager().scopes)},onHaveNoDeviceServer:function(){if(this.ctx.getNotificationManager())var a=this,b=this.ctx.getNotificationManager().postMessage({message:"Have no device server connection",
type:"error",showCloseButton:!0,duration:1500,actions:{reconnect:{label:"Reconnect",action:function(){a.checkDeviceServerConnection();return b.update({message:"Reconnecting...",type:"success",actions:!1,duration:1500})}}}})},setDriverScriptContent:function(a,b,c,d,e){return this.callMethodEx(null,"setDriverContent",[a,b,c],d,!0)},getDriverScriptContent:function(a,b,c){return this.callMethodEx(null,"getDriverContent",[a,b],c,!0)},createStore:function(a,b,d){var e=this;a=new (h("xcf-ui")?n("deviceStore",
[q,v,u],{}):n("deviceStore",[k],{}))({data:a.items,idProperty:"path",parentProperty:"parentId",Model:t,id:c.createUUID(),scope:b,ctx:this.getContext(),mayHaveChildren:function(a){if(!1===a._mayHaveChildren)return!1;if(a.isDevice){if(a.driverInstance)return!0;var b=e.toDeviceControlInfo(a);b?(b=e.getContext().getDriverManager().getDriverById(b.driverId))&&!b.blockScope&&(this.ctx.getDriverManager().createDriverBlockScope(b),e.completeDevice(a,b)):z.error("cant get device info for ",a)}return!0},observedProperties:["name",
"state","iconClass","enabled"]});b&&!1!==d&&this.setStore(b,a);return a},initStore:function(a,b,c){return this.createStore(a,b,c)},_deviceInfoCache:null,toDeviceControlInfo:function(a){if(!a)return null;h("xcf-ui");if(!a._store&&a.id){var b=this.getItemById(a.id);b&&(a=b)}if(!a||!a.path)if(b=this.getDeviceStoreItem(a),!b)return null;var d=a.user,b=c.getCIInputValueByName(d,D.CF_DEVICE_HOST),e=c.getCIInputValueByName(d,D.CF_DEVICE_PORT),f=c.getCIInputValueByName(d,D.CF_DEVICE_ENABLED),k=c.getCIInputValueByName(d,
D.CF_DEVICE_TITLE),p=c.getCIInputValueByName(d,D.CF_DEVICE_PROTOCOL),q=c.getCIInputValueByName(d,D.CF_DEVICE_DRIVER),l=c.getCIInputValueByName(d,D.CF_DEVICE_OPTIONS),r=c.getCIInputValueByName(d,D.CF_DEVICE_LOGGING_FLAGS),d=c.getCIInputValueByName(d,D.CF_DEVICE_DRIVER_OPTIONS),u=a.isServerSide(),n=a.isServer(),t=null;this.fixDeviceCI(a);var v=this.ctx.getDriverManager().getDriverById(q);if(v){var x=v.user,t=c.getCIInputValueByName(x,g.DRIVER_PROPERTY.CF_DRIVER_CLASS),x=c.getCIByChainAndName(x,0,g.DRIVER_PROPERTY.CF_DRIVER_RESPONSES),
w={},v=v.scope;x&&x.params&&(w=c.getJson(x.params));t={host:b,port:e,protocol:p,driver:t?t.replace("./",""):"",driverId:q,driverScope:v,id:a.id,devicePath:a.path,deviceScope:a.getScope(),title:k,options:l,enabled:f,driverOptions:d,serverSide:u,isServer:n,responseSettings:w,source:K?"ide":"server",user_devices:this.ctx.getMount(a.getScope()),system_devices:this.ctx.getMount("system_devices"),system_drivers:this.ctx.getMount("system_drivers"),user_drivers:this.ctx.getMount("user_drivers"),loggingFlags:r,
toString:function(){return a.getScope()+"://"+this.host+":"+this.port+"@"+this.protocol}};t.hash=m(JSON.stringify({host:b,port:e,protocol:p,driverId:q,driverScope:v,id:a.id,devicePath:a.path,deviceScope:a.getScope(),source:K?"ide":"server",user_devices:this.ctx.getMount(a.getScope()),system_devices:this.ctx.getMount("system_devices"),system_drivers:this.ctx.getMount("system_drivers"),user_drivers:this.ctx.getMount("user_drivers")}),1);if(b=this.ctx.getUserDirectory())t.userDirectory=b}a.info=t;h("xcf-ui");
return t},getItemById:function(a){for(var b in this.stores){var c=this.stores[b];var d=C.find(c.data,{id:a}),c=d?c.getSync(d.path):null;if(c)return c}},onStoreCreated:function(a){var b=this,d=b.ctx,e=a.type,h=a.store,f=h?c.queryStore(h,{isDir:!1}):[],k=this.ctx.getDriverManager();f&&!C.isArray(f)&&(f=[f]);if(e===g.ITEM_TYPE.DEVICE){for(var e={},p=0;p<f.length;e={item:e.item},p++)if(e.item=h.getSync(f[p].path),!e.item)z.error("cant find "+f[p].path);else if(!e.item._completed){e.item._completed=!0;
e.item.isDevice=!0;var q=this.getMetaValue(e.item,g.DEVICE_PROPERTY.CF_DEVICE_DRIVER);q?(q=k.getItemById(q),C.each(e.item.user.inputs,function(a){return function(b){b.device=a.item;b.actionTarget=K?d.mainView.getToolbar():null;b.ctx=d}}(e)),!C.isEmpty(q)&&K&&(this.completeDevice(e.item,q),e.item.iconClass=e.item.getStateIcon())):z.error("device has no driver id!")}F(this.connectToAllDevices()).then(function(){b.publish("DevicesConnected",a)})}},onClientMessage:function(a){this.checkDeviceServerConnection();
this.deviceServerClient&&this.sendManagerCommand(g.SOCKET_SERVER_COMMANDS.WRITE_LOG_MESSAGE,a)},onClientLogMessage:function(a){},onVariableChanged:function(a){var b=a.item,c=a.scope,d=b.name,e=!1!==a.publish;"value"!==d&&!1!==e&&b&&(b=b.value,(c=c.device)&&c.info&&(c=c.info,d=c.host+"/"+c.port+"/Variable/"+d,!1!==a.publishMQTT&&this.sendManagerCommand(g.SOCKET_SERVER_COMMANDS.MQTT_PUBLISH,{topic:d,data:{value:b,device:c}})))},init:function(){var a=this;this.initUI&&this.initUI();this.stores={};this._deviceInfoCache=
{};this.subscribe(g.EVENTS.ON_DRIVER_VARIABLE_CHANGED,this.onVariableChanged);this.subscribe(g.EVENTS.ON_DEVICE_SERVER_CONNECTED,function(){a.autoConnectDevices&&F(a.connectToAllDevices()).then(function(){a.publish("DevicesConnected")})});this.subscribe([J.ON_NODE_SERVICE_STORE_READY,J.ON_MODULE_RELOADED,J.ON_DEVICE_DISCONNECTED,J.ON_DEVICE_CONNECTED,J.ON_CLIENT_LOG_MESSAGE,J.ON_STORE_CREATED]);this.deviceInstances=this.consoles={};this.driverScopes={system_drivers:"system_drivers/",user_drivers:"user_drivers/"};
this.lastUpTime=(new Date).getTime();setInterval(function(){var b=(new Date).getTime();3E4<b-a.lastUpTime&&(a.lastUpTime=(new Date).getTime());a.lastUpTime=b},1E3);this.initReload()},onDeviceServerConnected:function(){var a=this;this.deviceInstances&&C.each(this.deviceInstances,function(b){b&&b.device&&!b.domNode&&a.startDevice(b.device)})},addDeviceInstance:function(a,b){},ls:function(a,b){function c(c){try{var e=this.createStore(c,a,b);this.onStoreReady(e);!1!==b&&this.publish(g.EVENTS.ON_STORE_CREATED,
{data:c,owner:this,store:e,type:this.itemType});d.resolve(e)}catch(P){logError(P,"error ls drivers")}}var d=new x;if(this.prefetch&&this.prefetch[a])return c.apply(this,[this.prefetch[a]]),delete this.prefetch[a],d;h("php")?this.runDeferred(null,"ls",[a]).then(c.bind(this)):d.resolve({items:[]});return d},hasStore:function(a){return this.stores[a]},fixDeviceCI:function(a){var b=g.DEVICE_PROPERTY,d=a.user,e=c.getCIByChainAndName(d,0,b.CF_DEVICE_DRIVER_OPTIONS);e?(e.data=[{value:2,label:"Runs Server Side"},
{value:4,label:"Show Debug Messages"},{value:16,label:"Make Server"}],e.group="Common"):d.inputs.push({chainType:0,"class":"cmx.types.ConfigurableInformation",dataRef:"",dataSource:"",description:null,enabled:!0,enumType:"-1",flags:-1,group:"Common",id:b.CF_DEVICE_DRIVER_OPTIONS,name:b.CF_DEVICE_DRIVER_OPTIONS,order:1,params:null,platform:null,title:"Driver Options",type:5,uid:"-1",value:0,data:[{value:2,label:"Runs Server Side"},{value:4,label:"Show Debug Messages"},{value:16,label:"Make Server"}],
visible:!0,device:a});(e=c.getCIByChainAndName(d,0,b.CF_DEVICE_LOGGING_FLAGS))?e.group="Logging":d.inputs.push({chainType:0,"class":"cmx.types.ConfigurableInformation",dataRef:"",dataSource:"",description:null,enabled:!0,enumType:"-1",flags:-1,group:"Logging",id:b.CF_DEVICE_LOGGING_FLAGS,name:b.CF_DEVICE_LOGGING_FLAGS,order:1,params:null,platform:null,title:"Logging Flags",type:b.CF_DEVICE_LOGGING_FLAGS,uid:"-1",value:0,data:[{value:2,label:"On Connected"},{value:4,label:"On Disconnected"},{value:8,
label:"On Error"},{value:16,label:"Commands"},{value:32,label:"Responses"}],visible:!0,device:a});if(b=c.getCIByChainAndName(d,0,b.CF_DEVICE_PROTOCOL))b.type=3,b.options=[{label:"TCP",value:"tcp"},{label:"UDP",value:"udp"},{label:"Driver",value:"driver"},{label:"SSH",value:"ssh"},{label:"Serial",value:"serial"},{label:"MQTT",value:"mqtt"}];a.id||(a.id=c.getCIInputValueByName(d,g.DEVICE_PROPERTY.CF_DEVICE_ID));(b=c.getCIByChainAndName(d,0,g.DEVICE_PROPERTY.CF_DEVICE_OPTIONS))?b.device=a:d.inputs.push({chainType:0,
"class":"cmx.types.ConfigurableInformation",dataRef:"",dataSource:"",description:null,enabled:!0,enumType:"-1",flags:-1,group:"Network",id:"options",name:"options",order:1,params:null,platform:null,title:"Options",type:28,uid:"-1",value:{},visible:!0,device:a})}})})},"xcf/manager/DeviceManager_Server":function(){define(["dcl/dcl"],function(f){return f(null,{})})},"xcf/manager/DeviceManager_DeviceServer":function(){define("dcl/dcl xide/encoding/MD5 xide/types xide/utils xide/factory xdojo/has dojo/Deferred xide/mixins/ReloadMixin xide/mixins/EventedMixin require xide/lodash xcf/model/Variable xide/utils/HexUtils xdojo/has!host-node?nxapp/utils/_console".split(" "),
function(f,n,l,m,g,c,b,d,a,e,r,p,k,q){var h="undefined"!==typeof window?window.console:"undefined"!==typeof global?global.console:q;q&&(h=q);var u=c("xcf-ui"),v=!1;k=f(null,{declaredClass:"xcf.manager.DeviceManager_DeviceServer",running:null,onDeviceStarted:function(a,b,c){if(a&&b&&c){var d=this.toDeviceControlInfo(b),e=d.serverSide,g=d.isServer,h=a.blockScope;(e||g||!e&&!g)&&h.start();a.__didStartBlocks=!0;this.publish(l.EVENTS.ON_DEVICE_DRIVER_INSTANCE_READY,{device:b,instance:a,driver:c,blockScope:h});
this.publish(l.EVENTS.ON_DEVICE_CONNECTED,{device:d,instance:a,driver:c,blockScope:h});this.ctx.getDriverManager().addDeviceInstance(b,c)}},runClass:function(a,b,c){this.checkDeviceServerConnection();if(this.deviceServerClient){var d=m.createUUID();b.id=d;var e={"class":a,args:b,manager_command:l.SOCKET_SERVER_COMMANDS.RUN_CLASS};!this.running&&(this.running={});this.running[d]={"class":a,args:b,delegate:c};this.deviceServerClient.emit(null,e,l.SOCKET_SERVER_COMMANDS.RUN_CLASS)}else this.onHaveNoDeviceServer()},
runAppServerClass:function(a,b,c){this.checkDeviceServerConnection();if(this.deviceServerClient){var d=m.createUUID();b.id=d;var e={"class":a,args:b,manager_command:l.SOCKET_SERVER_COMMANDS.RUN_APP_SERVER_CLASS};!this.running&&(this.running={});this.running[d]={"class":a,args:b,delegate:c};this.deviceServerClient.emit(null,e,l.SOCKET_SERVER_COMMANDS.RUN_APP_SERVER_CLASS)}else this.onHaveNoDeviceServer()},runAppServerClassMethod:function(a,b,c,d){this.checkDeviceServerConnection();if(this.deviceServerClient){b=
m.createUUID();c.id=b;var e={"class":a,method:_method,args:c,manager_command:l.SOCKET_SERVER_COMMANDS.RUN_APP_SERVER_CLASS_METHOD};!this.running&&(this.running={});this.running[b]={"class":a,args:c,delegate:d,method:_method};this.deviceServerClient.emit(null,e,l.SOCKET_SERVER_COMMANDS.RUN_APP_SERVER_CLASS_METHOD)}else this.onHaveNoDeviceServer()},runAppServerComponentMethod:function(a,b,c,d,e){this.checkDeviceServerConnection();if(this.deviceServerClient){var g=m.createUUID();c.id=g;d={component:a,
method:b,options:d,args:c,id:g,manager_command:l.SOCKET_SERVER_COMMANDS.RUN_APP_SERVER_COMPONENT_METHOD};!this.running&&(this.running={});this.running[g]={component:a,args:c,delegate:e,method:b};this.deviceServerClient.emit(null,d,l.SOCKET_SERVER_COMMANDS.RUN_APP_SERVER_COMPONENT_METHOD)}else this.onHaveNoDeviceServer()},cancelAppServerComponentMethod:function(a,b){this.checkDeviceServerConnection();if(this.deviceServerClient)a={component:a,id:b,manager_command:l.SOCKET_SERVER_COMMANDS.CANCEL_APP_SERVER_COMPONENT_METHOD},
!this.running&&(this.running={}),this.deviceServerClient.emit(null,a,l.SOCKET_SERVER_COMMANDS.CANCEL_APP_SERVER_COMPONENT_METHOD);else this.onHaveNoDeviceServer()},answerAppServerComponentMethodInterrupt:function(a,b,c){this.checkDeviceServerConnection();if(this.deviceServerClient)a={component:a,id:b,manager_command:l.SOCKET_SERVER_COMMANDS.ANSWER_APP_SERVER_COMPONENT_METHOD_INTERRUPT,answer:c},!this.running&&(this.running={}),this.deviceServerClient.emit(null,a,l.SOCKET_SERVER_COMMANDS.ANSWER_APP_SERVER_COMPONENT_METHOD_INTERRUPT);
else this.onHaveNoDeviceServer()},startDevice:function(a,c){var d=this;if(!a)return h.error("start device invalid item"),null;this.checkDeviceServerConnection();a.check();v=!0;var g=new b;a._startDfd&&!a._startDfd.isResolved()||a.driverInstance||a.reset();!0===c&&a.setMetaValue(l.DEVICE_PROPERTY.CF_DEVICE_ENABLED,!0,!1);a.getMetaValue(l.DEVICE_PROPERTY.CF_DEVICE_ENABLED);var f=this.toDeviceControlInfo(a);if(!f)return h.error("invalid client info, assuming no driver found"),g.reject("invalid client info, assuming no driver found"),
g;if(!f)return h.error("couldnt start device, invalid control info "+f.toString()),g.reject(),g;var k=f.hash;c=a.state===l.DEVICE_STATE.LOST_DEVICE_SERVER;if(this.deviceInstances[k]&&!0!==c)return v&&h.warn("device already started : "+f.toString()),g.resolve(this.deviceInstances[k]),g;if(c&&this.deviceInstances[k])return d.publish(l.EVENTS.ON_STATUS_MESSAGE,{text:"Trying to re-connect to "+f.toString(),type:"info"}),d.sendManagerCommand(l.SOCKET_SERVER_COMMANDS.CREATE_CONNECTION,f),a.setState(l.DEVICE_STATE.CONNECTING),
g.resolve(this.deviceInstances[k]),g;a.setState(l.DEVICE_STATE.CONNECTING);a._userStopped=null;a._startDfd=g;c=this.driverScopes.system_drivers;var p=c+"DriverBase";try{e([p],function(b){b.prototype.declaredClass=p;d.createDriverInstance(f,b,a).then(function(b){b.id||(b.id=m.createUUID());b||h.warn("buildMQTTParams:have no driver instance");f.mqtt={driverScopeId:b&&b.blockScope?b.blockScope.id:"have no driver instance",driverId:b?b.driver.id:"have no driver id",deviceId:a.path};d.publish(l.EVENTS.ON_STATUS_MESSAGE,
{text:"Trying to connect to "+f.toString(),type:"info"});a._startDfd&&!a._startDfd.isResolved()?d.sendManagerCommand(l.SOCKET_SERVER_COMMANDS.CREATE_CONNECTION,f):d.sendManagerCommand(l.SOCKET_SERVER_COMMANDS.START_DEVICE,f);g.resolve(d.deviceInstances[k]);delete f.mqtt}).then(function(){},function(a){g.resolve(null)})},function(a){h.error(a)})}catch(I){logError(I,"DeviceManager::startDevice: requiring base driver at "+p+" failed! Base Driver - Prefix : "+c)}return g},createDriverInstance:function(c,
g,k){var p=c.hash,q=this.driverScopes[c.driverScope],r=!e.cache,u=e.toUrl(q),u=m.removeURLParameter(u,"bust");r&&(u=u.replace("/.js","/"));var n=decodeURIComponent(u)+c.driver,n=n.replace("","").trim(),t=this,u=t.ctx,r=m.getCIInputValueByName(k.user,l.DEVICE_PROPERTY.CF_DEVICE_DRIVER),u=u.getDriverManager(),v=u.getDriverById(r),x=new b;k.getMetaValue(l.DEVICE_PROPERTY.CF_DEVICE_ENABLED);k.isEnabled();if(!(k.isServerSide()||k.isServer()||c.isServer||c.serverSide))return x.reject("DeviceManager_DeviceServer: wont create driver instance! I am server and device isnt server side : "+
c.title),x;try{u.getDriverModule(v).then(function(b){var e=new (f([g,a.dcl,d.dcl,b],{}));e.declaredClass=n;e.options=c;e.baseClass=g.prototype.declaredClass;e.modulePath=m.replaceAll("//","/",q+c.driver).replace(".js","");e.delegate=t;e.driver=v;e.serverSide=c.serverSide;e.utils=m;e.types=l;e.device=k;e.Module=b;e.id=m.createUUID();e.getDevice=function(){return this.device};e.getDeviceInfo=function(){return this.getDevice().info};b=v.user;var r=m.getCIByChainAndName(b,0,l.DRIVER_PROPERTY.CF_DRIVER_COMMANDS);
r&&r.params&&(e.sendSettings=m.getJson(r.params));(b=m.getCIByChainAndName(b,0,l.DRIVER_PROPERTY.CF_DRIVER_RESPONSES))&&b.params&&(e.responseSettings=m.getJson(b.params));try{e.start(),e.initReload()}catch(D){h.error("crash in driver instance startup! "+k.toString()),logError(D,"crash in driver instance startup!")}t.deviceInstances[p]=e;v.blox&&v.blox.blocks||(v.blox={blocks:[]});k.driverInstance=e;t.getDriverInstance(c,!0);e._id=m.createUUID();x.resolve(e);return e})}catch(G){h.error("DeviceManager::createDriverInstance:: requiring base driver at "+
n+" failed "+G.message,m.inspect(c))}return x},onSetDeviceServerVariables:function(a){var b=this.getDriverInstance(a.device,!0),c=this.getDeviceStoreItem(a.device);if(c){if(!b.blockScope){var d=c.info,e=d.hash,g=b.driver,f=d.driverId,k=this.getContext(),d=d.serverSide,p=f+"_"+e+"_"+c.path;g.blox&&g.blox.blocks||(g.blox={blocks:[]});g.blockPath&&(m.getJson(m.readFile(g.blockPath)),g.blox=m.getJson(m.readFile(g.blockPath)));e=k.getBlockManager().createScope({id:p,device:c,driver:g,instance:b,serviceObject:this.serviceObject,
ctx:k,serverSide:d,getContext:function(){return this.instance}},m.clone(g.blox.blocks),function(a){a&&h.error(a+" : in "+g.name+" Resave Driver! in scope id "+p)});b.blockScope=e;c.blockScope=e;u&&this.completeDriverInstance(g,b,c)}if(b){var e=a.variables,q=b.blockScope;c.serverVariables=a.variables;r.each(e,function(a){var b=q.getVariable(a.name);b&&(b.value=a.value)})}this.onDeviceConnected(a,!1);c.setState(l.DEVICE_STATE.SYNCHRONIZING);c.setState(l.DEVICE_STATE.READY);c._startDfd&&c._startDfd.resolve(c.driverInstance);
delete c._userStopped;delete c.lastError;delete c._startDfd;c._startDfd=null}else v&&h.log("did set device server variables failed, have no device",a)},getDeviceServerVariables:function(a,b){b=b.driver;b.blox&&b.blox.blocks||(b.blox={blocks:[]});var c=[];r.each(b.blox.blocks,function(a){a.group===l.BLOCK_GROUPS.CF_DRIVER_BASIC_VARIABLES&&c.push(a)});b=[];for(var d=0;d<c.length;d++)b.push({name:c[d].name,value:c[d].value,initial:c[d].value});a.setState(l.DEVICE_STATE.SYNCHRONIZING);this.sendManagerCommand(l.SOCKET_SERVER_COMMANDS.GET_DEVICE_VARIABLES,
{device:this.toDeviceControlInfo(a),variables:b})},onDeviceConnected:function(a,b){var c=this.getDeviceStoreItem(a.device);if(a.isReplay&&c&&c.state===l.DEVICE_STATE.READY)c.setState(l.DEVICE_STATE.READY);else if(a=this.getDriverInstance(a.device,!0)||a.instance)if(c){var d=this.toDeviceControlInfo(c);if(d)if(!d.serverSide&&v&&h.error("onDeviceConnected:: device info is not server side, abort"),a&&!c.serverVariables)c.setState(l.DEVICE_STATE.CONNECTED),this.getDeviceServerVariables(c,a);else if(d){b=
d.hash;if(this.deviceInstances[b]){if(!a.__didStartBlocks)this.onDeviceStarted(a,c,a.driver);c.setState(l.DEVICE_STATE.READY);this.publish(l.EVENTS.ON_STATUS_MESSAGE,{text:'Device is Ready \x3cspan class\x3d"text-success"\x3e'+d.host+":"+d.port+"\x3c/span\x3e",type:"success"});return this.deviceInstances[b]}var g=this,f=this.driverScopes.system_drivers+"DriverBase";try{e([f],function(a){a.prototype.declaredClass=f;g.createDriverInstance(d,a,c)})}catch(H){h.error("requiring base driver at "+f+" failed",
H)}}else h.error("couldnt start device, invalid control info");else v&&h.error("onDeviceConnected:: device info is null")}else v&&h.error("onDeviceConnected:: deviceStoreItem is null");else c&&c.setState(l.DEVICE_STATE.DISCONNECTED)},onDeviceDisconnected:function(a){if(a||a.device){var b=a.error,c=b&&b.code?b.code:b||"",d=this.getDeviceStoreItem(a.device);if(d)if(!0===a.stopped)this.stopDevice(d);else{this.publish(l.EVENTS.ON_STATUS_MESSAGE,{text:'Device has been disconnected \x3cspan class\x3d"text-warning"\x3e'+
a.device.host+":"+a.device.port+'\x3c/span\x3e : \x3cspan class\x3d"text-danger"\x3e'+c+"\x3c/span\x3e",type:"info"});var e=this.toDeviceControlInfo(d);if(!e||e.serverSide)if(this.getDriverInstance(a.device,!0)&&this.removeDriverInstance(a.device),d.reset(),d.state===l.DEVICE_STATE.DISABLED)d.setState(l.DEVICE_STATE.DISCONNECTED);else if(d.setState(l.DEVICE_STATE.DISCONNECTED),d.lastError=b,d.refresh(),e.serverSide&&d){var g=this;d.reconnectTimer||(d.isReconnecting=!0,d.lastReconnectTime?3600<d.lastReconnectTime&&
(d.lastReconnectTime=3600):d.lastReconnectTime=g.reconnectDevice,d.reconnectRetry||(d.reconnectRetry=0),d.reconnectTimer=setTimeout(function(){d.reconnectTimer=null;d.lastReconnectTime*=2;d.reconnectRetry+=1;d.shouldReconnect()&&(e&&d.setState(l.DEVICE_STATE.CONNECTING),g.startDevice(d))},d.lastReconnectTime))}}else v&&u&&h.error("deviceStoreItem is null")}},onCommandFinish:function(a,b){var d=this.getDriverInstance(a,!0);if(d){var e=b.params||{};if(e.src&&e.id){var g=d.blockScope.getBlockById(e.src);
if(g&&g.onCommandFinish){e=null;b=g.onCommandFinish(b);try{e=JSON.stringify(b,function(a,b){return"object"==typeof b?null:b},2)}catch(G){logError(G,"error serializing on command finish")}if(c("xcf-ui")&&e){d=d.device;b=[e];if(g=this.consoles[a.hash+"-Console"])for(var h=0;h<g.length;h++){var f=g[h];if(f){var k=!0,p=!1;f.console&&(p=f.console.getTextEditor(),k=p.getAction("Console/Settings/Split").value,p=p.getAction("Console/Settings/HEX").value);if(!k&&p)p=m.bufferToHexString(deviceMessageData.data.bytes),
f.log(p,k,!1,l.LOG_OUTPUT.RESPONSE);else for(var q=0;q<b.length;q++){var u=b[q];r.isString(u.string)&&0===u.string.length||(p&&(u=m.stringToHex(u)),f.log(u,k,!0,l.LOG_OUTPUT.RESPONSE))}}}b&&b.length&&this.publish(l.EVENTS.ON_DEVICE_MESSAGE_EXT,{device:d,deviceInfo:a,raw:e,messages:b,bytes:[]})}}}}},onCommandProgress:function(a,b){var c=this.getDriverInstance(a,!0);if(c&&(a=b.params||{},a.src&&a.id&&(c=c.blockScope)&&(a=c.getBlockById(a.src))&&a.onCommandProgress))a.onCommandProgress(b)},onCommandPaused:function(a,
b){if(a=this.getDriverInstance(a,!0)){var c=b.params||{};if(c.src&&c.id&&(a=a.blockScope.getBlockById(c.src))&&a.onCommandPaused)a.onCommandPaused(b)}},onCommandStopped:function(a,b){if(a=this.getDriverInstance(a,!0)){var c=b.params||{};if(c.src&&c.id&&(a=a.blockScope.getBlockById(c.src))&&a.onCommandStopped)a.onCommandStopped(b)}},onCommandError:function(a,b){if(a=this.getDriverInstance(a,!0)){var c=b.params||{};if(c.src&&c.id&&(a=a.blockScope.getBlockById(c.src))&&a.onCommandError)a.onCommandError(b)}},
onDeviceServerMessage:function(a){function b(a){delete a.resposeSettings;delete a.driver;delete a.lastResponse;delete a.scope;delete a.driverId;delete a.device;delete a.sourceHost;delete a.sourcePort}var d=a.data,e=null;if(r.isString(d)&&-1!=d.indexOf("{"))try{e=m.fromJson(d)}catch(O){h.error("error parsing device message",a);return}else r.isObject(d)&&d.data&&(e=d);if(e&&e.data&&e.data.device){var g=e.data.device;if(g&&g.serverSide){var f=this.getDriverInstance(e.data.device,!0);if(f){var k=this.getDeviceStoreItem(g);
if(k){(g=k.info)||h.error("invalid device : "+k.toString());var q=k.get("state");a=g.serverSide;var u=e.data.deviceMessage;if(null!=u){d=[];r.isString(u)?d=f.split(u):r.isObject(u)&&(b(u),d=[u]);var n=f.onMessageRaw({device:e.data.device,message:u,bytes:e.data.bytes});n&&!n.length&&(n=null);for(var v=[],t=0;t<d.length;t++)v.push(m.stringToBuffer(d[t]));if(n&&n.length)for(d=[],v=[],t=0;t<n.length;t++){var E=n[t];d.push(E.string);v.push(E.bytes)}if(d&&d.length)for(t=0;t<d.length;t++)E=d[t],f.onMessage({device:e.data.device,
message:E,raw:u,bytes:v[t]}),f.onBroadcastMessage({device:e.data.device,message:E,raw:u,bytes:v[t]});q!==l.DEVICE_STATE.READY&&k.set("state",l.DEVICE_STATE.READY);t=k.isDebug();e.event&&(e.data.driverInstance=f,this.publish(e.event,e.data));if(c("xcf-ui")){var K=[],q=this.consoles[g.hash+"-Console"];if(t&&(t=l.LOGGING_FLAGS,E=g.loggingFlags,E=r.isString(E)?m.fromJson(E):E||{},E=E[l.LOG_OUTPUT.RESPONSE],null!=E&&E&t.STATUS_BAR)){t=e.data.deviceMessage;if(r.isObject(t)){b(t);try{t=JSON.stringify(t)}catch(O){logError(O,
"error serialize message")}}this.publish(l.EVENTS.ON_STATUS_MESSAGE,{text:"Device Message from "+f.options.host+' : \x3cspan class\x3d"text-info"\x3e'+t+"\x3c/span\x3e"})}if(q)for(var D=0;D<q.length;D++){var J=q[D];if(J){var N=!0,L=!1;J.console&&(t=J.console.getTextEditor(),N=t.getAction("Console/Settings/Split").value,L=t.getAction("Console/Settings/HEX").value);if(!N&&L)t=m.bufferToHexString(e.data.bytes),J.log(t,N,!1,l.LOG_OUTPUT.RESPONSE);else for(K=[],r.isString(u)?K=N?n&&n.length?n:f.split(u):
[u]:r.isObject(u)&&(b(u),K=[u]),t=0;t<K.length;t++)E=K[t],r.isString(E.string)&&0===E.string.length||!E||(L&&(E=m.stringToHex(E.string||E)),J.log(E,N,!0,l.LOG_OUTPUT.RESPONSE))}}d&&d.length&&this.publish(l.EVENTS.ON_DEVICE_MESSAGE_EXT,{device:k,deviceInfo:g,raw:u,messages:d,bytes:e.data.bytes})}if(0<d.length&&f.blockScope)for(e=f.blockScope,g=e.blockStore._find({group:l.BLOCK_GROUPS.CF_DRIVER_RESPONSE_BLOCKS}),f=e.blockStore._find({group:l.BLOCK_GROUPS.CF_DRIVER_RESPONSE_VARIABLES}),k=e.getVariable("value"),
k||(k=new p({id:m.createUUID(),name:"value",value:"",scope:e,type:13,group:"processVariables",gui:!1,cmd:!1}),e.blockStore.putSync(k)),u=0;u<d.length;u++)if(0!==d[u].length){k.value=new String(d[u]);k.value.setBytes(v[u]);k.value.setString(d[u]);this.publish(l.EVENTS.ON_DRIVER_VARIABLE_CHANGED,{item:k,scope:e,owner:this,save:!1,source:l.MESSAGE_SOURCE.DEVICE,publishMQTT:!1});for(n=0;n<f.length;n++){var M=f[n];"value"!=f[n].title&&(q=null,q=k.value,"number"!==typeof q&&(q=""+q,q="'"+q+"'"),M.target&&
"None"!=M.target&&null!==q&&"null"!=q&&"'null'"!=q&&(t=e.getVariable(M.target)))&&(t.value=q,this.publish(l.EVENTS.ON_DRIVER_VARIABLE_CHANGED,{item:t,scope:e,owner:this,save:!1,source:l.MESSAGE_SOURCE.BLOX}))}if(a){for(q=0;q<d.length;q++)if(t=d[q],r.isObject(t)&&t.src&&(n=e.getBlockById(t.src))&&n.onData)n.onData(t);for(q=0;q<g.length;q++)if(n=g[q],!1!==n.enabled){n.override={args:M?[M.value]:null};try{e.solveBlock(g[q],{highlight:!1})}catch(O){logError(O,"----solving response block crashed ")}}}}}}}else t&&
h.error(" onDeviceMessage : failed! Have no device instance for "+e.data.device.host,e)}}},sendManagerCommand:function(a,b){this.checkDeviceServerConnection();var c={manager_command:a};m.mixin(c,b);if(this.deviceServerClient)return this.deviceServerClient.emit(null,c,a);h.error("Send Manager Command "+a+" failed, have no device Server client");this.onHaveNoDeviceServer()},sendDeviceCommand:function(a,b,d,e,g,f,k,p,q,u){this.checkDeviceServerConnection();var v=a.getDeviceInfo();m.mixin({src:d},v);
var t={command:b,device_command:q||l.SOCKET_SERVER_COMMANDS.DEVICE_SEND,options:v};m.mixin(t.options,{params:{src:d,id:e,wait:f,stop:k,pause:p,args:u}});e=this.getDevice(v.id);e&&r.isObject(e)?e._userStopped||e&&(e.state===l.DEVICE_STATE.DISABLED||e.state===l.DEVICE_STATE.DISCONNECTED||e.state===l.DEVICE_STATE.CONNECTING)||(q=m.stringFromDecString(t.command),e.isDebug()&&this.publish(l.EVENTS.ON_STATUS_MESSAGE,{text:'Did send message : \x3cspan class\x3d"text-warnin"\x3e'+q.substr(0,30)+'\x3c/span\x3e to \x3cspan class\x3d"text-info"\x3e'+
v.host+":"+v.port+"@"+v.protocol+"\x3c/span\x3e"}),v=n(JSON.stringify(a.options),1)+"-Console",this.deviceServerClient?(this.deviceServerClient.emit(null,t,"Device_Send"),c("xcf-ui")&&!1!==g&&r.each(this.consoles[v],function(a){a.printCommand('\x3cspan class\x3d"text-info"\x3e\x3cb\x3e'+t.command+"\x3c/span\x3e","")})):(this.onHaveNoDeviceServer(),h.error("this.deviceServerClient is null"),h.error(" Send Device Command "+b+"failed, have no device Server client")),a.blockScope&&(q=a.blockScope.getBlockById(d),
this.publish(l.EVENTS.ON_DEVICE_COMMAND,{device:e,command:m.stringFromDecString(b),deviceInfo:this.toDeviceControlInfo(e),name:q?q.name:""}))):h.error("invalid device")},loadDevices:function(a){this.sendManagerCommand(l.SOCKET_SERVER_COMMANDS.INIT_DEVICES,{path:a})},protocolMethod:function(a,c,d,e){var g=new b,f=l.SOCKET_SERVER_COMMANDS.PROTOCOL_METHOD,k=m.createUUID(),p=f+"_"+k;a={protocol:a,method:c,options:{args:d,id:k,device:e}};var q=this;this.subscribe(p,function(a){q.unsubscribe(p);clearTimeout(r);
g.resolve(a)});try{this.sendManagerCommand(f,a);var r=setTimeout(function(){q.unsubscribe(p);g.reject("timeout");h.error("protocol method timeout")},8E3)}catch(C){g.reject(C)}return g},callMethod:function(a,b,c,d,e){this.checkDeviceServerConnection();a={method:b,args:c,device_command:l.SOCKET_SERVER_COMMANDS.CALL_METHOD,params:{id:e,src:d},options:a.options};if(this.deviceServerClient)this.deviceServerClient.emit(null,a,l.SOCKET_SERVER_COMMANDS.CALL_METHOD);else this.onHaveNoDeviceServer()},runShell:function(a,
b,c,d,e){a=a.getDeviceInfo();this.sendManagerCommand(l.SOCKET_SERVER_COMMANDS.RUN_SHELL,{cmd:b,args:c,options:m.mixin(a,{params:{id:e,src:d}})})},watchDirectory:function(a,b){this.checkDeviceServerConnection();a={path:a,watch:b,manager_command:l.SOCKET_SERVER_COMMANDS.WATCH};if(this.deviceServerClient)this.deviceServerClient.emit(null,a,l.SOCKET_SERVER_COMMANDS.WATCH);else this.onHaveNoDeviceServer()},handle:function(a){var b=decodeURIComponent(this.ctx.getUserDirectory());a=a.data;return!(b&&a&&
a.device&&a.device.userDirectory&&decodeURIComponent(a.device.userDirectory)!==b)},createDeviceServerClient:function(a){var c=this,d=new b;this.deviceServerClient=null;if(this.deviceServerClient=g.createClientWithStore(a,"Device Control Server",{delegate:{onConnected:function(){c.onDeviceServerConnected();d.resolve();c.publish(l.EVENTS.ON_DEVICE_SERVER_CONNECTED);u&&c.ctx.getNotificationManager().postMessage({message:"Connected to Device Server",type:"success",duration:3E3})},onLostConnection:function(){c.onDeviceServerConnectionLost()},
onServerResponse:function(a){var b=a.data,d=null;if(r.isString(b)){try{d=JSON.parse(b)}catch(H){d=b}if((d=d||{},d.data)&&d.data.deviceMessage&&d.data.deviceMessage.event===l.EVENTS.ON_COMMAND_FINISH){c.onCommandFinish(d.data.device,d.data.deviceMessage);return}if(d&&d.data&&d.data.deviceMessage&&d.data.deviceMessage.event===l.EVENTS.ON_COMMAND_PROGRESS){c.onCommandProgress(d.data.device,d.data.deviceMessage);return}if(d&&d.data&&d.data.deviceMessage&&d.data.deviceMessage.event===l.EVENTS.ON_COMMAND_PAUSED){c.onCommandPaused(d.data.device,
d.data.deviceMessage);return}if(d&&d.data&&d.data.deviceMessage&&d.data.deviceMessage.event===l.EVENTS.ON_COMMAND_STOPPED){c.onCommandStopped(d.data.device,d.data.deviceMessage);return}if(d.data&&d.data.deviceMessage&&d.data.deviceMessage.event===l.EVENTS.ON_COMMAND_ERROR){c.onCommandError(d.data.device,d.data.deviceMessage);return}if(d.event===l.EVENTS.ON_DEVICE_DISCONNECTED){c.publish(l.EVENTS.ON_DEVICE_DISCONNECTED,d.data);return}if(d.event===l.EVENTS.SET_DEVICE_VARIABLES)return c.onSetDeviceServerVariables(d.data);
if(d.event===l.EVENTS.ON_RUN_CLASS_EVENT)return c.onRunClassEvent(d.data);if(d.event===l.EVENTS.ON_DEVICE_CONNECTED){c.publish(l.EVENTS.ON_DEVICE_CONNECTED,d.data);return}if(d.event===l.SOCKET_SERVER_COMMANDS.PROTOCOL_METHOD){c.publish(l.SOCKET_SERVER_COMMANDS.PROTOCOL_METHOD+"_"+d.data.options.id,d.data);return}if(d.event===l.EVENTS.ON_SERVER_LOG_MESSAGE){c.publish(l.EVENTS.ON_SERVER_LOG_MESSAGE,d.data);return}if(d.event===l.EVENTS.ON_MQTT_MESSAGE){c.publish(l.EVENTS.ON_MQTT_MESSAGE,d.data);c.onMQTTMessage(d.data);
return}if(d.event===l.EVENTS.ON_FILE_CHANGED)return c.ctx.onXIDEMessage(m.fromJson(a.data));if(!c.handle(d))return}c.onDeviceServerMessage(a)}}}))return this.deviceServerClient.dfd=d,this.deviceServerClient}});f.chainAfter(k,"onDeviceStarted");f.chainAfter(k,"onDeviceDisconnected");return k})},"xcf/model/Device":function(){define("dcl/dcl xide/data/Model xide/data/Source xide/types xide/utils xide/mixins/EventedMixin xcf/types/Types".split(" "),function(f,n,l,m,g,c){f=f([n,l.dcl,c.dcl],{declaredClass:"xcf.model.Device",
_userStopped:!1,state:m.DEVICE_STATE.DISCONNECTED,driverInstance:null,blockScope:null,getParent:function(){return this.getStore().getSync(this.parentId)},isServerSide:function(){var b=this.getMetaValue(m.DEVICE_PROPERTY.CF_DEVICE_DRIVER_OPTIONS);return 1<<m.DRIVER_FLAGS.RUNS_ON_SERVER&b?!0:!1},isServer:function(){var b=this.getMetaValue(m.DEVICE_PROPERTY.CF_DEVICE_DRIVER_OPTIONS);return 1<<m.DRIVER_FLAGS.SERVER&b?!0:!1},setServer:function(b){b=this.getMetaValue(m.DEVICE_PROPERTY.CF_DEVICE_DRIVER_OPTIONS);
b.value|=1<<m.DRIVER_FLAGS.SERVER;this.setMetaValue(m.DEVICE_PROPERTY.CF_DEVICE_DRIVER_OPTIONS,b.value)},setServerSide:function(b){b=this.getMetaValue(m.DEVICE_PROPERTY.CF_DEVICE_DRIVER_OPTIONS);b|=1<<m.DRIVER_FLAGS.RUNS_ON_SERVER;this.setMetaValue(m.DEVICE_PROPERTY.CF_DEVICE_DRIVER_OPTIONS,b)},isDebug:function(){var b=this.getMetaValue(m.DEVICE_PROPERTY.CF_DEVICE_DRIVER_OPTIONS);return 1<<m.DRIVER_FLAGS.DEBUG&b?!0:!1},check:function(){this._startDfd&&!0===this._userStopped&&this.reset()},getStore:function(){return this._store},
getScope:function(){var b=this.getStore();return b?b.scope:this.scope},isEnabled:function(){return!0===this.getMetaValue(m.DEVICE_PROPERTY.CF_DEVICE_ENABLED)},setEnabled:function(b){return this.setMetaValue(m.DEVICE_PROPERTY.CF_DEVICE_ENABLED,b)},shouldReconnect:function(){return this._userStopped?!1:this.isEnabled()},reset:function(){delete this._startDfd;this._startDfd=null;delete this.blockScope;this.blockScope=null;delete this.serverVariables;this.serverVariables=null;delete this.driverInstance;
this.driverInstance=null;clearTimeout(this.reconnectTimer);delete this.lastReconnectTime;delete this.reconnectRetry;delete this.isReconnecting;this.setState(m.DEVICE_STATE.DISCONNECTED)},constructor:function(){},getBlockScope:function(){return this.driverInstance&&this.driverInstance.blockScope?this.driverInstance.blockScope:this.blockScope},getDriverInstance:function(){return this.driverInstance},getDriver:function(){var b=this.getBlockScope();return b?b.driver:null},getMetaValue:function(b){return g.getCIInputValueByName(this.user,
b)},setMetaValue:function(b,c,a){var d=g.getCIByChainAndName(this.user,0,b);if(!d)return null;var f=this.getMetaValue(b);g.setCIValueByField(d,"value",c);this[b]=c;if(!1!==a&&f!=c)return this.publish(m.EVENTS.ON_CI_UPDATE,{owner:this.owner,ci:d,newValue:c,oldValue:f})},getStateIcon:function(b){b=b||this.state;switch(b){case m.DEVICE_STATE.READY:case m.DEVICE_STATE.CONNECTED:return"fa-link iconStatusOn";case m.DEVICE_STATE.SYNCHRONIZING:case m.DEVICE_STATE.CONNECTING:return"fa-spinner fa-spin";case m.DEVICE_STATE.LOST_DEVICE_SERVER:return"fa-spinner fa-spin"}return"fa-unlink iconStatusOff"},
setState:function(b,c){if(b!==this.state){c=this.state;var a=this.getStateIcon(b);this.state=b;this.set("iconClass",a);this.set("state",b);this._emit(m.EVENTS.ON_DEVICE_STATE_CHANGED,{old:c,state:b,icon:a,"public":!0});this.refresh("state")}}});f.createSubclass=n.createSubclass;return f})},"xcf/mixins/LogMixin":function(){define(["dcl/dcl","xcf/types/Types","xide/utils"],function(f,n,l){var m=n.DEFAULT_DEVICE_LOGGING_FLAGS;f=f(null,{hasFlagEx:function(g,c,b){g=g.loggingFlags;g=_.isString(g)?l.fromJson(g):
g||{};b=g[b]?g[b]:m[b];return null!=b&&b&c?!0:!1}});f.DEFAULT_LOGGING_FLAGS=m;return f})},"xide/console":function(){define([],function(){return"undefined"!==typeof window?window.console:"undefined"!==typeof global?global.console:{}})},"xcf/manager/Context":function(){define("dcl/dcl xide/manager/Context xcf/manager/DriverManager xcf/manager/DeviceManager xcf/manager/ProtocolManager xcf/manager/Application xcf/manager/LogManager xide/manager/ResourceManager xide/manager/PluginManager xdojo/has".split(" "),
function(f,n,l,m,g,c,b,d,a,e){return f([n],{declaredClass:"xcf.manager.Context",namespace:"xcf.manager.",driverManager:null,deviceManager:null,protocolManager:null,debugManager:null,nodeServiceManager:null,blockManager:null,getBlockManager:function(){return this.blockManager},getProtocolManager:function(){return this.protocolManager},getDriverManager:function(){return this.driverManager},getDeviceManager:function(){return this.deviceManager},getNodeServiceManager:function(){return this.nodeServiceManager},
getDebugManager:function(){return this.debugManager},getLibraryManager:function(){return this.libraryManager},constructManagers:function(a){this.isEditor()},initManagers:function(){this.isEditor()||(this.driverManager.init(),this.deviceManager.init(),e("protocols")&&this.protocolManager.init(),e("log")&&this.logManager.init());this.resourceManager&&this.resourceManager.init()},getUserDirectory:function(){if(this.args&&this.args.userDirectory)return this.args.userDirectory;var a=this.getResourceManager();
if(a)return a.getVariable("USER_DIRECTORY")}})})},"xide/manager/Context":function(){define("dcl/dcl dojo/Deferred dojo/has xide/manager/ContextBase xide/types xide/utils require dojo/promise/all xdojo/has!host-browser?xide/manager/Context_UI".split(" "),function(f,n,l,m,g,c,b,d,a){l=f([m],{declaredClass:"xide.manager.Context",application:null,contextManager:null,fileManager:null,resourceManager:null,notificationManager:null,serviceObject:null,pluginManager:null,windowManager:null,logManager:null,
mountManager:null,config:null,managers:null,namespace:"xide.manager.",defaultNamespace:"xide.manager.",vfsMounts:null,xideServiceClient:null,fileUpdateTimes:{},onXIDEMessage:function(a,d){if(a&&a.event&&a.event===g.EVENTS.ON_FILE_CHANGED)if(a.data&&a.data.mask&&a.data.mask.includes("delete"))this.publish(g.EVENTS.ON_FILE_DELETED,a);else if(a.data&&"delete"==a.data.type)this.publish(g.EVENTS.ON_FILE_DELETED,a);else{var e=a.data.path,f=(new Date).getTime();if(this.fileUpdateTimes[e]&&1E3>f-this.fileUpdateTimes[e])this.fileUpdateTimes[e]=
f;else if(!1!==d&&this.publish(a.event,a),this.fileUpdateTimes[e]=f,d=c.replaceAll("\\","/",a.data.path),d=c.replaceAll("//","/",a.data.path),d=d.replace(/\\/g,"/"),!d.includes("/build/")&&null!=d&&null!=d.indexOf){if(d.match(/\.css$/))this.onCSSChanged({path:d});if(d.match(/\.js$/)&&(a=a.data.modulePath)){a=a.replace(".js","");try{b(a)}catch(q){}e="data/system/drivers";d.includes(e)&&(a=d.substr(d.indexOf(e)+(e.length+1),d.length),a=a.replace(".js",""),a="system_drivers/"+a);e="user/drivers";d.includes(e)&&
(a=d.substr(d.indexOf(e)+(e.length+1),d.length),a=a.replace(".js",""),a="user_drivers/"+a);(e=(e=this.getResourceManager())?e.getVariable("VFS_CONFIG")||{}:null)&&e.user_drivers&&d.includes(e.user_drivers)&&(e=e.user_drivers,e=e.replace(/\/+$/,""),a=d.substr(d.indexOf(e)+(e.length+1),d.length),a=a.replace(".js",""),a="user_drivers/"+a);a=c.replaceAll(".","/",a);a.includes("/build/")}}}},onNodeServiceStoreReady:function(a){},mergeFunctions:function(a,b,c,d){for(var e in b)_.isFunction(b[e])&&b[e]&&
a&&(a[e]=b[e])},reloadModules:function(a,c){var e=new n,g=[],f=[],h=this;b({cacheBust:"time\x3d"+(new Date).getTime()});_.each(a,function(a){var d=null,e=new n;!1!==c&&(d=b(a));b.undef(a);b([a],function(a){d&&h.mergeFunctions(d.prototype,a.prototype);f.push(a);e.resolve()});g.push(e)});d(g).then(function(){e.resolve(f);b({cacheBust:null})});return e},_reloadModule:function(a,d){var e=null,f=new n;a=a.replace("0/8","0.8");a=a.replace("/src/","/");var q=this.getModule(a);if(q&&q.prototype&&q.prototype.reloadModule)return q.prototype.reloadModule();
var e=b.on("error",function(a){e.remove();f.reject(a)}),h=this.getModule(a);if(!h&&(h="undefined"!==typeof a?h:null,!h&&"undefined"!==typeof window))if(h=c.getAt(window,c.replaceAll("/",".",a),null))q=h;else try{h=b(c.replaceAll(".","/",a))}catch(v){}h&&(q=h);b.undef(a);var m=this;d?setTimeout(function(){b({cacheBust:"time\x3d"+(new Date).getTime(),waitSeconds:5});try{b([a],function(c){b({cacheBust:null});if(_.isString(c))console.error("module reloaded failed : "+c+" for module : "+a);else{c.modulePath=
a;q&&(m.mergeFunctions(q.prototype,c.prototype,q,c),q.prototype&&q.prototype._onReloaded&&q.prototype._onReloaded(c));if(h&&h.onReloaded)h.onReloaded(c,h);m.publish(g.EVENTS.ON_MODULE_RELOADED,{module:a,newModule:c});c.prototype&&c.prototype.declaredClass&&m.publish(g.EVENTS.ON_MODULE_UPDATED,{moduleClass:c.prototype.declaredClass,moduleProto:c.prototype});m.setModule(a,c);f.resolve(c)}})}catch(v){console.error("error reloading module",v),logError(v,"error reloading module"),f.reject(v)}},100):f.resolve();
return f},onCSSChanged:function(a){},onDidChangeFileContent:function(a){if(!a.didProcess&&(a.didProcess=!0,this.vfsMounts&&a.path)){var b=a.path;if(!(b.includes(".css")||b.includes("resources")||b.includes("meta")||b.includes("lib/custom"))&&b.includes(".js")){var b=a.mount.replace("/",""),d=null;if(this.vfsMounts[b]){var d=""+a.path,d=d.replace("./",""),d=d.replace("/","."),d=d.replace(".js",""),d=c.replaceAll(".","/",d),e=this;setTimeout(function(){try{e._reloadModule(d,!0)}catch(q){console.error("error reloading module",
q)}},100)}}}},getMount:function(a){var b=this.getResourceManager();return(b=b?b.getVariable("VFS_CONFIG")||{}:null)&&b[a]?b[a]:null},toVFSShort:function(a,b){var d=this.getResourceManager();return(d=d?d.getVariable("VFS_CONFIG")||{}:null)&&d[b]&&(b=d[b],b=c.replaceAll("//","/",b),b=b.replace(/\/+$/,""),a.includes(b))?(b=b.replace(/\/+$/,""),a.substr(a.indexOf(b)+(b.length+1),a.length)):null},findVFSMount:function(a){var b=this.getResourceManager();if(b=b?b.getVariable("VFS_CONFIG")||{}:null)for(var d in b){var e=
b[d],e=c.replaceAll("//","/",e),e=e.replace(/\/+$/,"");if(a.includes(e))return d}return null},findVFSMountPath:function(a){var b=this.getResourceManager();if(b=b?b.getVariable("VFS_CONFIG")||{}:null)for(var d in b){var e=b[d],e=c.replaceAll("//","/",e),e=e.replace(/\/+$/,"");if(a.includes(e))return e}return null},getBlockManager:function(){return this.blockManager},getPluginManager:function(){return this.pluginManager},getService:function(){return this.serviceObject},getFileManager:function(){return this.fileManager},
getResourceManager:function(){return this.resourceManager},getMountManager:function(){return this.mountManager},getContextManager:function(){return this.contextManager},getLogManager:function(){return this.logManager},getApplication:function(){return this.application},constructor:function(a,b){this.managers=[];this.config=a;this.args=b;this.language="en";this.subscribe(g.EVENTS.ON_CHANGED_CONTENT,this.onDidChangeFileContent)},prepare:function(){this.config&&this.initWithConfig(this.config)},initWithConfig:function(a){a&&
a.mixins&&this.doMixins(a.mixins)},isEditor:function(){return this.args&&this.args.file}});f.chainAfter(l,"constructManagers");f.chainAfter(l,"initManagers");return l})},"xcf/manager/ProtocolManager":function(){define("dcl/dcl dojo/_base/declare xide/manager/ServerActionBase xide/types xide/utils xide/factory xaction/Action xcf/manager/BeanManager".split(" "),function(f,n,l,m,g,c,b,d){return f([l,d],{declaredClass:"xcf.manager.ProtocolManager",beanNamespace:"protocol",beanName:"Protocol",beanIconClass:"fa-code",
groupType:m.ITEM_TYPE.PROTOCOL_GROUP,itemType:m.ITEM_TYPE.PROTOCOL,itemMetaPath:"user.meta",itemMetaStorePath:"/meta/inputs",itemMetaTitleField:m.PROTOCOL_PROPERTY.CF_PROTOCOL_TITLE,systemScope:"system_protocols",userScope:"user_protocols",appScope:"app_protocols",defaultScope:"system_protocols",serviceClass:"XCF_Protocol_Service",rawData:null,store:null,treeView:null,protocolScopes:null,getItemActions:function(){var a=[],b=this,c=this.getItem(),d=c?!0===g.toBoolean(c.isDir):!1;a.push({title:"New Group",
icon:"el-icon-folder",place:"last",emit:!1,style:"",handler:function(a,c,d){b.newGroup()}});a.push({title:"Reload",icon:"fa-refresh",disabled:!1,command:"Reload",place:"last",emit:!1,style:"",handler:function(){b.reload()}});null!=this.getItem()&&(a.push({title:"Delete",icon:"el-icon-remove-circle",disabled:!1,command:"Delete",place:"last",emit:!1,style:"",handler:function(){b.onDeleteItem(c)}}),d?a.push({title:"New Protocol",icon:"el-icon-file-new",disabled:!1,command:"NewItem",place:"last",emit:!1,
style:"",handler:function(){b.newItem(c)}}):a.push({title:"Connect",icon:"el-icon-play-circle",disabled:!1,command:"Start",place:"last",emit:!1,style:"",handler:function(){b.startDevice(c)}}));return a},onItemRemoved:function(a){a==this.currentItem&&(this.currentItem=null);a&&(a=this.getView(a))&&g.destroy(a)},_onDeleteItem:function(a){var b=!0===g.toBoolean(a.isDir),c=g.toString(a.name),d=b?"removeGroup":"removeItem",f=this;(new ActionDialog({title:"Remove Protocol"+(b?" Group":"")+" '"+c+"'",style:"max-width:400px",
titleBarClass:"text-danger",delegate:{isRemoving:!1,onOk:function(b){f[d](g.toString(a.scope),g.toString(a.path),function(){f.onItemRemoved(a)})}},inserts:[{query:".dijitDialogPaneContent",insert:'\x3cdiv\x3e\x3cspan class\x3d"fileManagerDialogText"\x3eDo you really want to remove this item?\x3c/span\x3e\x3c/div\x3e',place:"first"}]})).show()},newItem:function(){var a=this.getItem();a||(a={path:""});var b=[g.createCI("In Group",13,g.toString(a.path),{widget:{disabled:!0},group:"Common"}),g.createCI("Title",
13,"",{group:"Common"})],a=new CIActionDialog({title:"New Device",resizable:!0,delegate:{onOk:function(a,c){a=g.createCI("Id",13,g.createUUID(),{visible:!1,group:"Common"});c.push(a);g.toOptions(c);g.getInputCIByName(b,"Title");g.getInputCIByName(b,"Scope");g.getInputCIByName(b,"In Group")}},cis:b});a.show();a.resize()},reload:function(){},onFileChanged:function(a){if(!a._pp2){a._pp2=!0;var b=a.data;this.fileUpdateTimes||(this.fileUpdateTimes={});if(b.event===m.EVENTS.ON_FILE_CHANGED){if(b.data&&
b.mask&&-1!==b.mask.indexOf("delete"))return;(new Date).getTime()}var c=g.replaceAll("\\","/",b.path),c=g.replaceAll("//","/",b.path),c=c.replace(/\\/g,"/");-1!=c.indexOf("protocols")&&(c.match(/\.json$/)&&this.ls("system_protocols"),this.onFileChanged2&&this.onFileChanged2(a))}},init:function(){this.subscribe(m.EVENTS.ON_FILE_CHANGED,this.onFileChanged)},_resetItem:function(a){a.commandsItem&&g.removeFromStore(this.getStore(),a.commandsItem,!0,"path","parentId");a.variablesItem&&g.removeFromStore(this.getStore(),
a.variablesItem,!0,"path","parentId")},_completeProtocolItem:function(a){if(a&&a.user){var b=g.getInputCIByName(a.user.meta,"content"),c=this,d=this.getStore();if(!b&&(a.mount=""+a.scope,a.getPath=function(){return a.path},a.virtual=!1,a.isDir=!0,a.children=[],b=g.createCI("Content",m.ECIType.FILE_EDITOR,"no value",{group:"Content",editor:"JSON Editor",editorArgs:{subscribers:[{event:"onSave",handler:function(b){(b=g.getJson(b.value))&&b.meta&&(a.user=b,a._completed=!1,c._resetItem(a),c._completeProtocolItem(a),
c.publish(m.EVENTS.ON_PROTOCOL_CHANGED,{item:a}))},owner:c}],leftEditorArgs:{subscribers:[{event:"addAction",handler:function(a){console.log("add action",arguments)},owner:c}],hiddenFields:{},readOnlyNodes:{commands:!0,variables:!0,meta:!0},insertTemplates:[{label:"New Command",path:"commands",value:'{title:"No Title",send:""}',newNodeTemplate:"[]",collapse:!0,select:!0},{label:"New Variable",path:"variables",value:'{title:"No Title",value:""}',newNodeTemplate:"[]",collapse:!0,select:!0}],renderTemplates:[{nodeValuePath:"field.innerHTML",
match:[/^variables[\s]?\.(\d+)$/,/^commands[\s]?\.(\d+)$/],replaceWith:"{nodeValue} - {title}",variables:null,nodeValueTransform:function(a){return g.capitalize(a)},insertIfMatch:{}}]},rightEditorArgs:{subscribers:[{event:"addAction",handler:function(a){console.log("add action",arguments)},owner:c}]}},editorItem:a,editorOverrides:{},isOwnTab:!0}),a.user.meta.inputs.push(b),!a._completed)){a._completed=!0;var f={path:g.createUUID(),name:"Commands",isDir:!0,type:"leaf",parentId:a.path,virtual:!0,children:[]};
a.commandsItem=f;a.children.push(f);d.putSync(f);for(var q=a.user.commands,b=0;b<q.length;b++){var h=q[b];f.children.push(d.putSync({path:g.createUUID(),name:h.name,id:g.createUUID(),parentId:f.path,_mayHaveChildren:!1,virtual:!0,user:{},isDir:!1,value:h.value,ref:{protocol:a,item:h},type:"protocolCommand"}))}f={path:g.createUUID(),name:"Variables",isDir:!0,type:"leaf",parentId:a.path,virtual:!0,items:[],children:[]};d.putSync(f);a.children.push(f);a.variablesItem=f;q=a.user.variables;for(b=0;b<q.length;b++)h=
q[b],f.children.push(d.putSync({isDir:!1,path:g.createUUID(),name:h.name,id:g.createUUID(),parentId:f.path,_mayHaveChildren:!1,value:h.value,virtual:!0,user:{},ref:{protocol:a,item:h},type:"protocolVariable"}))}}},onStoreReady:function(a){a=a?g.queryStore(a,{isDir:!1}):[];var b=this;_.each(a,function(a,c,d){b._completeProtocolItem(a)})},onMainViewReady:function(){},openItemSettings:function(a){var b=a.user;if(!b||!b.meta)return null;var c=this.getViewId(a),d=registry.byId(c);try{if(d)return d.parentContainer&&
d.parentContainer.selectChild(d),null}catch(q){g.destroy(d)}var d=this.getViewTarget(),f=this.getMetaValue(a,this.itemMetaTitleField);a.beanContextName=this.ctx.mainView.beanContextName;return g.addWidget(CIGroupedSettingsView,{title:f||g.toString(a.name),cis:b.meta.inputs,beanContextName:this.ctx.mainView.beanContextName,storeItem:a,iconClass:this.beanIconClass,id:c,delegate:this,storeDelegate:this,closable:!0,showAllTab:!1,blockManager:this.ctx.getBlockManager()},this,d,!0)}})})},"xaction/Action":function(){define("dcl/dcl xide/model/Base xide/types xide/utils/ObjectUtils xide/utils xide/mixins/EventedMixin xide/cache/Circular xide/lodash".split(" "),
function(f,n,l,m,g,c,b,d){g.mixin(l,{ACTION_VISIBILITY:{MAIN_MENU:"MAIN_MENU",CONTEXT_MENU:"CONTEXT_MENU",QUICK_LAUNCH:"QUICK_LAUNCH",ACTION_TOOLBAR:"ACTION_TOOLBAR",PROPERTY_VIEW:"PROPERTY_VIEW",RIBBON:"RIBBON",widgetArgs:null,factory:function(){var a=arguments[1]||g.clone(l.ACTION_VISIBILITY),b=arguments;if(0<b[0].length&&d.isNumber(b[0][0])){var c=b[0],f=0;d.each(a,function(b,d){"function"!==typeof a[d]&&f<c.length&&(a[d+"_val"]=c[f]);f++})}if(d.isString(b[0][0])){if(!0===b[0][2])g.mixin(a[b[0][0]+
"_val"],b[0][2]);else return a[b[0][0]+"_val"]=b[0][1],a;return b[1]}return a}}});l.ACTION_VISIBILITY_ALL="ACTION_VISIBILITY_ALL";var a=f([n.dcl,c.dcl],{declaredClass:"xaction/Action",disabled:!1,destroy:function(){},enabled:!0,object:null,show:!0,group:"",types:"",command:null,icon:"fa-play",event:null,handler:null,tab:null,visibility_:null,value:null,setVisibility:function(){var a=this,b=l.ACTION_VISIBILITY;if(2==arguments.length&&d.isString(arguments[0])&&arguments[0]==l.ACTION_VISIBILITY_ALL){var c=
arguments[1];[b.MAIN_MENU,b.ACTION_TOOLBAR,b.CONTEXT_MENU,b.RIBBON,b.QUICK_LAUNCH].forEach(function(b){a.setVisibility(b,g.cloneKeys(c,!1))});return this}var f=d.isArray(arguments[0])?arguments[0]:arguments;if(!arguments[0]in b||!arguments[0])return console.error("no such visibility !",arguments[0]),this;this.visibility_=l.ACTION_VISIBILITY.factory(f,this.visibility_);return this},getVisibility:function(a){this.visibility_||this.setVisibility(l.ACTION_VISIBILITY_ALL,{});return this.visibility_?(null==
this.visibility_[a+"_val"]&&(this.visibility_[a+"_val"]={vis:a}),this.visibility_[a+"_val"]):{}},shouldDestroyWidget:function(a,b,c){a=null!=this.getVisibility?this.getVisibility(a):null;var e=!0;a&&a.permanent&&(e=!(d.isFunction(a.permanent)?a.permanent(this,b,c):a.permanent));return e}});a.create=function(b,c,d,f,q,h,m,l,n,x,w){l=null;l=new a({permanent:f,command:d,icon:c,label:b,owner:this,types:h,operation:q,group:m,handler:x,title:b});g.mixin(l,w);return l};a.createDefault=function(b,c,d,g,f,
h){return a.create(b,c,d,!1,null,null,g||"nogroup",null,!1,f,h)};return a})},"xide/cache/Circular":function(){define([],function(){function f(n){if(!(this instanceof f))return new f(n);if("object"==typeof n&&Array.isArray(n._buffer)&&"number"==typeof n._capacity&&"number"==typeof n._first&&"number"==typeof n._size)for(var l in n)n.hasOwnProperty(l)&&(this[l]=n[l]);else{if("number"!=typeof n||0!=n%1||1>n)throw new TypeError("Invalid capacity");this._buffer=Array(n);this._capacity=n;this._size=this._first=
0}}f.prototype={size:function(){return this._size},capacity:function(){return this._capacity},enq:function(f){0<this._first?this._first--:this._first=this._capacity-1;this._buffer[this._first]=f;this._size<this._capacity&&this._size++},push:function(f){this._size==this._capacity?(this._buffer[this._first]=f,this._first=(this._first+1)%this._capacity):(this._buffer[(this._first+this._size)%this._capacity]=f,this._size++)},deq:function(){if(0==this._size)throw new RangeError("dequeue on empty buffer");
var f=this._buffer[(this._first+this._size-1)%this._capacity];this._size--;return f},pop:function(){return this.deq()},shift:function(){if(0==this._size)throw new RangeError("shift on empty buffer");var f=this._buffer[this._first];this._first==this._capacity-1?this._first=0:this._first++;this._size--;return f},get:function(f,l){if(0==this._size&&0==f&&(void 0==l||0==l))return[];if("number"!=typeof f||0!=f%1||0>f)throw new TypeError("Invalid start");if(f>=this._size)throw new RangeError("Index past end of buffer: "+
f);if(void 0==l)return this._buffer[(this._first+f)%this._capacity];if("number"!=typeof l||0!=l%1||0>l)throw new TypeError("Invalid end");if(l>=this._size)throw new RangeError("Index past end of buffer: "+l);this._first+f>=this._capacity&&(f-=this._capacity,l-=this._capacity);return this._first+l<this._capacity?this._buffer.slice(this._first+f,this._first+l+1):this._buffer.slice(this._first+f,this._capacity).concat(this._buffer.slice(0,this._first+l+1-this._capacity))},toarray:function(){return 0==
this._size?[]:this.get(0,this._size-1)}};return f})},"xcf/manager/Application":function(){define("dcl/dcl require xide/manager/Application xide/utils xide/types xdojo/declare xdojo/has xdojo/has!xcf-ui?xcf/manager/Application_UI xdojo/has!xexpression?xexpression/Expression".split(" "),function(f,n,l,m,g,c,b,d,a){return f(l,{declaredClass:"xcf.manager.Application",vfsItems:null,onReloaded:function(){},onMountDataReady:function(a){},onPluginLoaded:function(a){this.publish(g.EVENTS.ON_PLUGIN_READY,{name:a.name,
mainView:this.rootView,config:this.config,ctx:this.ctx,panelManager:this,fileManager:this.ctx.getFileManager(),store:this.store,serviceObject:this.ctx.getService()},this)},_onXBlocksReady:function(){n("xfile/manager/BlockManager");var a=this.ctx;if(a.blockManager)a.blockManager.onReady();n(["xcf/manager/BlockManager"],function(b){a.blockManager=new b;a.blockManager.ctx=a;a.blockManager.updatePalette=!1;a.blockManager.init();a.blockManager.onReady();a.blockManager.serviceObject=a.fileManager.serviceObject});
var b=n("xblox/views/BlocksFileEditor");a.registerEditorExtension("xBlocks","xblox","fa-play-circle-o",this,!0,null,b,{ctx:this.ctx,mainView:this.mainView,blockManagerClass:"xfile.manager.BlockManager",registerView:!0})}})})},"xide/manager/Application":function(){define("dcl/dcl xdojo/has xide/manager/ManagerBase xide/types xide/utils dojo/Deferred dojo/promise/all dojo/has!host-browser?xide/manager/Application_UI".split(" "),function(f,n,l,m,g,c,b,d){return f([l],{declaredClass:"xide.manager.Application",
container:null,ctx:null,_debug:!0,_loadedComponents:{},_loadingComponents:null,getComponents:function(){return this._loadedComponents},doComponents:function(){function a(a,b){if(n(a)&&d[a]&&d[a].dfd){var e=new c;k.push(e);d[a].dfd.then(function(){b(e)})}}var d=this.loadComponents(),g=require,f=this,k=[],q=new c;if(!d||!d.dfd)return console.error("componentsToLoad is null or has no head dfd"),d;var h=m.COMPONENT_NAMES;a(h.XTRACK,function(a){a.resolve()});a(h.XFILE,function(a){a.resolve()});a(h.XIDEVE,
function(a){f.initXIDEVE().then(function(){a.resolve()})});a(h.XNODE,function(a){f.initXNODE().then(function(){a.resolve()})});a(h.XBLOX,function(a){g(["xblox/embedded_ui","xfile/manager/BlockManager","xblox/views/BlocksFileEditor"],function(){a.resolve()})});d.dfd.then(function(){b(k).then(function(){q.resolve()})});q.then(function(){f.registerEditorExtensions()});return q},loadComponents:function(a){if(this._loadingComponents)return this._loadingComponents;var b=this,d,f;b._loadedComponents={};
a=a||g.getJson(this.ctx.getResourceManager().getVariable("COMPONENTS"));_.each(a,function(b,c){!1===n(c)&&delete a[c]});if(!a)return null;d=function(){var c=_.find(a,{status:0});c?f(c.name,c):(a.dfd.resolve(a),b.publish(m.EVENTS.ON_ALL_COMPONENTS_LOADED,a),a.dfd.resolve())};f=function(a,c){var e=c.settings;!1===n(a)&&console.error("loading component "+a+"which is disabled by has!");b.ctx.getPluginManager().loadComponent(a,null,!0===e?null:e).then(function(e){b._loadedComponents[a]=e;e={component:e,
name:a};c.dfd.resolve(e);b.publish(m.EVENTS.ON_COMPONENT_READY,e);c.status=1;d()})};for(var k in a){var q=""+k,h=a[q];a[q]=h?{settings:h,status:0,name:q,dfd:new c}:{status:1}}a.dfd=new c;d();return this._loadingComponents=a},hasComponent:function(a){var b=g.getJson(this.ctx.getResourceManager().getVariable("COMPONENTS"));return!(!b||!b[a])}})})},"xcf/manager/LogManager":function(){define(["dcl/dcl","xlog/manager/LogManager"],function(f,n){return f(n,{declaredClass:"xcf.manager.LogManager",ls:function(f){var m=
this;return this.callMethodEx(null,"ls",["unset"],function(g){m.rawData=g;m.initStore(g);f&&f(g)},!0)}})})},"xlog/manager/LogManager":function(){define("dcl/dcl xdojo/declare xide/manager/ServerActionBase xide/manager/BeanManager xide/encoding/MD5 xide/types xide/utils dojo/cookie dojo/json dojo/Deferred xide/data/Memory xide/mixins/EventedMixin".split(" "),function(f,n,l,m,g,c,b,d,a,e,r,p){var k=n([p],{bytesLoaded:null,percentValue:null,item:null,delegate:null,_onEnd:null,_onHandle:null,serviceClass:"XIDE_Log_Service",
constructor:function(a){this.item=a;this.subscribe(a.progressMessage,this._onProgress);this.subscribe(a.progressFailedMessage,this._onProgressFailed)},_onProgressFailed:function(a){this.item.level="error";this.item.message=this.item.oriMessage+" : Failed";this.item._isTerminated=!0;a&&a.item&&a.item.error&&this.item.details&&(this.item.details.error=a.item.error)},_onFinish:function(){this._onHandle&&this._onHandle.remove()},_onProgress:function(a){try{var b=a.progress;a=null;null==a&&(a=Math.round(100*
b.loaded/b.total),this.bytesLoaded=b.loaded);this.percentValue!=a&&(this.item.message=""+(""+this.item.oriMessage+(" : "+a+"%")));this.percentValue=a;this._emit("progress");100<=this.percentValue&&(this.item.message=this.item.oriMessage+" : Done",this._emit("finish"),this._onFinish(),this.destroy())}catch(u){console.error("crash in log progress "+u)}}});return f([l,m],{declaredClass:"xcf.manager.LogManager",serviceClass:"XIDE_Log_Service",cookiePrefix:"logging",singleton:!0,serviceView:null,clients:null,
beanNamespace:"logging",views:null,stores:{},removeStore:function(a){var b=this.stores[a];b&&(b.destroy&&b.destroy(),delete this.stores[a])},getViewId:function(a){return this.beanNamespace+g(JSON.stringify({info:a.info}),1)},loadPreferences:function(){var b=d(this.cookiePrefix+"_debug_settings");return b=b?a.parse(b):{}},savePreferences:function(b){d(this.cookiePrefix+"_debug_settings",a.stringify(b))},empty:function(a){this.clear(a);a=this.getStore(a);a.then&&a.then(function(a){a.setData([])})},
clear:function(a){return this.runDeferred(null,"clearAbs",[a||""]).then(function(a){})},getViewTarget:function(){return this.ctx.getApplication().mainView.getNewAlternateTarget()},getStore:function(a){if(!a)return this.store;var c=new e;if(this.stores[a])return c.resolve(this.stores[a]),c;var d=this;this.runDeferred(null,"lsAbs",[a||""]).then(function(e){_.isString(e)&&(e=b.getJson(e));e=d.initStore(e);d.stores[a]=e;c.resolve(e)});return c},isValid:function(){return null!=this.store},_buildLoggingMessage:function(a){var c=
{id:b.createUUID(),level:a.level,message:a.message,host:"",data:a.data||{},time:a.time||(new Date).getTime(),type:"",show:!0,showDevice:!0};a.type&&(c.type=a.type);a.device&&a.device.host&&(c.host=a.device.host+":"+a.device.port);a.deviceMessage&&(c.message=c.message+":"+a.deviceMessage);c.ori=a;return c},initStore:function(a){var c={identifier:"time",label:"level",items:[],sort:"time"};0==a.length&&(a=[]);for(var d=0;d<a.length;d++)c.items.push(this._buildLoggingMessage(a[d]));return new (n("LogStore",
[r],{}))({idProperty:"time",data:c,id:b.createUUID()})},createLoggingView:function(a,c,d){c=c||this.getViewTarget();return b.addWidget(!1,{delegate:this,store:a,title:"Log",closable:!0,style:"padding:0px",silent:d},this,c,!0)},updateViews:function(a,b){for(var c=0;c<this.views.length;c++)this.views[c].update(a,b)},refreshViews:function(){for(var a=0;a<this.views.length;a++)this.views[a].grid.refresh()},addLogView:function(a){this.views.push(a)},openLogView:function(a,b){this.isValid()||this.initStore([]);
a=this.createLoggingView(this.store,a,b);this.views.push(a);return a},_createPendingEvent:function(a,b,c,d){function e(a){!b._isTerminated&&g&&(b.message=b.oriMessage+" : Done",a&&!0===a.failed&&(b.level="error",b.message=b.oriMessage+" : Failed"),b._isTerminated=!0,g.remove(),g=null,f.refreshViews(),b.progressHandler&&b.progressHandler.destroy())}var g=null,f=this;b._isInProgress=!0;g=f.subscribe(c,e,f)[0];b.showProgress&&b.progressMessage&&!b.progressHandler&&(a=new k(b,this),a._onEnd=e,a._onEndHandle=
g,b.progressHandler=a)},addLoggingMessage:function(a){if(a&&a.data){var c=a.data.logId;!c&&a.data&&a.data.device&&(c=a.data.device,c=c.host+"_"+c.port+"_"+c.protocol)}var d={id:b.createUUID(),level:a.level,message:a.message,host:a.host||"",data:a.data||{},time:a.time||(new Date).getTime(),type:a.type||"",show:!0,showDevice:!0,terminatorItem:a.item,terminatorMessage:a.terminatorMessage,showProgress:a.showProgress,progressMessage:a.progressMessage,progressFailedMessage:a.progressFailedMessage,details:a.details};
a.data&&(a.data.type&&(d.type=a.data.type),a.data.device&&a.data.device.host&&(d.host=a.data.device.host+":"+a.data.device.port),a.data.deviceMessage&&(d.message=d.message+":"+a.data.deviceMessage));try{null==d.terminatorMessage||d._isTerminated||(null==d.oriMessage&&(d.oriMessage=""+d.message),this._createPendingEvent(d.oriMessage,d,d.terminatorMessage,d.time));var e=this.getStore(c);e&&(e.then?e.then(function(a){e=a;d=a.putSync(d);a._emit("added",{item:d,store:e})}):(d=e.putSync(d),e._emit("added",
{item:d,store:e})))}catch(t){console.error("adding log message to store failed "+t)}},onServerLogMessage:function(a){a.data&&a.data.time&&(a.time=a.data.time);this.addLoggingMessage(a);!0===a.write&&this.publish(c.EVENTS.ON_CLIENT_LOG_MESSAGE,{message:a.message,data:a.data,details:a.details,level:a.level,type:a.type,time:a.data.time||a.time})},init:function(){this.subscribe([c.EVENTS.ON_SERVER_LOG_MESSAGE]);this.views=[];this.stores={}},onStoreReloaded:function(){for(var a=0;a<this.views.length;a++){var b=
this.views[a];b.reload(this.store);b.update()}},reload:function(){var a=this;this.currentItem=null;this.ls(function(b){a.onStoreReloaded(b)})},ls:function(a,c,d){var e=this;return this.callMethodEx(null,"lsAbs",[c||""],d||function(c){e.rawData=c;_.isString(c)&&(c=b.getJson(c));e.store=e.initStore(c);a&&a(c)},!0)}})})},"xide/manager/ResourceManager":function(){define(["dcl/dcl","xide/manager/ServerActionBase","xide/utils","xide/mixins/VariableMixin"],function(f,n,l,m){return f([n,m.dcl],{declaredClass:"xide.manager.ResourceManager",
serviceClass:"XApp_Resource_Service",resourceData:null,resourceVariables:null,getResourceVariables:function(){return this.resourceVariables},setVariable:function(g,c){return this.resourceVariables[g]=c},getVariable:function(g){return this.resourceVariables[g]},init:function(){this.resourceVariables||(this.resourceVariables={})},replaceVariables:function(g,c){return l.multipleReplace(""+g,c||this.resourceVariables)}})})},"xide/mixins/VariableMixin":function(){define(["dcl/dcl","xdojo/declare","xide/utils"],
function(f,n,l){var m={resolve:function(g,c,b){c=c||this.resourceVariables||this.ctx.getResourceManager().getResourceVariables()||null;b=b||this.variableDelimiters||null;return l.replace(g,null,c,b)}};n=n("xide/mixins/VariableMixin",null,m);n.dcl=f(null,m);return n})},"xide/manager/PluginManager":function(){define("dcl/dcl dojo/has xide/manager/ManagerBase xide/utils xide/types xide/factory dojo/Deferred dojo/promise/all".split(" "),function(f,n,l,m,g,c,b,d){return f(l,{declaredClass:"xide.manager.PluginManager",
_defaultPackageLocationPrefix:"../../",_defaultPackageLocationSuffix:"/component",_defaultComponentFlags:{LOAD:1,RUN:2},defaultComponentMixin:function(a){return{owner:this,ctx:this.ctx,flags:a}},componentBaseClasses:null,ctx:null,pluginResources:null,pluginInstances:null,_componentReady:function(a,b,c){if(b.RUN)try{a.run(this.ctx)}catch(p){}return c.resolve(a)},_componentLoaded:function(a,b,d,g){try{m.mixin(d,this.defaultComponentMixin(b));var e=c.createInstance(a,d,this.componentBaseClasses),f=function(a,
b,c){this._componentReady(a,b,c)}.bind(this);b.LOAD?e.load().then(function(){f(e,b,g)}):f(e,b,g)}catch(h){g.reject(arguments),logError(h)}},loadComponent:function(a,c,d,g,f){d="true"===d?{}:d;a=a.includes("/")?a:this._defaultPackageLocationPrefix+a+this._defaultPackageLocationSuffix;c=null!=c?c:this._defaultComponentFlags;var e=new b,h=this;(g=m.getObject(a))?_.isFunction(g.then)?g.then(function(a){h._componentLoaded(a,c,d,e)},function(b){console.error("error in loading component at path "+a,b)}):
this._componentLoaded(g,c,d,e):console.error("cant get object at "+a);return e},loadComponentResources:function(a,b){},reloadComponent:function(a){},loadPlugins:function(a){var c=this;if(n("plugins")){var f=new b,m=[],k=this;this.pluginResources=a;this.pluginInstances=[];this.pluginResources&&this.pluginResources.forEach(function(a){a.type&&"JS-PLUGIN"==a.type&&a.path&&m.push(c.loadComponent(a.path,null,a).then(function(b){b.pluginResources=a;k.pluginInstances.push(b)}))});d(m).then(function(){f.resolve(m);
k.publish(g.EVENTS.ALL_PLUGINS_READY,{instances:k.pluginInstances,resources:a})});return f}}})})},"nxapp/manager/DeviceManager":function(){define("dcl/dcl dojo/node!fs xcf/manager/DeviceManager xide/utils xide/types nxapp/utils/_console nxapp/utils dojo/node!child_process".split(" "),function(f,n,l,m,g,c,b,d){function a(a,b,c,d,g,f,m){r.exec(c,p,function(a,b,c){if(b&&127===parseInt(b,10)&&(e.error("--have error "+c),m&&m.onCommandError))m.onCommandError();b&&0===parseInt(b,10)&&e.error("--terminate with "+
b);b&&1===parseInt(b,10)&&e.error("--terminate with 1 "+b);e.error("response ",arguments)}.bind(this))}var e=c;f(null,{emit:function(){e.error("device server client emit",arguments)}});var r=d,p={stdout:!0,stderr:!0,stdin:!0,failOnError:!0,stdinRawMode:!1,killSignal:"SIGTERM"};return f(l,{declaredClass:"nxapp.manager.DeviceManager",connection:null,runShell:function(a,b,c){var d=this.getContext().getConnectionManager();r.exec(a,p,function(b,f,h){f&&127===parseInt(f,10)&&e.error("--have error "+h);
b&&e.log("err",b);f&&e.log("stdout",f);h&&e.log("stderr",h);f&&0===parseInt(f,10)&&e.info("--terminate with 0"+f);if(f&&1===parseInt(f,10)){e.info("--terminate with 1 "+f);try{d.onData(d.getConnection2(c),m.mixin({cmd:a,event:g.EVENTS.ON_COMMAND_FINISH,result:f},c),new Buffer(f))}catch(w){e.error("onFinish-Error:",w)}}}.bind(this))},runShell2:function(b,c,d,e,g,f){g=b.options;a(b,{host:g.host,port:g.port,protocol:g.protocol},c,d,e,p,f)},onDeviceMetaChanged:function(a,c){var d=this.store;d&&_.each(d.data,
function(d){if(-1!==d.path.indexOf(c)&&n.existsSync(a)){var e=m.getJson(b.readFile(a));e&&(d.user=e)}})},onFileChanged:function(a){if("changed"===a.type&&!a._did){a._did=!0;a=m.replaceAll("\\","/",a.path);a=m.replaceAll("//","/",a);a=a.replace(/\\/g,"/");var b;b=a;b=-1!=b.indexOf("system/devices")?b.substr(b.indexOf("system/devices")+15,b.length):null;if(b&&-1!==b.indexOf(".meta.json"))this.onDeviceMetaChanged(a,b)}},checkDeviceServerConnection:function(){},sendManagerCommand:function(a,b){try{var c=
this.ctx.getDeviceServer();a={manager_command:a};m.mixin(a,b);c.handleManagerCommand(a,this.connection)}catch(u){e.error("error "+u.message,u.stack)}},sendDeviceCommand:function(a,b,c,d){a=a.options;m.mixin({src:c},a);b={command:b,device_command:"Device_Send",options:a};m.mixin(b.options,{params:{src:c,id:d}});this.ctx.getDeviceServer().handleDeviceCommand(b,this.connection)},debug:function(){e.log("------------stores");e.log("have "+_.size(this.stores));_.each(this.stores,function(a){})}})})},"xcf/manager/BlockManager":function(){define(["dcl/dcl",
"xide/types","xide/manager/ManagerBase","xblox/manager/BlockManager","xide/lodash"],function(f,n,l,m,g){return f([l,m],{declaredClass:"xcf.manager.BlockManager",onReady:function(){},addDriverFunctions:function(c,b){for(var d in b)"constructor"!==d&&"inherited"!==d&&g.isFunction(b[d])&&(c[d]=b[d])},setScriptFunctions:function(c,b,d){var a=d;b.context||(b.context=c);c.blockScope||(c.blockScope=b);b.context&&b.context.instance&&(b.device=b.context.instance);c.callCommand||(c.callCommand=function(a){(a=
this.blockScope.getBlockByName(a))&&a.solve(this.blockScope)});c.setVariable||(c.setVariable=function(d,g,f,k,m){if(d=this.blockScope.getVariable(d))d.value=g,d.set("value",g),!1!==k&&a.publish(n.EVENTS.ON_DRIVER_VARIABLE_CHANGED,{item:d,scope:b,driver:c,owner:a,save:!0===f,source:m||n.MESSAGE_SOURCE.BLOX})});c.getVariable||(c.getVariable=function(a){return(a=this.blockScope.getVariable(a))?a.value:""});this.inherited(arguments)},onReloaded:function(){this.init()},getDeviceVariablesAsEventOptions:function(){},
onCreateVariableCI:function(c){}})})},"xblox/manager/BlockManager":function(){define("dcl/dcl dojo/has dojo/Deferred dojo/promise/all xide/types xide/utils xide/factory xblox/model/ModelBase xblox/model/Scope xblox/model/BlockModel xide/mixins/ReloadMixin xide/manager/ManagerBase xblox/data/Store xdojo/has!xblox-ui?xblox/manager/BlockManagerUI xide/lodash".split(" "),function(f,n,l,m,g,c,b,d,a,e,r,p,k,q,h){return f([p,r.dcl],{declaredClass:"xblox/manager/BlockManager",serviceObject:null,loaded:{},
test:function(){},scope:null,scopes:null,_createBlock:null,_registerActions:function(){},toScope:function(a){try{a=c.getJson(a)}catch(x){return console.error("BlockManager::toScope: failed,err\x3d"+x),null}a||(console.error("correct data"),a={blocks:[],variables:[]});var b=c.createUUID(),d=a;!h.isArray(a)&&h.isObject(a)&&(b=a.scopeId||b,d=a.blocks||[]);a=this.getScope(b,{owner:this},!0);d=a.blocksFromJson(d);for(b=0;b<d.length;b++)d[b]._lastRunSettings={force:!1,highlight:!0};a.serviceObject=this.serviceObject;
return a},loadFiles:function(a){for(var b=[],c=new l,d=0;d<a.length;d++){var e=a[d];b.push(this.load(e.mount,e.path,e.force))}m(b).then(function(a){c.resolve(a)});return c.promise},load:function(a,b,d){var e=new l,g=this,f=c.replaceAll("/","",a),h=c.replaceAll("./","",b),k=f+h,k=k.trim();this.loaded[k]&&!0===d&&(this.removeScope(this.loaded[k].id),this.loaded[k]=null);if(!0!==d&&this.loaded[k])return e.resolve(this.loaded[k]),e.promise;this.ctx.getFileManager().getContent(f,h,function(c){if(c=g.toScope(c))g.loaded[k]=
c,c.mount=a,c.path=b;e.resolve(c)},!1);return e.promise},onBlocksReady:function(a){for(var b=a.allBlocks(),c=0;c<b.length;c++)this.setScriptFunctions(b[c],a,this);if((a=a.getBlocks({group:"On Load"}))&&0<a.length)for(c=0;c<a.length;c++)if(b=a[c],b.onLoad)b.onLoad()},getBlock:function(){},setScriptFunctions:function(a,b,c){a.blockScope||(a.blockScope=b);b.serviceObject=this.serviceObject;a.setVariable||(a.setVariable=function(d,e,f,h,k){if(d=this.blockScope.getVariable(d))d.value=e,!1!==h&&c.publish(g.EVENTS.ON_VARIABLE_CHANGED,
{item:d,scope:b,driver:a,owner:c,save:!0===f,source:k||g.MESSAGE_SOURCE.BLOX})});a.getVariable||(a.getVariable=function(a){return(a=this.blockScope.getVariable(a))?a.value:""})},hasScope:function(a){this.scopes||(this.scopes={});return this.scopes[a]?this.scopes[a]:null},getScope:function(a,c,d){this.scopes||(this.scopes={});if(!this.scopes[a]&&(this.scopes[a]=this.createScope({id:a,ctx:this.ctx}),this.scopes[a].userData=c,!1!==d))try{b.publish(g.EVENTS.ON_SCOPE_CREATED,this.scopes[a])}catch(x){console.error("bad, scope creation failed "+
x,x)}return this.scopes[a]},removeScope:function(a){this.scopes||(this.scopes={});for(var b in this.loaded)this.loaded[b].id==a&&delete this.loaded[b];this.scopes[a]&&(this.scopes[a]._destroy(),delete this.scopes[a]);return null},createScope:function(b,d,g){d=d||[];var f=new k({data:[],Model:e,id:c.createUUID(),__events:{},observedProperties:["name","enabled","value"],getLabel:function(a){return a.name},labelAttr:"name"});f.reset();f.setData([]);f={owner:this,blockStore:f,serviceObject:this.serviceObject,
config:this.config};c.mixin(f,b);try{var h=new a(f);d&&h.initWithData(d,g);h.init()}catch(A){logError(A,"error creating scope, data:",b)}return h},onReloaded:function(){},init:function(){this.scope={variables:[],blocks:[]};d.prototype.types=g;d.prototype.factory=b;if(this.onReady)this.onReady()}})})},"xblox/model/Scope":function(){define("dcl/dcl ./ModelBase ./Expression xide/factory xide/utils xide/types xide/mixins/EventedMixin dojo/_base/lang dojo/has xide/encoding/MD5 xcf/model/Variable xdojo/has!host-node?nxapp/utils/_console".split(" "),
function(f,n,l,m,g,c,b,d,a,e,r,p){var k="undefined"!==typeof window?window.console:"undefined"!==typeof global?global.console:p;p&&(k=p);var q=a("xcf-ui");n=f([n,b.dcl],{declaredClass:"xblox.model.Scope",variableStore:null,serviceObject:null,context:null,blockStore:null,expressionModel:null,start:function(){if(!0===this.__didStartBlocks)k.error("already started blocks");else{this.__didStartBlocks=!0;var a=this.getVariable("value");a||(a=new r({id:g.createUUID(),name:"value",value:"",scope:this,type:13,
group:"processVariables",gui:!1,cmd:!1}),this.blockStore.putSync(a));var a=[],b=this.getBlocks({group:c.COMMAND_TYPES.INIT_COMMAND}),d=this;try{_.each(b,function(a){!1!==a.enabled&&!0!==a.__started&&(a.solve(d),a.__started=!0)},this)}catch(x){k.error("starting init blocks failed",x),logError(x,this)}a=a.concat(this.getBlocks({group:c.COMMAND_TYPES.BASIC_COMMAND}));for(b=0;b<a.length;b++){var e=a[b];e.enabled&&e.start&&e.startup&&!0!==e.__started&&(e.start(),e.__started=!0)}}},getExpressionModel:function(){this.expressionModel||
(this.expressionModel=new l);return this.expressionModel},toFriendlyName:function(a,b){if(!b||!a)return null;a=this;var c=this.ctx,d=this.driver,e=c.getDeviceManager(),d=c.getDriverManager();if(-1==b.indexOf("://"))return(a=a.getBlockById(b))?a.name:b;var c=g.parse_url(b),c=g.urlArgs(c.host),f=e.getItemById(c.device.value);return f&&(e=e.toDeviceControlInfo(f),d=d.getDriverById(e.driverId),(f=f.driverInstance)||d)&&(a=d.blockScope?d.blockScope:f?f.blockScope:a,(a=a.getStore().getSync(c.block.value))||
f&&f.blockScope&&(a=f.blockScope.getBlock(c.block.value)))?e.title+"/"+a.name:b},getContext:function(){return this.instance},toString:function(){var a={blocks:null,variables:null},b=this.blocksToJson();try{g.fromJson(JSON.stringify(b))}catch(v){return}a.blocks=b;return JSON.stringify(a,null,2)},initWithData:function(a,b){a&&this.blocksFromJson(a,null,b);this.clearCache()},getService:function(){return this.serviceObject},getStore:function(){return this.blockStore},reset:function(){this.getExpressionModel().reset()},
empty:function(){this.clearCache();var a=this.blockStore,b=this.getBlocks();a.silent(!0);_.each(b,function(b){b&&a.removeSync(b.id)});a.setData([]);a.silent(!1)},fromScope:function(a){var b=this.blockStore;b.silent(!0);this.empty();a=a.blocksToJson();this.blocksFromJson(a);b.silent(!1)},clearCache:function(){this.getExpressionModel().reset()},getVariableStore:function(){return this.blockStore},getBlockStore:function(){return this.blockStore},getVariables:function(a){if(!this.blockStore)return[];var b=
this.blockStore.data,c=[];if(a&&"processVariables"===a.group){for(a=0;a<b.length;a++)"processVariables"===b[a].group&&c.push(b[a]);return c}if(!a){for(a=0;a<b.length;a++){var d=b[a],e=d.declaredClass;"xblox.model.variables.Variable"!=e&&"xcf.model.Variable"!=e||c.push(d)}return c}return this.blockStore.query(a)},loopBlock:function(a,b){1==a._destroyed&&k.error("block destroyed");var c=a.getInterval?a.getInterval():0;if(a&&0<c&&a.enabled&&!0!==a._destroyed){var d=this;a._loop&&clearInterval(a._loop);
a._loop=setInterval(function(){!a.enabled||a._destroyed?(clearInterval(a._loop),a._loop=null):a.solve(d,b||a._lastSettings)},c)}},getEventsAsOptions:function(a){var b=[],d;for(d in c.EVENTS)b.push({label:c.EVENTS[d],value:c.EVENTS[d]});b=b.concat([{label:"onclick",value:"onclick"},{label:"ondblclick",value:"ondblclick"},{label:"onmousedown",value:"onmousedown"},{label:"onmouseup",value:"onmouseup"},{label:"onmouseover",value:"onmouseover"},{label:"onmousemove",value:"onmousemove"},{label:"onmouseout",
value:"onmouseout"},{label:"onkeypress",value:"onkeypress"},{label:"onkeydown",value:"onkeydown"},{label:"onkeyup",value:"onkeyup"},{label:"onfocus",value:"onfocus"},{label:"onblur",value:"onblur"},{label:"onchange",value:"onchange"}]);for(d=0;d<b.length;d++){var e=b[d];if(e.value===a){e.selected=!0;break}}return b},getVariablesAsObject:function(){for(var a=this.getVariables(),b={},c=0;c<a.length;c++)b[a[c].title]=a[c].value;return b},getVariablesAsOptions:function(){var a=this.getVariables(),b=[];
if(a)for(var c=0;c<a.length;c++)b.push({label:a[c].label,value:a[c].variable});return b},getCommandsAsOptions:function(a){var b=this.getBlocks({declaredClass:"xcf.model.Command"}),c=[];if(b)for(var d=0;d<b.length;d++){var e={};e[a||"label"]=b[d].name;e.value=b[d].name;c.push(e)}return c},_cached:null,getBlocks:function(a,b){if(!q&&!1!==b&&(this._cached||(this._cached={}),a)){var c=e(JSON.stringify(a),1);if(c=this._cached[c])return c}if(!this.blockStore)return[];a=a||{id:/\S+/};var d=_.isEmpty(a)?
this.blockStore.data:this.blockStore.query(a,null,!0);q||!1===b||(c=e(JSON.stringify(a),1),this._cached[c]=d);return d},registerVariable:function(a){this.variables[a.title]=a;this.blockStore&&this.blockStore.putSync(a)},getVariable:function(a){for(var b=this.getVariables(),c=0;c<b.length;c++){var d=b[c];if(d.name===a)return d}return null},getVariableById:function(a){if(!a)return null;var b=a.split("/"),c=this;2==b.length&&((a=c.owner)&&a.hasScope&&(a.hasScope(b[0])?c=a.getScope(b[0]):k.error("have scope id but cant resolve it",
this)),a=b[1]);return(b=c.blockStore.getSync(a))?b:null},registerBlock:function(a,b){var c=this.blockStore;if(c){var d=c.getSync(a.id);if(d)return d;d=null;return d=a.addToStore?a.addToStore(c):c.putSync(a,b)}},allBlocks:function(a,b){return this.getBlocks({},b)},hasGroup:function(a){for(var b=this.allGroups({},!1),c=0;c<b.length;c++)if(b[c]===a)return!0;return!1},allGroups:function(){for(var a=[],b=this.allBlocks({},!1),c=function(b){for(var c=0;c<a.length;c++)if(a[c]===b)return!0;return!1},d=0;d<
b.length;d++){var e=b[d];e.parentId||(e.group?c(e.group)||a.push(e.group):c("No Group")||a.push("No Group"))}return a},variablesToJson:function(){var a=[],b=this.variableStore?this.getVariables():this.variables,c;for(c in b){var d=b[c];if(!1!==d.serializeMe&&null!=d.keys){var e={},g;for(g in d)if(this.isString(d[g])||this.isNumber(d[g])||this.isBoolean(d[g]))e[g]=d[g];a.push(e)}}return a},isScript:function(a){return this.isString(a)&&(-1!=a.indexOf("return")||-1!=a.indexOf(";")||-1!=a.indexOf("[")||
-1!=a.indexOf("{")||-1!=a.indexOf("}"))},variablesToJavascriptEx:function(a,b){for(var c=[],d=this.variableStore?this.getVariables():this.variables,e=0;e<d.length;e++){var g=d[e];if(g!=a){var f=""+g.value;a&&a.value&&-1==a.value.indexOf(g.title)||b&&-1==b.indexOf(g.title)||0==f.length||(this.isScript(f)||-1!=f.indexOf("'")?this.isScript(f)&&(f=this.expressionModel.parseVariable(this,g)):f="'"+f+"'","''"===f&&(f="'0'"),c.push(f))}}return c},variablesToJavascript:function(a,b){for(var c="",d=this.variableStore?
this.getVariables():this.variables||[],e=0;e<d.length;e++){var g=d[e];if(g!=a){var f=""+g.value;a&&a.value&&-1==a.value.indexOf(g.title)||b&&-1==b.indexOf(g.title)||0==f.length||(this.isScript(f)||-1!=f.indexOf("'")?this.isScript(f)&&(f=this.expressionModel.parseVariable(this,g)):f="'"+f+"'","''"===f&&(f="'0'"),c+="var "+g.title+" \x3d "+f+";",c+="\n")}}return c},variablesFromJson:function(a){for(var b=[],c=0;c<a.length;c++){var d=a[c];d.scope=this;if(d.declaredClass){var e=g.replaceAll(".","/",d.declaredClass);
(e=require(e))&&b.push(new e(d))}else k.log(" variable has no class ")}return b},regenerateIDs:function(a){for(var b=this,c=function(a){var d=g.createUUID(),e=b.getBlocks({parentId:a.id});if(e&&0<e.length)for(var f=0;f<e.length;f++){var h=e[f];h.parentId=d;c(h)}a.id=d},d=0;d<a.length;d++)c(a[d])},cloneBlocks2:function(a,b){a=this.blocksToJson(a);var c=this.owner.getScope(g.createUUID(),null,!1);a=c.blocksFromJson(a,!1);var d=this.blockStore;a=c.allBlocks();c.regenerateIDs(a);a=c.blocksToJson(a);
if(b)for(c=0;c<a.length;c++){var e=a[c];null==e.parentId&&(e.group=b)}var f=[];a=this.blocksFromJson(a);_.each(a,function(a){f.push(d.getSync(a.id))});return f},cloneBlocks:function(a){a=this.blocksToJson(a);var b=this.owner.getScope(g.createUUID(),null,!1);a=b.blocksFromJson(a,!1);a=b.allBlocks();for(b=0;b<a.length;b++){var c=a[b];c.id=g.createUUID();c.parentId=null}this.blocksToJson(a);this.blocksFromJson(a);return a},blockToJson:function(a){var b={_containsChildrenIds:[]},c;for(c in a)if("ctrArgs"!=
c&&("function"===typeof a[c]||a.serializeField(c))){if(this.isString(a[c])||this.isNumber(a[c])||this.isBoolean(a[c]))b[c]=a[c];if("parent"!=c)if(this.isBlock(a[c]))b[c]=a[c].id,b._containsChildrenIds.push(c);else if(this.areBlocks(a[c])){b[c]=[];for(var d=0;d<a[c].length;d++)b[c].push(a[c][d].id);b._containsChildrenIds.push(c)}}return b},blocksToJson:function(a){try{var b=[];a=a&&a.length?a:this.blockStore?this.blockStore.data:this.blocks;for(var c in a){var d=a[c];if(null!=d.keys&&!1!==d.serializeMe){var e=
{_containsChildrenIds:[]},g;for(g in d)if("ctrArgs"!=g&&("function"===typeof d[g]||d.serializeField(g))){if(this.isString(d[g])||this.isNumber(d[g])||this.isBoolean(d[g]))e[g]=d[g];_.isObject(d[g])&&d.serializeObject&&!0===d.serializeObject(g)&&(e[g]=JSON.stringify(d[g],null,2));if("parent"!=g)if(this.isBlock(d[g]))e[g]=d[g].id,e._containsChildrenIds.push(g);else if(this.areBlocks(d[g])){e[g]=[];for(var f=0;f<d[g].length;f++)e[g].push(d[g][f].id);e._containsChildrenIds.push(g)}}b.push(e)}}}catch(B){k.error("from json failed : "+
B)}return b},_createBlockStore:function(){},blockFromJson:function(a){a.scope=this;null==a._containsChildrenIds&&(a._containsChildrenIds=[]);for(var b={},c=0;c<a._containsChildrenIds.length;c++){var d=a._containsChildrenIds[c];b[d]=a[d];a[d]=null}delete a._containsChildrenIds;if(!a.declaredClass)return k.log(" not a class "),null;d=c=null;try{d=g.replaceAll(".","/",a.declaredClass),c=require(d)}catch(x){try{d=g.replaceAll("/",".",a.declaredClass),c=require(d)}catch(w){}}c||(c=f.getObject(a.declaredClass));
if(!c)return null;d=null;try{d=m.createBlock(c,a)}catch(x){return logError(x),null}d._children=b;return d},blocksFromJson:function(a,b,c){for(var d=[],e={},h=0;h<a.length;h++){var p=a[h];p.scope=this;null==p._containsChildrenIds&&(p._containsChildrenIds=[]);for(var l={},q=0;q<p._containsChildrenIds.length;q++){var n=p._containsChildrenIds[q];l[n]=p[n];p[n]=null}delete p._containsChildrenIds;if(p.declaredClass){var r=q=null;try{r=g.replaceAll(".","/",p.declaredClass),q=require(r)}catch(F){k.error("couldnt resolve class "+
r)}q||(q=f.getObject(p.declaredClass));if(q){r=null;try{r=m.createBlock(q,p,null,!1)}catch(F){k.error("error in block creation ",F+" "+p.declaredClass);logError(F);continue}r._children=l;e[r.id]=l;d.push(r)}else k.log("couldnt resolve "+r)}else k.log(" not a class ")}a=this.allBlocks(null,!1);for(h=0;h<a.length;h++){p=a[h];p._children=e[p.id];if(p._children){for(n in p._children)if("string"==typeof p._children[n])(l=this.getBlockById(p._children[n]))?(p[n]=l,l.parent=p,l.postCreate&&l.postCreate()):
(this.blockStore.removeSync(p._children[n]),c&&c(" couldnt resolve child: "+p._children[n]+"@"+p.name+":"+p.declaredClass),k.log(" couldnt resolve child: "+p._children[n]+"@"+p.name+":"+p.declaredClass));else if("object"==typeof p._children[n])for(p[n]=[],q=0;q<p._children[n].length;q++)(l=this.getBlockById(p._children[n][q]))?(p[n].push(l),(r=this.getBlockById(l.parentId))?l.parent=r:c?(l.group="Orhpan",l.parentId=null,l.parent=null,c("child has no parent")):k.error("child has no parent ")):
(c&&c(" couldnt resolve child: "+p._children[n]+"@"+p.name+":"+p.declaredClass),k.log(" couldnt resolve child: "+p._children[n][q]+"@"+p.name+":"+p.declaredClass));delete p._children}!1!==b&&null!=p.parentId&&null==this.getBlockById(p.parentId)&&(p.parentId=null);p.postCreate()}this.allBlocks();return d},resolveDevice:function(a){var b=this.ctx,c=this.device,d=b.getDeviceManager();b.getDriverManager();if(-1==a.indexOf("://"))return(c=this.getBlockById(a))?c:a;b=g.parse_url(a);b=g.urlArgs(b.host);
a=d.getItemById(b.device.value);!a&&(d=d.getInstanceByName(b.device.value))&&(a=d.device);return c||a},resolveBlock:function(a){var b=this,c=this.ctx,b=this.driver,b=this.device,d=c.getDeviceManager(),c=c.getDriverManager();if(-1==a.indexOf("://"))return(b=this.getBlockById(a))?b:a;a=g.parse_url(a);a=g.urlArgs(a.host);var e=d.getItemById(a.device.value);if(!e){var f=d.getInstanceByName(a.device.value);f&&(e=f.device)}if(e)if(d=d.toDeviceControlInfo(e)){if(b=c.getDriverById(d.driverId),(d=e.driverInstance)||
b)if(a=(b=d?d.blockScope:b.blockScope)?b.getStore().getSync(a.block.value):null)return a}else k.warn("cant get device info for "+e.title,b)},getBlock:function(a){return this.getBlockById(a)},getBlockByName:function(a){if(-1!==a.indexOf("://")){var b=this.resolveBlock(a);if(b)return b}for(var c=this.getBlocks(),d=0;d<c.length;d++)if(b=c[d],b.name===a)return b;return(a=this.blockStore.query({name:a}))&&0<a.length?a[0]:null},getBlockById:function(a){return this.blockStore.getSync(a)},_flatten:function(a){var b=
[],c;for(c in a){var d=a[c];if(null!=d.keys){b.push(d);for(var e in d)if("ctrArgs"!=e&&"parent"!==e)if(this.isBlock(d[e]))b.push(d[e]);else if(this.areBlocks(d[e]))for(var g=0;g<d[e].length;g++)b.push(d[e][g])}}return b},flatten:function(a){var b=[],c;for(c in a){var d=a[c];if(null!=d.keys){var e=_.find(b,{id:d.id});e||b.push(d);for(var g in d)if("ctrArgs"!=g&&"parent"!==g){var f=d[g];if(this.isBlock(f))(e=_.find(b,{id:f.id}))||b.push(f);else if(this.areBlocks(f))for(var h=0;h<f.length;h++){var k=
f[h];(e=_.find(b,{id:k.id}))||b.push(k);b=b.concat(this.flatten([k]))}}}}return b=_.uniq(b,!1,function(a){return a.id})},_getSolve:function(a){return a.prototype?a.prototype.solve:a.__proto__.solve},solveBlock:function(a,b,c,e){b=b||{highlight:!1};var f=null;this.isString(a)?(f=this.getBlockByName(a))||(f=this.getBlockById(a)):this.isObject(a)&&(f=a);a=null;if(f){if(!0!==b.force&&0==f.enabled)return null;!0===b.force&&(b.force=!1);var h=f.declaredClass;(h=d.getObject(g.replaceAll("/",".",h))||d.getObject(h))?
h.prototype&&h.prototype.solve&&(a=h.prototype.solve.apply(f,[this,b])):(a=f.solve(f.getScope(),b,c,e),delete f.override,f.override={})}return a},solve:function(a,b){for(var c="",d=0;d<this.items.length;d++)c+=this.items[d].solve(a,b);return c},parseExpression:function(a,b,c,d,e,g,f,k){return this.getExpressionModel().parse(this,a,b,d,e,g,c,f,k)},isString:function(a){return"string"==typeof a},isNumber:function(a){return"number"==typeof a},isBoolean:function(a){return"boolean"==typeof a},isObject:function(a){return"object"===
typeof a},isBlock:function(a){var b=!1;"object"==typeof a&&null!=a&&void 0==a.length&&a.serializeMe&&(b=!0);return b},areBlocks:function(a){var b=!1;"object"==typeof a&&null!=a&&0<a.length&&this.isBlock(a[0])&&(b=!0);return b},_onVariableChanged:function(a){a.item&&this.getExpressionModel().variableFuncCache[a.item.title]&&delete this.expressionModel.variableFuncCache[a.item.title]},init:function(){this.getExpressionModel();this.subscribe(c.EVENTS.ON_DRIVER_VARIABLE_CHANGED,this._onVariableChanged);
var a=this;this.subscribe(c.EVENTS.ON_MODULE_RELOADED,function(b){var c=b.module,d=b.newModule;(b=a.getBlocks().filter(function(a){return a.declaredClass==c||a.declaredClass==g.replaceAll("/",".",c)?a:null}))&&_.each(b,function(a){var b=d.prototype,c;for(c in b){var e=b[c];e&&_.isFunction(e)&&(a[c]=e)}})})},_destroy:function(){for(var a=this.allBlocks(),b=0;b<a.length;b++){var d=a[b];if(d)try{d&&d.stop&&d.stop(!0),d&&d.reset&&d.reset(),d&&d._destroy&&d._destroy(),d&&d.destroy&&d.destroy(),d._emit&&
d._emit(c.EVENTS.ON_ITEM_REMOVED,{item:d})}catch(t){}}},destroy:function(){this._destroy();this.reset();this._destroyed=!0;delete this.expressionModel},moveTo:function(a,b,c,d){k.log("move to : ",arguments);if(d){if(b.canAdd&&b.canAdd()){var e=this.getBlockById(a.parentId);e&&e.removeBlock(a,!1);return b.add(a,null,null)}k.error("cant reparent");return!1}if(b.parentId||!1!==d)if(!a.parentId&&b.parentId&&0==d)a.group=b.group;else if(a.parentId||b.parentId||!d){if(a.parentId&&b.parentId&&0==d&&a.parentId===
b.parentId){e=this.getBlockById(a.parentId);if(!e)return!1;for(var g=e[e._getContainer(a)],e=a.indexOf(g,a),f=a.indexOf(g,b),g=e>f?-1:1,f=Math.abs(e-(f+(1==c?-1:1))),e=0;e<f-1;e++)a.move(g);return!0}if(a.parentId&&b.parentId&&0==d&&a.parentId!==b.parentId){e=this.getBlockById(a.parentId);if(!e)return!1;var h=this.getBlockById(b.parentId);if(h&&e&&e.removeBlock&&h.canAdd&&h.canAdd())e.removeBlock(a,!1),h.add(a,null,null);else return!1;g=h[h._getContainer(a)];null==g&&k.error("weird : target parent has no item container");
e=h.indexOf(g,a);f=h.indexOf(g,b);if(!e||!f){k.error(" weird : invalid drop processing state, have no valid item indicies");return}g=e>f?-1:1;f=Math.abs(e-(f+(1==c?-1:1)));for(e=0;e<f-1;e++)h.move(a,g);return!0}}else return b.canAdd&&b.canAdd()&&(a.group=null,b.add(a,null,null)),!0;else{(e=this.getBlockById(a.parentId))&&e.removeBlock&&(e.removeBlock(a,!1),a.parentId=null,a.group=b.group);for(var h=[],f=this.getBlocks({group:b.group}),p=[],g=this.getBlockStore(),m=g.storage.index[b.id],e=0;e<f.length;e++){var l=
f[e];null==f[e].parentId&&f[e]!=a&&(l=g.storage.index[l.id],d=c?l>=m:l<=m)&&(h.push(f[e]),p.push(g.storage.index[f[e].id]))}for(e=0;e<h.length;e++)g.remove(h[e].id);this.getBlockStore().remove(a.id);c&&this.getBlockStore().putSync(a);for(e=0;e<h.length;e++)g.put(h[e]);c||this.getBlockStore().putSync(a);return!0}return!1}});f.chainAfter(n,"destroy");return n})},"xblox/model/Expression":function(){define(["xdojo/declare","xdojo/has","xide/utils","xide/types","xblox/model/ModelBase"],function(f,n,l,
m,g,c,b){var d="undefined"!==typeof window?window.console:global.console;c&&d&&d.error&&(d=b);return f("xblox.model.Expression",[g],{id:null,context:null,variableDelimiters:{begin:"[",end:"]"},blockCallDelimiters:{begin:"{",end:"}"},expressionCache:null,variableFuncCache:null,constructor:function(){this.reset()},reset:function(){this.expressionCache={};this.variableFuncCache={}},replaceVariables:function(a,b,c,g,f,l,h,n){var e=m.CIFLAG;h=h||this.variableDelimiters;n=n||e.NONE;n&e.DONT_ESCAPE&&(g=
!1);n&e.DONT_PARSE&&(c=!1);var k=this.findOccurrences(b,h);if(k)for(var p=0;p<k.length;p++){var q=k[p],q=q.replace(h.begin,""),q=q.replace(h.end,"");(q=this._getVar(a,q))&&q.flags&e.DONT_PARSE&&(c=!1);var r=null;if(q){if(l){b=b.replace(k[p],"this.getVariable('"+q.name+"')");continue}r=this.getValue(q.value);f&&q.name in f&&(r=f[q.name]);if(this.isScript(r)&&!1!==c)try{var u=a.variablesToJavascript(q,!0);u&&(r=u+r);var y=(new Function("{\n"+r+"\n}")).call(a.context||{});"undefined"===y||"undefined"===
typeof y?r=""+q.value:(r=y,n&e.DONT_ESCAPE||(r="'"+r+"'"))}catch(H){d.log(" parsed variable expression failed \n"+r,H)}else this.isNumber(r)||!1!==g&&(r="'"+r+"'")}else r=k[p];b=b.replace(k[p],r)}return b},parse:function(a,b,c,g,f,m,h,l,n){b=this.replaceAll("''","'",b);c=m||a.context||a.getContext()||{};b=this.replaceVariables(a,b,null,null,h,null!=c.getVariable,null,n);a=this.isScript(b);if(!a&&(this.isString(b)||this.isNumber(b)))return g&&g("Expression "+b+" evaluates to "+b),b;-1==b.indexOf("return")&&
a&&(b="return "+b);a=this;try{b=this.replaceAll("''","'",b);var e=this.expressionCache[b];e||(e=new Function("{"+b+"; }"),this.expressionCache[b]=e);a=e.apply(c,l)}catch(x){return d.error("invalid expression : \n"+b,x),f&&f("invalid expression : \n"+b+": "+x,x),""+b}g&&g("Expression "+b+" evaluates to "+a);return a},parseVariable:function(a,b,c,d,g,f,h){var e=""+b.value;c=c||"";!1!==g?(g=this.variableFuncCache[a.id+"|"+b.title],g||(g=new Function("{"+c+e+"}"),this.variableFuncCache[a.id+"|"+b.title]=
g)):g=new Function("{"+c+e+"}");a=g.apply(f||a.context||{},h||[]);return e="undefined"===a||"undefined"===typeof a?""+b.value:this.isNumber(a)||!1===d?a:"'"+a+"'"},replaceBlockCalls:function(a,b){var c=this.findOccurrences(b,this.blockCallDelimiters);if(c)for(var d=0;d<c.length;d++){var e=this._removeDelimiters(c[d],this.blockCallDelimiters),e=a.solveBlock(e).join("\n");b=b.replace(c[d],e)}return b},_getVar:function(a,b){return a.getVariable(this._getVarName(b))},_getVarName:function(a){return this._removeDelimiters(a,
this.variableDelimiters)},_removeDelimiters:function(a,b){return a.replace(b.begin,"").replace(b.end,"")},_escapeRegExp:function(a){for(var b="[](){}*+.".split(""),c=0;c<b.length;c++)a=a.replace(b[c],"\\"+b[c]);return a},findOccurrences:function(a,b){var c=this._escapeRegExp(b.begin);b=this._escapeRegExp(b.end);return a.match(new RegExp(c+"([^"+b+"]*)"+b,"g"))}})})},"xblox/model/BlockModel":function(){define(["dcl/dcl","xdojo/declare","xide/data/Model","xide/data/Source"],function(f,n,l,m){return n("xblox.model.BlockModel",
[l,m],{declaredClass:"xblox.model.BlockModel",icon:"fa-play",mayHaveChildren:function(g){return null!=this.items&&0<this.items.length},getChildren:function(g){return this.items},getBlockIcon:function(){return'\x3cspan class\x3d"'+this.icon+'"\x3e\x3c/span\x3e'}})})},"xblox/data/Store":function(){define(["dojo/_base/declare","xide/data/TreeMemory","xide/data/ObservableStore","dstore/Trackable","dojo/Deferred"],function(f,n,l,m,g){return f("xblox.data.Store",[n,m,l],{idProperty:"id",parentField:"parentId",
parentProperty:"parentId",filter:function(c){var b=this.inherited(arguments);delete this._state.filter;this._state.filter=c;return b},getRootItem:function(){return{canAdd:function(){return!0},id:this.id+"_root",group:null,name:"root",isRoot:!0,parentId:null}},getChildren:function(c){return this.root.filter({parentId:this.getIdentity(c)})},_fetchRange:function(c){var b=new g;c=this.fetchRangeSync(c);var d;if(this._state.filter){if(this._state.filter.parentId){var a=this.getSync(this._state.filter.parentId);
a&&(this.reset(),d=a.items,a.getChildren&&(d=a.getChildren()),b.resolve(d),c=d)}this._state&&this._state.filter&&this._state.filter.group&&(d=this.getSync(this._state.filter.parent),a&&(this.reset(),c=a.items))}b.resolve(c);return b},mayHaveChildren:function(c){return c.mayHaveChildren?c.mayHaveChildren(c):null!=c.items&&0<c.items.length}})})},"xblox/factory/Blocks":function(){define("xide/factory xide/utils xide/types xide/mixins/ReloadMixin xide/mixins/EventedMixin xblox/model/logic/CaseBlock xblox/model/Block xblox/model/functions/CallBlock xblox/model/functions/StopBlock xblox/model/functions/PauseBlock xblox/model/functions/SetProperties xblox/model/code/CallMethod xblox/model/code/RunScript xblox/model/loops/ForBlock xblox/model/loops/WhileBlock xblox/model/variables/VariableAssignmentBlock xblox/model/logic/IfBlock xblox/model/logic/ElseIfBlock xblox/model/logic/SwitchBlock xblox/model/variables/VariableSwitch xblox/model/logging/Log xblox/model/server/RunServerMethod xblox/model/server/Shell xblox/model/code/RunBlock xblox/model/events/OnEvent xblox/model/events/OnKey xblox/model/mqtt/Subscribe xblox/model/mqtt/Publish xblox/model/File/ReadJSON xcf/factory/Blocks".split(" "),
function(f,n,l,m,g,c,b,d,a,e,r,p,k,q,h,u,v,t,x,w,A,B,y,H,I,F,z,C,G){var E=null;f.createBlock=function(a,c,d,e){b.prototype.prepareArgs(c);a=f.createInstance(a,c,d);a.ctrArgs=null;var g;try{a&&a.init&&a.init(),a.scope&&(g=a.scope.registerBlock(a,e)),a.initReload&&a.initReload()}catch(M){logError(M,"create block")}return g||a};f.clearVariables=function(){};f.getAllBlocks=function(a,b,c,d,e){if(!1!==e&&null!=E)return E;0==e&&(E=null);e=f._getFlowBlocks(a,b,c,d);e=e.concat(f._getLoopBlocks(a,b,c,d));
e=e.concat(f._getCommandBlocks(a,b,c,d));e=e.concat(f._getCodeBlocks(a,b,c,d));e=e.concat(f._getEventBlocks(a,b,c,d));e=e.concat(f._getLoggingBlocks(a,b,c,d));e=e.concat(f._getServerBlocks(a,b,c,d));e=e.concat(f._getMQTTBlocks(a,b,c,d));return E=e=e.concat(f._getFileBlocks(a,b,c,d))};f._getMQTTBlocks=function(a,b,c,d){var e=[];e.push({name:"MQTT",iconClass:"fa-cloud",items:[{name:"Subscribe",owner:b,iconClass:"fa-bell",proto:z,target:c,ctrArgs:{scope:a,group:d}},{name:"Publish",owner:b,iconClass:"fa-send",
proto:C,target:c,ctrArgs:{scope:a,group:d}}]});f.publish(l.EVENTS.ON_BUILD_BLOCK_INFO_LIST,{items:e,group:"MQTT"});return e};f._getFileBlocks=function(a,b,c,d){var e=[];e.push({name:"File",iconClass:"fa-file",items:[{name:"%%Read JSON",owner:b,iconClass:"fa-file",proto:G,target:c,ctrArgs:{scope:a,group:d}}]});f.publish(l.EVENTS.ON_BUILD_BLOCK_INFO_LIST,{items:e,group:"File"});return e};f._getServerBlocks=function(a,b,c,d){var e=[];e.push({name:"Server",iconClass:"el-icon-repeat",items:[{name:"Run Server Method",
owner:b,iconClass:"fa-plug",proto:B,target:c,ctrArgs:{scope:a,group:d}},{name:"Shell",owner:b,iconClass:"fa-code",proto:y,target:c,ctrArgs:{scope:a,group:d}}]});f.publish(l.EVENTS.ON_BUILD_BLOCK_INFO_LIST,{items:e,group:"Server"});return e};f._getVariableBlocks=function(a,b,c,d){var e=[];e.push({name:"Flow",iconClass:"el-icon-random",items:[{name:"If...Else",owner:b,iconClass:"el-icon-fork",proto:v,target:c,ctrArgs:{scope:a,group:d,condition:"[value]\x3d\x3d'PW'"}}]});return e};f._getEventBlocks=
function(a,b,c,d){var e=[];e.push({name:"Events",iconClass:"fa-bell",items:[{name:"On Event",owner:b,iconClass:"fa-bell",proto:I,target:c,ctrArgs:{scope:a,group:d}},{name:"On Key",owner:b,iconClass:"fa-keyboard-o",proto:F,target:c,ctrArgs:{scope:a,group:d}}]});f.publish(l.EVENTS.ON_BUILD_BLOCK_INFO_LIST,{items:e,group:"Events"});return e};f._getLoggingBlocks=function(a,b,c,d){var e=[];e.push({name:"Logging",iconClass:"fa-bug",items:[{name:"Log",owner:b,iconClass:"fa-bug",proto:A,target:c,ctrArgs:{scope:a,
group:d}}]});f.publish(l.EVENTS.ON_BUILD_BLOCK_INFO_LIST,{items:e,group:"Logging"});return e};f._getCodeBlocks=function(a,b,c,d){var e=[];e.push({name:"Code",iconClass:"fa-code",items:[{name:"Call Method",owner:b,iconClass:"el-icon-video",proto:p,target:c,ctrArgs:{scope:a,group:d}},{name:"Run Script",owner:b,iconClass:"fa-code",proto:k,target:c,ctrArgs:{scope:a,group:d}},{name:"Run Block",owner:b,iconClass:"fa-code",proto:H,target:c,ctrArgs:{scope:a,group:d}},{name:"Set Properties",owner:b,iconClass:"fa-code",
proto:r,target:c,ctrArgs:{scope:a,group:d}}]});f.publish(l.EVENTS.ON_BUILD_BLOCK_INFO_LIST,{items:e,group:"Code"});return e};f._getFlowBlocks=function(a,b,c,d){var e=[];e.push({name:"Flow",iconClass:"el-icon-random",items:[{name:"If...Else",owner:b,iconClass:"el-icon-fork",proto:v,target:c,ctrArgs:{scope:a,group:d,condition:"[value]\x3d\x3d'PW'"}},{name:"Switch",owner:b,iconClass:"el-icon-fork",proto:x,target:c,ctrArgs:{scope:a,group:d}},{name:"Variable Switch",owner:b,iconClass:"el-icon-fork",proto:w,
target:c,ctrArgs:{scope:a,group:d}}]});f.publish(l.EVENTS.ON_BUILD_BLOCK_INFO_LIST,{items:e,group:"Flow"});return e};f._getLoopBlocks=function(a,b,c,d){var e=[];e.push({name:"Loops",iconClass:"el-icon-repeat",items:[{name:"While",owner:b,iconClass:"el-icon-repeat",proto:h,target:c,ctrArgs:{scope:a,group:d,condition:"[Volume]\x3c\x3d100"}},{name:"For",owner:b,iconClass:"el-icon-repeat",proto:q,target:c,ctrArgs:{scope:a,group:d,initial:"1",comparator:"\x3c\x3d","final":"5",modifier:"+1",counterName:"value"}}]});
f.publish(l.EVENTS.ON_BUILD_BLOCK_INFO_LIST,{items:e,group:"Loops"});return e};f._getMathBlocks=function(a,b,c,d){b=[];b.push({name:"Math",owner:this,iconClass:"el-icon-qrcode",dstItem:c,items:[{name:"If...Else",owner:c,iconClass:"el-icon-compass",proto:v,item:c,ctrArgs:{scope:a,group:d}}]});return b};f._getTimeBlocks=function(a,b,c,d){b=[];b.push({name:"Time",owner:this,iconClass:"el-icon-qrcode",dstItem:c,items:[{name:"If...Else",owner:c,iconClass:"el-icon-time",proto:v,item:c,ctrArgs:{scope:a,
group:d}}]});return b};f._getTransformBlocks=function(a,b,c,d){b=[];b.push({name:"Time",owner:this,iconClass:"el-icon-magic",dstItem:c,items:[{name:"If...Else",owner:c,iconClass:"el-icon-time",proto:v,item:c,ctrArgs:{scope:a,group:d}}]});return b};return f})},"xblox/model/logic/CaseBlock":function(){define(["dcl/dcl","xide/utils","xblox/model/Block","dojo/Deferred","xblox/model/logic/BreakBlock"],function(f,n,l,m,g){return f(l,{declaredClass:"xblox.model.logic.CaseBlock",comparator:null,expression:null,
items:null,name:"Case",icon:"",hasInlineEdits:!0,toText:function(){return'\x3cspan style\x3d"text-indent: 1em;"\x3e\x26nbsp;\x26nbsp;\x26nbsp;'+this.getBlockIcon("I")+this.name+" "+this.makeEditable("comparator","right","text","Enter a comparison","inline")+(null!=this.expression?" "+this.makeEditable("expression","right","text","Enter a value to compare"):"")+"\x3c/span\x3e"},canAdd:function(){return[]},_solve:function(c,b,d){b=b||{highlight:!1};for(var a=[],e=0;e<this.items.length;e++){var g=this.items[e];
-1!==g.declaredClass.indexOf("BreakBlock")&&d.stop();this.addToEnd(a,g.solve(c,b))}return a},solve:function(c,b,d){try{var a=c.getVariableById(b.variable);!a&&d.args&&d.args[0]&&(a={value:d.args[0]});var e="";if(a)e=this._getArg(a.value,!0);else return this.onFailed(this,d),!1;if(!0!==c.parseExpression(""+e+""+this.comparator+this._getArg(this.expression,!0)))return this.onFailed(this,d),!1;this.onSuccess(this,d);this._solve(c,d,b);return!0}catch(r){logError(r)}},getChildren:function(){return this.items},
getFields:function(){function c(b,a){return{label:a||b,value:b}}var b=this.inherited(arguments)||this.getDefaultFields();b.push(n.createCI("Expression",13,this.expression,{group:"General",title:"Expression",dst:"expression"}));b.push(n.createCI("Comparator",3,this.comparator,{group:"General",title:"Comparator",dst:"comparator",widget:{options:[c("\x3d\x3d"),c("\x3c\x3d"),c("\x3d\x3e"),c("!\x3d"),c("\x3c"),c("\x3e")],editable:!0}}));return b},runAction:function(c){if("New/Break"===c.command){c=new m;
var b=this.add(g,{group:null});c.resolve({select:[b],focus:!0,append:!1});b.refresh();return c}},getActions:function(){return[this.createAction({label:"Break",command:"New/Break",tab:"Home",icon:"fa-stop",group:"File",mixin:{addPermission:!0,custom:!0,quick:!1}})]}})})},"xblox/model/logic/BreakBlock":function(){define(["dcl/dcl","xblox/model/Block"],function(f,n){return f(n,{declaredClass:"xblox.model.logic.BreakBlock",name:"Break",icon:"fa-stop",hasInlineEdits:!1,canAdd:!1,toText:function(){return'\x26nbsp;\x3cspan class\x3d"fa-stop text-warning"\x3e\x3c/span\x3e\x26nbsp;\x26nbsp;\x3cspan\x3e'+
this.name+"\x3c/span\x3e"},solve:function(f,m){this.onSuccess(this,m)}})})},"xblox/model/functions/CallBlock":function(){define("dcl/dcl xide/utils xide/types dojo/Deferred xblox/model/Block xcf/model/Command".split(" "),function(f,n,l,m,g,c){return f(c,{declaredClass:"xblox.model.functions.CallBlock",command:"Select command please",icon:"",args:null,_timeout:100,isCommand:!0,_commandHandles:null,onCommandProgress:function(b){this.getScope().getContext();var c=b.params;c&&c.id&&(this._emit("cmd:"+
b.cmd+"_"+c.id,{msg:b}),b.lastResponse&&this.storeResult(b.lastResponse),this._emit("progress",{msg:b,id:c.id}));this._lastResult=null;this._lastResult=b?b.result:null;b=this.getItems(l.BLOCK_OUTLET.PROGRESS);this._lastSettings||(this._lastSettings={});this._lastSettings.override={};b.length&&this.runFrom(b,0,this._lastSettings)},stop:function(){this._lastCommand&&this._lastCommand.stop()},pause:function(){this._lastCommand&&this._lastCommand.pause()},destroy:function(){_.invoke(this._commandHandles,
"remove");delete this._commandHandles;delete this._lastCommand},solve:function(b,c){this._commandHandles=[];var a=this._timeout||50;_.isString(a)&&(a=parseInt(a));var d=new m,g=this._commandHandles;c=c||{};setTimeout(function(){if(this.command){var a=null;if(this.args){c.override=c.override||{};var e=b.expressionModel.replaceVariables(b,this.args,!1,!1,null,null,{begin:"%%",end:"%%"});try{a=n.fromJson(e)}catch(q){a=e}c.override.args=_.isArray(a)?a:[e];c.override.mixin=a}(this._lastCommand=b.resolveBlock(this.command))&&
this._lastCommand._on&&(g.push(this._lastCommand._on("paused",this.onCommandPaused,this)),g.push(this._lastCommand._on("finished",this.onCommandFinish,this)),g.push(this._lastCommand._on("stopped",this.onCommandStopped,this)),g.push(this._lastCommand._on("error",this.onCommandError,this)),g.push(this._lastCommand._on("progress",this.onCommandProgress,this)));if(a=b.solveBlock(this.command,c))this.onSuccess(this,c);else this.onFailed(this,c);d.resolve(a);return a}}.bind(this),a);return d},hasInlineEdits:!0,
makeEditable:function(b,c,a,e,g,f,k){return'\x3ca tabIndex\x3d"-1" pos\x3d\''+c+"' display-mode\x3d'"+(g||"popup")+"' display-type\x3d'"+(a||"text")+"' data-prop\x3d'"+b+"' data-title\x3d'"+e+"' class\x3d'editable editable-click' href\x3d'#'\x3e"+this[b]+"\x3c/a\x3e"},getFieldOptions:function(b){if("command"===b)return this.scope.getCommandsAsOptions("text")},toText:function(){var b="Unknown",c=this.scope.getBlock(this.command);c&&(b=c.name);-1!==this.command.indexOf("://")&&(b='\x3cspan class\x3d"text-info"\x3e'+
this.scope.toFriendlyName(this,this.command)+"\x3c/span\x3e");return this.getBlockIcon("D")+"Call Command : "+b},getFields:function(){var b=this.getDefaultFields();this.command.indexOf("://")&&this.scope.toFriendlyName(this,this.command);b.push(n.createCI("value","xcf.widgets.CommandPicker",this.command,{group:"General",title:"Command",dst:"command",options:this.scope.getCommandsAsOptions(),block:this,pickerType:"command",value:this.command}));b.push(n.createCI("arguments",27,this.args,{group:"Arguments",
title:"Arguments",dst:"args"}));b.push(n.createCI("timeout",13,this._timeout,{group:"General",title:"Delay",dst:"_timeout"}));return b}})})},"xcf/model/Command":function(){define("dcl/dcl xblox/model/Block xblox/model/Contains xide/utils xide/types dojo/Deferred xblox/types/Types xide/lodash".split(" "),function(f,n,l,m,g,c,b,d){return f([n,l],{declaredClass:"xcf.model.Command",startup:!1,auto:null,send:"",name:"No Title",observed:["send"],interval:0,flags:2048,_runningDfd:null,__started:!1,isCommand:!0,
getItems:function(a){return this.getItemsByType(a)},onCommandFinish:function(a){var b=null;if(a.params&&a.params.id){var c=a.params.id,b=this.getDeferred(c);delete this._solving[c];a.lastResponse&&this.storeResult(a.lastResponse);this._emit("finished",{msg:a,result:this._lastResult})}a=this.getItems(g.BLOCK_OUTLET.FINISH);a.length&&this.runFrom(a,0,this._lastSettings);this.resolve({});this.onSuccess(this,this._lastSettings);b&&b.resolve(this._lastResult);return this._lastResult},onCommandPaused:function(a){var b=
a.params;b&&b.id&&(a.lastResponse&&this.storeResult(a.lastResponse),this._emit("paused",{msg:a,result:this._lastResult,id:b.id}));a=this.getItems(g.BLOCK_OUTLET.PAUSED);a.length&&this.runFrom(a,0,this._lastSettings)},onCommandStopped:function(a){this.reset();var b=a.params;b&&b.id&&this._emit("stopped",{msg:a,result:this._lastResult,id:b.id});a=this.getItems(g.BLOCK_OUTLET.STOPPED);a.length&&this.runFrom(a,0,this._lastSettings)},onCommandProgress:function(a){var b=a.params;b&&b.id&&(a.lastResponse&&
this.storeResult(a.lastResponse),this._emit("progress",{msg:a,result:this._lastResult,id:b.id}));a=this.getItems(g.BLOCK_OUTLET.PROGRESS);a.length&&this.runFrom(a,0,this._lastSettings)},storeResult:function(a){var b=m.getJson(a);a=null;if(b&&b.result&&d.isString(b.result)){var c=b.result,g=-1!==c.indexOf("{")||-1!==c.indexOf("["),b=c;g&&(c=m.getJson(c,!0,!1))&&(b=c);this._lastResult=null!==b?a=b:null}return a},resolve:function(a){a=a||this._lastResult;this._runningDfd&&this._runningDfd.resolve(a)},
onCommandError:function(a){var b=a.params;b.id&&(a.lastResponse&&this.storeResult(a.lastResponse),this._emit("cmd:"+a.cmd+"_"+b.id,a),this._emit("error",{msg:a,result:this._lastResult,id:b.id}));this.onFailed(this,this._settings);a=this.getItems(g.BLOCK_OUTLET.ERROR);a.length&&this.runFrom(a,0,this._lastSettings)},sendToDevice:function(a,b,c,d,f){if(!this._destroyed){a=this.replaceAll("'","",a);f=f||m.createUUID();var e=this,h=this.flags&g.CIFLAG.WAIT?!0:!1;this.lastCommand=""+a;if(this.scope.instance)h&&
this._on("cmd:"+a+"_"+f,function(a){if(a.error)e.onFailed(e,b);else e.onSuccess(e,b)}),this.scope.instance.sendMessage(a,null,this.id,f,h,c,d,this.getSendOptions());else return this.publish(g.EVENTS.ON_STATUS_MESSAGE,{text:"Command "+this.name+" : have no device",type:"error",delay:1E3}),!1;return f}},reset:function(){delete this._runningDfd;this._lastSettings={};this._loop&&(clearTimeout(this._loop),this._loop=null);delete this.override;this.override=null;delete this._lastResult;this.override=null;
this.override={}},_solving:null,addDeferred:function(a){this._solving||(this._solving={});this._solving[a]=new c;return this._solving[a]},getDeferred:function(a){this._solving||(this._solving={});return this._solving[a]},getSendOptions:function(){var a={},b=this.getDriverModule();b&&b.getCommandArgs&&(a=b.getCommandArgs(this)||a);return a},_resolve:function(a,b,c){if(d.isNumber(a)||d.isBoolean(a))return a;var e=this.scope;a=a||this._get("send");b=b||{};var f=b.flags||this.flags,l=!(f&g.CIFLAG.DONT_PARSE),
h=f&g.CIFLAG.EXPRESSION;f&g.CIFLAG.TO_HEX&&(a=m.to_hex(a));!1!==l&&(a=m.convertAllEscapes(a,"none"));b=b||this._lastSettings||{};if(f=(b=b.override||this.override||{},b.variables)?b.variables:null)for(var n in f)d.isNumber(f[n])&&(f[n]=Math.round(f[n]));n="";var r=this.getDriverModule();r&&r.resolveBefore&&!1!==c&&(a=r.resolveBefore(this,a)||a);n=h&&!1!==l?e.parseExpression(a,null,f,null,null,null,b.args):""+a;r&&r.resolveAfter&&!1!==c&&(n=r.resolveAfter(this,n)||n);return n},solve:function(a,b,c,
d){var e=null;a=a||this.scope;(b=this._lastSettings=b||this._lastSettings||{},b.override)&&b.override.mixin&&m.mixin(this.override,b.override.mixin);var f=d||this._get("send")||this.send,h=!(this.flags&g.CIFLAG.DONT_PARSE);d=this.flags&g.CIFLAG.WAIT?!0:!1;var p=m.createUUID();this.flags&g.CIFLAG.TO_HEX&&(f=m.to_hex(f));!1!==h&&(f=m.convertAllEscapes(f,"none"));if(this.enabled||!0===c){!0===c&&this._loop&&this.reset();if(!0!==d)this.onRun(this,b);else this.onRun(this,b,{timeout:!1}),e=this.addDeferred(p);
if(this.items&&0<this.items.length){if(f&&0<f.length&&(f=this._resolve(this.send,b))&&0<f.length)if(this.sendToDevice(f,b))this.onSuccess(this,b);else this.onFailed(this,b);if(d)return e;c=[];for(e=0;e<this.items.length;e++)d=this.items[e],d.enabled&&c.push(d.solve(a,b));return c}if(0<f.length){if((f=this._resolve(this.send,b))&&0<f.length&&!this.sendToDevice(f,b,null,null,p))this.onFailed(this,b);if(!0!==d)this.onSuccess(this,b);else this._settings=b;c&&this.auto&&0<this.getInterval()&&this.scope.loopBlock(this,
b);return d?e:[f]}return!1}this.reset()},canAdd:function(){return[]},mayHaveChildren:function(){return null!=this.items&&0<this.items.length},getChildren:function(){return this.items},hasInlineEdits:!0,toText:function(a,b,c,d){var e="";!1!==a&&(e+="\x3cspan class\x3d'text-primary inline-icon'\x3e"+this.getBlockIcon()+"\x3c/span\x3e");!1!==b&&(e+=""+this.makeEditable("name","bottom","text","Enter a unique name","inline")+"");!0===d&&(e+="\x3cbr/\x3e");!1!==c&&(e+="\x3cspan class\x3d'text-muted small'\x3e Send:\x3ckbd class\x3d'text-warning'\x3e"+
this.makeEditable("send","bottom","text","Enter the string to send","inline")+"\x3c/kbd\x3e\x3c/span\x3e");!1!==a&&(this.startup&&(e+=this.getIcon("fa-bell inline-icon text-warning","text-align:right;float:right;","")),this.auto&&0<this.getInterval()&&(e+=this.getIcon("fa-clock-o inline-icon text-warning","text-align:right;float:right","")));return e=this.getDriverToText(e)||e},getInterval:function(){return parseInt(this.interval,10)},start:function(){this.startup&&!this.auto?this.solve(this.scope):
this.auto&&0<this.getInterval()&&this.scope.loopBlock(this)},getDriverModule:function(){var a=null,b=this.getInstance();b?a=b.Module:(b=this.getScope().driver)&&b.Module&&(a=b.Module);return a},getDriverToText:function(a){var b=this.getDriverModule();if(b&&b.toText)return b.toText(this,a)},getDriverFields:function(a){var b=this.getDriverModule(),c=[];b&&b.getFields&&(c=b.getFields(this,a)||[]);return c},getFields:function(){var a=this.inherited(arguments)||this.getDefaultFields(),b=this;a.push(this.utils.createCI("name",
13,this.name,{group:"General",title:"Name",dst:"name",order:200}));a.push(this.utils.createCI("startup",0,this.startup,{group:"General",title:"Send on Startup",dst:"startup",order:199}));a.push(this.utils.createCI("auto",0,this.auto,{group:"General",title:"Auto Send",dst:"auto",order:198}));a.push(this.utils.createCI("interval",13,this.interval,{group:"General",title:"Interval",dst:"interval",order:197}));a.push(this.utils.createCI("send",g.ECIType.EXPRESSION_EDITOR,this.send,{group:"Send",title:"Send",
dst:"send",widget:{instantChanges:!1,allowACECache:!0,showBrowser:!1,showSaveButton:!0,style:"height:inherit;",editorOptions:{showGutter:!1,autoFocus:!1},aceOptions:{hasEmmet:!1,hasLinking:!1,hasMultiDocs:!1},item:this},delegate:{runExpression:function(a,c,d){return b.scope.expressionModel.parse(b.scope,a,!1,c,d)}}}));a.push(this.utils.createCI("flags",5,this.flags,{group:"General",title:"Flags",dst:"flags",data:[{value:4096,label:"Dont parse",title:"Do not parse the string and use it as is"},{value:2048,
label:"Expression",title:"Parse it as Javascript"},{value:32768,label:"Wait",title:"Wait for response"}],widget:{hex:!0}}));return a=a.concat(this.getDriverFields(a))},icon:"fa-exclamation",getIconClass:function(){return"el-icon-play-circle"},getBlockIcon:function(){return'\x3cspan class\x3d"'+this.icon+'"\x3e\x3c/span\x3e '},canEdit:function(){return!0},onChangeField:function(a,b,c){var d=this.getInterval();"auto"===a&&(!0===b?0<d&&this.scope.loopBlock(this):this._loop&&this.reset());"enabled"===
a&&(!1===b?this.reset():d&&this.scope.loopBlock(this));"interval"===a&&(0<d&&this.auto?this.scope.loopBlock(this):this.reset());this.inherited(arguments)},destroy:function(){this.reset()},pause:function(){var a=this.lastCommand||this._resolve(this.send,this._lastSettings);null!==a&&this.sendToDevice(a,this._lastSettings,!1,!0)},stop:function(a){!0!==a&&(this.onSuccess(this,{highlight:!0}),this.resolve(""),a=this.lastCommand||this._resolve(this.send,this._lastSettings),d.isEmpty(a)||this.sendToDevice(a,
this._lastSettings,!0,!1),delete this._runningDfd)}})})},"xblox/model/Contains":function(){define(["dcl/dcl","dojo/promise/all","xide/types"],function(f,n,l){return f(null,{declaredClass:"xblox.model.Contains",runByType:function(f,g){f=this.getItemsByType(f);f.length&&this.runFrom(f,0,g)},getItemsByType:function(f){var g=this.items;if(!f)return g;var c=[];_.each(g,function(b){b.outlet&f&&c.push(b)});return c},getContainer:function(){return this[this._getContainer()]},mayHaveChildren:function(f){f=
this[this._getContainer()];return null!=f&&0<f.length},getChildren:function(f){return this[this._getContainer()]},canAdd:function(){return[]},_solve:function(f,g,c,b){!this._lastRunSettings&&g&&(this._lastRunSettings=g);g=this._lastRunSettings||g;this._currentIndex=0;this._return=[];f=this[this._getContainer()];if(f.length)return f=this.runFrom(f,0,g),this.onSuccess(this,g),f;this.onSuccess(this,g);return[]},onDidRunItem:function(f,g){this._emit(l.EVENTS.ON_RUN_BLOCK_SUCCESS,this);f.resolve(g)},onDidRunItemError:function(f,
g){f.reject(g)},onRunThis:function(){this._emit(l.EVENTS.ON_RUN_BLOCK,this)},onDidRunThis:function(f,g,c,b){var d=this;if(c&&c.length)c=d.runFrom(c,0,b),n(c).then(function(){d.onDidRunItem(f,g,b)},function(a){d.onDidRunItem(f,a,b)});else d.onDidRunItem(f,g,b)},___solve:function(f,g,c,b){}})})},"xblox/types/Types":function(){define(["xide/types/Types","xide/utils"],function(f,n){f.BLOCK_MODE={NORMAL:0,UPDATE_WIDGET_PROPERTY:1};f.BLOCK_OUTLET={NONE:0,PROGRESS:1,ERROR:2,PAUSED:4,FINISH:8,STOPPED:16};
n.mixin(f.EVENTS,{ON_RUN_BLOCK:"onRunBlock",ON_RUN_BLOCK_FAILED:"onRunBlockFailed",ON_RUN_BLOCK_SUCCESS:"onRunBlockSuccess",ON_BLOCK_SELECTED:"onItemSelected",ON_BLOCK_UNSELECTED:"onBlockUnSelected",ON_BLOCK_EXPRESSION_FAILED:"onExpressionFailed",ON_BUILD_BLOCK_INFO_LIST:"onBuildBlockInfoList",ON_BUILD_BLOCK_INFO_LIST_END:"onBuildBlockInfoListEnd",ON_BLOCK_PROPERTY_CHANGED:"onBlockPropertyChanged",ON_SCOPE_CREATED:"onScopeCreated",ON_VARIABLE_CHANGED:"onVariableChanged",ON_CREATE_VARIABLE_CI:"onCreateVariableCI"});
f.BlockType={AssignmentExpression:"AssignmentExpression",ArrayExpression:"ArrayExpression",BlockStatement:"BlockStatement",BinaryExpression:"BinaryExpression",BreakStatement:"BreakStatement",CallExpression:"CallExpression",CatchClause:"CatchClause",ConditionalExpression:"ConditionalExpression",ContinueStatement:"ContinueStatement",DoWhileStatement:"DoWhileStatement",DebuggerStatement:"DebuggerStatement",EmptyStatement:"EmptyStatement",ExpressionStatement:"ExpressionStatement",ForStatement:"ForStatement",
ForInStatement:"ForInStatement",FunctionDeclaration:"FunctionDeclaration",FunctionExpression:"FunctionExpression",Identifier:"Identifier",IfStatement:"IfStatement",Literal:"Literal",LabeledStatement:"LabeledStatement",LogicalExpression:"LogicalExpression",MemberExpression:"MemberExpression",NewExpression:"NewExpression",ObjectExpression:"ObjectExpression",Program:"Program",Property:"Property",ReturnStatement:"ReturnStatement",SequenceExpression:"SequenceExpression",SwitchStatement:"SwitchStatement",
SwitchCase:"SwitchCase",ThisExpression:"ThisExpression",ThrowStatement:"ThrowStatement",TryStatement:"TryStatement",UnaryExpression:"UnaryExpression",UpdateExpression:"UpdateExpression",VariableDeclaration:"VariableDeclaration",VariableDeclarator:"VariableDeclarator",WhileStatement:"WhileStatement",WithStatement:"WithStatement"};f.BLOCK_CAPABILITIES={TOPMOST:16384,TARGET:262144,VARIABLE_INPUTS:128,VARIABLE_OUTPUTS:256,VARIABLE_OUTPUT_PARAMETERS:512,VARIABLE_INPUT_PARAMETERS:1024,CHILDREN:32,SIGNALS:128};
f.EXECUTION_STATE={NONE:0,RUNNING:1,ERROR:2,PAUSED:4,FINISH:8,STOPPED:16,ONCE:2147483648,RESET_NEXT_FRAME:8388608,LOCKED:536870912};f.RUN_FLAGS={CHILDREN:32,WAIT:32768};return f})},"xblox/model/functions/StopBlock":function(){define(["dcl/dcl","xide/utils","xblox/model/Block"],function(f,n,l){return f(l,{declaredClass:"xblox.model.functions.StopBlock",command:"Select command please",icon:"",args:null,_timeout:100,hasInlineEdits:!0,solve:function(f,g){if(this.command){if((f=f.resolveBlock(this.command))&&
f.stop){var c=f.stop();this.onSuccess(this,g)}else this.onFailed(this,g);return c}},makeEditable:function(f,g,c,b,d){return'\x3ca tabIndex\x3d"-1" pos\x3d\''+g+"' display-mode\x3d'"+(d||"popup")+"' display-type\x3d'"+(c||"text")+"' data-prop\x3d'"+f+"' data-title\x3d'"+b+"' class\x3d'editable editable-click' href\x3d'#'\x3e"+this[f]+"\x3c/a\x3e"},getFieldOptions:function(f){if("command"===f)return this.scope.getCommandsAsOptions("text")},toText:function(){var f="Unknown",g=this.scope.getBlock(this.command);
g&&(f=g.name);-1!==this.command.indexOf("://")&&(f='\x3cspan class\x3d"text-info"\x3e'+this.scope.toFriendlyName(this,this.command)+"\x3c/span\x3e");return this.getBlockIcon("D")+"Stop Command : "+f},onChangeField:function(f,g){},getFields:function(){var f=this.inherited(arguments)||this.getDefaultFields();f.push(n.createCI("value","xcf.widgets.CommandPicker",this.command,{group:"General",title:"Command",dst:"command",options:this.scope.getCommandsAsOptions(),block:this,pickerType:"command",value:this.command}));
return f}})})},"xblox/model/functions/PauseBlock":function(){define(["dcl/dcl","xide/utils","xide/types","dojo/Deferred","xblox/model/Block"],function(f,n,l,m,g){return f(g,{declaredClass:"xblox.model.functions.PauseBlock",command:"Select command please",icon:"",args:null,_timeout:100,hasInlineEdits:!0,solve:function(c,b){if(this.command){if((c=c.resolveBlock(this.command))&&c.pause){var d=c.pause();this.onSuccess(this,b)}else this.onFailed(this,b);return d}},makeEditable:function(c,b,d,a,e,g,f){return'\x3ca tabIndex\x3d"-1" pos\x3d\''+
b+"' display-mode\x3d'"+(e||"popup")+"' display-type\x3d'"+(d||"text")+"' data-prop\x3d'"+c+"' data-title\x3d'"+a+"' class\x3d'editable editable-click' href\x3d'#'\x3e"+this[c]+"\x3c/a\x3e"},getFieldOptions:function(c){if("command"===c)return this.scope.getCommandsAsOptions("text")},toText:function(){var c="Unknown",b=this.scope.getBlock(this.command);b&&(c=b.name);-1!==this.command.indexOf("://")&&(c='\x3cspan class\x3d"text-info"\x3e'+this.scope.toFriendlyName(this,this.command)+"\x3c/span\x3e");
return this.getBlockIcon("D")+"Pause Command : "+c},getFields:function(){var c=this.inherited(arguments)||this.getDefaultFields();this.command.indexOf("://")&&this.scope.toFriendlyName(this,this.command);c.push(n.createCI("value","xcf.widgets.CommandPicker",this.command,{group:"General",title:"Command",dst:"command",options:this.scope.getCommandsAsOptions(),block:this,pickerType:"command",value:this.command}));return c}})})},"xblox/model/functions/SetProperties":function(){define("dcl/dcl xide/utils xide/types dojo/Deferred xblox/model/Block xide/lodash".split(" "),
function(f,n,l,m,g,c){return f(g,{declaredClass:"xblox.model.functions.SetProperties",command:"Select block",icon:"",args:null,_timeout:100,hasInlineEdits:!1,solve:function(b,c){var a=new m;if(this.command){if((b=b.resolveBlock(this.command))&&this.props){for(var d in this.props)b.set(d,this.props[d]),b[d]=this.props[d],b.onChangeField&&b.onChangeField(d,this.props[d]);this.onSuccess(this,c)}else this.onFailed(this,c);a.resolve([])}return a},makeEditable:function(b,c,a,e,g){return'\x3ca tabIndex\x3d"-1" pos\x3d\''+
c+"' display-mode\x3d'"+(g||"popup")+"' display-type\x3d'"+(a||"text")+"' data-prop\x3d'"+b+"' data-title\x3d'"+e+"' class\x3d'editable editable-click' href\x3d'#'\x3e"+this[b]+"\x3c/a\x3e"},getFieldOptions:function(b){if("command"===b)return this.scope.getCommandsAsOptions("text")},toText:function(){var b="Unknown",c=this.scope.getBlock(this.command);c&&(b=c.name);-1!==this.command.indexOf("://")&&(b='\x3cspan class\x3d"text-info"\x3e'+this.scope.toFriendlyName(this,this.command)+"\x3c/span\x3e");
return this.getBlockIcon("D")+"Set Properties : "+b},serializeObject:function(b){return"props"===b},onChangeField:function(b){"command"===b&&(delete this.props,this.props={})},init:function(){this.props&&c.isString(this.props)&&(this.props=n.fromJson(this.props))},getFields:function(){var b=this.inherited(arguments)||this.getDefaultFields();b.push(n.createCI("value","xcf.widgets.CommandPicker",this.command,{group:"General",title:"Command",dst:"command",options:this.scope.getCommandsAsOptions(),block:this,
pickerType:"command",value:this.command}));var d=this.scope.resolveBlock(this.command);if(d&&d.getFields){this.props||(this.props={});var d=d.getFields(),a=c.find(d,{dst:"description"});d.remove(a);c.each(d,function(a){a.group="Properties";a.value=n.getAt(this.props,a.dst,a.value);a.dst="props."+a.dst},this);b=b.concat(d)}return b}})})},"xblox/model/code/CallMethod":function(){define(["dcl/dcl","xblox/model/Block","xide/utils"],function(f,n,l){return f(n,{declaredClass:"xblox.model.code.CallMethod",
name:"Call Method",method:"",args:"",sharable:!0,solve:function(f,g){if((f=this.getContext())&&null!=f[this.method]){var c=[],b=f[this.method];try{var d=this.getArgs(g);console.log("args",d);c=b.apply(f,d||[]);this.onSuccess(this,g);return c}catch(a){console.error("call method "+this.method+" failed: "+a),logError(a),this.onFailed(this,g)}}else this.onFailed(this,g);return[]},toText:function(){var f=this.getBlockIcon()+" "+this.name+" ";this.method&&(f+=this.makeEditable("method","bottom","text",
"Enter a driver method","inline"));return f},getFields:function(){var f=this.getDefaultFields();this.getContext();f.push(l.createCI("value",13,this.method,{group:"General",title:"Method",dst:"method"}));f.push(l.createCI("value",27,this.args,{group:"Arguments",dst:"args",widget:{title:""}}));return f},getBlockIcon:function(){return'\x3cspan class\x3d"fa-caret-square-o-right"\x3e\x3c/span\x3e'}})})},"xblox/model/code/RunScript":function(){define("dcl/dcl xdojo/has dojo/Deferred xblox/model/Block xide/utils xblox/model/Contains dojo/promise/all xide/types module".split(" "),
function(f,n,l,m,g,c,b,d,a,e,r,p,k){var q="undefined"!==typeof window?window.console:global.console;e&&q&&q.error&&(q=r);return f([m,c],{declaredClass:"xblox.model.code.RunScript",name:"Run Script",method:"",args:"",deferred:!1,sharable:!0,context:null,icon:"fa-code",observed:["method"],getContext:function(){return this.context||(this.scope.getContext?this.scope.getContext():this)},solve2:function(a,b,c,d){this._currentIndex=0;this._return=[];var e=""+this._get("method"),g=this,f=this.getContext();
if(e&&e.length){var h=function(){var a=new Function("{"+e+"}"),h=g.getArgs()||[];try{var k=a.apply(f,h||{});g._lastResult=k;c&&c("Expression "+e+" evaluates to "+k);if("false"!==k&&!1!==k)g.onSuccess(g,b,{result:k});else return g.onFailed(g,b),[]}catch(F){return d&&d("invalid expression : \n"+e+": "+F),g.onFailed(g,b),[]}};if(a.global)(function(){window=a.global;var h=g.getArgs()||[];try{var k=null,k=f.runExpression?f.runExpression(e,null,h):(new Function("{"+e+"}")).bind(this).apply(f,h||{});g._lastResult=
k;c&&c("Expression "+e+" evaluates to "+k);if("false"!==k&&!1!==k)g.onSuccess(g,b);else return g.onFailed(g,b),[]}catch(I){return g._lastResult=null,d&&d("invalid expression : \n"+e+": "+I),g.onFailed(g,b),[]}}).call(a.global);else return h()}else q.error("have no script");h=this[this._getContainer()];if(h.length)this.runFrom(h,0,b);else this.onSuccess(this,b);this.onDidRun();return[]},solve:function(a,b,c,d,e,g){this._currentIndex=0;this._return=[];b=b||{};c=d||(this._get("method")?this._get("method"):
this.method);if(!a.expressionModel)throw Error("na");var f=this;d=this.getContext();var h=this[this._getContainer()],k=new l,p=f.deferred,m=a.getExpressionModel();this.onRunThis(b);if(!m)return q.error("scope has no expression model"),!1;var n=m.replaceVariables(a,c,null,null);(a=m.expressionCache[n])||(a=m.expressionCache[n]=new Function("{"+n+"}"));m=f.getArgs(b)||[];try{p&&(d.resolve=function(a){f._deferredObject&&f._deferredObject.resolve();f.onDidRunThis(k,a,h,b)});var r=a.apply(d,m||{});f._lastResult=
r;e&&e("Expression "+c+" evaluates to "+r);if(!p)f.onDidRunThis(k,r,h,b);if("false"!==r&&!1!==r)f.onSuccess(f,b);else f.onFailed(f,b)}catch(C){C=C||{},f.onDidRunItemError(k,C,b),f.onFailed(f,b),g&&g("invalid expression : \n"+c+": "+C)}return k},toText:function(){var a='\x3cspan style\x3d""\x3e'+this.getBlockIcon()+" "+this.name+" :: \x3c/span\x3e";this.method&&(a+=this.method.substr(0,50));return a},canAdd:function(){return!0},getFields:function(){"No Description"===this.description&&(this.description=
p);var a=this.inherited(arguments)||this.getDefaultFields(),b=this;a.push(g.createCI("name",13,this.name,{group:"General",title:"Name",dst:"name"}));a.push(g.createCI("deferred",0,this.deferred,{group:"General",title:"Deferred",dst:"deferred"}));a.push(g.createCI("arguments",27,this.args,{group:"Arguments",title:"Arguments",dst:"args"}));a.push(g.createCI("value",d.ECIType.EXPRESSION_EDITOR,this.method,{group:"Script",title:"Script",dst:"method",select:!0,widget:{allowACECache:!0,showBrowser:!1,showSaveButton:!0,
editorOptions:{showGutter:!0,autoFocus:!1},item:this},delegate:{runExpression:function(a,c,d){b.method=a;b.solve(b.scope,null,c,d)}}}));return a}})})},"xblox/model/loops/ForBlock":function(){define("dcl/dcl xblox/model/Block xblox/model/variables/Variable xblox/model/Contains dojo/promise/all dojo/Deferred".split(" "),function(f,n,l,m,g,c){return f([n,m],{declaredClass:"xblox.model.loops.ForBlock",initial:null,"final":null,comparator:null,modifier:null,items:null,counterName:null,_counter:null,name:"For",
sharable:!0,icon:"",ignoreErrors:!1,deferred:!0,_forState:!1,_currentForIndex:0,runFrom:function(b,d,a){var e=this,g=b||this.items;b=[];var f=function(b){b._deferredObject.then(function(c){b._lastResult=b._lastResult||c;e._currentIndex++;e.runFrom(g,e._currentIndex,a)})};if(g.length)for(;d<g.length;d++){var k=g[d];if(!1!==k.enabled)if(!0===k.deferred){k._deferredObject=new c;this._currentIndex=d;f(k);b.push(k.solve(this.scope,a));break}else b.push(k.solve(this.scope,a))}else this.onSuccess(this,a);
return b},runFromDirect:function(b,d,a){var e=this,g=b||this.items;b=[];var f=function(b){b._deferredObject.then(function(c){b._lastResult=b._lastResult||c;e._currentIndex++;e.runFrom(g,e._currentIndex,a)})};if(g.length)for(;d<g.length;d++){var k=g[d];if(!1!==k.enabled)if(!0===k.deferred){k._deferredObject=new c;this._currentIndex=d;f(k);b.push(k.solve(this.scope,a));break}else b.push(k.solve(this.scope,a))}else this.onSuccess(this,a);return b},solveSubs:function(b,c,a,e){var d=this;e.override=e.override||
{};e.override.args=[this._currentForIndex];if(a.length)return c=d.runFrom(a,0,e),g(c).then(function(a){},function(a){d.onDidRunItem(b,a,e)}),c;d.onDidRunItem(b,c,e)},solveSubsDirect:function(b,c,a,e){e.override=e.override||{};e.override.args=[this._currentForIndex];if(a.length)return this.runFromDirect(a,0,e)},_solve:function(b,d){var a=new c,e=this;(b=this.solveSubs(a,null,this.items,d))?g(b).then(function(b){b=b.indexOf(!1);!0!==e.ignoreErrors&&-1!==b?a.resolve(!1):a.resolve(!0)}):a.resolve(!0);
return a},step:function(b,d){var a=this._checkCondition(b,d),e=new c;a&&this._solve(b,d).then(function(a){1==a?e.resolve(!0):e.resolve(!1)});return e},loop:function(b,c){var a=this;this.step(b,c).then(function(d){a._updateCounter(b);a._currentForIndex=a._counter.value;if(1==d)a.loop(b,c);else a.onFailed(a,c)})},_solveDirect:function(b,c){return this.solveSubsDirect(null,null,this.items,c)},stepDirect:function(b,c){return this._solveDirect(b,c)},loopDirect:function(b,c){this.stepDirect(b,c);for(var a=
parseInt(this.initial,10);a<parseInt(this["final"],10);a++)this.stepDirect(b,c)},solve:function(b,c){this._counter=new l({title:this.counterName,value:this.initial,scope:b,register:!1});this._forState=!0;this._currentForIndex=this.initial;this.deferred?this.loop(b,c):this.loopDirect(b,c);return[]},_checkCondition:function(b,c){b=b.parseExpression(""+this._counter.value+this.comparator+this["final"]);if(0!=b)this.onSuccess(this,c);return this._forState=b},_updateCounter:function(b){var c=this._counter.value,
c=b.parseExpression(""+c+this.modifier);if(c==this._counter.value)return!1;this._counter.value=c;return!0},mayHaveChildren:function(){return null!=this.items&&0<this.items.length},getChildren:function(){var b=[];this.items&&(b=b.concat(this.items));return b},canAdd:function(){return[]},toText:function(){return this.getBlockIcon("F")+this.name+" "+this.initial+" "+this.comparator+" "+this["final"]+" with "+this.modifier},getFields:function(){var b=this.inherited(arguments)||this.getDefaultFields();
return b=b.concat([this.utils.createCI("initial",13,this.initial,{group:"General",title:"Initial",dst:"initial"}),this.utils.createCI("Final",13,this["final"],{group:"General",title:"Final",dst:"final"}),this.utils.createCI("comparator",13,this.comparator,{group:"General",title:"Comparision",dst:"comparator"}),this.utils.createCI("modifier",13,this.modifier,{group:"General",title:"Modifier",dst:"modifier"}),this.utils.createCI("Abort on Error",0,this.ignoreErrors,{group:"General",title:"Ignore Errors",
dst:"ignoreErrors"}),this.utils.createCI("Deferred",0,this.deferred,{group:"General",title:"Use Deferred",dst:"deferred"})])}})})},"xblox/model/loops/WhileBlock":function(){define(["dcl/dcl","xblox/model/Block","xblox/model/variables/Variable"],function(f,n,l){return f(n,{declaredClass:"xblox.model.loops.WhileBlock",condition:null,items:null,loopLimit:1500,name:"While",wait:0,_currentIndex:0,sharable:!0,icon:"",_timer:null,canAdd:function(){return[]},_solve:function(f,g){for(var c=0;c<this.items.length;c++)this.items[c].solve(f,
g);return[]},doStep:function(f){if(this._currentIndex<this.loopLimit){var g=[];this._checkCondition(this.scope)?(this.onSuccess(this,f),this.addToEnd(g,this._solve(this.scope,f)),this._currentIndex++):(this._timer&&clearInterval(this._timer),this.onFailed(this,f))}else console.error("--while block : reached loop limit"),this.reset()},reset:function(){this._timer&&(clearTimeout(this._timer),this._timer=null);this._currentIndex=0},solve:function(f,g){this.loopLimit=1500;g=g||{};var c=0,b=this,d=this._getArg(this.wait);
this.reset();if(0<d)return this._timer=setInterval(function(){b.doStep(g)},d),[];for(;this._checkCondition(f)&&c<this.loopLimit;)this._solve(f,g),c++;this.reset();return[]},toText:function(){return this.getBlockIcon("G")+this.name+" "+this.condition},_checkCondition:function(f){return f.parseExpression(this.condition)},mayHaveChildren:function(f){return null!=this.items&&0<this.items.length},getChildren:function(f){f=[];this.items&&(f=f.concat(this.items));return f},getFields:function(){var f=this,
g=this.inherited(arguments)||this.getDefaultFields();g.push(this.utils.createCI("condition",25,this.condition,{group:"General",title:"Expression",dst:"condition",delegate:{runExpression:function(c,b,d){return f.scope.expressionModel.parse(f.scope,c,!1,b,d)}}}));g.push(this.utils.createCI("wait",13,this.wait,{group:"General",title:"Wait",dst:"wait"}));return g}})})},"xblox/model/variables/VariableAssignmentBlock":function(){define("dcl/dcl xblox/model/Block xide/utils xide/types dstore/legacy/DstoreAdapter xide/factory xdojo/has".split(" "),
function(f,n,l,m,g,c,b){return f(n,{declaredClass:"xblox.model.variables.VariableAssignmentBlock",variable:null,value:null,name:"Set Variable",icon:"",hasInlineEdits:!0,flags:4,toText:function(){var b=this.scope.getVariableById(this.variable),b=b?b.name:"";this.variable&&-1!==this.variable.indexOf("://")&&(b='\x3cspan class\x3d"text-info"\x3e'+this.scope.toFriendlyName(this,this.variable)+"\x3c/span\x3e");return this.getBlockIcon("C")+this.name+" "+b+"\x3cspan class\x3d'text-muted small'\x3e to \x3ckbd class\x3d'text-warning'\x3e"+
this.makeEditable("value","bottom","text","Enter the string to send","inline")+"\x3c/kbd\x3e\x3c/span\x3e"},_getPreviousResult:function(){var b=null;return(b=(b=this.getPreviousBlock())&&b._lastResult&&b.enabled?b:this.getParent())&&null!=b._lastResult?(this.isArray(b._lastResult),b._lastResult):null},solve:function(b,a){var d=this.value,f=!1;if(!d){var g=this.getArgs();0<g.length&&(d=g[0])}if(this.variable&&null!==d){this.onRun(this,a);var k=-1!==this.variable.indexOf("://")?this.scope.resolveBlock(this.variable):
b.getVariableById(this.variable),g=this._getArg(d),l=this.getArgs(a)||[];if(!k)return[];var h=null;this.isScript(g)?(h=this.override||{},h=b.parseExpression(d,null,null,null,null,null,l||h.args),h=this.replaceAll("'","",h),k.value!==h&&(f=!0)):(l&&1==l.length&&null==d&&(g=l[0]),k.value!==g&&(f=!0),h=k.value=g);k.set("value",h);b=!1;(d=this.getContext())&&(d=d.device)&&d.info&&d.info.serverSide&&(b=this.flags&m.VARIABLE_FLAGS.PUBLISH_IF_SERVER?!0:!1);this.flags&m.VARIABLE_FLAGS.PUBLISH&&f&&(b=!0);
f&&c.publish(m.EVENTS.ON_DRIVER_VARIABLE_CHANGED,{item:k,scope:this.scope,save:!1,block:this,name:k.name,value:g,publish:b,result:h});this.onSuccess(this,a);return[]}},canAdd:function(){return null},getFields:function(){var b=this.inherited(arguments)||this.getDefaultFields(!1),a=this;b.push(this.utils.createCI("value",29,this.value,{group:"General",title:"Value",dst:"value",widget:{allowACECache:!0,showBrowser:!1,showSaveButton:!0,editorOptions:{showGutter:!1,autoSelect:!1,autoFocus:!1,hasConsole:!1,
hasItemActions:function(){return!1}},item:this},delegate:{runExpression:function(b,c,d){return a.scope.expressionModel.parse(a.scope,b,!1,c,d)}}}));b.push(l.createCI("value","xcf.widgets.CommandPicker",this.variable,{group:"Variable",title:"Variable",dst:"variable",block:this,pickerType:"variable",value:this.variable,widget:{store:this.scope.blockStore,labelField:"name",valueField:"id",value:this.variable,query:[{group:"basicVariables"},{group:"processVariables"}]}}));b.push(this.utils.createCI("flags",
5,this.flags,{group:"Variable",title:"Flags",dst:"flags",data:[{value:2,label:"Publish to network",title:"Publish to network in order to make a network variable"},{value:4,label:"Publish if server",title:"Publish only on network if this is running server side"}],widget:{hex:!0}}));return b}})})},"dstore/legacy/DstoreAdapter":function(){define(["dojo/_base/declare","dojo/_base/array","dojo/store/util/QueryResults"],function(f,n,l){function m(c){return c}var g={store:null,constructor:function(c){this.store=
c;if(c._getQuerierFactory("filter")||c._getQuerierFactory("sort"))this.queryEngine=function(b,a){a=a||{};var d=c._getQuerierFactory("filter"),g=d?d(b):m;b=c._getQuerierFactory("sort");var f=m;b&&(f=b(n.map(a.sort,function(a){return{property:a.attribute,descending:a.descending}})));var k=m;isNaN(a.start)&&isNaN(a.count)||(k=function(b){var c=a.start||0,c=b.slice(c,c+(a.count||Infinity));c.total=b.length;return c});return function(a){return k(f(g(a)))}};var b=this;c.on("add,update,delete",function(d){var a=
d.type,e=d.target;b.notify("add"===a||"update"===a?e:void 0,"delete"===a||"update"===a?"id"in d?d.id:c.getIdentity(e):void 0)})},labelAttr:"title",getLabel:function(c){return this.store.getLabel(c)},query:function(c,b){b=b||{};var d=this.store.filter(c),a,e;if(c=b.sort)if("[object Array]"===Object.prototype.toString.call(c))for(var g;g=c.pop();)d=d.sort(g.attribute,g.descending);else d=d.sort(c);d.track&&!d.tracking&&(d=d.track(),e=!0);"start"in b&&(a=b.start||0,a=d[d.fetchRangeSync?"fetchRangeSync":
"fetchRange"]({start:a,end:b.count?a+b.count:Infinity}));a=a||d[d.fetchSync?"fetchSync":"fetch"]();b=a.totalLength;a=new l(a);a.total=b;a.observe=function(a,b){function c(a){return void 0===a&&e?-1:a}var g=d.on("add",function(b){a(b.target,-1,c(b.index))}),f=d.on("update",function(d){!b&&d.previousIndex===d.index&&isFinite(d.index)||a(d.target,c(d.previousIndex),c(d.index))}),k=d.on("delete",function(b){a(b.target,c(b.previousIndex),-1)}),p={remove:function(){g.remove();f.remove();k.remove()}};p.cancel=
p.remove;return p};return a},notify:function(){}};n.forEach(["get","put","add","remove","getIdentity"],function(c){g[c]=function(){var b=this.store;return(b[c+"Sync"]||b[c]).apply(b,arguments)}});return f(null,g)})},"xblox/model/logic/IfBlock":function(){define("dcl/dcl xblox/model/Block xblox/model/Statement xblox/model/logic/ElseIfBlock dojo/Deferred xide/utils".split(" "),function(f,n,l,m,g,c){return f(n,{declaredClass:"xblox.model.logic.IfBlock",condition:"Invalid Expression",consequent:null,
elseIfBlocks:null,alternate:null,canAdd:function(){return[]},autoCreateElse:!0,name:"if",icon:"",add:function(b,c,a){null==a&&(a="consequent");return this._add(b,c,a,!1)},__addToStore:function(b){b.put(this)},mayHaveChildren:function(){return null!==this.items&&this.items.length||null!==this.elseIfBlocks&&this.elseIfBlocks.length||null!=this.consequent&&this.consequent.length||null!=this.alternate&&this.alternate.length},getChildren:function(){var b=[];this.consequent&&(b=b.concat(this.consequent));
this.elseIfBlocks&&(b=b.concat(this.elseIfBlocks));this.alternate&&(b=b.concat(this.alternate));return b},toText:function(){return"\x3cspan class\x3d'text-primary'\x3e"+this.getBlockIcon("E")+this.name+" \x3c/span\x3e\x3cspan class\x3d'text-warning small'\x3e"+this.condition+"\x3cspan\x3e"},_checkCondition:function(b){return b.parseExpression(this.condition,null,null)},solve:function(b,c){var a=this._checkCondition(b),d=this.getElseIfBlocks(),g=this.childrenByNotClass(m),f=null,g=g.filter(function(a){return!a.isInstanceOf(l)});
if(1==a||0<a){this.onSuccess(this,c);if(g&&g.length)for(d=0;d<g.length;d++)f=g[d].solve(b,c);return f}f=!1;this.onFailed(this,c);if(d)for(g=0;g<d.length&&!f;g++){a=d[g];if(a._checkCondition(b))return a.onSuccess(a,c),f=!0,a.solve(b,c);a.onFailed(a,c)}g=this.childrenByClass(l);if(0<g.length&&!f){f=null;for(d=0;d<g.length;d++)f=g[d].solve(b,c);return f}return[]},empty:function(){this._empty(this.alternate);this._empty(this.consequent);this._empty(this.elseIfBlocks)},removeBlock:function(b){b&&(b&&b.empty&&
b.empty(),delete b.items,b.parent=null,this.alternate.remove(b),this.consequent.remove(b),this.elseIfBlocks.remove(b))},_getContainer:function(b){return-1!=this.consequent.indexOf(b)?"consequent":-1!=this.alternate.indexOf(b)?"alternate":-1!=this.elseIfBlocks.indexOf(b)?"elseIfBlocks":"_"},init:function(){this.alternate=this.alternate||[];this.consequent=this.consequent||[];this.elseIfBlocks=this.elseIfBlocks||[];for(var b=0;b<this.alternate.length;b++)this.alternate[b].parentId=this.id,this.alternate[b].parent=
this;for(b=0;b<this.elseIfBlocks.length;b++)this.elseIfBlocks[b].parentId=this.id,this.elseIfBlocks[b].parent=this;for(b=0;b<this.consequent.length;b++)this.consequent[b].parentId=this.id,this.consequent[b].parent=this},getFields:function(){var b=this,c=this.inherited(arguments)||this.getDefaultFields();c.push(this.utils.createCI("condition",this.types.ECIType.EXPRESSION_EDITOR,this.condition,{group:"General",title:"Expression",dst:"condition",delegate:{runExpression:function(a,c,d){return b.scope.expressionModel.parse(b.scope,
a,!1,c,d)}}}));return c},postCreate:function(){this._postCreated||(this._postCreated=!0)},toCode:function(b,c){},getElseIfBlocks:function(){return this.childrenByClass(m)},runAction:function(b){var d=this.scope.blockStore;b=b.command;if("New/Else"===b||"New/Else If"===b){b="New/Else If"===b?m:l;var a=c.mixin({name:"else",items:[],dstField:"alternate",parentId:this.id,parent:this,scope:this.scope,canAdd:function(){return[]},canEdit:function(){return!1}},b==m?{name:"else if",dstField:"elseIfBlocks"}:
{name:"else",dstField:"alternate"});b=this.add(b,a,b==l?"alternate":"elseIfBlocks");var a={select:[b],focus:!0,append:!1,expand:!0,delay:10},e=new g;d._emit("added",{target:b});e.resolve(a);b.refresh();return e}},getActions:function(){var b=[];0==this.alternate.length&&b.push(this.createAction({label:"Else",command:"New/Else",icon:this.getBlockIcon("I"),tab:"Home",group:"File",mixin:{addPermission:!0,custom:!0}}));b.push(this.createAction({label:"Else If",command:"New/Else If",icon:this.getBlockIcon("I"),
tab:"Home",group:"File",mixin:{addPermission:!0,custom:!0}}));return b}})})},"xblox/model/Statement":function(){define(["dcl/dcl","xblox/model/Block"],function(f,n){return f(n,{declaredClass:"xblox.model.Statement",toText:function(){return this.name},getChildren:function(){return this.items}})})},"xblox/model/logic/ElseIfBlock":function(){define(["dcl/dcl","xblox/model/Block","xblox/model/Contains"],function(f,n,l){return f([n,l],{declaredClass:"xblox.model.logic.ElseIfBlock",condition:"",consequent:null,
name:"else if",icon:"",solve:function(f,g){return this._checkCondition(f)?this._solve(f,g):!1},toText:function(){return"\x3cspan class\x3d'text-primary'\x3e"+this.getBlockIcon("E")+this.name+" \x3c/span\x3e\x3cspan class\x3d'text-warning small'\x3e"+(this.condition||"")+"\x3cspan\x3e"},_checkCondition:function(f){return null!==this.condition?f.parseExpression(this.condition):!1},getFields:function(){var f=this,g=this.inherited(arguments)||this.getDefaultFields();g.push(this.utils.createCI("condition",
this.types.ECIType.EXPRESSION_EDITOR,this.condition,{group:"General",title:"Expression",dst:"condition",delegate:{runExpression:function(c,b,d){return f.scope.expressionModel.parse(f.scope,c,!1,b,d)}}}));return g}})})},"xblox/model/logic/SwitchBlock":function(){define("dcl/dcl xblox/model/Block xblox/model/logic/CaseBlock xblox/model/logic/DefaultBlock dojo/Deferred xide/lodash".split(" "),function(f,n,l,m,g,c){return f(n,{declaredClass:"xblox.model.logic.SwitchBlock",items:null,name:"Switch",icon:null,
toText:function(){return this.getBlockIcon("H")+this.name+" "},canAdd:function(b){return b&&b.isInstanceOf?b.isInstanceOf(l)||b.isInstanceOf(m):[]},getFields:function(){return this.getDefaultFields(!1,!1)},solve:function(b,c){var a=this._stopped=!1,d=[];this.onSuccess(this,c);for(var g=0;g<this.items.length;g++){var f=this.items[g];if("xblox.model.logic.CaseBlock"===f.declaredClass&&(f=f.solve(b,this,c),0!=f)){a=!0;this.addToEnd(d,f);break}if(this._stopped)break}if(!a)for(g=0;g<this.items.length;g++)f=
this.items[g],"xblox.model.logic.CaseBlock"!=f.declaredClass&&this.addToEnd(d,f.solve(b,c));return d},getChildren:function(){return this.items},stop:function(){this._stopped=!0},runAction:function(b){var c=b.command;if("New/Case"===c||"New/Default"===b.command){b=this.scope.blockStore;var a=new g,e=null;switch(c){case "New/Case":e=this.add(l,{comparator:"\x3d\x3d",expression:"on",group:null});break;case "New/Default":e=this.add(m,{group:null})}a.resolve({select:[e],focus:!0,append:!1});e.refresh();
b._emit("added",{target:e})}},getActions:function(b,d){b=[this.createAction({label:"New Case",command:"New/Case",icon:this.getBlockIcon("I"),tab:"Home",group:"File",mixin:{addPermission:!0,custom:!0,quick:!1}})];c.find(this.items,{declaredClass:"xblox.model.logic.DefaultBlock"})||b.push(this.createAction({label:"Default",command:"New/Default",icon:"fa-eject",tab:"Home",group:"File",mixin:{addPermission:!0,custom:!0,quick:!1}}));return b}})})},"xblox/model/logic/DefaultBlock":function(){define(["dcl/dcl",
"xblox/model/Block"],function(f,n){return f(n,{declaredClass:"xblox.model.logic.DefaultBlock",name:"Default",icon:"",hasInlineEdits:!1,toText:function(){return'\x26nbsp;\x3cspan class\x3d"fa-eject text-info"\x3e\x3c/span\x3e\x26nbsp;\x26nbsp;\x3cspan\x3e'+this.name+"\x3c/span\x3e"},solve:function(f,m){this.onSuccess(this,m);return this._solve(f,m)}})})},"xblox/model/variables/VariableSwitch":function(){define("dcl/dcl xblox/model/logic/SwitchBlock xide/types xblox/model/logic/CaseBlock xblox/model/logic/DefaultBlock dojo/Deferred".split(" "),
function(f,n,l,m,g,c){return f(n,{declaredClass:"xblox.model.variables.VariableSwitch",name:"Switch on Variable",icon:"",variable:"PowerState",toText:function(){var b=this.scope.getVariableById(this.variable),b=b?b.name:"";return this.getBlockIcon("H")+this.name+" "+b},getFields:function(){var b=this.getDefaultFields(!1,!1);return b=b.concat([this.utils.createCI("Variable",3,this.variable,{group:"General",widget:{store:this.scope.blockStore,labelField:"name",valueField:"id",query:[{group:"basicVariables"},
{group:"processVariables"}]},dst:"variable"})])}})})},"xblox/model/logging/Log":function(){define("dcl/dcl dojo/Deferred xblox/model/Block xide/utils xide/types xide/mixins/EventedMixin".split(" "),function(f,n,l,m,g,c){return f([l,c.dcl],{declaredClass:"xblox.model.logging.Log",name:"Log Message",level:"info",message:'return "Message: " + arguments[0];',_type:"XBlox",host:"this host",sharable:!0,toText:function(){var b="text-primary";switch(this.level){case "info":b="text-info";break;case "warn":b=
"text-warning";break;case "error":b="text-danger"}b=this.getBlockIcon()+" "+this.name+" : \x3cspan class\x3d'"+b+" small'\x3e :: ";this.message&&(b+=this.message);return b+"\x3c/span\x3e"},_solveExpression:function(b,c,a,e,g){if((b=""+b)&&b.length){b=m.convertAllEscapes(b,"none");var d=this.getArgs();try{var f=c.parseExpression(b,null,null,null,null,this,d);e&&e("Expression "+b+" evaluates to "+f);return f}catch(q){g&&g("invalid expression : \n"+b+": "+q),this.onFailed(this,a)}}return b},solve:function(b,
c,a,e){var d=new n,f=b.device;b=this._solveExpression(this.message,b,c,a,e);f={message:b,level:this.level,type:this._type,details:this.getArgs(),time:(new Date).getTime(),data:{device:f?f.info:null},write:!0};this.onSuccess(this,c);d.resolve(b);try{this.publish(g.EVENTS.ON_SERVER_LOG_MESSAGE,f)}catch(k){this.onFailed(this,c)}return d},canAdd:function(){return null},getFields:function(){var b=this.inherited(arguments)||this.getDefaultFields(),c=this;b.push(m.createCI("Level",3,this.level,{group:"General",
options:[{value:"info",label:"Info"},{value:"warn",label:"Warning"},{value:"error",label:"Error"},{value:"debug",label:"Debug"},{value:"help",label:"Help"},{value:"verbose",label:"verbose"},{value:"silly",label:"Silly"}],dst:"level"}));b.push(m.createCI("message",25,this.message,{group:"General",title:"Message",dst:"message",delegate:{runExpression:function(a,b,d){c._solveExpression(a,c.scope,null,b,d)}}}));b.push(m.createCI("message",13,this._type,{group:"General",title:"Type",dst:"_type"}));return b},
getBlockIcon:function(){return'\x3cspan class\x3d"fa-bug"\x3e\x3c/span\x3e'}})})},"xblox/model/server/RunServerMethod":function(){define(["dcl/dcl","xblox/model/server/ServerBlock","xide/utils"],function(f,n,l){return f(n,{declaredClass:"xblox.model.server.RunServerMethod",description:"Runs a JSON-RPC-2.0 method on the server",name:"Run Server Method",method:"XShell::run",args:"",deferred:!0,defaultServiceClass:"XShell",defaultServiceMethod:"run",sharable:!0,onMethodChanged:function(f,g){this.method=
f;l.isValidString(this.args)||(f=this.getServerParams())&&this._updateArgs(f,g)},_getArgs:function(){var f=l.getJson(this.args||"[]"),g=[];if(f){var c=!1;f&&f[0]&&null!=f[0].optional&&(c=!0);if(c)for(c=0;c<f.length;c++){var b=f[c],d=b.value;-1!=b.name.indexOf("Base64")&&(d=this.getService().base64_encode(d));"notset"!==b.value?-1!=b.value.indexOf("[")&&-1!=b.value.indexOf("]")?(d=this.scope.expressionModel.replaceVariables(this.scope,b.value,!1,!1),-1!=b.name.indexOf("Base64")&&(d=this.getService().base64_encode(d)),
g.push(d)):g.push(d||b["default"]):g.push(b["default"]||d)}}else return[this.args];return g},_updateArgs:function(f,g){if(g=this.utils.getCIWidgetByName(g,"args"))f=JSON.stringify(f),g.editBox.set("value",f),this.args=f},getServerParams:function(){var f=this.getService().getParameterMap(this.getServiceClass(),this.getServiceMethod());if(f)for(var g=0;g<f.length;g++)f[g].value="notset";return f},onReloaded:function(f){console.log("sdfsd");this._solve()},_solve:function(f,g,c,b){console.log("solve223")},
solve:function(f,g,c,b){this._return=[];this._lastResult=null;f=[];if(!this.isInValidState())return this.onFailed(this,g),f;f=this._getArgs();this.onRun(this,g);this.getService();g=this.scope.serviceObject;console.error("run deferred");(g=g.runDeferred(this.getServiceClass(),this.getServiceMethod(),f))&&g.then(function(b){console.error("returned ",b)});return g},toText:function(){var f=this.getBlockIcon()+" "+this.name+" :: ";this.method&&(f+=this.method.substr(0,50));return f},canAdd:function(){return[]},
getFields:function(){var f=this.inherited(arguments)||this.getDefaultFields(),g=this;f.push(l.createCI("value",25,this.method,{group:"General",title:"Method",dst:"method",description:"This should be in the format : MyServerClass::myMethod",delegate:{runExpression:function(c,b,d){g.method=c;g.solve(g.scope,null,b,d)}}}));return f=f.concat(this.getServerDefaultFields())},getBlockIcon:function(){return'\x3cspan class\x3d"fa-plug"\x3e\x3c/span\x3e'},mayHaveChildren:function(f){return null!=this.items&&
0<this.items.length},getChildren:function(f){return this.items},onChangeField:function(f,g,c){if("method"===f)this.onMethodChanged(g,c)},isInValidState:function(){return null!=this.getService()},getService:function(){var f=this.scope.getService();f||console.error("have no service object");return f},getServiceClass:function(){return this.method.split("::")[0]||this.defaultServiceClass},getServiceMethod:function(){return this.method.split("::")[1]||this.defaultServiceMethod},hasMethod:function(f){return this.isInValidState()&&
null!=this.getService()[this.getServiceClass()]&&null!=this.getService()[this.getServiceClass()][this.getServiceMethod()]},hasServerClass:function(f){return this.isInValidState()&&null!=this.getService()[this.getServiceClass()]},getServerFunction:function(){return this.isInValidState()&&this.getServiceClass()&&this.getServiceMethod()?this.getService()[this.getServiceClass()][this.getServiceMethod()]:null}})})},"xblox/model/server/ServerBlock":function(){define(["dcl/dcl","xblox/model/Block","xide/utils"],
function(f,n,l){return f(n,{declaredClass:"xblox.model.server.ServerBlock",name:"Run Server Block",method:"XShell::run",args:"",deferred:!0,defaultServiceClass:"XShell",defaultServiceMethod:"run",sharable:!0,onReloaded:function(){},solve:function(f,g,c,b){this._currentIndex=0;this._return=[];if((f=""+this.method)&&f.length){var d=new Function("{"+f+"}"),a=this.getArgs();try{var e=d.apply(this,a||{});this._lastResult=e;c&&c("Expression "+f+" evaluates to "+e);if("false"!==e&&!1!==e)this.onSuccess(this,
g);else return this.onFailed(this,g),[]}catch(r){return b&&b("invalid expression : \n"+f+": "+r),this.onFailed(this,g),[]}}else console.error("have no script");c=this[this._getContainer()];if(c.length)this.runFrom(c,0,g);else this.onSuccess(this,g);return[]},toText:function(){var f=this.getBlockIcon()+" "+this.name+" :: ";this.method&&(f+=this.method.substr(0,50));return f},canAdd:function(){return[]},getServerDefaultFields:function(f){f=f||[];f.push(l.createCI("args",27,this.args,{group:"General",
title:"Arguments",dst:"args"}));return f},getBlockIcon:function(){return'\x3cspan class\x3d"fa-plug"\x3e\x3c/span\x3e'},mayHaveChildren:function(f){return null!=this.items&&0<this.items.length},getChildren:function(f){return this.items},isInValidState:function(){return null!=this.getService()},getService:function(){return this.scope.getService()},getServiceClass:function(){return this.method.split("::")[0]||this.defaultServiceClass},getServiceMethod:function(){return this.method.split("::")[1]||this.defaultServiceMethod},
hasMethod:function(f){return this.isInValidState()&&null!=this.getService()[this.getServiceClass()]&&null!=this.getService()[this.getServiceClass()][this.getServiceMethod()]},hasServerClass:function(f){return this.isInValidState()&&null!=this.getService()[this.getServiceClass()]},getServerFunction:function(){return this.isInValidState()&&this.getServiceClass()&&this.getServiceMethod()?this.getService()[this.getServiceClass()][this.getServiceMethod()]:null}})})},"xblox/model/server/Shell":function(){define(["dcl/dcl",
"xblox/model/server/ServerBlock","xide/utils","xide/types","xcf/model/Command"],function(f,n,l,m,g){return f([g,n],{declaredClass:"xblox.model.server.Shell",description:"Runs a JSON-RPC-2.0 method on the server",name:"Run Shell",method:"",args:"",deferred:!0,defaultServiceClass:"XShell",defaultServiceMethod:"run",sharable:!0,onMethodChanged:function(c,b){this.method=c;l.isValidString(this.args)||(c=this.getServerParams())&&this._updateArgs(c,b)},_getArgs:function(){var c=l.getJson(this.args||"[]"),
b=[];if(c){var d=!1;c&&c[0]&&null!=c[0].optional&&(d=!0);if(d)for(d=0;d<c.length;d++){var a=c[d],e=a.value;-1!=a.name.indexOf("Base64")&&(e=this.getService().base64_encode(e));"notset"!==a.value?-1!=a.value.indexOf("[")&&-1!=a.value.indexOf("]")?(e=this.scope.expressionModel.replaceVariables(this.scope,a.value,!1,!1),-1!=a.name.indexOf("Base64")&&(e=this.getService().base64_encode(e)),b.push(e)):b.push(e||a["default"]):b.push(a["default"]||e)}}else return[this.args];return b},_updateArgs:function(c,
b){if(b=this.utils.getCIWidgetByName(b,"args"))c=JSON.stringify(c),b.editBox.set("value",c),this.args=c},getServerParams:function(){var c=this.getService().getParameterMap(this.getServiceClass(),this.getServiceMethod());if(c)for(var b=0;b<c.length;b++)c[b].value="notset";return c},solve:function(c,b,d,a,e,f){this._return=[];this._lastResult=null;b=this._lastSettings=b||this._lastSettings;b=this.getInstance();d=c.expressionModel.replaceVariables(c,this.method,!1,!1);b?b.runShell(d,l.mixin({},{}),this.id,
this.id,this):c.ctx.getDeviceManager().sendManagerCommand(m.SOCKET_SERVER_COMMANDS.RUN_SHELL,{cmd:d,args:[],options:l.mixin({},{params:{id:this.id,src:this.id}})})},toText:function(){var c=this.getBlockIcon()+" "+this.name+" :: ";this.method&&(c+=this.method.substr(0,50));return c},canAdd:function(){return[]},getFields:function(){var c=this.inherited(arguments)||this.getDefaultFields(),b=this;c.push(l.createCI("value",25,this.method,{group:"General",title:"Cmd",dst:"method",delegate:{runExpression:function(c,
a,e){b.method=c;b.solve(b.scope,null,a,e)}}}));return c},getBlockIcon:function(){return'\x3cspan class\x3d"fa-plug"\x3e\x3c/span\x3e'},mayHaveChildren:function(c){return null!=this.items&&0<this.items.length},getChildren:function(c){return this.items},onChangeField:function(c,b,d){if("method"===c)this.onMethodChanged(b,d)},isInValidState:function(){return null!=this.getService()},getService:function(){var c=this.scope.getService();c||console.error("have no service object");return c},getServiceClass:function(){return this.method.split("::")[0]||
this.defaultServiceClass},getServiceMethod:function(){return this.method.split("::")[1]||this.defaultServiceMethod},hasMethod:function(c){return this.isInValidState()&&null!=this.getService()[this.getServiceClass()]&&null!=this.getService()[this.getServiceClass()][this.getServiceMethod()]},hasServerClass:function(c){return this.isInValidState()&&null!=this.getService()[this.getServiceClass()]},getServerFunction:function(){return this.isInValidState()&&this.getServiceClass()&&this.getServiceMethod()?
this.getService()[this.getServiceClass()][this.getServiceMethod()]:null}})})},"xblox/model/code/RunBlock":function(){define(["dcl/dcl","xblox/model/Block","xide/types","xide/utils"],function(f,n,l,m){return f(n,{declaredClass:"xblox.model.code.RunBlock",name:"Run Block",file:"",method:"",args:"",sharable:!0,block:"",description:"Runs another Block",solve:function(f,c){if((f=this.getContext())&&null!=f[this.method]){var b=[],d=f[this.method];try{var a=this._getArgs(),b=d.apply(f,a||[]);this.onSuccess(this,
c);return b}catch(e){console.error("call method failed"),this.onFailed(this,c)}}else this.onFailed(this,c);return[]},toText:function(){var f=this.getBlockIcon()+" "+this.name+" ";this.method&&(f+=this.method.substr(0,20));return f},getFields:function(){var f=this.getDefaultFields();f.push(m.createCI("Block",l.ECIType.BLOCK_REFERENCE,this.block,{toolTip:"Enter block, you can use also the block's share title",group:"General",dst:"block",value:this.block,title:"Block",scope:this.scope}));f.push(m.createCI("File",
l.ECIType.FILE,this.file,{toolTip:"Leave empty to auto-select this file",group:"General",dst:"file",value:this.file,intermediateChanges:!1,acceptFolders:!1,acceptFiles:!0,encodeFilePath:!1,buildFullPath:!0,filePickerOptions:{dialogTitle:"Select Block File",filePickerMixin:{beanContextName:this.id,persistent:!1,globalPanelMixin:{allowLayoutCookies:!1}},configMixin:{beanContextName:this.id,LAYOUT_PRESET:l.LAYOUT_PRESET.SINGLE,PANEL_OPTIONS:{ALLOW_MAIN_MENU:!1,ALLOW_NEW_TABS:!0,ALLOW_MULTI_TAB:!1,ALLOW_INFO_VIEW:!0,
ALLOW_LOG_VIEW:!1,ALLOW_CONTEXT_MENU:!0,ALLOW_LAYOUT_SELECTOR:!0,ALLOW_SOURCE_SELECTOR:!0,ALLOW_COLUMN_RESIZE:!0,ALLOW_COLUMN_REORDER:!0,ALLOW_COLUMN_HIDE:!0,ALLOW_ACTION_TOOLBAR:!0,ALLOW_BREADCRUMBS:!1}},defaultStoreOptions:{fields:1663,includeList:"xblox",excludeList:"*"},startPath:this.file}}));return f},getBlockIcon:function(){return'\x3cspan class\x3d"el-icon-share-alt"\x3e\x3c/span\x3e'}})})},"xblox/model/events/OnEvent":function(){define("dcl/dcl dojo/_base/lang dojo/Deferred xblox/model/Block xide/utils xide/types xide/mixins/EventedMixin xblox/model/Referenced xide/registry dojo/on xwire/_Base".split(" "),
function(f,n,l,m,g,c,b,d,a,e,r){return f([m,b.dcl,d.dcl,r],{declaredClass:"xblox.model.events.OnEvent",name:"On Event",event:"",reference:"",references:null,sharable:!0,_didSubscribe:!1,filterPath:"item.name",filterValue:"",valuePath:"item.value",_nativeEvents:"onclick ondblclick onmousedown onmouseup onmouseover onmousemove onmouseout onkeypress onkeydown onkeyup onfocus onblur onchange".split(" "),stop:function(){this._destroy()},solve:function(a,b,c,d){c&&this._destroy();b=this._lastSettings=b||
this._lastSettings;if(!this._didSubscribe)return this._registerEvent(this.event),this.onSuccess(this,b),!1;this.onSuccess(this,b);this._currentIndex=0;this._return=[];a=this[this._getContainer()];if(a.length)return a=this.runFrom(a,0,b),this.onSuccess(this,b),a;this.onSuccess(this,b);return[]},toText:function(){var a=this.getBlockIcon()+" "+this.name+" :: ";this.event&&(a+=this.event);return a},canAdd:function(){return[]},getFields:function(){var a=this.inherited(arguments)||this.getDefaultFields();
this.deserialize(this.reference);var b=null;if(-1<g.contains(this._nativeEvents,this.event))for(var b=[{label:"onclick",value:"onclick"},{label:"ondblclick",value:"ondblclick"},{label:"onmousedown",value:"onmousedown"},{label:"onmouseup",value:"onmouseup"},{label:"onmouseover",value:"onmouseover"},{label:"onmousemove",value:"onmousemove"},{label:"onmouseout",value:"onmouseout"},{label:"onkeypress",value:"onkeypress"},{label:"onkeydown",value:"onkeydown"},{label:"onkeyup",value:"onkeyup"},{label:"onfocus",
value:"onfocus"},{label:"onblur",value:"onblur"},{label:"onchange",value:"onchange"}],d=0;d<b.length;d++){var e=b[d];if(e.value===this.event){e.selected=!0;break}}else b=this.scope.getEventsAsOptions(this.event);a.push(g.createCI("Event",c.ECIType.ENUMERATION,this.event,{group:"General",options:b,dst:"event",widget:{search:!0}}));a.push(g.createCI("Filter Path",13,this.filterPath,{group:"General",dst:"filterPath"}));a.push(g.createCI("Filter Value",13,this.filterValue,{group:"General",dst:"filterValue"}));
a.push(g.createCI("Value Path",13,this.valuePath,{group:"General",dst:"valuePath"}));a.push(g.createCI("Object/Widget",c.ECIType.WIDGET_REFERENCE,this.reference,{group:"Widget",dst:"reference",value:this.reference}));return a},getBlockIcon:function(){return'\x3cspan class\x3d"fa-bell"\x3e\x3c/span\x3e'},onEvent:function(a){this._lastResult=a;if(this.filterPath&&this.filterValue){var b=this.getValue(a,this.filterPath);if(b&&this.filterValue!==b)return}b=null;this.valuePath&&(this._lastSettings||(this._lastSettings=
{}),b=this.getValue(a,this.valuePath),null!==b&&(!this._lastSettings.override&&(this._lastSettings.override={}),this._lastSettings.override.args=[b]));this.solve(this.scope,this._lastSettings)},_subscribe:function(a,b,c){if(a)if(-1==g.contains(this._nativeEvents,a))this.__events&&this.__events[a]&&(c=this.__events[a],_.each(c,function(a){this.unsubscribe(a.type,a.handler);a.remove()},this),_.each(c,function(b){this.__events[a].remove(b)},this)),this.subscribe(a,this.onEvent);else if(c){b=a.replace("on",
"");var d=this;c=e(c,b,function(a){d.onEvent(a)});console.log("wire native event : "+b);this._events.push(c)}},_registerEvent:function(b){try{if(!b||!b.length)return;console.log("register event : "+b+" for "+this.reference);var c=this.resolveReference(this.deserialize(this.reference)),d=this;if(c&&c.length){for(var e=0;e<c.length;e++){var f=c[e];if(f&&f.id){var g=a.byId(f.id);if(g&&g.on){var l=this.event.replace("on","");console.log("found widget : "+f.id+" will register event "+l);var p=g.on(l,n.hitch(this,
function(a){console.log("event triggered : "+d.event);d.onEvent(a)}));this._events.push(p)}else this._subscribe(b,this.onEvent,f)}else this._subscribe(b,this.onEvent,f)}console.log("objects found : ",c)}else this._subscribe(b,this.onEvent)}catch(w){logError(w,"registering event failed")}this._didSubscribe=b},onLoad:function(){this._onLoaded=!0;this.event&&this.event.length&&this.enabled&&this._registerEvent(this.event)},updateEventSelector:function(a,b){var d=[];if(a&&a.length)for(d=[{label:"onclick",
value:"onclick"},{label:"ondblclick",value:"ondblclick"},{label:"onmousedown",value:"onmousedown"},{label:"onmouseup",value:"onmouseup"},{label:"onmouseover",value:"onmouseover"},{label:"onmousemove",value:"onmousemove"},{label:"onmouseout",value:"onmouseout"},{label:"onkeypress",value:"onkeypress"},{label:"onkeydown",value:"onkeydown"},{label:"onkeyup",value:"onkeyup"},{label:"onfocus",value:"onfocus"},{label:"onblur",value:"onblur"},{label:"onchange",value:"onchange"}],a=0;a<d.length;a++){var e=
d[a];if(e.value===this.event){e.selected=!0;break}}else d=this.scope.getEventsAsOptions(this.event);for(a=0;a<b.length;a++)if(e=b[a],e.widget&&"Event"===e.widget.title){b=e._widget;b.nativeWidget.set("options",d);b.nativeWidget.reset();b.nativeWidget.set("value",this.event);this.publish(c.EVENTS.RESIZE,{});break}},onReferenceChanged:function(a,b){this._destroy();this.reference=a;a=this.resolveReference(this.deserialize(a));this.updateEventSelector(a,b);this._registerEvent(this.event)},onChangeField:function(a,
b,c){"event"==a&&(this._destroy(),this._onLoaded&&(this.event=b,this._registerEvent(b)));if("reference"==a)this.onReferenceChanged(b,c);this.inherited(arguments)},activate:function(){this._destroy();this._registerEvent(this.event)},deactivate:function(){this._destroy()},_destroy:function(){this._events||(this._events=[]);_.each(this._events,dojo.unsubscribe);this.unsubscribe(this.event,this.onEvent);this._lastResult=null;this._didSubscribe=!1}})})},"xblox/model/Referenced":function(){define(["dcl/dcl",
"dojo/_base/declare","xide/mixins/ReferenceMixin","xide/utils"],function(f,n,l,m){var g={reference:null,deserialize:function(c){if(!c||0==c.length)return{};try{return m.fromJson(c)}catch(b){return{}}}};n=n("xblox.model.Referenced",[l],g);n.dcl=f(l.dcl,g);return n})},"xide/mixins/ReferenceMixin":function(){define(["dcl/dcl","dojo/_base/declare","xide/types","xide/utils","xide/registry"],function(f,n,l,m,g){function c(b,a){return(b=b.document.getElementById(a))?b:null}m.find=function(b,a,c){return(b=
$(a).find(b))&&0<b.length?!1===c?b:b[0]:null};var b={_targetReference:null,getTarget:function(){return this._targetReference||this.inherited(arguments)},skipWidgetCSSClasses:"dijitButtonHover dijitHover dijit dijitInline dijitReset dijitCheckBoxChecked dijitChecked dijitLeft".split(" "),_cssClassesToQuery:function(b){var a="";if(b){b=b.split(" ");for(var c=0;c<b.length;c++)-1<m.contains(this.skipWidgetCSSClasses,b[c])||b[c].toLowerCase().includes("hover")||(a+=""+b[c])}return a.trim()},resolveReference:function(b,
a){var d=null;try{d=this.getTarget()}catch(k){return logError(k),null}var n=this.scope,p=b.reference;if(!(b&&p&&p.length)&&d)return[d];switch(b.mode){case l.WIDGET_REFERENCE_MODE.BY_ID:if(this.scope&&this.scope.document){a=[];if(p.includes(" "))for(p=p.split(" "),b=0;b<p.length;b++)(d=c(n,p[b]))&&a.push(d);else return[c(n,p)];return a}n=g.byId(p);p="undefined"!==typeof document?document.getElementById(p):null;if(n||p)return n?[n]:[p];break;case l.WIDGET_REFERENCE_MODE.BY_CLASS:if(n=dojo.getObject(p)||
f.getObject(p))return[n];break;case l.WIDGET_REFERENCE_MODE.BY_CSS:n=this._cssClassesToQuery(p);this._parseString&&(n=this._parseString(n,a,null,a&&a.flags?a.flags:l.CIFLAG.EXPRESSION)||n);p=null;this.scope&&this.scope.global&&this.scope.global.$?p=this.scope.global.$:"undefined"!==typeof $&&(p=$);if(p&&(p=p(n)))return p;if(n=m.find(n,null,!1))return n}return null}};n=n("xblox.model.ReferenceMixin",null,b);n.dcl=f(null,b);return n})},"xwire/_Base":function(){define(["dcl/dcl","xide/mixins/EventedMixin"],
function(f,n){function l(f,c){c=m(c);for(var b=0,d=c.length;b<d;++b){var a=c[b];f=null==f?f:f[a]}return f}function m(f,c){return""===f?[]:"function"!==typeof f.splice?f.split("."):c?f.slice():f}return f([n.dcl],{declaredClass:"xwire._Base",constructor:function(f){for(var c in f)f.hasOwnProperty(c)&&(this[c]=f[c])},getValue:function(f,c){return l(f,c)},setValue:function(f,c,b){var d=m(c,!0),a=d.pop();f=0<d.length?l(f,d):f;return Object(f)===f&&c?"function"===typeof f.set?f.set(a,b):f[a]=b:void 0}})})},
"xblox/model/events/OnKey":function(){define("dcl/dcl dojo/_base/lang dojo/_base/array dojo/Deferred xblox/model/Block xide/utils xide/types xide/mixins/EventedMixin xblox/model/Referenced xblox/model/Contains xblox/model/events/OnEvent xide/registry dojo/on".split(" "),function(f,n,l,m,g,c,b,d,a,e,r,p,k){return f([g,d.dcl,a.dcl,e],{declaredClass:"xblox.model.events.OnKey",name:"On Key",event:"",reference:"",references:null,description:"Triggers when a keyboard sequence "+this.event+" has been entered",
listeners:null,sharable:!0,toText:function(){var a=this.getBlockIcon()+" "+this.name+" :: ";this.event&&(a+=this.event);return a},canAdd:function(){return[]},getFields:function(){var a=this.inherited(arguments)||this.getDefaultFields();a.push(c.createCI("Keyboard Sequence",b.ECIType.STRING,this.event,{group:"General",dst:"event",value:this.event,intermediateChanges:!1}));a.push(c.createCI("Object/Widget",b.ECIType.WIDGET_REFERENCE,this.reference,{group:"General",dst:"reference",value:this.reference}));
return a},getBlockIcon:function(){return'\x3cspan class\x3d"fa-keyboard-o"\x3e\x3c/span\x3e'},onEvent:function(a){this._lastResult=a;this.solve(this.scope,this._lastRunSettings)},_addListerner:function(a,b,c){null==this.listeners&&(this.listeners=[]);var d=null,d=new window.keypress.Listener(c,{is_unordered:!0,prevent_repeat:!1,prevent_default:!1,on_keyup:function(a){console.log("up")},on_keydown:function(a){console.log("down")},on_release:function(a){console.log("release")}});d.simple_combo(a,function(a){b&&
b(arguments)});this.listeners.push(d)},_subscribe:function(a,b,c){a&&(c&&c.domNode&&(c=c.domNode),this._addListerner(a,b,c))},_registerEvent:function(a){if(a&&a.length){var b=this.resolveReference(this.deserialize(this.reference)),c=this;if(b&&b.length)for(var d=0;d<b.length;d++){var e=b[d];if(e&&e.id){var f=p.byId(e.id);f=null,this._subscribe(a,function(){c.onEvent(arguments)},e)}else this._subscribe(a,function(){c.onEvent(arguments)},e)}else this._subscribe(a,function(){c.onEvent(arguments)})}},
onLoad:function(){this._onLoaded=!0;this.event&&this.event.length&&this.enabled&&this._registerEvent(this.event)},destroy:function(){this.inherited(arguments)},updateEventSelector:function(a,c){var d=[];if(a&&a.length)for(d=[{label:"onclick",value:"onclick"},{label:"ondblclick",value:"ondblclick"},{label:"onmousedown",value:"onmousedown"},{label:"onmouseup",value:"onmouseup"},{label:"onmouseover",value:"onmouseover"},{label:"onmousemove",value:"onmousemove"},{label:"onmouseout",value:"onmouseout"},
{label:"onkeypress",value:"onkeypress"},{label:"onkeydown",value:"onkeydown"},{label:"onkeyup",value:"onkeyup"},{label:"onfocus",value:"onfocus"},{label:"onblur",value:"onblur"},{label:"onchange",value:"onchange"}],a=0;a<d.length;a++){var e=d[a];if(e.value===this.event){e.selected=!0;break}}else d=this.scope.getEventsAsOptions(this.event);for(a=0;a<c.length;a++)if(e=c[a],e.widget&&"Event"===e.widget.title){c=e._widget;c.nativeWidget.set("options",d);c.nativeWidget.reset();c.nativeWidget.set("value",
this.event);this.publish(b.EVENTS.RESIZE,{});break}},onReferenceChanged:function(a,b){this._destroy();this.reference=a;this.resolveReference(this.deserialize(a));this._registerEvent(this.event)},onChangeField:function(a,b,c){"event"==a&&(this._destroy(),this._onLoaded&&(this.event=b,this._registerEvent(b)));if("reference"==a)this.onReferenceChanged(b,c);this.inherited(arguments)},activate:function(){this._destroy();this._registerEvent(this.event)},deactivate:function(){this._destroy()},_destroy:function(){if(this.listeners)for(var a=
0;a<this.listeners.length;a++){var b=this.listeners[a];b.stop_listening();var c=b.get_registered_combos();c&&b.unregister_many(c);b.reset();console.log("did destroy listener")}this.listeners=[]},onFieldsRendered:function(a,b){}})})},"xblox/model/mqtt/Subscribe":function(){define("dcl/dcl xdojo/has xblox/model/Block xide/utils xblox/model/Contains xide/types".split(" "),function(f,n,l,m,g,c,b,d){n="undefined"!==typeof window?window.console:global.console;b&&n&&n.error&&(n=d);return f([l,g],{declaredClass:"xblox.model.mqtt.Subscribe",
name:"Subscribe",topic:"Topic",args:"",deferred:!1,sharable:!0,context:null,icon:"fa-bell",path:"",qos:0,stop:function(){var a=this.getInstance();a&&a.callMethod("unSubscribeTopic",m.mixin({topic:this.topic},m.getJson(this.args||{})),this.id,this.id)},onData:function(a){if(a&&a.topic&&a.topic==this.topic){delete a.src;delete a.id;var b=this[this._getContainer()],c=this._lastSettings,d=[];if(0<b.length){var b=a,f=this.path&&this.path.length?this.path:null!==a.payload?"payload":null;f&&_.isObject(a)&&
(b=m.getAt(a,f,a));for(a=0;a<this.items.length;a++)f=this.items[a],f.enabled&&(f.override={args:[b]},d.push(f.solve(this.scope,c)))}this.onSuccess(this,this._lastSettings);return d}},observed:["topic"],getContext:function(){return this.context||(this.scope.getContext?this.scope.getContext():this)},solve:function(a,b){this._currentIndex=0;this._return=[];this._lastSettings=b;(a=this.getInstance())&&a.callMethod("subscribeTopic",m.mixin({topic:this.topic,qos:this.qos},m.getJson(this.args||"{}")),this.id,
this.id);b=b||{};this.onRunThis(b)},toText:function(){var a='\x3cspan style\x3d""\x3e'+this.getBlockIcon()+""+this.makeEditable("topic","bottom","text","Enter a topic","inline")+" :: \x3c/span\x3e";this.topic&&(a+=this.topic.substr(0,30));return a},canAdd:function(){return[]},getFields:function(){var a=this.inherited(arguments)||this.getDefaultFields();a.push(m.createCI("name",13,this.name,{group:"General",title:"Name",dst:"name"}));a.push(m.createCI("arguments",27,this.args,{group:"Arguments",title:"Arguments",
dst:"args"}));a.push(m.createCI("topic",c.ECIType.STRING,this.topic,{group:"General",title:"Topic",dst:"topic",select:!0}));a.push(m.createCI("name",c.ECIType.ENUMERATION,this.qos,{group:"General",title:"QOS",dst:"qos",widget:{options:[{label:"0 - at most once",value:0},{label:"1 - at least once",value:1},{label:"2 - exactly once",value:2}]}}));a.push(m.createCI("path",c.ECIType.STRING,this.path,{group:"General",title:"Value Path",dst:"path"}));return a}})})},"xblox/model/mqtt/Publish":function(){define(["dcl/dcl",
"xdojo/has","xide/utils","xide/types","xcf/model/Command"],function(f,n,l,m,g,c,b){n="undefined"!==typeof window?window.console:global.console;c&&n&&n.error&&(n=b);return f(g,{declaredClass:"xblox.model.mqtt.Publish",name:"Publish",topic:"",args:"",deferred:!1,sharable:!0,context:null,icon:"fa-send",isCommand:!0,qos:0,retain:!1,path:null,flags:0,onData:function(b){if(b&&b.topic&&b.topic==this.topic){this.getContext();var a=this[this._getContainer()],c=this._lastSettings,d=[];if(0<a.length)for(a=b,
(this.path="value",_.isObject(b))&&(a=l.getAt(b,this.path,b)),b=0;b<this.items.length;b++){var f=this.items[b];f.enabled&&(f.override={args:[a]},d.push(f.solve(this.scope,c)))}this.onSuccess(this,this._lastSettings);return d}},observed:["topic"],getContext:function(){return this.context||(this.scope.getContext?this.scope.getContext():this)},solve:function(b,a,c){this._currentIndex=0;this._return=[];a=this._lastSettings=a||this._lastSettings;var d=this.getInstance();!0===c&&this._loop&&this.reset();
var e=this.args;c=this.getArgs(a);c[0]&&(e=c[0]);if(d){var f=a.flags||this.flags;c=!(f&m.CIFLAG.DONT_PARSE);f&=m.CIFLAG.EXPRESSION;e=l.getJson(e,!0,!1);null!==e&&0!==e&&!0!==e&&!1!==e&&_.isObject(e)||(e={payload:this.args});var g=b.expressionModel.replaceVariables(b,this.topic,!1,!1);if(e.payload&&_.isString(e.payload)&&c){var h=a.override||this.override||{},n=h&&h.variables?h.variables:null;!1!==c&&(e.payload=l.convertAllEscapes(e.payload,"none"));f&&!1!==c&&(e.payload=b.parseExpression(e.payload,
null,n,null,null,null,h.args))}d.callMethod("publishTopic",l.mixin({topic:g,qos:this.qos,retain:this.retain},e),this.id,this.id)}a=a||{};this.onDidRun();this.onSuccess(this,a);return!0},toText:function(b){b='\x3cspan style\x3d""\x3e'+this.getBlockIcon()+" "+this.makeEditable("name","top","text","Enter a name","inline")+" :: \x3c/span\x3e";this.topic&&(b+=this.makeEditable("topic","bottom","text","Enter a topic","inline"),this.startup&&(b+=this.getIcon("fa-bell inline-icon text-warning","text-align:right;float:right;",
"")),0<this.interval&&(b+=this.getIcon("fa-clock-o inline-icon text-warning","text-align:right;float:right","")));return b},canAdd:function(){return[]},getFields:function(){var b=this.inherited(arguments)||this.getDefaultFields();b.push(l.createCI("qos",m.ECIType.ENUMERATION,this.qos,{group:"General",title:"QOS",dst:"qos",widget:{options:[{label:"0 - at most once",value:0},{label:"1 - at least once",value:1},{label:"2 - exactly once",value:2}]}}));b.push(l.createCI("arguments",27,this.args,{group:"Arguments",
title:"Arguments",dst:"args"}));b.push(this.utils.createCI("flags",5,this.flags,{group:"Arguments",title:"Flags",dst:"flags",data:[{value:4096,label:"Dont parse",title:"Do not parse the string and use it as is"},{value:2048,label:"Expression",title:"Parse it as Javascript"}],widget:{hex:!0}}));b.push(l.createCI("topic",m.ECIType.STRING,this.topic,{group:"General",title:"Topic",dst:"topic",select:!0}));b.push(l.createCI("retain",m.ECIType.BOOL,this.retain,{group:"General",title:"Retain",dst:"retain"}));
b.remove(_.find(b,{name:"send"}));b.remove(_.find(b,{name:"waitForResponse"}));return b}})})},"xblox/model/File/ReadJSON":function(){define("dcl/dcl dojo/Deferred xblox/model/Block xide/utils xblox/model/Contains xide/types xdojo/has!xblox-ui?xfile/data/DriverStore xdojo/has!xblox-ui?xfile/views/FileGridLight".split(" "),function(f,n,l,m,g,c,b,d){function a(a,c,d){return new b({data:[],config:{},mount:"none",options:c,driver:d,micromatch:"(*.json)|!(*.*)",glob:a})}return f([l,g],{declaredClass:"xblox.model.File.ReadJSON",
name:"Read JSON",deferred:!1,sharable:!1,context:null,icon:"fa-file",observed:["path"],getContext:function(){return this.context||(this.scope.getContext?this.scope.getContext():this)},getFileContent:function(a){return this.getScope().ctx.getDeviceManager().getInstanceByName("File-Server").callCommand("GetProg",{override:{args:[a]}})},processJSON:function(a,b){var d=this.jsonPath;this._lastResult=d?m.getAt(a,d):a;this.onSuccess(this,b);this.runByType(c.BLOCK_OUTLET.FINISH,b)},solve:function(a,b,c,
d,f){this._currentIndex=0;this._return=[];b=this._lastSettings=b||this._lastSettings||{};c=""+this._get("path");var e=new n,g=this;this.onRunThis(b);a=a.expressionModel.replaceVariables(a,c,null,null);this.getFileContent(a).then(function(a){(a=a.content)&&(a=m.getJson(a,!0))&&g.processJSON(a,b)}.bind(this));try{d&&d("Expression "+c+" evaluates to "+a)}catch(v){this.onDidRunItemError(e,v,b),this.onFailed(this,b),f&&f("invalid expression : \n"+c+": "+v)}return e},toText:function(){var a='\x3cspan style\x3d""\x3e'+
this.getBlockIcon()+" "+this.name+" :: \x3c/span\x3e";this.path&&(a+=this.path.substr(0,50));return a},canAdd:function(){return[]},getFields:function(){var e=this.inherited(arguments)||this.getDefaultFields(),f=this.getScope().ctx,g=f.getDeviceManager().getInstanceByName("File-Server"),k=m.clone(c.DEFAULT_FILE_GRID_PERMISSIONS);g&&b&&(f={ctx:f,owner:this,selection:"/",resizeToParent:!0,Module:d,permissions:k},k={fields:c.FIELDS.SHOW_ISDIR|c.FIELDS.SHOW_OWNER|c.FIELDS.SHOW_SIZE|c.FIELDS.SHOW_FOLDER_SIZE|
c.FIELDS.SHOW_MIME|c.FIELDS.SHOW_PERMISSIONS|c.FIELDS.SHOW_TIME|c.FIELDS.SHOW_MEDIA_INFO},f.leftStore=a("/*",k,g),f.rightStore=a("/*",k,g),e.push(m.createCI("path",4,this.path,{group:"General",title:"Path",dst:"path",filePickerOptions:f,widget:{item:this}})));e.push(m.createCI("jsonPath",13,this.jsonPath,{group:"General",title:"Select",dst:"jsonPath"}));return e}})})},"xcf/factory/Blocks":function(){define("xblox/factory/Blocks xcf/model/Command xblox/model/functions/CallBlock xblox/model/functions/StopBlock xblox/model/functions/PauseBlock xide/factory".split(" "),
function(f,n,l,m,g,c){return f?(f._getCommandBlocks=function(b,c,a,e){var d=[];d.push({name:"Commands",iconClass:"el-icon-random",items:[{name:"Call Command",owner:c,iconClass:"el-icon-video",proto:l,target:a,ctrArgs:{scope:b,group:e,condition:""}},{name:"Stop Command",owner:c,iconClass:"el-icon-video",proto:m,target:a,ctrArgs:{scope:b,group:e,condition:""}},{name:"Pause Command",owner:c,iconClass:"el-icon-video",proto:g,target:a,ctrArgs:{scope:b,group:e,condition:""}},{name:"New Command",owner:c,
iconClass:"el-icon-video",proto:n,target:a,ctrArgs:{scope:b,group:e,condition:"",name:"No-Title"}}]});return d},f):c})},"nxapp/manager/TestManager":function(){define("dcl/dcl dojo/node!fs xcf/manager/DeviceManager xide/utils xide/types nxapp/utils/_console nxapp/utils dojo/node!child_process nxapp/manager/ManagerBase require xide/mixins/ReloadMixin dojo/node!path xdojo/has".split(" "),function(f,n,l,m,g,c,b,d,a,e,r,p,k){function q(){h.clear();e(["intern/lib/executors/PreExecutorEmbedded","intern/lib/reporters/Console"],
function(a,b){a=new a({executorId:"client",config:m.mixin(u,{suites:["tests/devices/all"]}),defaultLoaderOptions:dojoConfig});try{h.error("run tests"),a.run(function(a){h.error("did tests ",a)}),e.undef("tests/devices/all")}catch(x){h.error("error running tests ",x)}})}var h=c,u={proxyPort:9E3,proxyUrl:"http://localhost:9000/",tunnel:"NullTunnel",capabilities:{name:"dojo-loader",project:"Dojo 2",fixSessionCapabilities:!1},environments:[{browserName:"internet explorer",version:["9.0","10.0","11.0"],
platform:"Windows 7"},{browserName:"firefox",platform:"Windows 10"},{browserName:"chrome",platform:"Windows 10"},{browserName:"safari",version:"9",platform:"OS X 10.11"},{browserName:"android",platform:"Linux",version:"4.4",deviceName:"Google Nexus 7 HD Emulator"}],maxConcurrency:2,loaderOptions:{packages:[{name:"dojo",location:"./node_modules/dojo"},{name:"dijit",location:"dijit"},{name:"dgrid",location:"dgrid"},{name:"dstore",location:"dstore"},{name:"xide",location:"xide"},{name:"xfile",location:"xfile"},
{name:"dojox",location:"dojox"},{name:"xdojo",location:"xdojo"},{name:"xgrid",location:"xgrid"},{name:"xblox",location:"xblox"},{name:"xdocker",location:"xdocker"},{name:"wcDocker",location:"wcDocker/src"},{name:"dcl",location:"./node_modules/dcl"},{name:"tests",location:"tests"}]},excludeInstrumentation:/(?:node_modules|bower_components|tests)[\/\\]/,suites:["tests/all"],functionalSuites:[],reporters:[{id:"tests/ConsoleEmbedded",delegate:{onStart:function(a){h.error("on start "+a.name)},onFail:function(a){h.error("on fail "+
a.name)},onEnd:function(a){h.error("on start "+a.name)}}},{id:"JUnit",filename:"report.xml"}]};(n=global.sctx)&&n.getTestManager();return f([a,r.dcl],{declaredClass:"nxapp.manager.TestManager",connection:null,test1:function(){return" ha"},loadFixtures:function(){p.resolve("./tests/")},onReloaded:function(){h.error("on reloaded")},doTests:function(){},init:function(){this.subscribe(g.EVENTS.ON_MODULE_RELOADED,function(a){-1!==a.module.indexOf("tests/devices")&&a.module.indexOf(".js")&&(e.undef("tests/devices/Minimal"),
q())})}})})},"nxappmain/main_export":function(){require("dojo/node!path dojo/node!fs dojo/node!util nxapp/Commons nxapp/Logger nxapp/utils/_console xide/utils nxappmain/nxAppExport nxapp/manager/ExportManager nxapp/model/ExportOptions xide/types require".split(" "),function(f,n,l,m,g,c,b,d,a,e,r,p){f=new d({commander:null});f.init();f=f.profile;c.log("export "+f.user+" and system data: "+f.system);new e(f);(new a).initWithOptions(f)})},"nxapp/Logger":function(){define(["dcl/dcl","xide/types","xide/factory",
"dojo/node!winston","nxapp/utils/_console"],function(f,n,l,m,g){return f(null,{declaredClass:"nxapp.Logger",fileLogger:null,loggly:null,delegate:null,publishLog:!1,loggers:{},constructor:function(c){for(var b in arguments)arguments.hasOwnProperty(b)&&(this[b]=c[b])},createLogger:function(c){var b=new m.Logger({transports:[new m.transports.File(c)]});if(this.publishLog)b.on("logging",function(b,a,e,f){f.logId=c.filename;b={level:a,message:e,data:f,time:(new Date).getTime()};l.publish(n.EVENTS.ON_SERVER_LOG_MESSAGE,
b)});return b},log:function(){return this.logger.log.apply(this.logger,arguments)},verbose:function(){return this.logger.verbose.apply(this.logger,arguments)},info:function(){return this.logger.info.apply(this.logger,arguments)},start:function(c){this.loggers={};this.options=c;this.logger=new m.Logger({transports:[new m.transports.Console({level:"debug"})]});this.logger.transports.console.level="debug";this.logger.on("logging",function(b,c,a,e){})}})})},"nxappmain/nxAppExport":function(){define("dcl/dcl nxapp/utils/FileUtils dojo/node!commander dojo/node!fs dojo/node!os dojo/node!path xide/factory/Events dojo/has xide/model/Base xide/utils nxappmain/nxAppBase".split(" "),
function(f,n,l,m,g,c,b,d,a,e,r){d.add("windows",function(){return"win32"===g.platform()});d.add("osx",function(){return"darwin"===g.platform()});d.add("linux",function(){return"linux"===g.platform()});d.add("arm",function(){return"arm"===g.arch()});return f(r,{declaredClass:"nxappmain.nxAppExport",profilePath:"/nxappmain/profile_device_server.json",init:function(){this.commander||(l.version("0.0.1").option("-f, --file \x3cpath\x3e","run a file").option("-r, --root \x3cpath\x3e","root path to Control-Freak").option("-u, --user \x3cpath\x3e",
"user directory").option("-t, --target \x3cpath\x3e","target directory").option("-s, --system \x3cname\x3e","path to system scope location").option("-d, --dist \x3cpath\x3e","path to the pre-compiled NodeJS servers").option("--windows \x3cboolean\x3e","true/false to export windows NodeJS server").option("--osx \x3cboolean\x3e","true/false to export OSX NodeJS server").option("--linux32 \x3cboolean\x3e","true/false to export Linux-32 Bit NodeJS server").option("--linux64 \x3cboolean\x3e","true/false to export Linux-64 NodeJS server").option("--arm \x3cboolean\x3e",
"true/false to export ARM-v7 NodeJS server").option("--client \x3cstring\x3e","path to client root"),this.commander=l,this.commander.allowUnknownOption(!0),this.commander.parse(process.argv));if(l.jhelp){var a=[];l.options.map(function(b){a.push(b)});console.log(JSON.stringify(a));process.exit()}this.profile=this.getProfile(this.profilePath);l.root||(this.profile.root=n.resolve("../.."));l.target||(this.profile.target=n.resolve("../../myapp"));e.mixin(this.profile,this.commander);var b=c.resolve(this.profile.system);
m.existsSync(b)?this.profile.system=b:(b=process.cwd()+"/data/system",this.profile.system=b,l.system=b)}})})},"nxapp/model/ExportOptions":function(){define(["dcl/dcl","xide/model/Base","xide/mixins/EventedMixin","xide/encoding/MD5","xide/utils"],function(f,n,l,m,g){return f([n.dcl,l.dcl],{connected:!1,__registered:!1,declaredClass:"nxapp/model/ExportOptions",toString:function(){var c=this.options;return c.deviceScope+"://"+c.host+":"+c.port+"@"+c.protocol},constructor:function(c){this.options=c}})})},
"nxappmain/main_server":function(){require("dojo/node!readline nxapp/Commons xide/types nxapp/utils/TCPUtils nxappmain/nxAppBase nxapp/manager/DeviceServerContext nxapp/client/WebSocket xlog/Server dojo/node!winston dojo/node!path dojo/node!fs dojo/node!util dojo/node!vm nxapp/manager/MQTTManager nxapp/Commons nxapp/utils/FileUtils nxapp/Logger nxapp/utils/_console require dojo/node!tcp-port-used dojo/Deferred".split(" "),function(f,n,l,m,g,c,b,d,a,e,r,p,k,q,h,u,v,t,x,w,A){global.dojoRequire=x;global._=
_;n={filename:"all.log",dirname:dojoConfig.logRoot,json:!0};var B=new d({});B.start({fileLogger:n,console:null});var y=new g({commander:null});g=new A;var H,I,F;y.init();var z=y.profile;d=y.commander;if(d.diagnose){console.error("run diagnose");console.log("loaded modules: ",null!==global.nRequire.cache);for(var C in global.nRequire.cache)console.log(C)}else{if(d.modules){k=["/nxappmain/server","/nxappmain/dojoConfig","/dojo/dojo","/dojo/_base/configNode"];u="";c=0;for(C in global.nRequire.cache)r=
C.replace(process.cwd(),"").replace(e.sep+"node_modules"+e.sep,"").replace(".js",""),-1===k.indexOf(r)&&(u+="var a_"+c+' \x3d require("'+r+'");\n',c++);console.log(u);return u}if(d.file){e=e.resolve(d.file);if(r.existsSync(e)){C=new k.createContext({require:x.nodeRequire,commander:d,console:console,process:process,setTimeout:setTimeout,global:global});e=u.readFile(e);(new k.Script(e)).runInContext(C);return}console.error("file specified but doesnt exists "+d.file)}d.port&&(z.socket_server.port=d.port);
d.host&&(z.socket_server.host=d.host);if(y.commander.info)console.log(JSON.stringify({host:"http://"+y.profile.socket_server.host,port:y.profile.socket_server.port})),process.exit();else{var G=null;try{G=new c,G.profile=z}catch(L){console.error("error launching ",L)}try{G.constructManagers();G.initManagers(z);G.logManager=B;var E=new q({ctx:G,profile:z});E.init(z);G.connectionManager.mqttManager=E;G.mqttManager=E}catch(L){console.error("launching",L)}var K=null,D=function(){var a=new b;a.init({options:{host:"http://"+
y.profile.socket_server.host,port:y.profile.socket_server.port,debug:y.profile.debug}});a.connect();a.onSignal(l.SIGNAL_RESPONSE,function(a){z.common.stdout&&process.stdout.write(a+"\n");y.commander.oneshot&&y.commander.command&&process.exit()});return a},J=function(){y.commander.host&&(H=y.commander.host);y.commander.port&&(I=parseInt(y.commander.port));y.commander.protocol&&(F=y.commander.protocol);if(y.commander.driver){console.error("run in driver mode");var a=D(),b={driver:"xcf/driver/SubTest",
host:"192.168.1.20",port:23,protocol:"tcp"},c=l.SOCKET_SERVER_COMMANDS.SIGNAL_MANAGER;b.manager_command=l.SOCKET_SERVER_COMMANDS.START_DRIVER;c=l.SOCKET_SERVER_COMMANDS.SIGNAL_MANAGER;a.emit(c,b)}else if(y.commander.send){console.error("sending command");console.error(" create web socket client to control server : http://"+y.profile.socket_server.host+":"+y.profile.socket_server.port);var a=D(),d=function(b){if(null!==a&&null!=b){var c={command:b,host:H,port:I,protocol:F},d=l.SOCKET_SERVER_COMMANDS.SIGNAL_DEVICE;
"startDriver"==b?(c.manager_command=l.SOCKET_SERVER_COMMANDS.MANAGER_START_DRIVER,d=l.SOCKET_SERVER_COMMANDS.SIGNAL_MANAGER):"status"==b?(c.manager_command=l.SOCKET_SERVER_COMMANDS.MANAGER_STATUS,d=l.SOCKET_SERVER_COMMANDS.SIGNAL_MANAGER):"closeall"==b?(c.manager_command=l.SOCKET_SERVER_COMMANDS.MANAGER_CLOSE_ALL,d=l.SOCKET_SERVER_COMMANDS.SIGNAL_MANAGER):c.device_command=l.SOCKET_SERVER_COMMANDS.DEVICE_SEND;a.emit(d,c)}},b=function(b){if(null!==a&&null!=b)if(b.indexOf&&-1!=b.indexOf(";")){b=b.split(";");
for(var c=0;c<b.length;c++)d(b[c])}else d(b)};f.createInterface({input:process.stdin,output:process.stdout}).on("line",function(a){null!=a&&0<a.length&&(console.log("sending stdin : "+a),d(a))});"string"==typeof y.commander.command&&b(y.commander.command);console.error("Send command. ^C to close connection and quit")}};if(z.common.createSocketServer){var N=function(){K=m.createDeviceServer(z,G);G.deviceServer=K;G.logger=a;G.deviceServer.logger=a;G.logManager=B};w.check(z.socket_server.port,z.socket_server.host).then(function(a){if(a)console.log("device server already started"),
D();else{N();try{J()}catch(M){console.error("error main",M)}}},function(a){N();try{J()}catch(M){console.error("error main",M)}})}else try{J()}catch(L){console.error("app crash!")}return g}}})},"nxapp/manager/MQTTManager":function(){define("dcl/dcl nxapp/manager/ManagerBase nxapp/utils/_LogMixin nxapp/types/Types dojo/node!mosca-memory dojo/node!mqtt dojo/node!node-notifier dojo/node!colors xide/utils nxapp/utils/_console dojo/node!tcp-port-used".split(" "),function(f,n,l,m,g,c,b,d,a,e,r){return f([n,
l],{declaredClass:"nxapp.manager.MQTTManager",options:null,profile:null,lastUpTime:null,mqttClients:null,destroy:function(){this.server&&this.server.close&&this.server.close()},publishTopic:function(a,b){a={topic:a,payload:JSON.stringify(b),qos:1};this.server.publish(a,function(){})},createMQTTClient2:function(a,b,d){var e=c.connect("mqtt://localhost",{clean:!1,clientId:a+":"+b}),f=this.ctx;e.on("message",function(c,e){f.getDeviceServer().broadCastMessage(m.EVENTS.ON_MQTT_MESSAGE,{host:a,port:b,topic:c,
message:e.toString(),mqtt:d})});return e},createMQTTClient:function(a,b,d){a=a+":"+b;if(this.mqttClients[a])return this.mqttClients[a];if(!this.mqttClients[a])return b=c.connect("mqtt://localhost",{clean:!1,clientId:a}),b.on("connect",function(){}),this.mqttClients[a]=b},onConnectedToDevice:function(a,b,c){},onWakeup:function(){this.lastUpTime=(new Date).getTime();for(var a=0;a<this.pool.length;a++){var b=this.pool[a];b.socket&&b.socket.close&&b.socket.close();b.socket&&b.socket._socket&&b.socket._socket.close&&
b.socket._socket.close()}this.pool=[]},init:function(c){function f(){if(!l.__started){l.__started=!0;try{b.notify({title:"Control-Freak",message:"All servers up and running, you can start now Control-Freak IDE",sound:!0,wait:!0,open:"file:///"},function(a,b){})}catch(v){}e.log(d.green("\n\r\t Device server up and running\n\r \t *********** You can start Control Freak now **************\n\r"));l.ctx.onReady()}}this.profile=c;this.lastUpTime=(new Date).getTime();var l=this;this.mqttClients={};a.mixin({type:"mongo",
url:"mongodb://localhost:27017/mqtt",pubsubCollection:"xcf",mongo:{}},this.profile.ascoltatore);var h={port:1883,persistence:{factory:g.persistence.Memory}};this.profile.mosca.port&&(this.profile.mosca.port=parseInt(this.profile.mosca.port));a.mixin(h,this.profile.mosca);if("false"===this.profile.mqtt)e.warn("MQTT is disabled, proceed without"),this.server={},f();else try{var m=function(){var a=new g.Server(h);a.on("error",function(a){e.error("Unable to connect to Mongo:"+a.message);f()});a.on("ready",
f);a.on("clientConnected",function(){});a.on("clientDisconnected",function(){});l.server=a};r.check(c.socket_server.port,c.socket_server.host).then(function(a){a||m()},function(){m()})}catch(v){e.error("error starting mosca ",v)}},onTimeout:function(a){},onClose:function(a){this.removeConnection(a)},onDrain:function(a){},onError:function(a,b){},onData:function(a,b){throw Error();},onConnect:function(a,b,c,d){e.log("Connected to "+a+":"+b+" via "+c,"protocol_messages");a={device:{host:a,port:b,protocol:c,
deviceScope:d}};this.ctx.getDeviceServer().broadCastMessage(m.EVENTS.ON_DEVICE_CONNECTED,a)},onHandle:function(a,b){this.showDebugMsg("protocol_messages")}})})}}});define("nxappmain/serverbuild",[],1);
//# sourceMappingURL=serverbuild.js.map