Files
esengine/demo/libs/framework/framework.min.js

1 line
84 KiB
JavaScript
Raw Normal View History

2020-06-19 08:32:35 +08:00
window.framework={},window.__extends=this&&this.__extends||function(){var t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])};return function(e,n){function i(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}}(),Array.prototype.findIndex=function(t){return function(t,e){for(var n=0,i=t.length;n<i;n++)if(e.call(arguments[2],t[n],n,t))return n;return-1}(this,t)},Array.prototype.any=function(t){return function(t,e){return t.findIndex(e)>-1}(this,t)},Array.prototype.firstOrDefault=function(t){return function(t,e){var n=t.findIndex(e);return-1==n?null:t[n]}(this,t)},Array.prototype.find=function(t){return function(t,e){return t.firstOrDefault(e)}(this,t)},Array.prototype.where=function(t){return function(t,e){if("function"==typeof t.reduce)return t.reduce(function(n,i,r){return e.call(arguments[2],i,r,t)&&n.push(i),n},[]);for(var n=[],i=0,r=t.length;i<r;i++){var o=t[i];e.call(arguments[2],o,i,t)&&n.push(o)}return n}(this,t)},Array.prototype.count=function(t){return function(t,e){return t.where(e).length}(this,t)},Array.prototype.findAll=function(t){return function(t,e){return t.where(e)}(this,t)},Array.prototype.contains=function(t){return function(t,e){for(var n=0,i=t.length;n<i;n++)if(t[n]==e)return!0;return!1}(this,t)},Array.prototype.removeAll=function(t){!function(t,e){var n;do{(n=t.findIndex(e))>=0&&t.splice(n,1)}while(n>=0)}(this,t)},Array.prototype.remove=function(t){return function(t,e){var n=t.findIndex(function(t){return t===e});return n>=0&&(t.splice(n,1),!0)}(this,t)},Array.prototype.removeAt=function(t){return function(t,e){t.splice(e,1)}(this,t)},Array.prototype.removeRange=function(t,e){return function(t,e,n){t.splice(e,n)}(this,t,e)},Array.prototype.select=function(t){return function(t,e){if("function"==typeof t.reduce)return t.reduce(function(n,i,r){return n.push(e.call(arguments[2],i,r,t)),n},[]);for(var n=[],i=0,r=t.length;i<r;i++)n.push(e.call(arguments[2],t[i],i,t));return n}(this,t)},Array.prototype.orderBy=function(t,e){return function(t,e,n){return t.sort(function(t,i){var r=e(t),o=e(i);return n?n(r,o):r>o?1:-1}),t}(this,t,e)},Array.prototype.orderByDescending=function(t,e){return function(t,e,n){return t.sort(function(t,i){var r=e(t),o=e(i);return n?-n(r,o):r<o?1:-1}),t}(this,t,e)},Array.prototype.groupBy=function(t){return function(t,e){if("function"==typeof t.reduce){var n=[];return t.reduce(function(i,r,o){var s=JSON.stringify(e.call(arguments[1],r,o,t)),a=n.findIndex(function(t){return t===s});return a<0&&(a=n.push(s)-1),i[a]||(i[a]=[]),i[a].push(r),i},[])}for(var i=[],r=[],o=function(n,o){var a=JSON.stringify(e.call(s[1],t[n],n,t)),h=r.findIndex(function(t){return t===a});h<0&&(h=r.push(a)-1),i[h]||(i[h]=[]),i[h].push(t[n])},s=arguments,a=0,h=t.length;a<h;a++)o(a);return i}(this,t)},Array.prototype.sum=function(t){return function(t,e){for(var n,i=0,r=t.length;i<r;i++)0==i?n=e?e.call(arguments[2],t[i],i,t):t[i]:n+=e?e.call(arguments[2],t[i],i,t):t[i];return n}(this,t)};var DirtyType,ComponentTransform,PriorityQueueNode=function(){return function(){this.priority=0,this.insertionIndex=0,this.queueIndex=0}}(),AStarPathfinder=function(){function t(){}return t.search=function(t,e,n){var i=this,r=!1,o=new Map;o.set(e,e);var s=new Map,a=new PriorityQueue(1e3);a.enqueue(new AStarNode(e),0),s.set(e,0);for(var h=function(){var e=a.dequeue();if(JSON.stringify(e.data)==JSON.stringify(n))return r=!0,"break";t.getNeighbors(e.data).forEach(function(r){var h=s.get(e.data)+t.cost(e.data,r);if(!i.hasKey(s,r)||h<s.get(r)){s.set(r,h);var c=h+t.heuristic(r,n);a.enqueue(new AStarNode(r),c),o.set(r,e.data)}})};a.count>0;){if("break"===h())break}return r?this.recontructPath(o,e,n):null},t.hasKey=function(t,e){for(var n,i=t.keys();!(n=i.next()).done;)if(JSON.stringify(n.value)==JSON.stringify(e))return!0;return!1},t.getKey=function(t,e){for(var n,i,r=t.keys(),o=t.values();n=r.next(),i=o.next(),!n.done;)if(JSON.stringify(n.value)==JSON.stringify(e))return i.value;return null},t