ngx-dynamic-dashboard
Version:
an dashboard lib for angular 10
1 lines • 111 kB
JavaScript
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@angular/core"),require("rxjs"),require("@angular/common/http"),require("@angular/animations"),require("@angular/common"),require("@angular/forms"),require("@angular/material/slide-toggle"),require("@angular/material/chips"),require("@angular/material/button"),require("@angular/material/icon"),require("@angular/material/checkbox"),require("@angular/material/select"),require("@angular/material/core"),require("@angular/material/input"),require("@angular/platform-browser/animations"),require("rxjs/operators"),require("lodash"),require("@angular/cdk/drag-drop"),require("@angular/material/progress-bar"),require("@angular/router")):"function"==typeof define&&define.amd?define("ngx-dynamic-dashboard",["exports","@angular/core","rxjs","@angular/common/http","@angular/animations","@angular/common","@angular/forms","@angular/material/slide-toggle","@angular/material/chips","@angular/material/button","@angular/material/icon","@angular/material/checkbox","@angular/material/select","@angular/material/core","@angular/material/input","@angular/platform-browser/animations","rxjs/operators","lodash","@angular/cdk/drag-drop","@angular/material/progress-bar","@angular/router"],e):e((t=t||self)["ngx-dynamic-dashboard"]={},t.ng.core,t.rxjs,t.ng.common.http,t.ng.animations,t.ng.common,t.ng.forms,t.ng.material.slideToggle,t.ng.material.chips,t.ng.material.button,t.ng.material.icon,t.ng.material.checkbox,t.ng.material.select,t.ng.material.core,t.ng.material.input,t.ng.platformBrowser.animations,t.rxjs.operators,t.lodash,t.ng.cdk.dragDrop,t.ng.material.progressBar,t.ng.router)}(this,(function(t,e,n,o,i,a,r,s,d,c,l,p,u,h,g,m,f,y,v,b,w){"use strict";var C=function(){function t(){this.optionsCollectionName="dashboardOptions",this.defaultOptions={enableHover:!1,displayGadgetOptionsInSideBar:!1},this.globalOptionsChangeEventSubject=new n.Subject}return t.prototype.getBoardOptions=function(){var t=JSON.parse(localStorage.getItem(this.optionsCollectionName));return null==t?(this.persistDefautBoardOptions(),this.defaultOptions):t},t.prototype.setBoardOptions=function(t){return localStorage.removeItem(this.optionsCollectionName),this.globalOptionsChangeEventSubject.next(t),localStorage.setItem(this.optionsCollectionName,JSON.stringify(t))},t.prototype.listenForGlobalOptionsChanges=function(){return this.globalOptionsChangeEventSubject.asObservable()},t.prototype.persistDefautBoardOptions=function(){localStorage.setItem(this.optionsCollectionName,JSON.stringify(this.defaultOptions))},t}();C.decorators=[{type:e.Injectable}],C.ctorParameters=function(){return[]};var I=function(t,e,n){this.dismissed=!1,this.content=t,this.style=n||"info",this.id=e},E=function(){function t(){this.messages=[]}return t.prototype.getMessages=function(){return this.messages},t.prototype.sendMessage=function(t,e){var n=new I(t,this.messages.length+1,e);this.messages.push(n)},t.prototype.dismissMessage=function(t){this.purgeDismissedMessages(),this.messages.forEach((function(e){e.id===t&&(e.dismissed=!0)}))},t.prototype.purgeDismissedMessages=function(){this.messages.forEach((function(t,e,n){t.dismissed&&n.splice(e,1)}))},t}();E.decorators=[{type:e.Injectable}],E.ctorParameters=function(){return[]};var S=function(){function t(t,e){this._optionsService=t,this._toastService=e,this.enableHover=this._optionsService.getBoardOptions().enableHover,this.displayGadgetOptionsInSideBar=this._optionsService.getBoardOptions().displayGadgetOptionsInSideBar}return t.prototype.onHooverOptionChange=function(t){this._optionsService.setBoardOptions({enableHover:t.checked,displayGadgetOptionsInSideBar:this.displayGadgetOptionsInSideBar}),this._toastService.sendMessage("The board configuration has changed!",null)},t.prototype.onDisplayGadgetOptionsInSideBarChange=function(t){this._optionsService.setBoardOptions({enableHover:this.enableHover,displayGadgetOptionsInSideBar:t.checked}),this._toastService.sendMessage("The board configuration has changed!",null)},t}();S.decorators=[{type:e.Component,args:[{selector:"dashboard-options-config-tab",moduleId:module.id,template:'<br>\nThe following options control various aspects of the board\'s and gadget\'s behavior. Changes take effect immediately.\n<br>\n<br>\n\n<mat-slide-toggle\n (change)="onHooverOptionChange($event)"\n [checked]="enableHover">\n Always show the gadget buttons in the title. By default buttons show/hide when you hover over the title.\n</mat-slide-toggle>\n<br>\n<br>\n<mat-slide-toggle\n (change)="onDisplayGadgetOptionsInSideBarChange($event)"\n [checked]="displayGadgetOptionsInSideBar">\n (Experimental) When set the options are displayed in the side bar. Otherwise it is displayed within the gadget.\n</mat-slide-toggle>\n',styles:[""]}]}],S.ctorParameters=function(){return[{type:C},{type:E}]};var k={title:"Dashboard",structure:"6-6",id:5,boardInstanceId:0,rows:[{columns:[{styleClass:"six wide",gadgets:[]},{styleClass:"six wide",gadgets:[]}]}]},M={board:[{title:"Board Sample 1",structure:"3-6-3",id:9,boardInstanceId:1,rows:[{columns:[{styleClass:"three wide",gadgets:[{componentType:"NewsGadgetComponent",name:"News",description:"What's new",icon:"images/news.png",instanceId:1500253814523,tags:[{facet:"Informational",name:"news"},{facet:"List",name:"news"}],config:{propertyPages:[{displayName:"Run",groupId:"run",position:10,properties:[{value:"news",key:"endpoint",label:"News URL",required:!1,order:3,controlType:"dynamicdropdown"},{value:"News",key:"title",label:"Title",required:!1,order:1,controlType:"textbox"},{value:2,key:"instanceId",required:!1,order:-1,controlType:"hidden"}]}]}}]},{styleClass:"six wide",gadgets:[{componentType:"CPUGadgetComponent",name:"CPU Chart",description:"Monitors CPU utilization for CDM.",icon:"images/cpu.png",instanceId:1499912922910,tags:[{facet:"Performance",name:"real-time"},{facet:"Chart",name:"bar"}],config:{propertyPages:[{displayName:"Run",groupId:"run",position:10,properties:[{value:"CPU Utilization",key:"title",label:"Title",required:!1,order:1,controlType:"textbox"},{value:"Carlosappliance - Process Monitor",key:"endpoint",label:"API Endpoints",required:!1,order:3,controlType:"dynamicdropdown"},{value:999,key:"instanceId",required:!1,order:-1,controlType:"hidden"}]},{displayName:"Chart",groupId:"chart",position:11,properties:[{value:!0,key:"chart_properties",label:"Show chart details",required:!1,order:3,controlType:"checkbox"}]}]}},{componentType:"TrendGadgetComponent",name:"Trend",description:"General trends.",icon:"images/trend.png",instanceId:1499912901569,tags:[{facet:"Performance",name:"trend"},{facet:"Chart",name:"area"}],config:{propertyPages:[{displayName:"Run",groupId:"run",position:10,properties:[{value:"Devappliance - ECX",key:"endpoint",label:"API Endpoints",required:!1,order:2,controlType:"dynamicdropdown"},{value:"Trend",key:"title",label:"Title",required:!1,order:1,controlType:"textbox"},{value:2,key:"instanceId",required:!1,order:-1,controlType:"hidden"}]},{displayName:"Chart",groupId:"chart",position:11,properties:[{value:!0,key:"chart_properties",label:"Show chart details",required:!1,order:3,controlType:"checkbox"}]}]}}]},{styleClass:"three wide",gadgets:[]}]}]},{title:"Board Sample 2",structure:"4-4-4-4/8-4-4",id:8,boardInstanceId:2,rows:[{columns:[{styleClass:"four wide",gadgets:[{componentType:"StatisticGadgetComponent",name:"Statistic",description:"General statistic.",icon:"images/statistic.png",instanceId:1499912861630,tags:[{facet:"Statistic",name:"counter"}],config:{propertyPages:[{displayName:"Run",groupId:"run",position:10,properties:[{value:"database",key:"resource",label:"Resource",required:!1,order:2,controlType:"dropdown",options:[{key:"vm",value:"vm"},{key:"database",value:"database"},{key:"volume",value:"volume"},{key:"job",value:"job"}]},{value:"Devappliance - ECX",key:"endpoint",label:"API Endpoints",required:!1,order:3,controlType:"dynamicdropdown"},{value:"Statistic",key:"title",label:"Title",required:!1,order:1,controlType:"textbox"},{value:2,key:"instanceId",required:!0,order:-1,controlType:"hidden"}]}]}}]},{styleClass:"four wide",gadgets:[{componentType:"StatisticGadgetComponent",name:"Statistic",description:"General statistic.",icon:"images/statistic.png",instanceId:1499912845375,tags:[{facet:"Statistic",name:"counter"}],config:{propertyPages:[{displayName:"Run",groupId:"run",position:10,properties:[{value:"vm",key:"resource",label:"Resource",required:!1,order:2,controlType:"dropdown",options:[{key:"vm",value:"vm"},{key:"database",value:"database"},{key:"volume",value:"volume"},{key:"job",value:"job"}]},{value:"Carlosappliance - Process Monitor",key:"endpoint",label:"API Endpoints",required:!1,order:3,controlType:"dynamicdropdown"},{value:"Statistic",key:"title",label:"Title",required:!1,order:1,controlType:"textbox"},{value:2,key:"instanceId",required:!0,order:-1,controlType:"hidden"}]}]}}]},{styleClass:"four wide",gadgets:[{componentType:"StatisticGadgetComponent",name:"Statistic",description:"General statistic.",icon:"images/statistic.png",instanceId:1500251223835,tags:[{facet:"Statistic",name:"counter"}],config:{propertyPages:[{displayName:"Run",groupId:"run",position:10,properties:[{value:"volume",key:"resource",label:"Resource",required:!1,order:2,controlType:"dropdown",options:[{key:"vm",value:"vm"},{key:"database",value:"database"},{key:"volume",value:"volume"},{key:"job",value:"job"}]},{value:"Carlosappliance - Process Monitor",key:"endpoint",label:"API Endpoints",required:!1,order:3,controlType:"dynamicdropdown"},{value:"Statistic",key:"title",label:"Title",required:!1,order:1,controlType:"textbox"},{value:2,key:"instanceId",required:!0,order:-1,controlType:"hidden"}]}]}}]},{styleClass:"four wide",gadgets:[{componentType:"StatisticGadgetComponent",name:"Statistic",description:"General statistic.",icon:"images/statistic.png",instanceId:1500251241829,tags:[{facet:"Statistic",name:"counter"}],config:{propertyPages:[{displayName:"Run",groupId:"run",position:10,properties:[{value:"job",key:"resource",label:"Resource",required:!1,order:2,controlType:"dropdown",options:[{key:"vm",value:"vm"},{key:"database",value:"database"},{key:"volume",value:"volume"},{key:"job",value:"job"}]},{value:"Carlosappliance - Process Monitor",key:"endpoint",label:"API Endpoints",required:!1,order:3,controlType:"dynamicdropdown"},{value:"Statistic",key:"title",label:"Title",required:!1,order:1,controlType:"textbox"},{value:2,key:"instanceId",required:!0,order:-1,controlType:"hidden"}]}]}}]}]},{columns:[{styleClass:"eight wide",gadgets:[{componentType:"TrendLineGadgetComponent",name:"Realtime Performance",description:"IOPs and Network Bandwidth.",icon:"images/trend-line.png",instanceId:1500251340757,tags:[{facet:"Performance",name:"trend"},{facet:"Chart",name:"line"}],config:{propertyPages:[{displayName:"Run",groupId:"run",position:10,properties:[{value:"Devappliance - ECX",key:"endpoint",label:"API Endpoints",required:!1,order:2,controlType:"dynamicdropdown"},{value:"Performance",key:"title",label:"Title",required:!1,order:1,controlType:"textbox"},{value:2,key:"instanceId",required:!1,order:-1,controlType:"hidden"}]},{displayName:"Chart",groupId:"chart",position:11,properties:[{value:!0,key:"chart_properties",label:"Show chart details",required:!1,order:3,controlType:"checkbox"}]}]}},{componentType:"ServiceListGadgetComponent",name:"Service Status",description:"Monitors Service Status",icon:"images/service.png",instanceId:1500343727872,tags:[{facet:"List",name:"health"}],config:{propertyPages:[{displayName:"Run",groupId:"run",position:10,properties:[{value:"Devappliance - Process Monitor",key:"endpoint",label:"API Endpoints",required:!1,order:2,controlType:"dynamicdropdown"},{value:"Service Status",key:"title",label:"Title",required:!1,order:1,controlType:"textbox"},{value:999,key:"instanceId",required:!1,order:-1,controlType:"hidden"}]},{displayName:"List",groupId:"chart",position:11,properties:[{value:!0,key:"chart_properties",label:"Show chart details",required:!1,order:3,controlType:"checkbox"}]}]}}]},{styleClass:"four wide",gadgets:[{componentType:"DiskGadgetComponent",name:"Disk Utilization",description:"Disk consumption information for ECX.",icon:"images/donut.png",instanceId:1500253741130,tags:[{facet:"Chart",name:"pie"},{facet:"Performance",name:"storage"}],config:{propertyPages:[{displayName:"Run",groupId:"run",position:10,properties:[{value:"Carlosappliance - Process Monitor",key:"endpoint",label:"API Endpoints",required:!1,order:4,controlType:"dynamicdropdown"},{value:"Disk Consumption",key:"title",label:"Title",required:!1,order:1,controlType:"textbox"},{value:50,key:"threshold",label:"Consumed Threshold",required:!1,order:3,controlType:"number"},{value:"g3g3egegre",key:"diskid",label:"Disk Id",required:!1,order:2,controlType:"dropdown",options:[{key:"2344112gdfgdfg",value:"2344112gdfgdfg"},{key:"g3g3egegre",value:"g3g3egegre"},{key:"8435f34",value:"8435f34"}]},{value:2,key:"instanceId",required:!1,order:-1,controlType:"hidden"}]},{displayName:"Thresholds",groupId:"threshold",position:10,properties:[{value:30,key:"frequency",label:"Frequency",required:!1,order:3,controlType:"number"},{value:30,key:"retentionH",label:"Retention High",required:!1,order:4,controlType:"number"},{value:180,key:"retentionL",label:"Retention Low",required:!1,order:4,controlType:"number"}]},{displayName:"Chart",groupId:"chart",position:11,properties:[{value:!0,key:"chart_properties",label:"Show chart details",required:!1,order:3,controlType:"checkbox"}]}]}}]},{styleClass:"four wide",gadgets:[{componentType:"DiskGadgetComponent",name:"Disk Utilization",description:"Disk consumption information for ECX.",icon:"images/donut.png",instanceId:1500252483066,tags:[{facet:"Chart",name:"pie"},{facet:"Performance",name:"storage"}],config:{propertyPages:[{displayName:"Run",groupId:"run",position:10,properties:[{value:"Carlosappliance - Process Monitor",key:"endpoint",label:"API Endpoints",required:!1,order:4,controlType:"dynamicdropdown"},{value:"Disk Consumption",key:"title",label:"Title",required:!1,order:1,controlType:"textbox"},{value:50,key:"threshold",label:"Consumed Threshold",required:!1,order:3,controlType:"number"},{value:"g3g3egegre",key:"diskid",label:"Disk Id",required:!1,order:2,controlType:"dropdown",options:[{key:"2344112gdfgdfg",value:"2344112gdfgdfg"},{key:"g3g3egegre",value:"g3g3egegre"},{key:"8435f34",value:"8435f34"}]},{value:2,key:"instanceId",required:!1,order:-1,controlType:"hidden"}]},{displayName:"Thresholds",groupId:"threshold",position:10,properties:[{value:30,key:"frequency",label:"Frequency",required:!1,order:3,controlType:"number"},{value:30,key:"retentionH",label:"Retention High",required:!1,order:4,controlType:"number"},{value:180,key:"retentionL",label:"Retention Low",required:!1,order:4,controlType:"number"}]},{displayName:"Chart",groupId:"chart",position:11,properties:[{value:!0,key:"chart_properties",label:"Show chart details",required:!1,order:3,controlType:"checkbox"}]}]}},{componentType:"TrendGadgetComponent",name:"Trend",description:"General trends.",icon:"images/trend.png",instanceId:1500252536414,tags:[{facet:"Performance",name:"trend"},{facet:"Chart",name:"area"}],config:{propertyPages:[{displayName:"Run",groupId:"run",position:10,properties:[{value:"Carlosappliance - Process Monitor",key:"endpoint",label:"API Endpoints",required:!1,order:2,controlType:"dynamicdropdown"},{value:"Trend",key:"title",label:"Title",required:!1,order:1,controlType:"textbox"},{value:2,key:"instanceId",required:!1,order:-1,controlType:"hidden"}]},{displayName:"Chart",groupId:"chart",position:11,properties:[{value:!0,key:"chart_properties",label:"Show chart details",required:!1,order:3,controlType:"checkbox"}]}]}}]}]}]}]},x={production:!1,productName:"Dynamic Dashboard Framework",productVersion:"0.0.5",menu:{documentation:!0,aiSearch:!1,notification:!0},boardConfiguration:{board:!0,ai:!1,endpoint:!0}},T=function(){function t(t){this._http=t,this.demo=!0,this.remoteConfigurationRepository="",this.defaultBoard=Object.assign({},k),this.sampleBoardCollection=Object.assign({},M),this.env=x,this.seedLocalStorageWithSampleBoardCollection()}return t.prototype.getBoards=function(){return this.demo?new n.Observable((function(t){var e=JSON.parse(localStorage.getItem("board"));return e||(e={board:[]}),t.next(e.board),function(){}})):this._http.get(this.remoteConfigurationRepository)},t.prototype.saveBoard=function(t){var e=this;if(this.model=t,0===Object.keys(t).length&&t.constructor===Object)return n.EMPTY;if(this.demo)return new n.Observable((function(n){var o;return e.deleteBoardFromLocalStore(t.title),null==(o=JSON.parse(localStorage.getItem("board")))&&(o={board:[]}),o.board.push(t),localStorage.setItem("board",JSON.stringify(o)),n.next({}),function(){}}));var i={headers:new o.HttpHeaders({"Content-Type":"application/json"})};return this._http.post(this.remoteConfigurationRepository+"?id="+t.title,JSON.stringify(t),i)},t.prototype.deleteBoard=function(t){var e=this;return this.demo?new n.Observable((function(n){return e.deleteBoardFromLocalStore(t),n.next({}),function(){}})):this._http.delete(this.remoteConfigurationRepository+"/"+t)},t.prototype.getDefaultBoard=function(){var t=this;return new n.Observable((function(e){return e.next(t.defaultBoard),function(){}}))},t.prototype.notifyGadgetOnPropertyChange=function(t,e){this.savePropertyPageConfigurationToStore(t,e)},t.prototype.setCurrentModel=function(t){this.currentModel=t},t.prototype.savePropertyPageConfigurationToStore=function(t,e){var n=this;this.currentModel.rows.forEach((function(o){o.columns.forEach((function(o){o.gadgets&&o.gadgets.forEach((function(o){n.updateProperties(t,o,e)}))}))})),this.saveBoard(this.currentModel).subscribe((function(t){console.debug("The following configuration model was saved!")}),(function(t){return console.error("Error"+t)}),(function(){return console.debug("Saving configuration to store!")}))},t.prototype.updateProperties=function(t,e,n){var o=JSON.parse(t);e.instanceId===n&&e.config.propertyPages.forEach((function(t){for(var e=0;e<t.properties.length;e++)for(var n in o)o.hasOwnProperty(n)&&n===t.properties[e].key&&(t.properties[e].value=o[n])}))},t.prototype.seedLocalStorageWithSampleBoardCollection=function(){null===localStorage.getItem("board")&&(this.env.production||localStorage.setItem("board",JSON.stringify(this.sampleBoardCollection)))},t.prototype.delete=function(t){localStorage.removeItem("board"),localStorage.setItem("board",JSON.stringify(t))},t.prototype.deleteBoardFromLocalStore=function(t){var e,n=JSON.parse(localStorage.getItem("board"));n&&(e=n.board.findIndex((function(e){return e.title===t})))>=0&&(n.board.splice(e,1),this.delete(n))},t}();T.decorators=[{type:e.Injectable}],T.ctorParameters=function(){return[{type:o.HttpClient}]};var O=function(){function t(t){this._configurationService=t,this.dashboardCreateEvent=new e.EventEmitter,this.dashboardEditEvent=new e.EventEmitter,this.dashboardDeleteEvent=new e.EventEmitter,this.newDashboardItem="",this.env=x}return t.prototype.createBoard=function(t){""!==t&&(this.dashboardCreateEvent.emit(t),this.newDashboardItem="")},t.prototype.editBoard=function(t){this.dashboardEditEvent.emit(t)},t.prototype.deleteBoard=function(t){this.dashboardDeleteEvent.emit(t)},t}();O.decorators=[{type:e.Component,args:[{selector:"dashboard-config-tab",moduleId:module.id,template:'<table class="ui padded table">\n <thead>\n <th class="index-column">#</th>\n <th>name</th>\n <th></th>\n </thead>\n <tr *ngFor="let board of dashboardList; let i = index" class="ui basic segment">\n <td class="index-column">{{i + 1}}</td>\n <td>{{board}}</td>\n <td style="text-align:right">\n <a (click)="deleteBoard(board)" mat-mini-fab routerLink=".">\n <mat-icon>clear</mat-icon>\n </a>\n </td>\n </tr>\n</table>\n\n<div class="ui basic segment">\n\n <div class="grid-row">\n <mat-form-field class="example-full-width">\n <input [(ngModel)]="newDashboardItem" matInput placeholder="Enter Dashboard Name">\n </mat-form-field>\n\n <a (click)="createBoard(newDashboardItem)" color=\'primary\' mat-mini-fab routerLink=".">\n <mat-icon>add</mat-icon>\n </a>\n </div>\n\n</div>\n',styles:["input{font-family:Roboto,sans-serif!important;font-size:1.1em;font-weight:300!important;outline:none!important;padding:5px}label{color:#4a4d50!important;font-family:Roboto,sans-serif;font-size:1.3em!important}label.endpoint{font-size:1em!important;line-height:1.5em!important}td.detail{background-color:#fff!important}.index-column{background-color:#ddebf5!important;border:none!important;width:5%!important}.index-column,.ui.table thead th td{color:#788ca0!important}.ui.table{color:rgba(97,97,97,.68)!important}.inLine{display:inline-block;padding-left:4px;padding-right:4px}.example-full-width{width:100%}.grid-row{align-items:center;display:flex;justify-content:space-around}"]}]}],O.ctorParameters=function(){return[{type:T}]},O.propDecorators={dashboardCreateEvent:[{type:e.Output}],dashboardEditEvent:[{type:e.Output}],dashboardDeleteEvent:[{type:e.Output}],dashboardList:[{type:e.Input}]};var L=[{groupId:"boards",displayName:"Boards"},{groupId:"options",displayName:"Options"}],P=function(){function t(){this.dashboardCreateEvent=new e.EventEmitter,this.dashboardEditEvent=new e.EventEmitter,this.dashboardDeleteEvent=new e.EventEmitter,this.newDashboardItem="",Object.assign(this,{tabsModel:L}),this.setCurrentTab(0),this.env=x}return t.prototype.showConfigurationModal=function(t){this.modalheader=t,this.configModal.modal("show")},t.prototype.hideMessageModal=function(){this.modalicon="",this.modalheader="",this.modalconfig="",this.configModal.modal("hide")},t.prototype.createBoard=function(t){""!==t&&(this.dashboardCreateEvent.emit(t),this.newDashboardItem=""),console.log("Creating new board event from configuration component: "+t)},t.prototype.editBoard=function(t){this.dashboardEditEvent.emit(t)},t.prototype.deleteBoard=function(t){this.dashboardDeleteEvent.emit(t)},t.prototype.ngAfterViewInit=function(){this.configModal=jQuery(this.boardconfigmodalaRef.nativeElement),this.configModal.modal("hide")},t.prototype.setCurrentTab=function(t){this.currentTab=this.tabsModel[t].displayName},t}();P.decorators=[{type:e.Component,args:[{selector:"dashboard-configuration-modal",moduleId:module.id,template:'<div #boardconfigmodal_tag class="ui long modal">\n <div class="header">\n <h2>{{modalheader}}</h2>\n </div>\n\n\n <div class="ui top attached tabular menu">\n\n <a (click)="setCurrentTab(i)" *ngFor="let tab of tabsModel; let i = index"\n [ngClass]="{\'active\': tab.displayName == currentTab }"\n attr.data-tab="{{tab.groupId}}" class="item">{{tab.displayName}}</a>\n\n </div>\n\n <div *ngFor="let tab of tabsModel; let i = index" [@contentSwitch]="tab.displayName == currentTab ? \'active\':\'inactive\'"\n [ngClass]="{\'active\': tab.displayName == currentTab }"\n attr.data-tab="{{tab.groupId}}" class="ui bottom attached tab segment">\n\n\n <div *ngIf="tab.groupId == \'boards\'">\n\n <dashboard-config-tab (dashboardCreateEvent)="createBoard($event)"\n (dashboardDeleteEvent)="deleteBoard($event)"\n (dashboardEditEvent)="editBoard($event)"\n [dashboardList]="dashboardList"></dashboard-config-tab>\n </div>\n\n <div *ngIf="tab.groupId == \'options\'">\n\n <dashboard-options-config-tab></dashboard-options-config-tab>\n\n </div>\n </div>\n\n\n <div class="actions">\n <button (click)="hideMessageModal()" class="ui button">Close</button>\n </div>\n</div>\n',animations:[i.trigger("contentSwitch",[i.state("inactive",i.style({opacity:0})),i.state("active",i.style({opacity:1})),i.transition("inactive => active",i.animate("750ms ease-in")),i.transition("active => inactive",i.animate("750ms ease-out"))])],styles:[".ui.tabular.menu .active.item{border-top:3px solid #3f51b5!important}.ui.attached.segment{margin:0;width:100%}"]}]}],P.ctorParameters=function(){return[]},P.propDecorators={dashboardCreateEvent:[{type:e.Output}],dashboardEditEvent:[{type:e.Output}],dashboardDeleteEvent:[{type:e.Output}],dashboardList:[{type:e.Input}],boardconfigmodalaRef:[{type:e.ViewChild,args:["boardconfigmodal_tag",{static:!0}]}]};var G=function(){};G.decorators=[{type:e.NgModule,args:[{imports:[a.CommonModule,c.MatButtonModule,l.MatIconModule,p.MatCheckboxModule,g.MatInputModule,u.MatSelectModule,h.MatOptionModule,r.FormsModule,r.ReactiveFormsModule,s.MatSlideToggleModule,d.MatChipsModule],declarations:[O,S,P],providers:[C],exports:[O,S,P]}]}];var B=function(){function t(){this.menuSubject=new n.Subject,this.gridSubject=new n.Subject,this.subscribers=[]}return t.prototype.raiseMenuEvent=function(t){this.menuSubject.next(t)},t.prototype.listenForMenuEvents=function(){return this.menuSubject.asObservable()},t.prototype.raiseGridEvent=function(t){this.menuSubject.next(t)},t.prototype.listenForGridEvents=function(){return this.gridSubject.asObservable()},t.prototype.addSubscriber=function(t){this.subscribers.push(t)},t.prototype.unSubscribeAll=function(){this.subscribers.forEach((function(t){t.unsubscribe()})),this.subscribers.length=0},t}();B.decorators=[{type:e.Injectable}],B.ctorParameters=function(){return[]};var _=function(){function t(t,e){this._configurationService=t,this._menuEventService=e,this.host=window.location.host,this.dashboardList=[],this.selectedBoard="",this.placeHolderText="Ask the board to do something!",this.searchList=[],this.show=!1,this.typeAheadIsInMenu=!0,this.layoutId=0,this._menuEventService.unSubscribeAll(),this.setupEventListeners(),this.env=x}return t.prototype.setupEventListeners=function(){var t=this,e=this._menuEventService.listenForGridEvents().subscribe((function(e){var n=e.data;switch(e.name){case"boardUpdateEvent":t.updateDashboardMenu(n)}}));this._menuEventService.addSubscriber(e)},t.prototype.ngOnInit=function(){this.updateDashboardMenu("")},t.prototype.ngAfterViewInit=function(){this.stickyMenu=jQuery(this.stickyMenuRef.nativeElement),this.stickyMenu.sticky()},t.prototype.emitBoardChangeLayoutEvent=function(t){this._menuEventService.raiseMenuEvent({name:"boardChangeLayoutEvent",data:t})},t.prototype.emitBoardSelectEvent=function(t){this.boardSelect(t),this._menuEventService.raiseMenuEvent({name:"boardSelectEvent",data:t})},t.prototype.emitBoardCreateEvent=function(t){this._menuEventService.raiseMenuEvent({name:"boardCreateEvent",data:t}),this.updateDashboardMenu(t)},t.prototype.emitBoardEditEvent=function(t){this._menuEventService.raiseMenuEvent({name:"boardEditEvent",data:t})},t.prototype.emitBoardDeleteEvent=function(t){this._menuEventService.raiseMenuEvent({name:"boardDeleteEvent",data:t}),this.updateDashboardMenu("")},t.prototype.emitBoardAddGadgetEvent=function(t){this._menuEventService.raiseMenuEvent({name:"boardAddGadgetEvent",data:t})},t.prototype.emitBoardAIAddGadgetEvent=function(t){this._menuEventService.raiseMenuEvent({name:"boardAIAddGadgetEvent",data:t})},t.prototype.updateDashboardMenu=function(t){var e=this;this._configurationService.getBoards().subscribe((function(n){var o=e;n&&n instanceof Array&&n.length&&(e.dashboardList.length=0,n.sort((function(t,e){return t.boardInstanceId-e.boardInstanceId})),n.forEach((function(t){o.dashboardList.push(t.title)})),""===t?e.boardSelect(e.dashboardList[0]):e.boardSelect(t))}))},t.prototype.boardSelect=function(t){this.selectedBoard=t},t.prototype.toggleLayoutSideBar=function(){this.layoutSideBar=jQuery(this.layoutSideBarRef.nativeElement),this.layoutSideBar.sidebar("setting","transition","overlay"),this.layoutSideBar.sidebar("toggle"),this.layoutId=this._configurationService.currentModel.id},t.prototype.toggleNotificationSideBar=function(){this.notificationSideBar=jQuery(this.notificationSideBarRef.nativeElement),this.notificationSideBar.sidebar("setting","transition","overlay"),this.notificationSideBar.sidebar("toggle")},t.prototype.toggleAboutSideBar=function(){this.aboutSideBar=jQuery(this.aboutSideBarRef.nativeElement),this.aboutSideBar.sidebar("setting","transition","overlay"),this.aboutSideBar.sidebar("toggle")},t}();_.decorators=[{type:e.Component,args:[{moduleId:module.id,selector:"dashboard-menu",template:'<div #stickymenu_tag class="ui inverted menu sticky" ng-show="show" style="height: 66px !important">\n\n\n <dashboard-typeahead-input (ArtificialIntelligenceEventEmitter)="emitBoardAIAddGadgetEvent($event)" *ngIf="env.menu.aiSearch" [placeHolderText]="placeHolderText"\n [searchList]="searchList"\n [typeAheadIsInMenu]="typeAheadIsInMenu"\n class="item"\n style="width:25%; padding-bottom:0">\n </dashboard-typeahead-input>\n\n\n <div class="ui secondary inverted pointing menu board">\n <a (click)="emitBoardSelectEvent(board)" *ngFor="let board of dashboardList; let i = index"\n [ngClass]="{\'active\':board == selectedBoard}"\n class="item">\n {{board}}\n </a>\n </div>\n\n\n <div class="right inverted menu">\n <a (click)="toggleNotificationSideBar()" *ngIf="env.menu.notification"\n class="item">\n <i class="large inverted alarm icon"></i>\n <div class="floating ui red label">\n <span style="font-size: 1.2em; font-weight: normal">4</span>\n </div>\n </a>\n\n\n <a (click)="addGadgetModal.showComponentLibraryModal(\'Add Gadget\')"\n class="item">\n <i class="large inverted plus icon"></i>\n </a>\n\n\n <a (click)="toggleLayoutSideBar()"\n class="item">\n <i class="large inverted grid layout icon"></i>\n </a>\n\n\n <a (click)="boardConfigModal.showConfigurationModal(\'Configuration\')"\n class="item">\n <i class="large inverted setting icon"></i>\n </a>\n\n\n <a (click)="toggleAboutSideBar()"\n class="item">\n <i class="large inverted info icon"></i>\n </a>\n\n </div>\n\n</div>\n<br>\n\n\x3c!-- the modal will emit an event and call the grid component to add the requested cell to the board --\x3e\n<dashboard-add-gadget-modal #addGadgetModal\n (addGadgetEvent)="emitBoardAddGadgetEvent($event)">\n</dashboard-add-gadget-modal>\n\n<dashboard-configuration-modal #boardConfigModal\n (dashboardCreateEvent)="emitBoardCreateEvent($event)"\n (dashboardDeleteEvent)="emitBoardDeleteEvent($event)"\n (dashboardEditEvent)="emitBoardEditEvent($event)"\n [dashboardList]="dashboardList">\n\n\n</dashboard-configuration-modal>\n\n\n\x3c!-- side bar content --\x3e\n<div #notificationSideBar_tag class="ui sidebar inverted right vertical menu">\n <dashboard-notification-modal></dashboard-notification-modal>\n</div>\n\n\x3c!-- side bar content --\x3e\n<div #aboutSideBar_tag class="ui sidebar inverted right vertical menu">\n <dashboard-about-modal></dashboard-about-modal>\n</div>\n\n\n<div #layoutSideBar_tag class="ui sidebar inverted right vertical menu">\n <dashboard-layout-manager-modal (boardLayoutChangeEvent)="emitBoardChangeLayoutEvent($event)"\n [layoutId]="layoutId">\n </dashboard-layout-manager-modal>\n</div>\n\n',styles:[".ui.secondary.pointing.menu .active.item{border-color:#0f0!important;border-width:medium!important;color:#f9f9f9!important}.ui.secondary.pointing.menu .active.item,.ui.secondary.pointing.menu .item{font-family:Roboto,sans-serif!important;font-size:1.2em;font-weight:500!important}.ui.secondary.pointing.menu .item{color:hsla(0,0%,50.2%,.7)!important}.ui.secondary.pointing.menu{border-bottom:none!important}input{font-family:Roboto,sans-serif!important;font-size:1.1em;font-weight:300!important;outline:none!important;padding:5px}.ui.floating.label{margin:0;top:.5em}.ui.menu .item>.floating.label{padding:.3em .6em}.ui.menu{border-radius:0}.ui.inverted.menu{background-color:#1c2b36}.ui.menu .item>i.icon{margin:0}"]}]}],_.ctorParameters=function(){return[{type:T},{type:B}]},_.propDecorators={show:[{type:e.Input}],notificationSideBarRef:[{type:e.ViewChild,args:["notificationSideBar_tag",{static:!1}]}],layoutSideBarRef:[{type:e.ViewChild,args:["layoutSideBar_tag",{static:!1}]}],aboutSideBarRef:[{type:e.ViewChild,args:["aboutSideBar_tag",{static:!1}]}],stickyMenuRef:[{type:e.ViewChild,args:["stickymenu_tag",{static:!1}]}]};var A=[{id:0,boardInstanceId:0,title:"one-narrow",checked:!1,structure:"8",rows:[{columns:[{styleClass:"eight wide"}]}]},{id:1,boardInstanceId:1,title:"single",checked:!1,structure:"14",rows:[{columns:[{styleClass:"fourteen wide"}]}]},{id:2,boardId:2,title:"narrow-right",checked:!1,structure:"10-6",rows:[{columns:[{styleClass:"ten wide"},{styleClass:"six wide"}]}]},{id:3,boardInstanceId:3,title:"wide-center",checked:!1,structure:"4-8-4",rows:[{columns:[{styleClass:"four wide"},{styleClass:"eight wide"},{styleClass:"four wide"}]}]},{id:4,boardInstanceId:4,title:"narrow-left",checked:!1,structure:"4-12",rows:[{columns:[{styleClass:"four wide"},{styleClass:"twelve wide"}]}]},{id:5,boardInstanceId:5,title:"two-even",checked:!0,structure:"6-6",rows:[{columns:[{styleClass:"six wide"},{styleClass:"six wide"}]}]},{id:6,boardInstanceId:6,title:"three-even",checked:!1,structure:"5-5-5",rows:[{columns:[{styleClass:"four wide"},{styleClass:"four wide"},{styleClass:"four wide"}]}]},{id:7,boardInstanceId:7,title:"wide-top",checked:!1,structure:"16/8-8",rows:[{columns:[{styleClass:"twelve wide"}]},{columns:[{styleClass:"six wide"},{styleClass:"six wide"}]}]},{id:8,boardInstanceId:8,title:"ngadmin",checked:!1,structure:"4-4-4-4/8-4-4",rows:[{columns:[{styleClass:"four wide"},{styleClass:"four wide"},{styleClass:"four wide"},{styleClass:"four wide"}]},{columns:[{styleClass:"eight wide"},{styleClass:"four wide"},{styleClass:"four wide"}]}]},{id:9,boardInstanceId:9,title:"google-layout",checked:!1,structure:"3-6-3",rows:[{columns:[{styleClass:"three wide"},{styleClass:"six wide"},{styleClass:"three wide"}]}]}],R=function(){function t(){this.boardLayoutChangeEvent=new e.EventEmitter,this.modalHeader="Layout",this.initializeLayouts()}return t.prototype.selectBoardLayout=function(t){for(var e=0;e<this.boardLayouts.length;e++)if(this.boardLayouts[e].id===t){this.boardLayoutChangeEvent.emit(this.boardLayouts[e]),this.layoutId=t;break}},t.prototype.initializeLayouts=function(){Object.assign(this,{boardLayouts:A})},t}();R.decorators=[{type:e.Component,args:[{selector:"dashboard-layout-manager-modal",moduleId:"layout",template:'<br>\n\n<div style="text-align: center">\n <h2>{{modalHeader}}</h2>\n</div>\n<hr>\n\n<br>\n<br>\n<ul>\n <li *ngFor="let layout of boardLayouts; let i = index"\n style=\'list-style: none\'>\n <img (click)="selectBoardLayout(layout.id)" [ngClass]="{\'layout-selected\': layoutId == layout.id }"\n src="/assets/images/{{layout.title}}.png">\n\n </li>\n</ul>\n\n\n\n',styles:[".layout-selected{border-top:solid #7cfc00;padding-top:5px}ul{text-align:center}h2{color:#fff!important}dir,menu,ul{-webkit-padding-start:5px}"]}]}],R.ctorParameters=function(){return[]},R.propDecorators={layoutId:[{type:e.Input}],boardLayoutChangeEvent:[{type:e.Output}]};var N=function(){};N.decorators=[{type:e.NgModule,args:[{imports:[a.CommonModule],declarations:[R],exports:[R]}]}];var D=function(){function t(t){this._http=t}return t.prototype.getGadgetLibrary=function(){return this._http.get("/assets/api/gadget-library-model.json")},t}();D.ɵprov=e.ɵɵdefineInjectable({factory:function(){return new D(e.ɵɵinject(o.HttpClient))},token:D,providedIn:"root"}),D.decorators=[{type:e.Injectable,args:[{providedIn:"root"}]}],D.ctorParameters=function(){return[{type:o.HttpClient}]};var j=function(t,e){this.name=t,this.tags=e},F=function(t){this.name=t,this.count=1},q=function(){function t(t){this.facet_tags=[],this.objectList=t}return t.prototype.getFacetTags=function(){var t=this;return this.objectList.forEach((function(e){t.formatAndUpdateTagList(e.tags)})),this.facet_tags},t.prototype.formatAndUpdateTagList=function(t){var e=this;t.forEach((function(t){if(e.facet_tags.length){var n=!1;e.facet_tags.forEach((function(e){e.name.toLowerCase()===t.facet.toLowerCase()&&(n=!0)})),n?e.updateFacetWithTag(t):e.createFacetAndAddItToTheFacetTagArray(t)}else e.createFacetAndAddItToTheFacetTagArray(t)}))},t.prototype.createFacetAndAddItToTheFacetTagArray=function(t){var e=[],n=this.createTag(this.capitalize(t.name));e.push(n);var o=new j(t.facet,e);this.facet_tags.push(o)},t.prototype.createTag=function(t){return new F(t)},t.prototype.updateFacetWithTag=function(t){var e=this;this.facet_tags.forEach((function(n){if(n.name.toLowerCase()===t.facet.toLowerCase()){var o=!1;n.tags.forEach((function(e){e.name.toLowerCase()===t.name.toLowerCase()&&(o=!0,e.count=e.count+1)})),o||n.tags.push(e.createTag(e.capitalize(t.name)))}}))},t.prototype.capitalize=function(t){return t.charAt(0).toUpperCase()+t.slice(1).toLowerCase()},t}(),H=function(){function t(t){this._addGadgetService=t,this.addGadgetEvent=new e.EventEmitter,this.gadgetObjectList=[],this.gadgetObjectTitleList=[],this.placeHolderText="Begin typing gadget name",this.layoutColumnOneWidth="six",this.layoutColumnTwoWidth="ten",this.listHeader="Gadgets",this.color="white",this.typeAheadIsInMenu=!1,this.getObjectList()}return t.prototype.actionHandler=function(t,e){this.addGadgetEvent.emit(t),this.hideMessageModal()},t.prototype.showMessageModal=function(t,e,n){this.modalicon=t,this.modalheader=e,this.modalmessage=n,this.messageModal.modal("show")},t.prototype.showComponentLibraryModal=function(t){this.modalheader=t,this.messageModal.modal("show")},t.prototype.hideMessageModal=function(){this.modalicon="",this.modalheader="",this.modalmessage="",this.messageModal.modal("hide")},t.prototype.ngAfterViewInit=function(){this.messageModal=jQuery(this.messagemodalRef.nativeElement)},t.prototype.getObjectList=function(){var t=this;this._addGadgetService.getGadgetLibrary().subscribe((function(e){t.gadgetObjectList.length=0;var n=t;e.library.forEach((function(t){n.gadgetObjectList.push(t),n.gadgetObjectTitleList.push(t.name)}));var o=new q(t.gadgetObjectList);t.facetTags=o.getFacetTags()}))},t}();H.decorators=[{type:e.Component,args:[{selector:"dashboard-add-gadget-modal",moduleId:module.id,template:'<div #messagemodal_tag class="ui long modal">\n <div class="header">\n <h2>{{modalheader}}</h2>\n </div>\n\n <dashboard-data-list\n\n [facetTags]="facetTags"\n [layoutColumnOneWidth]="layoutColumnOneWidth"\n [layoutColumnTwoWidth]="layoutColumnTwoWidth"\n [listHeader]="listHeader"\n [objectList]="gadgetObjectList"\n [objectTitleList]="gadgetObjectTitleList"\n [placeHolderText]="placeHolderText"\n [typeAheadIsInMenu]="typeAheadIsInMenu">\n\n <ng-template let-item="$implicit">\n\n <div [@showHideAnimation] class="ui segment" style="background-color:white;">\n <div class="ui large middle aligned divided list">\n <div class="item">\n <div class="right floated content">\n \x3c!-- todo : if there are more than one action display a button with\n vertical ellipse and implement onHover to show all action buttons\n --\x3e\n <a (click)="actionHandler(item, item.actions[0].name)"\n *ngIf="item.actions.length == 1"\n color="primary"\n mat-raised-button routerLink=".">\n {{item.actions[0].name}}\n </a>\n </div>\n <img class="ui image" src="{{item.icon}}">\n <div class="content">\n <div class="header">{{item.name}}</div>\n {{item.description}}\n </div>\n </div>\n </div>\n <div class="ui bottom attached">\n <button *ngFor="let tag of item.tags" class="ui basic gray compact button">{{tag.name}}\n </button>\n </div>\n </div>\n\n </ng-template>\n\n </dashboard-data-list>\n\n <div class="actions">\n <div class="ui approve button">Close</div>\n </div>\n</div>\n',animations:[i.trigger("showHideAnimation",[i.transition(":enter",[i.style({opacity:0}),i.animate(750,i.style({opacity:1}))]),i.transition(":leave",[i.animate(750,i.style({opacity:0}))])])],styles:[".modal{background-color:#f7f7f7}"]}]}],H.ctorParameters=function(){return[{type:D}]},H.propDecorators={addGadgetEvent:[{type:e.Output}],messagemodalRef:[{type:e.ViewChild,args:["messagemodal_tag",{static:!0}]}]};var z=function(){function t(){this.tagSelectEvent=new e.EventEmitter}return t.prototype.ngOnInit=function(){this.openFacet?this.facetOpen="in":this.facetOpen="out"},t.prototype.toggleAccordion=function(){this.facetOpen="out"===this.facetOpen?"in":"out"},t.prototype.tagSelect=function(t){this.tagSelectEvent.emit(t)},t}();z.decorators=[{type:e.Component,args:[{moduleId:module.id,selector:"dashboard-facet",template:"\n\n <hr style='max-width: 100%; margin-left:0;'>\n <br>\n <div class='ui container grid'>\n <div class='eight wide column' style=\"margin-left: 0 !important;padding-left: 0 !important;\">\n <h4>{{facet.name}}</h4>\n </div>\n <div class='eight wide column'>\n <div class='ui top right attached label' style='background-color: whitesmoke'>\n <i\n class='chevron icon' [ngClass]= \"{'up': facetOpen == 'in', 'down': facetOpen=='out'}\"\n (click)='toggleAccordion()'\n style='color:grey'>\n </i>\n </div>\n </div>\n </div>\n <div [@accordion]='facetOpen'>\n <table class='ui very basic table' [@accordion2]='facetOpen'>\n <tbody>\n <tr *ngFor='let tag of facet.tags'>\n <td style=\"width: 35px !important\">\n <mat-checkbox (click)='tagSelect(tag.name)'></mat-checkbox>\n \x3c!--<input type='checkbox' (click)='tagSelect(tag.name)'>--\x3e\n </td>\n <td style='color:grey'>{{tag.name}} ( {{tag.count}} )</td>\n </tr>\n </tbody>\n </table>\n </div>\n <br>\n\n ",animations:[i.trigger("accordion",[i.state("in",i.style({height:"*"})),i.state("out",i.style({opacity:"0",height:"0px"})),i.transition("in => out",i.animate("700ms ease-in-out")),i.transition("out => in",i.animate("300ms ease-in-out"))]),i.trigger("accordion2",[i.state("in",i.style({height:"*"})),i.state("out",i.style({opacity:"0",height:"0px"})),i.transition("in => out",i.animate("300ms ease-in-out")),i.transition("out => in",i.animate("800ms ease-in-out"))])],styles:[".ui.avatar.image{height:4em!important;width:4.4em!important}hr{background:hsla(0,0%,43.1%,.1)!important;border:0;color:hsla(0,0%,43.1%,.1)!important;font-size:0;height:2px!important}.ui.input.focus input,.ui.input input:focus{border-color:#e9e9e9!important}h3,h4{color:rgba(66,66,66,.74)!important;font-size:.85em;font-weight:400!important}.segment,.ui.basic.segment{border-radius:5px!important}.ui.table tr td{border-top:none!important}.ui.table td{font-size:.8em;padding:.3em!important}"]}]}],z.ctorParameters=function(){return[]},z.propDecorators={tagSelectEvent:[{type:e.Output}],facet:[{type:e.Input}],openFacet:[{type:e.Input}]};var U=function(){function t(){this.tagSelectEvent=new e.EventEmitter}return t.prototype.tagSelect=function(t){this.tagSelectEvent.emit(t)},t}();U.decorators=[{type:e.Component,args:[{moduleId:module.id,selector:"dashboard-filter-list",template:"\n <br>\n <div *ngFor='let facet of facet_tags ;let i = index'>\n\n <dashboard-facet [facet]='facet' (tagSelectEvent)='tagSelect($event)' [openFacet]='i < 2'></dashboard-facet>\n\n </div>\n ",styles:[".ui.avatar.image{height:4em!important;width:4.4em!important}hr{background:hsla(0,0%,43.1%,.1)!important;border:0;color:hsla(0,0%,43.1%,.1)!important;font-size:0;height:2px!important}.ui.input.focus input,.ui.input input:focus{border-color:#e9e9e9!important}h3,h4{color:rgba(66,66,66,.74)!important;font-size:.85em;font-weight:400!important}.segment,.ui.basic.segment{border-radius:5px!important}.ui.table tr td{border-top:none!important}.ui.table td{font-size:.8em;padding:.3em!important}"]}]}],U.propDecorators={tagSelectEvent:[{type:e.Output}],facet_tags:[{type:e.Input}]};var V=function(){function t(){this.updateFilterListEvent=new e.EventEmitter,this.filterList=[]}return t.prototype.updateFilterList=function(t){t=t.toLocaleLowerCase();var e=this.filterList.indexOf(t);-1!==e?this.filterList.splice(e,1):this.filterList.push(t),this.updateFilterListEvent.emit(this.filterList)},t}();V.decorators=[{type:e.Component,args:[{moduleId:module.id,selector:"dashboard-filter-tag",template:"\n <div class='ui basic segment' style='background-color:white; min-height: 4.5em; border-radius:5px'>\n <div class='ui large circular labels'>\n <a class='ui label' [@showHideAnimation] *ngFor='let tag of filterList'>\n {{tag}}\n </a>\n </div>\n </div>\n ",animations:[i.trigger("showHideAnimation",[i.transition(":enter",[i.style({opacity:0}),i.animate(750,i.style({opacity:1}))]),i.transition(":leave",[i.animate(750,i.style({opacity:0}))])])],styles:['.gadget{color:grey;font-family:Helvetica Neue,Helvetica,Open Sans,Arial,Lucida Grande,sans-serif;margin-bottom:15px!important;min-height:inherit!important}:host /deep/ div:not(.proppages){display:block!important;margin-left:auto;margin-right:auto}.ui.form .field>label{color:grey;font-family:Helvetica Neue,Helvetica,Open Sans,Arial,Lucida Grande,sans-serif;font-size:1.3em!important;font-weight:300}#bt{text-align:center!important}input{border:none!important;font-size:1.3em!important;font-weight:300!important;outline:none!important;padding:5px;width:75%!important}.ct-title,input{font-family:Helvetica Neue,Helvetica,Open Sans,Arial,Lucida Grande,sans-serif}.ct-title{color:#585858!important;font-size:1.5em!important;font-weight:500!important;text-align:left!important}.ui.top.attached.label,.ui.top.left.floated.label{background-color:#fff}hr{border-style:solid;color:#000;font-weight:300!important;height:1px}.ui[class*="top attached"].label:before{border-bottom:0 solid #d0d3d6;bottom:5px;content:"";height:1px;left:2%;position:absolute;width:95%}.spacer{height:2em}.ui.items>.item>.content>.description{color:#a9a9a9!important}.suggestions>li{background-color:#fff!important}td{color:grey}td,th{font-family:Helvetica Neue,Helvetica,Open Sans,Arial,Lucida Grande,sans-serif}th{color:#369}.example-full-width{width:100%}h4{font-weight:400}.ui.segment{border:none;box-shadow:none}']}]}],V.ctorParameters=function(){return[]},V.propDecorators={updateFilterListEvent:[{type:e.Output}]};var W=function(){function t(){}return t.prototype.transform=function(t,e){return null===t?"Not assigned":t.charAt(0).toUpperCase()+t.slice(1)},t}();W.decorators=[{type:e.Pipe,args:[{name:"capitalizeFirst"}]}];var $=function(){};$.decorators=[{type:e.NgModule,args:[{imports:[a.CommonModule,r.FormsModule,p.MatCheckboxModule],declarations:[z,U,V,W],providers:[D],exports:[z,U,V,W]}]}];var J=function(t,e,n,o){this.detail=t,this.summary=e,this.solutions=n,this.resource=o},Q=function(t,e,n){this.summary=t,this.articleId=e,this.link=n},X=function(){function t(){}return t.getErrorObject=function(e){return new J(e.statusText,"Some description",t.getSolutionList(e.status+" "+e.statusText),e.resource)},t.getSolutionList=function(e){console.log("ERROR CONDITION: "+e);var n=[];switch(t.getErrorType(e.toLowerCase())){case"ERR_CERTIFICATE":case"ERR_CROSS_ORIGIN_RESOURCE_SHARING":n.push(new Q("Check to see if your browser has accepted the certificate",0,"http://link1"));break;case"ERR_CONNECTION_REFUSED":n.push(new Q("Check to see if the host/service you are attempting to connect to is up.",0,"http://link1"));break;case"ERR_NOT_FOUND":n.push(new Q("Resource not found.",0,"http://link1"));break;case"ERR_CONNECTION_TIMEOUT":n.push(new Q("A timeout occurred. The default timeout on a connection is 60 seconds. Check the endpoint to see if you are able to access the ip and port using ping. If 60 seconds is to short of a timeout go into configuration and increase it.",0,"http://link1"));break;default:n.push(new Q(e,0,"http://link1"))}return n},t.getErrorType=function(t){return t.indexOf("trust")>-1?"ERR_CERTIFICATE":t.indexOf("cors")>-1?"ERR_CROSS_ORIGIN_RESOURCE_SHARING":t.indexOf("refuse")>-1?"ERR_CONNECTION_REFUSED":t.indexOf("timeout")>-1?"ERR_CONNECTION_TIMEOUT":t.indexOf("404")>-1?"ERR_NOT_FOUND":t},t.getWebSocketErrorReason=function(t){var e="There was probably a problem with an attempt to connect to the endpoint!";switch(t.code){case 1e3:e="Normal closure";break;case 1001:e="An endpoint is going away";break;case 1002:e="An endpoint is terminating the connection due to a protocol error.";break;case 1003:e="An endpoint is terminating the connection because it has received a type of data it cannot accept";break;case 1004:e