webpackJsonp([1],{102:function(t,e,n){"use strict";function paramParser(t,e){var n=new Map;if(t.length>0){t.split("&").forEach(function(t){var r=t.indexOf("="),o=-1==r?[e.decodeKey(t),""]:[e.decodeKey(t.slice(0,r)),e.decodeValue(t.slice(r+1))],i=o[0],s=o[1],a=n.get(i)||[];a.push(s),n.set(i,a)})}return n}function standardEncoding(t){return encodeURIComponent(t).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/gi,"$").replace(/%2C/gi,",").replace(/%3B/gi,";").replace(/%2B/gi,"+").replace(/%3D/gi,"=").replace(/%3F/gi,"?").replace(/%2F/gi,"/")}/**
 * @license
 * Copyright Google Inc. All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://angular.io/license
 */
function mightHaveBody(t){switch(t){case"DELETE":case"GET":case"HEAD":case"OPTIONS":case"JSONP":return!1;default:return!0}}function isArrayBuffer(t){return"undefined"!=typeof ArrayBuffer&&t instanceof ArrayBuffer}function isBlob(t){return"undefined"!=typeof Blob&&t instanceof Blob}function isFormData(t){return"undefined"!=typeof FormData&&t instanceof FormData}/**
 * @license
 * Copyright Google Inc. All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://angular.io/license
 */
function addBody(t,e){return{body:e,headers:t.headers,observe:t.observe,params:t.params,reportProgress:t.reportProgress,responseType:t.responseType,withCredentials:t.withCredentials}}function getResponseUrl(t){return"responseURL"in t&&t.responseURL?t.responseURL:/^X-Request-URL:/m.test(t.getAllResponseHeaders())?t.getResponseHeader("X-Request-URL"):null}/**
 * @license
 * Copyright Google Inc. All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://angular.io/license
 */
function interceptingHandler(t,e){return void 0===e&&(e=[]),e?e.reduceRight(function(t,e){return new A(t,e)},t):t}function jsonpCallbackContext(){return"object"==typeof window?window:{}}Object.defineProperty(e,"__esModule",{value:!0});var r=n(17),o=n(2),i=n(53),s=(n.n(i),n(80)),a=(n.n(s),n(81)),u=(n.n(a),n(54)),l=(n.n(u),n(19)),c=n(0);n.n(c);n.d(e,"HttpBackend",function(){return d}),n.d(e,"HttpHandler",function(){return p}),n.d(e,"HttpClient",function(){return S}),n.d(e,"HttpHeaders",function(){return f}),n.d(e,"HTTP_INTERCEPTORS",function(){return T}),n.d(e,"JsonpClientBackend",function(){return N}),n.d(e,"JsonpInterceptor",function(){return F}),n.d(e,"HttpClientJsonpModule",function(){return z}),n.d(e,"HttpClientModule",function(){return U}),n.d(e,"HttpClientXsrfModule",function(){return G}),n.d(e,"ɵinterceptingHandler",function(){return interceptingHandler}),n.d(e,"HttpParams",function(){return m}),n.d(e,"HttpUrlEncodingCodec",function(){return h}),n.d(e,"HttpRequest",function(){return y}),n.d(e,"HttpErrorResponse",function(){return C}),n.d(e,"HttpEventType",function(){return g}),n.d(e,"HttpHeaderResponse",function(){return b}),n.d(e,"HttpResponse",function(){return _}),n.d(e,"HttpResponseBase",function(){return v}),n.d(e,"HttpXhrBackend",function(){return k}),n.d(e,"XhrFactory",function(){return I}),n.d(e,"HttpXsrfTokenExtractor",function(){return H}),n.d(e,"ɵa",function(){return E}),n.d(e,"ɵb",function(){return M}),n.d(e,"ɵc",function(){return jsonpCallbackContext}),n.d(e,"ɵd",function(){return D}),n.d(e,"ɵg",function(){return B}),n.d(e,"ɵh",function(){return L}),n.d(e,"ɵe",function(){return R}),n.d(e,"ɵf",function(){return j});/**
 * @license Angular v4.4.6
 * (c) 2010-2017 Google, Inc. https://angular.io/
 * License: MIT
 */
/**
 * @license
 * Copyright Google Inc. All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://angular.io/license
 */
var p=function(){function HttpHandler(){}return HttpHandler.prototype.handle=function(t){},HttpHandler}(),d=function(){function HttpBackend(){}return HttpBackend.prototype.handle=function(t){},HttpBackend}(),h=function(){function HttpUrlEncodingCodec(){}return HttpUrlEncodingCodec.prototype.encodeKey=function(t){return standardEncoding(t)},HttpUrlEncodingCodec.prototype.encodeValue=function(t){return standardEncoding(t)},HttpUrlEncodingCodec.prototype.decodeKey=function(t){return decodeURIComponent(t)},HttpUrlEncodingCodec.prototype.decodeValue=function(t){return decodeURIComponent(t)},HttpUrlEncodingCodec}(),m=function(){function HttpParams(t){void 0===t&&(t={}),this.updates=null,this.cloneFrom=null,this.encoder=t.encoder||new h,this.map=t.fromString?paramParser(t.fromString,this.encoder):null}return HttpParams.prototype.has=function(t){return this.init(),this.map.has(t)},HttpParams.prototype.get=function(t){this.init();var e=this.map.get(t);return e?e[0]:null},HttpParams.prototype.getAll=function(t){return this.init(),this.map.get(t)||null},HttpParams.prototype.keys=function(){return this.init(),Array.from(this.map.keys())},HttpParams.prototype.append=function(t,e){return this.clone({param:t,value:e,op:"a"})},HttpParams.prototype.set=function(t,e){return this.clone({param:t,value:e,op:"s"})},HttpParams.prototype.delete=function(t,e){return this.clone({param:t,value:e,op:"d"})},HttpParams.prototype.toString=function(){var t=this;return this.init(),this.keys().map(function(e){var n=t.encoder.encodeKey(e);return t.map.get(e).map(function(e){return n+"="+t.encoder.encodeValue(e)}).join("&")}).join("&")},HttpParams.prototype.clone=function(t){var e=new HttpParams({encoder:this.encoder});return e.cloneFrom=this.cloneFrom||this,e.updates=(this.updates||[]).concat([t]),e},HttpParams.prototype.init=function(){var t=this;null===this.map&&(this.map=new Map),null!==this.cloneFrom&&(this.cloneFrom.init(),this.cloneFrom.keys().forEach(function(e){return t.map.set(e,t.cloneFrom.map.get(e))}),this.updates.forEach(function(e){switch(e.op){case"a":case"s":var n=("a"===e.op?t.map.get(e.param):void 0)||[];n.push(e.value),t.map.set(e.param,n);break;case"d":if(void 0===e.value){t.map.delete(e.param);break}var r=t.map.get(e.param)||[],o=r.indexOf(e.value);-1!==o&&r.splice(o,1),r.length>0?t.map.set(e.param,r):t.map.delete(e.param)}}),this.cloneFrom=null)},HttpParams}(),f=function(){function HttpHeaders(t){var e=this;this.normalizedNames=new Map,this.lazyUpdate=null,t?this.lazyInit="string"==typeof t?function(){e.headers=new Map,t.split("\n").forEach(function(t){var n=t.indexOf(":");if(n>0){var r=t.slice(0,n),o=r.toLowerCase(),i=t.slice(n+1).trim();e.maybeSetNormalizedName(r,o),e.headers.has(o)?e.headers.get(o).push(i):e.headers.set(o,[i])}})}:function(){e.headers=new Map,Object.keys(t).forEach(function(n){var r=t[n],o=n.toLowerCase();"string"==typeof r&&(r=[r]),r.length>0&&(e.headers.set(o,r),e.maybeSetNormalizedName(n,o))})}:this.headers=new Map}return HttpHeaders.prototype.has=function(t){return this.init(),this.headers.has(t.toLowerCase())},HttpHeaders.prototype.get=function(t){this.init();var e=this.headers.get(t.toLowerCase());return e&&e.length>0?e[0]:null},HttpHeaders.prototype.keys=function(){return this.init(),Array.from(this.normalizedNames.values())},HttpHeaders.prototype.getAll=function(t){return this.init(),this.headers.get(t.toLowerCase())||null},HttpHeaders.prototype.append=function(t,e){return this.clone({name:t,value:e,op:"a"})},HttpHeaders.prototype.set=function(t,e){return this.clone({name:t,value:e,op:"s"})},HttpHeaders.prototype.delete=function(t,e){return this.clone({name:t,value:e,op:"d"})},HttpHeaders.prototype.maybeSetNormalizedName=function(t,e){this.normalizedNames.has(e)||this.normalizedNames.set(e,t)},HttpHeaders.prototype.init=function(){var t=this;this.lazyInit&&(this.lazyInit instanceof HttpHeaders?this.copyFrom(this.lazyInit):this.lazyInit(),this.lazyInit=null,this.lazyUpdate&&(this.lazyUpdate.forEach(function(e){return t.applyUpdate(e)}),this.lazyUpdate=null))},HttpHeaders.prototype.copyFrom=function(t){var e=this;t.init(),Array.from(t.headers.keys()).forEach(function(n){e.headers.set(n,t.headers.get(n)),e.normalizedNames.set(n,t.normalizedNames.get(n))})},HttpHeaders.prototype.clone=function(t){var e=new HttpHeaders;return e.lazyInit=this.lazyInit&&this.lazyInit instanceof HttpHeaders?this.lazyInit:this,e.lazyUpdate=(this.lazyUpdate||[]).concat([t]),e},HttpHeaders.prototype.applyUpdate=function(t){var e=t.name.toLowerCase();switch(t.op){case"a":case"s":var n=t.value;if("string"==typeof n&&(n=[n]),0===n.length)return;this.maybeSetNormalizedName(t.name,e);var r=("a"===t.op?this.headers.get(e):void 0)||[];r.push.apply(r,n),this.headers.set(e,r);break;case"d":var o=t.value;if(o){var i=this.headers.get(e);if(!i)return;i=i.filter(function(t){return-1===o.indexOf(t)}),0===i.length?(this.headers.delete(e),this.normalizedNames.delete(e)):this.headers.set(e,i)}else this.headers.delete(e),this.normalizedNames.delete(e)}},HttpHeaders.prototype.forEach=function(t){var e=this;this.init(),Array.from(this.normalizedNames.keys()).forEach(function(n){return t(e.normalizedNames.get(n),e.headers.get(n))})},HttpHeaders}(),y=function(){function HttpRequest(t,e,n,r){this.url=e,this.body=null,this.reportProgress=!1,this.withCredentials=!1,this.responseType="json",this.method=t.toUpperCase();var o;if(mightHaveBody(this.method)||r?(this.body=n||null,o=r):o=n,o&&(this.reportProgress=!!o.reportProgress,this.withCredentials=!!o.withCredentials,o.responseType&&(this.responseType=o.responseType),o.headers&&(this.headers=o.headers),o.params&&(this.params=o.params)),this.headers||(this.headers=new f),this.params){var i=this.params.toString();if(0===i.length)this.urlWithParams=e;else{var s=e.indexOf("?"),a=-1===s?"?":s<e.length-1?"&":"";this.urlWithParams=e+a+i}}else this.params=new m,this.urlWithParams=e}return HttpRequest.prototype.serializeBody=function(){return null===this.body?null:isArrayBuffer(this.body)||isBlob(this.body)||isFormData(this.body)||"string"==typeof this.body?this.body:this.body instanceof m?this.body.toString():"object"==typeof this.body||"boolean"==typeof this.body||Array.isArray(this.body)?JSON.stringify(this.body):this.body.toString()},HttpRequest.prototype.detectContentTypeHeader=function(){return null===this.body?null:isFormData(this.body)?null:isBlob(this.body)?this.body.type||null:isArrayBuffer(this.body)?null:"string"==typeof this.body?"text/plain":this.body instanceof m?"application/x-www-form-urlencoded;charset=UTF-8":"object"==typeof this.body||"number"==typeof this.body||Array.isArray(this.body)?"application/json":null},HttpRequest.prototype.clone=function(t){void 0===t&&(t={});var e=t.method||this.method,n=t.url||this.url,r=t.responseType||this.responseType,o=void 0!==t.body?t.body:this.body,i=void 0!==t.withCredentials?t.withCredentials:this.withCredentials,s=void 0!==t.reportProgress?t.reportProgress:this.reportProgress,a=t.headers||this.headers,u=t.params||this.params;return void 0!==t.setHeaders&&(a=Object.keys(t.setHeaders).reduce(function(e,n){return e.set(n,t.setHeaders[n])},a)),t.setParams&&(u=Object.keys(t.setParams).reduce(function(e,n){return e.set(n,t.setParams[n])},u)),new HttpRequest(e,n,o,{params:u,headers:a,reportProgress:s,responseType:r,withCredentials:i})},HttpRequest}(),g={};g.Sent=0,g.UploadProgress=1,g.ResponseHeader=2,g.DownloadProgress=3,g.Response=4,g.User=5,g[g.Sent]="Sent",g[g.UploadProgress]="UploadProgress",g[g.ResponseHeader]="ResponseHeader",g[g.DownloadProgress]="DownloadProgress",g[g.Response]="Response",g[g.User]="User";var v=function(){function HttpResponseBase(t,e,n){void 0===e&&(e=200),void 0===n&&(n="OK"),this.headers=t.headers||new f,this.status=void 0!==t.status?t.status:e,this.statusText=t.statusText||n,this.url=t.url||null,this.ok=this.status>=200&&this.status<300}return HttpResponseBase}(),b=function(t){function HttpHeaderResponse(e){void 0===e&&(e={});var n=t.call(this,e)||this;return n.type=g.ResponseHeader,n}return r.a(HttpHeaderResponse,t),HttpHeaderResponse.prototype.clone=function(t){return void 0===t&&(t={}),new HttpHeaderResponse({headers:t.headers||this.headers,status:void 0!==t.status?t.status:this.status,statusText:t.statusText||this.statusText,url:t.url||this.url||void 0})},HttpHeaderResponse}(v),_=function(t){function HttpResponse(e){void 0===e&&(e={});var n=t.call(this,e)||this;return n.type=g.Response,n.body=e.body||null,n}return r.a(HttpResponse,t),HttpResponse.prototype.clone=function(t){return void 0===t&&(t={}),new HttpResponse({body:void 0!==t.body?t.body:this.body,headers:t.headers||this.headers,status:void 0!==t.status?t.status:this.status,statusText:t.statusText||this.statusText,url:t.url||this.url||void 0})},HttpResponse}(v),C=function(t){function HttpErrorResponse(e){var n=t.call(this,e,0,"Unknown Error")||this;return n.name="HttpErrorResponse",n.ok=!1,n.status>=200&&n.status<300?n.message="Http failure during parsing for "+(e.url||"(unknown url)"):n.message="Http failure response for "+(e.url||"(unknown url)")+": "+e.status+" "+e.statusText,n.error=e.error||null,n}return r.a(HttpErrorResponse,t),HttpErrorResponse}(v),S=function(){function HttpClient(t){this.handler=t}return HttpClient.prototype.request=function(t,e,r){var o=this;void 0===r&&(r={});var l;l=t instanceof y?t:new y(t,e,r.body||null,{headers:r.headers,params:r.params,reportProgress:r.reportProgress,responseType:r.responseType||"json",withCredentials:r.withCredentials});var c=s.concatMap.call(n.i(i.of)(l),function(t){return o.handler.handle(t)});if(t instanceof y||"events"===r.observe)return c;var p=a.filter.call(c,function(t){return t instanceof _});switch(r.observe||"body"){case"body":switch(l.responseType){case"arraybuffer":return u.map.call(p,function(t){if(null!==t.body&&!(t.body instanceof ArrayBuffer))throw new Error("Response is not an ArrayBuffer.");return t.body});case"blob":return u.map.call(p,function(t){if(null!==t.body&&!(t.body instanceof Blob))throw new Error("Response is not a Blob.");return t.body});case"text":return u.map.call(p,function(t){if(null!==t.body&&"string"!=typeof t.body)throw new Error("Response is not a string.");return t.body});case"json":default:return u.map.call(p,function(t){return t.body})}case"response":return p;default:throw new Error("Unreachable: unhandled observe type "+r.observe+"}")}},HttpClient.prototype.delete=function(t,e){return void 0===e&&(e={}),this.request("DELETE",t,e)},HttpClient.prototype.get=function(t,e){return void 0===e&&(e={}),this.request("GET",t,e)},HttpClient.prototype.head=function(t,e){return void 0===e&&(e={}),this.request("HEAD",t,e)},HttpClient.prototype.jsonp=function(t,e){return this.request("JSONP",t,{params:(new m).append(e,"JSONP_CALLBACK"),observe:"body",responseType:"json"})},HttpClient.prototype.options=function(t,e){return void 0===e&&(e={}),this.request("OPTIONS",t,e)},HttpClient.prototype.patch=function(t,e,n){return void 0===n&&(n={}),this.request("PATCH",t,addBody(n,e))},HttpClient.prototype.post=function(t,e,n){return void 0===n&&(n={}),this.request("POST",t,addBody(n,e))},HttpClient.prototype.put=function(t,e,n){return void 0===n&&(n={}),this.request("PUT",t,addBody(n,e))},HttpClient}();S.decorators=[{type:o.Injectable}],S.ctorParameters=function(){return[{type:p}]};/**
 * @license
 * Copyright Google Inc. All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://angular.io/license
 */
var A=function(){function HttpInterceptorHandler(t,e){this.next=t,this.interceptor=e}return HttpInterceptorHandler.prototype.handle=function(t){return this.interceptor.intercept(t,this.next)},HttpInterceptorHandler}(),T=new o.InjectionToken("HTTP_INTERCEPTORS"),E=function(){function NoopInterceptor(){}return NoopInterceptor.prototype.intercept=function(t,e){return e.handle(t)},NoopInterceptor}();E.decorators=[{type:o.Injectable}],E.ctorParameters=function(){return[]};/**
 * @license
 * Copyright Google Inc. All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://angular.io/license
 */
var P=0,w="JSONP injected script did not invoke callback.",x="JSONP requests must use JSONP request method.",O="JSONP requests must use Json response type.",M=function(){function JsonpCallbackContext(){}return JsonpCallbackContext}(),N=function(){function JsonpClientBackend(t,e){this.callbackMap=t,this.document=e}return JsonpClientBackend.prototype.nextCallback=function(){return"ng_jsonp_callback_"+P++},JsonpClientBackend.prototype.handle=function(t){var e=this;if("JSONP"!==t.method)throw new Error(x);if("json"!==t.responseType)throw new Error(O);return new c.Observable(function(n){var r=e.nextCallback(),o=t.urlWithParams.replace(/=JSONP_CALLBACK(&|$)/,"="+r+"$1"),i=e.document.createElement("script");i.src=o;var s=null,a=!1,u=!1;e.callbackMap[r]=function(t){delete e.callbackMap[r],u||(s=t,a=!0)};var l=function(){i.parentNode&&i.parentNode.removeChild(i),delete e.callbackMap[r]},c=function(t){if(!u){if(l(),!a)return void n.error(new C({url:o,status:0,statusText:"JSONP Error",error:new Error(w)}));n.next(new _({body:s,status:200,statusText:"OK",url:o})),n.complete()}},p=function(t){u||(l(),n.error(new C({error:t,status:0,statusText:"JSONP Error",url:o})))};return i.addEventListener("load",c),i.addEventListener("error",p),e.document.body.appendChild(i),n.next({type:g.Sent}),function(){u=!0,i.removeEventListener("load",c),i.removeEventListener("error",p),l()}})},JsonpClientBackend}();N.decorators=[{type:o.Injectable}],N.ctorParameters=function(){return[{type:M},{type:void 0,decorators:[{type:o.Inject,args:[l.DOCUMENT]}]}]};var F=function(){function JsonpInterceptor(t){this.jsonp=t}return JsonpInterceptor.prototype.intercept=function(t,e){return"JSONP"===t.method?this.jsonp.handle(t):e.handle(t)},JsonpInterceptor}();F.decorators=[{type:o.Injectable}],F.ctorParameters=function(){return[{type:N}]};/**
 * @license
 * Copyright Google Inc. All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://angular.io/license
 */
var V=/^\)\]\}',?\n/,I=function(){function XhrFactory(){}return XhrFactory.prototype.build=function(){},XhrFactory}(),D=function(){function BrowserXhr(){}return BrowserXhr.prototype.build=function(){return new XMLHttpRequest},BrowserXhr}();D.decorators=[{type:o.Injectable}],D.ctorParameters=function(){return[]};var k=function(){function HttpXhrBackend(t){this.xhrFactory=t}return HttpXhrBackend.prototype.handle=function(t){var e=this;if("JSONP"===t.method)throw new Error("Attempted to construct Jsonp request without JsonpClientModule installed.");return new c.Observable(function(n){var r=e.xhrFactory.build();if(r.open(t.method,t.urlWithParams),t.withCredentials&&(r.withCredentials=!0),t.headers.forEach(function(t,e){return r.setRequestHeader(t,e.join(","))}),t.headers.has("Accept")||r.setRequestHeader("Accept","application/json, text/plain, */*"),!t.headers.has("Content-Type")){var o=t.detectContentTypeHeader();null!==o&&r.setRequestHeader("Content-Type",o)}if(t.responseType){var i=t.responseType.toLowerCase();r.responseType="json"!==i?i:"text"}var s=t.serializeBody(),a=null,u=function(){if(null!==a)return a;var e=1223===r.status?204:r.status,n=r.statusText||"OK",o=new f(r.getAllResponseHeaders()),i=getResponseUrl(r)||t.url;return a=new b({headers:o,status:e,statusText:n,url:i})},l=function(){var e=u(),o=e.headers,i=e.status,s=e.statusText,a=e.url,l=null;204!==i&&(l=void 0===r.response?r.responseText:r.response),0===i&&(i=l?200:0);var c=i>=200&&i<300;if(c&&"json"===t.responseType&&"string"==typeof l){l=l.replace(V,"");try{l=JSON.parse(l)}catch(t){c=!1,l={error:t,text:l}}}else if(!c&&"json"===t.responseType&&"string"==typeof l)try{l=JSON.parse(l)}catch(t){}c?(n.next(new _({body:l,headers:o,status:i,statusText:s,url:a||void 0})),n.complete()):n.error(new C({error:l,headers:o,status:i,statusText:s,url:a||void 0}))},c=function(t){var e=new C({error:t,status:r.status||0,statusText:r.statusText||"Unknown Error"});n.error(e)},p=!1,d=function(e){p||(n.next(u()),p=!0);var o={type:g.DownloadProgress,loaded:e.loaded};e.lengthComputable&&(o.total=e.total),"text"===t.responseType&&r.responseText&&(o.partialText=r.responseText),n.next(o)},h=function(t){var e={type:g.UploadProgress,loaded:t.loaded};t.lengthComputable&&(e.total=t.total),n.next(e)};return r.addEventListener("load",l),r.addEventListener("error",c),t.reportProgress&&(r.addEventListener("progress",d),null!==s&&r.upload&&r.upload.addEventListener("progress",h)),r.send(s),n.next({type:g.Sent}),function(){r.removeEventListener("error",c),r.removeEventListener("load",l),t.reportProgress&&(r.removeEventListener("progress",d),null!==s&&r.upload&&r.upload.removeEventListener("progress",h)),r.abort()}})},HttpXhrBackend}();k.decorators=[{type:o.Injectable}],k.ctorParameters=function(){return[{type:I}]};/**
 * @license
 * Copyright Google Inc. All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://angular.io/license
 */
