{"remainingRequest":"/Users/jaslan/Development/nifi-fds/node_modules/istanbul-instrumenter-loader/dist/cjs.js??ref--5-1!/Users/jaslan/Development/nifi-fds/angular-url-loader.js!/Users/jaslan/Development/nifi-fds/node_modules/babel-loader/lib/index.js??ref--5-3!/Users/jaslan/Development/nifi-fds/platform/core/snackbars/fds-snackbar.component.js","dependencies":[{"path":"/Users/jaslan/Development/nifi-fds/platform/core/snackbars/fds-snackbar.component.js","mtime":1562689731045},{"path":"/Users/jaslan/Development/nifi-fds/node_modules/cache-loader/dist/cjs.js","mtime":499162500000},{"path":"/Users/jaslan/Development/nifi-fds/node_modules/istanbul-instrumenter-loader/dist/cjs.js","mtime":1522257694000},{"path":"/Users/jaslan/Development/nifi-fds/angular-url-loader.js","mtime":1562689731025},{"path":"/Users/jaslan/Development/nifi-fds/node_modules/babel-loader/lib/index.js","mtime":499162500000}],"contextDependencies":[],"result":["var cov_297ebhfabs=function(){var path='/Users/jaslan/Development/nifi-fds/platform/core/snackbars/fds-snackbar.component.js',hash='9ce28f70bf06c1894c920eeb24d500161414b121',Function=function(){}.constructor,global=new Function('return this')(),gcv='__coverage__',coverageData={path:'/Users/jaslan/Development/nifi-fds/platform/core/snackbars/fds-snackbar.component.js',statementMap:{'0':{start:{line:19,column:0},end:{line:21,column:2}},'1':{start:{line:22,column:0},end:{line:27,column:3}},'2':{start:{line:29,column:0},end:{line:31,column:2}},'3':{start:{line:32,column:0},end:{line:37,column:3}},'4':{start:{line:39,column:0},end:{line:41,column:2}},'5':{start:{line:42,column:0},end:{line:47,column:3}},'6':{start:{line:55,column:2},end:{line:55,column:26}},'7':{start:{line:56,column:2},end:{line:56,column:28}},'8':{start:{line:57,column:2},end:{line:57,column:28}},'9':{start:{line:60,column:0},end:{line:79,column:2}},'10':{start:{line:67,column:4},end:{line:69,column:5}},'11':{start:{line:68,column:6},end:{line:68,column:84}},'12':{start:{line:71,column:4},end:{line:73,column:5}},'13':{start:{line:72,column:6},end:{line:72,column:86}},'14':{start:{line:75,column:4},end:{line:77,column:5}},'15':{start:{line:76,column:6},end:{line:76,column:86}},'16':{start:{line:80,column:0},end:{line:88,column:4}},'17':{start:{line:89,column:0},end:{line:89,column:37}}},fnMap:{'0':{name:'FdsSnackBarTitleDirective',decl:{start:{line:18,column:16},end:{line:18,column:41}},loc:{start:{line:18,column:44},end:{line:18,column:46}},line:18},'1':{name:'FdsSnackBarContentDirective',decl:{start:{line:28,column:16},end:{line:28,column:43}},loc:{start:{line:28,column:46},end:{line:28,column:48}},line:28},'2':{name:'FdsSnackBarActionsDirective',decl:{start:{line:38,column:16},end:{line:38,column:43}},loc:{start:{line:38,column:46},end:{line:38,column:48}},line:38},'3':{name:'FdsSnackBarComponent',decl:{start:{line:54,column:9},end:{line:54,column:29}},loc:{start:{line:54,column:32},end:{line:58,column:1}},line:54},'4':{name:'ngAfterContentInit',decl:{start:{line:66,column:31},end:{line:66,column:49}},loc:{start:{line:66,column:52},end:{line:78,column:3}},line:66}},branchMap:{'0':{loc:{start:{line:67,column:4},end:{line:69,column:5}},type:'if',locations:[{start:{line:67,column:4},end:{line:69,column:5}},{start:{line:67,column:4},end:{line:69,column:5}}],line:67},'1':{loc:{start:{line:71,column:4},end:{line:73,column:5}},type:'if',locations:[{start:{line:71,column:4},end:{line:73,column:5}},{start:{line:71,column:4},end:{line:73,column:5}}],line:71},'2':{loc:{start:{line:75,column:4},end:{line:77,column:5}},type:'if',locations:[{start:{line:75,column:4},end:{line:77,column:5}},{start:{line:75,column:4},end:{line:77,column:5}}],line:75}},s:{'0':0,'1':0,'2':0,'3':0,'4':0,'5':0,'6':0,'7':0,'8':0,'9':0,'10':0,'11':0,'12':0,'13':0,'14':0,'15':0,'16':0,'17':0},f:{'0':0,'1':0,'2':0,'3':0,'4':0},b:{'0':[0,0],'1':[0,0],'2':[0,0]},_coverageSchema:'332fd63041d2c1bcb487cc26dd0d5f7d97098a6c'},coverage=global[gcv]||(global[gcv]={});if(coverage[path]&&coverage[path].hash===hash){return coverage[path];}coverageData.hash=hash;return coverage[path]=coverageData;}();import{Component,Directive,ContentChildren}from'@angular/core';export function FdsSnackBarTitleDirective(){cov_297ebhfabs.f[0]++;}cov_297ebhfabs.s[0]++;FdsSnackBarTitleDirective.prototype={contstructor:FdsSnackBarTitleDirective};cov_297ebhfabs.s[1]++;FdsSnackBarTitleDirective.decorators=[{type:Directive,args:[{selector:'fds-snackbar-title'}]}];export function FdsSnackBarContentDirective(){cov_297ebhfabs.f[1]++;}cov_297ebhfabs.s[2]++;FdsSnackBarContentDirective.prototype={contstructor:FdsSnackBarContentDirective};cov_297ebhfabs.s[3]++;FdsSnackBarContentDirective.decorators=[{type:Directive,args:[{selector:'fds-snackbar-content'}]}];export function FdsSnackBarActionsDirective(){cov_297ebhfabs.f[2]++;}cov_297ebhfabs.s[4]++;FdsSnackBarActionsDirective.prototype={contstructor:FdsSnackBarActionsDirective};cov_297ebhfabs.s[5]++;FdsSnackBarActionsDirective.decorators=[{type:Directive,args:[{selector:'fds-snackbar-actions'}]}];function FdsSnackBarComponent(){cov_297ebhfabs.f[3]++;cov_297ebhfabs.s[6]++;this.snackBarTitle='';cov_297ebhfabs.s[7]++;this.snackBarContent='';cov_297ebhfabs.s[8]++;this.snackBarActions='';}cov_297ebhfabs.s[9]++;FdsSnackBarComponent.prototype={constructor:FdsSnackBarComponent,ngAfterContentInit:function ngAfterContentInit(){cov_297ebhfabs.f[4]++;cov_297ebhfabs.s[10]++;if(this.snackBarTitle.length>1){cov_297ebhfabs.b[0][0]++;cov_297ebhfabs.s[11]++;throw new Error('Duplicate fds-snackbar-title component at in fds-snackbar.');}else{cov_297ebhfabs.b[0][1]++;}cov_297ebhfabs.s[12]++;if(this.snackBarContent.length>1){cov_297ebhfabs.b[1][0]++;cov_297ebhfabs.s[13]++;throw new Error('Duplicate fds-snackbar-content component at in fds-snackbar.');}else{cov_297ebhfabs.b[1][1]++;}cov_297ebhfabs.s[14]++;if(this.snackBarActions.length>1){cov_297ebhfabs.b[2][0]++;cov_297ebhfabs.s[15]++;throw new Error('Duplicate fds-snackbar-actions component at in fds-snackbar.');}else{cov_297ebhfabs.b[2][1]++;}}};cov_297ebhfabs.s[16]++;FdsSnackBarComponent.annotations=[new Component({selector:'fds-snackbar',template:require('./fds-snackbar.component.html'),queries:{snackBarTitle:new ContentChildren(FdsSnackBarTitleDirective),snackBarContent:new ContentChildren(FdsSnackBarContentDirective),snackBarActions:new ContentChildren(FdsSnackBarActionsDirective)}})];cov_297ebhfabs.s[17]++;FdsSnackBarComponent.parameters=[];export{FdsSnackBarComponent};",{"version":3,"sources":["/Users/jaslan/Development/nifi-fds/platform/core/snackbars/fds-snackbar.component.js"],"names":["Component","Directive","ContentChildren","FdsSnackBarTitleDirective","prototype","contstructor","decorators","type","args","selector","FdsSnackBarContentDirective","FdsSnackBarActionsDirective","FdsSnackBarComponent","snackBarTitle","snackBarContent","snackBarActions","constructor","ngAfterContentInit","length","Error","annotations","template","require","queries","parameters"],"mappings":"kmGAgBA,OAASA,SAAT,CAAoBC,SAApB,CAA+BC,eAA/B,KAAsD,eAAtD,CACA,MAAO,SAASC,0BAAT,EAAqC,uBAAE,C,sBAC9CA,0BAA0BC,SAA1B,CAAsC,CACpCC,aAAcF,yBADsB,CAAtC,C,sBAGAA,0BAA0BG,UAA1B,CAAuC,CAAC,CACtCC,KAAMN,SADgC,CAEtCO,KAAM,CAAC,CACLC,SAAU,oBADL,CAAD,CAFgC,CAAD,CAAvC,CAMA,MAAO,SAASC,4BAAT,EAAuC,uBAAE,C,sBAChDA,4BAA4BN,SAA5B,CAAwC,CACtCC,aAAcK,2BADwB,CAAxC,C,sBAGAA,4BAA4BJ,UAA5B,CAAyC,CAAC,CACxCC,KAAMN,SADkC,CAExCO,KAAM,CAAC,CACLC,SAAU,sBADL,CAAD,CAFkC,CAAD,CAAzC,CAMA,MAAO,SAASE,4BAAT,EAAuC,uBAAE,C,sBAChDA,4BAA4BP,SAA5B,CAAwC,CACtCC,aAAcM,2BADwB,CAAxC,C,sBAGAA,4BAA4BL,UAA5B,CAAyC,CAAC,CACxCC,KAAMN,SADkC,CAExCO,KAAM,CAAC,CACLC,SAAU,sBADL,CAAD,CAFkC,CAAD,CAAzC,CAYA,QAASG,qBAAT,EAAgC,6CAC9B,KAAKC,aAAL,CAAqB,EAArB,CAD8B,sBAE9B,KAAKC,eAAL,CAAuB,EAAvB,CAF8B,sBAG9B,KAAKC,eAAL,CAAuB,EAAvB,CACD,C,sBAEDH,qBAAqBR,SAArB,CAAiC,CAC/BY,YAAaJ,oBADkB,CAM/BK,mBAAoB,QAASA,mBAAT,EAA8B,8CAChD,GAAI,KAAKJ,aAAL,CAAmBK,MAAnB,CAA4B,CAAhC,CAAmC,iDACjC,KAAM,IAAIC,MAAJ,CAAU,4DAAV,CAAN,CACD,CAFD,+BADgD,uBAKhD,GAAI,KAAKL,eAAL,CAAqBI,MAArB,CAA8B,CAAlC,CAAqC,iDACnC,KAAM,IAAIC,MAAJ,CAAU,8DAAV,CAAN,CACD,CAFD,+BALgD,uBAShD,GAAI,KAAKJ,eAAL,CAAqBG,MAArB,CAA8B,CAAlC,CAAqC,iDACnC,KAAM,IAAIC,MAAJ,CAAU,8DAAV,CAAN,CACD,CAFD,+BAGD,CAlB8B,CAAjC,C,uBAoBAP,qBAAqBQ,WAArB,CAAmC,CAAC,GAAIpB,UAAJ,CAAc,CAChDS,SAAU,cADsC,CAEhDY,SAAUC,QAAQ,+BAAR,CAFsC,CAGhDC,QAAS,CACPV,cAAe,GAAIX,gBAAJ,CAAoBC,yBAApB,CADR,CAEPW,gBAAiB,GAAIZ,gBAAJ,CAAoBQ,2BAApB,CAFV,CAGPK,gBAAiB,GAAIb,gBAAJ,CAAoBS,2BAApB,CAHV,CAHuC,CAAd,CAAD,CAAnC,C,uBASAC,qBAAqBY,UAArB,CAAkC,EAAlC,CACA,OAASZ,oBAAT","sourcesContent":["/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOTICE file distributed with\n * this work for additional information regarding copyright ownership.\n * The ASF licenses this file to You under the Apache License, Version 2.0\n * (the \"License\"); you may not use this file except in compliance with\n * the License.  You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { Component, Directive, ContentChildren } from '@angular/core';\nexport function FdsSnackBarTitleDirective() {}\nFdsSnackBarTitleDirective.prototype = {\n  contstructor: FdsSnackBarTitleDirective\n};\nFdsSnackBarTitleDirective.decorators = [{\n  type: Directive,\n  args: [{\n    selector: 'fds-snackbar-title'\n  }]\n}];\nexport function FdsSnackBarContentDirective() {}\nFdsSnackBarContentDirective.prototype = {\n  contstructor: FdsSnackBarContentDirective\n};\nFdsSnackBarContentDirective.decorators = [{\n  type: Directive,\n  args: [{\n    selector: 'fds-snackbar-content'\n  }]\n}];\nexport function FdsSnackBarActionsDirective() {}\nFdsSnackBarActionsDirective.prototype = {\n  contstructor: FdsSnackBarActionsDirective\n};\nFdsSnackBarActionsDirective.decorators = [{\n  type: Directive,\n  args: [{\n    selector: 'fds-snackbar-actions'\n  }]\n}];\n/**\n * FdsSnackBarComponent constructor\n *\n * @constructor\n */\n\nfunction FdsSnackBarComponent() {\n  this.snackBarTitle = '';\n  this.snackBarContent = '';\n  this.snackBarActions = '';\n}\n\nFdsSnackBarComponent.prototype = {\n  constructor: FdsSnackBarComponent,\n\n  /**\n   * Respond after Angular projects external content into the component's view.\n   */\n  ngAfterContentInit: function ngAfterContentInit() {\n    if (this.snackBarTitle.length > 1) {\n      throw new Error('Duplicate fds-snackbar-title component at in fds-snackbar.');\n    }\n\n    if (this.snackBarContent.length > 1) {\n      throw new Error('Duplicate fds-snackbar-content component at in fds-snackbar.');\n    }\n\n    if (this.snackBarActions.length > 1) {\n      throw new Error('Duplicate fds-snackbar-actions component at in fds-snackbar.');\n    }\n  }\n};\nFdsSnackBarComponent.annotations = [new Component({\n  selector: 'fds-snackbar',\n  template: require('./fds-snackbar.component.html'),\n  queries: {\n    snackBarTitle: new ContentChildren(FdsSnackBarTitleDirective),\n    snackBarContent: new ContentChildren(FdsSnackBarContentDirective),\n    snackBarActions: new ContentChildren(FdsSnackBarActionsDirective)\n  }\n})];\nFdsSnackBarComponent.parameters = [];\nexport { FdsSnackBarComponent };"]}]}