コード例 #1
0
ファイル: index.js プロジェクト: jxoss/flow-service-api
 IterateObject(object, function (handler, name) {
     var cPref = prefix ? prefix + '.' + name : name;
     if (typeof handler === 'object') {
         return appendDataHandlers(handler, SetOrGet(parent, name, {}), cPref);
     }
     parent[name] = generateMethod(cPref, handler);
 });
コード例 #2
0
ファイル: index.js プロジェクト: jxoss/flow-flow-api
function getApp(appName) {
    return setOrGet(_cache, appName, existing => {
        return existing ? existing : new FlowApi(`${APPS_PATH}/${appName}`);
    });
}
コード例 #3
0
(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){var Id=require("idy"),SetOrGet=require("set-or-get"),IterateObject=require("iterate-object"),Deffy=require("deffy");var _connections={},_betweenTwoBubbles={},container=null,markers=null;function connectable(options,elmTarget){var con={};if(elmTarget===undefined){elmTarget=options;options={}}container=options.container||container;var elmSource=this;markers=options.markers||markers;options.k=options.k||100;options.kk=options.kk||10;var marker=markers.marker(10,10),markerId="triangle-"+Id(),line=container.path().attr("marker-end","url(#"+markerId+")").fill("none");marker.attr({id:markerId,viewBox:"0 0 10 10",refX:"0",refY:"5",markerUnits:"strokeWidth",markerWidth:"4",markerHeight:"5"});marker.path().attr({d:"M 0 0 L 10 5 L 0 10 z"});var sPos={},tPos={};con.source=elmSource;con.target=elmTarget;con.line=line;con.marker=marker;SetOrGet(_connections,con.source.id(),[]).push(con);SetOrGet(_connections,con.target.id(),[]).push(con);SetOrGet(_betweenTwoBubbles,{toString:function(){var ids=[con.source.id(),con.target.id()],id1=ids.join("->"),id2=ids.reverse().join("->");con._=con.id=id1;if(_betweenTwoBubbles[id2]){con._=id2;return id2}con.id=id1;return id1}},[]).push(con);con.computeLineCoordinates=function(cons){var output=[],l=cons.length;IterateObject(cons,function(con,i){var sT=con.source.transform(),tT=con.target.transform(),sB=con.source.bbox(),tB=con.target.bbox(),x1=sT.x+sB.width/2,y1=sT.y+sB.height/2,x2=tT.x+tB.width/2,y2=tT.y+tB.height/2,cx=(x1+x2)/2,cy=(y1+y2)/2,dx=Math.abs((x1-x2)/2),dy=Math.abs((y1-y2)/2),dd=null,out={x1:x1,y1:y1,x2:x2,y2:y2,ex:x1,ey:y1};if(i!==(l-1)/2){dd=Math.sqrt(dx*dx+dy*dy);out.ex=cx+dy/dd*options.k*(i-(l-1)/2);out.ey=cy-dx/dd*options.k*(i-(l-1)/2)}output.push(out)});return output};if(options.padEllipse){con.computeLineCoordinates=function(cons){var output=[],l=cons.length;IterateObject(cons,function(con,i){var elmS=con.source.node.querySelector("ellipse")||con.source.node.querySelector("circle"),elmT=con.target.node.querySelector("ellipse")||con.target.node.querySelector("circle"),xR1,xR2,yR1,yR2,sT=con.source.transform(),tT=con.target.transform(),sB=con.source.bbox(),tB=con.target.bbox();if(elmS.tagName==="circle"){xR1=yR1=parseFloat(elmS.getAttribute("r"));xR2=yR2=parseFloat(elmT.getAttribute("r"))}else{xR1=parseFloat(elmS.getAttribute("rx"));yR1=parseFloat(elmS.getAttribute("ry"));xR2=parseFloat(elmT.getAttribute("rx"));yR2=parseFloat(elmT.getAttribute("ry"))}var sx=sT.x+xR1/2,sy=sT.y+yR1/2,tx=tT.x+xR2/2,ty=tT.y+yR2/2,dx=tx-sx,dy=ty-sy,d=Math.sqrt(dx*dx+dy*dy),ux=dx/d,uy=dy/d,cx1=sx+xR1*ux,cy1=sy+yR1*uy,cx2=sx+(d-xR2-5)*ux,cy2=sy+(d-yR2-5)*uy;var x1=cx1+xR1/2,y1=cy1+yR1/2,x2=cx2+xR2/2,y2=cy2+yR2/2;var cx=(x1+x2)/2,cy=(y1+y2)/2,dd=null,out={x1:x1,y1:y1,x2:x2,y2:y2,ex:x1,ey:y1};if(isNaN(out.x1)){out.x1=sT.x+xR1*2;out.y1=sT.y+yR1/2;out.x2=sT.x;out.y2=out.y1;out.ex=(out.x1+out.x2)/2;out.ey=out.y1-options.kk*(i+1)}else{dx=Math.abs((x1-x2)/2);dy=Math.abs((y1-y2)/2);if(i!==(l-1)/2){dd=Math.sqrt(dx*dx+dy*dy);out.ex=cx+dy/dd*options.k*(i-(l-1)/2);out.ey=cy-dx/dd*options.k*(i-(l-1)/2)}}output.push(out)});return output}}elmSource.cons=elmSource.cons||[];elmSource.cons.push(con);con.update=function(){var cons=Deffy(_betweenTwoBubbles[con._],[]),results=con.computeLineCoordinates(cons);IterateObject(results,function(r,i){cons[i].line.plot("M"+r.x1+" "+r.y1+" Q"+r.ex+" "+r.ey+" "+r.x2+" "+r.y2)})};con.update();elmSource.on("dragmove",con.update);elmTarget.on("dragmove",con.update);con.setLineColor=function(color,c){c=c||this;c.line.stroke(color);c.marker.fill(color)};return con}if(typeof SVG==="function"){SVG.extend(SVG.Element,{connectable:connectable})}else if(typeof window==="object"){throw new Error("SVG.js is not loaded but it is required.")}module.exports=connectable},{deffy:2,idy:4,"iterate-object":5,"set-or-get":6}],2:[function(require,module,exports){var Typpy=require("typpy");function Deffy(input,def,options){if(typeof def==="function"){return def(input)}options=Typpy(options)==="boolean"?{empty:options}:{empty:false};if(options.empty){return input||def}if(Typpy(input)===Typpy(def)){return input}return def}module.exports=Deffy},{typpy:3}],3:[function(require,module,exports){function Typpy(input,target){if(arguments.length===2){return Typpy.is(input,target)}return Typpy.get(input,true)}Typpy.is=function(input,target){return Typpy.get(input,typeof target==="string")===target};Typpy.get=function(input,str){if(typeof input==="string"){return str?"string":String}if(null===input){return str?"null":null}if(undefined===input){return str?"undefined":undefined}if(input!==input){return str?"nan":NaN}return str?input.constructor.name.toLowerCase():input.constructor};module.exports=Typpy},{}],4:[function(require,module,exports){function Idy(length){length=length||10;return Math.random().toString(35).substr(2,length)}module.exports=Idy},{}],5:[function(require,module,exports){function IterateObject(obj,fn){var i=0,keys=[];if(Array.isArray(obj)){for(;i<obj.length;++i){if(fn(obj[i],i,obj)===false){break}}}else{keys=Object.keys(obj);for(;i<keys.length;++i){if(fn(obj[keys[i]],keys[i],obj)===false){break}}}}module.exports=IterateObject},{}],6:[function(require,module,exports){var Deffy=require("deffy");function SetOrGet(input,field,def){return input[field]=Deffy(input[field],def)}module.exports=SetOrGet},{deffy:7}],7:[function(require,module,exports){arguments[4][2][0].apply(exports,arguments)},{dup:2,typpy:8}],8:[function(require,module,exports){arguments[4][3][0].apply(exports,arguments)},{dup:3}]},{},[1]);
コード例 #4
0
 self.onrequest.add = function (url, fn) {
     SetOrGet(this._, url, []).push(fn);
 };