{"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/confirm-dialog/confirm-dialog.component.js","dependencies":[{"path":"/Users/jaslan/Development/nifi-fds/platform/core/dialogs/confirm-dialog/confirm-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_q111qyxsc=function(){var path='/Users/jaslan/Development/nifi-fds/platform/core/dialogs/confirm-dialog/confirm-dialog.component.js',hash='141afb9f4c5a58a1fd9f811442e3a78667e2d7f4',Function=function(){}.constructor,global=new Function('return this')(),gcv='__coverage__',coverageData={path:'/Users/jaslan/Development/nifi-fds/platform/core/dialogs/confirm-dialog/confirm-dialog.component.js',statementMap:{'0':{start:{line:25,column:2},end:{line:25,column:18}},'1':{start:{line:26,column:2},end:{line:26,column:20}},'2':{start:{line:27,column:2},end:{line:27,column:25}},'3':{start:{line:28,column:2},end:{line:28,column:41}},'4':{start:{line:29,column:2},end:{line:29,column:25}},'5':{start:{line:30,column:2},end:{line:30,column:41}},'6':{start:{line:31,column:2},end:{line:31,column:29}},'7':{start:{line:32,column:2},end:{line:32,column:36}},'8':{start:{line:33,column:2},end:{line:33,column:27}},'9':{start:{line:36,column:0},end:{line:52,column:2}},'10':{start:{line:43,column:4},end:{line:43,column:32}},'11':{start:{line:50,column:4},end:{line:50,column:31}},'12':{start:{line:53,column:0},end:{line:55,column:58}},'13':{start:{line:56,column:0},end:{line:56,column:42}}},fnMap:{'0':{name:'FdsConfirmDialogComponent',decl:{start:{line:24,column:9},end:{line:24,column:34}},loc:{start:{line:24,column:37},end:{line:34,column:1}},line:24},'1':{name:'cancel',decl:{start:{line:42,column:19},end:{line:42,column:25}},loc:{start:{line:42,column:28},end:{line:44,column:3}},line:42},'2':{name:'accept',decl:{start:{line:49,column:19},end:{line:49,column:25}},loc:{start:{line:49,column:28},end:{line:51,column:3}},line:49}},branchMap:{},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},f:{'0':0,'1':0,'2':0},b:{},_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}from'@angular/core';function FdsConfirmDialogComponent(){cov_q111qyxsc.f[0]++;cov_q111qyxsc.s[0]++;this.title='';cov_q111qyxsc.s[1]++;this.message='';cov_q111qyxsc.s[2]++;this.acceptButton='';cov_q111qyxsc.s[3]++;this.acceptButtonColor='fds-primary';cov_q111qyxsc.s[4]++;this.cancelButton='';cov_q111qyxsc.s[5]++;this.cancelButtonColor='fds-regular';cov_q111qyxsc.s[6]++;this.dialogRef=undefined;cov_q111qyxsc.s[7]++;this.viewContainerRef=undefined;cov_q111qyxsc.s[8]++;this.disableClose=true;}cov_q111qyxsc.s[9]++;FdsConfirmDialogComponent.prototype={constructor:FdsConfirmDialogComponent,cancel:function cancel(){cov_q111qyxsc.f[1]++;cov_q111qyxsc.s[10]++;this.dialogRef.close(false);},accept:function accept(){cov_q111qyxsc.f[2]++;cov_q111qyxsc.s[11]++;this.dialogRef.close(true);}};cov_q111qyxsc.s[12]++;FdsConfirmDialogComponent.annotations=[new Component({selector:'fds-confirm-dialog',template:require('./confirm-dialog.component.html')})];cov_q111qyxsc.s[13]++;FdsConfirmDialogComponent.parameters=[];export{FdsConfirmDialogComponent};",{"version":3,"sources":["/Users/jaslan/Development/nifi-fds/platform/core/dialogs/confirm-dialog/confirm-dialog.component.js"],"names":["Component","FdsConfirmDialogComponent","title","message","acceptButton","acceptButtonColor","cancelButton","cancelButtonColor","dialogRef","undefined","viewContainerRef","disableClose","prototype","constructor","cancel","close","accept","annotations","selector","template","require","parameters"],"mappings":"48DAgBA,OAASA,SAAT,KAA0B,eAA1B,CAOA,QAASC,0BAAT,EAAqC,2CACnC,KAAKC,KAAL,CAAa,EAAb,CADmC,qBAEnC,KAAKC,OAAL,CAAe,EAAf,CAFmC,qBAGnC,KAAKC,YAAL,CAAoB,EAApB,CAHmC,qBAInC,KAAKC,iBAAL,CAAyB,aAAzB,CAJmC,qBAKnC,KAAKC,YAAL,CAAoB,EAApB,CALmC,qBAMnC,KAAKC,iBAAL,CAAyB,aAAzB,CANmC,qBAOnC,KAAKC,SAAL,CAAiBC,SAAjB,CAPmC,qBAQnC,KAAKC,gBAAL,CAAwBD,SAAxB,CARmC,qBASnC,KAAKE,YAAL,CAAoB,IAApB,CACD,C,qBAEDV,0BAA0BW,SAA1B,CAAsC,CACpCC,YAAaZ,yBADuB,CAMpCa,OAAQ,QAASA,OAAT,EAAkB,4CACxB,KAAKN,SAAL,CAAeO,KAAf,CAAqB,KAArB,EACD,CARmC,CAapCC,OAAQ,QAASA,OAAT,EAAkB,4CACxB,KAAKR,SAAL,CAAeO,KAAf,CAAqB,IAArB,EACD,CAfmC,CAAtC,C,sBAiBAd,0BAA0BgB,WAA1B,CAAwC,CAAC,GAAIjB,UAAJ,CAAc,CACrDkB,SAAU,oBAD2C,CAErDC,SAAUC,QAAQ,iCAAR,CAF2C,CAAd,CAAD,CAAxC,C,sBAGAnB,0BAA0BoB,UAA1B,CAAuC,EAAvC,CACA,OAASpB,yBAAT","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 } from '@angular/core';\n/**\n * FdsConfirmDialogComponent constructor.\n *\n * @constructor\n */\n\nfunction FdsConfirmDialogComponent() {\n  this.title = '';\n  this.message = '';\n  this.acceptButton = '';\n  this.acceptButtonColor = 'fds-primary';\n  this.cancelButton = '';\n  this.cancelButtonColor = 'fds-regular';\n  this.dialogRef = undefined;\n  this.viewContainerRef = undefined;\n  this.disableClose = true;\n}\n\nFdsConfirmDialogComponent.prototype = {\n  constructor: FdsConfirmDialogComponent,\n\n  /**\n   * Close the dialog and send a cancel response to any subscribers.\n   */\n  cancel: function cancel() {\n    this.dialogRef.close(false);\n  },\n\n  /**\n   * Close the dialog and send an accept response to any subscribers.\n   */\n  accept: function accept() {\n    this.dialogRef.close(true);\n  }\n};\nFdsConfirmDialogComponent.annotations = [new Component({\n  selector: 'fds-confirm-dialog',\n  template: require('./confirm-dialog.component.html')})];\nFdsConfirmDialogComponent.parameters = [];\nexport { FdsConfirmDialogComponent };"]}]}