{"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/services/dialog.service.js","dependencies":[{"path":"/Users/jaslan/Development/nifi-fds/platform/core/dialogs/services/dialog.service.js","mtime":1562689731043},{"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_yk2fwqdbs=function(){var path='/Users/jaslan/Development/nifi-fds/platform/core/dialogs/services/dialog.service.js',hash='0965c92e3dc8d38ad93e3fbb67b77ad6374b21f7',Function=function(){}.constructor,global=new Function('return this')(),gcv='__coverage__',coverageData={path:'/Users/jaslan/Development/nifi-fds/platform/core/dialogs/services/dialog.service.js',statementMap:{'0':{start:{line:22,column:2},end:{line:22,column:18}},'1':{start:{line:23,column:2},end:{line:23,column:20}},'2':{start:{line:24,column:2},end:{line:24,column:29}},'3':{start:{line:25,column:2},end:{line:25,column:36}},'4':{start:{line:26,column:2},end:{line:26,column:27}},'5':{start:{line:29,column:0},end:{line:31,column:2}},'6':{start:{line:32,column:0},end:{line:32,column:41}},'7':{start:{line:35,column:2},end:{line:35,column:31}},'8':{start:{line:36,column:2},end:{line:36,column:41}},'9':{start:{line:37,column:2},end:{line:37,column:31}},'10':{start:{line:38,column:2},end:{line:38,column:43}},'11':{start:{line:41,column:0},end:{line:43,column:2}},'12':{start:{line:44,column:0},end:{line:44,column:40}},'13':{start:{line:47,column:21},end:{line:47,column:41}},'14':{start:{line:48,column:2},end:{line:48,column:58}},'15':{start:{line:49,column:2},end:{line:49,column:50}},'16':{start:{line:50,column:2},end:{line:50,column:22}},'17':{start:{line:61,column:2},end:{line:61,column:33}},'18':{start:{line:64,column:0},end:{line:137,column:2}},'19':{start:{line:77,column:4},end:{line:77,column:54}},'20':{start:{line:85,column:4},end:{line:85,column:34}},'21':{start:{line:106,column:23},end:{line:106,column:43}},'22':{start:{line:107,column:20},end:{line:107,column:84}},'23':{start:{line:108,column:33},end:{line:108,column:60}},'24':{start:{line:109,column:4},end:{line:109,column:49}},'25':{start:{line:111,column:4},end:{line:113,column:5}},'26':{start:{line:112,column:6},end:{line:112,column:50}},'27':{start:{line:115,column:4},end:{line:117,column:5}},'28':{start:{line:116,column:6},end:{line:116,column:54}},'29':{start:{line:119,column:4},end:{line:121,column:5}},'30':{start:{line:120,column:6},end:{line:120,column:64}},'31':{start:{line:123,column:4},end:{line:125,column:5}},'32':{start:{line:124,column:6},end:{line:124,column:74}},'33':{start:{line:127,column:4},end:{line:129,column:5}},'34':{start:{line:128,column:6},end:{line:128,column:64}},'35':{start:{line:131,column:4},end:{line:133,column:5}},'36':{start:{line:132,column:6},end:{line:132,column:74}},'37':{start:{line:135,column:4},end:{line:135,column:21}},'38':{start:{line:138,column:0},end:{line:138,column:42}}},fnMap:{'0':{name:'IDialogConfig',decl:{start:{line:21,column:9},end:{line:21,column:22}},loc:{start:{line:21,column:25},end:{line:27,column:1}},line:21},'1':{name:'IConfirmConfig',decl:{start:{line:34,column:9},end:{line:34,column:23}},loc:{start:{line:34,column:26},end:{line:39,column:1}},line:34},'2':{name:'createConfig',decl:{start:{line:46,column:9},end:{line:46,column:21}},loc:{start:{line:46,column:30},end:{line:51,column:1}},line:46},'3':{name:'FdsDialogService',decl:{start:{line:60,column:9},end:{line:60,column:25}},loc:{start:{line:60,column:37},end:{line:62,column:1}},line:60},'4':{name:'open',decl:{start:{line:76,column:17},end:{line:76,column:21}},loc:{start:{line:76,column:41},end:{line:78,column:3}},line:76},'5':{name:'closeAll',decl:{start:{line:84,column:21},end:{line:84,column:29}},loc:{start:{line:84,column:32},end:{line:86,column:3}},line:84},'6':{name:'openConfirm',decl:{start:{line:105,column:24},end:{line:105,column:35}},loc:{start:{line:105,column:44},end:{line:136,column:3}},line:105}},branchMap:{'0':{loc:{start:{line:111,column:4},end:{line:113,column:5}},type:'if',locations:[{start:{line:111,column:4},end:{line:113,column:5}},{start:{line:111,column:4},end:{line:113,column:5}}],line:111},'1':{loc:{start:{line:115,column:4},end:{line:117,column:5}},type:'if',locations:[{start:{line:115,column:4},end:{line:117,column:5}},{start:{line:115,column:4},end:{line:117,column:5}}],line:115},'2':{loc:{start:{line:119,column:4},end:{line:121,column:5}},type:'if',locations:[{start:{line:119,column:4},end:{line:121,column:5}},{start:{line:119,column:4},end:{line:121,column:5}}],line:119},'3':{loc:{start:{line:123,column:4},end:{line:125,column:5}},type:'if',locations:[{start:{line:123,column:4},end:{line:125,column:5}},{start:{line:123,column:4},end:{line:125,column:5}}],line:123},'4':{loc:{start:{line:127,column:4},end:{line:129,column:5}},type:'if',locations:[{start:{line:127,column:4},end:{line:129,column:5}},{start:{line:127,column:4},end:{line:129,column:5}}],line:127},'5':{loc:{start:{line:131,column:4},end:{line:133,column:5}},type:'if',locations:[{start:{line:131,column:4},end:{line:133,column:5}},{start:{line:131,column:4},end:{line:133,column:5}}],line:131}},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,'18':0,'19':0,'20':0,'21':0,'22':0,'23':0,'24':0,'25':0,'26':0,'27':0,'28':0,'29':0,'30':0,'31':0,'32':0,'33':0,'34':0,'35':0,'36':0,'37':0,'38':0},f:{'0':0,'1':0,'2':0,'3':0,'4':0,'5':0,'6':0},b:{'0':[0,0],'1':[0,0],'2':[0,0],'3':[0,0],'4':[0,0],'5':[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 $ from'jquery';import{MatDialogConfig,MatDialog}from'@angular/material';import{FdsConfirmDialogComponent}from'../confirm-dialog/confirm-dialog.component';function IDialogConfig(){cov_yk2fwqdbs.f[0]++;cov_yk2fwqdbs.s[0]++;this.title='';cov_yk2fwqdbs.s[1]++;this.message='';cov_yk2fwqdbs.s[2]++;this.dialogRef=undefined;cov_yk2fwqdbs.s[3]++;this.viewContainerRef=undefined;cov_yk2fwqdbs.s[4]++;this.disableClose=true;}cov_yk2fwqdbs.s[5]++;IDialogConfig.prototype={contstructor:IDialogConfig};cov_yk2fwqdbs.s[6]++;$.extend(IDialogConfig,MatDialogConfig);function IConfirmConfig(){cov_yk2fwqdbs.f[1]++;cov_yk2fwqdbs.s[7]++;this.acceptButton='ACCEPT';cov_yk2fwqdbs.s[8]++;this.acceptButtonColor='fds-primary';cov_yk2fwqdbs.s[9]++;this.cancelButton='CANCEL';cov_yk2fwqdbs.s[10]++;this.cancelButtonColor='fds-secondary';}cov_yk2fwqdbs.s[11]++;IConfirmConfig.prototype={contstructor:IConfirmConfig};cov_yk2fwqdbs.s[12]++;$.extend(IConfirmConfig,IDialogConfig);function createConfig(config){cov_yk2fwqdbs.f[2]++;var dialogConfig=(cov_yk2fwqdbs.s[13]++,new IConfirmConfig());cov_yk2fwqdbs.s[14]++;dialogConfig.viewContainerRef=config.viewContainerRef;cov_yk2fwqdbs.s[15]++;dialogConfig.disableClose=config.disableClose;cov_yk2fwqdbs.s[16]++;return dialogConfig;}function FdsDialogService(MatDialog){cov_yk2fwqdbs.f[3]++;cov_yk2fwqdbs.s[17]++;this.dialogService=MatDialog;}cov_yk2fwqdbs.s[18]++;FdsDialogService.prototype={contstructor:FdsDialogService,open:function open(component,config){cov_yk2fwqdbs.f[4]++;cov_yk2fwqdbs.s[19]++;return this.dialogService.open(component,config);},closeAll:function closeAll(){cov_yk2fwqdbs.f[5]++;cov_yk2fwqdbs.s[20]++;this.dialogService.closeAll();},openConfirm:function openConfirm(config){cov_yk2fwqdbs.f[6]++;var dialogConfig=(cov_yk2fwqdbs.s[21]++,createConfig(config));var dialogRef=(cov_yk2fwqdbs.s[22]++,this.dialogService.open(FdsConfirmDialogComponent,dialogConfig));var confirmDialogComponent=(cov_yk2fwqdbs.s[23]++,dialogRef.componentInstance);cov_yk2fwqdbs.s[24]++;confirmDialogComponent.dialogRef=dialogRef;cov_yk2fwqdbs.s[25]++;if(config.title){cov_yk2fwqdbs.b[0][0]++;cov_yk2fwqdbs.s[26]++;confirmDialogComponent.title=config.title;}else{cov_yk2fwqdbs.b[0][1]++;}cov_yk2fwqdbs.s[27]++;if(config.message){cov_yk2fwqdbs.b[1][0]++;cov_yk2fwqdbs.s[28]++;confirmDialogComponent.message=config.message;}else{cov_yk2fwqdbs.b[1][1]++;}cov_yk2fwqdbs.s[29]++;if(config.acceptButton){cov_yk2fwqdbs.b[2][0]++;cov_yk2fwqdbs.s[30]++;confirmDialogComponent.acceptButton=config.acceptButton;}else{cov_yk2fwqdbs.b[2][1]++;}cov_yk2fwqdbs.s[31]++;if(config.acceptButtonColor){cov_yk2fwqdbs.b[3][0]++;cov_yk2fwqdbs.s[32]++;confirmDialogComponent.acceptButtonColor=config.acceptButtonColor;}else{cov_yk2fwqdbs.b[3][1]++;}cov_yk2fwqdbs.s[33]++;if(config.cancelButton){cov_yk2fwqdbs.b[4][0]++;cov_yk2fwqdbs.s[34]++;confirmDialogComponent.cancelButton=config.cancelButton;}else{cov_yk2fwqdbs.b[4][1]++;}cov_yk2fwqdbs.s[35]++;if(config.cancelButtonColor){cov_yk2fwqdbs.b[5][0]++;cov_yk2fwqdbs.s[36]++;confirmDialogComponent.cancelButtonColor=config.cancelButtonColor;}else{cov_yk2fwqdbs.b[5][1]++;}cov_yk2fwqdbs.s[37]++;return dialogRef;}};cov_yk2fwqdbs.s[38]++;FdsDialogService.parameters=[MatDialog];export{IDialogConfig,IConfirmConfig,FdsDialogService};",{"version":3,"sources":["/Users/jaslan/Development/nifi-fds/platform/core/dialogs/services/dialog.service.js"],"names":["$","MatDialogConfig","MatDialog","FdsConfirmDialogComponent","IDialogConfig","title","message","dialogRef","undefined","viewContainerRef","disableClose","prototype","contstructor","extend","IConfirmConfig","acceptButton","acceptButtonColor","cancelButton","cancelButtonColor","createConfig","config","dialogConfig","FdsDialogService","dialogService","open","component","closeAll","openConfirm","confirmDialogComponent","componentInstance","parameters"],"mappings":"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","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 $ from 'jquery';\nimport { MatDialogConfig, MatDialog } from '@angular/material';\nimport { FdsConfirmDialogComponent } from '../confirm-dialog/confirm-dialog.component';\n\nfunction IDialogConfig() {\n  this.title = '';\n  this.message = '';\n  this.dialogRef = undefined;\n  this.viewContainerRef = undefined;\n  this.disableClose = true;\n}\n\nIDialogConfig.prototype = {\n  contstructor: IDialogConfig\n};\n$.extend(IDialogConfig, MatDialogConfig);\n\nfunction IConfirmConfig() {\n  this.acceptButton = 'ACCEPT';\n  this.acceptButtonColor = 'fds-primary';\n  this.cancelButton = 'CANCEL';\n  this.cancelButtonColor = 'fds-secondary';\n}\n\nIConfirmConfig.prototype = {\n  contstructor: IConfirmConfig\n};\n$.extend(IConfirmConfig, IDialogConfig);\n\nfunction createConfig(config) {\n  var dialogConfig = new IConfirmConfig();\n  dialogConfig.viewContainerRef = config.viewContainerRef;\n  dialogConfig.disableClose = config.disableClose;\n  return dialogConfig;\n}\n/**\n * FdsDialogService constructor.\n *\n * @param MatDialog      The angular material MatDialog.\n * @constructor\n */\n\n\nfunction FdsDialogService(MatDialog) {\n  this.dialogService = MatDialog;\n}\n\nFdsDialogService.prototype = {\n  contstructor: FdsDialogService,\n\n  /**\n   * Wrapper function over the open() method in MatDialog.\n   * Opens a modal dialog containing the given component.\n   *\n   * @param component     The angular ComponentType<T>.\n   * @param config        The angular material MatDialogConfig.\n   *\n   * @returns {MatDialoRef}    The reference to the dialog.\n   */\n  open: function open(component, config) {\n    return this.dialogService.open(component, config);\n  },\n\n  /**\n   * Wrapper function over the closeAll() method in MatDialog.\n   * Closes all of the currently-open dialogs.\n   */\n  closeAll: function closeAll() {\n    this.dialogService.closeAll();\n  },\n\n  /**\n   * Opens a confirm dialog with the provided config.\n   *\n   * @param config     IConfirmConfig {\n   *                                      message?: string;\n   *                                      title?: string;\n   *                                      dialogRef?: MatDialoRef;\n   *                                      viewContainerRef?: ViewContainerRef;\n   *                                      disableClose?: boolean;\n   *                                      acceptButton?: string;\n   *                                      acceptButtonColor?: string;\n   *                                      cancelButton?: string;\n   *                                      cancelButtonColor?: string;\n   *                                   }\n   *\n   * @returns {MatDialoRef}    The reference to the dialog.\n   */\n  openConfirm: function openConfirm(config) {\n    var dialogConfig = createConfig(config);\n    var dialogRef = this.dialogService.open(FdsConfirmDialogComponent, dialogConfig);\n    var confirmDialogComponent = dialogRef.componentInstance;\n    confirmDialogComponent.dialogRef = dialogRef;\n\n    if (config.title) {\n      confirmDialogComponent.title = config.title;\n    }\n\n    if (config.message) {\n      confirmDialogComponent.message = config.message;\n    }\n\n    if (config.acceptButton) {\n      confirmDialogComponent.acceptButton = config.acceptButton;\n    }\n\n    if (config.acceptButtonColor) {\n      confirmDialogComponent.acceptButtonColor = config.acceptButtonColor;\n    }\n\n    if (config.cancelButton) {\n      confirmDialogComponent.cancelButton = config.cancelButton;\n    }\n\n    if (config.cancelButtonColor) {\n      confirmDialogComponent.cancelButtonColor = config.cancelButtonColor;\n    }\n\n    return dialogRef;\n  }\n};\nFdsDialogService.parameters = [MatDialog];\nexport { IDialogConfig, IConfirmConfig, FdsDialogService };"]}]}