var R=new o.InjectionToken("XSRF_COOKIE_NAME"),j=new o.InjectionToken("XSRF_HEADER_NAME"),H=function(){function HttpXsrfTokenExtractor(){}return HttpXsrfTokenExtractor.prototype.getToken=function(){},HttpXsrfTokenExtractor}(),B=function(){function HttpXsrfCookieExtractor(t,e,n){this.doc=t,this.platform=e,this.cookieName=n,this.lastCookieString="",this.lastToken=null,this.parseCount=0}return HttpXsrfCookieExtractor.prototype.getToken=function(){if("server"===this.platform)return null;var t=this.doc.cookie||"";return t!==this.lastCookieString&&(this.parseCount++,this.lastToken=n.i(l["ɵparseCookieValue"])(t,this.cookieName),this.lastCookieString=t),this.lastToken},HttpXsrfCookieExtractor}();B.decorators=[{type:o.Injectable}],B.ctorParameters=function(){return[{type:void 0,decorators:[{type:o.Inject,args:[l.DOCUMENT]}]},{type:void 0,decorators:[{type:o.Inject,args:[o.PLATFORM_ID]}]},{type:void 0,decorators:[{type:o.Inject,args:[R]}]}]};var L=function(){function HttpXsrfInterceptor(t,e){this.tokenService=t,this.headerName=e}return HttpXsrfInterceptor.prototype.intercept=function(t,e){var n=t.url.toLowerCase();if("GET"===t.method||"HEAD"===t.method||n.startsWith("http://")||n.startsWith("https://"))return e.handle(t);var r=this.tokenService.getToken();return null===r||t.headers.has(this.headerName)||(t=t.clone({headers:t.headers.set(this.headerName,r)})),e.handle(t)},HttpXsrfInterceptor}();L.decorators=[{type:o.Injectable}],L.ctorParameters=function(){return[{type:H},{type:void 0,decorators:[{type:o.Inject,args:[j]}]}]};var G=function(){function HttpClientXsrfModule(){}return HttpClientXsrfModule.disable=function(){return{ngModule:HttpClientXsrfModule,providers:[{provide:L,useClass:E}]}},HttpClientXsrfModule.withOptions=function(t){return void 0===t&&(t={}),{ngModule:HttpClientXsrfModule,providers:[t.cookieName?{provide:R,useValue:t.cookieName}:[],t.headerName?{provide:j,useValue:t.headerName}:[]]}},HttpClientXsrfModule}();G.decorators=[{type:o.NgModule,args:[{providers:[L,{provide:T,useExisting:L,multi:!0},{provide:H,useClass:B},{provide:R,useValue:"XSRF-TOKEN"},{provide:j,useValue:"X-XSRF-TOKEN"}]}]}],G.ctorParameters=function(){return[]};var U=function(){function HttpClientModule(){}return HttpClientModule}();U.decorators=[{type:o.NgModule,args:[{imports:[G.withOptions({cookieName:"XSRF-TOKEN",headerName:"X-XSRF-TOKEN"})],providers:[S,{provide:p,useFactory:interceptingHandler,deps:[d,[new o.Optional,new o.Inject(T)]]},k,{provide:d,useExisting:k},D,{provide:I,useExisting:D}]}]}],U.ctorParameters=function(){return[]};var z=function(){function HttpClientJsonpModule(){}return HttpClientJsonpModule}();z.decorators=[{type:o.NgModule,args:[{providers:[N,{provide:M,useFactory:jsonpCallbackContext},{provide:T,useClass:F,multi:!0}]}]}],z.ctorParameters=function(){return[]}},103:function(t,e,n){"use strict";/**
 * @license
 * Copyright Google Inc. All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://angular.io/license
 */
function isEmptyInputValue(t){return null==t||0===t.length}function isPresent(t){return null!=t}function toObservable(t){var e=n.i(o["ɵisPromise"])(t)?n.i(s.fromPromise)(t):t;if(!n.i(o["ɵisObservable"])(e))throw new Error("Expected validator to return Promise or Observable.");return e}function _executeValidators(t,e){return e.map(function(e){return e(t)})}function _executeAsyncValidators(t,e){return e.map(function(e){return e(t)})}function _mergeErrors(t){var e=t.reduce(function(t,e){return null!=e?Object.assign({},t,e):t},{});return 0===Object.keys(e).length?null:e}function _isAndroid(){return/android (\d+)/.test((n.i(u["ɵgetDOM"])()?n.i(u["ɵgetDOM"])().getUserAgent():"").toLowerCase())}/**
 * @license
 * Copyright Google Inc. All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://angular.io/license
 */
function normalizeValidator(t){return t.validate?function(e){return t.validate(e)}:t}function normalizeAsyncValidator(t){return t.validate?function(e){return t.validate(e)}:t}/**
 * @license
 * Copyright Google Inc. All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://angular.io/license
 */
function unimplemented(){throw new Error("unimplemented")}function _buildValueString(t,e){return null==t?""+e:(e&&"object"==typeof e&&(e="Object"),(t+": "+e).slice(0,50))}function _extractId(t){return t.split(":")[0]}function _buildValueString$1(t,e){return null==t?""+e:("string"==typeof e&&(e="'"+e+"'"),e&&"object"==typeof e&&(e="Object"),(t+": "+e).slice(0,50))}function _extractId$1(t){return t.split(":")[0]}/**
 * @license
 * Copyright Google Inc. All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://angular.io/license
 */
function controlPath(t,e){return e.path.concat([t])}function setUpControl(t,e){t||_throwError(e,"Cannot find control with"),e.valueAccessor||_throwError(e,"No value accessor for form control with"),t.validator=m.compose([t.validator,e.validator]),t.asyncValidator=m.composeAsync([t.asyncValidator,e.asyncValidator]),e.valueAccessor.writeValue(t.value),e.valueAccessor.registerOnChange(function(n){e.viewToModelUpdate(n),t.markAsDirty(),t.setValue(n,{emitModelToViewChange:!1})}),e.valueAccessor.registerOnTouched(function(){return t.markAsTouched()}),t.registerOnChange(function(t,n){e.valueAccessor.writeValue(t),n&&e.viewToModelUpdate(t)}),e.valueAccessor.setDisabledState&&t.registerOnDisabledChange(function(t){e.valueAccessor.setDisabledState(t)}),e._rawValidators.forEach(function(e){e.registerOnValidatorChange&&e.registerOnValidatorChange(function(){return t.updateValueAndValidity()})}),e._rawAsyncValidators.forEach(function(e){e.registerOnValidatorChange&&e.registerOnValidatorChange(function(){return t.updateValueAndValidity()})})}function cleanUpControl(t,e){e.valueAccessor.registerOnChange(function(){return _noControlError(e)}),e.valueAccessor.registerOnTouched(function(){return _noControlError(e)}),e._rawValidators.forEach(function(t){t.registerOnValidatorChange&&t.registerOnValidatorChange(null)}),e._rawAsyncValidators.forEach(function(t){t.registerOnValidatorChange&&t.registerOnValidatorChange(null)}),t&&t._clearChangeFns()}function setUpFormContainer(t,e){null==t&&_throwError(e,"Cannot find control with"),t.validator=m.compose([t.validator,e.validator]),t.asyncValidator=m.composeAsync([t.asyncValidator,e.asyncValidator])}function _noControlError(t){return _throwError(t,"There is no FormControl instance attached to form control element with")}function _throwError(t,e){var n;throw n=t.path.length>1?"path: '"+t.path.join(" -> ")+"'":t.path[0]?"name: '"+t.path+"'":"unspecified name attribute",new Error(e+" "+n)}function composeValidators(t){return null!=t?m.compose(t.map(normalizeValidator)):null}function composeAsyncValidators(t){return null!=t?m.composeAsync(t.map(normalizeAsyncValidator)):null}function isPropertyUpdated(t,e){if(!t.hasOwnProperty("model"))return!1;var r=t.model;return!!r.isFirstChange()||!n.i(o["ɵlooseIdentical"])(e,r.currentValue)}function isBuiltInAccessor(t){return D.some(function(e){return t.constructor===e})}function selectValueAccessor(t,e){if(!e)return null;var n=void 0,r=void 0,o=void 0;return e.forEach(function(e){e.constructor===_?n=e:isBuiltInAccessor(e)?(r&&_throwError(t,"More than one built-in value accessor matches form control with"),r=e):(o&&_throwError(t,"More than one custom value accessor matches form control with"),o=e)}),o||(r||(n||(_throwError(t,"No valid value accessor for form control with"),null)))}function _find(t,e,n){return null==e?null:(e instanceof Array||(e=e.split(n)),e instanceof Array&&0===e.length?null:e.reduce(function(t,e){return t instanceof K?t.controls[e]||null:t instanceof J?t.at(e)||null:null},t))}function coerceToValidator(t){return Array.isArray(t)?composeValidators(t):t||null}function coerceToAsyncValidator(t){return Array.isArray(t)?composeAsyncValidators(t):t||null}function remove(t,e){var n=t.indexOf(e);n>-1&&t.splice(n,1)}function _hasInvalidParent(t){return!(t instanceof pt||t instanceof lt||t instanceof ht)}Object.defineProperty(e,"__esModule",{value:!0});var r=n(17),o=n(2),i=n(126),s=(n.n(i),n(78)),a=(n.n(s),n(54)),u=(n.n(a),n(22));n.d(e,"AbstractControlDirective",function(){return l}),n.d(e,"AbstractFormGroupDirective",function(){return k}),n.d(e,"CheckboxControlValueAccessor",function(){return g}),n.d(e,"ControlContainer",function(){return c}),n.d(e,"NG_VALUE_ACCESSOR",function(){return f}),n.d(e,"COMPOSITION_BUFFER_MODE",function(){return b}),n.d(e,"DefaultValueAccessor",function(){return _}),n.d(e,"NgControl",function(){return A}),n.d(e,"NgControlStatus",function(){return H}),n.d(e,"NgControlStatusGroup",function(){return B}),n.d(e,"NgForm",function(){return $}),n.d(e,"NgModel",function(){return ot}),n.d(e,"NgModelGroup",function(){return et}),n.d(e,"RadioControlValueAccessor",function(){return P}),n.d(e,"FormControlDirective",function(){return at}),n.d(e,"FormControlName",function(){return ft}),n.d(e,"FormGroupDirective",function(){return lt}),n.d(e,"FormArrayName",function(){return ht}),n.d(e,"FormGroupName",function(){return pt}),n.d(e,"NgSelectOption",function(){return N}),n.d(e,"SelectControlValueAccessor",function(){return M}),n.d(e,"SelectMultipleControlValueAccessor",function(){return V}),n.d(e,"CheckboxRequiredValidator",function(){return bt}),n.d(e,"EmailValidator",function(){return Ct}),n.d(e,"MaxLengthValidator",function(){return Et}),n.d(e,"MinLengthValidator",function(){return At}),n.d(e,"PatternValidator",function(){return wt}),n.d(e,"RequiredValidator",function(){return vt}),n.d(e,"FormBuilder",function(){return xt}),n.d(e,"AbstractControl",function(){return q}),n.d(e,"FormArray",function(){return J}),n.d(e,"FormControl",function(){return W}),n.d(e,"FormGroup",function(){return K}),n.d(e,"NG_ASYNC_VALIDATORS",function(){return d}),n.d(e,"NG_VALIDATORS",function(){return p}),n.d(e,"Validators",function(){return m}),n.d(e,"VERSION",function(){return Ot}),n.d(e,"FormsModule",function(){return Dt}),n.d(e,"ReactiveFormsModule",function(){return kt}),n.d(e,"ɵba",function(){return It}),n.d(e,"ɵz",function(){return Vt}),n.d(e,"ɵx",function(){return Nt}),n.d(e,"ɵy",function(){return Ft}),n.d(e,"ɵa",function(){return y}),n.d(e,"ɵb",function(){return v}),n.d(e,"ɵc",function(){return R}),n.d(e,"ɵd",function(){return j}),n.d(e,"ɵe",function(){return Q}),n.d(e,"ɵf",function(){return nt}),n.d(e,"ɵg",function(){return tt}),n.d(e,"ɵbf",function(){return Mt}),n.d(e,"ɵbb",function(){return C}),n.d(e,"ɵbc",function(){return S}),n.d(e,"ɵh",function(){return T}),n.d(e,"ɵi",function(){return E}),n.d(e,"ɵbd",function(){return w}),n.d(e,"ɵbe",function(){return x}),n.d(e,"ɵj",function(){return st}),n.d(e,"ɵk",function(){return mt}),n.d(e,"ɵl",function(){return ut}),n.d(e,"ɵn",function(){return dt}),n.d(e,"ɵm",function(){return ct}),n.d(e,"ɵo",function(){return O}),n.d(e,"ɵq",function(){return I}),n.d(e,"ɵp",function(){return F}),n.d(e,"ɵs",function(){return gt}),n.d(e,"ɵt",function(){return _t}),n.d(e,"ɵv",function(){return Tt}),n.d(e,"ɵu",function(){return St}),n.d(e,"ɵw",function(){return Pt}),n.d(e,"ɵr",function(){return yt});/**
 * @license Angular v4.4.6
 * (c) 2010-2017 Google, Inc. https://angular.io/
 * License: MIT
 */
/**
 * @license
 * Copyright Google Inc. All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://angular.io/license
 */
var l=function(){function AbstractControlDirective(){}return AbstractControlDirective.prototype.control=function(){},Object.defineProperty(AbstractControlDirective.prototype,"value",{get:function(){return this.control?this.control.value:null},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractControlDirective.prototype,"valid",{get:function(){return this.control?this.control.valid:null},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractControlDirective.prototype,"invalid",{get:function(){return this.control?this.control.invalid:null},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractControlDirective.prototype,"pending",{get:function(){return this.control?this.control.pending:null},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractControlDirective.prototype,"disabled",{get:function(){return this.control?this.control.disabled:null},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractControlDirective.prototype,"enabled",{get:function(){return this.control?this.control.enabled:null},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractControlDirective.prototype,"errors",{get:function(){return this.control?this.control.errors:null},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractControlDirective.prototype,"pristine",{get:function(){return this.control?this.control.pristine:null},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractControlDirective.prototype,"dirty",{get:function(){return this.control?this.control.dirty:null},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractControlDirective.prototype,"touched",{get:function(){return this.control?this.control.touched:null},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractControlDirective.prototype,"untouched",{get:function(){return this.control?this.control.untouched:null},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractControlDirective.prototype,"statusChanges",{get:function(){return this.control?this.control.statusChanges:null},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractControlDirective.prototype,"valueChanges",{get:function(){return this.control?this.control.valueChanges:null},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractControlDirective.prototype,"path",{get:function(){return null},enumerable:!0,configurable:!0}),AbstractControlDirective.prototype.reset=function(t){void 0===t&&(t=void 0),this.control&&this.control.reset(t)},AbstractControlDirective.prototype.hasError=function(t,e){return!!this.control&&this.control.hasError(t,e)},AbstractControlDirective.prototype.getError=function(t,e){return this.control?this.control.getError(t,e):null},AbstractControlDirective}(),c=function(t){function ControlContainer(){return null!==t&&t.apply(this,arguments)||this}return r.a(ControlContainer,t),Object.defineProperty(ControlContainer.prototype,"formDirective",{get:function(){return null},enumerable:!0,configurable:!0}),Object.defineProperty(ControlContainer.prototype,"path",{get:function(){return null},enumerable:!0,configurable:!0}),ControlContainer}(l),p=new o.InjectionToken("NgValidators"),d=new o.InjectionToken("NgAsyncValidators"),h=/^(?=.{1,254}$)(?=.{1,64}@)[-!#$%&'*+\/0-9=?A-Z^_`a-z{|}~]+(\.[-!#$%&'*+\/0-9=?A-Z^_`a-z{|}~]+)*@[A-Za-z0-9]([A-Za-z0-9-]{0,61}[A-Za-z0-9])?(\.[A-Za-z0-9]([A-Za-z0-9-]{0,61}[A-Za-z0-9])?)*$/,m=function(){function Validators(){}return Validators.min=function(t){return function(e){if(isEmptyInputValue(e.value)||isEmptyInputValue(t))return null;var n=parseFloat(e.value);return!isNaN(n)&&n<t?{min:{min:t,actual:e.value}}:null}},Validators.max=function(t){return function(e){if(isEmptyInputValue(e.value)||isEmptyInputValue(t))return null;var n=parseFloat(e.value);return!isNaN(n)&&n>t?{max:{max:t,actual:e.value}}:null}},Validators.required=function(t){return isEmptyInputValue(t.value)?{required:!0}:null},Validators.requiredTrue=function(t){return!0===t.value?null:{required:!0}},Validators.email=function(t){return h.test(t.value)?null:{email:!0}},Validators.minLength=function(t){return function(e){if(isEmptyInputValue(e.value))return null;var n=e.value?e.value.length:0;return n<t?{minlength:{requiredLength:t,actualLength:n}}:null}},Validators.maxLength=function(t){return function(e){var n=e.value?e.value.length:0;return n>t?{maxlength:{requiredLength:t,actualLength:n}}:null}},Validators.pattern=function(t){if(!t)return Validators.nullValidator;var e,n;return"string"==typeof t?(n="^"+t+"$",e=new RegExp(n)):(n=t.toString(),e=t),function(t){if(isEmptyInputValue(t.value))return null;var r=t.value;return e.test(r)?null:{pattern:{requiredPattern:n,actualValue:r}}}},Validators.nullValidator=function(t){return null},Validators.compose=function(t){if(!t)return null;var e=t.filter(isPresent);return 0==e.length?null:function(t){return _mergeErrors(_executeValidators(t,e))}},Validators.composeAsync=function(t){if(!t)return null;var e=t.filter(isPresent);return 0==e.length?null:function(t){var r=_executeAsyncValidators(t,e).map(toObservable);return a.map.call(n.i(i.forkJoin)(r),_mergeErrors)}},Validators}(),f=new o.InjectionToken("NgValueAccessor"),y={provide:f,useExisting:n.i(o.forwardRef)(function(){return g}),multi:!0},g=function(){function CheckboxControlValueAccessor(t,e){this._renderer=t,this._elementRef=e,this.onChange=function(t){},this.onTouched=function(){}}return CheckboxControlValueAccessor.prototype.writeValue=function(t){this._renderer.setProperty(this._elementRef.nativeElement,"checked",t)},CheckboxControlValueAccessor.prototype.registerOnChange=function(t){this.onChange=t},CheckboxControlValueAccessor.prototype.registerOnTouched=function(t){this.onTouched=t},CheckboxControlValueAccessor.prototype.setDisabledState=function(t){this._renderer.setProperty(this._elementRef.nativeElement,"disabled",t)},CheckboxControlValueAccessor}();g.decorators=[{type:o.Directive,args:[{selector:"input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]",host:{"(change)":"onChange($event.target.checked)","(blur)":"onTouched()"},providers:[y]}]}],g.ctorParameters=function(){return[{type:o.Renderer2},{type:o.ElementRef}]};/**
 * @license
 * Copyright Google Inc. All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://angular.io/license
 */
var v={provide:f,useExisting:n.i(o.forwardRef)(function(){return _}),multi:!0},b=new o.InjectionToken("CompositionEventMode"),_=function(){function DefaultValueAccessor(t,e,n){this._renderer=t,this._elementRef=e,this._compositionMode=n,this.onChange=function(t){},this.onTouched=function(){},this._composing=!1,null==this._compositionMode&&(this._compositionMode=!_isAndroid())}return DefaultValueAccessor.prototype.writeValue=function(t){var e=null==t?"":t;this._renderer.setProperty(this._elementRef.nativeElement,"value",e)},DefaultValueAccessor.prototype.registerOnChange=function(t){this.onChange=t},DefaultValueAccessor.prototype.registerOnTouched=function(t){this.onTouched=t},DefaultValueAccessor.prototype.setDisabledState=function(t){this._renderer.setProperty(this._elementRef.nativeElement,"disabled",t)},DefaultValueAccessor.prototype._handleInput=function(t){(!this._compositionMode||this._compositionMode&&!this._composing)&&this.onChange(t)},DefaultValueAccessor.prototype._compositionStart=function(){this._composing=!0},DefaultValueAccessor.prototype._compositionEnd=function(t){this._composing=!1,this._compositionMode&&this.onChange(t)},DefaultValueAccessor}();_.decorators=[{type:o.Directive,args:[{selector:"input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]",host:{"(input)":"_handleInput($event.target.value)","(blur)":"onTouched()","(compositionstart)":"_compositionStart()","(compositionend)":"_compositionEnd($event.target.value)"},providers:[v]}]}],_.ctorParameters=function(){return[{type:o.Renderer2},{type:o.ElementRef},{type:void 0,decorators:[{type:o.Optional},{type:o.Inject,args:[b]}]}]};/**
 * @license
 * Copyright Google Inc. All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://angular.io/license
 */
var C={provide:f,useExisting:n.i(o.forwardRef)(function(){return S}),multi:!0},S=function(){function NumberValueAccessor(t,e){this._renderer=t,this._elementRef=e,this.onChange=function(t){},this.onTouched=function(){}}return NumberValueAccessor.prototype.writeValue=function(t){var e=null==t?"":t;this._renderer.setProperty(this._elementRef.nativeElement,"value",e)},NumberValueAccessor.prototype.registerOnChange=function(t){this.onChange=function(e){t(""==e?null:parseFloat(e))}},NumberValueAccessor.prototype.registerOnTouched=function(t){this.onTouched=t},NumberValueAccessor.prototype.setDisabledState=function(t){this._renderer.setProperty(this._elementRef.nativeElement,"disabled",t)},NumberValueAccessor}();S.decorators=[{type:o.Directive,args:[{selector:"input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]",host:{"(change)":"onChange($event.target.value)","(input)":"onChange($event.target.value)","(blur)":"onTouched()"},providers:[C]}]}],S.ctorParameters=function(){return[{type:o.Renderer2},{type:o.ElementRef}]};var A=function(t){function NgControl(){var e=t.apply(this,arguments)||this;return e._parent=null,e.name=null,e.valueAccessor=null,e._rawValidators=[],e._rawAsyncValidators=[],e}return r.a(NgControl,t),Object.defineProperty(NgControl.prototype,"validator",{get:function(){return unimplemented()},enumerable:!0,configurable:!0}),Object.defineProperty(NgControl.prototype,"asyncValidator",{get:function(){return unimplemented()},enumerable:!0,configurable:!0}),NgControl.prototype.viewToModelUpdate=function(t){},NgControl}(l),T={provide:f,useExisting:n.i(o.forwardRef)(function(){return P}),multi:!0},E=function(){function RadioControlRegistry(){this._accessors=[]}return RadioControlRegistry.prototype.add=function(t,e){this._accessors.push([t,e])},RadioControlRegistry.prototype.remove=function(t){for(var e=this._accessors.length-1;e>=0;--e)if(this._accessors[e][1]===t)return void this._accessors.splice(e,1)},RadioControlRegistry.prototype.select=function(t){var e=this;this._accessors.forEach(function(n){e._isSameGroup(n,t)&&n[1]!==t&&n[1].fireUncheck(t.value)})},RadioControlRegistry.prototype._isSameGroup=function(t,e){return!!t[0].control&&(t[0]._parent===e._control._parent&&t[1].name===e.name)},RadioControlRegistry}();E.decorators=[{type:o.Injectable}],E.ctorParameters=function(){return[]};var P=function(){function RadioControlValueAccessor(t,e,n,r){this._renderer=t,this._elementRef=e,this._registry=n,this._injector=r,this.onChange=function(){},this.onTouched=function(){}}return RadioControlValueAccessor.prototype.ngOnInit=function(){this._control=this._injector.get(A),this._checkName(),this._registry.add(this._control,this)},RadioControlValueAccessor.prototype.ngOnDestroy=function(){this._registry.remove(this)},RadioControlValueAccessor.prototype.writeValue=function(t){this._state=t===this.value,this._renderer.setProperty(this._elementRef.nativeElement,"checked",this._state)},RadioControlValueAccessor.prototype.registerOnChange=function(t){var e=this;this._fn=t,this.onChange=function(){t(e.value),e._registry.select(e)}},RadioControlValueAccessor.prototype.fireUncheck=function(t){this.writeValue(t)},RadioControlValueAccessor.prototype.registerOnTouched=function(t){this.onTouched=t},RadioControlValueAccessor.prototype.setDisabledState=function(t){this._renderer.setProperty(this._elementRef.nativeElement,"disabled",t)},RadioControlValueAccessor.prototype._checkName=function(){this.name&&this.formControlName&&this.name!==this.formControlName&&this._throwNameError(),!this.name&&this.formControlName&&(this.name=this.formControlName)},RadioControlValueAccessor.prototype._throwNameError=function(){throw new Error('\n      If you define both a name and a formControlName attribute on your radio button, their values\n      must match. Ex: <input type="radio" formControlName="food" name="food">\n    ')},RadioControlValueAccessor}();P.decorators=[{type:o.Directive,args:[{selector:"input[type=radio][formControlName],input[type=radio][formControl],input[type=radio][ngModel]",host:{"(change)":"onChange()","(blur)":"onTouched()"},providers:[T]}]}],P.ctorParameters=function(){return[{type:o.Renderer2},{type:o.ElementRef},{type:E},{type:o.Injector}]},P.propDecorators={name:[{type:o.Input}],formControlName:[{type:o.Input}],value:[{type:o.Input}]};/**
 * @license
 * Copyright Google Inc. All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://angular.io/license
 */
var w={provide:f,useExisting:n.i(o.forwardRef)(function(){return x}),multi:!0},x=function(){function RangeValueAccessor(t,e){this._renderer=t,this._elementRef=e,this.onChange=function(t){},this.onTouched=function(){}}return RangeValueAccessor.prototype.writeValue=function(t){this._renderer.setProperty(this._elementRef.nativeElement,"value",parseFloat(t))},RangeValueAccessor.prototype.registerOnChange=function(t){this.onChange=function(e){t(""==e?null:parseFloat(e))}},RangeValueAccessor.prototype.registerOnTouched=function(t){this.onTouched=t},RangeValueAccessor.prototype.setDisabledState=function(t){this._renderer.setProperty(this._elementRef.nativeElement,"disabled",t)},RangeValueAccessor}();x.decorators=[{type:o.Directive,args:[{selector:"input[type=range][formControlName],input[type=range][formControl],input[type=range][ngModel]",host:{"(change)":"onChange($event.target.value)","(input)":"onChange($event.target.value)","(blur)":"onTouched()"},providers:[w]}]}],x.ctorParameters=function(){return[{type:o.Renderer2},{type:o.ElementRef}]};/**
 * @license
 * Copyright Google Inc. All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://angular.io/license
 */
var O={provide:f,useExisting:n.i(o.forwardRef)(function(){return M}),multi:!0},M=function(){function SelectControlValueAccessor(t,e){this._renderer=t,this._elementRef=e,this._optionMap=new Map,this._idCounter=0,this.onChange=function(t){},this.onTouched=function(){},this._compareWith=o["ɵlooseIdentical"]}return Object.defineProperty(SelectControlValueAccessor.prototype,"compareWith",{set:function(t){if("function"!=typeof t)throw new Error("compareWith must be a function, but received "+JSON.stringify(t));this._compareWith=t},enumerable:!0,configurable:!0}),SelectControlValueAccessor.prototype.writeValue=function(t){this.value=t;var e=this._getOptionId(t);null==e&&this._renderer.setProperty(this._elementRef.nativeElement,"selectedIndex",-1);var n=_buildValueString(e,t);this._renderer.setProperty(this._elementRef.nativeElement,"value",n)},SelectControlValueAccessor.prototype.registerOnChange=function(t){var e=this;this.onChange=function(n){e.value=e._getOptionValue(n),t(e.value)}},SelectControlValueAccessor.prototype.registerOnTouched=function(t){this.onTouched=t},SelectControlValueAccessor.prototype.setDisabledState=function(t){this._renderer.setProperty(this._elementRef.nativeElement,"disabled",t)},SelectControlValueAccessor.prototype._registerOption=function(){return(this._idCounter++).toString()},SelectControlValueAccessor.prototype._getOptionId=function(t){for(var e=0,n=Array.from(this._optionMap.keys());e<n.length;e++){var r=n[e];if(this._compareWith(this._optionMap.get(r),t))return r}return null},SelectControlValueAccessor.prototype._getOptionValue=function(t){var e=_extractId(t);return this._optionMap.has(e)?this._optionMap.get(e):t},SelectControlValueAccessor}();M.decorators=[{type:o.Directive,args:[{selector:"select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]",host:{"(change)":"onChange($event.target.value)","(blur)":"onTouched()"},providers:[O]}]}],M.ctorParameters=function(){return[{type:o.Renderer2},{type:o.ElementRef}]},M.propDecorators={compareWith:[{type:o.Input}]};var N=function(){function NgSelectOption(t,e,n){this._element=t,this._renderer=e,this._select=n,this._select&&(this.id=this._select._registerOption())}return Object.defineProperty(NgSelectOption.prototype,"ngValue",{set:function(t){null!=this._select&&(this._select._optionMap.set(this.id,t),this._setElementValue(_buildValueString(this.id,t)),this._select.writeValue(this._select.value))},enumerable:!0,configurable:!0}),Object.defineProperty(NgSelectOption.prototype,"value",{set:function(t){this._setElementValue(t),this._select&&this._select.writeValue(this._select.value)},enumerable:!0,configurable:!0}),NgSelectOption.prototype._setElementValue=function(t){this._renderer.setProperty(this._element.nativeElement,"value",t)},NgSelectOption.prototype.ngOnDestroy=function(){this._select&&(this._select._optionMap.delete(this.id),this._select.writeValue(this._select.value))},NgSelectOption}();N.decorators=[{type:o.Directive,args:[{selector:"option"}]}],N.ctorParameters=function(){return[{type:o.ElementRef},{type:o.Renderer2},{type:M,decorators:[{type:o.Optional},{type:o.Host}]}]},N.propDecorators={ngValue:[{type:o.Input,args:["ngValue"]}],value:[{type:o.Input,args:["value"]}]};/**
 * @license
 * Copyright Google Inc. All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://angular.io/license
 */
var F={provide:f,useExisting:n.i(o.forwardRef)(function(){return V}),multi:!0},V=function(){function SelectMultipleControlValueAccessor(t,e){this._renderer=t,this._elementRef=e,this._optionMap=new Map,this._idCounter=0,this.onChange=function(t){},this.onTouched=function(){},this._compareWith=o["ɵlooseIdentical"]}return Object.defineProperty(SelectMultipleControlValueAccessor.prototype,"compareWith",{set:function(t){if("function"!=typeof t)throw new Error("compareWith must be a function, but received "+JSON.stringify(t));this._compareWith=t},enumerable:!0,configurable:!0}),SelectMultipleControlValueAccessor.prototype.writeValue=function(t){var e=this;this.value=t;var n;if(Array.isArray(t)){var r=t.map(function(t){return e._getOptionId(t)});n=function(t,e){t._setSelected(r.indexOf(e.toString())>-1)}}else n=function(t,e){t._setSelected(!1)};this._optionMap.forEach(n)},SelectMultipleControlValueAccessor.prototype.registerOnChange=function(t){var e=this;this.onChange=function(n){var r=[];if(n.hasOwnProperty("selectedOptions"))for(var o=n.selectedOptions,i=0;i<o.length;i++){var s=o.item(i),a=e._getOptionValue(s.value);r.push(a)}else for(var o=n.options,i=0;i<o.length;i++){var s=o.item(i);if(s.selected){var a=e._getOptionValue(s.value);r.push(a)}}e.value=r,t(r)}},SelectMultipleControlValueAccessor.prototype.registerOnTouched=function(t){this.onTouched=t},SelectMultipleControlValueAccessor.prototype.setDisabledState=function(t){this._renderer.setProperty(this._elementRef.nativeElement,"disabled",t)},SelectMultipleControlValueAccessor.prototype._registerOption=function(t){var e=(this._idCounter++).toString();return this._optionMap.set(e,t),e},SelectMultipleControlValueAccessor.prototype._getOptionId=function(t){for(var e=0,n=Array.from(this._optionMap.keys());e<n.length;e++){var r=n[e];if(this._compareWith(this._optionMap.get(r)._value,t))return r}return null},SelectMultipleControlValueAccessor.prototype._getOptionValue=function(t){var e=_extractId$1(t);return this._optionMap.has(e)?this._optionMap.get(e)._value:t},SelectMultipleControlValueAccessor}();V.decorators=[{type:o.Directive,args:[{selector:"select[multiple][formControlName],select[multiple][formControl],select[multiple][ngModel]",host:{"(change)":"onChange($event.target)","(blur)":"onTouched()"},providers:[F]}]}],V.ctorParameters=function(){return[{type:o.Renderer2},{type:o.ElementRef}]},V.propDecorators={compareWith:[{type:o.Input}]};var I=function(){function NgSelectMultipleOption(t,e,n){this._element=t,this._renderer=e,this._select=n,this._select&&(this.id=this._select._registerOption(this))}return Object.defineProperty(NgSelectMultipleOption.prototype,"ngValue",{set:function(t){null!=this._select&&(this._value=t,this._setElementValue(_buildValueString$1(this.id,t)),this._select.writeValue(this._select.value))},enumerable:!0,configurable:!0}),Object.defineProperty(NgSelectMultipleOption.prototype,"value",{set:function(t){this._select?(this._value=t,this._setElementValue(_buildValueString$1(this.id,t)),this._select.writeValue(this._select.value)):this._setElementValue(t)},enumerable:!0,configurable:!0}),NgSelectMultipleOption.prototype._setElementValue=function(t){this._renderer.setProperty(this._element.nativeElement,"value",t)},NgSelectMultipleOption.prototype._setSelected=function(t){this._renderer.setProperty(this._element.nativeElement,"selected",t)},NgSelectMultipleOption.prototype.ngOnDestroy=function(){this._select&&(this._select._optionMap.delete(this.id),this._select.writeValue(this._select.value))},NgSelectMultipleOption}();I.decorators=[{type:o.Directive,args:[{selector:"option"}]}],I.ctorParameters=function(){return[{type:o.ElementRef},{type:o.Renderer2},{type:V,decorators:[{type:o.Optional},{type:o.Host}]}]},I.propDecorators={ngValue:[{type:o.Input,args:["ngValue"]}],value:[{type:o.Input,args:["value"]}]};var D=[g,x,S,M,V,P],k=function(t){function AbstractFormGroupDirective(){return null!==t&&t.apply(this,arguments)||this}return r.a(AbstractFormGroupDirective,t),AbstractFormGroupDirective.prototype.ngOnInit=function(){this._checkParentType(),this.formDirective.addFormGroup(this)},AbstractFormGroupDirective.prototype.ngOnDestroy=function(){this.formDirective&&this.formDirective.removeFormGroup(this)},Object.defineProperty(AbstractFormGroupDirective.prototype,"control",{get:function(){return this.formDirective.getFormGroup(this)},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractFormGroupDirective.prototype,"path",{get:function(){return controlPath(this.name,this._parent)},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractFormGroupDirective.prototype,"formDirective",{get:function(){return this._parent?this._parent.formDirective:null},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractFormGroupDirective.prototype,"validator",{get:function(){return composeValidators(this._validators)},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractFormGroupDirective.prototype,"asyncValidator",{get:function(){return composeAsyncValidators(this._asyncValidators)},enumerable:!0,configurable:!0}),AbstractFormGroupDirective.prototype._checkParentType=function(){},AbstractFormGroupDirective}(c),R=function(){function AbstractControlStatus(t){this._cd=t}return Object.defineProperty(AbstractControlStatus.prototype,"ngClassUntouched",{get:function(){return!!this._cd.control&&this._cd.control.untouched},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractControlStatus.prototype,"ngClassTouched",{get:function(){return!!this._cd.control&&this._cd.control.touched},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractControlStatus.prototype,"ngClassPristine",{get:function(){return!!this._cd.control&&this._cd.control.pristine},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractControlStatus.prototype,"ngClassDirty",{get:function(){return!!this._cd.control&&this._cd.control.dirty},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractControlStatus.prototype,"ngClassValid",{get:function(){return!!this._cd.control&&this._cd.control.valid},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractControlStatus.prototype,"ngClassInvalid",{get:function(){return!!this._cd.control&&this._cd.control.invalid},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractControlStatus.prototype,"ngClassPending",{get:function(){return!!this._cd.control&&this._cd.control.pending},enumerable:!0,configurable:!0}),AbstractControlStatus}(),j={"[class.ng-untouched]":"ngClassUntouched","[class.ng-touched]":"ngClassTouched","[class.ng-pristine]":"ngClassPristine","[class.ng-dirty]":"ngClassDirty","[class.ng-valid]":"ngClassValid","[class.ng-invalid]":"ngClassInvalid","[class.ng-pending]":"ngClassPending"},H=function(t){function NgControlStatus(e){return t.call(this,e)||this}return r.a(NgControlStatus,t),NgControlStatus}(R);H.decorators=[{type:o.Directive,args:[{selector:"[formControlName],[ngModel],[formControl]",host:j}]}],H.ctorParameters=function(){return[{type:A,decorators:[{type:o.Self}]}]};var B=function(t){function NgControlStatusGroup(e){return t.call(this,e)||this}return r.a(NgControlStatusGroup,t),NgControlStatusGroup}(R);B.decorators=[{type:o.Directive,args:[{selector:"[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]",host:j}]}],B.ctorParameters=function(){return[{type:c,decorators:[{type:o.Self}]}]};/**
 * @license
 * Copyright Google Inc. All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://angular.io/license
 */
var L="VALID",G="INVALID",U="PENDING",z="DISABLED",q=function(){function AbstractControl(t,e){this.validator=t,this.asyncValidator=e,this._onCollectionChange=function(){},this._pristine=!0,this._touched=!1,this._onDisabledChange=[]}return Object.defineProperty(AbstractControl.prototype,"value",{get:function(){return this._value},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractControl.prototype,"parent",{get:function(){return this._parent},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractControl.prototype,"status",{get:function(){return this._status},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractControl.prototype,"valid",{get:function(){return this._status===L},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractControl.prototype,"invalid",{get:function(){return this._status===G},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractControl.prototype,"pending",{get:function(){return this._status==U},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractControl.prototype,"disabled",{get:function(){return this._status===z},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractControl.prototype,"enabled",{get:function(){return this._status!==z},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractControl.prototype,"errors",{get:function(){return this._errors},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractControl.prototype,"pristine",{get:function(){return this._pristine},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractControl.prototype,"dirty",{get:function(){return!this.pristine},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractControl.prototype,"touched",{get:function(){return this._touched},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractControl.prototype,"untouched",{get:function(){return!this._touched},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractControl.prototype,"valueChanges",{get:function(){return this._valueChanges},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractControl.prototype,"statusChanges",{get:function(){return this._statusChanges},enumerable:!0,configurable:!0}),AbstractControl.prototype.setValidators=function(t){this.validator=coerceToValidator(t)},AbstractControl.prototype.setAsyncValidators=function(t){this.asyncValidator=coerceToAsyncValidator(t)},AbstractControl.prototype.clearValidators=function(){this.validator=null},AbstractControl.prototype.clearAsyncValidators=function(){this.asyncValidator=null},AbstractControl.prototype.markAsTouched=function(t){void 0===t&&(t={}),this._touched=!0,this._parent&&!t.onlySelf&&this._parent.markAsTouched(t)},AbstractControl.prototype.markAsUntouched=function(t){void 0===t&&(t={}),this._touched=!1,this._forEachChild(function(t){t.markAsUntouched({onlySelf:!0})}),this._parent&&!t.onlySelf&&this._parent._updateTouched(t)},AbstractControl.prototype.markAsDirty=function(t){void 0===t&&(t={}),this._pristine=!1,this._parent&&!t.onlySelf&&this._parent.markAsDirty(t)},AbstractControl.prototype.markAsPristine=function(t){void 0===t&&(t={}),this._pristine=!0,this._forEachChild(function(t){t.markAsPristine({onlySelf:!0})}),this._parent&&!t.onlySelf&&this._parent._updatePristine(t)},AbstractControl.prototype.markAsPending=function(t){void 0===t&&(t={}),this._status=U,this._parent&&!t.onlySelf&&this._parent.markAsPending(t)},AbstractControl.prototype.disable=function(t){void 0===t&&(t={}),this._status=z,this._errors=null,this._forEachChild(function(t){t.disable({onlySelf:!0})}),this._updateValue(),!1!==t.emitEvent&&(this._valueChanges.emit(this._value),this._statusChanges.emit(this._status)),this._updateAncestors(!!t.onlySelf),this._onDisabledChange.forEach(function(t){return t(!0)})},AbstractControl.prototype.enable=function(t){void 0===t&&(t={}),this._status=L,this._forEachChild(function(t){t.enable({onlySelf:!0})}),this.updateValueAndValidity({onlySelf:!0,emitEvent:t.emitEvent}),this._updateAncestors(!!t.onlySelf),this._onDisabledChange.forEach(function(t){return t(!1)})},AbstractControl.prototype._updateAncestors=function(t){this._parent&&!t&&(this._parent.updateValueAndValidity(),this._parent._updatePristine(),this._parent._updateTouched())},AbstractControl.prototype.setParent=function(t){this._parent=t},AbstractControl.prototype.setValue=function(t,e){},AbstractControl.prototype.patchValue=function(t,e){},AbstractControl.prototype.reset=function(t,e){},AbstractControl.prototype.updateValueAndValidity=function(t){void 0===t&&(t={}),this._setInitialStatus(),this._updateValue(),this.enabled&&(this._cancelExistingSubscription(),this._errors=this._runValidator(),this._status=this._calculateStatus(),this._status!==L&&this._status!==U||this._runAsyncValidator(t.emitEvent)),!1!==t.emitEvent&&(this._valueChanges.emit(this._value),this._statusChanges.emit(this._status)),this._parent&&!t.onlySelf&&this._parent.updateValueAndValidity(t)},AbstractControl.prototype._updateTreeValidity=function(t){void 0===t&&(t={emitEvent:!0}),this._forEachChild(function(e){return e._updateTreeValidity(t)}),this.updateValueAndValidity({onlySelf:!0,emitEvent:t.emitEvent})},AbstractControl.prototype._setInitialStatus=function(){this._status=this._allControlsDisabled()?z:L},AbstractControl.prototype._runValidator=function(){return this.validator?this.validator(this):null},AbstractControl.prototype._runAsyncValidator=function(t){var e=this;if(this.asyncValidator){this._status=U;var n=toObservable(this.asyncValidator(this));this._asyncValidationSubscription=n.subscribe(function(n){return e.setErrors(n,{emitEvent:t})})}},AbstractControl.prototype._cancelExistingSubscription=function(){this._asyncValidationSubscription&&this._asyncValidationSubscription.unsubscribe()},AbstractControl.prototype.setErrors=function(t,e){void 0===e&&(e={}),this._errors=t,this._updateControlsErrors(!1!==e.emitEvent)},AbstractControl.prototype.get=function(t){return _find(this,t,".")},AbstractControl.prototype.getError=function(t,e){var n=e?this.get(e):this;return n&&n._errors?n._errors[t]:null},AbstractControl.prototype.hasError=function(t,e){return!!this.getError(t,e)},Object.defineProperty(AbstractControl.prototype,"root",{get:function(){for(var t=this;t._parent;)t=t._parent;return t},enumerable:!0,configurable:!0}),AbstractControl.prototype._updateControlsErrors=function(t){this._status=this._calculateStatus(),t&&this._statusChanges.emit(this._status),this._parent&&this._parent._updateControlsErrors(t)},AbstractControl.prototype._initObservables=function(){this._valueChanges=new o.EventEmitter,this._statusChanges=new o.EventEmitter},AbstractControl.prototype._calculateStatus=function(){return this._allControlsDisabled()?z:this._errors?G:this._anyControlsHaveStatus(U)?U:this._anyControlsHaveStatus(G)?G:L},AbstractControl.prototype._updateValue=function(){},AbstractControl.prototype._forEachChild=function(t){},AbstractControl.prototype._anyControls=function(t){},AbstractControl.prototype._allControlsDisabled=function(){},AbstractControl.prototype._anyControlsHaveStatus=function(t){return this._anyControls(function(e){return e.status===t})},AbstractControl.prototype._anyControlsDirty=function(){return this._anyControls(function(t){return t.dirty})},AbstractControl.prototype._anyControlsTouched=function(){return this._anyControls(function(t){return t.touched})},AbstractControl.prototype._updatePristine=function(t){void 0===t&&(t={}),this._pristine=!this._anyControlsDirty(),this._parent&&!t.onlySelf&&this._parent._updatePristine(t)},AbstractControl.prototype._updateTouched=function(t){void 0===t&&(t={}),this._touched=this._anyControlsTouched(),this._parent&&!t.onlySelf&&this._parent._updateTouched(t)},AbstractControl.prototype._isBoxedValue=function(t){return"object"==typeof t&&null!==t&&2===Object.keys(t).length&&"value"in t&&"disabled"in t},AbstractControl.prototype._registerOnCollectionChange=function(t){this._onCollectionChange=t},AbstractControl}(),W=function(t){function FormControl(e,n,r){void 0===e&&(e=null);var o=t.call(this,coerceToValidator(n),coerceToAsyncValidator(r))||this;return o._onChange=[],o._applyFormState(e),o.updateValueAndValidity({onlySelf:!0,emitEvent:!1}),o._initObservables(),o}return r.a(FormControl,t),FormControl.prototype.setValue=function(t,e){var n=this;void 0===e&&(e={}),this._value=t,this._onChange.length&&!1!==e.emitModelToViewChange&&this._onChange.forEach(function(t){return t(n._value,!1!==e.emitViewToModelChange)}),this.updateValueAndValidity(e)},FormControl.prototype.patchValue=function(t,e){void 0===e&&(e={}),this.setValue(t,e)},FormControl.prototype.reset=function(t,e){void 0===t&&(t=null),void 0===e&&(e={}),this._applyFormState(t),this.markAsPristine(e),this.markAsUntouched(e),this.setValue(this._value,e)},FormControl.prototype._updateValue=function(){},FormControl.prototype._anyControls=function(t){return!1},FormControl.prototype._allControlsDisabled=function(){return this.disabled},FormControl.prototype.registerOnChange=function(t){this._onChange.push(t)},FormControl.prototype._clearChangeFns=function(){this._onChange=[],this._onDisabledChange=[],this._onCollectionChange=function(){}},FormControl.prototype.registerOnDisabledChange=function(t){this._onDisabledChange.push(t)},FormControl.prototype._forEachChild=function(t){},FormControl.prototype._applyFormState=function(t){this._isBoxedValue(t)?(this._value=t.value,t.disabled?this.disable({onlySelf:!0,emitEvent:!1}):this.enable({onlySelf:!0,emitEvent:!1})):this._value=t},FormControl}(q),K=function(t){function FormGroup(e,n,r){var o=t.call(this,n||null,r||null)||this;return o.controls=e,o._initObservables(),o._setUpControls(),o.updateValueAndValidity({onlySelf:!0,emitEvent:!1}),o}return r.a(FormGroup,t),FormGroup.prototype.registerControl=function(t,e){return this.controls[t]?this.controls[t]:(this.controls[t]=e,e.setParent(this),e._registerOnCollectionChange(this._onCollectionChange),e)},FormGroup.prototype.addControl=function(t,e){this.registerControl(t,e),this.updateValueAndValidity(),this._onCollectionChange()},FormGroup.prototype.removeControl=function(t){this.controls[t]&&this.controls[t]._registerOnCollectionChange(function(){}),delete this.controls[t],this.updateValueAndValidity(),this._onCollectionChange()},FormGroup.prototype.setControl=function(t,e){this.controls[t]&&this.controls[t]._registerOnCollectionChange(function(){}),delete this.controls[t],e&&this.registerControl(t,e),this.updateValueAndValidity(),this._onCollectionChange()},FormGroup.prototype.contains=function(t){return this.controls.hasOwnProperty(t)&&this.controls[t].enabled},FormGroup.prototype.setValue=function(t,e){var n=this;void 0===e&&(e={}),this._checkAllValuesPresent(t),Object.keys(t).forEach(function(r){n._throwIfControlMissing(r),n.controls[r].setValue(t[r],{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e)},FormGroup.prototype.patchValue=function(t,e){var n=this;void 0===e&&(e={}),Object.keys(t).forEach(function(r){n.controls[r]&&n.controls[r].patchValue(t[r],{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e)},FormGroup.prototype.reset=function(t,e){void 0===t&&(t={}),void 0===e&&(e={}),this._forEachChild(function(n,r){n.reset(t[r],{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e),this._updatePristine(e),this._updateTouched(e)},FormGroup.prototype.getRawValue=function(){return this._reduceChildren({},function(t,e,n){return t[n]=e instanceof W?e.value:e.getRawValue(),t})},FormGroup.prototype._throwIfControlMissing=function(t){if(!Object.keys(this.controls).length)throw new Error("\n        There are no form controls registered with this group yet.  If you're using ngModel,\n        you may want to check next tick (e.g. use setTimeout).\n      ");if(!this.controls[t])throw new Error("Cannot find form control with name: "+t+".")},FormGroup.prototype._forEachChild=function(t){var e=this;Object.keys(this.controls).forEach(function(n){return t(e.controls[n],n)})},FormGroup.prototype._setUpControls=function(){var t=this;this._forEachChild(function(e){e.setParent(t),e._registerOnCollectionChange(t._onCollectionChange)})},FormGroup.prototype._updateValue=function(){this._value=this._reduceValue()},FormGroup.prototype._anyControls=function(t){var e=this,n=!1;return this._forEachChild(function(r,o){n=n||e.contains(o)&&t(r)}),n},FormGroup.prototype._reduceValue=function(){var t=this;return this._reduceChildren({},function(e,n,r){return(n.enabled||t.disabled)&&(e[r]=n.value),e})},FormGroup.prototype._reduceChildren=function(t,e){var n=t;return this._forEachChild(function(t,r){n=e(n,t,r)}),n},FormGroup.prototype._allControlsDisabled=function(){for(var t=0,e=Object.keys(this.controls);t<e.length;t++){var n=e[t];if(this.controls[n].enabled)return!1}return Object.keys(this.controls).length>0||this.disabled},FormGroup.prototype._checkAllValuesPresent=function(t){this._forEachChild(function(e,n){if(void 0===t[n])throw new Error("Must supply a value for form control with name: '"+n+"'.")})},FormGroup}(q),J=function(t){function FormArray(e,n,r){var o=t.call(this,n||null,r||null)||this;return o.controls=e,o._initObservables(),o._setUpControls(),o.updateValueAndValidity({onlySelf:!0,emitEvent:!1}),o}return r.a(FormArray,t),FormArray.prototype.at=function(t){return this.controls[t]},FormArray.prototype.push=function(t){this.controls.push(t),this._registerControl(t),this.updateValueAndValidity(),this._onCollectionChange()},FormArray.prototype.insert=function(t,e){this.controls.splice(t,0,e),this._registerControl(e),this.updateValueAndValidity(),this._onCollectionChange()},FormArray.prototype.removeAt=function(t){this.controls[t]&&this.controls[t]._registerOnCollectionChange(function(){}),this.controls.splice(t,1),this.updateValueAndValidity(),this._onCollectionChange()},FormArray.prototype.setControl=function(t,e){this.controls[t]&&this.controls[t]._registerOnCollectionChange(function(){}),this.controls.splice(t,1),e&&(this.controls.splice(t,0,e),this._registerControl(e)),this.updateValueAndValidity(),this._onCollectionChange()},Object.defineProperty(FormArray.prototype,"length",{get:function(){return this.controls.length},enumerable:!0,configurable:!0}),FormArray.prototype.setValue=function(t,e){var n=this;void 0===e&&(e={}),this._checkAllValuesPresent(t),t.forEach(function(t,r){n._throwIfControlMissing(r),n.at(r).setValue(t,{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e)},FormArray.prototype.patchValue=function(t,e){var n=this;void 0===e&&(e={}),t.forEach(function(t,r){n.at(r)&&n.at(r).patchValue(t,{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e)},FormArray.prototype.reset=function(t,e){void 0===t&&(t=[]),void 0===e&&(e={}),this._forEachChild(function(n,r){n.reset(t[r],{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e),this._updatePristine(e),this._updateTouched(e)},FormArray.prototype.getRawValue=function(){return this.controls.map(function(t){return t instanceof W?t.value:t.getRawValue()})},FormArray.prototype._throwIfControlMissing=function(t){if(!this.controls.length)throw new Error("\n        There are no form controls registered with this array yet.  If you're using ngModel,\n        you may want to check next tick (e.g. use setTimeout).\n      ");if(!this.at(t))throw new Error("Cannot find form control at index "+t)},FormArray.prototype._forEachChild=function(t){this.controls.forEach(function(e,n){t(e,n)})},FormArray.prototype._updateValue=function(){var t=this;this._value=this.controls.filter(function(e){return e.enabled||t.disabled}).map(function(t){return t.value})},FormArray.prototype._anyControls=function(t){return this.controls.some(function(e){return e.enabled&&t(e)})},FormArray.prototype._setUpControls=function(){var t=this;this._forEachChild(function(e){return t._registerControl(e)})},FormArray.prototype._checkAllValuesPresent=function(t){this._forEachChild(function(e,n){if(void 0===t[n])throw new Error("Must supply a value for form control at index: "+n+".")})},FormArray.prototype._allControlsDisabled=function(){for(var t=0,e=this.controls;t<e.length;t++){if(e[t].enabled)return!1}return this.controls.length>0||this.disabled},FormArray.prototype._registerControl=function(t){t.setParent(this),t._registerOnCollectionChange(this._onCollectionChange)},FormArray}(q),Q={provide:c,useExisting:n.i(o.forwardRef)(function(){return $})},X=Promise.resolve(null),$=function(t){function NgForm(e,n){var r=t.call(this)||this;return r._submitted=!1,r.ngSubmit=new o.EventEmitter,r.form=new K({},composeValidators(e),composeAsyncValidators(n)),r}return r.a(NgForm,t),Object.defineProperty(NgForm.prototype,"submitted",{get:function(){return this._submitted},enumerable:!0,configurable:!0}),Object.defineProperty(NgForm.prototype,"formDirective",{get:function(){return this},enumerable:!0,configurable:!0}),Object.defineProperty(NgForm.prototype,"control",{get:function(){return this.form},enumerable:!0,configurable:!0}),Object.defineProperty(NgForm.prototype,"path",{get:function(){return[]},enumerable:!0,configurable:!0}),Object.defineProperty(NgForm.prototype,"controls",{get:function(){return this.form.controls},enumerable:!0,configurable:!0}),NgForm.prototype.addControl=function(t){var e=this;X.then(function(){var n=e._findContainer(t.path);t._control=n.registerControl(t.name,t.control),setUpControl(t.control,t),t.control.updateValueAndValidity({emitEvent:!1})})},NgForm.prototype.getControl=function(t){return this.form.get(t.path)},NgForm.prototype.removeControl=function(t){var e=this;X.then(function(){var n=e._findContainer(t.path);n&&n.removeControl(t.name)})},NgForm.prototype.addFormGroup=function(t){var e=this;X.then(function(){var n=e._findContainer(t.path),r=new K({});setUpFormContainer(r,t),n.registerControl(t.name,r),r.updateValueAndValidity({emitEvent:!1})})},NgForm.prototype.removeFormGroup=function(t){var e=this;X.then(function(){var n=e._findContainer(t.path);n&&n.removeControl(t.name)})},NgForm.prototype.getFormGroup=function(t){return this.form.get(t.path)},NgForm.prototype.updateModel=function(t,e){var n=this;X.then(function(){n.form.get(t.path).setValue(e)})},NgForm.prototype.setValue=function(t){this.control.setValue(t)},NgForm.prototype.onSubmit=function(t){return this._submitted=!0,this.ngSubmit.emit(t),!1},NgForm.prototype.onReset=function(){this.resetForm()},NgForm.prototype.resetForm=function(t){void 0===t&&(t=void 0),this.form.reset(t),this._submitted=!1},NgForm.prototype._findContainer=function(t){return t.pop(),t.length?this.form.get(t):this.form},NgForm}(c);$.decorators=[{type:o.Directive,args:[{selector:"form:not([ngNoForm]):not([formGroup]),ngForm,[ngForm]",providers:[Q],host:{"(submit)":"onSubmit($event)","(reset)":"onReset()"},outputs:["ngSubmit"],exportAs:"ngForm"}]}],$.ctorParameters=function(){return[{type:Array,decorators:[{type:o.Optional},{type:o.Self},{type:o.Inject,args:[p]}]},{type:Array,decorators:[{type:o.Optional},{type:o.Self},{type:o.Inject,args:[d]}]}]};/**
 * @license
 * Copyright Google Inc. All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://angular.io/license
 */
var Y={formControlName:'\n    <div [formGroup]="myGroup">\n      <input formControlName="firstName">\n    </div>\n\n    In your class:\n\n    this.myGroup = new FormGroup({\n       firstName: new FormControl()\n    });',formGroupName:'\n    <div [formGroup]="myGroup">\n       <div formGroupName="person">\n          <input formControlName="firstName">\n       </div>\n    </div>\n\n    In your class:\n\n    this.myGroup = new FormGroup({\n       person: new FormGroup({ firstName: new FormControl() })\n    });',formArrayName:'\n    <div [formGroup]="myGroup">\n      <div formArrayName="cities">\n        <div *ngFor="let city of cityArray.controls; index as i">\n          <input [formControlName]="i">\n        </div>\n      </div>\n    </div>\n\n    In your class:\n\n    this.cityArray = new FormArray([new FormControl(\'SF\')]);\n    this.myGroup = new FormGroup({\n      cities: this.cityArray\n    });',ngModelGroup:'\n    <form>\n       <div ngModelGroup="person">\n          <input [(ngModel)]="person.name" name="firstName">\n       </div>\n    </form>',ngModelWithFormGroup:'\n    <div [formGroup]="myGroup">\n       <input formControlName="firstName">\n       <input [(ngModel)]="showMoreControls" [ngModelOptions]="{standalone: true}">\n    </div>\n  '},Z=function(){function TemplateDrivenErrors(){}return TemplateDrivenErrors.modelParentException=function(){throw new Error('\n      ngModel cannot be used to register form controls with a parent formGroup directive.  Try using\n      formGroup\'s partner directive "formControlName" instead.  Example:\n\n      '+Y.formControlName+"\n\n      Or, if you'd like to avoid registering this form control, indicate that it's standalone in ngModelOptions:\n\n      Example:\n\n      "+Y.ngModelWithFormGroup)},TemplateDrivenErrors.formGroupNameException=function(){throw new Error("\n      ngModel cannot be used to register form controls with a parent formGroupName or formArrayName directive.\n\n      Option 1: Use formControlName instead of ngModel (reactive strategy):\n\n      "+Y.formGroupName+"\n\n      Option 2:  Update ngModel's parent be ngModelGroup (template-driven strategy):\n\n      "+Y.ngModelGroup)},TemplateDrivenErrors.missingNameException=function(){throw new Error('If ngModel is used within a form tag, either the name attribute must be set or the form\n      control must be defined as \'standalone\' in ngModelOptions.\n\n      Example 1: <input [(ngModel)]="person.firstName" name="first">\n      Example 2: <input [(ngModel)]="person.firstName" [ngModelOptions]="{standalone: true}">')},TemplateDrivenErrors.modelGroupParentException=function(){throw new Error("\n      ngModelGroup cannot be used with a parent formGroup directive.\n\n      Option 1: Use formGroupName instead of ngModelGroup (reactive strategy):\n\n      "+Y.formGroupName+"\n\n      Option 2:  Use a regular form tag instead of the formGroup directive (template-driven strategy):\n\n      "+Y.ngModelGroup)},TemplateDrivenErrors}(),tt={provide:c,useExisting:n.i(o.forwardRef)(function(){return et})},et=function(t){function NgModelGroup(e,n,r){var o=t.call(this)||this;return o._parent=e,o._validators=n,o._asyncValidators=r,o}return r.a(NgModelGroup,t),NgModelGroup.prototype._checkParentType=function(){this._parent instanceof NgModelGroup||this._parent instanceof $||Z.modelGroupParentException()},NgModelGroup}(k);et.decorators=[{type:o.Directive,args:[{selector:"[ngModelGroup]",providers:[tt],exportAs:"ngModelGroup"}]}],et.ctorParameters=function(){return[{type:c,decorators:[{type:o.Host},{type:o.SkipSelf}]},{type:Array,decorators:[{type:o.Optional},{type:o.Self},{type:o.Inject,args:[p]}]},{type:Array,decorators:[{type:o.Optional},{type:o.Self},{type:o.Inject,args:[d]}]}]},et.propDecorators={name:[{type:o.Input,args:["ngModelGroup"]}]};/**
 * @license
 * Copyright Google Inc. All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://angular.io/license
 */
var nt={provide:A,useExisting:n.i(o.forwardRef)(function(){return ot})},rt=Promise.resolve(null),ot=function(t){function NgModel(e,n,r,i){var s=t.call(this)||this;return s._control=new W,s._registered=!1,s.update=new o.EventEmitter,s._parent=e,s._rawValidators=n||[],s._rawAsyncValidators=r||[],s.valueAccessor=selectValueAccessor(s,i),s}return r.a(NgModel,t),NgModel.prototype.ngOnChanges=function(t){this._checkForErrors(),this._registered||this._setUpControl(),"isDisabled"in t&&this._updateDisabled(t),isPropertyUpdated(t,this.viewModel)&&(this._updateValue(this.model),this.viewModel=this.model)},NgModel.prototype.ngOnDestroy=function(){this.formDirective&&this.formDirective.removeControl(this)},Object.defineProperty(NgModel.prototype,"control",{get:function(){return this._control},enumerable:!0,configurable:!0}),Object.defineProperty(NgModel.prototype,"path",{get:function(){return this._parent?controlPath(this.name,this._parent):[this.name]},enumerable:!0,configurable:!0}),Object.defineProperty(NgModel.prototype,"formDirective",{get:function(){return this._parent?this._parent.formDirective:null},enumerable:!0,configurable:!0}),Object.defineProperty(NgModel.prototype,"validator",{get:function(){return composeValidators(this._rawValidators)},enumerable:!0,configurable:!0}),Object.defineProperty(NgModel.prototype,"asyncValidator",{get:function(){return composeAsyncValidators(this._rawAsyncValidators)},enumerable:!0,configurable:!0}),NgModel.prototype.viewToModelUpdate=function(t){this.viewModel=t,this.update.emit(t)},NgModel.prototype._setUpControl=function(){this._isStandalone()?this._setUpStandalone():this.formDirective.addControl(this),this._registered=!0},NgModel.prototype._isStandalone=function(){return!this._parent||!(!this.options||!this.options.standalone)},NgModel.prototype._setUpStandalone=function(){setUpControl(this._control,this),this._control.updateValueAndValidity({emitEvent:!1})},NgModel.prototype._checkForErrors=function(){this._isStandalone()||this._checkParentType(),this._checkName()},NgModel.prototype._checkParentType=function(){!(this._parent instanceof et)&&this._parent instanceof k?Z.formGroupNameException():this._parent instanceof et||this._parent instanceof $||Z.modelParentException()},NgModel.prototype._checkName=function(){this.options&&this.options.name&&(this.name=this.options.name),this._isStandalone()||this.name||Z.missingNameException()},NgModel.prototype._updateValue=function(t){var e=this;rt.then(function(){e.control.setValue(t,{emitViewToModelChange:!1})})},NgModel.prototype._updateDisabled=function(t){var e=this,n=t.isDisabled.currentValue,r=""===n||n&&"false"!==n;rt.then(function(){r&&!e.control.disabled?e.control.disable():!r&&e.control.disabled&&e.control.enable()})},NgModel}(A);ot.decorators=[{type:o.Directive,args:[{selector:"[ngModel]:not([formControlName]):not([formControl])",providers:[nt],exportAs:"ngModel"}]}],ot.ctorParameters=function(){return[{type:c,decorators:[{type:o.Optional},{type:o.Host}]},{type:Array,decorators:[{type:o.Optional},{type:o.Self},{type:o.Inject,args:[p]}]},{type:Array,decorators:[{type:o.Optional},{type:o.Self},{type:o.Inject,args:[d]}]},{type:Array,decorators:[{type:o.Optional},{type:o.Self},{type:o.Inject,args:[f]}]}]},ot.propDecorators={name:[{type:o.Input}],isDisabled:[{type:o.Input,args:["disabled"]}],model:[{type:o.Input,args:["ngModel"]}],options:[{type:o.Input,args:["ngModelOptions"]}],update:[{type:o.Output,args:["ngModelChange"]}]};/**
 * @license
 * Copyright Google Inc. All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://angular.io/license
 */
var it=function(){function ReactiveErrors(){}return ReactiveErrors.controlParentException=function(){throw new Error("formControlName must be used with a parent formGroup directive.  You'll want to add a formGroup\n       directive and pass it an existing FormGroup instance (you can create one in your class).\n\n      Example:\n\n      "+Y.formControlName)},ReactiveErrors.ngModelGroupException=function(){throw new Error('formControlName cannot be used with an ngModelGroup parent. It is only compatible with parents\n       that also have a "form" prefix: formGroupName, formArrayName, or formGroup.\n\n       Option 1:  Update the parent to be formGroupName (reactive form strategy)\n\n        '+Y.formGroupName+"\n\n        Option 2: Use ngModel instead of formControlName (template-driven strategy)\n\n        "+Y.ngModelGroup)},ReactiveErrors.missingFormException=function(){throw new Error("formGroup expects a FormGroup instance. Please pass one in.\n\n       Example:\n\n       "+Y.formControlName)},ReactiveErrors.groupParentException=function(){throw new Error("formGroupName must be used with a parent formGroup directive.  You'll want to add a formGroup\n      directive and pass it an existing FormGroup instance (you can create one in your class).\n\n      Example:\n\n      "+Y.formGroupName)},ReactiveErrors.arrayParentException=function(){throw new Error("formArrayName must be used with a parent formGroup directive.  You'll want to add a formGroup\n       directive and pass it an existing FormGroup instance (you can create one in your class).\n\n        Example:\n\n        "+Y.formArrayName)},ReactiveErrors.disabledAttrWarning=function(){console.warn("\n      It looks like you're using the disabled attribute with a reactive form directive. If you set disabled to true\n      when you set up this control in your component class, the disabled attribute will actually be set in the DOM for\n      you. We recommend using this approach to avoid 'changed after checked' errors.\n       \n      Example: \n      form = new FormGroup({\n        first: new FormControl({value: 'Nancy', disabled: true}, Validators.required),\n        last: new FormControl('Drew', Validators.required)\n      });\n    ")},ReactiveErrors}(),st={provide:A,useExisting:n.i(o.forwardRef)(function(){return at})},at=function(t){function FormControlDirective(e,n,r){var i=t.call(this)||this;return i.update=new o.EventEmitter,i._rawValidators=e||[],i._rawAsyncValidators=n||[],i.valueAccessor=selectValueAccessor(i,r),i}return r.a(FormControlDirective,t),Object.defineProperty(FormControlDirective.prototype,"isDisabled",{set:function(t){it.disabledAttrWarning()},enumerable:!0,configurable:!0}),FormControlDirective.prototype.ngOnChanges=function(t){this._isControlChanged(t)&&(setUpControl(this.form,this),this.control.disabled&&this.valueAccessor.setDisabledState&&this.valueAccessor.setDisabledState(!0),this.form.updateValueAndValidity({emitEvent:!1})),isPropertyUpdated(t,this.viewModel)&&(this.form.setValue(this.model),this.viewModel=this.model)},Object.defineProperty(FormControlDirective.prototype,"path",{get:function(){return[]},enumerable:!0,configurable:!0}),Object.defineProperty(FormControlDirective.prototype,"validator",{get:function(){return composeValidators(this._rawValidators)},enumerable:!0,configurable:!0}),Object.defineProperty(FormControlDirective.prototype,"asyncValidator",{get:function(){return composeAsyncValidators(this._rawAsyncValidators)},enumerable:!0,configurable:!0}),Object.defineProperty(FormControlDirective.prototype,"control",{get:function(){return this.form},enumerable:!0,configurable:!0}),FormControlDirective.prototype.viewToModelUpdate=function(t){this.viewModel=t,this.update.emit(t)},FormControlDirective.prototype._isControlChanged=function(t){return t.hasOwnProperty("form")},FormControlDirective}(A);at.decorators=[{type:o.Directive,args:[{selector:"[formControl]",providers:[st],exportAs:"ngForm"}]}],at.ctorParameters=function(){return[{type:Array,decorators:[{type:o.Optional},{type:o.Self},{type:o.Inject,args:[p]}]},{type:Array,decorators:[{type:o.Optional},{type:o.Self},{type:o.Inject,args:[d]}]},{type:Array,decorators:[{type:o.Optional},{type:o.Self},{type:o.Inject,args:[f]}]}]},at.propDecorators={form:[{type:o.Input,args:["formControl"]}],model:[{type:o.Input,args:["ngModel"]}],update:[{type:o.Output,args:["ngModelChange"]}],isDisabled:[{type:o.Input,args:["disabled"]}]};/**
 * @license
 * Copyright Google Inc. All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://angular.io/license
 */
var ut={provide:c,useExisting:n.i(o.forwardRef)(function(){return lt})},lt=function(t){function FormGroupDirective(e,n){var r=t.call(this)||this;return r._validators=e,r._asyncValidators=n,r._submitted=!1,r.directives=[],r.form=null,r.ngSubmit=new o.EventEmitter,r}return r.a(FormGroupDirective,t),FormGroupDirective.prototype.ngOnChanges=function(t){this._checkFormPresent(),t.hasOwnProperty("form")&&(this._updateValidators(),this._updateDomValue(),this._updateRegistrations())},Object.defineProperty(FormGroupDirective.prototype,"submitted",{get:function(){return this._submitted},enumerable:!0,configurable:!0}),Object.defineProperty(FormGroupDirective.prototype,"formDirective",{get:function(){return this},enumerable:!0,configurable:!0}),Object.defineProperty(FormGroupDirective.prototype,"control",{get:function(){return this.form},enumerable:!0,configurable:!0}),Object.defineProperty(FormGroupDirective.prototype,"path",{get:function(){return[]},enumerable:!0,configurable:!0}),FormGroupDirective.prototype.addControl=function(t){var e=this.form.get(t.path);return setUpControl(e,t),e.updateValueAndValidity({emitEvent:!1}),this.directives.push(t),e},FormGroupDirective.prototype.getControl=function(t){return this.form.get(t.path)},FormGroupDirective.prototype.removeControl=function(t){remove(this.directives,t)},FormGroupDirective.prototype.addFormGroup=function(t){var e=this.form.get(t.path);setUpFormContainer(e,t),e.updateValueAndValidity({emitEvent:!1})},FormGroupDirective.prototype.removeFormGroup=function(t){},FormGroupDirective.prototype.getFormGroup=function(t){return this.form.get(t.path)},FormGroupDirective.prototype.addFormArray=function(t){var e=this.form.get(t.path);setUpFormContainer(e,t),e.updateValueAndValidity({emitEvent:!1})},FormGroupDirective.prototype.removeFormArray=function(t){},FormGroupDirective.prototype.getFormArray=function(t){return this.form.get(t.path)},FormGroupDirective.prototype.updateModel=function(t,e){this.form.get(t.path).setValue(e)},FormGroupDirective.prototype.onSubmit=function(t){return this._submitted=!0,this.ngSubmit.emit(t),!1},FormGroupDirective.prototype.onReset=function(){this.resetForm()},FormGroupDirective.prototype.resetForm=function(t){void 0===t&&(t=void 0),this.form.reset(t),this._submitted=!1},FormGroupDirective.prototype._updateDomValue=function(){var t=this;this.directives.forEach(function(e){var n=t.form.get(e.path);e._control!==n&&(cleanUpControl(e._control,e),n&&setUpControl(n,e),e._control=n)}),this.form._updateTreeValidity({emitEvent:!1})},FormGroupDirective.prototype._updateRegistrations=function(){var t=this;this.form._registerOnCollectionChange(function(){return t._updateDomValue()}),this._oldForm&&this._oldForm._registerOnCollectionChange(function(){}),this._oldForm=this.form},FormGroupDirective.prototype._updateValidators=function(){var t=composeValidators(this._validators);this.form.validator=m.compose([this.form.validator,t]);var e=composeAsyncValidators(this._asyncValidators);this.form.asyncValidator=m.composeAsync([this.form.asyncValidator,e])},FormGroupDirective.prototype._checkFormPresent=function(){this.form||it.missingFormException()},FormGroupDirective}(c);lt.decorators=[{type:o.Directive,args:[{selector:"[formGroup]",providers:[ut],host:{"(submit)":"onSubmit($event)","(reset)":"onReset()"},exportAs:"ngForm"}]}],lt.ctorParameters=function(){return[{type:Array,decorators:[{type:o.Optional},{type:o.Self},{type:o.Inject,args:[p]}]},{type:Array,decorators:[{type:o.Optional},{type:o.Self},{type:o.Inject,args:[d]}]}]},lt.propDecorators={form:[{type:o.Input,args:["formGroup"]}],ngSubmit:[{type:o.Output}]};/**
 * @license
 * Copyright Google Inc. All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://angular.io/license
 */
var ct={provide:c,useExisting:n.i(o.forwardRef)(function(){return pt})},pt=function(t){function FormGroupName(e,n,r){var o=t.call(this)||this;return o._parent=e,o._validators=n,o._asyncValidators=r,o}return r.a(FormGroupName,t),FormGroupName.prototype._checkParentType=function(){_hasInvalidParent(this._parent)&&it.groupParentException()},FormGroupName}(k);pt.decorators=[{type:o.Directive,args:[{selector:"[formGroupName]",providers:[ct]}]}],pt.ctorParameters=function(){return[{type:c,decorators:[{type:o.Optional},{type:o.Host},{type:o.SkipSelf}]},{type:Array,decorators:[{type:o.Optional},{type:o.Self},{type:o.Inject,args:[p]}]},{type:Array,decorators:[{type:o.Optional},{type:o.Self},{type:o.Inject,args:[d]}]}]},pt.propDecorators={name:[{type:o.Input,args:["formGroupName"]}]};var dt={provide:c,useExisting:n.i(o.forwardRef)(function(){return ht})},ht=function(t){function FormArrayName(e,n,r){var o=t.call(this)||this;return o._parent=e,o._validators=n,o._asyncValidators=r,o}return r.a(FormArrayName,t),FormArrayName.prototype.ngOnInit=function(){this._checkParentType(),this.formDirective.addFormArray(this)},FormArrayName.prototype.ngOnDestroy=function(){this.formDirective&&this.formDirective.removeFormArray(this)},Object.defineProperty(FormArrayName.prototype,"control",{get:function(){return this.formDirective.getFormArray(this)},enumerable:!0,configurable:!0}),Object.defineProperty(FormArrayName.prototype,"formDirective",{get:function(){return this._parent?this._parent.formDirective:null},enumerable:!0,configurable:!0}),Object.defineProperty(FormArrayName.prototype,"path",{get:function(){return controlPath(this.name,this._parent)},enumerable:!0,configurable:!0}),Object.defineProperty(FormArrayName.prototype,"validator",{get:function(){return composeValidators(this._validators)},enumerable:!0,configurable:!0}),Object.defineProperty(FormArrayName.prototype,"asyncValidator",{get:function(){return composeAsyncValidators(this._asyncValidators)},enumerable:!0,configurable:!0}),FormArrayName.prototype._checkParentType=function(){_hasInvalidParent(this._parent)&&it.arrayParentException()},FormArrayName}(c);ht.decorators=[{type:o.Directive,args:[{selector:"[formArrayName]",providers:[dt]}]}],ht.ctorParameters=function(){return[{type:c,decorators:[{type:o.Optional},{type:o.Host},{type:o.SkipSelf}]},{type:Array,decorators:[{type:o.Optional},{type:o.Self},{type:o.Inject,args:[p]}]},{type:Array,decorators:[{type:o.Optional},{type:o.Self},{type:o.Inject,args:[d]}]}]},ht.propDecorators={name:[{type:o.Input,args:["formArrayName"]}]};/**
 * @license
 * Copyright Google Inc. All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://angular.io/license
 */
var mt={provide:A,useExisting:n.i(o.forwardRef)(function(){return ft})},ft=function(t){function FormControlName(e,n,r,i){var s=t.call(this)||this;return s._added=!1,s.update=new o.EventEmitter,s._parent=e,s._rawValidators=n||[],s._rawAsyncValidators=r||[],s.valueAccessor=selectValueAccessor(s,i),s}return r.a(FormControlName,t),Object.defineProperty(FormControlName.prototype,"isDisabled",{set:function(t){it.disabledAttrWarning()},enumerable:!0,configurable:!0}),FormControlName.prototype.ngOnChanges=function(t){this._added||this._setUpControl(),isPropertyUpdated(t,this.viewModel)&&(this.viewModel=this.model,this.formDirective.updateModel(this,this.model))},FormControlName.prototype.ngOnDestroy=function(){this.formDirective&&this.formDirective.removeControl(this)},FormControlName.prototype.viewToModelUpdate=function(t){this.viewModel=t,this.update.emit(t)},Object.defineProperty(FormControlName.prototype,"path",{get:function(){return controlPath(this.name,this._parent)},enumerable:!0,configurable:!0}),Object.defineProperty(FormControlName.prototype,"formDirective",{get:function(){return this._parent?this._parent.formDirective:null},enumerable:!0,configurable:!0}),Object.defineProperty(FormControlName.prototype,"validator",{get:function(){return composeValidators(this._rawValidators)},enumerable:!0,configurable:!0}),Object.defineProperty(FormControlName.prototype,"asyncValidator",{get:function(){return composeAsyncValidators(this._rawAsyncValidators)},enumerable:!0,configurable:!0}),Object.defineProperty(FormControlName.prototype,"control",{get:function(){return this._control},enumerable:!0,configurable:!0}),FormControlName.prototype._checkParentType=function(){!(this._parent instanceof pt)&&this._parent instanceof k?it.ngModelGroupException():this._parent instanceof pt||this._parent instanceof lt||this._parent instanceof ht||it.controlParentException()},FormControlName.prototype._setUpControl=function(){this._checkParentType(),this._control=this.formDirective.addControl(this),this.control.disabled&&this.valueAccessor.setDisabledState&&this.valueAccessor.setDisabledState(!0),this._added=!0},FormControlName}(A);ft.decorators=[{type:o.Directive,args:[{selector:"[formControlName]",providers:[mt]}]}],ft.ctorParameters=function(){return[{type:c,decorators:[{type:o.Optional},{type:o.Host},{type:o.SkipSelf}]},{type:Array,decorators:[{type:o.Optional},{type:o.Self},{type:o.Inject,args:[p]}]},{type:Array,decorators:[{type:o.Optional},{type:o.Self},{type:o.Inject,args:[d]}]},{type:Array,decorators:[{type:o.Optional},{type:o.Self},{type:o.Inject,args:[f]}]}]},ft.propDecorators={name:[{type:o.Input,args:["formControlName"]}],model:[{type:o.Input,args:["ngModel"]}],update:[{type:o.Output,args:["ngModelChange"]}],isDisabled:[{type:o.Input,args:["disabled"]}]};/**
 * @license
 * Copyright Google Inc. All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://angular.io/license
 */
var yt={provide:p,useExisting:n.i(o.forwardRef)(function(){return vt}),multi:!0},gt={provide:p,useExisting:n.i(o.forwardRef)(function(){return bt}),multi:!0},vt=function(){function RequiredValidator(){}return Object.defineProperty(RequiredValidator.prototype,"required",{get:function(){return this._required},set:function(t){this._required=null!=t&&!1!==t&&""+t!="false",this._onChange&&this._onChange()},enumerable:!0,configurable:!0}),RequiredValidator.prototype.validate=function(t){return this.required?m.required(t):null},RequiredValidator.prototype.registerOnValidatorChange=function(t){this._onChange=t},RequiredValidator}();vt.decorators=[{type:o.Directive,args:[{selector:":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]",providers:[yt],host:{"[attr.required]":'required ? "" : null'}}]}],vt.ctorParameters=function(){return[]},vt.propDecorators={required:[{type:o.Input}]};var bt=function(t){function CheckboxRequiredValidator(){return null!==t&&t.apply(this,arguments)||this}return r.a(CheckboxRequiredValidator,t),CheckboxRequiredValidator.prototype.validate=function(t){return this.required?m.requiredTrue(t):null},CheckboxRequiredValidator}(vt);bt.decorators=[{type:o.Directive,args:[{selector:"input[type=checkbox][required][formControlName],input[type=checkbox][required][formControl],input[type=checkbox][required][ngModel]",providers:[gt],host:{"[attr.required]":'required ? "" : null'}}]}],bt.ctorParameters=function(){return[]};var _t={provide:p,useExisting:n.i(o.forwardRef)(function(){return Ct}),multi:!0},Ct=function(){function EmailValidator(){}return Object.defineProperty(EmailValidator.prototype,"email",{set:function(t){this._enabled=""===t||!0===t||"true"===t,this._onChange&&this._onChange()},enumerable:!0,configurable:!0}),EmailValidator.prototype.validate=function(t){return this._enabled?m.email(t):null},EmailValidator.prototype.registerOnValidatorChange=function(t){this._onChange=t},EmailValidator}();Ct.decorators=[{type:o.Directive,args:[{selector:"[email][formControlName],[email][formControl],[email][ngModel]",providers:[_t]}]}],Ct.ctorParameters=function(){return[]},Ct.propDecorators={email:[{type:o.Input}]};var St={provide:p,useExisting:n.i(o.forwardRef)(function(){return At}),multi:!0},At=function(){function MinLengthValidator(){}return MinLengthValidator.prototype.ngOnChanges=function(t){"minlength"in t&&(this._createValidator(),this._onChange&&this._onChange())},MinLengthValidator.prototype.validate=function(t){return null==this.minlength?null:this._validator(t)},MinLengthValidator.prototype.registerOnValidatorChange=function(t){this._onChange=t},MinLengthValidator.prototype._createValidator=function(){this._validator=m.minLength(parseInt(this.minlength,10))},MinLengthValidator}();At.decorators=[{type:o.Directive,args:[{selector:"[minlength][formControlName],[minlength][formControl],[minlength][ngModel]",providers:[St],host:{"[attr.minlength]":"minlength ? minlength : null"}}]}],At.ctorParameters=function(){return[]},At.propDecorators={minlength:[{type:o.Input}]};var Tt={provide:p,useExisting:n.i(o.forwardRef)(function(){return Et}),multi:!0},Et=function(){function MaxLengthValidator(){}return MaxLengthValidator.prototype.ngOnChanges=function(t){"maxlength"in t&&(this._createValidator(),this._onChange&&this._onChange())},MaxLengthValidator.prototype.validate=function(t){return null!=this.maxlength?this._validator(t):null},MaxLengthValidator.prototype.registerOnValidatorChange=function(t){this._onChange=t},MaxLengthValidator.prototype._createValidator=function(){this._validator=m.maxLength(parseInt(this.maxlength,10))},MaxLengthValidator}();Et.decorators=[{type:o.Directive,args:[{selector:"[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]",providers:[Tt],host:{"[attr.maxlength]":"maxlength ? maxlength : null"}}]}],Et.ctorParameters=function(){return[]},Et.propDecorators={maxlength:[{type:o.Input}]};var Pt={provide:p,useExisting:n.i(o.forwardRef)(function(){return wt}),multi:!0},wt=function(){function PatternValidator(){}return PatternValidator.prototype.ngOnChanges=function(t){"pattern"in t&&(this._createValidator(),this._onChange&&this._onChange())},PatternValidator.prototype.validate=function(t){return this._validator(t)},PatternValidator.prototype.registerOnValidatorChange=function(t){this._onChange=t},PatternValidator.prototype._createValidator=function(){this._validator=m.pattern(this.pattern)},PatternValidator}();wt.decorators=[{type:o.Directive,args:[{selector:"[pattern][formControlName],[pattern][formControl],[pattern][ngModel]",providers:[Pt],host:{"[attr.pattern]":"pattern ? pattern : null"}}]}],wt.ctorParameters=function(){return[]},wt.propDecorators={pattern:[{type:o.Input}]};/**
 * @license
 * Copyright Google Inc. All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://angular.io/license
 */
var xt=function(){function FormBuilder(){}return FormBuilder.prototype.group=function(t,e){void 0===e&&(e=null);var n=this._reduceControls(t),r=null!=e?e.validator:null,o=null!=e?e.asyncValidator:null;return new K(n,r,o)},FormBuilder.prototype.control=function(t,e,n){return new W(t,e,n)},FormBuilder.prototype.array=function(t,e,n){var r=this,o=t.map(function(t){return r._createControl(t)});return new J(o,e,n)},FormBuilder.prototype._reduceControls=function(t){var e=this,n={};return Object.keys(t).forEach(function(r){n[r]=e._createControl(t[r])}),n},FormBuilder.prototype._createControl=function(t){if(t instanceof W||t instanceof K||t instanceof J)return t;if(Array.isArray(t)){var e=t[0],n=t.length>1?t[1]:null,r=t.length>2?t[2]:null;return this.control(e,n,r)}return this.control(t)},FormBuilder}();xt.decorators=[{type:o.Injectable}],xt.ctorParameters=function(){return[]};/**
 * @license
 * Copyright Google Inc. All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://angular.io/license
 */
var Ot=new o.Version("4.4.6"),Mt=function(){function NgNoValidate(){}return NgNoValidate}();Mt.decorators=[{type:o.Directive,args:[{selector:"form:not([ngNoForm]):not([ngNativeValidate])",host:{novalidate:""}}]}],Mt.ctorParameters=function(){return[]};/**
 * @license
 * Copyright Google Inc. All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://angular.io/license
 */
var Nt=[Mt,N,I,_,S,x,g,M,V,P,H,B,vt,At,Et,wt,bt,Ct],Ft=[ot,et,$],Vt=[at,lt,ft,pt,ht],It=function(){function InternalFormsSharedModule(){}return InternalFormsSharedModule}();It.decorators=[{type:o.NgModule,args:[{declarations:Nt,exports:Nt}]}],It.ctorParameters=function(){return[]};/**
 * @license
 * Copyright Google Inc. All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://angular.io/license
 */
var Dt=function(){function FormsModule(){}return FormsModule}();Dt.decorators=[{type:o.NgModule,args:[{declarations:Ft,providers:[E],exports:[It,Ft]}]}],Dt.ctorParameters=function(){return[]};var kt=function(){function ReactiveFormsModule(){}return ReactiveFormsModule}();kt.decorators=[{type:o.NgModule,args:[{declarations:[Vt],providers:[xt,E],exports:[It,Vt]}]}],kt.ctorParameters=function(){return[]}},104:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=0;!function(t){t[t.error=0]="error",t[t.warn=1]="warn"}(e.FlashMessageType||(e.FlashMessageType={}));var o=function(){function FlashMessage(t,e,n){this.content=t,this.tooltip=e,this.type=n,this.id=r++,this.isDismissed=!1,this.hasTooltip=Boolean(e),this.showTooltip=!1}return FlashMessage}();e.FlashMessage=o},105:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n(19),o=n(2),i=n(103),s=n(28),a=n(70),u=n(260),l=function(){function PlugsModule(){}return PlugsModule=__decorate([o.NgModule({imports:[r.CommonModule,i.FormsModule,s.HttpModule,a.SharedModule],declarations:[u.UserInputPlugComponent],providers:[],exports:[r.CommonModule,s.HttpModule,u.UserInputPlugComponent]})],PlugsModule)}();e.PlugsModule=l},106:function(t,e,n){"use strict";function washAndExpandIn(t){return[r.state("in",r.style({background:"rgba(0, 119, 255, 0.0)","max-height":t+"px"})),r.transition("void => in",[r.style({background:"rgba(0, 119, 255, 0.2)","max-height":"0"}),r.animate(500)])]}Object.defineProperty(e,"__esModule",{value:!0});var r=n(33);e.washIn=[r.state("in",r.style({background:"rgba(0, 119, 255, 0.0)"})),r.transition("void => in",[r.style({background:"rgba(0, 119, 255, 0.1)"}),r.animate(1e3)])],e.washAndExpandIn=washAndExpandIn},107:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n(2),o=function(){function ProgressBarComponent(){this.isReset=!1}return Object.defineProperty(ProgressBarComponent.prototype,"barStyle",{get:function(){return this.isReset?(this.isReset=!1,{width:"0",transition:"none"}):{width:100*Math.max(0,Math.min(1,this.value))+"%"}},enumerable:!0,configurable:!0}),Object.defineProperty(ProgressBarComponent.prototype,"isComplete",{get:function(){return this.value>=1},enumerable:!0,configurable:!0}),ProgressBarComponent.prototype.reset=function(){this.isReset=!0},__decorate([r.Input(),__metadata("design:type",Number)],ProgressBarComponent.prototype,"value",void 0),ProgressBarComponent=__decorate([r.Component({selector:"htf-progress-bar",template:n(299),styles:[n(287)]})],ProgressBarComponent)}();e.ProgressBarComponent=o},108:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r;!function(t){t[t.unsubscribed=0]="unsubscribed",t[t.subscribing=1]="subscribing",t[t.subscribed=2]="subscribed",t[t.failed=3]="failed",t[t.waiting=4]="waiting"}(r||(r={}));var o=n(9),i=function(){function Subscription(t){this.sockJsService=t,this.messages=new o.Subject,this.retryTimeMs=null,this.currentRetryMs=null,this.retryTimeoutId=null,this.sock=null,this.state=r.unsubscribed,this.url=null,this.retryMs=null,this.retryBackoff=null,this.retryMax=null}return Object.defineProperty(Subscription.prototype,"hasError",{get:function(){return this.state===r.failed||this.state===r.waiting},enumerable:!0,configurable:!0}),Object.defineProperty(Subscription.prototype,"isSubscribing",{get:function(){return this.state===r.subscribing},enumerable:!0,configurable:!0}),Subscription.prototype.refresh=function(){if(this.state===r.unsubscribed)throw new Error("Cannot refresh subscription from state `unsubscribed`.");this.state!==r.subscribing&&(this.unsubscribe(),this.subscribeWithSavedParams())},Subscription.prototype.retryNow=function(){if(this.state!==r.waiting)throw new Error("Subscription cannot retryNow when state != `waiting`.");this.cancelTimeout(),this.subscribeWithSavedParams()},Subscription.prototype.subscribeToUrl=function(t,e,n,r){void 0===e&&(e=null),void 0===n&&(n=1),void 0===r&&(r=Number.MAX_VALUE),null!==this.sock&&this.unsubscribe(),this.url=t,this.retryMs=e,this.retryBackoff=n,this.retryMax=r,this.subscribeWithSavedParams()},Subscription.prototype.unsubscribe=function(){null!==this.sock&&(console.debug("Unsubscribing from "+this.url+"."),this.cancelTimeout(),this.sock.close(),this.currentRetryMs=null,this.state=r.unsubscribed)},Subscription.prototype.cancelTimeout=function(){null!==this.retryTimeoutId&&(clearTimeout(this.retryTimeoutId),this.retryTimeoutId=null)},Subscription.prototype.subscribeWithSavedParams=function(){var t=this;console.debug("Attempting to subscribe to "+this.url+".");var e=new this.sockJsService.sockJs(this.url);e.onopen=function(){t.sock===e&&(console.debug("Subscribed to "+t.url+"."),t.currentRetryMs=null,t.state=r.subscribed)},e.onclose=function(){t.sock===e&&(t.state===r.subscribed?console.debug("Subscription to "+t.url+" lost."):console.debug("Subscription to "+t.url+" failed."),null===t.retryMs?t.state=r.failed:(t.state=r.waiting,null===t.currentRetryMs?t.currentRetryMs=t.retryMs:t.currentRetryMs*=t.retryBackoff,t.currentRetryMs=Math.max(t.currentRetryMs,t.retryMax),t.retryTimeMs=Date.now()+t.currentRetryMs,t.retryTimeoutId=setTimeout(function(){t.subscribeWithSavedParams()},t.currentRetryMs)))},e.onmessage=function(n){t.sock===e&&t.messages.next(n)},this.sock=e,this.state=r.subscribing},Subscription}();e.Subscription=i},109:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n(2),o=n(34),i=n(71),s=n(108),a=n(24),u=a.devHost+"/sub/dashboard",l={UNREACHABLE:o.StationStatus.unreachable,ONLINE:o.StationStatus.online},c=function(t){function DashboardService(n){var r=t.call(this,n)||this;return r.stations={},r.messages.subscribe(function(t){var n=e.validateResponse(t.data),o=e.parseResponse(n);r.applyResponse(o)}),r}return __extends(DashboardService,t),e=DashboardService,DashboardService.prototype.subscribe=function(e,n,r){void 0===e&&(e=null),void 0===n&&(n=1),void 0===r&&(r=Number.MAX_VALUE),t.prototype.subscribeToUrl.call(this,u,e,n,r)},DashboardService.validateResponse=function(t){return t},DashboardService.parseResponse=function(t){for(var n={},r=0,i=Object.keys(t);r<i.length;r++){var s=i[r],a=t[s];n[s]=new o.Station({cell:a.cell,host:a.host,hostPort:s,label:e.getStationLabel(a),port:a.port,stationId:a.station_id,status:l[a.status],testDescription:a.test_description,testName:a.test_name})}return n},DashboardService.prototype.applyResponse=function(t){for(var e=0,n=Object.keys(t);e<n.length;e++){var r=n[e],o=t[r];r in this.stations?(null===o.cell&&null===o.testDescription&&null===o.testName&&(o.cell=this.stations[r].cell,o.label=this.stations[r].label,o.testDescription=this.stations[r].testDescription,o.testName=this.stations[r].testName),Object.assign(this.stations[r],o)):this.stations[r]=o}for(var i=0,s=Object.keys(this.stations);i<s.length;i++){var r=s[i];r in t||delete this.stations[r]}},DashboardService.getStationLabel=function(t){return t.cell?t.cell:t.test_name?a.urlHost===t.host||a.urlHost===t.station_id?t.test_name:t.test_name+" on "+t.station_id:t.station_id},DashboardService=e=__decorate([r.Injectable(),__metadata("design:paramtypes",[i.SockJsService])],DashboardService);var e}(s.Subscription);e.DashboardService=c},110:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});!function(t){t[t.unloaded=0]="unloaded",t[t.loading=1]="loading",t[t.loaded=2]="loaded",t[t.error=3]="error"}(e.HistoryItemStatus||(e.HistoryItemStatus={}));var r=function(){function HistoryItem(t){Object.assign(this,t)}return Object.defineProperty(HistoryItem.prototype,"uniqueId",{get:function(){if(null===this.dutId&&null===this.startTimeMillis){if(null===this.fileName)throw new Error("History item must have file name, or DUT ID and start time.");return this.fileName}return this.dutId+"$"+this.startTimeMillis},enumerable:!0,configurable:!0}),HistoryItem}();e.HistoryItem=r},111:function(t,e,n){"use strict";function makeTest(t,e,n,r){if(null===e&&null===n||null!==e&&null!==n)throw new Error("Exactly one of `testId` and `fileName` must be null.");var o=t.test_record.log_records.filter(function(t){return"openhtf.output.web_gui"!==t.logger_name});o.reverse();var i=o.map(makeLog),s=t.test_record.phases.map(function(t){return makePhase(t,!1)});null!==t.running_phase_state&&s.push(makePhase(t.running_phase_state,!0));var u,d=s.reduce(function(t,e){return t.concat(e.attachments)},[]);return u=t.status===l?p[t.test_record.outcome]:c[t.status],new a.TestState({attachments:d,dutId:t.test_record.dut_id,endTimeMillis:t.test_record.end_time_millis||null,fileName:n,logs:i,name:t.test_record.metadata.test_name,phases:s,plugDescriptors:t.plugs.plug_descriptors,plugStates:t.plugs.plug_states,startTimeMillis:t.test_record.start_time_millis,station:r,status:u,testId:e})}function makePhase(t,e){var n=[];t.attachments&&(n=Object.keys(t.attachments).map(function(e){var n=t.attachments[e];return new r.Attachment({mimeType:n.mimetype,name:e,phaseDescriptorId:t.descriptor_id,phaseName:t.name,sha1:n.sha1})})),u.sortByProperty(n,"name");var o;t.measurements?(o=Object.keys(t.measurements).map(function(e){var n=t.measurements[e].measured_value,r=null;return void 0!==n&&(r=""+n),new i.Measurement({name:t.measurements[e].name,validators:t.measurements[e].validators||null,measuredValue:r,status:d[t.measurements[e].outcome]})}),u.sortByProperty(o,"name")):o=[];var a;if(e)a=s.PhaseStatus.running;else{a=s.PhaseStatus.pass;for(var l=0,c=o;l<c.length;l++){if(c[l].status!==i.MeasurementStatus.pass){a=s.PhaseStatus.fail;break}}}return new s.Phase({attachments:n,descriptorId:t.descriptor_id,endTimeMillis:t.end_time_millis||null,name:t.name,startTimeMillis:t.start_time_millis,status:a,measurements:o})}function makePhaseFromDescriptor(t){return new s.Phase({attachments:[],descriptorId:t.id,endTimeMillis:null,name:t.name,startTimeMillis:null,status:s.PhaseStatus.waiting,measurements:t.measurements.map(function(t){return new i.Measurement({name:t.name,validators:null,measuredValue:null,status:d[t.outcome]})})})}function makeLog(t){return new o.LogRecord({level:t.level,lineNumber:t.lineno,loggerName:t.logger_name,message:t.message,source:t.source,timestampMillis:t.timestamp_millis})}Object.defineProperty(e,"__esModule",{value:!0});var r=n(265),o=n(68),i=n(69),s=n(50),a=n(20),u=n(24),l="COMPLETED",c={WAITING_FOR_TEST_START:a.TestStatus.waiting,RUNNING:a.TestStatus.running},p={PASS:a.TestStatus.pass,FAIL:a.TestStatus.fail,ERROR:a.TestStatus.error,TIMEOUT:a.TestStatus.timeout,ABORTED:a.TestStatus.aborted},d={PASS:i.MeasurementStatus.pass,FAIL:i.MeasurementStatus.fail,UNSET:i.MeasurementStatus.unset,PARTIALLY_SET:i.MeasurementStatus.unset};e.makeTest=makeTest,e.makePhaseFromDescriptor=makePhaseFromDescriptor},112:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),n(115),n(117),n(118),n(120);var r=n(2),o=n(28),i=n(0),s=n(23),a=n(30),u=n(20),l=n(71),c=n(108),p=n(24),d=n(73),h=n(111),m=function(t){function StationService(e,n,r,o,i){var s=t.call(this,i)||this;return s.config=e,s.flashMessage=n,s.historyService=r,s.http=o,s.phaseDescriptorPromise={},s.testsById={},s.testsByStation={},s.messagesSubscription=null,s}return __extends(StationService,t),e=StationService,StationService.prototype.subscribe=function(n,r,o,i){var s=this;void 0===r&&(r=null),void 0===o&&(o=1),void 0===i&&(i=Number.MAX_VALUE),null!==this.messagesSubscription&&this.messagesSubscription.unsubscribe(),this.messagesSubscription=this.messages.mergeMap(function(t){var r=e.validateResponse(t.data);console.debug("StationService received response:",r);var o=s.parseResponse(r,n);return s.applyPhaseDescriptors(o)}).subscribe(function(t){s.applyResponse(t,n)});var a=p.getStationBaseUrl(this.config.dashboardEnabled,n),u=a+"/sub/station";t.prototype.subscribeToUrl.call(this,u,r,o,i)},StationService.prototype.getTest=function(t){return this.testsByStation[t.hostPort]||null},StationService.validateResponse=function(t){return t},StationService.prototype.parseResponse=function(t,e){var n=h.makeTest(t.state,t.test_uid,null,e);return"record"===t.type&&this.historyService.prependItemFromTestState(e,n),n},StationService.prototype.applyPhaseDescriptors=function(t){return this.getOrRequestPhaseDescriptors(t).map(function(e){var n=t.phases.length;if(0===n)return(l=t.phases).push.apply(l,e),t;for(var r=n-1,o=-1;r>=0&&-1===o;){for(var i=t.phases[r],s=0,a=e;s<a.length;s++){var u=a[s];u.descriptorId===i.descriptorId&&(o=e.indexOf(u))}r--}return-1===o&&n>1?(console.error("Unrecognized phase descriptor ID.",t.phases,e),t):((c=t.phases).splice.apply(c,[r+2,0].concat(e.slice(o+1))),t);var l,c}).catch(function(){return i.Observable.of(t)})},StationService.prototype.getOrRequestPhaseDescriptors=function(t){var e=this;if(!(t.testId in this.phaseDescriptorPromise)){var n=p.getTestBaseUrl(this.config.dashboardEnabled,t),r=n+"/phases";this.phaseDescriptorPromise[t.testId]=this.http.get(r).toPromise().then(function(t){return t.json().data.map(h.makePhaseFromDescriptor)}).catch(function(t){var n=p.messageFromErrorResponse(t);return e.flashMessage.error("HTTP request for phase descriptors failed.",n),Promise.reject(t)})}return i.Observable.fromPromise(this.phaseDescriptorPromise[t.testId])},StationService.prototype.applyResponse=function(t,e){if(t.testId in this.testsById){var n=this.testsById[t.testId];n.status!==t.status&&(t.status===u.TestStatus.error?this.flashMessage.error("The test exited early due to an error. View the test logs for details."):t.status===u.TestStatus.timeout?this.flashMessage.warn("The test exited early due to timeout."):t.status===u.TestStatus.aborted&&this.flashMessage.warn("The test was aborted.")),Object.assign(n,t)}else this.testsById[t.testId]=t,this.testsByStation[e.hostPort]=t},StationService=e=__decorate([r.Injectable(),__metadata("design:paramtypes",[s.ConfigService,a.FlashMessageService,d.HistoryService,o.Http,l.SockJsService])],StationService);var e}(c.Subscription);e.StationService=m},20:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});!function(t){t[t.waiting=9]="waiting",t[t.running=10]="running",t[t.pass=11]="pass",t[t.fail=12]="fail",t[t.error=13]="error",t[t.timeout=14]="timeout",t[t.aborted=15]="aborted"}(e.TestStatus||(e.TestStatus={}));var r=function(){function PlugDescriptor(){}return PlugDescriptor}();e.PlugDescriptor=r;var o=function(){function TestState(t){Object.assign(this,t)}return TestState}();e.TestState=o},23:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n(2),o="dashboard",i={server_type:o,history_from_disk_enabled:!1},s=function(){function ConfigService(){this.config=i}return ConfigService.prototype.initialize=function(t){var e=Object.keys(t).filter(function(t){return!(t in i)});if(e.length>0){console.warn("Received unknown config keys",e);for(var n=0,r=e;n<r.length;n++){delete t[r[n]]}}this.config={},Object.assign(this.config,i),Object.assign(this.config,t)},Object.defineProperty(ConfigService.prototype,"dashboardEnabled",{get:function(){if(null===this.config)throw new Error("Attempted to access config before it was initialized.");return this.config.server_type===o},enumerable:!0,configurable:!0}),ConfigService=__decorate([r.Injectable()],ConfigService)}();e.ConfigService=s},24:function(t,e,n){"use strict";function getStationBaseUrl(t,n){return t?n.host===r?"http://"+e.urlHost+":"+n.port:"http://"+n.host+":"+n.port:e.devHost?"http://"+n.stationId+":"+n.port:""}function getTestBaseUrl(t,e){return getStationBaseUrl(t,e.station)+"/tests/"+e.testId}function messageFromErrorResponse(t){if(0===t.status)return"The request failed. See the JavaScript console for more info.";var e;try{var n=t.json();e=n.error}catch(n){var r=t._body;e=r?r.replace(/\\"/g,'"'):JSON.stringify(t)}return t.status+" - "+(t.statusText||"")+"\n\n"+e}function messageFromHttpClientErrorResponse(t){return t.error instanceof ErrorEvent?t.error.message:JSON.stringify(t.error)}function sortByProperty(t,e,n){void 0===n&&(n=!1),t.sort(function(t,n){return t[e]>n[e]?1:t[e]<n[e]?-1:0}),n&&t.reverse()}Object.defineProperty(e,"__esModule",{value:!0}),e.devHost="",e.urlHost=window.location.host.split(":")[0];var r="127.0.0.1";e.getStationBaseUrl=getStationBaseUrl,e.getTestBaseUrl=getTestBaseUrl,e.messageFromErrorResponse=messageFromErrorResponse,e.messageFromHttpClientErrorResponse=messageFromHttpClientErrorResponse,e.sortByProperty=sortByProperty},245:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n(2),o=n(254),i=n(22),s=n(102),a=n(28),u=n(103),l=n(256),c=n(257),p=n(105),d=n(70),h=n(279),m=n(101),f=function(){function AppModule(t){this.appRef=t}return AppModule.prototype.hmrOnInit=function(t){console.log("HMR store",t)},AppModule.prototype.hmrOnDestroy=function(t){var e=this.appRef.components.map(function(t){return t.location.nativeElement});t.disposeOldHosts=m.createNewHosts(e),m.removeNgStyles()},AppModule.prototype.hmrAfterDestroy=function(t){t.disposeOldHosts(),delete t.disposeOldHosts},AppModule=__decorate([r.NgModule({imports:[o.BrowserAnimationsModule,i.BrowserModule,s.HttpClientModule,a.HttpModule,u.FormsModule,c.CoreModule,p.PlugsModule,d.SharedModule,h.StationsModule],declarations:[l.AppComponent],providers:[],bootstrap:[l.AppComponent]}),__metadata("design:paramtypes",[r.ApplicationRef])],AppModule)}();e.AppModule=f},252:function(t,e,n){"use strict";/**
 * @license Angular v4.4.6
 * (c) 2010-2017 Google, Inc. https://angular.io/
 * License: MIT
 */
/**
 * @license
 * Copyright Google Inc. All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://angular.io/license
 */
function optimizeGroupPlayer(t){switch(t.length){case 0:return new o.NoopAnimationPlayer;case 1:return t[0];default:return new o["ɵAnimationGroupPlayer"](t)}}function normalizeKeyframes(t,e,n,r,i,s){void 0===i&&(i={}),void 0===s&&(s={});var a=[],u=[],l=-1,c=null;if(r.forEach(function(t){var n=t.offset,r=n==l,p=r&&c||{};Object.keys(t).forEach(function(n){var r=n,u=t[n];if("offset"!==n)switch(r=e.normalizePropertyName(r,a),u){case o["ɵPRE_STYLE"]:u=i[n];break;case o.AUTO_STYLE:u=s[n];break;default:u=e.normalizeStyleValue(n,r,u,a)}p[r]=u}),r||u.push(p),c=p,l=n}),a.length){var p="\n - ";throw new Error("Unable to animate due to the following errors:"+p+a.join(p))}return u}function listenOnPlayer(t,e,n,r){switch(e){case"start":t.onStart(function(){return r(n&&copyAnimationEvent(n,"start",t.totalTime))});break;case"done":t.onDone(function(){return r(n&&copyAnimationEvent(n,"done",t.totalTime))});break;case"destroy":t.onDestroy(function(){return r(n&&copyAnimationEvent(n,"destroy",t.totalTime))})}}function copyAnimationEvent(t,e,n){var r=makeAnimationEvent(t.element,t.triggerName,t.fromState,t.toState,e||t.phaseName,void 0==n?t.totalTime:n),o=t._data;return null!=o&&(r._data=o),r}function makeAnimationEvent(t,e,n,r,o,i){return void 0===o&&(o=""),void 0===i&&(i=0),{element:t,triggerName:e,fromState:n,toState:r,phaseName:o,totalTime:i}}function getOrSetAsInMap(t,e,n){var r;return t instanceof Map?(r=t.get(e))||t.set(e,r=n):(r=t[e])||(r=t[e]=n),r}function parseTimelineCommand(t){var e=t.indexOf(":");return[t.substring(1,e),t.substr(e+1)]}function resolveTimingValue(t){if("number"==typeof t)return t;var e=t.match(/^(-?[\.\d]+)(m?s)/);return!e||e.length<2?0:_convertTimeValueToMS(parseFloat(e[1]),e[2])}function _convertTimeValueToMS(t,e){switch(e){case"s":return t*f;default:return t}}function resolveTiming(t,e,n){return t.hasOwnProperty("duration")?t:parseTimeExpression(t,e,n)}function parseTimeExpression(t,e,n){var r,o=/^(-?[\.\d]+)(m?s)(?:\s+(-?[\.\d]+)(m?s))?(?:\s+([-a-z]+(?:\(.+?\))?))?$/i,i=0,s="";if("string"==typeof t){var a=t.match(o);if(null===a)return e.push('The provided timing value "'+t+'" is invalid.'),{duration:0,delay:0,easing:""};r=_convertTimeValueToMS(parseFloat(a[1]),a[2]);var u=a[3];null!=u&&(i=_convertTimeValueToMS(Math.floor(parseFloat(u)),a[4]));var l=a[5];l&&(s=l)}else r=t;if(!n){var c=!1,p=e.length;r<0&&(e.push("Duration values below 0 are not allowed for this animation step."),c=!0),i<0&&(e.push("Delay values below 0 are not allowed for this animation step."),c=!0),c&&e.splice(p,0,'The provided timing value "'+t+'" is invalid.')}return{duration:r,delay:i,easing:s}}function copyObj(t,e){return void 0===e&&(e={}),Object.keys(t).forEach(function(n){e[n]=t[n]}),e}function normalizeStyles(t){var e={};return Array.isArray(t)?t.forEach(function(t){return copyStyles(t,!1,e)}):copyStyles(t,!1,e),e}function copyStyles(t,e,n){if(void 0===n&&(n={}),e)for(var r in t)n[r]=t[r];else copyObj(t,n);return n}function setStyles(t,e){t.style&&Object.keys(e).forEach(function(n){var r=dashCaseToCamelCase(n);t.style[r]=e[n]})}function eraseStyles(t,e){t.style&&Object.keys(e).forEach(function(e){var n=dashCaseToCamelCase(e);t.style[n]=""})}function normalizeAnimationEntry(t){return Array.isArray(t)?1==t.length?t[0]:n.i(o.sequence)(t):t}function validateStyleParams(t,e,n){var r=e.params||{},o=extractStyleParams(t);o.length&&o.forEach(function(t){r.hasOwnProperty(t)||n.push("Unable to resolve the local animation param "+t+" in the given list of values")})}function extractStyleParams(t){var e=[];if("string"==typeof t){for(var n=t.toString(),r=void 0;r=P.exec(n);)e.push(r[1]);P.lastIndex=0}return e}function interpolateParams(t,e,n){var r=t.toString(),o=r.replace(P,function(t,r){var o=e[r];return e.hasOwnProperty(r)||(n.push("Please provide a value for the animation param "+r),o=""),o.toString()});return o==r?t:o}function iteratorToArray(t){for(var e=[],n=t.next();!n.done;)e.push(n.value),n=t.next();return e}function dashCaseToCamelCase(t){return t.replace(w,function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return t[1].toUpperCase()})}function allowPreviousPlayerStylesMerge(t,e){return 0===t||0===e}function visitDslNode(t,e,n){switch(e.type){case 7:return t.visitTrigger(e,n);case 0:return t.visitState(e,n);case 1:return t.visitTransition(e,n);case 2:return t.visitSequence(e,n);case 3:return t.visitGroup(e,n);case 4:return t.visitAnimate(e,n);case 5:return t.visitKeyframes(e,n);case 6:return t.visitStyle(e,n);case 8:return t.visitReference(e,n);case 9:return t.visitAnimateChild(e,n);case 10:return t.visitAnimateRef(e,n);case 11:return t.visitQuery(e,n);case 12:return t.visitStagger(e,n);default:throw new Error("Unable to resolve animation metadata node #"+e.type)}}function parseTransitionExpr(t,e){var n=[];return"string"==typeof t?t.split(/\s*,\s*/).forEach(function(t){return parseInnerTransitionStr(t,n,e)}):n.push(t),n}function parseInnerTransitionStr(t,e,n){":"==t[0]&&(t=parseAnimationAlias(t,n));var r=t.match(/^(\*|[-\w]+)\s*(<?[=-]>)\s*(\*|[-\w]+)$/);if(null==r||r.length<4)return n.push('The provided transition expression "'+t+'" is not supported'),e;var o=r[1],i=r[2],s=r[3];e.push(makeLambdaFromStates(o,s));var a=o==x&&s==x;"<"!=i[0]||a||e.push(makeLambdaFromStates(s,o))}function parseAnimationAlias(t,e){switch(t){case":enter":return"void => *";case":leave":return"* => void";default:return e.push('The transition alias value "'+t+'" is not supported'),"* => *"}}function makeLambdaFromStates(t,e){var n=O.has(t)||M.has(t),r=O.has(e)||M.has(e);return function(o,i){var s=t==x||t==o,a=e==x||e==i;return!s&&n&&"boolean"==typeof o&&(s=o?O.has(t):M.has(t)),!a&&r&&"boolean"==typeof i&&(a=i?O.has(e):M.has(e)),s&&a}}function buildAnimationAst(t,e){return(new j).build(t,e)}function normalizeSelector(t){var e=!!t.split(/\s*,\s*/).find(function(t){return t==N});return e&&(t=t.replace(F,"")),t=t.replace(k,_).replace(I,C).replace(/@\*/g,A).replace(/@\w+/g,function(t){return A+"-"+t.substr(1)}).replace(/:animating/g,E),[t,e]}function normalizeParams(t){return t?copyObj(t):null}function consumeOffset(t){if("string"==typeof t)return null;var e=null;if(Array.isArray(t))t.forEach(function(t){if(isObject(t)&&t.hasOwnProperty("offset")){var n=t;e=parseFloat(n.offset),delete n.offset}});else if(isObject(t)&&t.hasOwnProperty("offset")){var n=t;e=parseFloat(n.offset),delete n.offset}return e}function isObject(t){return!Array.isArray(t)&&"object"==typeof t}function constructTimingAst(t,e){var n=null;if(t.hasOwnProperty("duration"))n=t;else if("number"==typeof t){var r=resolveTiming(t,e).duration;return makeTimingAst(r,0,"")}var o=t;if(o.split(/\s+/).some(function(t){return"{"==t.charAt(0)&&"{"==t.charAt(1)})){var i=makeTimingAst(0,0,"");return i.dynamic=!0,i.strValue=o,i}return n=n||resolveTiming(o,e),makeTimingAst(n.duration,n.delay,n.easing)}function normalizeAnimationOptions(t){return t?(t=copyObj(t),t.params&&(t.params=normalizeParams(t.params))):t={},t}function makeTimingAst(t,e,n){return{duration:t,delay:e,easing:n}}/**
 * @license
 * Copyright Google Inc. All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://angular.io/license
 */
function createTimelineInstruction(t,e,n,r,o,i,s,a){return void 0===s&&(s=null),void 0===a&&(a=!1),{type:1,element:t,keyframes:e,preStyleProps:n,postStyleProps:r,duration:o,delay:i,totalTime:o+i,easing:s,subTimeline:a}}function buildAnimationTimelines(t,e,n,r,o,i,s,a){return void 0===r&&(r={}),void 0===o&&(o={}),void 0===a&&(a=[]),(new G).buildKeyframes(t,e,n,r,o,i,s,a)}function roundOffset(t,e){void 0===e&&(e=3);var n=Math.pow(10,e-1);return Math.round(t*n)/n}function flattenStyles(t,e){var n,r={};return t.forEach(function(t){"*"===t?(n=n||Object.keys(e),n.forEach(function(t){r[t]=o.AUTO_STYLE})):copyStyles(t,!1,r)}),r}function makeBooleanMap(t){var e={};return t.forEach(function(t){return e[t]=!0}),e}/**
 * @license
 * Copyright Google Inc. All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://angular.io/license
 */
function createTransitionInstruction(t,e,n,r,o,i,s,a,u,l,c,p){return{type:0,element:t,triggerName:e,isRemovalTransition:o,fromState:n,fromStyles:i,toState:r,toStyles:s,timelines:a,queriedElements:u,preStyleProps:l,postStyleProps:c,errors:p}}function oneOrMoreTransitionsMatch(t,e,n){return t.some(function(t){return t(e,n)})}/**
 * @license
 * Copyright Google Inc. All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://angular.io/license
 */
function buildTrigger(t,e){return new Z(t,e)}function createFallbackTransition(t,e){return new $(t,{type:1,animation:{type:2,steps:[],options:null},matchers:[function(t,e){return!0}],options:null,queryCount:0,depCount:0},e)}function balanceProperties(t,e,n){t.hasOwnProperty(e)?t.hasOwnProperty(n)||(t[n]=t[e]):t.hasOwnProperty(n)&&(t[e]=t[n])}function deleteOrUnsetInMap(t,e,n){var r;if(t instanceof Map){if(r=t.get(e)){if(r.length){var o=r.indexOf(n);r.splice(o,1)}0==r.length&&t.delete(e)}}else if(r=t[e]){if(r.length){var o=r.indexOf(n);r.splice(o,1)}0==r.length&&delete t[e]}return r}function normalizeTriggerValue(t){return null!=t?t:null}function isElementNode(t){return t&&1===t.nodeType}function isTriggerEventValid(t){return"start"==t||"done"==t}function cloakElement(t,e){var n=t.style.display;return t.style.display=null!=e?e:"none",n}function cloakAndComputeStyles(t,e,n,r){var o=[];e.forEach(function(t){return o.push(cloakElement(t))});var i=new Map,s=[];n.forEach(function(e,n){var o={};e.forEach(function(e){var i=o[e]=t.computeStyle(n,e,r);i&&0!=i.length||(n[lt]=ut,s.push(n))}),i.set(n,o)});var a=0;return e.forEach(function(t){return cloakElement(t,o[a++])}),[i,s]}function createIsRootFilterFn(t){var e,n=new Set(t),r=new Set;return e=function(t){return!t||!n.has(t.parentNode)&&(!!r.has(t.parentNode)||!!e(t.parentNode)&&(r.add(t),!0))}}function containsClass(t,e){if(t.classList)return t.classList.contains(e);var n=t[gt];return n&&n[e]}function addClass(t,e){if(t.classList)t.classList.add(e);else{var n=t[gt];n||(n=t[gt]={}),n[e]=!0}}function removeClass(t,e){if(t.classList)t.classList.remove(e);else{var n=t[gt];n&&delete n[e]}}function getBodyNode(){return"undefined"!=typeof document?document.body:null}function removeNodesAfterAnimationDone(t,e,n){optimizeGroupPlayer(n).onDone(function(){return t.processLeaveNode(e)})}function flattenGroupPlayers(t){var e=[];return _flattenGroupPlayersRecur(t,e),e}function _flattenGroupPlayersRecur(t,e){for(var n=0;n<t.length;n++){var r=t[n];r instanceof o["ɵAnimationGroupPlayer"]?_flattenGroupPlayersRecur(r.players,e):e.push(r)}}function objEquals(t,e){var n=Object.keys(t),r=Object.keys(e);if(n.length!=r.length)return!1;for(var o=0;o<n.length;o++){var i=n[o];if(!e.hasOwnProperty(i)||t[i]!==e[i])return!1}return!0}function replacePostStylesAsPre(t,e,n){var r=n.get(t);if(!r)return!1;var o=e.get(t);return o?r.forEach(function(t){return o.add(t)}):e.set(t,r),n.delete(t),!0}function _computeStyle(t,e){return window.getComputedStyle(t)[e]}function supportsWebAnimations(){return"undefined"!=typeof Element&&"function"==typeof Element.prototype.animate}var r=n(17),o=n(33);n.d(e,"b",function(){return m}),n.d(e,"c",function(){return K}),n.d(e,"g",function(){return J}),n.d(e,"f",function(){return h}),n.d(e,"a",function(){return vt}),n.d(e,"e",function(){return _t}),n.d(e,"d",function(){return supportsWebAnimations});var i=function(t,e){return!1},s=function(t,e){return!1},a=function(t,e,n){return[]};if("undefined"!=typeof Element){if(i=function(t,e){return t.contains(e)},Element.prototype.matches)s=function(t,e){return t.matches(e)};else{var u=Element.prototype,l=u.matchesSelector||u.mozMatchesSelector||u.msMatchesSelector||u.oMatchesSelector||u.webkitMatchesSelector;l&&(s=function(t,e){return l.apply(t,[e])})}a=function(t,e,n){var r=[];if(n)r.push.apply(r,t.querySelectorAll(e));else{var o=t.querySelector(e);o&&r.push(o)}return r}}var c=s,p=i,d=a,h=function(){function NoopAnimationDriver(){}return NoopAnimationDriver.prototype.matchesElement=function(t,e){return c(t,e)},NoopAnimationDriver.prototype.containsElement=function(t,e){return p(t,e)},NoopAnimationDriver.prototype.query=function(t,e,n){return d(t,e,n)},NoopAnimationDriver.prototype.computeStyle=function(t,e,n){return n||""},NoopAnimationDriver.prototype.animate=function(t,e,n,r,i,s){return void 0===s&&(s=[]),new o.NoopAnimationPlayer},NoopAnimationDriver}(),m=function(){function AnimationDriver(){}return AnimationDriver}();m.NOOP=new h;/**
 * @license
 * Copyright Google Inc. All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://angular.io/license
 */
var f=1e3,y="{{",g="}}",v="ng-enter",b="ng-leave",_=".ng-enter",C=".ng-leave",S="ng-trigger",A=".ng-trigger",T="ng-animating",E=".ng-animating",P=new RegExp(y+"\\s*(.+?)\\s*"+g,"g"),w=/-+([a-z0-9])/g,x="*",O=new Set;O.add("true"),O.add("1");var M=new Set;M.add("false"),M.add("0");/**
 * @license
 * Copyright Google Inc. All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://angular.io/license
 */
var N=":self",F=new RegExp("s*"+N+"s*,?","g"),V=":leave",I=new RegExp(V,"g"),D=":enter",k=new RegExp(D,"g"),R="",j=function(){function AnimationAstBuilderVisitor(){}return AnimationAstBuilderVisitor.prototype.build=function(t,e){var n=new H(e);return this._resetContextStyleTimingState(n),visitDslNode(this,normalizeAnimationEntry(t),n)},AnimationAstBuilderVisitor.prototype._resetContextStyleTimingState=function(t){t.currentQuerySelector=R,t.collectedStyles={},t.collectedStyles[R]={},t.currentTime=0},AnimationAstBuilderVisitor.prototype.visitTrigger=function(t,e){var n=this,r=e.queryCount=0,o=e.depCount=0,i=[],s=[];return t.definitions.forEach(function(t){if(n._resetContextStyleTimingState(e),0==t.type){var a=t,u=a.name;u.split(/\s*,\s*/).forEach(function(t){a.name=t,i.push(n.visitState(a,e))}),a.name=u}else if(1==t.type){var l=n.visitTransition(t,e);r+=l.queryCount,o+=l.depCount,s.push(l)}else e.errors.push("only state() and transition() definitions can sit inside of a trigger()")}),{type:7,name:t.name,states:i,transitions:s,queryCount:r,depCount:o,options:null}},AnimationAstBuilderVisitor.prototype.visitState=function(t,e){var n=this.visitStyle(t.styles,e),r=t.options&&t.options.params||null;if(n.containsDynamicStyles){var o=new Set,i=r||{};if(n.styles.forEach(function(t){if(isObject(t)){var e=t;Object.keys(e).forEach(function(t){extractStyleParams(e[t]).forEach(function(t){i.hasOwnProperty(t)||o.add(t)})})}}),o.size){var s=iteratorToArray(o.values());e.errors.push('state("'+t.name+'", ...) must define default values for all the following style substitutions: '+s.join(", "))}}return{type:0,name:t.name,style:n,options:r?{params:r}:null}},AnimationAstBuilderVisitor.prototype.visitTransition=function(t,e){e.queryCount=0,e.depCount=0;var n=visitDslNode(this,normalizeAnimationEntry(t.animation),e);return{type:1,matchers:parseTransitionExpr(t.expr,e.errors),animation:n,queryCount:e.queryCount,depCount:e.depCount,options:normalizeAnimationOptions(t.options)}},AnimationAstBuilderVisitor.prototype.visitSequence=function(t,e){var n=this;return{type:2,steps:t.steps.map(function(t){return visitDslNode(n,t,e)}),options:normalizeAnimationOptions(t.options)}},AnimationAstBuilderVisitor.prototype.visitGroup=function(t,e){var n=this,r=e.currentTime,o=0,i=t.steps.map(function(t){e.currentTime=r;var i=visitDslNode(n,t,e);return o=Math.max(o,e.currentTime),i});return e.currentTime=o,{type:3,steps:i,options:normalizeAnimationOptions(t.options)}},AnimationAstBuilderVisitor.prototype.visitAnimate=function(t,e){var r=constructTimingAst(t.timings,e.errors);e.currentAnimateTimings=r;var i,s=t.styles?t.styles:n.i(o.style)({});if(5==s.type)i=this.visitKeyframes(s,e);else{var a=t.styles,u=!1;if(!a){u=!0;var l={};r.easing&&(l.easing=r.easing),a=n.i(o.style)(l)}e.currentTime+=r.duration+r.delay;var c=this.visitStyle(a,e);c.isEmptyStep=u,i=c}return e.currentAnimateTimings=null,{type:4,timings:r,style:i,options:null}},AnimationAstBuilderVisitor.prototype.visitStyle=function(t,e){var n=this._makeStyleAst(t,e);return this._validateStyleAst(n,e),n},AnimationAstBuilderVisitor.prototype._makeStyleAst=function(t,e){var n=[];Array.isArray(t.styles)?t.styles.forEach(function(t){"string"==typeof t?t==o.AUTO_STYLE?n.push(t):e.errors.push("The provided style string value "+t+" is not allowed."):n.push(t)}):n.push(t.styles);var r=!1,i=null;return n.forEach(function(t){if(isObject(t)){var e=t,n=e.easing;if(n&&(i=n,delete e.easing),!r)for(var o in e){var s=e[o];if(s.toString().indexOf(y)>=0){r=!0;break}}}}),{type:6,styles:n,easing:i,offset:t.offset,containsDynamicStyles:r,options:null}},AnimationAstBuilderVisitor.prototype._validateStyleAst=function(t,e){var n=e.currentAnimateTimings,r=e.currentTime,o=e.currentTime;n&&o>0&&(o-=n.duration+n.delay),t.styles.forEach(function(t){"string"!=typeof t&&Object.keys(t).forEach(function(n){var i=e.collectedStyles[e.currentQuerySelector],s=i[n],a=!0;s&&(o!=r&&o>=s.startTime&&r<=s.endTime&&(e.errors.push('The CSS property "'+n+'" that exists between the times of "'+s.startTime+'ms" and "'+s.endTime+'ms" is also being animated in a parallel animation between the times of "'+o+'ms" and "'+r+'ms"'),a=!1),o=s.startTime),a&&(i[n]={startTime:o,endTime:r}),e.options&&validateStyleParams(t[n],e.options,e.errors)})})},AnimationAstBuilderVisitor.prototype.visitKeyframes=function(t,e){var n=this,r={type:5,styles:[],options:null};if(!e.currentAnimateTimings)return e.errors.push("keyframes() must be placed inside of a call to animate()"),r;var o=1,i=0,s=[],a=!1,u=!1,l=0,c=t.steps.map(function(t){var r=n._makeStyleAst(t,e),o=null!=r.offset?r.offset:consumeOffset(r.styles),c=0;return null!=o&&(i++,c=r.offset=o),u=u||c<0||c>1,a=a||c<l,l=c,s.push(c),r});u&&e.errors.push("Please ensure that all keyframe offsets are between 0 and 1"),a&&e.errors.push("Please ensure that all keyframe offsets are in order");var p=t.steps.length,d=0;i>0&&i<p?e.errors.push("Not all style() steps within the declared keyframes() contain offsets"):0==i&&(d=o/(p-1));var h=p-1,m=e.currentTime,f=e.currentAnimateTimings,y=f.duration;return c.forEach(function(t,o){var i=d>0?o==h?1:d*o:s[o],a=i*y;e.currentTime=m+f.delay+a,f.duration=a,n._validateStyleAst(t,e),t.offset=i,r.styles.push(t)}),r},AnimationAstBuilderVisitor.prototype.visitReference=function(t,e){return{type:8,animation:visitDslNode(this,normalizeAnimationEntry(t.animation),e),options:normalizeAnimationOptions(t.options)}},AnimationAstBuilderVisitor.prototype.visitAnimateChild=function(t,e){return e.depCount++,{type:9,options:normalizeAnimationOptions(t.options)}},AnimationAstBuilderVisitor.prototype.visitAnimateRef=function(t,e){return{type:10,animation:this.visitReference(t.animation,e),options:normalizeAnimationOptions(t.options)}},AnimationAstBuilderVisitor.prototype.visitQuery=function(t,e){var n=e.currentQuerySelector,r=t.options||{};e.queryCount++,e.currentQuery=t;var o=normalizeSelector(t.selector),i=o[0],s=o[1];e.currentQuerySelector=n.length?n+" "+i:i,getOrSetAsInMap(e.collectedStyles,e.currentQuerySelector,{});var a=visitDslNode(this,normalizeAnimationEntry(t.animation),e);return e.currentQuery=null,e.currentQuerySelector=n,{type:11,selector:i,limit:r.limit||0,optional:!!r.optional,includeSelf:s,animation:a,originalSelector:t.selector,options:normalizeAnimationOptions(t.options)}},AnimationAstBuilderVisitor.prototype.visitStagger=function(t,e){e.currentQuery||e.errors.push("stagger() can only be used inside of query()");var n="full"===t.timings?{duration:0,delay:0,easing:"full"}:resolveTiming(t.timings,e.errors,!0);return{type:12,animation:visitDslNode(this,normalizeAnimationEntry(t.animation),e),timings:n,options:null}},AnimationAstBuilderVisitor}(),H=function(){function AnimationAstBuilderContext(t){this.errors=t,this.queryCount=0,this.depCount=0,this.currentTransition=null,this.currentQuery=null,this.currentQuerySelector=null,this.currentAnimateTimings=null,this.currentTime=0,this.collectedStyles={},this.options=null}return AnimationAstBuilderContext}(),B=function(){function ElementInstructionMap(){this._map=new Map}return ElementInstructionMap.prototype.consume=function(t){var e=this._map.get(t);return e?this._map.delete(t):e=[],e},ElementInstructionMap.prototype.append=function(t,e){var n=this._map.get(t);n||this._map.set(t,n=[]),n.push.apply(n,e)},ElementInstructionMap.prototype.has=function(t){return this._map.has(t)},ElementInstructionMap.prototype.clear=function(){this._map.clear()},ElementInstructionMap}(),L=1,G=function(){function AnimationTimelineBuilderVisitor(){}return AnimationTimelineBuilderVisitor.prototype.buildKeyframes=function(t,e,n,r,o,i,s,a){void 0===a&&(a=[]),s=s||new B;var u=new z(t,e,s,a,[]);u.options=i,u.currentTimeline.setStyles([r],null,u.errors,i),visitDslNode(this,n,u);var l=u.timelines.filter(function(t){return t.containsAnimation()});if(l.length&&Object.keys(o).length){var c=l[l.length-1];c.allowOnlyTimelineStyles()||c.setStyles([o],null,u.errors,i)}return l.length?l.map(function(t){return t.buildKeyframes()}):[createTimelineInstruction(e,[],[],[],0,0,"",!1)]},AnimationTimelineBuilderVisitor.prototype.visitTrigger=function(t,e){},AnimationTimelineBuilderVisitor.prototype.visitState=function(t,e){},AnimationTimelineBuilderVisitor.prototype.visitTransition=function(t,e){},AnimationTimelineBuilderVisitor.prototype.visitAnimateChild=function(t,e){var n=e.subInstructions.consume(e.element);if(n){var r=e.createSubContext(t.options),o=e.currentTimeline.currentTime,i=this._visitSubInstructions(n,r,r.options);o!=i&&e.transformIntoNewTimeline(i)}e.previousNode=t},AnimationTimelineBuilderVisitor.prototype.visitAnimateRef=function(t,e){var n=e.createSubContext(t.options);n.transformIntoNewTimeline(),this.visitReference(t.animation,n),e.transformIntoNewTimeline(n.currentTimeline.currentTime),e.previousNode=t},AnimationTimelineBuilderVisitor.prototype._visitSubInstructions=function(t,e,n){var r=e.currentTimeline.currentTime,o=r,i=null!=n.duration?resolveTimingValue(n.duration):null,s=null!=n.delay?resolveTimingValue(n.delay):null;return 0!==i&&t.forEach(function(t){var n=e.appendInstructionToTimeline(t,i,s);o=Math.max(o,n.duration+n.delay)}),o},AnimationTimelineBuilderVisitor.prototype.visitReference=function(t,e){e.updateOptions(t.options,!0),visitDslNode(this,t.animation,e),e.previousNode=t},AnimationTimelineBuilderVisitor.prototype.visitSequence=function(t,e){var n=this,r=e.subContextCount,o=e,i=t.options;if(i&&(i.params||i.delay)&&(o=e.createSubContext(i),o.transformIntoNewTimeline(),null!=i.delay)){6==o.previousNode.type&&(o.currentTimeline.snapshotCurrentStyles(),o.previousNode=U);var s=resolveTimingValue(i.delay);o.delayNextStep(s)}t.steps.length&&(t.steps.forEach(function(t){return visitDslNode(n,t,o)}),o.currentTimeline.applyStylesToKeyframe(),o.subContextCount>r&&o.transformIntoNewTimeline()),e.previousNode=t},AnimationTimelineBuilderVisitor.prototype.visitGroup=function(t,e){var n=this,r=[],o=e.currentTimeline.currentTime,i=t.options&&t.options.delay?resolveTimingValue(t.options.delay):0;t.steps.forEach(function(s){var a=e.createSubContext(t.options);i&&a.delayNextStep(i),visitDslNode(n,s,a),o=Math.max(o,a.currentTimeline.currentTime),r.push(a.currentTimeline)}),r.forEach(function(t){return e.currentTimeline.mergeTimelineCollectedStyles(t)}),e.transformIntoNewTimeline(o),e.previousNode=t},AnimationTimelineBuilderVisitor.prototype._visitTiming=function(t,e){if(t.dynamic){var n=t.strValue;return resolveTiming(e.params?interpolateParams(n,e.params,e.errors):n,e.errors)}return{duration:t.duration,delay:t.delay,easing:t.easing}},AnimationTimelineBuilderVisitor.prototype.visitAnimate=function(t,e){var n=e.currentAnimateTimings=this._visitTiming(t.timings,e),r=e.currentTimeline;n.delay&&(e.incrementTime(n.delay),r.snapshotCurrentStyles());var o=t.style;5==o.type?this.visitKeyframes(o,e):(e.incrementTime(n.duration),this.visitStyle(o,e),r.applyStylesToKeyframe()),e.currentAnimateTimings=null,e.previousNode=t},AnimationTimelineBuilderVisitor.prototype.visitStyle=function(t,e){var n=e.currentTimeline,r=e.currentAnimateTimings;!r&&n.getCurrentStyleProperties().length&&n.forwardFrame();var o=r&&r.easing||t.easing;t.isEmptyStep?n.applyEmptyStep(o):n.setStyles(t.styles,o,e.errors,e.options),e.previousNode=t},AnimationTimelineBuilderVisitor.prototype.visitKeyframes=function(t,e){var n=e.currentAnimateTimings,r=e.currentTimeline.duration,o=n.duration,i=e.createSubContext(),s=i.currentTimeline;s.easing=n.easing,t.styles.forEach(function(t){var n=t.offset||0;s.forwardTime(n*o),s.setStyles(t.styles,t.easing,e.errors,e.options),s.applyStylesToKeyframe()}),e.currentTimeline.mergeTimelineCollectedStyles(s),e.transformIntoNewTimeline(r+o),e.previousNode=t},AnimationTimelineBuilderVisitor.prototype.visitQuery=function(t,e){var n=this,r=e.currentTimeline.currentTime,o=t.options||{},i=o.delay?resolveTimingValue(o.delay):0;i&&(6===e.previousNode.type||0==r&&e.currentTimeline.getCurrentStyleProperties().length)&&(e.currentTimeline.snapshotCurrentStyles(),e.previousNode=U);var s=r,a=e.invokeQuery(t.selector,t.originalSelector,t.limit,t.includeSelf,!!o.optional,e.errors);e.currentQueryTotal=a.length;var u=null;a.forEach(function(r,o){e.currentQueryIndex=o;var a=e.createSubContext(t.options,r);i&&a.delayNextStep(i),r===e.element&&(u=a.currentTimeline),visitDslNode(n,t.animation,a),a.currentTimeline.applyStylesToKeyframe();var l=a.currentTimeline.currentTime;s=Math.max(s,l)}),e.currentQueryIndex=0,e.currentQueryTotal=0,e.transformIntoNewTimeline(s),u&&(e.currentTimeline.mergeTimelineCollectedStyles(u),e.currentTimeline.snapshotCurrentStyles()),e.previousNode=t},AnimationTimelineBuilderVisitor.prototype.visitStagger=function(t,e){var n=e.parentContext,r=e.currentTimeline,o=t.timings,i=Math.abs(o.duration),s=i*(e.currentQueryTotal-1),a=i*e.currentQueryIndex;switch(o.duration<0?"reverse":o.easing){case"reverse":a=s-a;break;case"full":a=n.currentStaggerTime}var u=e.currentTimeline;a&&u.delayNextStep(a);var l=u.currentTime;visitDslNode(this,t.animation,e),e.previousNode=t,n.currentStaggerTime=r.currentTime-l+(r.startTime-n.currentTimeline.startTime)},AnimationTimelineBuilderVisitor}(),U={},z=function(){function AnimationTimelineContext(t,e,n,r,o,i){this._driver=t,this.element=e,this.subInstructions=n,this.errors=r,this.timelines=o,this.parentContext=null,this.currentAnimateTimings=null,this.previousNode=U,this.subContextCount=0,this.options={},this.currentQueryIndex=0,this.currentQueryTotal=0,this.currentStaggerTime=0,this.currentTimeline=i||new q(e,0),o.push(this.currentTimeline)}return Object.defineProperty(AnimationTimelineContext.prototype,"params",{get:function(){return this.options.params},enumerable:!0,configurable:!0}),AnimationTimelineContext.prototype.updateOptions=function(t,e){var n=this;if(t){var r=t,o=this.options;null!=r.duration&&(o.duration=resolveTimingValue(r.duration)),null!=r.delay&&(o.delay=resolveTimingValue(r.delay));var i=r.params;if(i){var s=o.params;s||(s=this.options.params={}),Object.keys(i).forEach(function(t){e&&s.hasOwnProperty(t)||(s[t]=interpolateParams(i[t],s,n.errors))})}}},AnimationTimelineContext.prototype._copyOptions=function(){var t={};if(this.options){var e=this.options.params;if(e){var n=t.params={};Object.keys(e).forEach(function(t){n[t]=e[t]})}}return t},AnimationTimelineContext.prototype.createSubContext=function(t,e,n){void 0===t&&(t=null);var r=e||this.element,o=new AnimationTimelineContext(this._driver,r,this.subInstructions,this.errors,this.timelines,this.currentTimeline.fork(r,n||0));return o.previousNode=this.previousNode,o.currentAnimateTimings=this.currentAnimateTimings,o.options=this._copyOptions(),o.updateOptions(t),o.currentQueryIndex=this.currentQueryIndex,o.currentQueryTotal=this.currentQueryTotal,o.parentContext=this,this.subContextCount++,o},AnimationTimelineContext.prototype.transformIntoNewTimeline=function(t){return this.previousNode=U,this.currentTimeline=this.currentTimeline.fork(this.element,t),this.timelines.push(this.currentTimeline),this.currentTimeline},AnimationTimelineContext.prototype.appendInstructionToTimeline=function(t,e,n){var r={duration:null!=e?e:t.duration,delay:this.currentTimeline.currentTime+(null!=n?n:0)+t.delay,easing:""},o=new W(t.element,t.keyframes,t.preStyleProps,t.postStyleProps,r,t.stretchStartingKeyframe);return this.timelines.push(o),r},AnimationTimelineContext.prototype.incrementTime=function(t){this.currentTimeline.forwardTime(this.currentTimeline.duration+t)},AnimationTimelineContext.prototype.delayNextStep=function(t){t>0&&this.currentTimeline.delayNextStep(t)},AnimationTimelineContext.prototype.invokeQuery=function(t,e,n,r,o,i){var s=[];if(r&&s.push(this.element),t.length>0){var a=1!=n,u=this._driver.query(this.element,t,a);0!==n&&(u=u.slice(0,n)),s.push.apply(s,u)}return o||0!=s.length||i.push('`query("'+e+'")` returned zero elements. (Use `query("'+e+'", { optional: true })` if you wish to allow this.)'),s},AnimationTimelineContext}(),q=function(){function TimelineBuilder(t,e,n){this.element=t,this.startTime=e,this._elementTimelineStylesLookup=n,this.duration=0,this._previousKeyframe={},this._currentKeyframe={},this._keyframes=new Map,this._styleSummary={},this._pendingStyles={},this._backFill={},this._currentEmptyStepKeyframe=null,this._elementTimelineStylesLookup||(this._elementTimelineStylesLookup=new Map),this._localTimelineStyles=Object.create(this._backFill,{}),this._globalTimelineStyles=this._elementTimelineStylesLookup.get(t),this._globalTimelineStyles||(this._globalTimelineStyles=this._localTimelineStyles,this._elementTimelineStylesLookup.set(t,this._localTimelineStyles)),this._loadKeyframe()}return TimelineBuilder.prototype.containsAnimation=function(){switch(this._keyframes.size){case 0:return!1;case 1:return this.getCurrentStyleProperties().length>0;default:return!0}},TimelineBuilder.prototype.getCurrentStyleProperties=function(){return Object.keys(this._currentKeyframe)},Object.defineProperty(TimelineBuilder.prototype,"currentTime",{get:function(){return this.startTime+this.duration},enumerable:!0,configurable:!0}),TimelineBuilder.prototype.delayNextStep=function(t){var e=1==this._keyframes.size&&Object.keys(this._pendingStyles).length;this.duration||e?(this.forwardTime(this.currentTime+t),e&&this.snapshotCurrentStyles()):this.startTime+=t},TimelineBuilder.prototype.fork=function(t,e){return this.applyStylesToKeyframe(),new TimelineBuilder(t,e||this.currentTime,this._elementTimelineStylesLookup)},TimelineBuilder.prototype._loadKeyframe=function(){this._currentKeyframe&&(this._previousKeyframe=this._currentKeyframe),this._currentKeyframe=this._keyframes.get(this.duration),this._currentKeyframe||(this._currentKeyframe=Object.create(this._backFill,{}),this._keyframes.set(this.duration,this._currentKeyframe))},TimelineBuilder.prototype.forwardFrame=function(){this.duration+=L,this._loadKeyframe()},TimelineBuilder.prototype.forwardTime=function(t){this.applyStylesToKeyframe(),this.duration=t,this._loadKeyframe()},TimelineBuilder.prototype._updateStyle=function(t,e){this._localTimelineStyles[t]=e,this._globalTimelineStyles[t]=e,this._styleSummary[t]={time:this.currentTime,value:e}},TimelineBuilder.prototype.allowOnlyTimelineStyles=function(){return this._currentEmptyStepKeyframe!==this._currentKeyframe},TimelineBuilder.prototype.applyEmptyStep=function(t){var e=this;t&&(this._previousKeyframe.easing=t),Object.keys(this._globalTimelineStyles).forEach(function(t){e._backFill[t]=e._globalTimelineStyles[t]||o.AUTO_STYLE,e._currentKeyframe[t]=o.AUTO_STYLE}),this._currentEmptyStepKeyframe=this._currentKeyframe},TimelineBuilder.prototype.setStyles=function(t,e,n,r){var i=this;e&&(this._previousKeyframe.easing=e);var s=r&&r.params||{},a=flattenStyles(t,this._globalTimelineStyles);Object.keys(a).forEach(function(t){var e=interpolateParams(a[t],s,n);i._pendingStyles[t]=e,i._localTimelineStyles.hasOwnProperty(t)||(i._backFill[t]=i._globalTimelineStyles.hasOwnProperty(t)?i._globalTimelineStyles[t]:o.AUTO_STYLE),i._updateStyle(t,e)})},TimelineBuilder.prototype.applyStylesToKeyframe=function(){var t=this,e=this._pendingStyles,n=Object.keys(e);0!=n.length&&(this._pendingStyles={},n.forEach(function(n){var r=e[n];t._currentKeyframe[n]=r}),Object.keys(this._localTimelineStyles).forEach(function(e){t._currentKeyframe.hasOwnProperty(e)||(t._currentKeyframe[e]=t._localTimelineStyles[e])}))},TimelineBuilder.prototype.snapshotCurrentStyles=function(){var t=this;Object.keys(this._localTimelineStyles).forEach(function(e){var n=t._localTimelineStyles[e];t._pendingStyles[e]=n,t._updateStyle(e,n)})},TimelineBuilder.prototype.getFinalKeyframe=function(){return this._keyframes.get(this.duration)},Object.defineProperty(TimelineBuilder.prototype,"properties",{get:function(){var t=[];for(var e in this._currentKeyframe)t.push(e);return t},enumerable:!0,configurable:!0}),TimelineBuilder.prototype.mergeTimelineCollectedStyles=function(t){var e=this;Object.keys(t._styleSummary).forEach(function(n){var r=e._styleSummary[n],o=t._styleSummary[n];(!r||o.time>r.time)&&e._updateStyle(n,o.value)})},TimelineBuilder.prototype.buildKeyframes=function(){var t=this;this.applyStylesToKeyframe();var e=new Set,n=new Set,r=1===this._keyframes.size&&0===this.duration,i=[];this._keyframes.forEach(function(s,a){var u=copyStyles(s,!0);Object.keys(u).forEach(function(t){var r=u[t];r==o["ɵPRE_STYLE"]?e.add(t):r==o.AUTO_STYLE&&n.add(t)}),r||(u.offset=a/t.duration),i.push(u)});var s=e.size?iteratorToArray(e.values()):[],a=n.size?iteratorToArray(n.values()):[];if(r){var u=i[0],l=copyObj(u);u.offset=0,l.offset=1,i=[u,l]}return createTimelineInstruction(this.element,i,s,a,this.duration,this.startTime,this.easing,!1)},TimelineBuilder}(),W=function(t){function SubTimelineBuilder(e,n,r,o,i,s){void 0===s&&(s=!1);var a=t.call(this,e,i.delay)||this;return a.element=e,a.keyframes=n,a.preStyleProps=r,a.postStyleProps=o,a._stretchStartingKeyframe=s,a.timings={duration:i.duration,delay:i.delay,easing:i.easing},a}return r.a(SubTimelineBuilder,t),SubTimelineBuilder.prototype.containsAnimation=function(){return this.keyframes.length>1},SubTimelineBuilder.prototype.buildKeyframes=function(){var t=this.keyframes,e=this.timings,n=e.delay,r=e.duration,o=e.easing;if(this._stretchStartingKeyframe&&n){var i=[],s=r+n,a=n/s,u=copyStyles(t[0],!1);u.offset=0,i.push(u);var l=copyStyles(t[0],!1);l.offset=roundOffset(a),i.push(l);for(var c=t.length-1,p=1;p<=c;p++){var d=copyStyles(t[p],!1),h=d.offset,m=n+h*r;d.offset=roundOffset(m/s),i.push(d)}r=s,n=0,o="",t=i}return createTimelineInstruction(this.element,t,this.preStyleProps,this.postStyleProps,r,n,o,!0)},SubTimelineBuilder}(q),K=(function(){function Animation(t,e){this._driver=t;var n=[],r=buildAnimationAst(e,n);if(n.length){var o="animation validation failed:\n"+n.join("\n");throw new Error(o)}this._animationAst=r}Animation.prototype.buildTimelines=function(t,e,n,r,o){var i=Array.isArray(e)?normalizeStyles(e):e,s=Array.isArray(n)?normalizeStyles(n):n,a=[];o=o||new B;var u=buildAnimationTimelines(this._driver,t,this._animationAst,i,s,r,o,a);if(a.length){var l="animation building failed:\n"+a.join("\n");throw new Error(l)}return u}}(),function(){function AnimationStyleNormalizer(){}return AnimationStyleNormalizer}()),J=(function(){function NoopAnimationStyleNormalizer(){}NoopAnimationStyleNormalizer.prototype.normalizePropertyName=function(t,e){return t},NoopAnimationStyleNormalizer.prototype.normalizeStyleValue=function(t,e,n,r){return n}}(),function(t){function WebAnimationsStyleNormalizer(){return null!==t&&t.apply(this,arguments)||this}return r.a(WebAnimationsStyleNormalizer,t),WebAnimationsStyleNormalizer.prototype.normalizePropertyName=function(t,e){return dashCaseToCamelCase(t)},WebAnimationsStyleNormalizer.prototype.normalizeStyleValue=function(t,e,n,r){var o="",i=n.toString().trim();if(Q[e]&&0!==n&&"0"!==n)if("number"==typeof n)o="px";else{var s=n.match(/^[+-]?[\d\.]+([a-z]*)$/);s&&0==s[1].length&&r.push("Please provide a CSS unit value for "+t+":"+n)}return i+o},WebAnimationsStyleNormalizer}(K)),Q=makeBooleanMap("width,height,minWidth,minHeight,maxWidth,maxHeight,left,top,bottom,right,fontSize,outlineWidth,outlineOffset,paddingTop,paddingLeft,paddingBottom,paddingRight,marginTop,marginLeft,marginBottom,marginRight,borderRadius,borderWidth,borderTopWidth,borderLeftWidth,borderRightWidth,borderBottomWidth,textIndent,perspective".split(",")),X={},$=function(){function AnimationTransitionFactory(t,e,n){this._triggerName=t,this.ast=e,this._stateStyles=n}return AnimationTransitionFactory.prototype.match=function(t,e){return oneOrMoreTransitionsMatch(this.ast.matchers,t,e)},AnimationTransitionFactory.prototype.buildStyles=function(t,e,n){var r=this._stateStyles["*"],o=this._stateStyles[t],i=r?r.buildStyles(e,n):{};return o?o.buildStyles(e,n):i},AnimationTransitionFactory.prototype.build=function(t,e,n,r,o,i,s){var a=[],u=this.ast.options&&this.ast.options.params||X,l=o&&o.params||X,c=this.buildStyles(n,l,a),p=i&&i.params||X,d=this.buildStyles(r,p,a),h=new Set,m=new Map,f=new Map,y="void"===r,g={params:Object.assign({},u,p)},v=buildAnimationTimelines(t,e,this.ast.animation,c,d,g,s,a);if(a.length)return createTransitionInstruction(e,this._triggerName,n,r,y,c,d,[],[],m,f,a);v.forEach(function(t){var n=t.element,r=getOrSetAsInMap(m,n,{});t.preStyleProps.forEach(function(t){return r[t]=!0});var o=getOrSetAsInMap(f,n,{});t.postStyleProps.forEach(function(t){return o[t]=!0}),n!==e&&h.add(n)});var b=iteratorToArray(h.values());return createTransitionInstruction(e,this._triggerName,n,r,y,c,d,v,b,m,f)},AnimationTransitionFactory}(),Y=function(){function AnimationStateStyles(t,e){this.styles=t,this.defaultParams=e}return AnimationStateStyles.prototype.buildStyles=function(t,e){var n={},r=copyObj(this.defaultParams);return Object.keys(t).forEach(function(e){var n=t[e];null!=n&&(r[e]=n)}),this.styles.styles.forEach(function(t){if("string"!=typeof t){var o=t;Object.keys(o).forEach(function(t){var i=o[t];i.length>1&&(i=interpolateParams(i,r,e)),n[t]=i})}}),n},AnimationStateStyles}(),Z=function(){function AnimationTrigger(t,e){var n=this;this.name=t,this.ast=e,this.transitionFactories=[],this.states={},e.states.forEach(function(t){var e=t.options&&t.options.params||{};n.states[t.name]=new Y(t.style,e)}),balanceProperties(this.states,"true","1"),balanceProperties(this.states,"false","0"),e.transitions.forEach(function(e){n.transitionFactories.push(new $(t,e,n.states))}),this.fallbackTransition=createFallbackTransition(t,this.states)}return Object.defineProperty(AnimationTrigger.prototype,"containsQueries",{get:function(){return this.ast.queryCount>0},enumerable:!0,configurable:!0}),AnimationTrigger.prototype.matchTransition=function(t,e){return this.transitionFactories.find(function(n){return n.match(t,e)})||null},AnimationTrigger.prototype.matchStyles=function(t,e,n){return this.fallbackTransition.buildStyles(t,e,n)},AnimationTrigger}(),tt=new B,et=function(){function TimelineAnimationEngine(t,e){this._driver=t,this._normalizer=e,this._animations={},this._playersById={},this.players=[]}return TimelineAnimationEngine.prototype.register=function(t,e){var n=[],r=buildAnimationAst(e,n);if(n.length)throw new Error("Unable to build the animation due to the following errors: "+n.join("\n"));this._animations[t]=r},TimelineAnimationEngine.prototype._buildPlayer=function(t,e,n){var r=t.element,o=normalizeKeyframes(this._driver,this._normalizer,r,t.keyframes,e,n);return this._driver.animate(r,o,t.duration,t.delay,t.easing,[])},TimelineAnimationEngine.prototype.create=function(t,e,n){var r=this;void 0===n&&(n={});var i,s=[],a=this._animations[t],u=new Map;if(a?(i=buildAnimationTimelines(this._driver,e,a,{},{},n,tt,s),i.forEach(function(t){var e=getOrSetAsInMap(u,t.element,{});t.postStyleProps.forEach(function(t){return e[t]=null})})):(s.push("The requested animation doesn't exist or has already been destroyed"),i=[]),s.length)throw new Error("Unable to create the animation due to the following errors: "+s.join("\n"));u.forEach(function(t,e){Object.keys(t).forEach(function(n){t[n]=r._driver.computeStyle(e,n,o.AUTO_STYLE)})});var l=i.map(function(t){var e=u.get(t.element);return r._buildPlayer(t,{},e)}),c=optimizeGroupPlayer(l);return this._playersById[t]=c,c.onDestroy(function(){return r.destroy(t)}),this.players.push(c),c},TimelineAnimationEngine.prototype.destroy=function(t){var e=this._getPlayer(t);e.destroy(),delete this._playersById[t];var n=this.players.indexOf(e);n>=0&&this.players.splice(n,1)},TimelineAnimationEngine.prototype._getPlayer=function(t){var e=this._playersById[t];if(!e)throw new Error("Unable to find the timeline player referenced by "+t);return e},TimelineAnimationEngine.prototype.listen=function(t,e,n,r){var o=makeAnimationEvent(e,"","","");return listenOnPlayer(this._getPlayer(t),n,o,r),function(){}},TimelineAnimationEngine.prototype.command=function(t,e,n,r){if("register"==n)return void this.register(t,r[0]);if("create"==n){var o=r[0]||{};return void this.create(t,e,o)}var i=this._getPlayer(t);switch(n){case"play":i.play();break;case"pause":i.pause();break;case"reset":i.reset();break;case"restart":i.restart();break;case"finish":i.finish();break;case"init":i.init();break;case"setPosition":i.setPosition(parseFloat(r[0]));break;case"destroy":this.destroy(t)}},TimelineAnimationEngine}(),nt="ng-animate-queued",rt=".ng-animate-queued",ot="ng-animate-disabled",it=".ng-animate-disabled",st=[],at={namespaceId:"",setForRemoval:null,hasAnimation:!1,removedBeforeQueried:!1},ut={namespaceId:"",setForRemoval:null,hasAnimation:!1,removedBeforeQueried:!0},lt="__ng_removed",ct=function(){function StateValue(t){var e=t&&t.hasOwnProperty("value"),n=e?t.value:t;if(this.value=normalizeTriggerValue(n),e){var r=copyObj(t);delete r.value,this.options=r}else this.options={};this.options.params||(this.options.params={})}return Object.defineProperty(StateValue.prototype,"params",{get:function(){return this.options.params},enumerable:!0,configurable:!0}),StateValue.prototype.absorbOptions=function(t){var e=t.params;if(e){var n=this.options.params;Object.keys(e).forEach(function(t){null==n[t]&&(n[t]=e[t])})}},StateValue}(),pt="void",dt=new ct(pt),ht=new ct("DELETED"),mt=function(){function AnimationTransitionNamespace(t,e,n){this.id=t,this.hostElement=e,this._engine=n,this.players=[],this._triggers={},this._queue=[],this._elementListeners=new Map,this._hostClassName="ng-tns-"+t,addClass(e,this._hostClassName)}return AnimationTransitionNamespace.prototype.listen=function(t,e,n,r){var o=this;if(!this._triggers.hasOwnProperty(e))throw new Error('Unable to listen on the animation trigger event "'+n+'" because the animation trigger "'+e+"\" doesn't exist!");if(null==n||0==n.length)throw new Error('Unable to listen on the animation trigger "'+e+'" because the provided event is undefined!');if(!isTriggerEventValid(n))throw new Error('The provided animation trigger event "'+n+'" for the animation trigger "'+e+'" is not supported!');var i=getOrSetAsInMap(this._elementListeners,t,[]),s={name:e,phase:n,callback:r};i.push(s);var a=getOrSetAsInMap(this._engine.statesByElement,t,{});return a.hasOwnProperty(e)||(addClass(t,S),addClass(t,S+"-"+e),a[e]=null),function(){o._engine.afterFlush(function(){var t=i.indexOf(s);t>=0&&i.splice(t,1),o._triggers[e]||delete a[e]})}},AnimationTransitionNamespace.prototype.register=function(t,e){return!this._triggers[t]&&(this._triggers[t]=e,!0)},AnimationTransitionNamespace.prototype._getTrigger=function(t){var e=this._triggers[t];if(!e)throw new Error('The provided animation trigger "'+t+'" has not been registered!');return e},AnimationTransitionNamespace.prototype.trigger=function(t,e,n,r){var o=this;void 0===r&&(r=!0);var i=this._getTrigger(e),s=new yt(this.id,e,t),a=this._engine.statesByElement.get(t);a||(addClass(t,S),addClass(t,S+"-"+e),this._engine.statesByElement.set(t,a={}));var u=a[e],l=new ct(n);if(!(n&&n.hasOwnProperty("value"))&&u&&l.absorbOptions(u.options),a[e]=l,u){if(u===ht)return s}else u=dt;if(l.value===pt||u.value!==l.value){var c=getOrSetAsInMap(this._engine.playersByElement,t,[]);c.forEach(function(t){t.namespaceId==o.id&&t.triggerName==e&&t.queued&&t.destroy()});var p=i.matchTransition(u.value,l.value),d=!1;if(!p){if(!r)return;p=i.fallbackTransition,d=!0}return this._engine.totalQueuedPlayers++,this._queue.push({element:t,triggerName:e,transition:p,fromState:u,toState:l,player:s,isFallbackTransition:d}),d||(addClass(t,nt),s.onStart(function(){removeClass(t,nt)})),s.onDone(function(){var e=o.players.indexOf(s);e>=0&&o.players.splice(e,1);var n=o._engine.playersByElement.get(t);if(n){var r=n.indexOf(s);r>=0&&n.splice(r,1)}}),this.players.push(s),c.push(s),s}if(!objEquals(u.params,l.params)){var h=[],m=i.matchStyles(u.value,u.params,h),f=i.matchStyles(l.value,l.params,h);h.length?this._engine.reportError(h):this._engine.afterFlush(function(){eraseStyles(t,m),setStyles(t,f)})}},AnimationTransitionNamespace.prototype.deregister=function(t){var e=this;delete this._triggers[t],this._engine.statesByElement.forEach(function(e,n){delete e[t]}),this._elementListeners.forEach(function(n,r){e._elementListeners.set(r,n.filter(function(e){return e.name!=t}))})},AnimationTransitionNamespace.prototype.clearElementCache=function(t){this._engine.statesByElement.delete(t),this._elementListeners.delete(t);var e=this._engine.playersByElement.get(t);e&&(e.forEach(function(t){return t.destroy()}),this._engine.playersByElement.delete(t))},AnimationTransitionNamespace.prototype._destroyInnerNodes=function(t,e,n){var r=this;void 0===n&&(n=!1),this._engine.driver.query(t,A,!0).forEach(function(t){if(n&&containsClass(t,r._hostClassName)){var o=r._engine.namespacesByHostElement.get(t);o&&o.removeNode(t,e,!0),r.removeNode(t,e,!0)}else r.clearElementCache(t)})},AnimationTransitionNamespace.prototype.removeNode=function(t,e,n){var r=this,o=this._engine;!n&&t.childElementCount&&this._destroyInnerNodes(t,e,!0);var i=o.statesByElement.get(t);if(i){var s=[];if(Object.keys(i).forEach(function(e){if(r._triggers[e]){var n=r.trigger(t,e,pt,!1);n&&s.push(n)}}),s.length)return o.markElementAsRemoved(this.id,t,!0,e),void optimizeGroupPlayer(s).onDone(function(){return o.processLeaveNode(t)})}var a=!1;if(o.totalAnimations){var u=o.players.length?o.playersByQueriedElement.get(t):[];if(u&&u.length)a=!0;else for(var l=t;l=l.parentNode;){var c=o.statesByElement.get(l);if(c){a=!0;break}}}var p=this._elementListeners.get(t);if(p){var d=new Set;p.forEach(function(e){var n=e.name;if(!d.has(n)){d.add(n);var i=r._triggers[n],s=i.fallbackTransition,a=o.statesByElement.get(t),u=a[n]||dt,l=new ct(pt),c=new yt(r.id,n,t);r._engine.totalQueuedPlayers++,r._queue.push({element:t,triggerName:n,transition:s,fromState:u,toState:l,player:c,isFallbackTransition:!0})}})}a?o.markElementAsRemoved(this.id,t,!1,e):(o.afterFlush(function(){return r.clearElementCache(t)}),o.destroyInnerAnimations(t),o._onRemovalComplete(t,e))},AnimationTransitionNamespace.prototype.insertNode=function(t,e){addClass(t,this._hostClassName)},AnimationTransitionNamespace.prototype.drainQueuedTransitions=function(t){var e=this,n=[];return this._queue.forEach(function(r){var o=r.player;if(!o.destroyed){var i=r.element,s=e._elementListeners.get(i);s&&s.forEach(function(e){if(e.name==r.triggerName){var n=makeAnimationEvent(i,r.triggerName,r.fromState.value,r.toState.value);n._data=t,listenOnPlayer(r.player,e.phase,n,e.callback)}}),o.markedForDestroy?e._engine.afterFlush(function(){o.destroy()}):n.push(r)}}),this._queue=[],n.sort(function(t,n){var r=t.transition.ast.depCount,o=n.transition.ast.depCount;return 0==r||0==o?r-o:e._engine.driver.containsElement(t.element,n.element)?1:-1})},AnimationTransitionNamespace.prototype.destroy=function(t){this.players.forEach(function(t){return t.destroy()}),this._destroyInnerNodes(this.hostElement,t)},AnimationTransitionNamespace.prototype.elementContainsData=function(t){var e=!1;return this._elementListeners.has(t)&&(e=!0),e=!!this._queue.find(function(e){return e.element===t})||e},AnimationTransitionNamespace}(),ft=function(){function TransitionAnimationEngine(t,e){this.driver=t,this._normalizer=e,this.players=[],this.newHostElements=new Map,this.playersByElement=new Map,this.playersByQueriedElement=new Map,this.statesByElement=new Map,this.disabledNodes=new Set,this.totalAnimations=0,this.totalQueuedPlayers=0,this._namespaceLookup={},this._namespaceList=[],this._flushFns=[],this._whenQuietFns=[],this.namespacesByHostElement=new Map,this.collectedEnterElements=[],this.collectedLeaveElements=[],this.onRemovalComplete=function(t,e){}}return TransitionAnimationEngine.prototype._onRemovalComplete=function(t,e){this.onRemovalComplete(t,e)},Object.defineProperty(TransitionAnimationEngine.prototype,"queuedPlayers",{get:function(){var t=[];return this._namespaceList.forEach(function(e){e.players.forEach(function(e){e.queued&&t.push(e)})}),t},enumerable:!0,configurable:!0}),TransitionAnimationEngine.prototype.createNamespace=function(t,e){var n=new mt(t,e,this);return e.parentNode?this._balanceNamespaceList(n,e):(this.newHostElements.set(e,n),this.collectEnterElement(e)),this._namespaceLookup[t]=n},TransitionAnimationEngine.prototype._balanceNamespaceList=function(t,e){var n=this._namespaceList.length-1;if(n>=0){for(var r=!1,o=n;o>=0;o--){var i=this._namespaceList[o];if(this.driver.containsElement(i.hostElement,e)){this._namespaceList.splice(o+1,0,t),r=!0;break}}r||this._namespaceList.splice(0,0,t)}else this._namespaceList.push(t);return this.namespacesByHostElement.set(e,t),t},TransitionAnimationEngine.prototype.register=function(t,e){var n=this._namespaceLookup[t];return n||(n=this.createNamespace(t,e)),n},TransitionAnimationEngine.prototype.registerTrigger=function(t,e,n){var r=this._namespaceLookup[t];r&&r.register(e,n)&&this.totalAnimations++},TransitionAnimationEngine.prototype.destroy=function(t,e){var n=this;if(t){var r=this._fetchNamespace(t);this.afterFlush(function(){n.namespacesByHostElement.delete(r.hostElement),delete n._namespaceLookup[t];var e=n._namespaceList.indexOf(r);e>=0&&n._namespaceList.splice(e,1)}),this.afterFlushAnimationsDone(function(){return r.destroy(e)})}},TransitionAnimationEngine.prototype._fetchNamespace=function(t){return this._namespaceLookup[t]},TransitionAnimationEngine.prototype.trigger=function(t,e,n,r){return!!isElementNode(e)&&(this._fetchNamespace(t).trigger(e,n,r),!0)},TransitionAnimationEngine.prototype.insertNode=function(t,e,n,r){if(isElementNode(e)){var o=e[lt];o&&o.setForRemoval&&(o.setForRemoval=!1),t&&this._fetchNamespace(t).insertNode(e,n),r&&this.collectEnterElement(e)}},TransitionAnimationEngine.prototype.collectEnterElement=function(t){this.collectedEnterElements.push(t)},TransitionAnimationEngine.prototype.markElementAsDisabled=function(t,e){e?this.disabledNodes.has(t)||(this.disabledNodes.add(t),addClass(t,ot)):this.disabledNodes.has(t)&&(this.disabledNodes.delete(t),removeClass(t,ot))},TransitionAnimationEngine.prototype.removeNode=function(t,e,n,r){if(!isElementNode(e))return void this._onRemovalComplete(e,n);var o=t?this._fetchNamespace(t):null;o?o.removeNode(e,n,r):this.markElementAsRemoved(t,e,!1,n)},TransitionAnimationEngine.prototype.markElementAsRemoved=function(t,e,n,r){this.collectedLeaveElements.push(e),e[lt]={namespaceId:t,setForRemoval:r,hasAnimation:n,removedBeforeQueried:!1}},TransitionAnimationEngine.prototype.listen=function(t,e,n,r,o){return isElementNode(e)?this._fetchNamespace(t).listen(e,n,r,o):function(){}},TransitionAnimationEngine.prototype._buildInstruction=function(t,e){return t.transition.build(this.driver,t.element,t.fromState.value,t.toState.value,t.fromState.options,t.toState.options,e)},TransitionAnimationEngine.prototype.destroyInnerAnimations=function(t){var e=this,n=this.driver.query(t,A,!0);n.forEach(function(t){var n=e.playersByElement.get(t);n&&n.forEach(function(t){t.queued?t.markedForDestroy=!0:t.destroy()});var r=e.statesByElement.get(t);r&&Object.keys(r).forEach(function(t){return r[t]=ht})}),0!=this.playersByQueriedElement.size&&(n=this.driver.query(t,E,!0),n.length&&n.forEach(function(t){var n=e.playersByQueriedElement.get(t);n&&n.forEach(function(t){return t.finish()})}))},TransitionAnimationEngine.prototype.whenRenderingDone=function(){var t=this;return new Promise(function(e){if(t.players.length)return optimizeGroupPlayer(t.players).onDone(function(){return e()});e()})},TransitionAnimationEngine.prototype.processLeaveNode=function(t){var e=this,n=t[lt];if(n&&n.setForRemoval){if(t[lt]=at,n.namespaceId){this.destroyInnerAnimations(t);var r=this._fetchNamespace(n.namespaceId);r&&r.clearElementCache(t)}this._onRemovalComplete(t,n.setForRemoval)}this.driver.matchesElement(t,it)&&this.markElementAsDisabled(t,!1),this.driver.query(t,it,!0).forEach(function(n){e.markElementAsDisabled(t,!1)})},TransitionAnimationEngine.prototype.flush=function(t){var e=this;void 0===t&&(t=-1);var n=[];if(this.newHostElements.size&&(this.newHostElements.forEach(function(t,n){return e._balanceNamespaceList(t,n)}),this.newHostElements.clear()),this._namespaceList.length&&(this.totalQueuedPlayers||this.collectedLeaveElements.length)){var r=[];try{n=this._flushAnimations(r,t)}finally{for(var o=0;o<r.length;o++)r[o]()}}else for(var o=0;o<this.collectedLeaveElements.length;o++){var i=this.collectedLeaveElements[o];this.processLeaveNode(i)}if(this.totalQueuedPlayers=0,this.collectedEnterElements.length=0,this.collectedLeaveElements.length=0,this._flushFns.forEach(function(t){return t()}),this._flushFns=[],this._whenQuietFns.length){var s=this._whenQuietFns;this._whenQuietFns=[],n.length?optimizeGroupPlayer(n).onDone(function(){s.forEach(function(t){return t()})}):s.forEach(function(t){return t()})}},TransitionAnimationEngine.prototype.reportError=function(t){throw new Error("Unable to process animations due to the following failed trigger transitions\n "+t.join("\n"))},TransitionAnimationEngine.prototype._flushAnimations=function(t,e){var n=this,r=new B,i=[],s=new Map,a=[],u=new Map,l=new Map,c=new Map,p=new Set;this.disabledNodes.forEach(function(t){p.add(t);for(var e=n.driver.query(t,rt,!0),r=0;r<e.length;r++)p.add(e[r])});for(var d=getBodyNode(),h=this.collectedEnterElements.length?this.collectedEnterElements.filter(createIsRootFilterFn(this.collectedEnterElements)):[],m=0;m<h.length;m++)addClass(h[m],v);for(var f=[],y=new Set,m=0;m<this.collectedLeaveElements.length;m++){var g=this.collectedLeaveElements[m],_=g[lt];_&&_.setForRemoval&&(addClass(g,b),f.push(g),_.hasAnimation||y.add(g))}t.push(function(){h.forEach(function(t){return removeClass(t,v)}),f.forEach(function(t){removeClass(t,b),n.processLeaveNode(t)})});for(var C=[],S=[],m=this._namespaceList.length-1;m>=0;m--){this._namespaceList[m].drainQueuedTransitions(e).forEach(function(t){var e=t.player;C.push(e);var o=t.element;if(!d||!n.driver.containsElement(d,o))return void e.destroy();var s=n._buildInstruction(t,r);if(s.errors&&s.errors.length)return void S.push(s);if(t.isFallbackTransition)return e.onStart(function(){return eraseStyles(o,s.fromStyles)}),e.onDestroy(function(){return setStyles(o,s.toStyles)}),void i.push(e);s.timelines.forEach(function(t){return t.stretchStartingKeyframe=!0}),r.append(o,s.timelines);var p={instruction:s,player:e,element:o};a.push(p),s.queriedElements.forEach(function(t){return getOrSetAsInMap(u,t,[]).push(e)}),s.preStyleProps.forEach(function(t,e){var n=Object.keys(t);if(n.length){var r=l.get(e);r||l.set(e,r=new Set),n.forEach(function(t){return r.add(t)})}}),s.postStyleProps.forEach(function(t,e){var n=Object.keys(t),r=c.get(e);r||c.set(e,r=new Set),n.forEach(function(t){return r.add(t)})})})}if(S.length){var A=[];S.forEach(function(t){A.push("@"+t.triggerName+" has failed due to:\n"),t.errors.forEach(function(t){return A.push("- "+t+"\n")})}),C.forEach(function(t){return t.destroy()}),this.reportError(A)}for(var T=new Set,m=0;m<h.length;m++){var g=h[m];r.has(g)||T.add(g)}var P=new Map,w=[];a.forEach(function(t){var e=t.element;r.has(e)&&(w.unshift(e),n._beforeAnimationBuild(t.player.namespaceId,t.instruction,P))}),i.forEach(function(t){var e=t.element;n._getPreviousPlayers(e,!1,t.namespaceId,t.triggerName,null).forEach(function(t){getOrSetAsInMap(P,e,[]).push(t),t.destroy()})});var x=f.filter(function(t){return replacePostStylesAsPre(t,l,c)}),O=cloakAndComputeStyles(this.driver,y,c,o.AUTO_STYLE),M=O[0];O[1].forEach(function(t){replacePostStylesAsPre(t,l,c)&&x.push(t)});var N=(l.size?cloakAndComputeStyles(this.driver,T,l,o["ɵPRE_STYLE"]):[new Map])[0];x.forEach(function(t){var e=M.get(t),n=N.get(t);M.set(t,Object.assign({},e,n))});var F=[],V=[];a.forEach(function(t){var e=t.element,o=t.player,a=t.instruction;if(r.has(e)){if(p.has(e))return void i.push(o);var u=n._buildAnimation(o.namespaceId,a,P,s,N,M);o.setRealPlayer(u);for(var l=null,c=0;c<w.length;c++){var d=w[c];if(d===e)break;if(n.driver.containsElement(d,e)){l=d;break}}if(l){var h=n.playersByElement.get(l);h&&h.length&&(o.parentPlayer=optimizeGroupPlayer(h)),i.push(o)}else F.push(o)}else eraseStyles(e,a.fromStyles),o.onDestroy(function(){return setStyles(e,a.toStyles)}),V.push(o),p.has(e)&&i.push(o)}),V.forEach(function(t){var e=s.get(t.element);if(e&&e.length){var n=optimizeGroupPlayer(e);t.setRealPlayer(n)}}),i.forEach(function(t){t.parentPlayer?t.parentPlayer.onDestroy(function(){return t.destroy()}):t.destroy()});for(var m=0;m<f.length;m++){var g=f[m],_=g[lt];if(removeClass(g,b),!_||!_.hasAnimation){var I=[];if(u.size){var D=u.get(g);D&&D.length&&I.push.apply(I,D);for(var k=this.driver.query(g,E,!0),R=0;R<k.length;R++){var j=u.get(k[R]);j&&j.length&&I.push.apply(I,j)}}var H=I.filter(function(t){return!t.destroyed});H.length?removeNodesAfterAnimationDone(this,g,H):this.processLeaveNode(g)}}return f.length=0,F.forEach(function(t){n.players.push(t),t.onDone(function(){t.destroy();var e=n.players.indexOf(t);n.players.splice(e,1)}),t.play()}),F},TransitionAnimationEngine.prototype.elementContainsData=function(t,e){var n=!1,r=e[lt];return r&&r.setForRemoval&&(n=!0),this.playersByElement.has(e)&&(n=!0),this.playersByQueriedElement.has(e)&&(n=!0),this.statesByElement.has(e)&&(n=!0),this._fetchNamespace(t).elementContainsData(e)||n},TransitionAnimationEngine.prototype.afterFlush=function(t){this._flushFns.push(t)},TransitionAnimationEngine.prototype.afterFlushAnimationsDone=function(t){this._whenQuietFns.push(t)},TransitionAnimationEngine.prototype._getPreviousPlayers=function(t,e,n,r,o){var i=[];if(e){var s=this.playersByQueriedElement.get(t);s&&(i=s)}else{var a=this.playersByElement.get(t);if(a){var u=!o||o==pt;a.forEach(function(t){t.queued||(u||t.triggerName==r)&&i.push(t)})}}return(n||r)&&(i=i.filter(function(t){return(!n||n==t.namespaceId)&&(!r||r==t.triggerName)})),i},TransitionAnimationEngine.prototype._beforeAnimationBuild=function(t,e,n){var r=this,o=e.triggerName,i=e.element,s=e.isRemovalTransition?void 0:t,a=e.isRemovalTransition?void 0:o;e.timelines.map(function(t){var o=t.element,u=o!==i,l=getOrSetAsInMap(n,o,[]);r._getPreviousPlayers(o,u,s,a,e.toState).forEach(function(t){var e=t.getRealPlayer();e.beforeDestroy&&e.beforeDestroy(),t.destroy(),l.push(t)})}),eraseStyles(i,e.fromStyles)},TransitionAnimationEngine.prototype._buildAnimation=function(t,e,n,r,i,s){var a=this,u=e.triggerName,l=e.element,c=[],p=new Set,d=new Set,h=e.timelines.map(function(e){var h=e.element;p.add(h);var m=h[lt];if(m&&m.removedBeforeQueried)return new o.NoopAnimationPlayer;var f=h!==l,y=flattenGroupPlayers((n.get(h)||st).map(function(t){return t.getRealPlayer()})).filter(function(t){var e=t;return!!e.element&&e.element===h}),g=i.get(h),v=s.get(h),b=normalizeKeyframes(a.driver,a._normalizer,h,e.keyframes,g,v),_=a._buildPlayer(e,b,y);if(e.subTimeline&&r&&d.add(h),f){var C=new yt(t,u,h);C.setRealPlayer(_),c.push(C)}return _});c.forEach(function(t){getOrSetAsInMap(a.playersByQueriedElement,t.element,[]).push(t),t.onDone(function(){return deleteOrUnsetInMap(a.playersByQueriedElement,t.element,t)})}),p.forEach(function(t){return addClass(t,T)});var m=optimizeGroupPlayer(h);return m.onDestroy(function(){p.forEach(function(t){return removeClass(t,T)}),setStyles(l,e.toStyles)}),d.forEach(function(t){getOrSetAsInMap(r,t,[]).push(m)}),m},TransitionAnimationEngine.prototype._buildPlayer=function(t,e,n){return e.length>0?this.driver.animate(t.element,e,t.duration,t.delay,t.easing,n):new o.NoopAnimationPlayer},TransitionAnimationEngine}(),yt=function(){function TransitionAnimationPlayer(t,e,n){this.namespaceId=t,this.triggerName=e,this.element=n,this._player=new o.NoopAnimationPlayer,this._containsRealPlayer=!1,this._queuedCallbacks={},this._destroyed=!1,this.markedForDestroy=!1}return Object.defineProperty(TransitionAnimationPlayer.prototype,"queued",{get:function(){return 0==this._containsRealPlayer},enumerable:!0,configurable:!0}),Object.defineProperty(TransitionAnimationPlayer.prototype,"destroyed",{get:function(){return this._destroyed},enumerable:!0,configurable:!0}),TransitionAnimationPlayer.prototype.setRealPlayer=function(t){var e=this;this._containsRealPlayer||(this._player=t,Object.keys(this._queuedCallbacks).forEach(function(n){e._queuedCallbacks[n].forEach(function(e){return listenOnPlayer(t,n,void 0,e)})}),this._queuedCallbacks={},this._containsRealPlayer=!0)},TransitionAnimationPlayer.prototype.getRealPlayer=function(){return this._player},TransitionAnimationPlayer.prototype._queueEvent=function(t,e){getOrSetAsInMap(this._queuedCallbacks,t,[]).push(e)},TransitionAnimationPlayer.prototype.onDone=function(t){this.queued&&this._queueEvent("done",t),this._player.onDone(t)},TransitionAnimationPlayer.prototype.onStart=function(t){this.queued&&this._queueEvent("start",t),this._player.onStart(t)},TransitionAnimationPlayer.prototype.onDestroy=function(t){this.queued&&this._queueEvent("destroy",t),this._player.onDestroy(t)},TransitionAnimationPlayer.prototype.init=function(){this._player.init()},TransitionAnimationPlayer.prototype.hasStarted=function(){return!this.queued&&this._player.hasStarted()},TransitionAnimationPlayer.prototype.play=function(){!this.queued&&this._player.play()},TransitionAnimationPlayer.prototype.pause=function(){!this.queued&&this._player.pause()},TransitionAnimationPlayer.prototype.restart=function(){!this.queued&&this._player.restart()},TransitionAnimationPlayer.prototype.finish=function(){this._player.finish()},TransitionAnimationPlayer.prototype.destroy=function(){this._destroyed=!0,this._player.destroy()},TransitionAnimationPlayer.prototype.reset=function(){!this.queued&&this._player.reset()},TransitionAnimationPlayer.prototype.setPosition=function(t){this.queued||this._player.setPosition(t)},TransitionAnimationPlayer.prototype.getPosition=function(){return this.queued?0:this._player.getPosition()},Object.defineProperty(TransitionAnimationPlayer.prototype,"totalTime",{get:function(){return this._player.totalTime},enumerable:!0,configurable:!0}),TransitionAnimationPlayer}(),gt="$$classes",vt=function(){function AnimationEngine(t,e){var n=this;this._triggerCache={},this.onRemovalComplete=function(t,e){},this._transitionEngine=new ft(t,e),this._timelineEngine=new et(t,e),this._transitionEngine.onRemovalComplete=function(t,e){return n.onRemovalComplete(t,e)}}return AnimationEngine.prototype.registerTrigger=function(t,e,n,r,o){var i=t+"-"+r,s=this._triggerCache[i];if(!s){var a=[],u=buildAnimationAst(o,a);if(a.length)throw new Error('The animation trigger "'+r+'" has failed to build due to the following errors:\n - '+a.join("\n - "));s=buildTrigger(r,u),this._triggerCache[i]=s}this._transitionEngine.registerTrigger(e,r,s)},AnimationEngine.prototype.register=function(t,e){this._transitionEngine.register(t,e)},AnimationEngine.prototype.destroy=function(t,e){this._transitionEngine.destroy(t,e)},AnimationEngine.prototype.onInsert=function(t,e,n,r){this._transitionEngine.insertNode(t,e,n,r)},AnimationEngine.prototype.onRemove=function(t,e,n){this._transitionEngine.removeNode(t,e,n)},AnimationEngine.prototype.disableAnimations=function(t,e){this._transitionEngine.markElementAsDisabled(t,e)},AnimationEngine.prototype.process=function(t,e,n,r){if("@"==n.charAt(0)){var o=parseTimelineCommand(n),i=o[0],s=o[1],a=r;this._timelineEngine.command(i,e,s,a)}else this._transitionEngine.trigger(t,e,n,r)},AnimationEngine.prototype.listen=function(t,e,n,r,o){if("@"==n.charAt(0)){var i=parseTimelineCommand(n),s=i[0],a=i[1];return this._timelineEngine.listen(s,e,a,o)}return this._transitionEngine.listen(t,e,n,r,o)},AnimationEngine.prototype.flush=function(t){void 0===t&&(t=-1),this._transitionEngine.flush(t)},Object.defineProperty(AnimationEngine.prototype,"players",{get:function(){return this._transitionEngine.players.concat(this._timelineEngine.players)},enumerable:!0,configurable:!0}),AnimationEngine.prototype.whenRenderingDone=function(){return this._transitionEngine.whenRenderingDone()},AnimationEngine}(),bt=function(){function WebAnimationsPlayer(t,e,n,r){void 0===r&&(r=[]);var o=this;this.element=t,this.keyframes=e,this.options=n,this.previousPlayers=r,this._onDoneFns=[],this._onStartFns=[],this._onDestroyFns=[],this._initialized=!1,this._finished=!1,this._started=!1,this._destroyed=!1,this.time=0,this.parentPlayer=null,this.previousStyles={},this.currentSnapshot={},this._duration=n.duration,this._delay=n.delay||0,this.time=this._duration+this._delay,allowPreviousPlayerStylesMerge(this._duration,this._delay)&&r.forEach(function(t){var e=t.currentSnapshot;Object.keys(e).forEach(function(t){return o.previousStyles[t]=e[t]})})}return WebAnimationsPlayer.prototype._onFinish=function(){this._finished||(this._finished=!0,this._onDoneFns.forEach(function(t){return t()}),this._onDoneFns=[])},WebAnimationsPlayer.prototype.init=function(){this._buildPlayer(),this._preparePlayerBeforeStart()},WebAnimationsPlayer.prototype._buildPlayer=function(){var t=this;if(!this._initialized){this._initialized=!0;var e=this.keyframes.map(function(t){return copyStyles(t,!1)}),n=Object.keys(this.previousStyles);if(n.length){var r=e[0],o=[];if(n.forEach(function(e){r.hasOwnProperty(e)||o.push(e),r[e]=t.previousStyles[e]}),o.length)for(var i=this,s=function(){var t=e[a];o.forEach(function(e){t[e]=_computeStyle(i.element,e)})},a=1;a<e.length;a++)s()}this._player=this._triggerWebAnimation(this.element,e,this.options),this._finalKeyframe=e.length?e[e.length-1]:{},this._player.addEventListener("finish",function(){return t._onFinish()})}},WebAnimationsPlayer.prototype._preparePlayerBeforeStart=function(){this._delay?this._resetDomPlayerState():this._player.pause()},WebAnimationsPlayer.prototype._triggerWebAnimation=function(t,e,n){return t.animate(e,n)},Object.defineProperty(WebAnimationsPlayer.prototype,"domPlayer",{get:function(){return this._player},enumerable:!0,configurable:!0}),WebAnimationsPlayer.prototype.onStart=function(t){this._onStartFns.push(t)},WebAnimationsPlayer.prototype.onDone=function(t){this._onDoneFns.push(t)},WebAnimationsPlayer.prototype.onDestroy=function(t){this._onDestroyFns.push(t)},WebAnimationsPlayer.prototype.play=function(){this._buildPlayer(),this.hasStarted()||(this._onStartFns.forEach(function(t){return t()}),this._onStartFns=[],this._started=!0),this._player.play()},WebAnimationsPlayer.prototype.pause=function(){this.init(),this._player.pause()},WebAnimationsPlayer.prototype.finish=function(){this.init(),this._onFinish(),this._player.finish()},WebAnimationsPlayer.prototype.reset=function(){this._resetDomPlayerState(),this._destroyed=!1,this._finished=!1,this._started=!1},WebAnimationsPlayer.prototype._resetDomPlayerState=function(){this._player&&this._player.cancel()},WebAnimationsPlayer.prototype.restart=function(){this.reset(),this.play()},WebAnimationsPlayer.prototype.hasStarted=function(){return this._started},WebAnimationsPlayer.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this._resetDomPlayerState(),this._onFinish(),this._onDestroyFns.forEach(function(t){return t()}),this._onDestroyFns=[])},WebAnimationsPlayer.prototype.setPosition=function(t){this._player.currentTime=t*this.time},WebAnimationsPlayer.prototype.getPosition=function(){return this._player.currentTime/this.time},Object.defineProperty(WebAnimationsPlayer.prototype,"totalTime",{get:function(){return this._delay+this._duration},enumerable:!0,configurable:!0}),WebAnimationsPlayer.prototype.beforeDestroy=function(){var t=this,e={};this.hasStarted()&&Object.keys(this._finalKeyframe).forEach(function(n){"offset"!=n&&(e[n]=t._finished?t._finalKeyframe[n]:_computeStyle(t.element,n))}),this.currentSnapshot=e},WebAnimationsPlayer}(),_t=function(){function WebAnimationsDriver(){}return WebAnimationsDriver.prototype.matchesElement=function(t,e){return c(t,e)},WebAnimationsDriver.prototype.containsElement=function(t,e){return p(t,e)},WebAnimationsDriver.prototype.query=function(t,e,n){return d(t,e,n)},WebAnimationsDriver.prototype.computeStyle=function(t,e,n){return window.getComputedStyle(t)[e]},WebAnimationsDriver.prototype.animate=function(t,e,n,r,o,i){void 0===i&&(i=[]);var s=0==r?"both":"forwards",a={duration:n,delay:r,fill:s};o&&(a.easing=o);var u=i.filter(function(t){return t instanceof bt});return new bt(t,e,a,u)},WebAnimationsDriver}()},254:function(t,e,n){"use strict";function issueAnimationCommand(t,e,n,r,o){return t.setProperty(e,"@@"+n+":"+r,o)}function resolveElementFromTarget(t){switch(t){case"body":return document.body;case"document":return document;case"window":return window;default:return t}}function parseTriggerCallbackName(t){var e=t.indexOf(".");return[t.substring(0,e),t.substr(e+1)]}function instantiateSupportedAnimationDriver(){return n.i(a.d)()?new a.e:new a.f}function instantiateDefaultStyleNormalizer(){return new a.g}function instantiateRendererFactory(t,e,n){return new h(t,e,n)}Object.defineProperty(e,"__esModule",{value:!0});var r=n(17),o=n(2),i=n(22),s=n(33),a=n(252);n.d(e,"BrowserAnimationsModule",function(){return _}),n.d(e,"NoopAnimationsModule",function(){return C}),n.d(e,"ɵBrowserAnimationBuilder",function(){return u}),n.d(e,"ɵBrowserAnimationFactory",function(){return l}),n.d(e,"ɵAnimationRenderer",function(){return f}),n.d(e,"ɵAnimationRendererFactory",function(){return h}),n.d(e,"ɵa",function(){return m}),n.d(e,"ɵf",function(){return v}),n.d(e,"ɵg",function(){return b}),n.d(e,"ɵb",function(){return y}),n.d(e,"ɵd",function(){return instantiateDefaultStyleNormalizer}),n.d(e,"ɵe",function(){return instantiateRendererFactory}),n.d(e,"ɵc",function(){return instantiateSupportedAnimationDriver});/**
 * @license Angular v4.4.6
 * (c) 2010-2017 Google, Inc. https://angular.io/
 * License: MIT
 */
/**
 * @license
 * Copyright Google Inc. All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://angular.io/license
 */
var u=function(t){function BrowserAnimationBuilder(e,n){var r=t.call(this)||this;r._nextAnimationId=0;var i={id:"0",encapsulation:o.ViewEncapsulation.None,styles:[],data:{animation:[]}};return r._renderer=e.createRenderer(n.body,i),r}return r.a(BrowserAnimationBuilder,t),BrowserAnimationBuilder.prototype.build=function(t){var e=this._nextAnimationId.toString();this._nextAnimationId++;var r=Array.isArray(t)?n.i(s.sequence)(t):t;return issueAnimationCommand(this._renderer,null,e,"register",[r]),new l(e,this._renderer)},BrowserAnimationBuilder}(s.AnimationBuilder);u.decorators=[{type:o.Injectable}],u.ctorParameters=function(){return[{type:o.RendererFactory2},{type:void 0,decorators:[{type:o.Inject,args:[i.DOCUMENT]}]}]};var l=function(t){function BrowserAnimationFactory(e,n){var r=t.call(this)||this;return r._id=e,r._renderer=n,r}return r.a(BrowserAnimationFactory,t),BrowserAnimationFactory.prototype.create=function(t,e){return new c(this._id,t,e||{},this._renderer)},BrowserAnimationFactory}(s.AnimationFactory),c=function(){function RendererAnimationPlayer(t,e,n,r){this.id=t,this.element=e,this._renderer=r,this.parentPlayer=null,this._started=!1,this.totalTime=0,this._command("create",n)}return RendererAnimationPlayer.prototype._listen=function(t,e){return this._renderer.listen(this.element,"@@"+this.id+":"+t,e)},RendererAnimationPlayer.prototype._command=function(t){for(var e=[],n=1;n<arguments.length;n++)e[n-1]=arguments[n];return issueAnimationCommand(this._renderer,this.element,this.id,t,e)},RendererAnimationPlayer.prototype.onDone=function(t){this._listen("done",t)},RendererAnimationPlayer.prototype.onStart=function(t){this._listen("start",t)},RendererAnimationPlayer.prototype.onDestroy=function(t){this._listen("destroy",t)},RendererAnimationPlayer.prototype.init=function(){this._command("init")},RendererAnimationPlayer.prototype.hasStarted=function(){return this._started},RendererAnimationPlayer.prototype.play=function(){this._command("play"),this._started=!0},RendererAnimationPlayer.prototype.pause=function(){this._command("pause")},RendererAnimationPlayer.prototype.restart=function(){this._command("restart")},RendererAnimationPlayer.prototype.finish=function(){this._command("finish")},RendererAnimationPlayer.prototype.destroy=function(){this._command("destroy")},RendererAnimationPlayer.prototype.reset=function(){this._command("reset")},RendererAnimationPlayer.prototype.setPosition=function(t){this._command("setPosition",t)},RendererAnimationPlayer.prototype.getPosition=function(){return 0},RendererAnimationPlayer}(),p="@",d="@.disabled",h=function(){function AnimationRendererFactory(t,e,n){this.delegate=t,this.engine=e,this._zone=n,this._currentId=0,this._microtaskId=1,this._animationCallbacksBuffer=[],this._rendererCache=new Map,this._cdRecurDepth=0,e.onRemovalComplete=function(t,e){e&&e.parentNode(t)&&e.removeChild(t.parentNode,t)}}return AnimationRendererFactory.prototype.createRenderer=function(t,e){var n=this,r=this.delegate.createRenderer(t,e);if(!(t&&e&&e.data&&e.data.animation)){var o=this._rendererCache.get(r);return o||(o=new m("",r,this.engine),this._rendererCache.set(r,o)),o}var i=e.id,s=e.id+"-"+this._currentId;return this._currentId++,this.engine.register(s,t),e.data.animation.forEach(function(e){return n.engine.registerTrigger(i,s,t,e.name,e)}),new f(this,s,r,this.engine)},AnimationRendererFactory.prototype.begin=function(){this._cdRecurDepth++,this.delegate.begin&&this.delegate.begin()},AnimationRendererFactory.prototype._scheduleCountTask=function(){var t=this;Zone.current.scheduleMicroTask("incremenet the animation microtask",function(){return t._microtaskId++})},AnimationRendererFactory.prototype.scheduleListenerCallback=function(t,e,n){var r=this;if(t>=0&&t<this._microtaskId)return void this._zone.run(function(){return e(n)});0==this._animationCallbacksBuffer.length&&Promise.resolve(null).then(function(){r._zone.run(function(){r._animationCallbacksBuffer.forEach(function(t){(0,t[0])(t[1])}),r._animationCallbacksBuffer=[]})}),this._animationCallbacksBuffer.push([e,n])},AnimationRendererFactory.prototype.end=function(){var t=this;this._cdRecurDepth--,0==this._cdRecurDepth&&this._zone.runOutsideAngular(function(){t._scheduleCountTask(),t.engine.flush(t._microtaskId)}),this.delegate.end&&this.delegate.end()},AnimationRendererFactory.prototype.whenRenderingDone=function(){return this.engine.whenRenderingDone()},AnimationRendererFactory}();h.decorators=[{type:o.Injectable}],h.ctorParameters=function(){return[{type:o.RendererFactory2},{type:a.a},{type:o.NgZone}]};var m=function(){function BaseAnimationRenderer(t,e,n){this.namespaceId=t,this.delegate=e,this.engine=n,this.destroyNode=this.delegate.destroyNode?function(t){return e.destroyNode(t)}:null}return Object.defineProperty(BaseAnimationRenderer.prototype,"data",{get:function(){return this.delegate.data},enumerable:!0,configurable:!0}),BaseAnimationRenderer.prototype.destroy=function(){this.engine.destroy(this.namespaceId,this.delegate),this.delegate.destroy()},BaseAnimationRenderer.prototype.createElement=function(t,e){return this.delegate.createElement(t,e)},BaseAnimationRenderer.prototype.createComment=function(t){return this.delegate.createComment(t)},BaseAnimationRenderer.prototype.createText=function(t){return this.delegate.createText(t)},BaseAnimationRenderer.prototype.appendChild=function(t,e){this.delegate.appendChild(t,e),this.engine.onInsert(this.namespaceId,e,t,!1)},BaseAnimationRenderer.prototype.insertBefore=function(t,e,n){this.delegate.insertBefore(t,e,n),this.engine.onInsert(this.namespaceId,e,t,!0)},BaseAnimationRenderer.prototype.removeChild=function(t,e){this.engine.onRemove(this.namespaceId,e,this.delegate)},BaseAnimationRenderer.prototype.selectRootElement=function(t){return this.delegate.selectRootElement(t)},BaseAnimationRenderer.prototype.parentNode=function(t){return this.delegate.parentNode(t)},BaseAnimationRenderer.prototype.nextSibling=function(t){return this.delegate.nextSibling(t)},BaseAnimationRenderer.prototype.setAttribute=function(t,e,n,r){this.delegate.setAttribute(t,e,n,r)},BaseAnimationRenderer.prototype.removeAttribute=function(t,e,n){this.delegate.removeAttribute(t,e,n)},BaseAnimationRenderer.prototype.addClass=function(t,e){this.delegate.addClass(t,e)},BaseAnimationRenderer.prototype.removeClass=function(t,e){this.delegate.removeClass(t,e)},BaseAnimationRenderer.prototype.setStyle=function(t,e,n,r){this.delegate.setStyle(t,e,n,r)},BaseAnimationRenderer.prototype.removeStyle=function(t,e,n){this.delegate.removeStyle(t,e,n)},BaseAnimationRenderer.prototype.setProperty=function(t,e,n){e.charAt(0)==p&&e==d?this.disableAnimations(t,!!n):this.delegate.setProperty(t,e,n)},BaseAnimationRenderer.prototype.setValue=function(t,e){this.delegate.setValue(t,e)},BaseAnimationRenderer.prototype.listen=function(t,e,n){return this.delegate.listen(t,e,n)},BaseAnimationRenderer.prototype.disableAnimations=function(t,e){this.engine.disableAnimations(t,e)},BaseAnimationRenderer}(),f=function(t){function AnimationRenderer(e,n,r,o){var i=t.call(this,n,r,o)||this;return i.factory=e,i.namespaceId=n,i}return r.a(AnimationRenderer,t),AnimationRenderer.prototype.setProperty=function(t,e,n){e.charAt(0)==p?"."==e.charAt(1)&&e==d?(n=void 0===n||!!n,this.disableAnimations(t,n)):this.engine.process(this.namespaceId,t,e.substr(1),n):this.delegate.setProperty(t,e,n)},AnimationRenderer.prototype.listen=function(t,e,n){var r=this;if(e.charAt(0)==p){var o=resolveElementFromTarget(t),i=e.substr(1),s="";return i.charAt(0)!=p&&(a=parseTriggerCallbackName(i),i=a[0],s=a[1]),this.engine.listen(this.namespaceId,o,i,s,function(t){var e=t._data||-1;r.factory.scheduleListenerCallback(e,n,t)})}return this.delegate.listen(t,e,n);var a},AnimationRenderer}(m),y=function(t){function InjectableAnimationEngine(e,n){return t.call(this,e,n)||this}return r.a(InjectableAnimationEngine,t),InjectableAnimationEngine}(a.a);y.decorators=[{type:o.Injectable}],y.ctorParameters=function(){return[{type:a.b},{type:a.c}]};var g=[{provide:s.AnimationBuilder,useClass:u},{provide:a.c,useFactory:instantiateDefaultStyleNormalizer},{provide:a.a,useClass:y},{provide:o.RendererFactory2,useFactory:instantiateRendererFactory,deps:[i["ɵDomRendererFactory2"],a.a,o.NgZone]}],v=[{provide:a.b,useFactory:instantiateSupportedAnimationDriver}].concat(g),b=[{provide:a.b,useClass:a.f}].concat(g),_=function(){function BrowserAnimationsModule(){}return BrowserAnimationsModule}();_.decorators=[{type:o.NgModule,args:[{exports:[i.BrowserModule],providers:v}]}],_.ctorParameters=function(){return[]};var C=function(){function NoopAnimationsModule(){}return NoopAnimationsModule}();C.decorators=[{type:o.NgModule,args:[{exports:[i.BrowserModule],providers:b}]}],C.ctorParameters=function(){return[]}},256:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n(2),o=n(23);n(281);var i=function(){function AppComponent(t,e){this.selectedStation=null;var n,r=e.nativeElement.getAttribute("config");try{n=JSON.parse(r)}catch(e){return console.debug("Could not parse config, falling back to defaults."),void t.initialize({})}t.initialize(n)}return AppComponent=__decorate([r.Component({selector:"htf-app",template:n(295),styles:[n(283)]}),__metadata("design:paramtypes",[o.ConfigService,r.ElementRef])],AppComponent)}();e.AppComponent=i},257:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n(19),o=n(2),i=n(23),s=n(30),a=n(258),u=function(){function CoreModule(t){if(t)throw new Error("CoreModule is already loaded. Import it in the AppModule only")}return CoreModule=__decorate([o.NgModule({imports:[r.CommonModule],declarations:[a.FlashMessagesComponent,a.FlashMessageTypeToClass],providers:[i.ConfigService,s.FlashMessageService],exports:[r.CommonModule,a.FlashMessagesComponent]}),__param(0,o.Optional()),__param(0,o.SkipSelf()),__metadata("design:paramtypes",[CoreModule])],CoreModule)}();e.CoreModule=u},258:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n(2),o=n(104),i=n(30),s=(l={},l[o.FlashMessageType.error]="ng-flash-message-error",l[o.FlashMessageType.warn]="ng-flash-message-warn",l),a=function(){function FlashMessageTypeToClass(){}return FlashMessageTypeToClass.prototype.transform=function(t){return s[t]},FlashMessageTypeToClass=__decorate([r.Pipe({name:"flashMessageTypeToClass"})],FlashMessageTypeToClass)}();e.FlashMessageTypeToClass=a;var u=function(){function FlashMessagesComponent(t){this.flashMessage=t}return Object.defineProperty(FlashMessagesComponent.prototype,"message",{get:function(){if(this.flashMessage.messages.length>0)return this.flashMessage.messages[0]},enumerable:!0,configurable:!0}),FlashMessagesComponent.prototype.dismiss=function(){this.flashMessage.dismissEarly()},FlashMessagesComponent.prototype.onMouseEnter=function(t){this.flashMessage.cancelDismissal(),t.showTooltip=t.hasTooltip},FlashMessagesComponent.prototype.onMouseExit=function(t){this.flashMessage.startDismissal(),t.showTooltip=!1},FlashMessagesComponent=__decorate([r.Component({selector:"htf-flash-messages",template:n(296),styles:[n(284)]}),__metadata("design:paramtypes",[i.FlashMessageService])],FlashMessagesComponent)}();e.FlashMessagesComponent=u;var l},259:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n(2),o=n(28),i=n(20),s=n(24),a=n(24),u=function(){function BasePlug(t,e,n,r){this.className=t,this.config=e,this.http=n,this.flashMessage=r}return BasePlug.prototype.plugExists=function(){return Boolean(this.test&&this.getPlugState())},BasePlug.prototype.respond=function(t,e){var n=this,r=new o.Headers({"Content-Type":"application/json"}),i=new o.RequestOptions({headers:r}),u=a.getTestBaseUrl(this.config.dashboardEnabled,this.test),l=u+"/plugs/"+this.plugName,c=JSON.stringify({method:t,args:e});this.http.post(l,c,i).subscribe(function(){},function(t){var e=s.messageFromErrorResponse(t);n.flashMessage.error("An error occurred trying to respond to plug "+n.plugName+".",e)})},BasePlug.prototype.getPlugState=function(){if(this.plugName&&this.test.plugStates[this.plugName])return this.test.plugStates[this.plugName];for(var t=0,e=Object.keys(this.test.plugStates);t<e.length;t++){var n=e[t];if(this.test.plugStates[n]&&-1!==this.test.plugDescriptors[n].mro.indexOf(this.className))return this.plugName=n,this.test.plugStates[n]}},__decorate([r.Input(),__metadata("design:type",i.TestState)],BasePlug.prototype,"test",void 0),BasePlug}();e.BasePlug=u},260:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n(33),o=n(2),i=n(28),s=n(22),a=n(23),u=n(30),l=n(106),c=n(259),p="openhtf.plugs.user_input.UserInput",d=function(t){function UserInputPlugComponent(e,n,r,o,i){var s=t.call(this,p,e,n,r)||this;return s.ref=o,s.sanitizer=i,s}return __extends(UserInputPlugComponent,t),Object.defineProperty(UserInputPlugComponent.prototype,"error",{get:function(){return this.getPlugState().error},enumerable:!0,configurable:!0}),Object.defineProperty(UserInputPlugComponent.prototype,"prompt",{get:function(){var t=this.getPlugState();if(this.lastPromptId!==t.id){this.lastPromptId=t.id;var e=this.sanitizer.sanitize(o.SecurityContext.HTML,t.message).replace(/&#10;/g,"<br>");this.lastPromptHtml=this.sanitizer.bypassSecurityTrustHtml(e),this.focusSelf(),t.default&&this.setResponse(t.default)}return this.lastPromptHtml},enumerable:!0,configurable:!0}),UserInputPlugComponent.prototype.hasTextInput=function(){return this.getPlugState()["text-input"]},UserInputPlugComponent.prototype.sendResponse=function(t){var e,n=this.getPlugState().id;this.hasTextInput()?(e=t.value,t.value=""):e="",this.respond("respond",[n,e])},UserInputPlugComponent.prototype.getPlugState=function(){return t.prototype.getPlugState.call(this)},UserInputPlugComponent.prototype.focusSelf=function(){var t=this.ref.nativeElement.querySelector("input");t&&t.focus()},UserInputPlugComponent.prototype.setResponse=function(t){var e=this.ref.nativeElement.querySelector("input");e&&(e.value=t)},UserInputPlugComponent=__decorate([o.Component({animations:[r.trigger("animateIn",l.washIn)],selector:"htf-user-input-plug",template:n(297),styles:[n(285)]}),__metadata("design:paramtypes",[a.ConfigService,i.Http,u.FlashMessageService,o.ElementRef,s.DomSanitizer])],UserInputPlugComponent)}(c.BasePlug);e.UserInputPlugComponent=d},261:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n(2),o=n(72),i=function(){function ElapsedTimePipe(t){this.time=t}return ElapsedTimePipe.prototype.transform=function(t,e){return void 0===e&&(e="%s"),e.replace("%s",this.getElapsedTimeString(t))},ElapsedTimePipe.prototype.getElapsedTimeString=function(t){if(null===this.time.last)return"0s";var e=t.endTimeMillis||this.time.last,n=Math.round((e-t.startTimeMillis)/1e3),r=Math.floor(n/60);if(0===r)return n+"s";var o=n-60*r,i=Math.floor(r/60);return 0===i?r+"m "+o+"s":i+"h "+(r-60*i)+"m "+o+"s"},ElapsedTimePipe=__decorate([r.Pipe({name:"elapsedTime",pure:!1}),__metadata("design:paramtypes",[o.TimeService])],ElapsedTimePipe)}();e.ElapsedTimePipe=i},262:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n(2),o=function(){function FocusDirective(t){this.ref=t}return FocusDirective.prototype.ngOnChanges=function(){this.focusOn&&this.ref.nativeElement.focus()},__decorate([r.Input("htfFocus"),__metadata("design:type",Boolean)],FocusDirective.prototype,"focusOn",void 0),FocusDirective=__decorate([r.Directive({selector:"[htfFocus]"}),__metadata("design:paramtypes",[r.ElementRef])],FocusDirective)}();e.FocusDirective=o},263:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n(2),o=function(){function GenealogyNodeComponent(){}return GenealogyNodeComponent.prototype.ngOnInit=function(){null===this.maxDepth?this.childMaxDepth=null:this.childMaxDepth=this.maxDepth-1,void 0===this.isRoot&&(this.isRoot=!0)},__decorate([r.Input(),__metadata("design:type",Boolean)],GenealogyNodeComponent.prototype,"isFirst",void 0),__decorate([r.Input(),__metadata("design:type",Boolean)],GenealogyNodeComponent.prototype,"isRoot",void 0),__decorate([r.Input(),__metadata("design:type",Object)],GenealogyNodeComponent.prototype,"node",void 0),__decorate([r.Input(),__metadata("design:type",Number)],GenealogyNodeComponent.prototype,"maxDepth",void 0),GenealogyNodeComponent=__decorate([r.Component({selector:"htf-genealogy-node",template:n(298),styles:[n(286)]})],GenealogyNodeComponent)}();e.GenealogyNodeComponent=o},264:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n(2),o=n(68),i=function(){function LogLevelToClassPipe(){}return LogLevelToClassPipe.prototype.transform=function(t){if(t)return t<=o.logLevels.debug?"ng-log-level-debug":t<=o.logLevels.info?"ng-log-level-info":t<=o.logLevels.warning?"ng-log-level-warning":t<=o.logLevels.error?"ng-log-level-error":"ng-log-level-critical"},LogLevelToClassPipe=__decorate([r.Pipe({name:"logLevelToClass"})],LogLevelToClassPipe)}();e.LogLevelToClassPipe=i},265:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=function(){function Attachment(t){Object.assign(this,t)}return Attachment}();e.Attachment=r},266:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n(2),o=function(){function ObjectToSortedValuesPipe(){}return ObjectToSortedValuesPipe.prototype.transform=function(t,e){void 0===e&&(e=null);var n=[],r=Object.keys(t);null===e&&r.sort();for(var o=0,i=r;o<i.length;o++){var s=i[o];n.push(t[s])}return null!==e&&n.sort(function(t,n){return t[e]<n[e]?-1:t[e]>n[e]?1:0}),n},ObjectToSortedValuesPipe=__decorate([r.Pipe({name:"objectToSortedValues",pure:!1})],ObjectToSortedValuesPipe)}();e.ObjectToSortedValuesPipe=o},267:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r,o=n(2),i=n(69),s=n(50),a=n(34),u=n(20);!function(t){t[t.fail=0]="fail",t[t.online=1]="online",t[t.pass=2]="pass",t[t.pending=3]="pending",t[t.running=4]="running",t[t.unreachable=5]="unreachable",t[t.warning=6]="warning"}(r||(r={}));var l=(f={},f[r.fail]="ng-status-fail",f[r.online]="ng-status-online",f[r.pass]="ng-status-pass",f[r.pending]="ng-status-pending",f[r.running]="ng-status-running",f[r.unreachable]="ng-status-unreachable",f[r.warning]="ng-status-warning",f),c=Symbol("unknownStatus"),p=(y={},y[i.MeasurementStatus.unset]=r.pending,y[i.MeasurementStatus.pass]=r.pass,y[i.MeasurementStatus.fail]=r.fail,y[s.PhaseStatus.waiting]=r.pending,y[s.PhaseStatus.running]=r.running,y[s.PhaseStatus.pass]=r.pass,y[s.PhaseStatus.fail]=r.fail,y[a.StationStatus.online]=r.online,y[a.StationStatus.unreachable]=r.unreachable,y[u.TestStatus.waiting]=r.pending,y[u.TestStatus.running]=r.running,y[u.TestStatus.pass]=r.pass,y[u.TestStatus.fail]=r.fail,y[u.TestStatus.error]=r.warning,y[u.TestStatus.timeout]=r.warning,y[u.TestStatus.aborted]=r.warning,y[c]=r.warning,y),d=(g={},g[i.MeasurementStatus.unset]="Unset",g[i.MeasurementStatus.pass]="Pass",g[i.MeasurementStatus.fail]="Fail",g[s.PhaseStatus.waiting]="Waiting",g[s.PhaseStatus.running]="Running",g[s.PhaseStatus.pass]="Pass",g[s.PhaseStatus.fail]="Fail",g[a.StationStatus.online]="Online",g[a.StationStatus.unreachable]="Unreachable",g[u.TestStatus.waiting]="Waiting",g[u.TestStatus.running]="Running",g[u.TestStatus.pass]="Pass",g[u.TestStatus.fail]="Fail",g[u.TestStatus.error]="Error",g[u.TestStatus.timeout]="Timeout",g[u.TestStatus.aborted]="Aborted",g[c]="Unknown",g),h=function(){function StatusToClassPipe(){}return StatusToClassPipe.prototype.transform=function(t){return t in p?l[p[t]]:(console.error('Unknown status "'+t+'".'),l[p[c]])},StatusToClassPipe=__decorate([o.Pipe({name:"statusToClass"})],StatusToClassPipe)}();e.StatusToClassPipe=h;var m=function(){function StatusToTextPipe(){}return StatusToTextPipe.prototype.transform=function(t){return t in p?d[t]:(console.error('Unknown status "'+t+'".'),d[c])},StatusToTextPipe=__decorate([o.Pipe({name:"statusToText"})],StatusToTextPipe)}();e.StatusToTextPipe=m;var f,y,g},268:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n(2),o={format:function(t){return"—"}},i=function(){function TimeAgoPipe(){}return TimeAgoPipe.prototype.transform=function(t){return o.format(t)},TimeAgoPipe=__decorate([r.Pipe({name:"timeAgo",pure:!1})],TimeAgoPipe)}();e.TimeAgoPipe=i},269:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n(2),o=function(){function TooltipDirective(t){this.ref=t}return TooltipDirective.prototype.ngOnInit=function(){if(0!==this.text.length){this.tooltipElement=document.createElement("div"),this.tooltipElement.innerHTML=this.text,this.tooltipElement.classList.add("ng-tooltip");var t=this.ref.nativeElement;t.classList.add("ng-tooltip-host"),t.insertBefore(this.tooltipElement,t.firstChild)}},TooltipDirective.prototype.onMouseEnter=function(){this.text.length>0&&this.tooltipElement.classList.add("ng-tooltip--is-visible")},TooltipDirective.prototype.onMouseLeave=function(){this.text.length>0&&this.tooltipElement.classList.remove("ng-tooltip--is-visible")},__decorate([r.Input("htfTooltip"),__metadata("design:type",String)],TooltipDirective.prototype,"text",void 0),__decorate([r.HostListener("mouseenter"),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",void 0)],TooltipDirective.prototype,"onMouseEnter",null),__decorate([r.HostListener("mouseleave"),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",void 0)],TooltipDirective.prototype,"onMouseLeave",null),TooltipDirective=__decorate([r.Directive({selector:"[htfTooltip]"}),__metadata("design:paramtypes",[r.ElementRef])],TooltipDirective)}();e.TooltipDirective=o},270:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n(2),o="…",i='\n  {{ trimmedContent }}\n  <button *ngIf="buttonLabel !== null" type="button" class="htf-link-button"\n          (click)="onClick()">\n    {{ buttonLabel }}\n  </button>\n',s=function(){function TrimmedTextComponent(){this.expanded=!1}return Object.defineProperty(TrimmedTextComponent.prototype,"buttonLabel",{get:function(){return!this.content||this.content.length<=this.maxChars?null:this.expanded?"collapse":"expand"},enumerable:!0,configurable:!0}),Object.defineProperty(TrimmedTextComponent.prototype,"trimmedContent",{get:function(){return!this.content||this.expanded||this.content.length<=this.maxChars?this.content:this.content.slice(0,this.maxChars-o.length)+o},enumerable:!0,configurable:!0}),TrimmedTextComponent.prototype.onClick=function(){this.expanded=!this.expanded},__decorate([r.Input(),__metadata("design:type",Number)],TrimmedTextComponent.prototype,"maxChars",void 0),__decorate([r.Input(),__metadata("design:type",String)],TrimmedTextComponent.prototype,"content",void 0),TrimmedTextComponent=__decorate([r.Component({selector:"htf-trimmed-text",template:i})],TrimmedTextComponent)}();e.TrimmedTextComponent=s},271:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n(2),o=n(23),i=n(34),s=n(72),a=n(109),u=200,l=1.5,c=1500,p=function(){function StationSelectedEvent(t){this.station=t}return StationSelectedEvent}();e.StationSelectedEvent=p;var d=function(){function StationListComponent(t,e,n){var o=this;if(this.dashboard=t,this.time=e,this.onSelectStation=new r.EventEmitter,this.retryCountdown=this.time.observable.map(function(t){var e=o.dashboard.retryTimeMs-t;return"Retrying in "+Math.round(e/1e3)+"s."}),this.stations=t.stations,!n.dashboardEnabled)var i=t.messages.subscribe(function(){for(var t=0,e=Object.keys(o.stations);t<e.length;t++){var n=e[t];o.select(o.stations[n]),i.unsubscribe();break}})}return Object.defineProperty(StationListComponent.prototype,"anyStationFound",{get:function(){return Object.keys(this.stations).length>0},enumerable:!0,configurable:!0}),Object.defineProperty(StationListComponent.prototype,"hasError",{get:function(){return this.dashboard.hasError},enumerable:!0,configurable:!0}),Object.defineProperty(StationListComponent.prototype,"isLoading",{get:function(){return this.dashboard.isSubscribing},enumerable:!0,configurable:!0}),Object.defineProperty(StationListComponent.prototype,"stationCount",{get:function(){return Object.keys(this.stations).length},enumerable:!0,configurable:!0}),StationListComponent.prototype.ngOnInit=function(){this.dashboard.subscribe(u,l,c)},StationListComponent.prototype.ngOnDestroy=function(){this.dashboard.unsubscribe()},StationListComponent.prototype.isReachable=function(t){return t.status!==i.StationStatus.unreachable},StationListComponent.prototype.select=function(t){this.onSelectStation.emit(new p(t))},StationListComponent.prototype.manualRetry=function(){this.dashboard.retryNow()},StationListComponent.prototype.manualReload=function(){this.dashboard.refresh()},__decorate([r.Input(),__metadata("design:type",i.Station)],StationListComponent.prototype,"selectedStation",void 0),__decorate([r.Output(),__metadata("design:type",Object)],StationListComponent.prototype,"onSelectStation",void 0),StationListComponent=__decorate([r.Component({selector:"htf-station-list",template:n(300),styles:[n(288)]}),__metadata("design:paramtypes",[a.DashboardService,s.TimeService,o.ConfigService])],StationListComponent)}();e.StationListComponent=d},272:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n(2),o=n(23),i=n(20),s=n(24),a=function(){function AttachmentsComponent(t){this.config=t,this.expanded=!1}return AttachmentsComponent.prototype.linkForAttachment=function(t){if(null!==this.test.testId&&this.test.status===i.TestStatus.running){return s.getTestBaseUrl(this.config.dashboardEnabled,this.test)+"/phases/"+t.phaseDescriptorId+"/attachments/"+t.name}if(null!==this.test.fileName){return s.getStationBaseUrl(this.config.dashboardEnabled,this.test.station)+"/history/"+this.test.fileName+"/attachments/"+t.name+"?sha1="+t.sha1}return null},AttachmentsComponent.prototype.toggleExpanded=function(){this.expanded=!this.expanded},__decorate([r.Input(),__metadata("design:type",i.TestState)],AttachmentsComponent.prototype,"test",void 0),AttachmentsComponent=__decorate([r.Component({selector:"htf-attachments",template:n(301),styles:[n(289)]}),__metadata("design:paramtypes",[o.ConfigService])],AttachmentsComponent)}();e.AttachmentsComponent=a},273:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n(33),o=n(2),i=n(30),s=n(106),a=n(34),u=n(20),l=n(24),c=n(110),p=n(73),d=function(){function TestSelectedEvent(t){this.test=t}return TestSelectedEvent}();e.TestSelectedEvent=d;var h=48,m=function(){function HistoryComponent(t,e){this.historyService=t,this.flashMessage=e,this.onSelectTest=new o.EventEmitter,this.collapsedNumTests=5,this.HistoryItemStatus=c.HistoryItemStatus,this.TestStatus=u.TestStatus,this.expanded=!1,this.hasError=!1,this.history=[],this.isLoading=!1,this.lastClickedItem=null}return HistoryComponent.prototype.ngOnChanges=function(t){"station"in t&&this.station.status===a.StationStatus.online&&(this.loadHistory(),this.history=this.historyService.getHistory(this.station))},HistoryComponent.prototype.isSelected=function(t){return t.status===c.HistoryItemStatus.loaded&&t.testState===this.selectedTest},HistoryComponent.prototype.onClick=function(t){var e=this;if(this.lastClickedItem=t,t.status!==c.HistoryItemStatus.loading)return t.status===c.HistoryItemStatus.loaded?(this.selectTest(t.testState),void(t.testState===this.selectedTest&&null===t.testState.fileName&&this.historyService.retrieveFileName(this.station,t).catch(function(t){404!==t.status&&e.flashMessage.warn("Could not retrieve history from disk, so attachments are not available. You may try again later.")}))):void this.historyService.loadItem(this.station,t).then(function(n){e.lastClickedItem===t&&e.selectTest(n)}).catch(function(t){console.error(t.stack);var n=l.messageFromErrorResponse(t);e.flashMessage.error("Error loading history item.",n)})},HistoryComponent.prototype.toggleExpanded=function(){this.expanded=!this.expanded},HistoryComponent.prototype.loadHistory=function(){var t=this;this.isLoading=!0,this.hasError=!1,this.historyService.refreshList(this.station).then(function(){t.isLoading=!1}).catch(function(){t.isLoading=!1,t.hasError=!0})},HistoryComponent.prototype.selectTest=function(t){t===this.selectedTest?this.selectedTest=null:this.selectedTest=t,this.onSelectTest.emit(new d(this.selectedTest))},__decorate([o.Input(),__metadata("design:type",u.TestState)],HistoryComponent.prototype,"selectedTest",void 0),__decorate([o.Input(),__metadata("design:type",a.Station)],HistoryComponent.prototype,"station",void 0),__decorate([o.Output(),__metadata("design:type",Object)],HistoryComponent.prototype,"onSelectTest",void 0),HistoryComponent=__decorate([o.Component({animations:[r.trigger("animateIn",s.washAndExpandIn(h))],selector:"htf-history",template:n(302),styles:[n(290)]}),__metadata("design:paramtypes",[p.HistoryService,i.FlashMessageService])],HistoryComponent)}();e.HistoryComponent=m},274:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n(2),o=n(68),i=n(20),s=function(){function LogsComponent(){this.expanded=!1}return Object.defineProperty(LogsComponent.prototype,"collapsedErrorCount",{get:function(){for(var t=0,e=0,n=this.test.logs;e<n.length;e++){n[e].level>o.logLevels.warning&&(t+=1)}return this.test.logs[0].level>o.logLevels.warning&&(t-=1),t},enumerable:!0,configurable:!0}),LogsComponent.prototype.toggleExpanded=function(){this.expanded=!this.expanded},__decorate([r.Input(),__metadata("design:type",i.TestState)],LogsComponent.prototype,"test",void 0),LogsComponent=__decorate([r.Component({selector:"htf-logs",template:n(303),styles:[n(291)]})],LogsComponent)}();e.LogsComponent=s},275:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n(2),o=n(20),i=function(){function PhaseListComponent(){this.showMeasurements=!1}return PhaseListComponent.prototype.toggleMeasurements=function(){this.showMeasurements=!this.showMeasurements},__decorate([r.Input(),__metadata("design:type",o.TestState)],PhaseListComponent.prototype,"test",void 0),PhaseListComponent=__decorate([r.Component({selector:"htf-phase-list",template:n(304)})],PhaseListComponent)}();e.PhaseListComponent=i},276:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n(2),o=n(69),i=n(50),s=function(){function PhaseComponent(){this.MeasurementStatus=o.MeasurementStatus,this.PhaseStatus=i.PhaseStatus}return Object.defineProperty(PhaseComponent.prototype,"showMeasurements",{get:function(){return this.expand&&this.phase.measurements.length>0},enumerable:!0,configurable:!0}),__decorate([r.Input(),__metadata("design:type",i.Phase)],PhaseComponent.prototype,"phase",void 0),__decorate([r.Input(),__metadata("design:type",Boolean)],PhaseComponent.prototype,"expand",void 0),PhaseComponent=__decorate([r.Component({selector:"htf-phase",template:n(305),styles:[n(292)]})],PhaseComponent)}();e.PhaseComponent=s},277:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n(2),o=n(23),i=n(34),s=n(112),a=function(){function StationDeselectedEvent(){}return StationDeselectedEvent}();e.StationDeselectedEvent=a;var u=200,l=1.08,c=1500,p=function(){function StationComponent(t,e){this.stationService=t,this.config=e,this.onDeselectStation=new r.EventEmitter,this.selectedTest=null}return Object.defineProperty(StationComponent.prototype,"activeTest",{get:function(){return null!==this.selectedTest?this.selectedTest:this.stationService.getTest(this.selectedStation)},enumerable:!0,configurable:!0}),Object.defineProperty(StationComponent.prototype,"dashboardEnabled",{get:function(){return this.config.dashboardEnabled},enumerable:!0,configurable:!0}),Object.defineProperty(StationComponent.prototype,"hasError",{get:function(){return this.stationService.hasError},enumerable:!0,configurable:!0}),Object.defineProperty(StationComponent.prototype,"isLoading",{get:function(){return this.stationService.isSubscribing},enumerable:!0,configurable:!0}),Object.defineProperty(StationComponent.prototype,"isOnline",{get:function(){return!(this.hasError||this.isLoading)},enumerable:!0,configurable:!0}),StationComponent.prototype.ngOnInit=function(){this.stationService.subscribe(this.selectedStation,u,l,c)},StationComponent.prototype.ngOnDestroy=function(){this.stationService.unsubscribe()},StationComponent.prototype.goBack=function(){this.onDeselectStation.emit(new a)},StationComponent.prototype.manualReload=function(){this.stationService.refresh()},StationComponent.prototype.onSelectTest=function(t){this.selectedTest=t},__decorate([r.Input(),__metadata("design:type",i.Station)],StationComponent.prototype,"selectedStation",void 0),__decorate([r.Output(),__metadata("design:type",Object)],StationComponent.prototype,"onDeselectStation",void 0),StationComponent=__decorate([r.Component({selector:"htf-station",template:n(306),styles:[n(293)]}),__metadata("design:paramtypes",[s.StationService,o.ConfigService])],StationComponent)}();e.StationComponent=p},278:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n(2),o=n(50),i=n(20),s=n(107),a=function(){function TestSummaryComponent(){}return TestSummaryComponent.prototype.ngOnChanges=function(t){"test"in t&&this.progressBar&&this.progressBar.reset()},Object.defineProperty(TestSummaryComponent.prototype,"completedPhaseCount",{get:function(){if(this.test.status===i.TestStatus.waiting)return 0;if(this.test.status===i.TestStatus.pass)return this.test.phases.length;for(var t=0,e=0,n=this.test.phases;e<n.length;e++){var r=n[e];if(r.status===o.PhaseStatus.running||r.status===o.PhaseStatus.fail)break;t++}return t},enumerable:!0,configurable:!0}),Object.defineProperty(TestSummaryComponent.prototype,"progressValue",{get:function(){return this.completedPhaseCount/this.test.phases.length},enumerable:!0,configurable:!0}),Object.defineProperty(TestSummaryComponent.prototype,"runningPhase",{get:function(){if(this.test.status===i.TestStatus.running)for(var t=0,e=this.test.phases;t<e.length;t++){var n=e[t];if(n.status===o.PhaseStatus.running)return n}return null},enumerable:!0,configurable:!0}),__decorate([r.Input(),__metadata("design:type",i.TestState)],TestSummaryComponent.prototype,"test",void 0),__decorate([r.ViewChild(s.ProgressBarComponent),__metadata("design:type",s.ProgressBarComponent)],TestSummaryComponent.prototype,"progressBar",void 0),TestSummaryComponent=__decorate([r.Component({selector:"htf-test-summary",template:n(307),styles:[n(294)]})],TestSummaryComponent)}();e.TestSummaryComponent=a},279:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n(19),o=n(2),i=n(105),s=n(70),a=n(109),u=n(271),l=n(272),c=n(273),p=n(73),d=n(274),h=n(275),m=n(276),f=n(277),y=n(112),g=n(278),v=function(){function StationsModule(){}return StationsModule=__decorate([o.NgModule({imports:[r.CommonModule,i.PlugsModule,s.SharedModule],declarations:[u.StationListComponent,l.AttachmentsComponent,c.HistoryComponent,d.LogsComponent,m.PhaseComponent,h.PhaseListComponent,f.StationComponent,g.TestSummaryComponent],providers:[a.DashboardService,p.HistoryService,y.StationService],exports:[r.CommonModule,f.StationComponent,u.StationListComponent]})],StationsModule)}();e.StationsModule=v},281:function(t,e){},283:function(t,e){t.exports="h1 {\n  color: #323232;\n  font-size: 20px;\n  margin: 0; }\n\nh2 {\n  color: #949a9f;\n  font-size: 12px;\n  margin-left: 5px; }\n"},284:function(t,e){t.exports="@keyframes flash-message-enter {\n  0% {\n    top: -32px; }\n  100% {\n    top: 0; } }\n\n@keyframes flash-message-exit {\n  0% {\n    top: 0; }\n  100% {\n    top: -32px; } }\n\n.flash-message {\n  animation: flash-message-enter 400ms forwards;\n  border-bottom-left-radius: 10px;\n  border-bottom-right-radius: 10px;\n  height: 32px;\n  left: 50%;\n  line-height: 31px;\n  min-width: 400px;\n  opacity: .9;\n  padding: 0 20px;\n  position: fixed;\n  text-align: center;\n  top: 0;\n  transform: translateX(-50%);\n  white-space: nowrap;\n  z-index: 2; }\n  .flash-message.flash-message--has-tooltip {\n    cursor: pointer; }\n  .flash-message.flash-message--is-dismissed {\n    animation: flash-message-exit 400ms forwards; }\n  .flash-message.ng-flash-message-error {\n    background: #ff5d4e;\n    color: #fff; }\n  .flash-message.ng-flash-message-warn {\n    background: #ffe54d;\n    color: #323232; }\n\n.flash-message-tooltip {\n  background: rgba(0, 0, 0, 0.7);\n  border-radius: 3px;\n  color: #fff;\n  font-size: 12px;\n  left: 50%;\n  line-height: initial;\n  max-width: 500px;\n  opacity: 0;\n  padding: 10px;\n  position: fixed;\n  text-align: left;\n  top: 40px;\n  transform: translateX(-50%);\n  transition: 200ms ease opacity;\n  white-space: pre-wrap;\n  word-wrap: break-word;\n  z-index: 2; }\n  .flash-message-tooltip.flash-message-tooltip--is-visible {\n    opacity: 1; }\n\n.flash-message-dismissal-button {\n  -webkit-appearance: initial;\n  background: transparent;\n  border: 0;\n  padding: 0;\n  border-radius: 50%;\n  border: 1px solid #fff;\n  color: inherit;\n  display: inline-block;\n  float: left;\n  font-size: 11px;\n  height: 18px;\n  left: -6px;\n  padding-left: 1px;\n  position: relative;\n  top: 6px;\n  width: 18px; }\n  .flash-message-dismissal-button:focus, .flash-message-dismissal-button:active {\n    outline: none; }\n\n.flash-message.ng-flash-message-warn .flash-message-dismissal-button {\n  border-color: #323232; }\n"},285:function(t,e){t.exports=":host /deep/ ol,\n:host /deep/ ul {\n  padding-left: 25px;\n  margin: 0; }\n\n.user-input-has-error {\n  border-color: #ff5d4e; }\n  .user-input-has-error:focus {\n    border-color: #e71400; }\n\n.user-input-error-text {\n  color: #ff5d4e;\n  font-size: 12px; }\n"},286:function(t,e){t.exports=".component-info {\n  border: 1px solid #323232;\n  display: inline-block;\n  margin-bottom: 10px;\n  padding: 5px;\n  position: relative; }\n\n.component-info:not(.is-root)::before {\n  border-bottom: 1px solid #323232;\n  border-left: 1px solid #323232;\n  content: '';\n  height: calc(100% + 11px);\n  left: -21px;\n  position: absolute;\n  top: calc(-50% - 11px);\n  width: 20px; }\n\n.component-info:not(.is-root).is-first::before {\n  height: calc(50% + 11px);\n  top: -11px; }\n\nul {\n  list-style: none;\n  margin: 0;\n  padding: 0;\n  padding-left: 40px; }\n\n.serial-number {\n  font-weight: bold; }\n"},287:function(t,e){t.exports=".outer {\n  height: 100%;\n  width: 100%;\n  background: #e5e5e5;\n  border-radius: 3px;\n  overflow: hidden; }\n  .outer.is-complete {\n    animation: htf-progress-bar-pulse 2s infinite; }\n\n.inner-wrapper {\n  height: 100%;\n  left: -10px;\n  position: relative;\n  width: calc(100% + 20px); }\n\n.inner {\n  background: rgba(0, 119, 255, 0.8);\n  height: 100%;\n  transition: width .4s ease;\n  transform: skewX(-30deg); }\n\n.stripes {\n  transform: skewX(45deg);\n  height: 100%;\n  width: 100%;\n  background-image: linear-gradient(-45deg, rgba(255, 255, 255, 0.08) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.08) 50%, rgba(255, 255, 255, 0.08) 75%, transparent 75%, transparent);\n  background-size: 50px 50px;\n  animation: move 4s linear infinite; }\n\n@keyframes htf-progress-bar-pulse {\n  0% {\n    box-shadow: 0 0 0 0 rgba(0, 119, 255, 0.25); }\n  70% {\n    box-shadow: 0 0 0 8px rgba(0, 119, 255, 0); }\n  100% {\n    box-shadow: 0 0 0 0 rgba(0, 119, 255, 0); } }\n\n@keyframes move {\n  0% {\n    background-position: 0 0; }\n  100% {\n    background-position: 50px 50px; } }\n"},288:function(t,e){t.exports=".nav-bar {\n  color: #949a9f;\n  display: -ms-flexbox;\n  display: flex;\n  font-size: 12px;\n  margin-bottom: 14px; }\n\n.station-list {\n  list-style: none;\n  margin: 0;\n  padding: 0; }\n\n.station-list li {\n  background: #fff;\n  border-radius: 3px;\n  border: 1px solid #ccc;\n  margin-bottom: 14px; }\n\n.station-list li button {\n  -webkit-appearance: initial;\n  background: transparent;\n  border: 0;\n  padding: 0;\n  box-shadow: inset 0 0 0 0 #07f;\n  cursor: pointer;\n  overflow: hidden;\n  padding: 15px 20px;\n  text-overflow: ellipsis;\n  transition: 300ms ease box-shadow;\n  white-space: nowrap;\n  width: 100%; }\n  .station-list li button:focus, .station-list li button:active {\n    outline: none; }\n  .station-list li button:hover, .station-list li button:active {\n    box-shadow: inset 0 -3px 0 0 #07f; }\n    .station-list li button:hover .station-label,\n    .station-list li button:hover .station-description, .station-list li button:active .station-label,\n    .station-list li button:active .station-description {\n      color: #07f; }\n  .station-list li button:focus .station-label,\n  .station-list li button:focus .station-description {\n    color: #07f; }\n  .station-list li button.is-unreachable {\n    color: #949a9f; }\n\n.station-label {\n  font-size: 16px;\n  transition: 300ms ease color; }\n\n.station-description {\n  color: #949a9f;\n  transition: 300ms ease color; }\n"},289:function(t,e){t.exports="ul {\n  list-style: none;\n  margin: 0;\n  padding: 0; }\n\nli {\n  -ms-flex-align: baseline;\n      align-items: baseline;\n  display: -ms-flexbox;\n  display: flex;\n  padding: 10px 15px;\n  border-bottom: 1px solid #e5e5e5; }\n  li:last-of-type {\n    border-bottom: 0; }\n"},290:function(t,e){t.exports=".history-item-container {\n  cursor: pointer;\n  overflow: hidden; }\n  .history-item-container.is-selected {\n    background: rgba(0, 119, 255, 0.2);\n    border: 2px solid rgba(0, 119, 255, 0.8); }\n\n.history-item {\n  height: 48px;\n  line-height: 47px;\n  -webkit-user-select: none;\n     -moz-user-select: none;\n      -ms-user-select: none;\n          user-select: none; }\n\n.history-item-name-container {\n  -ms-flex-positive: 1;\n      flex-grow: 1;\n  line-height: initial;\n  min-width: 0; }\n\n.history-item-name {\n  overflow: hidden;\n  text-overflow: ellipsis;\n  white-space: nowrap; }\n\n.history-item-status {\n  color: #949a9f;\n  font-size: 12px;\n  padding: 10px 0;\n  text-align: center;\n  margin-left: 15px;\n  margin-right: -15px;\n  min-width: 100px; }\n\n.status-text {\n  color: #949a9f;\n  font-size: 12px;\n  padding: 10px 0;\n  text-align: center; }\n"},291:function(t,e){t.exports="ul {\n  list-style: none;\n  margin: 0;\n  padding: 0;\n  font-size: 12px; }\n\nli {\n  display: -ms-flexbox;\n  display: flex;\n  padding: 10px 15px;\n  border-bottom: 1px solid #e5e5e5; }\n  li:last-of-type {\n    border-bottom: 0; }\n\n.log-message {\n  font-family: monospace, serif; }\n\n.timestamp-column {\n  font-size: 10px;\n  margin-right: 10px;\n  max-width: 170px;\n  min-width: 170px; }\n\n.logger-name {\n  color: #949a9f; }\n\n.log-message-content {\n  white-space: pre-wrap;\n  word-break: break-all; }\n\n.ng-log-level-warning {\n  background: rgba(255, 229, 77, 0.2); }\n\n.ng-log-level-error {\n  background: rgba(255, 93, 78, 0.25); }\n\n.ng-log-level-critical {\n  background: rgba(255, 93, 78, 0.45); }\n"},292:function(t,e){t.exports=".header-with-measurements {\n  border-bottom: 1px solid #e5e5e5; }\n\n.measurement-list {\n  border-collapse: separate;\n  border-right: 100px solid rgba(50, 50, 50, 0.1);\n  border-spacing: 0 3px;\n  font-size: 12px;\n  padding: 10px 15px;\n  width: 100%; }\n  .measurement-list.ng-status-fail {\n    border-right-color: rgba(255, 93, 78, 0.1); }\n  .measurement-list.ng-status-pass {\n    border-right-color: rgba(0, 232, 157, 0.1); }\n  .measurement-list.ng-status-running {\n    border-right-color: rgba(0, 119, 255, 0.1); }\n  .measurement-list thead {\n    text-decoration: underline; }\n  .measurement-list tbody {\n    vertical-align: top; }\n  .measurement-list td {\n    padding: 0; }\n  .measurement-list .measurement-column-name {\n    width: 30%;\n    padding-right: 5px; }\n  .measurement-list .measurement-column-value {\n    width: 30%;\n    padding-right: 5px; }\n  .measurement-list .measurement-column-validators {\n    width: 30%;\n    padding-right: 5px; }\n  .measurement-list .measurement-column-result {\n    text-align: right; }\n"},293:function(t,e){t.exports=".nav-bar {\n  display: -ms-flexbox;\n  display: flex;\n  font-size: 12px;\n  margin-bottom: 12px; }\n\n.status-bar {\n  margin-bottom: 16px; }\n\n.status-bar-row {\n  -ms-flex-align: baseline;\n      align-items: baseline;\n  display: -ms-flexbox;\n  display: flex; }\n\n.past-test-warning {\n  color: #ff5d4e; }\n  .past-test-warning .htf-layout-widget-header {\n    border: 0; }\n"},294:function(t,e){t.exports=".htf-status-indicator {\n  line-height: 53px; }\n\n.progress-bar-container {\n  -ms-flex-align: center;\n      align-items: center;\n  display: -ms-flexbox;\n  display: flex;\n  font-size: 12px;\n  white-space: nowrap; }\n\nhtf-progress-bar {\n  display: block;\n  -ms-flex-positive: 1;\n      flex-grow: 1;\n  height: 22px;\n  margin-left: 15px;\n  width: 100%; }\n\n.phase-container {\n  padding: 0; }\n\n:host /deep/ htf-phase .phase-name {\n  font-weight: bold; }\n  :host /deep/ htf-phase .phase-name::before {\n    content: 'Current phase: '; }\n"},295:function(t,e){t.exports='<htf-flash-messages></htf-flash-messages>\n\n<div class="htf-layout-nav-container">\n  <div class="htf-layout-nav">\n    <h1>OpenHTF</h1>\n    <h2>Hardware Testing Framework.</h2>\n  </div>\n</div>\n\n<div class="htf-layout-container">\n  <htf-station-list\n    [selectedStation]="selectedStation"\n    [style.display]="selectedStation === null ? \'initial\' : \'none\'"\n    (onSelectStation)="selectedStation = $event.station">\n  </htf-station-list>\n\n  <htf-station\n    *ngIf="selectedStation !== null"\n    [selectedStation]="selectedStation"\n    (onDeselectStation)="selectedStation = null">\n  </htf-station>\n</div>\n'},296:function(t,e){t.exports='<div *ngIf="message">\n  <div\n    class="flash-message"\n    [class.flash-message--has-tooltip]="message.hasTooltip"\n    [class.flash-message--is-dismissed]="message.isDismissed"\n    [ngClass]="message.type | flashMessageTypeToClass"\n    (mouseenter)="onMouseEnter(message)"\n    (mouseleave)="onMouseExit(message)">\n    <button\n      type="button"\n      class="flash-message-dismissal-button"\n      (click)="dismiss()">\n      X\n    </button>\n    {{ message.content }}\n  </div>\n\n  \x3c!-- Avoid whitespace since flash-message-tooltip uses white-space: pre --\x3e\n  <div\n    [class.flash-message-tooltip--is-visible]="message.showTooltip"\n    class="flash-message-tooltip">{{ message.tooltip }}</div>\n</div>\n'},297:function(t,e){t.exports='<div\n  class="htf-layout-widget"\n  *ngIf="plugExists()">\n\n  \x3c!-- Wrap contents in an extra div for the background color animation. --\x3e\n  <div [@animateIn]="\'in\'">\n\n    <div class="htf-layout-widget-header">\n      <div>Operator input</div>\n    </div>\n\n    <div class="htf-layout-widget-body">\n\n      <div [innerHTML]="prompt"></div>\n\n      <input\n        #response_field\n        [style.display]="hasTextInput() ? \'inline\' : \'none\'"\n        [class.user-input-has-error]="error"\n        type="text"\n        class="u-push-top"\n        (keyup.enter)="sendResponse(response_field)">\n\n      <div class="user-input-error-text u-push-top-third" *ngIf="error">\n        {{ error }}\n      </div>\n\n      <div class="u-text-align-right">\n        <button\n          type="button"\n          class="htf-rounded-button-grey u-push-top"\n          (click)="sendResponse(response_field)">\n          {{ hasTextInput() ? \'Submit\' : \'Okay\' }}\n        </button>\n      </div>\n\n    </div>\n\n  </div>\n</div>\n'},298:function(t,e){t.exports='<div class="component-info" [class.is-first]="isFirst" [class.is-root]="isRoot">\n  <span class="serial-number">{{ node.component.serial }}</span>\n  <span *ngIf="node.component.instance_name">{{ node.component.instance_name }}</span>\n  <span *ngIf="node.component.part_number">({{ node.component.part_number }})</span>\n</div>\n\n<ul *ngIf="node.children && node.children.length > 0 && maxDepth !== 0">\n  <li *ngFor="let child of node.children; let isFirst=first">\n    <htf-genealogy-node\n      [isFirst]="isFirst"\n      [isRoot]="false"\n      [node]="child"\n      [maxDepth]="childMaxDepth">\n    </htf-genealogy-node>\n  </li>\n</ul>\n'},299:function(t,e){t.exports='<div class="outer" [class.is-complete]="isComplete">\n  <div class="inner-wrapper">\n    <div class="inner" [ngStyle]="barStyle">\n      <div class="stripes"></div>\n    </div>\n  </div>\n</div>\n'},30:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n(2),o=n(104),i=400,s=5e3,a=function(){function FlashMessageService(){this.messages=[],this.dismissalJob=null}return FlashMessageService.prototype.cancelDismissal=function(){null!==this.dismissalJob&&(clearTimeout(this.dismissalJob),this.dismissalJob=null)},FlashMessageService.prototype.dismissEarly=function(){this.cancelDismissal(),this.dismiss()},FlashMessageService.prototype.startDismissal=function(){var t=this;this.messages[0].isDismissed||(this.cancelDismissal(),this.dismissalJob=setTimeout(function(){t.dismiss(),t.dismissalJob=null},s))},FlashMessageService.prototype.error=function(t,e){void 0===e&&(e=null),this.addMessage(new o.FlashMessage(t,e,o.FlashMessageType.error))},FlashMessageService.prototype.warn=function(t,e){void 0===e&&(e=null),this.addMessage(new o.FlashMessage(t,e,o.FlashMessageType.warn))},FlashMessageService.prototype.addMessage=function(t){this.messages.push(t),1===this.messages.length&&this.startDismissal()},FlashMessageService.prototype.dismiss=function(){var t=this;this.messages[0].isDismissed=!0,setTimeout(function(){t.messages.shift(),t.messages.length>0&&t.startDismissal()},i+100)},FlashMessageService=__decorate([r.Injectable()],FlashMessageService)}();e.FlashMessageService=a},300:function(t,e){t.exports='<div *ngIf="!hasError" class="nav-bar">\n  <em *ngIf="isLoading">\n    Loading…\n  </em>\n  <span *ngIf="!isLoading && !anyStationFound">\n    Connected to server. No stations found.\n  </span>\n  <span *ngIf="!isLoading && anyStationFound">\n    Found {{ stationCount }} {{ stationCount === 1 ? \'station\' : \'stations\' }}.\n  </span>\n\n  <div class="u-flex-grow"></div>\n\n  <button\n    *ngIf="!isLoading"\n    (click)="manualReload()"\n    type="button"\n    class="htf-link-button">\n    Refresh station list\n  </button>\n</div>\n\n<ul class="station-list" *ngIf="!isLoading && !hasError && anyStationFound">\n  <li *ngFor="let station of stations | objectToSortedValues:\'label\'">\n    <button\n      type="button"\n      class="u-text-align-left"\n      [class.is-unreachable]="!isReachable(station)"\n      (click)="select(station)">\n\n      <div class="u-display-flex">\n        <div class="station-label">\n          {{ station.label }} ({{ station.status | statusToText }})\n        </div>\n        <div class="u-flex-grow"></div>\n        <div class="htf-support-text">\n          {{ station.host }}:{{ station.port }}\n        </div>\n      </div>\n      <div *ngIf="station.testDescription" class="station-description u-push-top-third">\n        {{ station.testDescription }}\n      </div>\n\n    </button>\n  </li>\n</ul>\n\n<div *ngIf="hasError">\n  Could not connect to the server.\n  {{ (retryCountdown | async) || \'Retrying in…\' }}\n  <button\n    type="button"\n    class="htf-link-button"\n    (click)="manualRetry()">\n    Try again.\n  </button>\n</div>\n'},301:function(t,e){t.exports='<div *ngIf="test" class="htf-layout-widget">\n\n  <div class="htf-layout-widget-header">\n    <div>Attachments</div>\n    <div class="u-flex-grow"></div>\n    <button\n      *ngIf="test.attachments.length > 0"\n      type="button"\n      class="htf-rounded-button-grey"\n      (click)="toggleExpanded()">\n      {{ expanded? \'Collapse\' : \'Expand\' }}\n    </button>\n  </div>\n\n  <div\n    *ngIf="test.attachments.length === 0"\n    class="htf-layout-widget-body htf-support-text">\n    There are no attachments yet.\n  </div>\n\n  <div\n    *ngIf="!expanded && test.attachments.length > 0"\n    class="htf-layout-widget-body htf-support-text">\n    Expand to view\n    {{ test.attachments.length }}\n    {{ test.attachments.length === 1 ? \'attachment\' : \'attachments\' }}.\n  </div>\n\n  <ul *ngIf="expanded && test.attachments.length > 0">\n    <li\n      *ngFor="let attachment of test.attachments"\n      [ngSwitch]="linkForAttachment(attachment)">\n      <span *ngSwitchCase="null">{{ attachment.name }}</span>\n      <a\n        *ngSwitchDefault\n        [href]="linkForAttachment(attachment)"\n        target="_blank">\n        {{ attachment.name }}\n      </a>\n      <span class="htf-support-text">&nbsp;{{ attachment.mimeType }}</span>\n      <span class="u-flex-grow"></span>\n      <span class="htf-support-text">From phase: {{ attachment.phaseName }}</span>\n    </li>\n  </ul>\n\n</div>\n'},302:function(t,e){t.exports='<div class="htf-layout-widget">\n\n  <div class="htf-layout-widget-header">\n    <div>History</div>\n    <div class="u-flex-grow"></div>\n    <button\n      *ngIf="history.length > collapsedNumTests"\n      type="button"\n      class="htf-rounded-button-grey"\n      (click)="toggleExpanded()">\n      {{ expanded? \'Collapse\' : \'Expand\' }}\n    </button>\n  </div>\n\n  <ul class="htf-layout-widget-list history-list">\n    <ng-container *ngFor="let historyItem of history; let i = index">\n      <li\n        class="history-item-container"\n        htfTooltip="{{ historyItem.startTimeMillis | date:\'M/d/yy h:mma\' }}"\n        *ngIf="expanded || i < collapsedNumTests"\n        [@animateIn]="historyItem.drawAttention ? \'in\' : \'\'"\n        (@animateIn.done)="historyItem.drawAttention = false"\n        [ngSwitch]="historyItem.status"\n        [class.is-selected]="isSelected(historyItem)"\n        (click)="onClick(historyItem)">\n\n        \x3c!-- Wrap list item contents in an extra div to enable a “slide down” animation effect. --\x3e\n        <div class="history-item htf-layout-header">\n          <div class="history-item-name-container">\n            <div class="history-item-name">\n              {{ historyItem.dutId || historyItem.fileName }}\n            </div>\n            <div class="u-font-size-small">\n              Started {{ historyItem.startTimeMillis | timeAgo }}\n            </div>\n          </div>\n          <div *ngSwitchCase="HistoryItemStatus.unloaded" class="history-item-status">\n            Click to load.\n          </div>\n          <div *ngSwitchCase="HistoryItemStatus.loading" class="history-item-status">\n            Loading...\n          </div>\n          <div *ngSwitchCase="HistoryItemStatus.error" class="history-item-status error-text">\n            An error occurred.\n          </div>\n          <div\n            *ngSwitchCase="HistoryItemStatus.loaded"\n            class="htf-status-indicator"\n            [ngClass]="historyItem.testState.status | statusToClass">\n            {{ historyItem.testState.status | statusToText }}\n          </div>\n        </div>\n      </li>\n    </ng-container>\n    <li *ngIf="!expanded && history.length > collapsedNumTests" class="status-text">\n      Not showing {{ history.length - collapsedNumTests }} additional test\n      {{ history.length - collapsedNumTests === 1? \'run\' : \'runs\'}}.\n    </li>\n    <li *ngIf="history.length === 0 && !isLoading && !hasError" class="status-text">\n      There are no known completed test runs.\n    </li>\n    <li *ngIf="isLoading" class="status-text">\n      Loading history from the server...\n    </li>\n    <li *ngIf="hasError" class="status-text u-text-color-error">\n      Could not retrieve test history from the server.\n    </li>\n  </ul>\n\n</div>\n'},303:function(t,e){t.exports='<div *ngIf="test" class="htf-layout-widget">\n\n  <div class="htf-layout-widget-header">\n    <div>Logs</div>\n    <div class="u-flex-grow"></div>\n    <button\n      *ngIf="test.logs.length > 0"\n      type="button"\n      class="htf-rounded-button-grey"\n      (click)="toggleExpanded()">\n      {{ expanded? \'Collapse\' : \'Expand\' }}\n    </button>\n  </div>\n\n  <div\n    *ngIf="test.logs.length === 0"\n    class="htf-layout-widget-body htf-support-text">\n    There are no logs yet.\n  </div>\n\n  <ul *ngIf="!expanded && test.logs.length > 0">\n    <li [ngClass]="test.logs[0].level | logLevelToClass" class="log-message">\n\n      <div class="timestamp-column">\n        {{ test.logs[0].timestampMillis | date:\'mediumTime\' }}\n        <div class="logger-name">{{ test.logs[0].loggerName }}</div>\n      </div>\n\n      <div class="log-message-content">{{ test.logs[0].message }}</div>\n\n    </li>\n    <li\n      *ngIf="!expanded && test.logs.length > 1"\n      class="htf-support-text">\n      Not showing {{ test.logs.length - 1 }} additional log\n      {{ test.logs.length - 1 === 1? \'message\' : \'messages\'}}.&nbsp;\n      <span *ngIf="collapsedErrorCount > 0" class="u-text-color-error">\n        {{ collapsedErrorCount }} additional\n        {{ collapsedErrorCount === 1? \'error\' : \'errors\' }}.\n      </span>\n    </li>\n  </ul>\n\n  <ul *ngIf="expanded && test.logs.length > 0">\n    <li\n      *ngFor="let log of test.logs"\n      class="log-message"\n      [ngClass]="log.level | logLevelToClass">\n\n      <div class="timestamp-column">\n        {{ log.timestampMillis | date:\'mediumTime\' }}\n        <div class="logger-name">{{ log.loggerName }}</div>\n      </div>\n\n      <div class="log-message-content">{{ log.message }}</div>\n\n    </li>\n  </ul>\n\n</div>\n'},304:function(t,e){t.exports='<div class="htf-layout-widget" *ngIf="test">\n\n  <div class="htf-layout-widget-header">\n    <div>Phases</div>\n    <div class="u-flex-grow"></div>\n    <button\n      type="button"\n      class="htf-rounded-button-grey"\n      (click)="toggleMeasurements()">\n      {{ showMeasurements ? \'Collapse\' : \'Expand\' }} all\n    </button>\n  </div>\n\n  <ul class="htf-layout-widget-list">\n    <li *ngFor="let phase of test.phases">\n      <htf-phase\n        [phase]="phase"\n        [expand]="showMeasurements">\n      </htf-phase>\n    </li>\n  </ul>\n\n</div>\n'},305:function(t,e){t.exports='<div class="htf-layout-header" [class.header-with-measurements]="showMeasurements">\n  <span class="u-clamp-text">\n    <span class="phase-name">{{ phase.name }}</span>\n    <span *ngIf="phase.status !== PhaseStatus.waiting">\n      &nbsp;{{ phase | elapsedTime:\'(%s)\' }}\n    </span>\n  </span>\n\n  <div class="u-flex-grow"></div>\n  <div\n    class="htf-status-indicator"\n    [ngClass]="phase.status | statusToClass">\n    {{ phase.status | statusToText }}\n  </div>\n</div>\n\n<table\n  *ngIf="showMeasurements"\n  class="measurement-list"\n  [ngClass]="phase.status | statusToClass">\n  <thead>\n    <td class="measurement-column-name">Measurement name</td>\n    <td class="measurement-column-value">Value</td>\n    <td class="measurement-column-validators">Validators</td>\n    <td class="measurement-column-result">Result</td>\n  </thead>\n  <tbody>\n    <tr *ngFor="let measurement of phase.measurements">\n      <td class="measurement-column-name">{{ measurement.name }}</td>\n      <td class="measurement-column-value">\n        <htf-trimmed-text [maxChars]="80" [content]="measurement.measuredValue">\n        </htf-trimmed-text>\n      </td>\n      <td class="measurement-column-validators">{{ measurement.validators }}</td>\n      <td\n        [ngSwitch]="measurement.status"\n        class="measurement-column-result">\n        <span *ngSwitchCase="MeasurementStatus.pass">Pass</span>\n        <span *ngSwitchCase="MeasurementStatus.fail">Fail</span>\n        <span *ngSwitchDefault>—</span>\n      </td>\n    </tr>\n  </tbody>\n</table>\n'},306:function(t,e){t.exports='<div class="station">\n\n  <div class="nav-bar">\n    <button\n      *ngIf="dashboardEnabled"\n      (click)="goBack()"\n      type="button"\n      class="htf-link-button">\n      ‹ Return to station selection\n    </button>\n    <div class="u-flex-grow"></div>\n    <button\n      (click)="manualReload()"\n      type="button"\n      class="htf-link-button">\n      Refresh station\n    </button>\n  </div>\n\n  <div class="status-bar">\n    <div class="status-bar-row u-font-size-large">\n      <div>{{ selectedStation.label }}</div>\n      <div class="u-flex-grow"></div>\n      <span *ngIf="isOnline">Status: Connected</span>\n      <span *ngIf="!isOnline" class="u-text-color-error">Status: Offline</span>\n    </div>\n    <div class="status-bar-row u-text-color-deemphasize">\n      <span>{{ selectedStation.testDescription }}</span>\n      <div class="u-flex-grow"></div>\n      <span class="htf-support-text">{{ selectedStation.host }}:{{ selectedStation.port }}</span>\n    </div>\n  </div>\n\n  <div [class.station--is-offline]="!isOnline">\n    <div class="htf-layout-widgets-container htf-layout-widgets-row">\n      <htf-user-input-plug [test]="activeTest"></htf-user-input-plug>\n    </div>\n\n    <div class="htf-layout-widgets-container">\n      <div class="htf-layout-widgets-left">\n        <div\n          *ngIf="selectedTest !== null"\n          class="past-test-warning htf-layout-widget">\n          <div class="htf-layout-widget-header">\n            <div>Displaying test record for a previous test run</div>\n            <span>&nbsp;({{ selectedTest.startTimeMillis | timeAgo }})</span>\n            <div class="u-flex-grow"></div>\n            <button\n              type="button"\n              class="htf-rounded-button-grey"\n              (click)="onSelectTest(null)">\n              Return to current test\n            </button>\n          </div>\n        </div>\n\n        <htf-test-summary [test]="activeTest"></htf-test-summary>\n        <htf-logs [test]="activeTest"></htf-logs>\n        <htf-attachments [test]="activeTest"></htf-attachments>\n        <htf-phase-list [test]="activeTest"></htf-phase-list>\n      </div>\n\n      <div class="htf-layout-widgets-right">\n        <htf-history\n          [selectedTest]="selectedTest"\n          [station]="selectedStation"\n          (onSelectTest)="onSelectTest($event.test)">\n        </htf-history>\n      </div>\n    </div>\n\n  </div>\n\n</div>\n'},307:function(t,e){t.exports='<div class="htf-layout-widget" *ngIf="test">\n\n  <div class="htf-layout-widget-header">\n    <div>Current test: {{ test.name }}</div>\n    <div *ngIf="test.startTimeMillis">\n      &nbsp;{{ test | elapsedTime:\'(%s)\' }}\n    </div>\n    <div class="u-flex-grow"></div>\n    <div\n      class="htf-status-indicator"\n      [ngClass]="test.status | statusToClass">\n      {{ test.status | statusToText }}\n    </div>\n  </div>\n\n  <div class="htf-layout-widget-body">\n    <div class="u-display-flex">\n      <div>\n        DUT: {{ test.dutId === null ? \'—\' : test.dutId }}\n      </div>\n      <div class="u-flex-grow"></div>\n      <div>\n        Started: {{ test.startTimeMillis ? (test.startTimeMillis | date:\'medium\') : \'—\' }}\n      </div>\n    </div>\n  </div>\n\n  <div class="progress-bar-container htf-layout-widget-body">\n    <div>\n      Ran {{ completedPhaseCount }} of {{ this.test.phases.length }}\n      {{ completedPhaseCount === 1? \'phase\' : \'phases\' }}\n    </div>\n    <htf-progress-bar [value]="progressValue"></htf-progress-bar>\n  </div>\n\n  <div *ngIf="runningPhase !== null" class="phase-container htf-layout-widget-body">\n    <htf-phase [phase]="runningPhase" [expand]="true"></htf-phase>\n  </div>\n</div>\n\n\x3c!-- Empty state --\x3e\n<div class="htf-layout-widget" *ngIf="!test">\n  <div class="htf-layout-widget-header">\n    <div>Test: —</div>\n  </div>\n  <div class="htf-layout-widget-body">\n    <div class="htf-support-text">\n      <em>No test information to display</em>\n    </div>\n  </div>\n</div>\n'},33:function(t,e,n){"use strict";function trigger(t,e){return{type:7,name:t,definitions:e,options:{}}}function animate(t,e){return void 0===e&&(e=null),{type:4,styles:e,timings:t}}function group(t,e){return void 0===e&&(e=null),{type:3,steps:t,options:e}}function sequence(t,e){return void 0===e&&(e=null),{type:2,steps:t,options:e}}function style(t){return{type:6,styles:t,offset:null}}function state(t,e,n){return{type:0,name:t,styles:e,options:n}}function keyframes(t){return{type:5,steps:t}}function transition(t,e,n){return void 0===n&&(n=null),{type:1,expr:t,animation:e,options:n}}function animation(t,e){return void 0===e&&(e=null),{type:8,animation:t,options:e}}function animateChild(t){return void 0===t&&(t=null),{type:9,options:t}}function useAnimation(t,e){return void 0===e&&(e=null),{type:10,animation:t,options:e}}function query(t,e,n){return void 0===n&&(n=null),{type:11,selector:t,animation:e,options:n}}function stagger(t,e){return{type:12,timings:t,animation:e}}/**
 * @license
 * Copyright Google Inc. All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://angular.io/license
 * @param {?} cb
 * @return {?}
 */
function scheduleMicroTask(t){Promise.resolve(null).then(t)}Object.defineProperty(e,"__esModule",{value:!0}),n.d(e,"AnimationBuilder",function(){return r}),n.d(e,"AnimationFactory",function(){return o}),n.d(e,"AUTO_STYLE",function(){return i}),n.d(e,"animate",function(){return animate}),n.d(e,"animateChild",function(){return animateChild}),n.d(e,"animation",function(){return animation}),n.d(e,"group",function(){return group}),n.d(e,"keyframes",function(){return keyframes}),n.d(e,"query",function(){return query}),n.d(e,"sequence",function(){return sequence}),n.d(e,"stagger",function(){return stagger}),n.d(e,"state",function(){return state}),n.d(e,"style",function(){return style}),n.d(e,"transition",function(){return transition}),n.d(e,"trigger",function(){return trigger}),n.d(e,"useAnimation",function(){return useAnimation}),n.d(e,"NoopAnimationPlayer",function(){return s}),n.d(e,"ɵAnimationGroupPlayer",function(){return a}),n.d(e,"ɵPRE_STYLE",function(){return u});/**
 * @license Angular v4.4.6
 * (c) 2010-2017 Google, Inc. https://angular.io/
 * License: MIT
 */
/**
 * @license
 * Copyright Google Inc. All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://angular.io/license
 */
var r=function(){function AnimationBuilder(){}return AnimationBuilder.prototype.build=function(t){},AnimationBuilder}(),o=function(){function AnimationFactory(){}return AnimationFactory.prototype.create=function(t,e){},AnimationFactory}(),i="*",s=function(){function NoopAnimationPlayer(){this._onDoneFns=[],this._onStartFns=[],this._onDestroyFns=[],this._started=!1,this._destroyed=!1,this._finished=!1,this.parentPlayer=null,this.totalTime=0}return NoopAnimationPlayer.prototype._onFinish=function(){this._finished||(this._finished=!0,this._onDoneFns.forEach(function(t){return t()}),this._onDoneFns=[])},NoopAnimationPlayer.prototype.onStart=function(t){this._onStartFns.push(t)},NoopAnimationPlayer.prototype.onDone=function(t){this._onDoneFns.push(t)},NoopAnimationPlayer.prototype.onDestroy=function(t){this._onDestroyFns.push(t)},NoopAnimationPlayer.prototype.hasStarted=function(){return this._started},NoopAnimationPlayer.prototype.init=function(){},NoopAnimationPlayer.prototype.play=function(){this.hasStarted()||(this.triggerMicrotask(),this._onStart()),this._started=!0},NoopAnimationPlayer.prototype.triggerMicrotask=function(){var t=this;scheduleMicroTask(function(){return t._onFinish()})},NoopAnimationPlayer.prototype._onStart=function(){this._onStartFns.forEach(function(t){return t()}),this._onStartFns=[]},NoopAnimationPlayer.prototype.pause=function(){},NoopAnimationPlayer.prototype.restart=function(){},NoopAnimationPlayer.prototype.finish=function(){this._onFinish()},NoopAnimationPlayer.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this.hasStarted()||this._onStart(),this.finish(),this._onDestroyFns.forEach(function(t){return t()}),this._onDestroyFns=[])},NoopAnimationPlayer.prototype.reset=function(){},NoopAnimationPlayer.prototype.setPosition=function(t){},NoopAnimationPlayer.prototype.getPosition=function(){return 0},NoopAnimationPlayer}(),a=function(){function AnimationGroupPlayer(t){var e=this;this._players=t,this._onDoneFns=[],this._onStartFns=[],this._finished=!1,this._started=!1,this._destroyed=!1,this._onDestroyFns=[],this.parentPlayer=null,this.totalTime=0;var n=0,r=0,o=0,i=this._players.length;0==i?scheduleMicroTask(function(){return e._onFinish()}):this._players.forEach(function(t){t.parentPlayer=e,t.onDone(function(){++n>=i&&e._onFinish()}),t.onDestroy(function(){++r>=i&&e._onDestroy()}),t.onStart(function(){++o>=i&&e._onStart()})}),this.totalTime=this._players.reduce(function(t,e){return Math.max(t,e.totalTime)},0)}return AnimationGroupPlayer.prototype._onFinish=function(){this._finished||(this._finished=!0,this._onDoneFns.forEach(function(t){return t()}),this._onDoneFns=[])},AnimationGroupPlayer.prototype.init=function(){this._players.forEach(function(t){return t.init()})},AnimationGroupPlayer.prototype.onStart=function(t){this._onStartFns.push(t)},AnimationGroupPlayer.prototype._onStart=function(){this.hasStarted()||(this._onStartFns.forEach(function(t){return t()}),this._onStartFns=[],this._started=!0)},AnimationGroupPlayer.prototype.onDone=function(t){this._onDoneFns.push(t)},AnimationGroupPlayer.prototype.onDestroy=function(t){this._onDestroyFns.push(t)},AnimationGroupPlayer.prototype.hasStarted=function(){return this._started},AnimationGroupPlayer.prototype.play=function(){this.parentPlayer||this.init(),this._onStart(),this._players.forEach(function(t){return t.play()})},AnimationGroupPlayer.prototype.pause=function(){this._players.forEach(function(t){return t.pause()})},AnimationGroupPlayer.prototype.restart=function(){this._players.forEach(function(t){return t.restart()})},AnimationGroupPlayer.prototype.finish=function(){this._onFinish(),this._players.forEach(function(t){return t.finish()})},AnimationGroupPlayer.prototype.destroy=function(){this._onDestroy()},AnimationGroupPlayer.prototype._onDestroy=function(){this._destroyed||(this._destroyed=!0,this._onFinish(),this._players.forEach(function(t){return t.destroy()}),this._onDestroyFns.forEach(function(t){return t()}),this._onDestroyFns=[])},AnimationGroupPlayer.prototype.reset=function(){this._players.forEach(function(t){return t.reset()}),this._destroyed=!1,this._finished=!1,this._started=!1},AnimationGroupPlayer.prototype.setPosition=function(t){var e=t*this.totalTime;this._players.forEach(function(t){var n=t.totalTime?Math.min(1,e/t.totalTime):1;t.setPosition(n)})},AnimationGroupPlayer.prototype.getPosition=function(){var t=0;return this._players.forEach(function(e){var n=e.getPosition();t=Math.min(n,t)}),t},Object.defineProperty(AnimationGroupPlayer.prototype,"players",{get:function(){return this._players},enumerable:!0,configurable:!0}),AnimationGroupPlayer.prototype.beforeDestroy=function(){this.players.forEach(function(t){t.beforeDestroy&&t.beforeDestroy()})},AnimationGroupPlayer}(),u="!"},34:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});!function(t){t[t.online=7]="online",t[t.unreachable=8]="unreachable"}(e.StationStatus||(e.StationStatus={}));var r=function(){function Station(t){Object.assign(this,t)}return Station}();e.Station=r},50:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});!function(t){t[t.waiting=3]="waiting",t[t.running=4]="running",t[t.pass=5]="pass",t[t.fail=6]="fail"}(e.PhaseStatus||(e.PhaseStatus={}));var r=function(){function Phase(t){Object.assign(this,t)}return Phase}();e.Phase=r},610:function(t,e,n){"use strict";function main(){return o.platformBrowserDynamic().bootstrapModule(i.AppModule).then(function(t){return t})}Object.defineProperty(e,"__esModule",{value:!0});var r=n(2),o=n(67),i=n(245);r.enableProdMode(),e.main=main,"complete"===document.readyState?main():document.addEventListener("DOMContentLoaded",main)},68:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.logLevels={debug:10,info:20,warning:30,error:40,critical:50};var r=function(){function LogRecord(t){Object.assign(this,t)}return LogRecord}();e.LogRecord=r},69:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});!function(t){t[t.unset=0]="unset",t[t.pass=1]="pass",t[t.fail=2]="fail"}(e.MeasurementStatus||(e.MeasurementStatus={}));var r=function(){function Measurement(t){Object.assign(this,t)}return Measurement}();e.Measurement=r},70:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n(19),o=n(2),i=n(28),s=n(261),a=n(262),u=n(263),l=n(264),c=n(266),p=n(107),d=n(71),h=n(267),m=n(268),f=n(72),y=n(269),g=n(270),v=function(){function SharedModule(){}return SharedModule=__decorate([o.NgModule({imports:[r.CommonModule,i.HttpModule],declarations:[s.ElapsedTimePipe,a.FocusDirective,u.GenealogyNodeComponent,l.LogLevelToClassPipe,c.ObjectToSortedValuesPipe,p.ProgressBarComponent,h.StatusToClassPipe,h.StatusToTextPipe,m.TimeAgoPipe,g.TrimmedTextComponent,y.TooltipDirective],providers:[d.SockJsService,f.TimeService],exports:[r.CommonModule,s.ElapsedTimePipe,a.FocusDirective,u.GenealogyNodeComponent,l.LogLevelToClassPipe,c.ObjectToSortedValuesPipe,p.ProgressBarComponent,h.StatusToClassPipe,h.StatusToTextPipe,m.TimeAgoPipe,g.TrimmedTextComponent,y.TooltipDirective]})],SharedModule)}();e.SharedModule=v},71:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n(2),o=function(){function SockJsService(){this.sockJs=SockJS}return SockJsService=__decorate([r.Injectable()],SockJsService)}();e.SockJsService=o},72:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),n(116),n(119),n(121);var r=n(2),o=n(0),i=100,s=function(){function TimeService(){var t=this;this.observable=o.Observable.interval(i).map(function(){return t.last=Date.now(),t.last}).publish(),this.last=null,this.observable.connect()}return TimeService=__decorate([r.Injectable(),__metadata("design:paramtypes",[])],TimeService)}();e.TimeService=s},73:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n(102),o=n(2),i=n(23),s=n(30),a=n(24),u=n(110),l=n(111),c=function(){function HistoryService(t,e,n){this.config=t,this.http=e,this.flashMessage=n,this.cache={},this.history={}}return HistoryService.prototype.getCache=function(t){return t.hostPort in this.cache||(this.cache[t.hostPort]={}),this.cache[t.hostPort]},HistoryService.prototype.getHistory=function(t){return t.hostPort in this.history||(this.history[t.hostPort]=[]),this.history[t.hostPort]},HistoryService.prototype.loadItem=function(t,e){var n=this;if(e.status===u.HistoryItemStatus.loading||e.status===u.HistoryItemStatus.loaded)throw new Error("Cannot load a history item that is loading or has loaded.");var r=a.getStationBaseUrl(this.config.dashboardEnabled,t),o=r+"/history/"+e.fileName;return e.status=u.HistoryItemStatus.loading,this.http.get(o).toPromise().then(function(r){var o=e.fileName,i=l.makeTest(r,null,o,t);return n.getCache(t)[e.uniqueId]=i,e.status=u.HistoryItemStatus.loaded,e.testState=i,i}).catch(function(t){return e.status=u.HistoryItemStatus.error,Promise.reject(t)})},HistoryService.prototype.prependItemFromTestState=function(t,e){var n=new u.HistoryItem({drawAttention:!0,dutId:e.dutId,fileName:null,startTimeMillis:e.startTimeMillis,status:u.HistoryItemStatus.loaded,testState:e});this.getCache(t)[n.uniqueId]=e,this.getHistory(t).unshift(n)},HistoryService.prototype.refreshList=function(t){var e=this,n=a.getStationBaseUrl(this.config.dashboardEnabled,t),r=n+"/history";return this.http.get(r).toPromise().then(function(n){var r=n.data;e.getHistory(t).length=0;var o=r.map(function(n){var r=new u.HistoryItem({drawAttention:!1,dutId:n.dut_id,fileName:n.file_name,startTimeMillis:n.start_time_millis,status:u.HistoryItemStatus.unloaded,testState:null});if(r.uniqueId in e.getCache(t)){var o=e.getCache(t)[r.uniqueId];r.status=u.HistoryItemStatus.loaded,r.testState=o}return r});a.sortByProperty(o,"startTimeMillis",!0),(i=e.history[t.hostPort]).push.apply(i,o);var i}).catch(function(t){if(404===t.status)console.info("History from disk appears to be disabled.");else{var n=a.messageFromHttpClientErrorResponse(t);e.flashMessage.error("HTTP request for history failed.",n)}return Promise.reject(t)})},HistoryService.prototype.retrieveFileName=function(t,e){if(e.status!==u.HistoryItemStatus.loaded)throw new Error("Cannot retrieve file name for a history item that is not loaded.");var n=a.getStationBaseUrl(this.config.dashboardEnabled,t),r=n+"/history?dutId="+e.dutId+"&startTimeMillis="+e.startTimeMillis;return this.http.get(r).toPromise().then(function(t){var n=t.data;if(0===n.length)return Promise.reject(new Error("Server returned no history items."));if(n.length>1)return Promise.reject(new Error("Server returned more than one history item."));var r=n[0];e.fileName=r.file_name,e.testState.fileName=r.file_name})},HistoryService=__decorate([o.Injectable(),__metadata("design:paramtypes",[i.ConfigService,r.HttpClient,s.FlashMessageService])],HistoryService)}();e.HistoryService=c}},[610]);
//# sourceMappingURL=app.d714dbd143d37088ddc9.js.map