!function(){var _require=function(){var t=[],e=[],n={},r=function(r){if("undefined"!=typeof t[r])return t[r].exports;if(n={id:r,filename:r,parent:n,children:[],exports:{},loaded:!1},"undefined"==typeof e[r])throw new Error("The factory of "+r+" module not found");return t[r]=e[r](_require,n.exports,n,"undefined"!=typeof window?window:global),t[r].loaded=!0,t[r].parent.children&&t[r].parent.children.push(t[r]),t[r].exports};return r.def=function(t,n){e[t]=n},r}();"undefined"==typeof require&&(require=_require),_require.def("dist/ngtemplate.glob.js",function(t,e,n,r){return window.NgTemplate=t("dist/ngtemplate.js").NgTemplate,n}),_require.def("dist/ngtemplate.js",function(t,e,n,r){"use strict";var i=t("dist/ng-template/ngif.js"),o=t("dist/ng-template/ngel.js"),s=t("dist/ng-template/ngtext.js"),a=t("dist/ng-template/ngfor.js"),c=t("dist/ng-template/ngswitch.js"),u=t("dist/ng-template/ngswitchcase.js"),p=t("dist/ng-template/ngswitchcasedefault.js"),l=t("dist/ng-template/ngclass.js"),f=t("dist/ng-template/ngprop.js"),h=t("dist/ng-template/ngattr.js"),d=t("dist/ng-template/ngdata.js"),g=t("dist/ng-template/exception.js"),v=t("dist/ng-template/reporter.js"),y=9,m=[a.NgFor,c.NgSwitch,u.NgSwitchCase,p.NgSwitchCaseDefault,i.NgIf,l.NgClass,d.NgData,f.NgProp,h.NgAttr,o.NgEl,s.NgText],x=0,w=function(){function t(t,e,n){if(void 0===n&&(n={}),this.el=t,this.template=e,this.options=n,this.directives=[],this.isMounted=!1,!this.el)throw new g.Exception("(NgTemplate) Invalid first parameter: must be an existing DOM node");this.id="id"+ ++x,this.reporter=new v.Reporter,this.template||this.init(m)}return t.factory=function(e,n,r){return new t(e,n||null,r)},t.prototype.swapDirectives=function(t,e,n){var r="data-"+e+"-"+n,i="data-"+e,o=t.getAttribute(r);t.setAttribute(i,o),t.removeAttribute(r)},t.prototype.assignRepeatingDirectives=function(t){var e=this,n=-1;if(t.selector)for(;n++=0&&e.item(n)!==this;);return n>-1}}return n.exports=e,n}),_require.def("dist/ng-template/ngif.js",function(t,e,n,r){"use strict";var i=this&&this.__extends||function(t,e){function n(){this.constructor=t}for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r]);t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)},o=t("dist/ng-template/abstract-directive.js"),s=function(t){function e(e,n){t.call(this,e,n),this.nodes=this.initNodes(e,"ng-if",function(t,e,r,i){return{el:t,anchor:document.createElement("ng"),exp:r(e,"Boolean",n),cache:i}})}return i(e,t),e.prototype.sync=function(t){var e=this;this.nodes.forEach(function(n){n.cache.evaluate(n.exp.call(n.el,t),function(t){return t?e.enable(n):void e.disable(n)})})},e.prototype.disable=function(t){t.anchor.parentNode||(t.anchor.style.display="none",t.el.parentNode.insertBefore(t.anchor,t.el),t.el.parentNode.removeChild(t.el))},e.prototype.enable=function(t){t.anchor.parentNode&&(t.anchor.parentNode.insertBefore(t.el,t.anchor),t.anchor.parentNode.removeChild(t.anchor))},e}(o.AbstractDirective);return e.NgIf=s,n.exports=e,n}),_require.def("dist/ng-template/ngel.js",function(t,e,n,r){"use strict";var i=this&&this.__extends||function(t,e){function n(){this.constructor=t}for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r]);t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)},o=t("dist/ng-template/abstract-directive.js"),s=function(t){function e(e,n){t.call(this,e,n),this.nodes=this.initNodes(e,"ng-el",function(t,e,r){return{el:t,exp:r(e,"",n)}})}return i(e,t),e.prototype.sync=function(t){this.nodes.forEach(function(e){e.exp.call(e.el,t)})},e}(o.AbstractDirective);return e.NgEl=s,n.exports=e,n}),_require.def("dist/ng-template/ngtext.js",function(t,e,n,r){"use strict";var i=this&&this.__extends||function(t,e){function n(){this.constructor=t}for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r]);t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)},o=t("dist/ng-template/abstract-directive.js"),s=function(t){function e(e,n){t.call(this,e,n),this.nodes=this.initNodes(e,"ng-text",function(t,e,r,i){return{el:t,exp:r(e,"String",n),cache:i}})}return i(e,t),e.prototype.sync=function(t){var e=this;this.nodes.forEach(function(n){n.cache.evaluate(n.exp.call(n.el,t),function(t){e.setText(n.el,t)})})},e}(o.AbstractDirective);return e.NgText=s,n.exports=e,n}),_require.def("dist/ng-template/ngfor.js",function(t,e,n,r){"use strict";var i=this&&this.__extends||function(t,e){function n(){this.constructor=t}for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r]);t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)},o=t("dist/ng-template/abstract-directive.js"),s=t("dist/ng-template/exception.js"),a=t("dist/ng-template/constants.js"),c=t("dist/ng-template/expression/tokenizer.js"),u=t("dist/ng-template/expression/exception.js"),p="id",l=0,f=function(t){function e(e,n){var r=this;t.call(this,e,n),this.nodes=this.initNodes(e,"ng-for",function(t,e,i,o){var p,f=r.parseExpr(e),h="id"+ ++l;return t.dataset.ngForScope=h,p=t.outerHTML,["ngSwitch","ngSwitchCase","ngSwitchCaseDefault","ngIf","ngClass","ngData","ngProp","ngAttr","ngEl","ngText"].forEach(function(e){t.dataset[e]&&delete t.dataset[e]}),{el:t,parentNode:t.parentNode,outerHTML:p,id:h,indexable:!1,variable:f.variable,items:[],cache:o,exp:function(t,r){var i=[];try{i=c.ReferenceToken.findValue(f.iterable,t)}catch(t){if(!(t instanceof u.ExpressionException))throw new s.Exception("Invalid ng* expression "+e);n.addLog(a.ERROR_CODES.NGT0003+": "+t.message)}return Array.isArray(i)||(i=[]),i}}})}return i(e,t),e.prototype.parseExpr=function(t){var e=/(let|var)\s+([a-zA-Z0-9\_]+)\s+of\s+/,n=t.trim(),r=n.match(e);if(!r||3!==r.length)throw new s.Exception("Cannot parse ng-for expression: "+t);return{variable:r[2],iterable:n.replace(e,"")}},e.createParentEl=function(t){var e={TR:"tbody",THEAD:"table",TFOOT:"table",TBODY:"table",COLGROUP:"table",CAPTION:"table",TD:"tr",TH:"tr",COL:"colgroup",FIGCAPTION:"figure",LEGEND:"fieldset",LI:"ul",DT:"dl",DD:"dl"},n=t.toUpperCase(),r=n in e?e[n]:"div";return document.createElement(r)},e.prototype.removeIndexable=function(t,e){return t.items.filter(function(t){return e.find(function(e){return t.id===e[p]})})},e.prototype.sync=function(t,n){var r=this;this.nodes.forEach(function(i){var o=i.exp(t);if(i.cache.match(JSON.stringify(o)))return!1;if(i.items.length>o.length&&(i.items=i.indexable?r.removeIndexable(i,o):[]),i.items.length0},t}();return e.Reporter=i,n.exports=e,n}),_require.def("dist/ng-template/abstract-directive.js",function(t,e,n,r){"use strict";var i=t("dist/ng-template/expression.js"),o=t("dist/ng-template/cache.js"),s=function(){function t(t,e){}return t.prototype.initNodes=function(t,e,n){var r=this.getDataKey(e),s=this.getSelector(e),a=t.matches(s)?[t]:Array.from(t.querySelectorAll(s));return a.map(function(t){var e=t.dataset[r];return delete t.dataset[r],n(t,e,i.compile,new o.Cache)})},t.prototype.getSelector=function(t){return"[data-"+t+"]"},t.prototype.getDataKey=function(t){return t.split("-").map(function(t,e){return e?t.substr(0,1).toUpperCase()+t.substr(1):t}).join("")},t.prototype.setText=function(t,e){t.textContent=e},t.prototype.escape=function(t){var e=document.createElement("div");return this.setText(e,t),e.innerHTML},t}();return e.AbstractDirective=s,n.exports=e,n}),_require.def("dist/ng-template/constants.js",function(t,e,n,r){"use strict";return e.ERROR_CODES={NGT0001:"NGT0001",NGT0002:"NGT0002",NGT0003:"NGT0003"},n.exports=e,n}),_require.def("dist/ng-template/expression/tokenizer.js",function(t,e,n,r){"use strict";function i(t){var e=/^\!\s*/;return t.replace(e,"")}function o(t){var e=i(t),n=t!==e;switch(!0){case p.valid(t):return new p(t,!1);case l.valid(e):return new l(e,n);case f.valid(e):return new f(e,n);case h.valid(e):return new h(e,n);case d.valid(e):return new d(e,n);default:return new u(e,n)}}var s=this&&this.__extends||function(t,e){function n(){this.constructor=t}for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r]);t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)},a=t("dist/ng-template/expression/exception.js"),c=function(){function t(t,e){void 0===e&&(e=!1),this.value=t,this.negation=e,this.name="Token"}return t.prototype.resolveValue=function(t){},t.prototype.toJSON=function(){return{type:this.name,value:this.value,negation:this.negation}},t}();e.Token=c;var u=function(t){function e(){t.apply(this,arguments),this.name="InvalidToken"}return s(e,t),e}(c);e.InvalidToken=u;var p=function(t){function e(){t.apply(this,arguments),this.name="OperatorToken"}return s(e,t),e.valid=function(t){var e=/^(\+|\-|\<|\>|===|==|\!==|\!=|\&\&|\|\|)$/;return e.test(t)},e}(c);e.OperatorToken=p;var l=function(t){function e(){t.apply(this,arguments),this.name="StringToken"}return s(e,t),e.valid=function(t){var e=/^\'[^\']+\'$/i,n=/^\"[^\"]+\"$/i;return e.test(t)||n.test(t)},e.prototype.resolveValue=function(t){var e=this.value;return e.substr(1,e.length-2)},e}(c);e.StringToken=l;var f=function(t){function e(){t.apply(this,arguments),this.name="NumberToken"}return s(e,t),e.valid=function(t){var e=/^\d+$/;return e.test(t)},e.prototype.resolveValue=function(t){var e=Number(this.value);return this.negation?!e:e},e}(c);e.NumberToken=f;var h=function(t){function e(){t.apply(this,arguments),this.name="BooleanToken"}return s(e,t),e.valid=function(t){var e=/^(true|false)$/i;return e.test(t)},e.prototype.resolveValue=function(t){var e="TRUE"===this.value.toUpperCase();return this.negation?!e:e},e}(c);e.BooleanToken=h;var d=function(t){function e(){t.apply(this,arguments),this.name="ReferenceToken"}return s(e,t),e.valid=function(t){var e=/^[a-zA-Z_\$][a-zA-Z0-9\._\$]+$/;return"this."!==t.substr(0,5)&&e.test(t)},e.findValue=function(t,e){var n=e;return t.split(".").forEach(function(e){if("object"!=typeof n)throw new a.ExpressionException("'"+t+"' is undefined");if(!(e in n))throw new a.ExpressionException("'"+t+"' is undefined");n=n[e]}),n},e.prototype.resolveValue=function(t){var n=e.findValue(this.value,t);return this.negation?!n:n},e}(c);return e.ReferenceToken=d,e.tokenizer=o,n.exports=e,n}),_require.def("dist/ng-template/expression/exception.js",function(t,e,n,r){"use strict";var i=this&&this.__extends||function(t,e){function n(){this.constructor=t}for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r]);t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)},o=t("dist/ng-template/exception.js"),s=function(t){function e(e){t.call(this,e),this.name="NgTemplateExpressionException",this.message=e}return i(e,t),e}(o.Exception);return e.ExpressionException=s,n.exports=e,n}),_require.def("dist/ng-template/expression.js",function(_require,exports,module,global){"use strict";function reduceComposite(t,e){if(1===t.length){var n=t[0];return n.resolveValue(e)}var r=t[0],i=r.resolveValue(e),o=t[1],s=t[2],a=s.resolveValue(e);if(!(o instanceof tokenizer_1.OperatorToken))throw new exception_1.Exception("Invalid operator "+o.value+" in ng* expression");switch(o.value){case"+":return i+a;case"-":return i-a;case"<":return i":return i>a;case"===":return i===a;case"==":return i===a;case"!==":return i!==a;case"!=":return i!==a;case"&&":return i&&a;case"||":return i||a}}function wrap(t,e){switch(e){case"String":return String(t);case"Boolean":return Boolean(t);default:return t}}function treatException(t,e,n){if(!(t instanceof exception_2.ExpressionException))throw new exception_1.Exception("Invalid ng* expression "+e);n.addLog(constants_1.ERROR_CODES.NGT0003+": "+t.message)}function tryGroupStrategy(t,e){var n,r;if(t.indexOf(",")===-1)throw new exception_1.Exception("Group expression must have syntax: 'foo, bar'");s=t.split(","),n=s[0],r=s[1];var i=parser_1.Parser.parse(n),o=parser_1.Parser.parse(r);if(!i.length)throw new exception_2.ExpressionException("Cannot parse expression "+n);if(!o.length)throw new exception_2.ExpressionException("Cannot parse expression "+r);return e.addTokens(i),e.addTokens(o),function(n){try{return[reduceComposite(i,n),reduceComposite(o,n)]}catch(n){return treatException(n,t,e),["",""]}};var s}function tryOptimalStrategy(t,e,n){void 0===e&&(e="");var r=parser_1.Parser.parse(t);if(!r.length)throw new exception_2.ExpressionException("Cannot parse expression "+t);return n.addTokens(r),function(i){try{return wrap(reduceComposite(r,i),e)}catch(e){return treatException(e,t,n),""}}}function fallbackStrategy(expr,wrapper,reporter){void 0===wrapper&&(wrapper="");var __toArray=function(){return[].slice.call(arguments)},func=function(data){var cb,code,keys=Object.keys(data),vals=keys.map(function(t){return data[t]});try{return code="cb = function("+keys.join(",")+("){ return "+wrapper+"("+expr+"); };"),eval(code),cb.apply(this,vals)}catch(t){reporter.addError(constants_1.ERROR_CODES.NGT0002+": Could not evaluate "+code)}};return func}function compile(t,e,n){void 0===e&&(e="");try{return"__toArray"===e?tryGroupStrategy(t,n):tryOptimalStrategy(t,e,n)}catch(t){if(!(t instanceof exception_2.ExpressionException))throw new exception_1.Exception(t.message)}return n.addError(constants_1.ERROR_CODES.NGT0001+": Could not parse the expression, going eval()"),fallbackStrategy.call(this,t,e,n)}var constants_1=_require("dist/ng-template/constants.js"),exception_1=_require("dist/ng-template/exception.js"),exception_2=_require("dist/ng-template/expression/exception.js"),parser_1=_require("dist/ng-template/expression/parser.js"),tokenizer_1=_require("dist/ng-template/expression/tokenizer.js");return exports.tryGroupStrategy=tryGroupStrategy,exports.tryOptimalStrategy=tryOptimalStrategy,exports.fallbackStrategy=fallbackStrategy,exports.compile=compile,module.exports=exports,module}),_require.def("dist/ng-template/cache.js",function(t,e,n,r){"use strict";var i=function(){function t(){}return t.prototype.match=function(t){return t===this.cache||(this.cache=t,!1)},t.prototype.evaluate=function(t,e){this.match(t)||e(t)},t}();return e.Cache=i,n.exports=e,n}),_require.def("dist/ng-template/expression/parser.js",function(t,e,n,r){"use strict";var i=t("dist/ng-template/expression/tokenizer.js"),o=function(){function t(){}return t.split=function(t){var e=/(\+|\-|\<|\>|===|==|\!==|\!=|\&\&|\|\|)/;return t.split(e).map(function(t){return t.trim()}).filter(function(t){return Boolean(t)})},t.parse=function(e){if(i.StringToken.valid(e)){var n=i.tokenizer(e.trim());return[n]}var r=t.split(e);if(3!==r.length&&1!==r.length)return[];var o=r.map(function(t){return i.tokenizer(t)});return o.find(function(t){return t instanceof i.InvalidToken})?[]:o},t}();return e.Parser=o,n.exports=e,n}),function(){_require("dist/ngtemplate.glob.js")}()}();