{"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/dialogs/fds-dialog.component.js","dependencies":[{"path":"/Users/jaslan/Development/nifi-fds/platform/core/dialogs/fds-dialog.component.js","mtime":1562689731041},{"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_27bp0wnl5k=function(){var path='/Users/jaslan/Development/nifi-fds/platform/core/dialogs/fds-dialog.component.js',hash='55819ababe3d7d696bd331bff3c2437795114e30',Function=function(){}.constructor,global=new Function('return this')(),gcv='__coverage__',coverageData={path:'/Users/jaslan/Development/nifi-fds/platform/core/dialogs/fds-dialog.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:24}},'7':{start:{line:56,column:2},end:{line:56,column:26}},'8':{start:{line:57,column:2},end:{line:57,column:26}},'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:80}},'12':{start:{line:71,column:4},end:{line:73,column:5}},'13':{start:{line:72,column:6},end:{line:72,column:82}},'14':{start:{line:75,column:4},end:{line:77,column:5}},'15':{start:{line:76,column:6},end:{line:76,column:82}},'16':{start:{line:80,column:0},end:{line:88,column:4}},'17':{start:{line:89,column:0},end:{line:89,column:35}}},fnMap:{'0':{name:'FdsDialogTitleDirective',decl:{start:{line:18,column:16},end:{line:18,column:39}},loc:{start:{line:18,column:42},end:{line:18,column:44}},line:18},'1':{name:'FdsDialogContentDirective',decl:{start:{line:28,column:16},end:{line:28,column:41}},loc:{start:{line:28,column:44},end:{line:28,column:46}},line:28},'2':{name:'FdsDialogActionsDirective',decl:{start:{line:38,column:16},end:{line:38,column:41}},loc:{start:{line:38,column:44},end:{line:38,column:46}},line:38},'3':{name:'FdsDialogComponent',decl:{start:{line:54,column:9},end:{line:54,column:27}},loc:{start:{line:54,column:30},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,ContentChildren,Directive}from'@angular/core';export function FdsDialogTitleDirective(){cov_27bp0wnl5k.f[0]++;}cov_27bp0wnl5k.s[0]++;FdsDialogTitleDirective.prototype={contstructor:FdsDialogTitleDirective};cov_27bp0wnl5k.s[1]++;FdsDialogTitleDirective.decorators=[{type:Directive,args:[{selector:'fds-dialog-title'}]}];export function FdsDialogContentDirective(){cov_27bp0wnl5k.f[1]++;}cov_27bp0wnl5k.s[2]++;FdsDialogContentDirective.prototype={contstructor:FdsDialogContentDirective};cov_27bp0wnl5k.s[3]++;FdsDialogContentDirective.decorators=[{type:Directive,args:[{selector:'fds-dialog-content'}]}];export function FdsDialogActionsDirective(){cov_27bp0wnl5k.f[2]++;}cov_27bp0wnl5k.s[4]++;FdsDialogActionsDirective.prototype={contstructor:FdsDialogActionsDirective};cov_27bp0wnl5k.s[5]++;FdsDialogActionsDirective.decorators=[{type:Directive,args:[{selector:'fds-dialog-actions'}]}];function FdsDialogComponent(){cov_27bp0wnl5k.f[3]++;cov_27bp0wnl5k.s[6]++;this.dialogTitle='';cov_27bp0wnl5k.s[7]++;this.dialogContent='';cov_27bp0wnl5k.s[8]++;this.dialogActions='';}cov_27bp0wnl5k.s[9]++;FdsDialogComponent.prototype={constructor:FdsDialogComponent,ngAfterContentInit:function ngAfterContentInit(){cov_27bp0wnl5k.f[4]++;cov_27bp0wnl5k.s[10]++;if(this.dialogTitle.length>1){cov_27bp0wnl5k.b[0][0]++;cov_27bp0wnl5k.s[11]++;throw new Error('Duplicate fds-dialog-title component at in fds-dialog.');}else{cov_27bp0wnl5k.b[0][1]++;}cov_27bp0wnl5k.s[12]++;if(this.dialogContent.length>1){cov_27bp0wnl5k.b[1][0]++;cov_27bp0wnl5k.s[13]++;throw new Error('Duplicate fds-dialog-content component at in fds-dialog.');}else{cov_27bp0wnl5k.b[1][1]++;}cov_27bp0wnl5k.s[14]++;if(this.dialogActions.length>1){cov_27bp0wnl5k.b[2][0]++;cov_27bp0wnl5k.s[15]++;throw new Error('Duplicate fds-dialog-actions component at in fds-dialog.');}else{cov_27bp0wnl5k.b[2][1]++;}}};cov_27bp0wnl5k.s[16]++;FdsDialogComponent.annotations=[new Component({selector:'fds-dialog',template:require('./fds-dialog.component.html'),queries:{dialogTitle:new ContentChildren(FdsDialogTitleDirective),dialogContent:new ContentChildren(FdsDialogContentDirective),dialogActions:new ContentChildren(FdsDialogActionsDirective)}})];cov_27bp0wnl5k.s[17]++;FdsDialogComponent.parameters=[];export{FdsDialogComponent};",{"version":3,"sources":["/Users/jaslan/Development/nifi-fds/platform/core/dialogs/fds-dialog.component.js"],"names":["Component","ContentChildren","Directive","FdsDialogTitleDirective","prototype","contstructor","decorators","type","args","selector","FdsDialogContentDirective","FdsDialogActionsDirective","FdsDialogComponent","dialogTitle","dialogContent","dialogActions","constructor","ngAfterContentInit","length","Error","annotations","template","require","queries","parameters"],"mappings":"klGAgBA,OAASA,SAAT,CAAoBC,eAApB,CAAqCC,SAArC,KAAsD,eAAtD,CACA,MAAO,SAASC,wBAAT,EAAmC,uBAAE,C,sBAC5CA,wBAAwBC,SAAxB,CAAoC,CAClCC,aAAcF,uBADoB,CAApC,C,sBAGAA,wBAAwBG,UAAxB,CAAqC,CAAC,CACpCC,KAAML,SAD8B,CAEpCM,KAAM,CAAC,CACLC,SAAU,kBADL,CAAD,CAF8B,CAAD,CAArC,CAMA,MAAO,SAASC,0BAAT,EAAqC,uBAAE,C,sBAC9CA,0BAA0BN,SAA1B,CAAsC,CACpCC,aAAcK,yBADsB,CAAtC,C,sBAGAA,0BAA0BJ,UAA1B,CAAuC,CAAC,CACtCC,KAAML,SADgC,CAEtCM,KAAM,CAAC,CACLC,SAAU,oBADL,CAAD,CAFgC,CAAD,CAAvC,CAMA,MAAO,SAASE,0BAAT,EAAqC,uBAAE,C,sBAC9CA,0BAA0BP,SAA1B,CAAsC,CACpCC,aAAcM,yBADsB,CAAtC,C,sBAGAA,0BAA0BL,UAA1B,CAAuC,CAAC,CACtCC,KAAML,SADgC,CAEtCM,KAAM,CAAC,CACLC,SAAU,oBADL,CAAD,CAFgC,CAAD,CAAvC,CAYA,QAASG,mBAAT,EAA8B,6CAC5B,KAAKC,WAAL,CAAmB,EAAnB,CAD4B,sBAE5B,KAAKC,aAAL,CAAqB,EAArB,CAF4B,sBAG5B,KAAKC,aAAL,CAAqB,EAArB,CACD,C,sBAEDH,mBAAmBR,SAAnB,CAA+B,CAC7BY,YAAaJ,kBADgB,CAM7BK,mBAAoB,QAASA,mBAAT,EAA8B,8CAChD,GAAI,KAAKJ,WAAL,CAAiBK,MAAjB,CAA0B,CAA9B,CAAiC,iDAC/B,KAAM,IAAIC,MAAJ,CAAU,wDAAV,CAAN,CACD,CAFD,+BADgD,uBAKhD,GAAI,KAAKL,aAAL,CAAmBI,MAAnB,CAA4B,CAAhC,CAAmC,iDACjC,KAAM,IAAIC,MAAJ,CAAU,0DAAV,CAAN,CACD,CAFD,+BALgD,uBAShD,GAAI,KAAKJ,aAAL,CAAmBG,MAAnB,CAA4B,CAAhC,CAAmC,iDACjC,KAAM,IAAIC,MAAJ,CAAU,0DAAV,CAAN,CACD,CAFD,+BAGD,CAlB4B,CAA/B,C,uBAoBAP,mBAAmBQ,WAAnB,CAAiC,CAAC,GAAIpB,UAAJ,CAAc,CAC9CS,SAAU,YADoC,CAE9CY,SAAUC,QAAQ,6BAAR,CAFoC,CAG9CC,QAAS,CACPV,YAAa,GAAIZ,gBAAJ,CAAoBE,uBAApB,CADN,CAEPW,cAAe,GAAIb,gBAAJ,CAAoBS,yBAApB,CAFR,CAGPK,cAAe,GAAId,gBAAJ,CAAoBU,yBAApB,CAHR,CAHqC,CAAd,CAAD,CAAjC,C,uBASAC,mBAAmBY,UAAnB,CAAgC,EAAhC,CACA,OAASZ,kBAAT","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, ContentChildren, Directive } from '@angular/core';\nexport function FdsDialogTitleDirective() {}\nFdsDialogTitleDirective.prototype = {\n  contstructor: FdsDialogTitleDirective\n};\nFdsDialogTitleDirective.decorators = [{\n  type: Directive,\n  args: [{\n    selector: 'fds-dialog-title'\n  }]\n}];\nexport function FdsDialogContentDirective() {}\nFdsDialogContentDirective.prototype = {\n  contstructor: FdsDialogContentDirective\n};\nFdsDialogContentDirective.decorators = [{\n  type: Directive,\n  args: [{\n    selector: 'fds-dialog-content'\n  }]\n}];\nexport function FdsDialogActionsDirective() {}\nFdsDialogActionsDirective.prototype = {\n  contstructor: FdsDialogActionsDirective\n};\nFdsDialogActionsDirective.decorators = [{\n  type: Directive,\n  args: [{\n    selector: 'fds-dialog-actions'\n  }]\n}];\n/**\n * FdsDialogComponent constructor\n *\n * @constructor\n */\n\nfunction FdsDialogComponent() {\n  this.dialogTitle = '';\n  this.dialogContent = '';\n  this.dialogActions = '';\n}\n\nFdsDialogComponent.prototype = {\n  constructor: FdsDialogComponent,\n\n  /**\n   * Respond after Angular projects external content into the component's view.\n   */\n  ngAfterContentInit: function ngAfterContentInit() {\n    if (this.dialogTitle.length > 1) {\n      throw new Error('Duplicate fds-dialog-title component at in fds-dialog.');\n    }\n\n    if (this.dialogContent.length > 1) {\n      throw new Error('Duplicate fds-dialog-content component at in fds-dialog.');\n    }\n\n    if (this.dialogActions.length > 1) {\n      throw new Error('Duplicate fds-dialog-actions component at in fds-dialog.');\n    }\n  }\n};\nFdsDialogComponent.annotations = [new Component({\n  selector: 'fds-dialog',\n  template: require('./fds-dialog.component.html'),\n  queries: {\n    dialogTitle: new ContentChildren(FdsDialogTitleDirective),\n    dialogContent: new ContentChildren(FdsDialogContentDirective),\n    dialogActions: new ContentChildren(FdsDialogActionsDirective)\n  }\n})];\nFdsDialogComponent.parameters = [];\nexport { FdsDialogComponent };"]}]}