You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@apex.apache.org by da...@apache.org on 2015/11/30 22:06:49 UTC

[43/98] [abbrv] [partial] incubator-apex-malhar git commit: Removing all web demos

http://git-wip-us.apache.org/repos/asf/incubator-apex-malhar/blob/e1a45507/web/demos/package/app/scripts/9f21e177.modules.js
----------------------------------------------------------------------
diff --git a/web/demos/package/app/scripts/9f21e177.modules.js b/web/demos/package/app/scripts/9f21e177.modules.js
deleted file mode 100644
index 53d94ed..0000000
--- a/web/demos/package/app/scripts/9f21e177.modules.js
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-function Gauge(a,b){this.element=a;var c=this;this.configure=function(a){this.config=a,this.config.size=.9*this.config.size,this.config.raduis=.97*this.config.size/2,this.config.cx=this.config.size/2,this.config.cy=this.config.size/2,this.config.min=void 0!=a.min?a.min:0,this.config.max=void 0!=a.max?a.max:100,this.config.range=this.config.max-this.config.min,this.config.majorTicks=a.majorTicks||5,this.config.minorTicks=a.minorTicks||2,this.config.greenColor=a.greenColor||"#109618",this.config.yellowColor=a.yellowColor||"#FF9900",this.config.redColor=a.redColor||"#DC3912",this.config.transitionDuration=a.transitionDuration||500},this.render=function(){this.body=d3.select(this.element).append("svg:svg").attr("class","gauge").attr("width",this.config.size).attr("height",this.config.size),this.body.append("svg:circle").attr("cx",this.config.cx).attr("cy",this.config.cy).attr("r",this.config.raduis).style("fill","#ccc").style("stroke","#000").style("stroke-width","0.5px"),this.body.appe
 nd("svg:circle").attr("cx",this.config.cx).attr("cy",this.config.cy).attr("r",.9*this.config.raduis).style("fill","#fff").style("stroke","#e0e0e0").style("stroke-width","2px");for(var a in this.config.greenZones)this.drawBand(this.config.greenZones[a].from,this.config.greenZones[a].to,c.config.greenColor);for(var a in this.config.yellowZones)this.drawBand(this.config.yellowZones[a].from,this.config.yellowZones[a].to,c.config.yellowColor);for(var a in this.config.redZones)this.drawBand(this.config.redZones[a].from,this.config.redZones[a].to,c.config.redColor);if(void 0!=this.config.label){var b=Math.round(this.config.size/9);this.body.append("svg:text").attr("x",this.config.cx).attr("y",this.config.cy/2+b/2).attr("dy",b/2).attr("text-anchor","middle").text(this.config.label).style("font-size",b+"px").style("fill","#333").style("stroke-width","0px")}for(var b=Math.round(this.config.size/16),d=this.config.range/(this.config.majorTicks-1),e=this.config.min;e<=this.config.max;e+=d){for(v
 ar f=d/this.config.minorTicks,g=e+f;g<Math.min(e+d,this.config.max);g+=f){var h=this.valueToPoint(g,.75),i=this.valueToPoint(g,.85);this.body.append("svg:line").attr("x1",h.x).attr("y1",h.y).attr("x2",i.x).attr("y2",i.y).style("stroke","#666").style("stroke-width","1px")}var h=this.valueToPoint(e,.7),i=this.valueToPoint(e,.85);if(this.body.append("svg:line").attr("x1",h.x).attr("y1",h.y).attr("x2",i.x).attr("y2",i.y).style("stroke","#333").style("stroke-width","2px"),e==this.config.min||e==this.config.max){var j=this.valueToPoint(e,.63);this.body.append("svg:text").attr("x",j.x).attr("y",j.y).attr("dy",b/3).attr("text-anchor",e==this.config.min?"start":"end").text(e).style("font-size",b+"px").style("fill","#333").style("stroke-width","0px")}}var k=this.body.append("svg:g").attr("class","pointerContainer"),l=(this.config.min+this.config.max)/2,m=this.buildPointerPath(l),n=d3.svg.line().x(function(a){return a.x}).y(function(a){return a.y}).interpolate("basis");k.selectAll("path").data
 ([m]).enter().append("svg:path").attr("d",n).style("fill","#dc3912").style("stroke","#c63310").style("fill-opacity",.7),k.append("svg:circle").attr("cx",this.config.cx).attr("cy",this.config.cy).attr("r",.12*this.config.raduis).style("fill","#4684EE").style("stroke","#666").style("opacity",1);var b=Math.round(this.config.size/10);k.selectAll("text").data([l]).enter().append("svg:text").attr("x",this.config.cx).attr("y",this.config.size-this.config.cy/4-b).attr("dy",b/2).attr("text-anchor","middle").style("font-size",b+"px").style("fill","#000").style("stroke-width","0px"),this.redraw(this.config.min,0)},this.buildPointerPath=function(a){function b(a,b){var d=c.valueToPoint(a,b);return d.x-=c.config.cx,d.y-=c.config.cy,d}var d=this.config.range/13,e=b(a,.85),f=b(a-d,.12),g=b(a+d,.12),h=a-this.config.range*(1/.75)/2,i=b(h,.28),j=b(h-d,.12),k=b(h+d,.12);return[e,f,k,i,j,g,e]},this.drawBand=function(a,b,d){0>=b-a||this.body.append("svg:path").style("fill",d).attr("d",d3.svg.arc().startA
 ngle(this.valueToRadians(a)).endAngle(this.valueToRadians(b)).innerRadius(.65*this.config.raduis).outerRadius(.85*this.config.raduis)).attr("transform",function(){return"translate("+c.config.cx+", "+c.config.cy+") rotate(270)"})},this.redraw=function(a,b){var d=this.body.select(".pointerContainer");d.selectAll("text").text(Math.round(a));var e=d.selectAll("path");e.transition().duration(void 0!=b?b:this.config.transitionDuration).attrTween("transform",function(){var b=a;a>c.config.max?b=c.config.max+.02*c.config.range:a<c.config.min&&(b=c.config.min-.02*c.config.range);var d=c.valueToDegrees(b)-90,e=c._currentRotation||d;return c._currentRotation=d,function(a){var b=e+(d-e)*a;return"translate("+c.config.cx+", "+c.config.cy+") rotate("+b+")"}})},this.valueToDegrees=function(a){return a/this.config.range*270-(this.config.min/this.config.range*270+45)},this.valueToRadians=function(a){return this.valueToDegrees(a)*Math.PI/180},this.valueToPoint=function(a,b){return{x:this.config.cx-this
 .config.raduis*b*Math.cos(this.valueToRadians(a)),y:this.config.cy-this.config.raduis*b*Math.sin(this.valueToRadians(a))}},this.configure(b)}(function(){var a=this,b=a._,c={},d=Array.prototype,e=Object.prototype,f=Function.prototype,g=d.push,h=d.slice,i=d.concat,j=e.toString,k=e.hasOwnProperty,l=d.forEach,m=d.map,n=d.reduce,o=d.reduceRight,p=d.filter,q=d.every,r=d.some,s=d.indexOf,t=d.lastIndexOf,u=Array.isArray,v=Object.keys,w=f.bind,x=function(a){return a instanceof x?a:this instanceof x?void(this._wrapped=a):new x(a)};"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=x),exports._=x):a._=x,x.VERSION="1.5.2";var y=x.each=x.forEach=function(a,b,d){if(null!=a)if(l&&a.forEach===l)a.forEach(b,d);else if(a.length===+a.length){for(var e=0,f=a.length;f>e;e++)if(b.call(d,a[e],e,a)===c)return}else for(var g=x.keys(a),e=0,f=g.length;f>e;e++)if(b.call(d,a[g[e]],g[e],a)===c)return};x.map=x.collect=function(a,b,c){var d=[];return null==a?d:m&&a.map
 ===m?a.map(b,c):(y(a,function(a,e,f){d.push(b.call(c,a,e,f))}),d)};var z="Reduce of empty array with no initial value";x.reduce=x.foldl=x.inject=function(a,b,c,d){var e=arguments.length>2;if(null==a&&(a=[]),n&&a.reduce===n)return d&&(b=x.bind(b,d)),e?a.reduce(b,c):a.reduce(b);if(y(a,function(a,f,g){e?c=b.call(d,c,a,f,g):(c=a,e=!0)}),!e)throw new TypeError(z);return c},x.reduceRight=x.foldr=function(a,b,c,d){var e=arguments.length>2;if(null==a&&(a=[]),o&&a.reduceRight===o)return d&&(b=x.bind(b,d)),e?a.reduceRight(b,c):a.reduceRight(b);var f=a.length;if(f!==+f){var g=x.keys(a);f=g.length}if(y(a,function(h,i,j){i=g?g[--f]:--f,e?c=b.call(d,c,a[i],i,j):(c=a[i],e=!0)}),!e)throw new TypeError(z);return c},x.find=x.detect=function(a,b,c){var d;return A(a,function(a,e,f){return b.call(c,a,e,f)?(d=a,!0):void 0}),d},x.filter=x.select=function(a,b,c){var d=[];return null==a?d:p&&a.filter===p?a.filter(b,c):(y(a,function(a,e,f){b.call(c,a,e,f)&&d.push(a)}),d)},x.reject=function(a,b,c){return x.fi
 lter(a,function(a,d,e){return!b.call(c,a,d,e)},c)},x.every=x.all=function(a,b,d){b||(b=x.identity);var e=!0;return null==a?e:q&&a.every===q?a.every(b,d):(y(a,function(a,f,g){return(e=e&&b.call(d,a,f,g))?void 0:c}),!!e)};var A=x.some=x.any=function(a,b,d){b||(b=x.identity);var e=!1;return null==a?e:r&&a.some===r?a.some(b,d):(y(a,function(a,f,g){return e||(e=b.call(d,a,f,g))?c:void 0}),!!e)};x.contains=x.include=function(a,b){return null==a?!1:s&&a.indexOf===s?-1!=a.indexOf(b):A(a,function(a){return a===b})},x.invoke=function(a,b){var c=h.call(arguments,2),d=x.isFunction(b);return x.map(a,function(a){return(d?b:a[b]).apply(a,c)})},x.pluck=function(a,b){return x.map(a,function(a){return a[b]})},x.where=function(a,b,c){return x.isEmpty(b)?c?void 0:[]:x[c?"find":"filter"](a,function(a){for(var c in b)if(b[c]!==a[c])return!1;return!0})},x.findWhere=function(a,b){return x.where(a,b,!0)},x.max=function(a,b,c){if(!b&&x.isArray(a)&&a[0]===+a[0]&&a.length<65535)return Math.max.apply(Math,a);if
 (!b&&x.isEmpty(a))return-1/0;var d={computed:-1/0,value:-1/0};return y(a,function(a,e,f){var g=b?b.call(c,a,e,f):a;g>d.computed&&(d={value:a,computed:g})}),d.value},x.min=function(a,b,c){if(!b&&x.isArray(a)&&a[0]===+a[0]&&a.length<65535)return Math.min.apply(Math,a);if(!b&&x.isEmpty(a))return 1/0;var d={computed:1/0,value:1/0};return y(a,function(a,e,f){var g=b?b.call(c,a,e,f):a;g<d.computed&&(d={value:a,computed:g})}),d.value},x.shuffle=function(a){var b,c=0,d=[];return y(a,function(a){b=x.random(c++),d[c-1]=d[b],d[b]=a}),d},x.sample=function(a,b,c){return arguments.length<2||c?a[x.random(a.length-1)]:x.shuffle(a).slice(0,Math.max(0,b))};var B=function(a){return x.isFunction(a)?a:function(b){return b[a]}};x.sortBy=function(a,b,c){var d=B(b);return x.pluck(x.map(a,function(a,b,e){return{value:a,index:b,criteria:d.call(c,a,b,e)}}).sort(function(a,b){var c=a.criteria,d=b.criteria;if(c!==d){if(c>d||void 0===c)return 1;if(d>c||void 0===d)return-1}return a.index-b.index}),"value")};var C
 =function(a){return function(b,c,d){var e={},f=null==c?x.identity:B(c);return y(b,function(c,g){var h=f.call(d,c,g,b);a(e,h,c)}),e}};x.groupBy=C(function(a,b,c){(x.has(a,b)?a[b]:a[b]=[]).push(c)}),x.indexBy=C(function(a,b,c){a[b]=c}),x.countBy=C(function(a,b){x.has(a,b)?a[b]++:a[b]=1}),x.sortedIndex=function(a,b,c,d){c=null==c?x.identity:B(c);for(var e=c.call(d,b),f=0,g=a.length;g>f;){var h=f+g>>>1;c.call(d,a[h])<e?f=h+1:g=h}return f},x.toArray=function(a){return a?x.isArray(a)?h.call(a):a.length===+a.length?x.map(a,x.identity):x.values(a):[]},x.size=function(a){return null==a?0:a.length===+a.length?a.length:x.keys(a).length},x.first=x.head=x.take=function(a,b,c){return null==a?void 0:null==b||c?a[0]:h.call(a,0,b)},x.initial=function(a,b,c){return h.call(a,0,a.length-(null==b||c?1:b))},x.last=function(a,b,c){return null==a?void 0:null==b||c?a[a.length-1]:h.call(a,Math.max(a.length-b,0))},x.rest=x.tail=x.drop=function(a,b,c){return h.call(a,null==b||c?1:b)},x.compact=function(a){retu
 rn x.filter(a,x.identity)};var D=function(a,b,c){return b&&x.every(a,x.isArray)?i.apply(c,a):(y(a,function(a){x.isArray(a)||x.isArguments(a)?b?g.apply(c,a):D(a,b,c):c.push(a)}),c)};x.flatten=function(a,b){return D(a,b,[])},x.without=function(a){return x.difference(a,h.call(arguments,1))},x.uniq=x.unique=function(a,b,c,d){x.isFunction(b)&&(d=c,c=b,b=!1);var e=c?x.map(a,c,d):a,f=[],g=[];return y(e,function(c,d){(b?d&&g[g.length-1]===c:x.contains(g,c))||(g.push(c),f.push(a[d]))}),f},x.union=function(){return x.uniq(x.flatten(arguments,!0))},x.intersection=function(a){var b=h.call(arguments,1);return x.filter(x.uniq(a),function(a){return x.every(b,function(b){return x.indexOf(b,a)>=0})})},x.difference=function(a){var b=i.apply(d,h.call(arguments,1));return x.filter(a,function(a){return!x.contains(b,a)})},x.zip=function(){for(var a=x.max(x.pluck(arguments,"length").concat(0)),b=new Array(a),c=0;a>c;c++)b[c]=x.pluck(arguments,""+c);return b},x.object=function(a,b){if(null==a)return{};for(
 var c={},d=0,e=a.length;e>d;d++)b?c[a[d]]=b[d]:c[a[d][0]]=a[d][1];return c},x.indexOf=function(a,b,c){if(null==a)return-1;var d=0,e=a.length;if(c){if("number"!=typeof c)return d=x.sortedIndex(a,b),a[d]===b?d:-1;d=0>c?Math.max(0,e+c):c}if(s&&a.indexOf===s)return a.indexOf(b,c);for(;e>d;d++)if(a[d]===b)return d;return-1},x.lastIndexOf=function(a,b,c){if(null==a)return-1;var d=null!=c;if(t&&a.lastIndexOf===t)return d?a.lastIndexOf(b,c):a.lastIndexOf(b);for(var e=d?c:a.length;e--;)if(a[e]===b)return e;return-1},x.range=function(a,b,c){arguments.length<=1&&(b=a||0,a=0),c=arguments[2]||1;for(var d=Math.max(Math.ceil((b-a)/c),0),e=0,f=new Array(d);d>e;)f[e++]=a,a+=c;return f};var E=function(){};x.bind=function(a,b){var c,d;if(w&&a.bind===w)return w.apply(a,h.call(arguments,1));if(!x.isFunction(a))throw new TypeError;return c=h.call(arguments,2),d=function(){if(!(this instanceof d))return a.apply(b,c.concat(h.call(arguments)));E.prototype=a.prototype;var e=new E;E.prototype=null;var f=a.app
 ly(e,c.concat(h.call(arguments)));return Object(f)===f?f:e}},x.partial=function(a){var b=h.call(arguments,1);return function(){return a.apply(this,b.concat(h.call(arguments)))}},x.bindAll=function(a){var b=h.call(arguments,1);if(0===b.length)throw new Error("bindAll must be passed function names");return y(b,function(b){a[b]=x.bind(a[b],a)}),a},x.memoize=function(a,b){var c={};return b||(b=x.identity),function(){var d=b.apply(this,arguments);return x.has(c,d)?c[d]:c[d]=a.apply(this,arguments)}},x.delay=function(a,b){var c=h.call(arguments,2);return setTimeout(function(){return a.apply(null,c)},b)},x.defer=function(a){return x.delay.apply(x,[a,1].concat(h.call(arguments,1)))},x.throttle=function(a,b,c){var d,e,f,g=null,h=0;c||(c={});var i=function(){h=c.leading===!1?0:new Date,g=null,f=a.apply(d,e)};return function(){var j=new Date;h||c.leading!==!1||(h=j);var k=b-(j-h);return d=this,e=arguments,0>=k?(clearTimeout(g),g=null,h=j,f=a.apply(d,e)):g||c.trailing===!1||(g=setTimeout(i,k)),
 f}},x.debounce=function(a,b,c){var d,e,f,g,h;return function(){f=this,e=arguments,g=new Date;var i=function(){var j=new Date-g;b>j?d=setTimeout(i,b-j):(d=null,c||(h=a.apply(f,e)))},j=c&&!d;return d||(d=setTimeout(i,b)),j&&(h=a.apply(f,e)),h}},x.once=function(a){var b,c=!1;return function(){return c?b:(c=!0,b=a.apply(this,arguments),a=null,b)}},x.wrap=function(a,b){return function(){var c=[a];return g.apply(c,arguments),b.apply(this,c)}},x.compose=function(){var a=arguments;return function(){for(var b=arguments,c=a.length-1;c>=0;c--)b=[a[c].apply(this,b)];return b[0]}},x.after=function(a,b){return function(){return--a<1?b.apply(this,arguments):void 0}},x.keys=v||function(a){if(a!==Object(a))throw new TypeError("Invalid object");var b=[];for(var c in a)x.has(a,c)&&b.push(c);return b},x.values=function(a){for(var b=x.keys(a),c=b.length,d=new Array(c),e=0;c>e;e++)d[e]=a[b[e]];return d},x.pairs=function(a){for(var b=x.keys(a),c=b.length,d=new Array(c),e=0;c>e;e++)d[e]=[b[e],a[b[e]]];retu
 rn d},x.invert=function(a){for(var b={},c=x.keys(a),d=0,e=c.length;e>d;d++)b[a[c[d]]]=c[d];return b},x.functions=x.methods=function(a){var b=[];for(var c in a)x.isFunction(a[c])&&b.push(c);return b.sort()},x.extend=function(a){return y(h.call(arguments,1),function(b){if(b)for(var c in b)a[c]=b[c]}),a},x.pick=function(a){var b={},c=i.apply(d,h.call(arguments,1));return y(c,function(c){c in a&&(b[c]=a[c])}),b},x.omit=function(a){var b={},c=i.apply(d,h.call(arguments,1));for(var e in a)x.contains(c,e)||(b[e]=a[e]);return b},x.defaults=function(a){return y(h.call(arguments,1),function(b){if(b)for(var c in b)void 0===a[c]&&(a[c]=b[c])}),a},x.clone=function(a){return x.isObject(a)?x.isArray(a)?a.slice():x.extend({},a):a},x.tap=function(a,b){return b(a),a};var F=function(a,b,c,d){if(a===b)return 0!==a||1/a==1/b;if(null==a||null==b)return a===b;a instanceof x&&(a=a._wrapped),b instanceof x&&(b=b._wrapped);var e=j.call(a);if(e!=j.call(b))return!1;switch(e){case"[object String]":return a==Str
 ing(b);case"[object Number]":return a!=+a?b!=+b:0==a?1/a==1/b:a==+b;case"[object Date]":case"[object Boolean]":return+a==+b;case"[object RegExp]":return a.source==b.source&&a.global==b.global&&a.multiline==b.multiline&&a.ignoreCase==b.ignoreCase}if("object"!=typeof a||"object"!=typeof b)return!1;for(var f=c.length;f--;)if(c[f]==a)return d[f]==b;var g=a.constructor,h=b.constructor;if(g!==h&&!(x.isFunction(g)&&g instanceof g&&x.isFunction(h)&&h instanceof h))return!1;c.push(a),d.push(b);var i=0,k=!0;if("[object Array]"==e){if(i=a.length,k=i==b.length)for(;i--&&(k=F(a[i],b[i],c,d)););}else{for(var l in a)if(x.has(a,l)&&(i++,!(k=x.has(b,l)&&F(a[l],b[l],c,d))))break;if(k){for(l in b)if(x.has(b,l)&&!i--)break;k=!i}}return c.pop(),d.pop(),k};x.isEqual=function(a,b){return F(a,b,[],[])},x.isEmpty=function(a){if(null==a)return!0;if(x.isArray(a)||x.isString(a))return 0===a.length;for(var b in a)if(x.has(a,b))return!1;return!0},x.isElement=function(a){return!(!a||1!==a.nodeType)},x.isArray=u||
 function(a){return"[object Array]"==j.call(a)},x.isObject=function(a){return a===Object(a)},y(["Arguments","Function","String","Number","Date","RegExp"],function(a){x["is"+a]=function(b){return j.call(b)=="[object "+a+"]"}}),x.isArguments(arguments)||(x.isArguments=function(a){return!(!a||!x.has(a,"callee"))}),"function"!=typeof/./&&(x.isFunction=function(a){return"function"==typeof a}),x.isFinite=function(a){return isFinite(a)&&!isNaN(parseFloat(a))},x.isNaN=function(a){return x.isNumber(a)&&a!=+a},x.isBoolean=function(a){return a===!0||a===!1||"[object Boolean]"==j.call(a)},x.isNull=function(a){return null===a},x.isUndefined=function(a){return void 0===a},x.has=function(a,b){return k.call(a,b)},x.noConflict=function(){return a._=b,this},x.identity=function(a){return a},x.times=function(a,b,c){for(var d=Array(Math.max(0,a)),e=0;a>e;e++)d[e]=b.call(c,e);return d},x.random=function(a,b){return null==b&&(b=a,a=0),a+Math.floor(Math.random()*(b-a+1))};var G={escape:{"&":"&amp;","<":"&lt
 ;",">":"&gt;",'"':"&quot;","'":"&#x27;"}};G.unescape=x.invert(G.escape);var H={escape:new RegExp("["+x.keys(G.escape).join("")+"]","g"),unescape:new RegExp("("+x.keys(G.unescape).join("|")+")","g")};x.each(["escape","unescape"],function(a){x[a]=function(b){return null==b?"":(""+b).replace(H[a],function(b){return G[a][b]})}}),x.result=function(a,b){if(null==a)return void 0;var c=a[b];return x.isFunction(c)?c.call(a):c},x.mixin=function(a){y(x.functions(a),function(b){var c=x[b]=a[b];x.prototype[b]=function(){var a=[this._wrapped];return g.apply(a,arguments),M.call(this,c.apply(x,a))}})};var I=0;x.uniqueId=function(a){var b=++I+"";return a?a+b:b},x.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g};var J=/(.)^/,K={"'":"'","\\":"\\","\r":"r","\n":"n","	":"t","\u2028":"u2028","\u2029":"u2029"},L=/\\|'|\r|\n|\t|\u2028|\u2029/g;x.template=function(a,b,c){var d;c=x.defaults({},c,x.templateSettings);var e=new RegExp([(c.escape||J).source,(
 c.interpolate||J).source,(c.evaluate||J).source].join("|")+"|$","g"),f=0,g="__p+='";a.replace(e,function(b,c,d,e,h){return g+=a.slice(f,h).replace(L,function(a){return"\\"+K[a]}),c&&(g+="'+\n((__t=("+c+"))==null?'':_.escape(__t))+\n'"),d&&(g+="'+\n((__t=("+d+"))==null?'':__t)+\n'"),e&&(g+="';\n"+e+"\n__p+='"),f=h+b.length,b}),g+="';\n",c.variable||(g="with(obj||{}){\n"+g+"}\n"),g="var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');};\n"+g+"return __p;\n";try{d=new Function(c.variable||"obj","_",g)}catch(h){throw h.source=g,h}if(b)return d(b,x);var i=function(a){return d.call(this,a,x)};return i.source="function("+(c.variable||"obj")+"){\n"+g+"}",i},x.chain=function(a){return x(a).chain()};var M=function(a){return this._chain?x(a).chain():a};x.mixin(x),y(["pop","push","reverse","shift","sort","splice","unshift"],function(a){var b=d[a];x.prototype[a]=function(){var c=this._wrapped;return b.apply(c,arguments),"shift"!=a&&"splice"!=a||0!==c.length||dele
 te c[0],M.call(this,c)}}),y(["concat","join","slice"],function(a){var b=d[a];x.prototype[a]=function(){return M.call(this,b.apply(this._wrapped,arguments))}}),x.extend(x.prototype,{chain:function(){return this._chain=!0,this},value:function(){return this._wrapped}})}).call(this),function(a,b){"use strict";function c(){function a(a,c){return b.extend(new(b.extend(function(){},{prototype:a})),c)}function c(a,b){var c=b.caseInsensitiveMatch,d={originalPath:a,regexp:a},e=d.keys=[];return a=a.replace(/([().])/g,"\\$1").replace(/(\/)?:(\w+)([\?\*])?/g,function(a,b,c,d){var f="?"===d?d:null,g="*"===d?d:null;return e.push({name:c,optional:!!f}),b=b||"",""+(f?"":b)+"(?:"+(f?b:"")+(g&&"(.+?)"||"([^/]+)")+(f||"")+")"+(f||"")}).replace(/([\/$\*])/g,"\\$1"),d.regexp=new RegExp("^"+a+"$",c?"i":""),d}var d={};this.when=function(a,e){if(d[a]=b.extend({reloadOnSearch:!0},e,a&&c(a,e)),a){var f="/"==a[a.length-1]?a.substr(0,a.length-1):a+"/";d[f]=b.extend({redirectTo:a},c(f,e))}return this},this.other
 wise=function(a){return this.when(null,a),this},this.$get=["$rootScope","$location","$routeParams","$q","$injector","$http","$templateCache","$sce",function(c,e,f,g,h,i,j,k){function l(a,b){var c=b.keys,d={};if(!b.regexp)return null;var e=b.regexp.exec(a);if(!e)return null;for(var f=1,g=e.length;g>f;++f){var h=c[f-1],i="string"==typeof e[f]?decodeURIComponent(e[f]):e[f];h&&i&&(d[h.name]=i)}return d}function m(){var a=n(),d=q.current;a&&d&&a.$$route===d.$$route&&b.equals(a.pathParams,d.pathParams)&&!a.reloadOnSearch&&!p?(d.params=a.params,b.copy(d.params,f),c.$broadcast("$routeUpdate",d)):(a||d)&&(p=!1,c.$broadcast("$routeChangeStart",a,d),q.current=a,a&&a.redirectTo&&(b.isString(a.redirectTo)?e.path(o(a.redirectTo,a.params)).search(a.params).replace():e.url(a.redirectTo(a.pathParams,e.path(),e.search())).replace()),g.when(a).then(function(){if(a){var c,d,e=b.extend({},a.resolve);return b.forEach(e,function(a,c){e[c]=b.isString(a)?h.get(a):h.invoke(a)}),b.isDefined(c=a.template)?b.is
 Function(c)&&(c=c(a.params)):b.isDefined(d=a.templateUrl)&&(b.isFunction(d)&&(d=d(a.params)),d=k.getTrustedResourceUrl(d),b.isDefined(d)&&(a.loadedTemplateUrl=d,c=i.get(d,{cache:j}).then(function(a){return a.data}))),b.isDefined(c)&&(e.$template=c),g.all(e)}}).then(function(e){a==q.current&&(a&&(a.locals=e,b.copy(a.params,f)),c.$broadcast("$routeChangeSuccess",a,d))},function(b){a==q.current&&c.$broadcast("$routeChangeError",a,d,b)}))}function n(){var c,f;return b.forEach(d,function(d){!f&&(c=l(e.path(),d))&&(f=a(d,{params:b.extend({},e.search(),c),pathParams:c}),f.$$route=d)}),f||d[null]&&a(d[null],{params:{},pathParams:{}})}function o(a,c){var d=[];return b.forEach((a||"").split(":"),function(a,b){if(0===b)d.push(a);else{var e=a.match(/(\w+)(.*)/),f=e[1];d.push(c[f]),d.push(e[2]||""),delete c[f]}}),d.join("")}var p=!1,q={routes:d,reload:function(){p=!0,c.$evalAsync(m)}};return c.$on("$locationChangeSuccess",m),q}]}function d(){this.$get=function(){return{}}}function e(a,c,d){retur
 n{restrict:"ECA",terminal:!0,priority:400,transclude:"element",link:function(e,f,g,h,i){function j(){n&&(n.remove(),n=null),l&&(l.$destroy(),l=null),m&&(d.leave(m,function(){n=null}),n=m,m=null)}function k(){var g=a.current&&a.current.locals,h=g&&g.$template;if(b.isDefined(h)){var k=e.$new(),n=a.current,q=i(k,function(a){d.enter(a,null,m||f,function(){!b.isDefined(o)||o&&!e.$eval(o)||c()}),j()});m=q,l=n.scope=k,l.$emit("$viewContentLoaded"),l.$eval(p)}else j()}var l,m,n,o=g.autoscroll,p=g.onload||"";e.$on("$routeChangeSuccess",k),k()}}}function f(a,b,c){return{restrict:"ECA",priority:-400,link:function(d,e){var f=c.current,g=f.locals;e.html(g.$template);var h=a(e.contents());if(f.controller){g.$scope=d;var i=b(f.controller,g);f.controllerAs&&(d[f.controllerAs]=i),e.data("$ngControllerController",i),e.children().data("$ngControllerController",i)}h(d)}}}var g=b.module("ngRoute",["ng"]).provider("$route",c);g.provider("$routeParams",d),g.directive("ngView",e),g.directive("ngView",f),e.
 $inject=["$route","$anchorScroll","$animate"],f.$inject=["$compile","$controller","$route"]}(window,window.angular),function(a,b,c){"use strict";function d(a){return null!=a&&""!==a&&"hasOwnProperty"!==a&&h.test("."+a)}function e(a,b){if(!d(b))throw g("badmember",'Dotted member path "@{0}" is invalid.',b);for(var e=b.split("."),f=0,h=e.length;h>f&&a!==c;f++){var i=e[f];a=null!==a?a[i]:c}return a}function f(a,c){c=c||{},b.forEach(c,function(a,b){delete c[b]});for(var d in a)!a.hasOwnProperty(d)||"$"===d.charAt(0)&&"$"===d.charAt(1)||(c[d]=a[d]);return c}var g=b.$$minErr("$resource"),h=/^(\.[a-zA-Z_$][0-9a-zA-Z_$]*)+$/;b.module("ngResource",["ng"]).factory("$resource",["$http","$q",function(a,d){function h(a){return i(a,!0).replace(/%26/gi,"&").replace(/%3D/gi,"=").replace(/%2B/gi,"+")}function i(a,b){return encodeURIComponent(a).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,b?"%20":"+")}function j(a,b){this.template=a,this.defaults=
 b||{},this.urlParams={}}function k(h,i,r){function s(a,b){var c={};return b=o({},i,b),n(b,function(b,d){q(b)&&(b=b()),c[d]=b&&b.charAt&&"@"==b.charAt(0)?e(a,b.substr(1)):b}),c}function t(a){return a.resource}function u(a){f(a||{},this)}var v=new j(h);return r=o({},l,r),n(r,function(e,h){var i=/^(POST|PUT|PATCH)$/i.test(e.method);u[h]=function(h,j,k,l){var r,w,x,y={};switch(arguments.length){case 4:x=l,w=k;case 3:case 2:if(!q(j)){y=h,r=j,w=k;break}if(q(h)){w=h,x=j;break}w=j,x=k;case 1:q(h)?w=h:i?r=h:y=h;break;case 0:break;default:throw g("badargs","Expected up to 4 arguments [params, data, success, error], got {0} arguments",arguments.length)}var z=this instanceof u,A=z?r:e.isArray?[]:new u(r),B={},C=e.interceptor&&e.interceptor.response||t,D=e.interceptor&&e.interceptor.responseError||c;n(e,function(a,b){"params"!=b&&"isArray"!=b&&"interceptor"!=b&&(B[b]=p(a))}),i&&(B.data=r),v.setUrlParams(B,o({},s(r,e.params||{}),y),e.url);var E=a(B).then(function(a){var c=a.data,d=A.$promise;if(c
 ){if(b.isArray(c)!==!!e.isArray)throw g("badcfg","Error in resource configuration. Expected response to contain an {0} but got an {1}",e.isArray?"array":"object",b.isArray(c)?"array":"object");e.isArray?(A.length=0,n(c,function(a){A.push(new u(a))})):(f(c,A),A.$promise=d)}return A.$resolved=!0,a.resource=A,a},function(a){return A.$resolved=!0,(x||m)(a),d.reject(a)});return E=E.then(function(a){var b=C(a);return(w||m)(b,a.headers),b},D),z?E:(A.$promise=E,A.$resolved=!1,A)},u.prototype["$"+h]=function(a,b,c){q(a)&&(c=b,b=a,a={});var d=u[h].call(this,a,this,b,c);return d.$promise||d}}),u.bind=function(a){return k(h,o({},i,a),r)},u}var l={get:{method:"GET"},save:{method:"POST"},query:{method:"GET",isArray:!0},remove:{method:"DELETE"},"delete":{method:"DELETE"}},m=b.noop,n=b.forEach,o=b.extend,p=b.copy,q=b.isFunction;return j.prototype={setUrlParams:function(a,c,d){var e,f,i=this,j=d||i.template,k=i.urlParams={};n(j.split(/\W/),function(a){if("hasOwnProperty"===a)throw g("badname","hasOw
 nProperty is not a valid parameter name.");!new RegExp("^\\d+$").test(a)&&a&&new RegExp("(^|[^\\\\]):"+a+"(\\W|$)").test(j)&&(k[a]=!0)}),j=j.replace(/\\:/g,":"),c=c||{},n(i.urlParams,function(a,d){e=c.hasOwnProperty(d)?c[d]:i.defaults[d],b.isDefined(e)&&null!==e?(f=h(e),j=j.replace(new RegExp(":"+d+"(\\W|$)","g"),function(a,b){return f+b})):j=j.replace(new RegExp("(/?):"+d+"(\\W|$)","g"),function(a,b,c){return"/"==c.charAt(0)?c:b+c})}),j=j.replace(/\/+$/,"")||"/",j=j.replace(/\/\.(?=\w+($|\?))/,"."),a.url=j.replace(/\/\\\./,"/."),n(c,function(b,c){i.urlParams[c]||(a.params=a.params||{},a.params[c]=b)})}},k}])}(window,window.angular),function(a,b,c){"use strict";b.module("ngCookies",["ng"]).factory("$cookies",["$rootScope","$browser",function(a,d){function e(){var a,e,f,i;for(a in h)k(g[a])&&d.cookies(a,c);for(a in g)e=g[a],b.isString(e)||(e=""+e,g[a]=e),e!==h[a]&&(d.cookies(a,e),i=!0);if(i){i=!1,f=d.cookies();for(a in g)g[a]!==f[a]&&(k(f[a])?delete g[a]:g[a]=f[a],i=!0)}}var f,g={},h
 ={},i=!1,j=b.copy,k=b.isUndefined;return d.addPollFn(function(){var b=d.cookies();f!=b&&(f=b,j(b,h),j(b,g),i&&a.$apply())})(),i=!0,a.$watch(e),g}]).factory("$cookieStore",["$cookies",function(a){return{get:function(c){var d=a[c];return d?b.fromJson(d):d},put:function(c,d){a[c]=b.toJson(d)},remove:function(b){delete a[b]}}}])}(window,window.angular),function(a,b){"use strict";function c(){this.$get=["$$sanitizeUri",function(a){return function(b){var c=[];return f(b,i(c,function(b,c){return!/^unsafe/.test(a(b,c))})),c.join("")}}]}function d(a){var c=[],d=i(c,b.noop);return d.chars(a),c.join("")}function e(a){var b,c={},d=a.split(",");for(b=0;b<d.length;b++)c[d[b]]=!0;return c}function f(a,c){function d(a,d,f,h){if(d=b.lowercase(d),y[d])for(;s.last()&&z[s.last()];)e("",s.last());x[d]&&s.last()==d&&e("",d),h=u[d]||!!h,h||s.push(d);var i={};f.replace(m,function(a,b,c,d,e){var f=c||d||e||"";i[b]=g(f)}),c.start&&c.start(d,i,h)}function e(a,d){var e,f=0;if(d=b.lowercase(d))for(f=s.length-1;
 f>=0&&s[f]!=d;f--);if(f>=0){for(e=s.length-1;e>=f;e--)c.end&&c.end(s[e]);s.length=f}}var f,h,i,s=[],t=a;for(s.last=function(){return s[s.length-1]};a;){if(h=!0,s.last()&&A[s.last()])a=a.replace(new RegExp("(.*)<\\s*\\/\\s*"+s.last()+"[^>]*>","i"),function(a,b){return b=b.replace(p,"$1").replace(r,"$1"),c.chars&&c.chars(g(b)),""}),e("",s.last());else if(0===a.indexOf("<!--")?(f=a.indexOf("--",4),f>=0&&a.lastIndexOf("-->",f)===f&&(c.comment&&c.comment(a.substring(4,f)),a=a.substring(f+3),h=!1)):q.test(a)?(i=a.match(q),i&&(a=a.replace(i[0],""),h=!1)):o.test(a)?(i=a.match(l),i&&(a=a.substring(i[0].length),i[0].replace(l,e),h=!1)):n.test(a)&&(i=a.match(k),i&&(a=a.substring(i[0].length),i[0].replace(k,d),h=!1)),h){f=a.indexOf("<");var v=0>f?a:a.substring(0,f);a=0>f?"":a.substring(f),c.chars&&c.chars(g(v))}if(a==t)throw j("badparse","The sanitizer was unable to parse the following block of html: {0}",a);t=a}e()}function g(a){if(!a)return"";var b=F.exec(a),c=b[1],d=b[3],e=b[2];return e&&(E.
 innerHTML=e.replace(/</g,"&lt;"),e="textContent"in E?E.textContent:E.innerText),c+e+d}function h(a){return a.replace(/&/g,"&amp;").replace(s,function(a){var b=a.charCodeAt(0),c=a.charCodeAt(1);return"&#"+(1024*(b-55296)+(c-56320)+65536)+";"}).replace(t,function(a){return"&#"+a.charCodeAt(0)+";"}).replace(/</g,"&lt;").replace(/>/g,"&gt;")}function i(a,c){var d=!1,e=b.bind(a,a.push);return{start:function(a,f,g){a=b.lowercase(a),!d&&A[a]&&(d=a),d||B[a]!==!0||(e("<"),e(a),b.forEach(f,function(d,f){var g=b.lowercase(f),i="img"===a&&"src"===g||"background"===g;D[g]!==!0||C[g]===!0&&!c(d,i)||(e(" "),e(f),e('="'),e(h(d)),e('"'))}),e(g?"/>":">"))},end:function(a){a=b.lowercase(a),d||B[a]!==!0||(e("</"),e(a),e(">")),a==d&&(d=!1)},chars:function(a){d||e(h(a))}}}var j=b.$$minErr("$sanitize"),k=/^<\s*([\w:-]+)((?:\s+[\w:-]+(?:\s*=\s*(?:(?:"[^"]*")|(?:'[^']*')|[^>\s]+))?)*)\s*(\/?)\s*>/,l=/^<\s*\/\s*([\w:-]+)[^>]*>/,m=/([\w:-]+)(?:\s*=\s*(?:(?:"((?:[^"])*)")|(?:'((?:[^'])*)')|([^>\s]+)))?/g,n=/^<
 /,o=/^<\s*\//,p=/<!--(.*?)-->/g,q=/<!DOCTYPE([^>]*?)>/i,r=/<!\[CDATA\[(.*?)]]>/g,s=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,t=/([^\#-~| |!])/g,u=e("area,br,col,hr,img,wbr"),v=e("colgroup,dd,dt,li,p,tbody,td,tfoot,th,thead,tr"),w=e("rp,rt"),x=b.extend({},w,v),y=b.extend({},v,e("address,article,aside,blockquote,caption,center,del,dir,div,dl,figure,figcaption,footer,h1,h2,h3,h4,h5,h6,header,hgroup,hr,ins,map,menu,nav,ol,pre,script,section,table,ul")),z=b.extend({},w,e("a,abbr,acronym,b,bdi,bdo,big,br,cite,code,del,dfn,em,font,i,img,ins,kbd,label,map,mark,q,ruby,rp,rt,s,samp,small,span,strike,strong,sub,sup,time,tt,u,var")),A=e("script,style"),B=b.extend({},u,y,z,x),C=e("background,cite,href,longdesc,src,usemap"),D=b.extend({},C,e("abbr,align,alt,axis,bgcolor,border,cellpadding,cellspacing,class,clear,color,cols,colspan,compact,coords,dir,face,headers,height,hreflang,hspace,ismap,lang,language,nohref,nowrap,rel,rev,rows,rowspan,rules,scope,scrolling,shape,size,span,start,summary,target,title,t
 ype,valign,value,vspace,width")),E=document.createElement("pre"),F=/^(\s*)([\s\S]*?)(\s*)$/;b.module("ngSanitize",[]).provider("$sanitize",c),b.module("ngSanitize").filter("linky",["$sanitize",function(a){var c=/((ftp|https?):\/\/|(mailto:)?[A-Za-z0-9._%+-]+@)\S*[^\s.;,(){}<>]/,e=/^mailto:/;return function(f,g){function h(a){a&&n.push(d(a))}function i(a,c){n.push("<a "),b.isDefined(g)&&(n.push('target="'),n.push(g),n.push('" ')),n.push('href="'),n.push(a),n.push('">'),h(c),n.push("</a>")}if(!f)return f;for(var j,k,l,m=f,n=[];j=m.match(c);)k=j[0],j[2]==j[3]&&(k="mailto:"+k),l=j.index,h(m.substr(0,l)),i(k,j[0].replace(e,"")),m=m.substring(l+j[0].length);return h(m),a(n.join(""))}}])}(window,window.angular),function(){var a=angular.module("restangular",[]);a.provider("Restangular",function(){var a={};a.init=function(a,b){function c(a,b,c,d){var e={};return _.each(_.keys(d),function(f){var g=d[f];g.params=_.extend({},g.params,a.defaultRequestParams[g.method.toLowerCase()]),_.isEmpty(g.p
 arams)&&delete g.params,e[f]=a.isSafe(g.method)?function(){return b(_.extend(g,{url:c}))}:function(a){return b(_.extend(g,{url:c,data:a}))
-}}),e}a.configuration=b;var d=["get","head","options","trace","getlist"];b.isSafe=function(a){return _.contains(d,a.toLowerCase())};var e=/^https?:\/\//i;b.isAbsoluteUrl=function(a){return a&&e.test(a)},b.baseUrl=_.isUndefined(b.baseUrl)?"":b.baseUrl,a.setBaseUrl=function(a){return b.baseUrl=/\/$/.test(a)?a.substring(0,a.length-1):a,this},b.extraFields=b.extraFields||[],a.setExtraFields=function(a){return b.extraFields=a,this},b.defaultHttpFields=b.defaultHttpFields||{},a.setDefaultHttpFields=function(a){return b.defaultHttpFields=a,this},b.withHttpValues=function(a,c){return _.defaults(c,a,b.defaultHttpFields)},b.encodeIds=_.isUndefined(b.encodeIds)?!0:b.encodeIds,a.setEncodeIds=function(a){b.encodeIds=a},b.defaultRequestParams=b.defaultRequestParams||{get:{},post:{},put:{},remove:{},common:{}},a.setDefaultRequestParams=function(a,c){var d=[],e=c||a;return _.isUndefined(c)?d.push("common"):_.isArray(a)?d=a:d.push(a),_.each(d,function(a){b.defaultRequestParams[a]=e}),this},a.request
 Params=b.defaultRequestParams,b.defaultHeaders=b.defaultHeaders||{},a.setDefaultHeaders=function(c){return b.defaultHeaders=c,a.defaultHeaders=b.defaultHeaders,this},a.defaultHeaders=b.defaultHeaders,b.methodOverriders=b.methodOverriders||[],a.setMethodOverriders=function(a){var c=_.extend([],a);return b.isOverridenMethod("delete",c)&&c.push("remove"),b.methodOverriders=c,this},b.isOverridenMethod=function(a,c){var d=c||b.methodOverriders;return!_.isUndefined(_.find(d,function(b){return b.toLowerCase()===a.toLowerCase()}))},b.urlCreator=b.urlCreator||"path",a.setUrlCreator=function(a){if(!_.has(b.urlCreatorFactory,a))throw new Error("URL Path selected isn't valid");return b.urlCreator=a,this},b.restangularFields=b.restangularFields||{id:"id",route:"route",parentResource:"parentResource",restangularCollection:"restangularCollection",cannonicalId:"__cannonicalId",etag:"restangularEtag",selfLink:"href",get:"get",getList:"getList",put:"put",post:"post",remove:"remove",head:"head",trace:
 "trace",options:"options",patch:"patch",getRestangularUrl:"getRestangularUrl",getRequestedUrl:"getRequestedUrl",putElement:"putElement",addRestangularMethod:"addRestangularMethod",getParentList:"getParentList",clone:"clone",ids:"ids",httpConfig:"_$httpConfig",reqParams:"reqParams"},a.setRestangularFields=function(a){return b.restangularFields=_.extend(b.restangularFields,a),this},b.setFieldToElem=function(a,b,c){var d=a.split("."),e=b;return _.each(_.initial(d),function(a){e[a]={},e=e[a]}),e[_.last(d)]=c,this},b.getFieldFromElem=function(a,b){var c=a.split("."),d=angular.copy(b);return _.each(c,function(a){d&&(d=d[a])}),d},b.setIdToElem=function(a,c){return b.setFieldToElem(b.restangularFields.id,a,c),this},b.getIdFromElem=function(a){return b.getFieldFromElem(b.restangularFields.id,a)},b.isValidId=function(a){return""!==a&&!_.isUndefined(a)&&!_.isNull(a)},b.setUrlToElem=function(a,c){return b.setFieldToElem(b.restangularFields.selfLink,a,c),this},b.getUrlFromElem=function(a){return
  b.getFieldFromElem(b.restangularFields.selfLink,a)},b.useCannonicalId=_.isUndefined(b.useCannonicalId)?!1:b.useCannonicalId,a.setUseCannonicalId=function(a){return b.useCannonicalId=a,this},b.getCannonicalIdFromElem=function(a){var c=a[b.restangularFields.cannonicalId],d=b.isValidId(c)?c:b.getIdFromElem(a);return d},b.responseExtractor=b.responseExtractor||function(a){return a},a.setResponseExtractor=function(a){return b.responseExtractor=a,this},a.setResponseInterceptor=a.setResponseExtractor,b.fullRequestInterceptor=b.fullRequestInterceptor||function(a,b,c,d,e,f,g){return{element:a,headers:e,params:f,httpConfig:g}},a.setRequestInterceptor=function(a){return b.fullRequestInterceptor=function(b,c,d,e,f,g,h){return{headers:f,params:g,element:a(b,c,d,e),httpConfig:h}},this},a.setFullRequestInterceptor=function(a){return b.fullRequestInterceptor=a,this},b.errorInterceptor=b.errorInterceptor||function(){},a.setErrorInterceptor=function(a){return b.errorInterceptor=a,this},b.onBeforeEle
 mRestangularized=b.onBeforeElemRestangularized||function(a){return a},a.setOnBeforeElemRestangularized=function(a){return b.onBeforeElemRestangularized=a,this},b.onElemRestangularized=b.onElemRestangularized||function(a){return a},a.setOnElemRestangularized=function(a){return b.onElemRestangularized=a,this},a.setListTypeIsArray=function(){},b.shouldSaveParent=b.shouldSaveParent||function(){return!0},a.setParentless=function(a){return _.isArray(a)?b.shouldSaveParent=function(b){return!_.contains(a,b)}:_.isBoolean(a)&&(b.shouldSaveParent=function(){return!a}),this},b.suffix=_.isUndefined(b.suffix)?null:b.suffix,a.setRequestSuffix=function(a){return b.suffix=a,this},b.transformers=b.transformers||{},a.addElementTransformer=function(a,c,d){var e=null,f=null;2===arguments.length?f=c:(f=d,e=c);var g=b.transformers[a];g||(g=b.transformers[a]=[]),g.push(function(a,b){return _.isNull(e)||a==e?f(b):b})},a.extendCollection=function(b,c){return a.addElementTransformer(b,!0,c)},a.extendModel=fun
 ction(b,c){return a.addElementTransformer(b,!1,c)},b.transformElem=function(a,c,d,e){var f=b.transformers[d],g=a;return f&&_.each(f,function(a){g=a(c,g)}),b.onElemRestangularized(g,c,d,e)},b.fullResponse=_.isUndefined(b.fullResponse)?!1:b.fullResponse,a.setFullResponse=function(a){return b.fullResponse=a,this},b.urlCreatorFactory={};var f=function(){};f.prototype.setConfig=function(a){return this.config=a,this},f.prototype.parentsArray=function(a){for(var b=[];a;)b.push(a),a=a[this.config.restangularFields.parentResource];return b.reverse()},f.prototype.resource=function(a,d,e,f,g,h,i,j){var k=_.defaults(g||{},this.config.defaultRequestParams.common),l=_.defaults(f||{},this.config.defaultHeaders);i&&(b.isSafe(j)?l["If-None-Match"]=i:l["If-Match"]=i);var m=this.base(a);if(h){var n="";/\/$/.test(m)||(n+="/"),n+=h,m+=n}return this.config.suffix&&-1===m.indexOf(this.config.suffix,m.length-this.config.suffix.length)&&(m+=this.config.suffix),a[this.config.restangularFields.httpConfig]=voi
 d 0,c(this.config,d,m,{getList:this.config.withHttpValues(e,{method:"GET",params:k,headers:l}),get:this.config.withHttpValues(e,{method:"GET",params:k,headers:l}),put:this.config.withHttpValues(e,{method:"PUT",params:k,headers:l}),post:this.config.withHttpValues(e,{method:"POST",params:k,headers:l}),remove:this.config.withHttpValues(e,{method:"DELETE",params:k,headers:l}),head:this.config.withHttpValues(e,{method:"HEAD",params:k,headers:l}),trace:this.config.withHttpValues(e,{method:"TRACE",params:k,headers:l}),options:this.config.withHttpValues(e,{method:"OPTIONS",params:k,headers:l}),patch:this.config.withHttpValues(e,{method:"PATCH",params:k,headers:l})})};var g=function(){};g.prototype=new f,g.prototype.base=function(a){var c=this;return _.reduce(this.parentsArray(a),function(a,d){var e,f=c.config.getUrlFromElem(d);if(f){if(c.config.isAbsoluteUrl(f))return f;e=f}else if(e=d[c.config.restangularFields.route],d[c.config.restangularFields.restangularCollection]){var g=d[c.config.re
 stangularFields.ids];g&&(e+="/"+g.join(","))}else{var h;h=c.config.useCannonicalId?c.config.getCannonicalIdFromElem(d):c.config.getIdFromElem(d),b.isValidId(h)&&(e+="/"+(c.config.encodeIds?encodeURIComponent(h):h))}return a+"/"+e},this.config.baseUrl)},g.prototype.fetchUrl=function(a,b){var c=this.base(a);return b&&(c+="/"+b),c},g.prototype.fetchRequestedUrl=function(a,c){function d(a){var b=[];for(var c in a)a.hasOwnProperty(c)&&b.push(c);return b.sort()}function e(a,b,c){for(var e=d(a),f=0;f<e.length;f++)b.call(c,a[e[f]],e[f]);return e}function f(a,b){return encodeURIComponent(a).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,b?"%20":"+")}var g=this.fetchUrl(a,c),h=a[b.restangularFields.reqParams];if(!h)return g;var i=[];return e(h,function(a,b){null!=a&&void 0!=a&&(angular.isArray(a)||(a=[a]),angular.forEach(a,function(a){angular.isObject(a)&&(a=angular.toJson(a)),i.push(f(b)+"="+f(a))}))}),g+(-1===g.indexOf("?")?"?":"&")+i.join(
 "&")},b.urlCreatorFactory.path=g};var b={};a.init(this,b),this.$get=["$http","$q",function(c,d){function e(f){function g(a,b,c,d){if(b[f.restangularFields.route]=c,b[f.restangularFields.getRestangularUrl]=_.bind(N.fetchUrl,N,b),b[f.restangularFields.getRequestedUrl]=_.bind(N.fetchRequestedUrl,N,b),b[f.restangularFields.addRestangularMethod]=_.bind(K,b),b[f.restangularFields.clone]=_.bind(s,b,b),b[f.restangularFields.reqParams]=_.isEmpty(d)?null:d,b.withHttpConfig=_.bind(z,b),b.one=_.bind(h,b,b),b.all=_.bind(i,b,b),b.several=_.bind(j,b,b),b.oneUrl=_.bind(k,b,b),b.allUrl=_.bind(l,b,b),a&&f.shouldSaveParent(c)){var e=f.getIdFromElem(a),g=f.getUrlFromElem(a),m=_.union(_.values(_.pick(f.restangularFields,["route","parentResource"])),f.extraFields),n=_.pick(a,m);f.isValidId(e)&&f.setIdToElem(n,e),f.isValidId(g)&&f.setUrlToElem(n,g),b[f.restangularFields.parentResource]=n}else b[f.restangularFields.parentResource]=null;return b}function h(a,b,c){var d={};return f.setIdToElem(d,c),t(a,d,b)}
 function i(a,b){return u(a,[],b,!0)}function j(a,b){var c=[];return c[f.restangularFields.ids]=Array.prototype.splice.call(arguments,2),u(a,c,b,!0)}function k(a,b,c){var d={};return f.setUrlToElem(d,c),t(a,d,b)}function l(a,b,c){var d={};return f.setUrlToElem(d,c),u(a,d,b,!0)}function m(a,b){return a.call=_.bind(n,a),a.get=_.bind(o,a),a[f.restangularFields.restangularCollection]=b,b&&(a.push=_.bind(n,a,"push")),a}function n(a){var b=d.defer(),c=arguments;return this.then(function(d){var e=Array.prototype.slice.call(c,1),f=d[a];f.apply(d,e),b.resolve(d)}),m(b.promise,this[f.restangularFields.restangularCollection])}function o(a){var b=d.defer();return this.then(function(c){b.resolve(c[a])}),m(b.promise,this[f.restangularFields.restangularCollection])}function p(a,b,c){return f.fullResponse?a.resolve(_.extend(b,{data:c})):void a.resolve(c)}function q(a){return _.isArray(a)?_.without(a,_.values(_.omit(f.restangularFields,"id"))):_.omit(a,_.values(_.omit(f.restangularFields,"id")))}func
 tion r(a){a.customOperation=_.bind(J,a),_.each(["put","post","get","delete"],function(b){_.each(["do","custom"],function(c){var d,e="delete"===b?"remove":b,f=c+b.toUpperCase();d="put"!==e&&"post"!==e?J:function(a,b,c,d,e){return _.bind(J,this)(a,c,d,e,b)},a[f]=_.bind(d,a,e)})}),a.customGETLIST=_.bind(y,a),a.doGETLIST=a.customGETLIST}function s(a){var b=angular.copy(a);return t(b[f.restangularFields.parentResource],b,b[f.restangularFields.route])}function t(a,b,c,d,e){var h=f.onBeforeElemRestangularized(b,!1,c),i=g(a,h,c,e);return f.useCannonicalId&&(i[f.restangularFields.cannonicalId]=f.getIdFromElem(i)),d&&(i[f.restangularFields.getParentList]=function(){return d}),i[f.restangularFields.restangularCollection]=!1,i[f.restangularFields.get]=_.bind(B,i),i[f.restangularFields.getList]=_.bind(y,i),i[f.restangularFields.put]=_.bind(D,i),i[f.restangularFields.post]=_.bind(E,i),i[f.restangularFields.remove]=_.bind(C,i),i[f.restangularFields.head]=_.bind(F,i),i[f.restangularFields.trace]=_.
 bind(G,i),i[f.restangularFields.options]=_.bind(H,i),i[f.restangularFields.patch]=_.bind(I,i),r(i),f.transformElem(i,!1,c,M)}function u(a,b,c,d){var e=f.onBeforeElemRestangularized(b,!0,c),h=g(a,e,c,d);return h[f.restangularFields.restangularCollection]=!0,h[f.restangularFields.post]=_.bind(E,h,null),h[f.restangularFields.head]=_.bind(F,h),h[f.restangularFields.trace]=_.bind(G,h),h[f.restangularFields.putElement]=_.bind(w,h),h[f.restangularFields.options]=_.bind(H,h),h[f.restangularFields.patch]=_.bind(I,h),h[f.restangularFields.get]=_.bind(v,h),h[f.restangularFields.getList]=_.bind(y,h,null),r(h),f.transformElem(h,!0,c,M)}function v(a,b,c){return this.customGET(a.toString(),b,c)}function w(a,b,c){var e=this,f=this[a],g=d.defer();return f.put(b,c).then(function(b){var c=s(e);c[a]=b,g.resolve(c)},function(a){g.reject(a)}),m(g.promise,!0)}function x(a,b,c,d,e,g){var h=f.responseExtractor(a,b,c,d,e,g),i=e.headers("ETag");return h&&i&&(h[f.restangularFields.etag]=i),h}function y(a,b,e){
 var g=this,h=d.defer(),i="getList",j=N.fetchUrl(this,a),k=a||g[f.restangularFields.route],l=f.fullRequestInterceptor(null,i,k,j,e||{},b||{},this[f.restangularFields.httpConfig]||{});return N.resource(this,c,l.httpConfig,l.headers,l.params,a,this[f.restangularFields.etag],i).getList().then(function(b){var c=b.data,d=b.config.params,e=x(c,i,k,j,b,h),l=_.map(e,function(b){return g[f.restangularFields.restangularCollection]?t(g[f.restangularFields.parentResource],b,g[f.restangularFields.route],e):t(g,b,a,e)});l=_.extend(e,l),g[f.restangularFields.restangularCollection]?p(h,b,u(g[f.restangularFields.parentResource],l,g[f.restangularFields.route],d)):p(h,b,u(g,l,a,d))},function(a){f.errorInterceptor(a)!==!1&&h.reject(a)}),m(h.promise,!0)}function z(a){return this[f.restangularFields.httpConfig]=a,this}function A(a,b,e,g,h){var i=this,j=d.defer(),k=e||{},l=b||this[f.restangularFields.route],n=N.fetchUrl(this,b),o=g||this,r=o[f.restangularFields.etag];_.isObject(o)&&(o=q(o));var s=f.fullReq
 uestInterceptor(o,a,l,n,h||{},k||{},this[f.restangularFields.httpConfig]||{}),u=function(c){var d=c.data,e=c.config.params,g=x(d,a,l,n,c,j);g?"post"!==a||i[f.restangularFields.restangularCollection]?p(j,c,t(i[f.restangularFields.parentResource],g,i[f.restangularFields.route],e)):p(j,c,t(i,g,b,e)):p(j,c,void 0)},v=function(a){f.errorInterceptor(a)!==!1&&j.reject(a)},w=a,y=_.extend({},s.headers),z=f.isOverridenMethod(a);return z&&(w="post",y=_.extend(y,{"X-HTTP-Method-Override":"remove"===a?"DELETE":a})),f.isSafe(a)?z?N.resource(this,c,s.httpConfig,y,s.params,b,r,w)[w]({}).then(u,v):N.resource(this,c,s.httpConfig,y,s.params,b,r,w)[w]().then(u,v):N.resource(this,c,s.httpConfig,y,s.params,b,r,w)[w](s.element).then(u,v),m(j.promise)}function B(a,b){return _.bind(A,this)("get",void 0,a,void 0,b)}function C(a,b){return _.bind(A,this)("remove",void 0,a,void 0,b)}function D(a,b){return _.bind(A,this)("put",void 0,a,void 0,b)}function E(a,b,c,d){return _.bind(A,this)("post",a,c,b,d)}function 
 F(a,b){return _.bind(A,this)("head",void 0,a,void 0,b)}function G(a,b){return _.bind(A,this)("trace",void 0,a,void 0,b)}function H(a,b){return _.bind(A,this)("options",void 0,a,void 0,b)}function I(a,b,c){return _.bind(A,this)("patch",void 0,b,a,c)}function J(a,b,c,d,e){return _.bind(A,this)(a,b,c,e,d)}function K(a,b,c,d,e,g){var h;h="getList"===b?_.bind(y,this,c):_.bind(J,this,b,c);var i=function(a,b,c){var f=_.defaults({params:a,headers:b,elem:c},{params:d,headers:e,elem:g});return h(f.params,f.headers,f.elem)};this[a]=f.isSafe(b)?i:function(a,b,c){return i(b,c,a)}}function L(c){var d=angular.copy(b);return a.init(d,d),c(d),e(d)}var M={},N=new f.urlCreatorFactory[f.urlCreator];return N.setConfig(f),a.init(M,f),M.copy=_.bind(s,M),M.withConfig=_.bind(L,M),M.one=_.bind(h,M,null),M.all=_.bind(i,M,null),M.several=_.bind(j,M,null),M.oneUrl=_.bind(k,M,null),M.allUrl=_.bind(l,M,null),M.restangularizeElement=_.bind(t,M),M.restangularizeCollection=_.bind(u,M),M}return e(b)}]})}(),function(a
 ,b){"use strict";var c=6,d=4,e="asc",f="desc",g="_ng_field_",h="_ng_depth_",i="_ng_hidden_",j="_ng_column_",k=/CUSTOM_FILTERS/g,l=/COL_FIELD/g,m=/DISPLAY_CELL_TEMPLATE/g,n=/EDITABLE_CELL_TEMPLATE/g,o=/CELL_EDITABLE_CONDITION/g,p=/<.+>/;a.ngGrid={},a.ngGrid.i18n={};var q=(angular.module("ngGrid.services",[]),angular.module("ngGrid.directives",[])),r=angular.module("ngGrid.filters",[]);angular.module("ngGrid",["ngGrid.services","ngGrid.directives","ngGrid.filters"]);var s=function(a,b,d,e){if(void 0===a.selectionProvider.selectedItems)return!0;var f,g=d.which||d.keyCode,h=!1,i=!1,j=void 0===a.selectionProvider.lastClickedRow?1:a.selectionProvider.lastClickedRow.rowIndex,k=a.columns.filter(function(a){return a.visible}),l=a.columns.filter(function(a){return a.pinned});if(a.col&&(f=k.indexOf(a.col)),37!==g&&38!==g&&39!==g&&40!==g&&(e.config.noTabInterference||9!==g)&&13!==g)return!0;if(a.enableCellSelection){9===g&&d.preventDefault();var m=a.showSelectionCheckbox?1===a.col.index:0===a.c
 ol.index,n=1===a.$index||0===a.$index,o=a.$index===a.renderedColumns.length-1||a.$index===a.renderedColumns.length-2,p=k.indexOf(a.col)===k.length-1,q=l.indexOf(a.col)===l.length-1;if(37===g||9===g&&d.shiftKey){var r=0;m||(f-=1),n?m&&9===g&&d.shiftKey?(r=e.$canvas.width(),f=k.length-1,i=!0):r=e.$viewport.scrollLeft()-a.col.width:l.length>0&&(r=e.$viewport.scrollLeft()-k[f].width),e.$viewport.scrollLeft(r)}else(39===g||9===g&&!d.shiftKey)&&(o?p&&9===g&&!d.shiftKey?(e.$viewport.scrollLeft(0),f=a.showSelectionCheckbox?1:0,h=!0):e.$viewport.scrollLeft(e.$viewport.scrollLeft()+a.col.width):q&&e.$viewport.scrollLeft(0),p||(f+=1))}var s;s=a.configGroups.length>0?e.rowFactory.parsedData.filter(function(a){return!a.isAggRow}):e.filteredRows;var t=0;if(0!==j&&(38===g||13===g&&d.shiftKey||9===g&&d.shiftKey&&i)?t=-1:j!==s.length-1&&(40===g||13===g&&!d.shiftKey||9===g&&h)&&(t=1),t){var u=s[j+t];u.beforeSelectionChange(u,d)&&(u.continueSelection(d),a.$emit("ngGridEventDigestGridParent"),a.selecti
 onProvider.lastClickedRow.renderedRowIndex>=a.renderedRows.length-c-2?e.$viewport.scrollTop(e.$viewport.scrollTop()+a.rowHeight):a.selectionProvider.lastClickedRow.renderedRowIndex<=c+2&&e.$viewport.scrollTop(e.$viewport.scrollTop()-a.rowHeight))}return a.enableCellSelection&&setTimeout(function(){a.domAccessProvider.focusCellElement(a,a.renderedColumns.indexOf(k[f]))},3),!1};String.prototype.trim||(String.prototype.trim=function(){return this.replace(/^\s+|\s+$/g,"")}),Array.prototype.indexOf||(Array.prototype.indexOf=function(a){var b=this.length>>>0,c=Number(arguments[1])||0;for(c=0>c?Math.ceil(c):Math.floor(c),0>c&&(c+=b);b>c;c++)if(c in this&&this[c]===a)return c;return-1}),Array.prototype.filter||(Array.prototype.filter=function(a){var b=Object(this),c=b.length>>>0;if("function"!=typeof a)throw new TypeError;for(var d=[],e=arguments[1],f=0;c>f;f++)if(f in b){var g=b[f];a.call(e,g,f,b)&&d.push(g)}return d}),r.filter("checkmark",function(){return function(a){return a?"✔":"✘"
 }}),r.filter("ngColumns",function(){return function(a){return a.filter(function(a){return!a.isAggCol})}}),angular.module("ngGrid.services").factory("$domUtilityService",["$utilityService","$window",function(a,c){var d={},e={},f=function(){var a=b("<div></div>");a.appendTo("body"),a.height(100).width(100).css("position","absolute").css("overflow","scroll"),a.append('<div style="height: 400px; width: 400px;"></div>'),d.ScrollH=a.height()-a[0].clientHeight,d.ScrollW=a.width()-a[0].clientWidth,a.empty(),a.attr("style",""),a.append('<span style="font-family: Verdana, Helvetica, Sans-Serif; font-size: 14px;"><strong>M</strong></span>'),d.LetterW=a.children().first().width(),a.remove()};return d.eventStorage={},d.AssignGridContainers=function(a,c,e){e.$root=b(c),e.$topPanel=e.$root.find(".ngTopPanel"),e.$groupPanel=e.$root.find(".ngGroupPanel"),e.$headerContainer=e.$topPanel.find(".ngHeaderContainer"),a.$headerContainer=e.$headerContainer,e.$headerScroller=e.$topPanel.find(".ngHeaderScroll
 er"),e.$headers=e.$headerScroller.children(),e.$viewport=e.$root.find(".ngViewport"),e.$canvas=e.$viewport.find(".ngCanvas"),e.$footerPanel=e.$root.find(".ngFooterPanel");var f=a.$watch(function(){return e.$viewport.scrollLeft()},function(a){return e.$headerContainer.scrollLeft(a)});a.$on("$destroy",function(){b(e.$root.parent()).off("resize.nggrid"),e.$root=null,e.$topPanel=null,e.$headerContainer=null,e.$headers=null,e.$canvas=null,e.$footerPanel=null,f()}),d.UpdateGridLayout(a,e)},d.getRealWidth=function(a){var c=0,d={visibility:"hidden",display:"block"},e=a.parents().andSelf().not(":visible");return b.swap(e[0],d,function(){c=a.outerWidth()}),c},d.UpdateGridLayout=function(a,b){if(b.$root){var c=b.$viewport.scrollTop();b.elementDims.rootMaxW=b.$root.width(),b.$root.is(":hidden")&&(b.elementDims.rootMaxW=d.getRealWidth(b.$root)),b.elementDims.rootMaxH=b.$root.height(),b.refreshDomSizes(),a.adjustScrollTop(c,!0)}},d.numberOfGrids=0,d.setStyleText=function(a,b){var d=a.styleSheet,e
 =a.gridId,f=c.document;d||(d=f.getElementById(e)),d||(d=f.createElement("style"),d.type="text/css",d.id=e,(f.head||f.getElementsByTagName("head")[0]).appendChild(d)),d.styleSheet&&!d.sheet?d.styleSheet.cssText=b:d.innerHTML=b,a.styleSheet=d,a.styleText=b},d.BuildStyles=function(a,b,c){var e,f=b.config.rowHeight,g=b.gridId,h=a.columns,i=0,j=a.totalRowWidth();e="."+g+" .ngCanvas { width: "+j+"px; }."+g+" .ngRow { width: "+j+"px; }."+g+" .ngCanvas { width: "+j+"px; }."+g+" .ngHeaderScroller { width: "+(j+d.ScrollH)+"px}";for(var k=0;k<h.length;k++){var l=h[k];l.visible!==!1&&(e+="."+g+" .col"+k+" { width: "+l.width+"px; left: "+i+"px; height: "+f+"px }."+g+" .colt"+k+" { width: "+l.width+"px; }",i+=l.width)}d.setStyleText(b,e),a.adjustScrollLeft(b.$viewport.scrollLeft()),c&&d.digest(a)},d.setColLeft=function(a,b,c){if(c.styleText){var f=e[a.index];f||(f=e[a.index]=new RegExp(".col"+a.index+" { width: [0-9]+px; left: [0-9]+px"));var g=c.styleText.replace(f,".col"+a.index+" { width: "+a.
 width+"px; left: "+b+"px");d.setStyleText(c,g)}},d.setColLeft.immediate=1,d.RebuildGrid=function(a,b){d.UpdateGridLayout(a,b),(null==b.config.maintainColumnRatios||b.config.maintainColumnRatios)&&b.configureColumnWidths(),a.adjustScrollLeft(b.$viewport.scrollLeft()),d.BuildStyles(a,b,!0)},d.digest=function(a){a.$root.$$phase||a.$digest()},d.ScrollH=17,d.ScrollW=17,d.LetterW=10,f(),d}]),angular.module("ngGrid.services").factory("$sortService",["$parse",function(a){var b={};return b.colSortFnCache={},b.isCustomSort=!1,b.guessSortFn=function(a){var c=typeof a;switch(c){case"number":return b.sortNumber;case"boolean":return b.sortBool;case"string":return a.match(/^[-+]?[£$¤]?[\d,.]+%?$/)?b.sortNumberStr:b.sortAlpha;default:return"[object Date]"===Object.prototype.toString.call(a)?b.sortDate:b.basicSort}},b.basicSort=function(a,b){return a===b?0:b>a?-1:1},b.sortNumber=function(a,b){return a-b},b.sortNumberStr=function(a,b){var c,d,e=!1,f=!1;return c=parseFloat(a.replace(/[^0-9.-]/g,""))
 ,isNaN(c)&&(e=!0),d=parseFloat(b.replace(/[^0-9.-]/g,"")),isNaN(d)&&(f=!0),e&&f?0:e?1:f?-1:c-d},b.sortAlpha=function(a,b){var c=a.toLowerCase(),d=b.toLowerCase();return c===d?0:d>c?-1:1},b.sortDate=function(a,b){var c=a.getTime(),d=b.getTime();return c===d?0:d>c?-1:1},b.sortBool=function(a,b){return a&&b?0:a||b?a?1:-1:0},b.sortData=function(c,d){if(d&&c){var f,g,h=c.fields.length,i=c.fields,j=d.slice(0);d.sort(function(d,k){for(var l,m,n=0,o=0;0===n&&h>o;){f=c.columns[o],g=c.directions[o],m=b.getSortFn(f,j);var p=a(i[o])(d),q=a(i[o])(k);b.isCustomSort?(l=m(p,q),n=g===e?l:0-l):!p&&0!==p||!q&&0!==q?q||p?p?q||(n=-1):n=1:n=0:(l=m(p,q),n=g===e?l:0-l),o++}return n})}},b.Sort=function(a,c){b.isSorting||(b.isSorting=!0,b.sortData(a,c),b.isSorting=!1)},b.getSortFn=function(c,d){var e,f;if(b.colSortFnCache[c.field])e=b.colSortFnCache[c.field];else if(void 0!==c.sortingAlgorithm)e=c.sortingAlgorithm,b.colSortFnCache[c.field]=c.sortingAlgorithm,b.isCustomSort=!0;else{if(f=d[0],!f)return e;e=b.g
 uessSortFn(a(c.field)(f)),e?b.colSortFnCache[c.field]=e:e=b.sortAlpha}return e},b}]),angular.module("ngGrid.services").factory("$utilityService",["$parse",function(c){var d=/function (.{1,})\(/,e={visualLength:function(a){var c=document.getElementById("testDataLength");c||(c=document.createElement("SPAN"),c.id="testDataLength",c.style.visibility="hidden",document.body.appendChild(c));var d=b(a);b(c).css({font:d.css("font"),"font-size":d.css("font-size"),"font-family":d.css("font-family")}),c.innerHTML=d.text();var e=c.offsetWidth;return document.body.removeChild(c),e},forIn:function(a,b){for(var c in a)a.hasOwnProperty(c)&&b(a[c],c)},evalProperty:function(a,b){return c("entity."+b)({entity:a})},endsWith:function(a,b){return a&&b&&"string"==typeof a?-1!==a.indexOf(b,a.length-b.length):!1},isNullOrUndefined:function(a){return void 0===a||null===a?!0:!1},getElementsByClassName:function(a){if(document.getElementsByClassName)return document.getElementsByClassName(a);for(var b=[],c=new Re
 gExp("\\b"+a+"\\b"),d=document.getElementsByTagName("*"),e=0;e<d.length;e++){var f=d[e].className;c.test(f)&&b.push(d[e])}return b},newId:function(){var a=(new Date).getTime();return function(){return a+=1}}(),seti18n:function(b,c){var d=a.ngGrid.i18n[c];for(var e in d)b.i18n[e]=d[e]},getInstanceType:function(a){var b=d.exec(a.constructor.toString());if(b&&b.length>1){var c=b[1].replace(/^\s+|\s+$/g,"");return c}return""}};return e}]);var t=function(a,b,c,d){this.rowIndex=0,this.offsetTop=this.rowIndex*c,this.entity=a,this.label=a.gLabel,this.field=a.gField,this.depth=a.gDepth,this.parent=a.parent,this.children=a.children,this.aggChildren=a.aggChildren,this.aggIndex=a.aggIndex,this.collapsed=d,this.groupInitState=d,this.rowFactory=b,this.rowHeight=c,this.isAggRow=!0,this.offsetLeft=25*a.gDepth,this.aggLabelFilter=a.aggLabelFilter};t.prototype.toggleExpand=function(){this.collapsed=this.collapsed?!1:!0,this.orig&&(this.orig.collapsed=this.collapsed),this.notifyChildren()},t.prototype
 .setExpand=function(a){this.collapsed=a,this.notifyChildren()},t.prototype.notifyChildren=function(){for(var a=Math.max(this.rowFactory.aggCache.length,this.children.length),b=0;a>b;b++)if(this.aggChildren[b]&&(this.aggChildren[b].entity[i]=this.collapsed,this.collapsed&&this.aggChildren[b].setExpand(this.collapsed)),this.children[b]&&(this.children[b][i]=this.collapsed),b>this.aggIndex&&this.rowFactory.aggCache[b]){var c=this.rowFactory.aggCache[b],d=30*this.children.length;c.offsetTop=this.collapsed?c.offsetTop-d:c.offsetTop+d}this.rowFactory.renderedChange()},t.prototype.aggClass=function(){return this.collapsed?"ngAggArrowCollapsed":"ngAggArrowExpanded"},t.prototype.totalChildren=function(){if(this.aggChildren.length>0){var a=0,b=function(c){c.aggChildren.length>0?angular.forEach(c.aggChildren,function(a){b(a)}):a+=c.children.length};return b(this),a}return this.children.length},t.prototype.copy=function(){var a=new t(this.entity,this.rowFactory,this.rowHeight,this.groupInitStat
 e);return a.orig=this,a};var u=function(a,c,d,g,h,i){var j=this,l=a.colDef,m=500,n=0,o=null;j.colDef=a.colDef,j.width=l.width,j.groupIndex=0,j.isGroupedBy=!1,j.minWidth=l.minWidth?l.minWidth:50,j.maxWidth=l.maxWidth?l.maxWidth:9e3,j.enableCellEdit=void 0!==l.enableCellEdit?l.enableCellEdit:a.enableCellEdit||a.enableCellEditOnFocus,j.cellEditableCondition=l.cellEditableCondition||a.cellEditableCondition||"true",j.headerRowHeight=a.headerRowHeight,j.displayName=void 0===l.displayName?l.field:l.displayName,j.index=a.index,j.isAggCol=a.isAggCol,j.cellClass=l.cellClass,j.sortPriority=void 0,j.cellFilter=l.cellFilter?l.cellFilter:"",j.field=l.field,j.aggLabelFilter=l.aggLabelFilter||l.cellFilter,j.visible=i.isNullOrUndefined(l.visible)||l.visible,j.sortable=!1,j.resizable=!1,j.pinnable=!1,j.pinned=a.enablePinning&&l.pinned,j.originalIndex=null==a.originalIndex?j.index:a.originalIndex,j.groupable=i.isNullOrUndefined(l.groupable)||l.groupable,a.enableSort&&(j.sortable=i.isNullOrUndefined(l.
 sortable)||l.sortable),a.enableResize&&(j.resizable=i.isNullOrUndefined(l.resizable)||l.resizable),a.enablePinning&&(j.pinnable=i.isNullOrUndefined(l.pinnable)||l.pinnable),j.sortDirection=void 0,j.sortingAlgorithm=l.sortFn,j.headerClass=l.headerClass,j.cursor=j.sortable?"pointer":"default",j.headerCellTemplate=l.headerCellTemplate||h.get("headerCellTemplate.html"),j.cellTemplate=l.cellTemplate||h.get("cellTemplate.html").replace(k,j.cellFilter?"|"+j.cellFilter:""),j.enableCellEdit&&(j.cellEditTemplate=l.cellEditTemplate||h.get("cellEditTemplate.html"),j.editableCellTemplate=l.editableCellTemplate||h.get("editableCellTemplate.html")),l.cellTemplate&&!p.test(l.cellTemplate)&&(j.cellTemplate=h.get(l.cellTemplate)||b.ajax({type:"GET",url:l.cellTemplate,async:!1}).responseText),j.enableCellEdit&&l.editableCellTemplate&&!p.test(l.editableCellTemplate)&&(j.editableCellTemplate=h.get(l.editableCellTemplate)||b.ajax({type:"GET",url:l.editableCellTemplate,async:!1}).responseText),l.headerCel
 lTemplate&&!p.test(l.headerCellTemplate)&&(j.headerCellTemplate=h.get(l.headerCellTemplate)||b.ajax({type:"GET",url:l.headerCellTemplate,async:!1}).responseText),j.colIndex=function(){var a=j.pinned?"pinned ":"";return a+="col"+j.index+" colt"+j.index,j.cellClass&&(a+=" "+j.cellClass),a},j.groupedByClass=function(){return j.isGroupedBy?"ngGroupedByIcon":"ngGroupIcon"},j.toggleVisible=function(){j.visible=!j.visible},j.showSortButtonUp=function(){return j.sortable?j.sortDirection===f:j.sortable},j.showSortButtonDown=function(){return j.sortable?j.sortDirection===e:j.sortable},j.noSortVisible=function(){return!j.sortDirection},j.sort=function(b){if(!j.sortable)return!0;var c=j.sortDirection===e?f:e;return j.sortDirection=c,a.sortCallback(j,b),!1},j.gripClick=function(){n++,1===n?o=setTimeout(function(){n=0},m):(clearTimeout(o),a.resizeOnDataCallback(j),n=0)},j.gripOnMouseDown=function(a){return c.isColumnResizing=!0,a.ctrlKey&&!j.pinned?(j.toggleVisible(),g.BuildStyles(c,d),!0):(a.tar
 get.parentElement.style.cursor="col-resize",j.startMousePosition=a.clientX,j.origWidth=j.width,b(document).mousemove(j.onMouseMove),b(document).mouseup(j.gripOnMouseUp),!1)},j.onMouseMove=function(a){var b=a.clientX-j.startMousePosition,e=b+j.origWidth;return j.width=e<j.minWidth?j.minWidth:e>j.maxWidth?j.maxWidth:e,c.hasUserChangedGridColumnWidths=!0,g.BuildStyles(c,d),!1},j.gripOnMouseUp=function(a){return b(document).off("mousemove",j.onMouseMove),b(document).off("mouseup",j.gripOnMouseUp),a.target.parentElement.style.cursor="default",g.digest(c),c.isColumnResizing=!1,!1},j.copy=function(){var b=new u(a,c,d,g,h,i);return b.isClone=!0,b.orig=j,b},j.setVars=function(a){j.orig=a,j.width=a.width,j.groupIndex=a.groupIndex,j.isGroupedBy=a.isGroupedBy,j.displayName=a.displayName,j.index=a.index,j.isAggCol=a.isAggCol,j.cellClass=a.cellClass,j.cellFilter=a.cellFilter,j.field=a.field,j.aggLabelFilter=a.aggLabelFilter,j.visible=a.visible,j.sortable=a.sortable,j.resizable=a.resizable,j.pinna
 ble=a.pinnable,j.pinned=a.pinned,j.originalIndex=a.originalIndex,j.sortDirection=a.sortDirection,j.sortingAlgorithm=a.sortingAlgorithm,j.headerClass=a.headerClass,j.headerCellTemplate=a.headerCellTemplate,j.cellTemplate=a.cellTemplate,j.cellEditTemplate=a.cellEditTemplate}},v=function(a){this.outerHeight=null,this.outerWidth=null,b.extend(this,a)},w=function(a){this.previousColumn=null,this.grid=a};w.prototype.changeUserSelect=function(a,b){a.css({"-webkit-touch-callout":b,"-webkit-user-select":b,"-khtml-user-select":b,"-moz-user-select":"none"===b?"-moz-none":b,"-ms-user-select":b,"user-select":b})},w.prototype.focusCellElement=function(a,b){if(a.selectionProvider.lastClickedRow){var c=void 0!==b?b:this.previousColumn,d=a.selectionProvider.lastClickedRow.clone?a.selectionProvider.lastClickedRow.clone.elm:a.selectionProvider.lastClickedRow.elm;if(void 0!==c&&d){var e=angular.element(d[0].children).filter(function(){return 8!==this.nodeType}),f=Math.max(Math.min(a.renderedColumns.len
 gth-1,c),0);this.grid.config.showSelectionCheckbox&&angular.element(e[f]).scope()&&0===angular.element(e[f]).scope().col.index&&(f=1),e[f]&&e[f].children[1].children[0].focus(),this.previousColumn=c}}},w.prototype.selectionHandlers=function(a,b){function c(c){if(16===c.keyCode)return f.changeUserSelect(b,"none",c),!0;if(!e){e=!0;var d=s(a,b,c,f.grid);return e=!1,d}return!0}function d(a){return 16===a.keyCode&&f.changeUserSelect(b,"text",a),!0}var e=!1,f=this;b.bind("keydown",c),b.bind("keyup",d),b.on("$destroy",function(){b.off("keydown",c),b.off("keyup",d)})};var x=function(c,d,e,f){var g=this;g.colToMove=void 0,g.groupToMove=void 0,g.assignEvents=function(){c.config.jqueryUIDraggable&&!c.config.enablePinning?(c.$groupPanel.droppable({addClasses:!1,drop:function(a){g.onGroupDrop(a)}}),c.$groupPanel.on("$destroy",function(){c.$groupPanel=null})):(c.$groupPanel.on("mousedown",g.onGroupMouseDown).on("dragover",g.dragOver).on("drop",g.onGroupDrop),c.$topPanel.on("mousedown",".ngHeaderS
 croller",g.onHeaderMouseDown).on("dragover",".ngHeaderScroller",g.dragOver),c.$groupPanel.on("$destroy",function(){c.$groupPanel&&c.$groupPanel.off("mousedown"),c.$groupPanel=null
-}),c.config.enableColumnReordering&&c.$topPanel.on("drop",".ngHeaderScroller",g.onHeaderDrop),c.$topPanel.on("$destroy",function(){c.$topPanel&&c.$topPanel.off("mousedown"),c.config.enableColumnReordering&&c.$topPanel&&c.$topPanel.off("drop"),c.$topPanel=null})),d.$on("$destroy",d.$watch("renderedColumns",function(){f(g.setDraggables)}))},g.dragStart=function(a){a.dataTransfer.setData("text","")},g.dragOver=function(a){a.preventDefault()},g.setDraggables=function(){if(c.config.jqueryUIDraggable)c.$root&&c.$root.find(".ngHeaderSortColumn").draggable({helper:"clone",appendTo:"body",stack:"div",addClasses:!1,start:function(a){g.onHeaderMouseDown(a)}}).droppable({drop:function(a){g.onHeaderDrop(a)}});else{var a=c.$root.find(".ngHeaderSortColumn");if(angular.forEach(a,function(a){a.className&&-1!==a.className.indexOf("ngHeaderSortColumn")&&(a.setAttribute("draggable","true"),a.addEventListener&&(a.addEventListener("dragstart",g.dragStart),angular.element(a).on("$destroy",function(){angul
 ar.element(a).off("dragstart",g.dragStart),a.removeEventListener("dragstart",g.dragStart)})))}),-1!==navigator.userAgent.indexOf("MSIE")){var b=c.$root.find(".ngHeaderSortColumn");b.bind("selectstart",function(){return this.dragDrop(),!1}),angular.element(b).on("$destroy",function(){b.off("selectstart")})}}},g.onGroupMouseDown=function(a){var d=b(a.target);if("ngRemoveGroup"!==d[0].className){var e=angular.element(d).scope();e&&(c.config.jqueryUIDraggable||(d.attr("draggable","true"),this.addEventListener&&(this.addEventListener("dragstart",g.dragStart),angular.element(this).on("$destroy",function(){this.removeEventListener("dragstart",g.dragStart)})),-1!==navigator.userAgent.indexOf("MSIE")&&(d.bind("selectstart",function(){return this.dragDrop(),!1}),d.on("$destroy",function(){d.off("selectstart")}))),g.groupToMove={header:d,groupName:e.group,index:e.$index})}else g.groupToMove=void 0},g.onGroupDrop=function(a){a.stopPropagation();var e,f;g.groupToMove?(e=b(a.target).closest(".ngG
 roupElement"),"ngGroupPanel"===e.context.className?(d.configGroups.splice(g.groupToMove.index,1),d.configGroups.push(g.groupToMove.groupName)):(f=angular.element(e).scope(),f&&g.groupToMove.index!==f.$index&&(d.configGroups.splice(g.groupToMove.index,1),d.configGroups.splice(f.$index,0,g.groupToMove.groupName))),g.groupToMove=void 0,c.fixGroupIndexes()):g.colToMove&&(-1===d.configGroups.indexOf(g.colToMove.col)&&(e=b(a.target).closest(".ngGroupElement"),"ngGroupPanel"===e.context.className||"ngGroupPanelDescription ng-binding"===e.context.className?d.groupBy(g.colToMove.col):(f=angular.element(e).scope(),f&&d.removeGroup(f.$index))),g.colToMove=void 0),d.$$phase||d.$apply()},g.onHeaderMouseDown=function(a){var c=b(a.target).closest(".ngHeaderSortColumn"),d=angular.element(c).scope();d&&(g.colToMove={header:c,col:d.col})},g.onHeaderDrop=function(a){if(g.colToMove&&!g.colToMove.col.pinned){var f=b(a.target).closest(".ngHeaderSortColumn"),h=angular.element(f).scope();if(h){if(g.colToMo
 ve.col===h.col||h.col.pinned)return;d.columns.splice(g.colToMove.col.index,1),d.columns.splice(h.col.index,0,g.colToMove.col),c.fixColumnIndexes(),g.colToMove=void 0,e.digest(d)}}},g.assignGridEventHandlers=function(){-1===c.config.tabIndex?(c.$viewport.attr("tabIndex",e.numberOfGrids),e.numberOfGrids++):c.$viewport.attr("tabIndex",c.config.tabIndex);var f,g=function(){clearTimeout(f),f=setTimeout(function(){e.RebuildGrid(d,c)},100)};b(a).on("resize.nggrid",g);var h,i=function(){clearTimeout(h),h=setTimeout(function(){e.RebuildGrid(d,c)},100)};b(c.$root.parent()).on("resize.nggrid",i),d.$on("$destroy",function(){b(a).off("resize.nggrid",g)})},g.assignGridEventHandlers(),g.assignEvents()},y=function(a,b){a.maxRows=function(){var c=Math.max(a.totalServerItems,b.data.length);return c},a.$on("$destroy",a.$watch("totalServerItems",function(){a.currentMaxPages=a.maxPages()})),a.multiSelect=b.config.enableRowSelection&&b.config.multiSelect,a.selectedItemCount=b.selectedItemCount,a.maxPages
 =function(){return 0===a.maxRows()?1:Math.ceil(a.maxRows()/a.pagingOptions.pageSize)},a.pageForward=function(){var b=a.pagingOptions.currentPage;a.totalServerItems>0?a.pagingOptions.currentPage=Math.min(b+1,a.maxPages()):a.pagingOptions.currentPage++},a.pageBackward=function(){var b=a.pagingOptions.currentPage;a.pagingOptions.currentPage=Math.max(b-1,1)},a.pageToFirst=function(){a.pagingOptions.currentPage=1},a.pageToLast=function(){var b=a.maxPages();a.pagingOptions.currentPage=b},a.cantPageForward=function(){var c=a.pagingOptions.currentPage,d=a.maxPages();return a.totalServerItems>0?c>=d:b.data.length<1},a.cantPageToLast=function(){return a.totalServerItems>0?a.cantPageForward():!0},a.cantPageBackward=function(){var b=a.pagingOptions.currentPage;return 1>=b}},z=function(e,f,g,h,j,k,l,m,n,o,q){var r={aggregateTemplate:void 0,afterSelectionChange:function(){},beforeSelectionChange:function(){return!0},checkboxCellTemplate:void 0,checkboxHeaderTemplate:void 0,columnDefs:void 0,data:
 [],dataUpdated:function(){},enableCellEdit:!1,enableCellEditOnFocus:!1,enableCellSelection:!1,enableColumnResize:!1,enableColumnReordering:!1,enableColumnHeavyVirt:!1,enablePaging:!1,enablePinning:!1,enableRowSelection:!0,enableSorting:!0,enableHighlighting:!1,excludeProperties:[],filterOptions:{filterText:"",useExternalFilter:!1},footerRowHeight:55,footerTemplate:void 0,forceSyncScrolling:!0,groups:[],groupsCollapsedByDefault:!0,headerRowHeight:30,headerRowTemplate:void 0,jqueryUIDraggable:!1,jqueryUITheme:!1,keepLastSelected:!0,maintainColumnRatios:void 0,menuTemplate:void 0,multiSelect:!0,pagingOptions:{pageSizes:[250,500,1e3],pageSize:250,currentPage:1},pinSelectionCheckbox:!1,plugins:[],primaryKey:void 0,rowHeight:30,rowTemplate:void 0,selectedItems:[],selectWithCheckboxOnly:!1,showColumnMenu:!1,showFilter:!1,showFooter:!1,showGroupPanel:!1,showSelectionCheckbox:!1,sortInfo:{fields:[],columns:[],directions:[]},tabIndex:-1,totalServerItems:0,useExternalSorting:!1,i18n:"en",virtu
 alizationThreshold:50,noTabInterference:!1},s=this;s.maxCanvasHt=0,s.config=b.extend(r,a.ngGrid.config,f),s.config.showSelectionCheckbox=s.config.showSelectionCheckbox&&s.config.enableColumnHeavyVirt===!1,s.config.enablePinning=s.config.enablePinning&&s.config.enableColumnHeavyVirt===!1,s.config.selectWithCheckboxOnly=s.config.selectWithCheckboxOnly&&s.config.showSelectionCheckbox!==!1,s.config.pinSelectionCheckbox=s.config.enablePinning,"string"==typeof f.columnDefs&&(s.config.columnDefs=e.$eval(f.columnDefs)),s.rowCache=[],s.rowMap=[],s.gridId="ng"+l.newId(),s.$root=null,s.$groupPanel=null,s.$topPanel=null,s.$headerContainer=null,s.$headerScroller=null,s.$headers=null,s.$viewport=null,s.$canvas=null,s.rootDim=s.config.gridDim,s.data=[],s.lateBindColumns=!1,s.filteredRows=[],s.initTemplates=function(){var a=["rowTemplate","aggregateTemplate","headerRowTemplate","checkboxCellTemplate","checkboxHeaderTemplate","menuTemplate","footerTemplate"],b=[];return angular.forEach(a,function(a)
 {b.push(s.getTemplate(a))}),q.all(b)},s.getTemplate=function(a){var b=s.config[a],c=s.gridId+a+".html",d=q.defer();if(b&&!p.test(b))o.get(b,{cache:k}).success(function(a){k.put(c,a),d.resolve()}).error(function(){d.reject("Could not load template: "+b)});else if(b)k.put(c,b),d.resolve();else{var e=a+".html";k.put(c,k.get(e)),d.resolve()}return d.promise},"object"==typeof s.config.data&&(s.data=s.config.data),s.calcMaxCanvasHeight=function(){var a;return a=s.config.groups.length>0?s.rowFactory.parsedData.filter(function(a){return!a[i]}).length*s.config.rowHeight:s.filteredRows.length*s.config.rowHeight},s.elementDims={scrollW:0,scrollH:0,rowIndexCellW:25,rowSelectedCellW:25,rootMaxW:0,rootMaxH:0},s.setRenderedRows=function(a){e.renderedRows.length=a.length;for(var b=0;b<a.length;b++)!e.renderedRows[b]||a[b].isAggRow||e.renderedRows[b].isAggRow?(e.renderedRows[b]=a[b].copy(),e.renderedRows[b].collapsed=a[b].collapsed,a[b].isAggRow||e.renderedRows[b].setVars(a[b])):e.renderedRows[b].se
 tVars(a[b]),e.renderedRows[b].rowIndex=a[b].rowIndex,e.renderedRows[b].offsetTop=a[b].offsetTop,e.renderedRows[b].selected=a[b].selected,a[b].renderedRowIndex=b;s.refreshDomSizes(),e.$emit("ngGridEventRows",a)},s.minRowsToRender=function(){var a=e.viewportDimHeight()||1;return Math.floor(a/s.config.rowHeight)},s.refreshDomSizes=function(){var a=new v;a.outerWidth=s.elementDims.rootMaxW,a.outerHeight=s.elementDims.rootMaxH,s.rootDim=a,s.maxCanvasHt=s.calcMaxCanvasHeight()},s.buildColumnDefsFromData=function(){s.config.columnDefs=[];var a=s.data[0];return a?void l.forIn(a,function(a,b){-1===s.config.excludeProperties.indexOf(b)&&s.config.columnDefs.push({field:b})}):void(s.lateBoundColumns=!0)},s.buildColumns=function(){var a=s.config.columnDefs,b=[];if(a||(s.buildColumnDefsFromData(),a=s.config.columnDefs),s.config.showSelectionCheckbox&&b.push(new u({colDef:{field:"✔",width:s.elementDims.rowSelectedCellW,sortable:!1,resizable:!1,groupable:!1,headerCellTemplate:k.get(e.gridId+"chec
 kboxHeaderTemplate.html"),cellTemplate:k.get(e.gridId+"checkboxCellTemplate.html"),pinned:s.config.pinSelectionCheckbox},index:0,headerRowHeight:s.config.headerRowHeight,sortCallback:s.sortData,resizeOnDataCallback:s.resizeOnData,enableResize:s.config.enableColumnResize,enableSort:s.config.enableSorting,enablePinning:s.config.enablePinning},e,s,h,k,l)),a.length>0){var c=s.config.showSelectionCheckbox?1:0,d=e.configGroups.length;e.configGroups.length=0,angular.forEach(a,function(a,f){f+=c;var g=new u({colDef:a,index:f+d,originalIndex:f,headerRowHeight:s.config.headerRowHeight,sortCallback:s.sortData,resizeOnDataCallback:s.resizeOnData,enableResize:s.config.enableColumnResize,enableSort:s.config.enableSorting,enablePinning:s.config.enablePinning,enableCellEdit:s.config.enableCellEdit||s.config.enableCellEditOnFocus,cellEditableCondition:s.config.cellEditableCondition},e,s,h,k,l),i=s.config.groups.indexOf(a.field);-1!==i&&(g.isGroupedBy=!0,e.configGroups.splice(i,0,g),g.groupIndex=e.co
 nfigGroups.length),b.push(g)}),e.columns=b,s.config.groups.length>0&&s.rowFactory.getGrouping(s.config.groups)}},s.configureColumnWidths=function(){var a=[],b=[],c=0,d=0,f={};if(angular.forEach(e.columns,function(a,b){if(!l.isNullOrUndefined(a.originalIndex)){var c=a.originalIndex;s.config.showSelectionCheckbox&&(0===a.originalIndex&&a.visible&&(d+=25),c--),f[c]=b}}),angular.forEach(s.config.columnDefs,function(g,h){var i=e.columns[f[h]];g.index=h;var j,k=!1;if(l.isNullOrUndefined(g.width)?g.width="*":(k=isNaN(g.width)?l.endsWith(g.width,"%"):!1,j=k?g.width:parseInt(g.width,10)),isNaN(j)&&!e.hasUserChangedGridColumnWidths){if(j=g.width,"auto"===j){i.width=i.minWidth,d+=i.width;var m=i;return void e.$on("$destroy",e.$on("ngGridEventData",function(){s.resizeOnData(m)}))}if(-1!==j.indexOf("*"))return i.visible!==!1&&(c+=j.length),void a.push(g);if(k)return void b.push(g);throw'unable to parse column width, use percentage ("10%","20%", etc...) or "*" to use remaining width of grid'}i.vi
 sible!==!1&&(d+=i.width=parseInt(i.width,10))}),b.length>0){s.config.maintainColumnRatios=s.config.maintainColumnRatios!==!1;var g=0,i=0;angular.forEach(b,function(a){var b=e.columns[f[a.index]],c=parseFloat(a.width)/100;g+=c,b.visible||(i+=c)});var j=g-i;angular.forEach(b,function(a){var b=e.columns[f[a.index]],c=parseFloat(a.width)/100;c/=i>0?j:g;var h=s.rootDim.outerWidth*g;b.width=h*c,d+=b.width})}if(a.length>0){s.config.maintainColumnRatios=s.config.maintainColumnRatios!==!1;var k=s.rootDim.outerWidth-d;s.maxCanvasHt>e.viewportDimHeight()&&(k-=h.ScrollW);var m=Math.floor(k/c);angular.forEach(a,function(b,c){var g=e.columns[f[b.index]];g.width=m*b.width.length,g.visible!==!1&&(d+=g.width);var i=c===a.length-1;if(i&&d<s.rootDim.outerWidth){var j=s.rootDim.outerWidth-d;s.maxCanvasHt>e.viewportDimHeight()&&(j-=h.ScrollW),g.width+=j}})}},s.init=function(){return s.initTemplates().then(function(){e.selectionProvider=new E(s,e,n),e.domAccessProvider=new w(s),s.rowFactory=new C(s,e,h,k
 ,l),s.searchProvider=new D(e,s,j),s.styleProvider=new F(e,s),e.$on("$destroy",e.$watch("configGroups",function(a){var b=[];angular.forEach(a,function(a){b.push(a.field||a)}),s.config.groups=b,s.rowFactory.filteredRowsChanged(),e.$emit("ngGridEventGroups",a)},!0)),e.$on("$destroy",e.$watch("columns",function(a){e.isColumnResizing||h.RebuildGrid(e,s),e.$emit("ngGridEventColumns",a)},!0)),e.$on("$destroy",e.$watch(function(){return f.i18n},function(a){l.seti18n(e,a)})),s.maxCanvasHt=s.calcMaxCanvasHeight(),s.config.sortInfo.fields&&s.config.sortInfo.fields.length>0&&e.$on("$destroy",e.$watch(function(){return s.config.sortInfo},function(){g.isSorting||(s.sortColumnsInit(),e.$emit("ngGridEventSorted",s.config.sortInfo))},!0))})},s.resizeOnData=function(a){var c=a.minWidth,d=l.getElementsByClassName("col"+a.index);angular.forEach(d,function(a,d){var e;if(0===d){var f=b(a).find(".ngHeaderText");e=l.visualLength(f)+10}else{var g=b(a).find(".ngCellText");e=l.visualLength(g)+10}e>c&&(c=e)}),
 a.width=a.longest=Math.min(a.maxWidth,c+7),h.BuildStyles(e,s,!0)},s.lastSortedColumns=[],s.sortData=function(a,c){if(c&&c.shiftKey&&s.config.sortInfo){var d=s.config.sortInfo.columns.indexOf(a);-1===d?(1===s.config.sortInfo.columns.length&&(s.config.sortInfo.columns[0].sortPriority=1),s.config.sortInfo.columns.push(a),a.sortPriority=s.config.sortInfo.columns.length,s.config.sortInfo.fields.push(a.field),s.config.sortInfo.directions.push(a.sortDirection),s.lastSortedColumns.push(a)):s.config.sortInfo.directions[d]=a.sortDirection}else if(!s.config.useExternalSorting||s.config.useExternalSorting&&s.config.sortInfo){var f=b.isArray(a);s.config.sortInfo.columns.length=0,s.config.sortInfo.fields.length=0,s.config.sortInfo.directions.length=0;var g=function(a){s.config.sortInfo.columns.push(a),s.config.sortInfo.fields.push(a.field),s.config.sortInfo.directions.push(a.sortDirection),s.lastSortedColumns.push(a)};f?angular.forEach(a,function(a,b){a.sortPriority=b+1,g(a)}):(s.clearSortingData
 (a),a.sortPriority=void 0,g(a)),s.sortActual(),s.searchProvider.evalFilter(),e.$emit("ngGridEventSorted",s.config.sortInfo)}},s.sortColumnsInit=function(){s.config.sortInfo.columns?s.config.sortInfo.columns.length=0:s.config.sortInfo.columns=[];var a=[];angular.forEach(e.columns,function(b){var c=s.config.sortInfo.fields.indexOf(b.field);-1!==c&&(b.sortDirection=s.config.sortInfo.directions[c]||"asc",a[c]=b)}),s.sortData(1===a.length?a[0]:a)},s.sortActual=function(){if(!s.config.useExternalSorting){var a=s.data.slice(0);angular.forEach(a,function(a,b){var c=s.rowMap[b];if(void 0!==c){var d=s.rowCache[c];void 0!==d&&(a.preSortSelected=d.selected,a.preSortIndex=b)}}),g.Sort(s.config.sortInfo,a),angular.forEach(a,function(a,b){s.rowCache[b].entity=a,s.rowCache[b].selected=a.preSortSelected,s.rowMap[a.preSortIndex]=b,delete a.preSortSelected,delete a.preSortIndex})}},s.clearSortingData=function(a){a?(angular.forEach(s.lastSortedColumns,function(b){a.index!==b.index&&(b.sortDirection="",
 b.sortPriority=null)}),s.lastSortedColumns[0]=a,s.lastSortedColumns.length=1):(angular.forEach(s.lastSortedColumns,function(a){a.sortDirection="",a.sortPriority=null}),s.lastSortedColumns=[])},s.fixColumnIndexes=function(){for(var a=0;a<e.columns.length;a++)e.columns[a].index=a},s.fixGroupIndexes=function(){angular.forEach(e.configGroups,function(a,b){a.groupIndex=b+1})},e.elementsNeedMeasuring=!0,e.columns=[],e.renderedRows=[],e.renderedColumns=[],e.headerRow=null,e.rowHeight=s.config.rowHeight,e.jqueryUITheme=s.config.jqueryUITheme,e.showSelectionCheckbox=s.config.showSelectionCheckbox,e.enableCellSelection=s.config.enableCellSelection,e.enableCellEditOnFocus=s.config.enableCellEditOnFocus,e.footer=null,e.selectedItems=s.config.selectedItems,e.multiSelect=s.config.multiSelect,e.showFooter=s.config.showFooter,e.footerRowHeight=e.showFooter?s.config.footerRowHeight:0,e.showColumnMenu=s.config.showColumnMenu,e.forceSyncScrolling=s.config.forceSyncScrolling,e.showMenu=!1,e.configGroup
 s=[],e.gridId=s.gridId,e.enablePaging=s.config.enablePaging,e.pagingOptions=s.config.pagingOptions,e.i18n={},l.seti18n(e,s.config.i18n),e.adjustScrollLeft=function(a){for(var b=0,c=0,d=e.columns.length,f=[],g=!s.config.enableColumnHeavyVirt,i=0,j=function(a){g?f.push(a):e.renderedColumns[i]?e.renderedColumns[i].setVars(a):e.renderedColumns[i]=a.copy(),i++},k=0;d>k;k++){var l=e.columns[k];if(l.visible!==!1){var m=l.width+b;if(l.pinned){j(l);var n=k>0?a+c:a;h.setColLeft(l,n,s),c+=l.width}else m>=a&&b<=a+s.rootDim.outerWidth&&j(l);b+=l.width}}g&&(e.renderedColumns=f)},s.prevScrollTop=0,s.prevScrollIndex=0,e.adjustScrollTop=function(a,b){if(s.prevScrollTop!==a||b){a>0&&s.$viewport[0].scrollHeight-a<=s.$viewport.outerHeight()&&e.$emit("ngGridEventScroll");var f,g=Math.floor(a/s.config.rowHeight);if(s.filteredRows.length>s.config.virtualizationThreshold){if(s.prevScrollTop<a&&g<s.prevScrollIndex+d)return;if(s.prevScrollTop>a&&g>s.prevScrollIndex-d)return;f=new A(Math.max(0,g-c),g+s.minRow
 sToRender()+c)}else{var h=e.configGroups.length>0?s.rowFactory.parsedData.length:s.filteredRows.length;f=new A(0,Math.max(h,s.minRowsToRender()+c))}s.prevScrollTop=a,s.rowFactory.UpdateViewableRange(f),s.prevScrollIndex=g}},e.toggleShowMenu=function(){e.showMenu=!e.showMenu},e.toggleSelectAll=function(a,b){e.selectionProvider.toggleSelectAll(a,!1,b)},e.totalFilteredItemsLength=function(){return s.filteredRows.length},e.showGroupPanel=function(){return s.config.showGroupPanel},e.topPanelHeight=function(){return s.config.showGroupPanel===!0?s.config.headerRowHeight+32:s.config.headerRowHeight},e.viewportDimHeight=function(){return Math.max(0,s.rootDim.outerHeight-e.topPanelHeight()-e.footerRowHeight-2)},e.groupBy=function(a){if(!(s.data.length<1)&&a.groupable&&a.field){a.sortDirection||a.sort({shiftKey:e.configGroups.length>0?!0:!1});var b=e.configGroups.indexOf(a);-1===b?(a.isGroupedBy=!0,e.configGroups.push(a),a.groupIndex=e.configGroups.length):e.removeGroup(b),s.$viewport.scrollTo
 p(0),h.digest(e)}},e.removeGroup=function(a){var b=e.columns.filter(function(b){return b.groupIndex===a+1})[0];b.isGroupedBy=!1,b.groupIndex=0,e.columns[a].isAggCol&&(e.columns.splice(a,1),e.configGroups.splice(a,1),s.fixGroupIndexes()),0===e.configGroups.length&&(s.fixColumnIndexes(),h.digest(e)),e.adjustScrollLeft(0)},e.togglePin=function(a){for(var b=a.index,c=0,d=0;d<e.columns.length&&e.columns[d].pinned;d++)c++;a.pinned&&(c=Math.max(a.originalIndex,c-1)),a.pinned=!a.pinned,e.columns.splice(b,1),e.columns.splice(c,0,a),s.fixColumnIndexes(),h.BuildStyles(e,s,!0),s.$viewport.scrollLeft(s.$viewport.scrollLeft()-a.width)},e.totalRowWidth=function(){for(var a=0,b=e.columns,c=0;c<b.length;c++)b[c].visible!==!1&&(a+=b[c].width);return a},e.headerScrollerDim=function(){var a=e.viewportDimHeight(),b=s.maxCanvasHt,c=b>a,d=new v;return d.autoFitHeight=!0,d.outerWidth=e.totalRowWidth(),c?d.outerWidth+=s.elementDims.scrollW:b-a<=s.elementDims.scrollH&&(d.outerWidth+=s.elementDims.scrollW),d}
 },A=function(a,b){this.topRow=a,this.bottomRow=b},B=function(a,b,c,d,e){this.entity=a,this.config=b,this.selectionProvider=c,this.rowIndex=d,this.utils=e,this.selected=c.getSelection(a),this.cursor=this.config.enableRowSelection&&!this.config.selectWithCheckboxOnly?"pointer":"default",this.beforeSelectionChange=b.beforeSelectionChangeCallback,this.afterSelectionChange=b.afterSelectionChangeCallback,this.offsetTop=this.rowIndex*b.rowHeight,this.rowDisplayIndex=0};B.prototype.setSelection=function(a){this.selectionProvider.setSelection(this,a),this.selectionProvider.lastClickedRow=this},B.prototype.continueSelection=function(a){this.selectionProvider.ChangeSelection(this,a)},B.prototype.ensureEntity=function(a){this.entity!==a&&(this.entity=a,this.selected=this.selectionProvider.getSelection(this.entity))},B.prototype.toggleSelected=function(a){if(!this.config.enableRowSelection&&!this.config.enableCellSelection)return!0;var b=a.target||a;return"checkbox"===b.type&&"ngSelectionCell ng
 -scope"!==b.parentElement.className?!0:this.config.selectWithCheckboxOnly&&"checkbox"!==b.type?(this.selectionProvider.lastClickedRow=this,!0):(this.beforeSelectionChange(this,a)&&this.continueSelection(a),!1)},B.prototype.alternatingRowClass=function(){var a=this.rowIndex%2===0,b={ngRow:!0,selected:this.selected,even:a,odd:!a,"ui-state-default":this.config.jqueryUITheme&&a,"ui-state-active":this.config.jqueryUITheme&&!a};return b},B.prototype.getProperty=function(a){return this.utils.evalProperty(this.entity,a)},B.prototype.copy=function(){return this.clone=new B(this.entity,this.config,this.selectionProvider,this.rowIndex,this.utils),this.clone.isClone=!0,this.clone.elm=this.elm,this.clone.orig=this,this.clone},B.prototype.setVars=function(a){a.clone=this,this.entity=a.entity,this.selected=a.selected,this.orig=a};var C=function(a,b,d,e,f){var k=this;k.aggCache={},k.parentCache=[],k.dataChanged=!0,k.parsedData=[],k.rowConfig={},k.selectionProvider=b.selectionProvider,k.rowHeight=30
 ,k.numberOfAggregates=0,k.groupedData=void 0,k.rowHeight=a.config.rowHeight,k.rowConfig={enableRowSelection:a.config.enableRowSelection,rowClasses:a.config.rowClasses,selectedItems:b.selectedItems,selectWithCheckboxOnly:a.config.selectWithCheckboxOnly,beforeSelectionChangeCallback:a.config.beforeSelectionChange,afterSelectionChangeCallback:a.config.afterSelectionChange,jqueryUITheme:a.config.jqueryUITheme,enableCellSelection:a.config.enableCellSelection,rowHeight:a.config.rowHeight},k.renderedRange=new A(0,a.minRowsToRender()+c),k.buildEntityRow=function(a,b){return new B(a,k.rowConfig,k.selectionProvider,b,f)},k.buildAggregateRow=function(b,c){var d=k.aggCache[b.aggIndex];return d||(d=new t(b,k,k.rowConfig.rowHeight,a.config.groupsCollapsedByDefault),k.aggCache[b.aggIndex]=d),d.rowIndex=c,d.offsetTop=c*k.rowConfig.rowHeight,d},k.UpdateViewableRange=function(a){k.renderedRange=a,k.renderedChange()},k.filteredRowsChanged=function(){a.lateBoundColumns&&a.filteredRows.length>0&&(a.conf
 ig.columnDefs=void 0,a.buildColumns(),a.lateBoundColumns=!1,b.$evalAsync(function(){b.adjustScrollLeft(0)})),k.dataChanged=!0,a.config.groups.length>0&&k.getGrouping(a.config.groups),k.UpdateViewableRange(k.renderedRange)},k.renderedChange=function(){if(!k.groupedData||a.config.groups.length<1)return k.renderedChangeNoGroups(),void a.refreshDomSizes();k.wasGrouped=!0,k.parentCache=[];var b=0,c=k.parsedData.filter(function(a){return a.isAggRow?a.parent&&a.parent.collapsed?!1:!0:(a[i]||(a.rowIndex=b++),!a[i])});k.totalRows=c.length;for(var d=[],e=k.renderedRange.topRow;e<k.renderedRange.bottomRow;e++)c[e]&&(c[e].offsetTop=e*a.config.rowHeight,d.push(c[e]));a.setRenderedRows(d)},k.renderedChangeNoGroups=function(){for(var b=[],c=k.renderedRange.topRow;c<k.renderedRange.bottomRow;c++)a.filteredRows[c]&&(a.filteredRows[c].rowIndex=c,a.filteredRows[c].offsetTop=c*a.config.rowHeight,b.push(a.filteredRows[c]));a.setRenderedRows(b)},k.fixRowCache=function(){var b=a.data.length,c=b-a.rowCache
 .length;if(0>c)a.rowCache.length=a.rowMap.length=b;else for(var d=a.rowCache.length;b>d;d++)a.rowCache[d]=a.rowFactory.buildEntityRow(a.data[d],d)},k.parseGroupData=function(a){if(a.values)for(var b=0;b<a.values.length;b++)k.parentCache[k.parentCache.length-1].children.push(a.values[b]),k.parsedData.push(a.values[b]);else for(var c in a)if(c!==g&&c!==h&&c!==j&&a.hasOwnProperty(c)){var d=k.buildAggregateRow({gField:a[g],gLabel:c,gDepth:a[h],isAggRow:!0,_ng_hidden_:!1,children:[],aggChildren:[],aggIndex:k.numberOfAggregates,aggLabelFilter:a[j].aggLabelFilter},0);k.numberOfAggregates++,d.parent=k.parentCache[d.depth-1],d.parent&&(d.parent.collapsed=!1,d.parent.aggChildren.push(d)),k.parsedData.push(d),k.parentCache[d.depth]=d,k.parseGroupData(a[c])}},k.getGrouping=function(c){function l(a,b){return a.filter(function(a){return a.field===b})}k.aggCache=[],k.numberOfAggregates=0,k.groupedData={};for(var m=a.filteredRows,n=c.length,o=b.columns,p=0;p<m.length;p++){var q=m[p].entity;if(!q)re
 turn;m[p][i]=a.config.groupsCollapsedByDefault;for(var r=k.groupedData,s=0;s<c.length;s++){var t=c[s],v=l(o,t)[0],w=f.evalProperty(q,t);w=w?w.toString():"null",r[w]||

<TRUNCATED>