-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathflow.sea.min.js
14 lines (14 loc) · 10.4 KB
/
flow.sea.min.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
define("./index",["./util/class","./flow","./step","./condition","./input"],function(a,b,c){window.Flowjs={V:"1.2.9",Class:a("./util/class"),Flow:a("./flow"),Step:a("./step"),Condition:a("./condition"),Input:a("./input")}});
define("./util/class",["./baseobject"],function(a,b,c){var d=a("./baseobject"),e=function(a){var b=a.extend||d,c=function(){},e=a.plugins||[];c.prototype=b.prototype;var f=a.construct||function(){},g=a.properties||{},h=a.methods||{},i=a.statics||{},j=new c,k;for(k in j)j.hasOwnProperty(k)&&delete j[k];for(k in g)j[k]=g[k];for(k in h)j[k]=h[k];for(var l=0;l<e.length;l++){var m=e[l];for(k in m)j[k]=m[k]}j.constructor=f,j.superclass=b,f.prototype=j;for(k in i)f[k]=i[k];return f};e.abstractMethod=function(){throw new Error("Not implement.")},c.exports=e});
define("./util/baseobject",[],function(a,b,c){var d=function(){},e={};e.superclass=Object,e.callsuper=function(a){var b=this,c;this._realsuper?this._realsuper=this._realsuper.prototype.superclass:this._realsuper=this.superclass,typeof a=="string"?(c=Array.prototype.slice.call(arguments,1),b._realsuper.prototype[a].apply(b,c)):(c=Array.prototype.slice.call(arguments,0),b._realsuper.apply(b,c)),this._realsuper=null},d.prototype=e,c.exports=d});
define("./flow",["./util/class","./util/eventPlugin","./util/extend","./begin","./step","./input","./condition","./util/queue","./util/flowData"],function(a,b,c){var d=a("./util/class"),e=a("./util/eventPlugin"),f=a("./util/extend"),g=a("./begin"),h=a("./step"),i=a("./input"),j=a("./condition"),k=a("./util/queue"),l=a("./util/flowData"),m=[],n=d({plugins:[new e],construct:function(a){a=a||{},this.__begin=new g({description:"Begin",struct:{}}),this.__steps=a.steps||{},this.__stepInstances={},this.__queue=new k,this.__timer=null,this.__prev=this.__begin,this.__data=new l,this.__interfaces={},this.__pausing={},this.__working={};for(var b in this)m.push(b)},methods:{start:d.abstractMethod,implement:function(a,b){var c=d({extend:this.__steps[a],construct:b.construct||function(a){this.callsuper(a)},methods:b.methods});this.__stepInstances[a]=new c({description:a})},_go:function(a,b,c){var d=this;this.__timer&&clearTimeout(this.__timer);if(typeof a=="string"){var e=a;a=this.__stepInstances[a]}if(a){c&&(a instanceof j&&a.cases(c),a instanceof i&&a.inputs(c)),this.__queue.enqueue({step:a,data:b}),this.__prev&&this.__prev.next(a),this.__prev=a;if(this.__sync){var g=this.__queue.dequeue(),h=this.__getStepData(g.step);f(h,g.data),this.__process(g.step,h),this.__timer=setTimeout(function(){a.end()},0)}else this.__timer=setTimeout(function(){a.end(),d.__start()},0)}else this.__timer=setTimeout(function(){d.__prev.end(),d.__start()},0)},_pause:function(){for(var a in this.__working)this.__working.hasOwnProperty(a)&&(this.__working[a].pause(),this.__pausing[a]=this.__working[a],delete this.__working[a]);this.__queue.clear()},_resume:function(){for(var a in this.__pausing)this.__pausing.hasOwnProperty(a)&&(this.__pausing[a].resume(),this.__working[a]=this.__pausing[a],delete this.__pausing[a])},_sync:function(a){this.__sync=!0,a(),this.__sync=!1},_steps:function(){return this.__steps},_addStep:function(a,b){this.__steps[a]=b},_addInterface:function(a,b){if(m.indexOf(a)!=-1)throw new Error("Reserve property : "+a);this[a]=b,this.__interfaces[a]=b},_getData:function(a){return this.__data.getData(a)},__start:function(){var a=this.__queue.dequeue();if(a){var b=this.__getStepData(a.step);f(b,a.data),this.__process(a.step,b)}},__process:function(a,b){this.__working[a.data().__id]=a,this.__enter(a,b,function(b){delete this.__working[a.data().__id],b&&this.__saveData(b);if(!this.__sync){var c=this.__getNext(a);c&&this.__process(c.step,c.data)}})},__saveData:function(a){for(var b in a)a.hasOwnProperty(b)&&this.__data.setData(b,a[b])},__getNext:function(a){var b=a.__result,c=null,d=this.__queue.dequeue();if(d){var e=this.__getStepData(d.step);f(e,d.data),c={step:d.step,data:e}}else{var g=a.next();g&&(c={step:g,data:this.__getStepData(g)})}return c},__getStepData:function(a){var b=a.getStruct(),c=[];if(b&&b.input)for(var d in b.input)b.input.hasOwnProperty(d)&&c.push(d);return this.__data.getData(c)},__enter:function(a,b,c){var d=this,e={};f(e,b),a.enter(e,function(b,f){for(var g in e)delete e[g];a.__result=f,c.call(d,f)})}}});c.exports=n});
define("./util/eventPlugin",["./class"],function(a,b,c){var d=a("./class"),e=d({methods:{on:function(a,b){this._ep_createList();var c=function(a){b(a)};return a=a.toLowerCase(),this._ep_lists[a]=this._ep_lists[a]||[],this._ep_lists[a].push({type:a,listener:b,realListener:c}),this},un:function(a,b){this._ep_createList();if(a){a=a.toLowerCase();var c=this._ep_lists[a];if(c){var d=c.length,e=!b;c&&c.length>0&&(e===!0?this._ep_lists[a]=[]:c.forEach(function(a,d){a.listener===b&&c.splice(d,1)}))}}else this._ep_clearList();return this},fire:function(a){this._ep_createList();var b=a.type.toLowerCase(),c=a.data,d=this._ep_lists[b];return d&&d.length>0&&d.forEach(function(a,d){a.listener({type:b,data:c})}),this},_ep_clearList:function(){this._ep_lists=null},_ep_createList:function(){this._ep_lists||(this._ep_lists={})}}});c.exports=e});
define("./util/extend",[],function(a,b,c){var d=function(a,b){for(var c in b)b.hasOwnProperty(c)&&(a[c]=b[c]);return a};c.exports=d});
define("./begin",["./util/class","./step"],function(a,b,c){var d=a("./util/class"),e=a("./step"),f=d({extend:e,construct:function(a){this.callsuper(a)}});c.exports=f});
define("./step",["./util/class","./util/eventPlugin","./util/checkData","./util/extend","./util/tool"],function(a,b,c){var d=a("./util/class"),e=a("./util/eventPlugin"),f=a("./util/checkData"),g=a("./util/extend"),h=a("./util/tool"),i=d({plugins:[new e],construct:function(a){a=a||{},this._data={__id:Date.now(),description:a.description},this.__struct=this._describeData(),this.__next=null,this.__end=!1,this.__pausing=!1,this.__callback=null},methods:{enter:function(a,b){this.__pausing=!1;if(!this.__checkInput(a))throw new Error("Data error.");var c=this;this._process(a,function(a,d){if(!c.__checkOutput(d))throw new Error("Result error.");var e=function(){b(a,d)};c.__pausing?c.__callback=e:e()})},_process:d.abstractMethod,_describeData:function(){return{}},next:function(a){if(!a)return this.__next;this.isEnd()||(this.__next=a,this.end())},end:function(){this.__end=!0},isEnd:function(){return this.__end},data:function(a){if(arguments.length===0)return this._data;g(this._data,a)},getStruct:function(){return this.__struct},pause:function(){this.__pausing=!0},resume:function(){this.__pausing=!1,this.__callback&&this.__callback()},__checkInput:function(a){return h.log("Check","input data for",this._data.description),f.check(this.__struct.input,a)},__checkOutput:function(a){return h.log("Check","output data for",this._data.description),f.check(this.__struct.output,a)}}});c.exports=i});
define("./util/checkData",["./tool"],function(a,b,c){var d=a("./tool");c.exports={check:function(a,b){var c=this;if(!a)return!0;var e=!0;for(var f in a){var g=a[f];if(a[f].empty!==!0&&c.isEmpty(a[f],b[f])){var h="字段["+f+"]值为空";throw d.error(h),new Error(h)}if(a[f].empty===!0&&c.isEmpty(a[f],b[f]))continue;if(a[f].type=="number"&&typeof b[f]!="number"){var h="字段["+f+"]不是数字";throw d.error(h),new Error(h)}if(a[f].type=="string"&&typeof b[f]!="string"){var h="字段["+f+"]不是字符串";throw d.error(h),new Error(h)}if(a[f].type=="array"){if(!c.checkArray(a[f],b[f])){var h="字段["+f+"]值与定义不符";throw d.error(h),new Error(h)}}else if(a[f].type=="object"&&!c.checkObject(a[f].struct,b[f])){var h="字段["+f+"]值与定义不符";throw d.error(h),new Error(h)}}return e},checkArray:function(a,b){var c=this;if(d.isArray(b)){for(var e=0;e<b.length;e++){var f=b[e];if(!c.checkData(a.item,f))return!1}return!0}return!1},checkObject:function(a,b){return this.check(a,b)},isEmpty:function(a,b){return b===undefined?!0:a.type=="object"?b===null:a.type=="array"?b.length===0:b===""||b===undefined||b===null},checkData:function(a,b){return a.type=="number"&&typeof b=="number"?!0:a.type=="string"&&typeof b=="string"?!0:a.type=="boolean"&&typeof b=="boolean"?!0:a.type=="array"?this.checkArray(a.item,b):a.type=="object"?this.checkObject(a.struct,b):!1}}});
define("./util/tool",[],function(a,b,c){c.exports={isArray:Array.isArray||function(a){return Object.prototype.toString.call(a)=="[object Array]"},log:function(){if(window.console)if(console.log.apply)console.log.apply(console,arguments);else{var a=Array.prototype.slice.call(arguments,0),b=a.join(" ");console.log(b)}},error:function(){if(window.console)if(console.error.apply)console.error.apply(console,arguments);else{var a=Array.prototype.slice.call(arguments,0),b=a.join(" ");console.error(b)}}}});
define("./input",["./util/class","./condition","./util/extend"],function(a,b,c){var d=a("./util/class"),e=a("./condition"),f=a("./util/extend"),g=d({extend:e,construct:function(a){a=a||{},this.callsuper(a),this._inputs=a.inputs||{},this._binded=!1},methods:{_once:function(a){this._binded||(this._binded=!0,a())},inputs:function(a){var b={};return b.cases=a.inputs,this.cases(b)}}});c.exports=g});
define("./condition",["./util/class","./step","./util/extend"],function(a,b,c){var d=a("./util/class"),e=a("./step"),f=a("./util/extend"),g=d({extend:e,construct:function(a){a=a||{},this.callsuper(a),this._cases=a.cases||{},this._default=a.defaultCase},methods:{_select:function(a,b){var c=this._cases[a]||this._default;c(b)},cases:function(a){if(!a)return{defaultCase:this._default,cases:this._cases};a.cases&&f(this._cases,a.cases),a.defaultCase&&(this._default=a.defaultCase)}}});c.exports=g});
define("./util/queue",["./class"],function(a,b,c){var d=a("./class");c.exports=d({construct:function(){this._queue=[],this._event={}},methods:{enqueue:function(a){this._queue.push(a)},dequeue:function(){var a=this;return this._queue.length===0?(this.end(),null):this._queue.splice(0,1)[0]},isEmpty:function(){return this._queue.length===0},end:function(a){this.fire("end",a)},on:function(a,b){this._event[a]||(this._event[a]=[]),this._event[a].push(b)},fire:function(a,b){if(this._event[a])for(var c=0;c<this._event[a].length;c++)this._event[a][c](b)},clear:function(){this._queue=[]}}})});
define("./util/flowData",["./class","./tool"],function(a,b,c){var d=a("./class"),e=a("./tool"),f=d({construct:function(a){this._data={}},methods:{getData:function(a){var b={},c=(new Date).getTime();if(e.isArray(a)){var d=a.length;for(var f=0;f<d;f++){var g=a[f];this._data.hasOwnProperty(g)&&(b[g]=this._data[g])}}else b[a.toString()]=this._data[a.toString()];return b},setData:function(a,b){return this._data[a]=b,!1}}});c.exports=f});