{"__symbolic":"module","version":4,"metadata":{"ɵa":{"__symbolic":"function","parameters":[],"value":{"__symbolic":"reference","name":"window"}},"DefaultServiceConfig":{"systemInfoEndpoint":"/api/systeminfo","repositoryBaseEndpoint":"/api/repositories","logBaseEndpoint":"/api/logs","targetBaseEndpoint":"/api/targets","replicationBaseEndpoint":"/api/replications","replicationRuleEndpoint":"/api/policies/replication","replicationJobEndpoint":"/api/jobs/replication","vulnerabilityScanningBaseEndpoint":"/api/repositories","projectPolicyEndpoint":"/api/projects/configs","projectBaseEndpoint":"/api/projects","enablei18Support":false,"langCookieKey":{"__symbolic":"reference","name":"ɵb"},"supportedLangs":{"__symbolic":"reference","name":"ɵc"},"defaultLang":{"__symbolic":"reference","name":"ɵd"},"langMessageLoader":"local","langMessagePathForHttpLoader":"i18n/langs/","langMessageFileSuffixForHttpLoader":"-lang.json","localI18nMessageVariableMap":{},"configurationEndpoint":"/api/configurations","scanJobEndpoint":"/api/jobs/scan","labelEndpoint":"/api/labels","helmChartEndpoint":"/api/chartrepo","downloadChartEndpoint":"/chartrepo"},"HarborModuleConfig":{"__symbolic":"interface"},"initConfig":{"__symbolic":"function"},"HarborLibraryModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":166,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","name":"ɵf"}],"declarations":[{"__symbolic":"reference","name":"LOG_DIRECTIVES"},{"__symbolic":"reference","name":"FILTER_DIRECTIVES"},{"__symbolic":"reference","name":"ENDPOINT_DIRECTIVES"},{"__symbolic":"reference","name":"REPOSITORY_DIRECTIVES"},{"__symbolic":"reference","name":"TAG_DIRECTIVES"},{"__symbolic":"reference","name":"CREATE_EDIT_ENDPOINT_DIRECTIVES"},{"__symbolic":"reference","name":"ɵk"},{"__symbolic":"reference","name":"ɵm"},{"__symbolic":"reference","name":"REPLICATION_DIRECTIVES"},{"__symbolic":"reference","name":"LIST_REPLICATION_RULE_DIRECTIVES"},{"__symbolic":"reference","name":"CREATE_EDIT_RULE_DIRECTIVES"},{"__symbolic":"reference","name":"ɵp"},{"__symbolic":"reference","name":"VULNERABILITY_DIRECTIVES"},{"__symbolic":"reference","name":"PUSH_IMAGE_BUTTON_DIRECTIVES"},{"__symbolic":"reference","name":"CONFIGURATION_DIRECTIVES"},{"__symbolic":"reference","name":"JOB_LOG_VIEWER_DIRECTIVES"},{"__symbolic":"reference","name":"PROJECT_POLICY_CONFIG_DIRECTIVES"},{"__symbolic":"reference","name":"LABEL_DIRECTIVES"},{"__symbolic":"reference","name":"CREATE_EDIT_LABEL_DIRECTIVES"},{"__symbolic":"reference","name":"ɵu"},{"__symbolic":"reference","name":"HBR_GRIDVIEW_DIRECTIVES"},{"__symbolic":"reference","name":"REPOSITORY_GRIDVIEW_DIRECTIVES"},{"__symbolic":"reference","name":"OPERATION_DIRECTIVES"},{"__symbolic":"reference","name":"HELMCHART_DIRECTIVE"}],"exports":[{"__symbolic":"reference","name":"LOG_DIRECTIVES"},{"__symbolic":"reference","name":"FILTER_DIRECTIVES"},{"__symbolic":"reference","name":"ENDPOINT_DIRECTIVES"},{"__symbolic":"reference","name":"REPOSITORY_DIRECTIVES"},{"__symbolic":"reference","name":"TAG_DIRECTIVES"},{"__symbolic":"reference","name":"CREATE_EDIT_ENDPOINT_DIRECTIVES"},{"__symbolic":"reference","name":"ɵk"},{"__symbolic":"reference","name":"ɵm"},{"__symbolic":"reference","name":"REPLICATION_DIRECTIVES"},{"__symbolic":"reference","name":"LIST_REPLICATION_RULE_DIRECTIVES"},{"__symbolic":"reference","name":"CREATE_EDIT_RULE_DIRECTIVES"},{"__symbolic":"reference","name":"ɵp"},{"__symbolic":"reference","name":"VULNERABILITY_DIRECTIVES"},{"__symbolic":"reference","name":"PUSH_IMAGE_BUTTON_DIRECTIVES"},{"__symbolic":"reference","name":"CONFIGURATION_DIRECTIVES"},{"__symbolic":"reference","name":"JOB_LOG_VIEWER_DIRECTIVES"},{"__symbolic":"reference","module":"@ngx-translate/core","name":"TranslateModule","line":213,"character":4},{"__symbolic":"reference","name":"PROJECT_POLICY_CONFIG_DIRECTIVES"},{"__symbolic":"reference","name":"LABEL_DIRECTIVES"},{"__symbolic":"reference","name":"CREATE_EDIT_LABEL_DIRECTIVES"},{"__symbolic":"reference","name":"ɵu"},{"__symbolic":"reference","name":"HBR_GRIDVIEW_DIRECTIVES"},{"__symbolic":"reference","name":"REPOSITORY_GRIDVIEW_DIRECTIVES"},{"__symbolic":"reference","name":"OPERATION_DIRECTIVES"},{"__symbolic":"reference","name":"HELMCHART_DIRECTIVE"}],"providers":[]}]}],"members":{},"statics":{"forRoot":{"__symbolic":"function","parameters":["config"],"defaults":[{}],"value":{"ngModule":{"__symbolic":"reference","name":"HarborLibraryModule"},"providers":[{"__symbolic":"binop","operator":"||","left":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"config"},"member":"config"},"right":{"provide":{"__symbolic":"reference","name":"SERVICE_CONFIG"},"useValue":{"__symbolic":"reference","name":"DefaultServiceConfig"}}},{"__symbolic":"binop","operator":"||","left":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"config"},"member":"errorHandler"},"right":{"provide":{"__symbolic":"reference","name":"ErrorHandler"},"useClass":{"__symbolic":"reference","name":"DefaultErrorHandler"}}},{"__symbolic":"binop","operator":"||","left":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"config"},"member":"systemInfoService"},"right":{"provide":{"__symbolic":"reference","name":"SystemInfoService"},"useClass":{"__symbolic":"reference","name":"SystemInfoDefaultService"}}},{"__symbolic":"binop","operator":"||","left":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"config"},"member":"logService"},"right":{"provide":{"__symbolic":"reference","name":"AccessLogService"},"useClass":{"__symbolic":"reference","name":"AccessLogDefaultService"}}},{"__symbolic":"binop","operator":"||","left":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"config"},"member":"endpointService"},"right":{"provide":{"__symbolic":"reference","name":"EndpointService"},"useClass":{"__symbolic":"reference","name":"EndpointDefaultService"}}},{"__symbolic":"binop","operator":"||","left":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"config"},"member":"replicationService"},"right":{"provide":{"__symbolic":"reference","name":"ReplicationService"},"useClass":{"__symbolic":"reference","name":"ReplicationDefaultService"}}},{"__symbolic":"binop","operator":"||","left":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"config"},"member":"repositoryService"},"right":{"provide":{"__symbolic":"reference","name":"RepositoryService"},"useClass":{"__symbolic":"reference","name":"RepositoryDefaultService"}}},{"__symbolic":"binop","operator":"||","left":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"config"},"member":"tagService"},"right":{"provide":{"__symbolic":"reference","name":"TagService"},"useClass":{"__symbolic":"reference","name":"TagDefaultService"}}},{"__symbolic":"binop","operator":"||","left":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"config"},"member":"scanningService"},"right":{"provide":{"__symbolic":"reference","name":"ScanningResultService"},"useClass":{"__symbolic":"reference","name":"ScanningResultDefaultService"}}},{"__symbolic":"binop","operator":"||","left":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"config"},"member":"configService"},"right":{"provide":{"__symbolic":"reference","name":"ConfigurationService"},"useClass":{"__symbolic":"reference","name":"ConfigurationDefaultService"}}},{"__symbolic":"binop","operator":"||","left":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"config"},"member":"jobLogService"},"right":{"provide":{"__symbolic":"reference","name":"JobLogService"},"useClass":{"__symbolic":"reference","name":"JobLogDefaultService"}}},{"__symbolic":"binop","operator":"||","left":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"config"},"member":"projectPolicyService"},"right":{"provide":{"__symbolic":"reference","name":"ProjectService"},"useClass":{"__symbolic":"reference","name":"ProjectDefaultService"}}},{"__symbolic":"binop","operator":"||","left":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"config"},"member":"labelService"},"right":{"provide":{"__symbolic":"reference","name":"LabelService"},"useClass":{"__symbolic":"reference","name":"LabelDefaultService"}}},{"__symbolic":"binop","operator":"||","left":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"config"},"member":"helmChartService"},"right":{"provide":{"__symbolic":"reference","name":"HelmChartService"},"useClass":{"__symbolic":"reference","name":"HelmChartDefaultService"}}},{"__symbolic":"reference","name":"TranslateServiceInitializer"},{"provide":{"__symbolic":"reference","module":"@angular/core","name":"APP_INITIALIZER","line":248,"character":19},"useFactory":{"__symbolic":"reference","name":"initConfig"},"deps":[{"__symbolic":"reference","name":"TranslateServiceInitializer"},{"__symbolic":"reference","name":"SERVICE_CONFIG"}],"multi":true},{"__symbolic":"reference","name":"ChannelService"},{"__symbolic":"reference","name":"OperationService"}]}},"forChild":{"__symbolic":"function","parameters":["config"],"defaults":[{}],"value":{"ngModule":{"__symbolic":"reference","name":"HarborLibraryModule"},"providers":[{"__symbolic":"binop","operator":"||","left":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"config"},"member":"config"},"right":{"provide":{"__symbolic":"reference","name":"SERVICE_CONFIG"},"useValue":{"__symbolic":"reference","name":"DefaultServiceConfig"}}},{"__symbolic":"binop","operator":"||","left":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"config"},"member":"errorHandler"},"right":{"provide":{"__symbolic":"reference","name":"ErrorHandler"},"useClass":{"__symbolic":"reference","name":"DefaultErrorHandler"}}},{"__symbolic":"binop","operator":"||","left":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"config"},"member":"systemInfoService"},"right":{"provide":{"__symbolic":"reference","name":"SystemInfoService"},"useClass":{"__symbolic":"reference","name":"SystemInfoDefaultService"}}},{"__symbolic":"binop","operator":"||","left":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"config"},"member":"logService"},"right":{"provide":{"__symbolic":"reference","name":"AccessLogService"},"useClass":{"__symbolic":"reference","name":"AccessLogDefaultService"}}},{"__symbolic":"binop","operator":"||","left":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"config"},"member":"endpointService"},"right":{"provide":{"__symbolic":"reference","name":"EndpointService"},"useClass":{"__symbolic":"reference","name":"EndpointDefaultService"}}},{"__symbolic":"binop","operator":"||","left":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"config"},"member":"replicationService"},"right":{"provide":{"__symbolic":"reference","name":"ReplicationService"},"useClass":{"__symbolic":"reference","name":"ReplicationDefaultService"}}},{"__symbolic":"binop","operator":"||","left":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"config"},"member":"repositoryService"},"right":{"provide":{"__symbolic":"reference","name":"RepositoryService"},"useClass":{"__symbolic":"reference","name":"RepositoryDefaultService"}}},{"__symbolic":"binop","operator":"||","left":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"config"},"member":"tagService"},"right":{"provide":{"__symbolic":"reference","name":"TagService"},"useClass":{"__symbolic":"reference","name":"TagDefaultService"}}},{"__symbolic":"binop","operator":"||","left":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"config"},"member":"scanningService"},"right":{"provide":{"__symbolic":"reference","name":"ScanningResultService"},"useClass":{"__symbolic":"reference","name":"ScanningResultDefaultService"}}},{"__symbolic":"binop","operator":"||","left":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"config"},"member":"configService"},"right":{"provide":{"__symbolic":"reference","name":"ConfigurationService"},"useClass":{"__symbolic":"reference","name":"ConfigurationDefaultService"}}},{"__symbolic":"binop","operator":"||","left":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"config"},"member":"jobLogService"},"right":{"provide":{"__symbolic":"reference","name":"JobLogService"},"useClass":{"__symbolic":"reference","name":"JobLogDefaultService"}}},{"__symbolic":"binop","operator":"||","left":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"config"},"member":"projectPolicyService"},"right":{"provide":{"__symbolic":"reference","name":"ProjectService"},"useClass":{"__symbolic":"reference","name":"ProjectDefaultService"}}},{"__symbolic":"binop","operator":"||","left":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"config"},"member":"labelService"},"right":{"provide":{"__symbolic":"reference","name":"LabelService"},"useClass":{"__symbolic":"reference","name":"LabelDefaultService"}}},{"__symbolic":"binop","operator":"||","left":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"config"},"member":"helmChartService"},"right":{"provide":{"__symbolic":"reference","name":"HelmChartService"},"useClass":{"__symbolic":"reference","name":"HelmChartDefaultService"}}},{"__symbolic":"reference","name":"ChannelService"},{"__symbolic":"reference","name":"OperationService"}]}}}},"SERVICE_CONFIG":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":2,"character":32},"arguments":["service.config"]},"IServiceConfig":{"__symbolic":"interface"},"Base":{"__symbolic":"interface"},"RepositoryItem":{"__symbolic":"interface"},"Repository":{"__symbolic":"interface"},"Tag":{"__symbolic":"interface"},"Endpoint":{"__symbolic":"interface"},"ReplicationRule":{"__symbolic":"interface"},"Filter":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"string"}]}]}},"Trigger":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"string"},{"__symbolic":"error","message":"Expression form not supported","line":119,"character":41,"module":"./src/service/interface"}]}]}},"ReplicationJob":{"__symbolic":"interface"},"ReplicationJobItem":{"__symbolic":"interface"},"Metadata":{"__symbolic":"interface"},"AccessLog":{"__symbolic":"interface"},"AccessLogItem":{"__symbolic":"interface"},"SystemInfo":{"__symbolic":"interface"},"ClairDetail":{"__symbolic":"interface"},"ClairDBStatus":{"__symbolic":"interface"},"VulnerabilitySeverity":{"_SEVERITY":0,"NONE":1,"UNKNOWN":2,"LOW":3,"MEDIUM":4,"HIGH":5},"VulnerabilityBase":{"__symbolic":"interface"},"VulnerabilityItem":{"__symbolic":"interface"},"VulnerabilitySummary":{"__symbolic":"interface"},"VulnerabilityComponents":{"__symbolic":"interface"},"VulnerabilitySeverityMetrics":{"__symbolic":"interface"},"TagClickEvent":{"__symbolic":"interface"},"Label":{"__symbolic":"interface"},"CardItemEvent":{"__symbolic":"interface"},"ScrollPosition":{"__symbolic":"interface"},"HelmChartItem":{"__symbolic":"interface"},"HelmChartVersion":{"__symbolic":"interface"},"HelmChartDetail":{"__symbolic":"interface"},"HelmChartMetaData":{"__symbolic":"interface"},"HelmChartMaintainer":{"__symbolic":"interface"},"HelmChartDependency":{"__symbolic":"interface"},"HelmchartFile":{"__symbolic":"interface"},"HelmChartSecurity":{"__symbolic":"interface"},"HelmChartSignature":{"__symbolic":"interface"},"SystemInfoService":{"__symbolic":"class","members":{"getSystemInfo":[{"__symbolic":"method"}]}},"SystemInfoDefaultService":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"SystemInfoService"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":20,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":23,"character":5},"arguments":[{"__symbolic":"reference","name":"SERVICE_CONFIG"}]}],null],"parameters":[{"__symbolic":"reference","name":"IServiceConfig"},{"__symbolic":"reference","module":"@angular/http","name":"Http","line":24,"character":18}]}],"getSystemInfo":[{"__symbolic":"method"}]}},"AccessLogService":{"__symbolic":"class","members":{"getAuditLogs":[{"__symbolic":"method"}],"getRecentLogs":[{"__symbolic":"method"}]}},"AccessLogDefaultService":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"AccessLogService"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":56,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":60,"character":5},"arguments":[{"__symbolic":"reference","name":"SERVICE_CONFIG"}]}]],"parameters":[{"__symbolic":"reference","module":"@angular/http","name":"Http","line":59,"character":18},{"__symbolic":"reference","name":"IServiceConfig"}]}],"getAuditLogs":[{"__symbolic":"method"}],"getRecentLogs":[{"__symbolic":"method"}]}},"EndpointService":{"__symbolic":"class","members":{"getEndpoints":[{"__symbolic":"method"}],"getEndpoint":[{"__symbolic":"method"}],"createEndpoint":[{"__symbolic":"method"}],"updateEndpoint":[{"__symbolic":"method"}],"deleteEndpoint":[{"__symbolic":"method"}],"pingEndpoint":[{"__symbolic":"method"}],"getEndpointWithReplicationRules":[{"__symbolic":"method"}]}},"EndpointDefaultService":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"EndpointService"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":124,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":129,"character":5},"arguments":[{"__symbolic":"reference","name":"SERVICE_CONFIG"}]}],null],"parameters":[{"__symbolic":"reference","name":"IServiceConfig"},{"__symbolic":"reference","module":"@angular/http","name":"Http","line":130,"character":18}]}],"getEndpoints":[{"__symbolic":"method"}],"getEndpoint":[{"__symbolic":"method"}],"createEndpoint":[{"__symbolic":"method"}],"updateEndpoint":[{"__symbolic":"method"}],"deleteEndpoint":[{"__symbolic":"method"}],"pingEndpoint":[{"__symbolic":"method"}],"getEndpointWithReplicationRules":[{"__symbolic":"method"}]}},"ReplicationService":{"__symbolic":"class","members":{"getReplicationRules":[{"__symbolic":"method"}],"getReplicationRule":[{"__symbolic":"method"}],"createReplicationRule":[{"__symbolic":"method"}],"updateReplicationRule":[{"__symbolic":"method"}],"deleteReplicationRule":[{"__symbolic":"method"}],"enableReplicationRule":[{"__symbolic":"method"}],"disableReplicationRule":[{"__symbolic":"method"}],"replicateRule":[{"__symbolic":"method"}],"getJobs":[{"__symbolic":"method"}],"getJobLog":[{"__symbolic":"method"}],"stopJobs":[{"__symbolic":"method"}]}},"ReplicationDefaultService":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"ReplicationService"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":178,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":186,"character":5},"arguments":[{"__symbolic":"reference","name":"SERVICE_CONFIG"}]}]],"parameters":[{"__symbolic":"reference","module":"@angular/http","name":"Http","line":185,"character":18},{"__symbolic":"reference","name":"IServiceConfig"}]}],"_isValidRule":[{"__symbolic":"method"}],"getReplicationRules":[{"__symbolic":"method"}],"getReplicationRule":[{"__symbolic":"method"}],"createReplicationRule":[{"__symbolic":"method"}],"updateReplicationRule":[{"__symbolic":"method"}],"deleteReplicationRule":[{"__symbolic":"method"}],"replicateRule":[{"__symbolic":"method"}],"enableReplicationRule":[{"__symbolic":"method"}],"disableReplicationRule":[{"__symbolic":"method"}],"getJobs":[{"__symbolic":"method"}],"getJobLog":[{"__symbolic":"method"}],"stopJobs":[{"__symbolic":"method"}]}},"RepositoryService":{"__symbolic":"class","members":{"getRepositories":[{"__symbolic":"method"}],"updateRepositoryDescription":[{"__symbolic":"method"}],"deleteRepository":[{"__symbolic":"method"}]}},"RepositoryDefaultService":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"RepositoryService"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":67,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":71,"character":9},"arguments":[{"__symbolic":"reference","name":"SERVICE_CONFIG"}]}]],"parameters":[{"__symbolic":"reference","module":"@angular/http","name":"Http","line":70,"character":22},{"__symbolic":"reference","name":"IServiceConfig"}]}],"getRepositories":[{"__symbolic":"method"}],"updateRepositoryDescription":[{"__symbolic":"method"}],"deleteRepository":[{"__symbolic":"method"}]}},"VerifiedSignature":{"__symbolic":"class","members":{}},"TagService":{"__symbolic":"class","members":{"getTags":[{"__symbolic":"method"}],"deleteTag":[{"__symbolic":"method"}],"getTag":[{"__symbolic":"method"}],"addLabelToImages":[{"__symbolic":"method"}],"deleteLabelToImages":[{"__symbolic":"method"}]}},"TagDefaultService":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"TagService"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":102,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":108,"character":5},"arguments":[{"__symbolic":"reference","name":"SERVICE_CONFIG"}]}]],"parameters":[{"__symbolic":"reference","module":"@angular/http","name":"Http","line":107,"character":18},{"__symbolic":"reference","name":"IServiceConfig"}]}],"_getTags":[{"__symbolic":"method"}],"_getSignatures":[{"__symbolic":"method"}],"getTags":[{"__symbolic":"method"}],"deleteTag":[{"__symbolic":"method"}],"getTag":[{"__symbolic":"method"}],"addLabelToImages":[{"__symbolic":"method"}],"deleteLabelToImages":[{"__symbolic":"method"}]}},"RequestQueryParams":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@angular/http","name":"URLSearchParams","line":10,"character":40},"members":{"__ctor__":[{"__symbolic":"constructor"}]}},"ScanningResultService":{"__symbolic":"class","members":{"getVulnerabilityScanningSummary":[{"__symbolic":"method"}],"getVulnerabilityScanningResults":[{"__symbolic":"method"}],"startVulnerabilityScanning":[{"__symbolic":"method"}],"startScanningAll":[{"__symbolic":"method"}]}},"ScanningResultDefaultService":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"ScanningResultService"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":80,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":86,"character":5},"arguments":[{"__symbolic":"reference","name":"SERVICE_CONFIG"}]}]],"parameters":[{"__symbolic":"reference","module":"@angular/http","name":"Http","line":85,"character":18},{"__symbolic":"reference","name":"IServiceConfig"}]}],"getVulnerabilityScanningSummary":[{"__symbolic":"method"}],"getVulnerabilityScanningResults":[{"__symbolic":"method"}],"startVulnerabilityScanning":[{"__symbolic":"method"}],"startScanningAll":[{"__symbolic":"method"}]}},"ConfigurationService":{"__symbolic":"class","members":{"getConfigurations":[{"__symbolic":"method"}],"saveConfigurations":[{"__symbolic":"method"}]}},"ConfigurationDefaultService":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"ConfigurationService"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":43,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":49,"character":5},"arguments":[{"__symbolic":"reference","name":"SERVICE_CONFIG"}]}]],"parameters":[{"__symbolic":"reference","module":"@angular/http","name":"Http","line":48,"character":18},{"__symbolic":"reference","name":"IServiceConfig"}]}],"getConfigurations":[{"__symbolic":"method"}],"saveConfigurations":[{"__symbolic":"method"}]}},"JobLogService":{"__symbolic":"class","members":{"getJobLog":[{"__symbolic":"method"}]}},"JobLogDefaultService":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"JobLogService"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":37,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":45,"character":5},"arguments":[{"__symbolic":"reference","name":"SERVICE_CONFIG"}]}]],"parameters":[{"__symbolic":"reference","module":"@angular/http","name":"Http","line":44,"character":18},{"__symbolic":"reference","name":"IServiceConfig"}]}],"_getJobLog":[{"__symbolic":"method"}],"_isSupportedJobType":[{"__symbolic":"method"}],"getJobLog":[{"__symbolic":"method"}]}},"ProjectService":{"__symbolic":"class","members":{"getProject":[{"__symbolic":"method"}],"updateProjectPolicy":[{"__symbolic":"method"}],"listProjects":[{"__symbolic":"method"}]}},"ProjectDefaultService":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"ProjectService"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":80,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":84,"character":5},"arguments":[{"__symbolic":"reference","name":"SERVICE_CONFIG"}]}]],"parameters":[{"__symbolic":"reference","module":"@angular/http","name":"Http","line":83,"character":18},{"__symbolic":"reference","name":"IServiceConfig"}]}],"getProject":[{"__symbolic":"method"}],"listProjects":[{"__symbolic":"method"}],"updateProjectPolicy":[{"__symbolic":"method"}]}},"LabelService":{"__symbolic":"class","members":{"getGLabels":[{"__symbolic":"method"}],"getPLabels":[{"__symbolic":"method"}],"getLabels":[{"__symbolic":"method"}],"createLabel":[{"__symbolic":"method"}],"getLabel":[{"__symbolic":"method"}],"updateLabel":[{"__symbolic":"method"}],"deleteLabel":[{"__symbolic":"method"}]}},"LabelDefaultService":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"LabelService"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":41,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":46,"character":5},"arguments":[{"__symbolic":"reference","name":"SERVICE_CONFIG"}]}],null],"parameters":[{"__symbolic":"reference","name":"IServiceConfig"},{"__symbolic":"reference","module":"@angular/http","name":"Http","line":47,"character":18}]}],"getLabels":[{"__symbolic":"method"}],"getGLabels":[{"__symbolic":"method"}],"getPLabels":[{"__symbolic":"method"}],"createLabel":[{"__symbolic":"method"}],"getLabel":[{"__symbolic":"method"}],"updateLabel":[{"__symbolic":"method"}],"deleteLabel":[{"__symbolic":"method"}]}},"HelmChartService":{"__symbolic":"class","members":{"getHelmCharts":[{"__symbolic":"method"}],"deleteHelmChart":[{"__symbolic":"method"}],"getChartVersions":[{"__symbolic":"method"}],"deleteChartVersion":[{"__symbolic":"method"}],"getChartDetail":[{"__symbolic":"method"}],"downloadChart":[{"__symbolic":"method"}],"uploadChart":[{"__symbolic":"method"}]}},"HelmChartDefaultService":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"HelmChartService"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":99,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":103,"character":5},"arguments":[{"__symbolic":"reference","name":"SERVICE_CONFIG"}]}]],"parameters":[{"__symbolic":"reference","module":"@angular/http","name":"Http","line":102,"character":18},{"__symbolic":"reference","name":"IServiceConfig"}]}],"extractData":[{"__symbolic":"method"}],"extractHelmItems":[{"__symbolic":"method"}],"handleErrorObservable":[{"__symbolic":"method"}],"getHelmCharts":[{"__symbolic":"method"}],"deleteHelmChart":[{"__symbolic":"method"}],"getChartVersions":[{"__symbolic":"method"}],"deleteChartVersion":[{"__symbolic":"method"}],"getChartDetail":[{"__symbolic":"method"}],"downloadChart":[{"__symbolic":"method"}],"uploadChart":[{"__symbolic":"method"}]}},"ErrorHandler":{"__symbolic":"class","members":{"error":[{"__symbolic":"method"}],"warning":[{"__symbolic":"method"}],"info":[{"__symbolic":"method"}],"log":[{"__symbolic":"method"}]}},"DefaultErrorHandler":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"ErrorHandler"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":51,"character":1}}],"members":{"error":[{"__symbolic":"method"}],"warning":[{"__symbolic":"method"}],"info":[{"__symbolic":"method"}],"log":[{"__symbolic":"method"}]}},"LOG_DIRECTIVES":[{"__symbolic":"reference","name":"RecentLogComponent"}],"RecentLogComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":31,"character":1},"arguments":[{"selector":"hbr-log","template":"<div>\n    <h2 class=\"h2-log-override\" *ngIf=\"withTitle\">{{'SIDE_NAV.LOGS' | translate}}</h2>\n    <div class=\"row flex-items-xs-between flex-items-xs-bottom\">\n        <div></div>\n        <div class=\"action-head-pos rightPos\">\n            <div class=\"select filterTag\" [hidden]=\"!isOpenFilterTag\">\n                <select id=\"selectKey\" (change)=\"selectFilterKey($event)\">\n                    <option value=\"username\">{{\"AUDIT_LOG.USERNAME\" | translate | lowercase}}</option>\n                    <option value=\"repository\">{{\"CONFIG.REPOSITORY\" | translate | lowercase}}</option>\n                    <option value=\"tag\">{{\"REPOSITORY.TAG\" | translate | lowercase}}</option>\n                    <option value=\"operation\">{{\"AUDIT_LOG.OPERATION\" | translate | lowercase}}</option>\n                </select>\n            </div>\n            <hbr-filter [withDivider]=\"true\" filterPlaceholder='{{\"AUDIT_LOG.FILTER_PLACEHOLDER\" | translate}}' (filterEvt)=\"doFilter($event)\"\n                (openFlag)=\"openFilter($event)\" [currentValue]=\"currentTerm\"></hbr-filter>\n            <span (click)=\"refresh()\" class=\"refresh-btn\">\n                <clr-icon shape=\"refresh\" [hidden]=\"inProgress\" ng-disabled=\"inProgress\"></clr-icon>\n                <span class=\"spinner spinner-inline\" [hidden]=\"!inProgress\"></span>\n            </span>\n        </div>\n    </div>\n    <div>\n        <clr-datagrid (clrDgRefresh)=\"load($event)\" [clrDgLoading]=\"loading\">\n            <clr-dg-column [clrDgField]=\"'username'\">{{'AUDIT_LOG.USERNAME' | translate}}</clr-dg-column>\n            <clr-dg-column [clrDgField]=\"'repo_name'\">{{'AUDIT_LOG.REPOSITORY_NAME' | translate}}</clr-dg-column>\n            <clr-dg-column [clrDgField]=\"'repo_tag'\">{{'AUDIT_LOG.TAGS' | translate}}</clr-dg-column>\n            <clr-dg-column [clrDgField]=\"'operation'\">{{'AUDIT_LOG.OPERATION' | translate}}</clr-dg-column>\n            <clr-dg-column [clrDgSortBy]=\"opTimeComparator\">{{'AUDIT_LOG.TIMESTAMP' | translate}}</clr-dg-column>\n            <clr-dg-placeholder>We couldn't find any logs!</clr-dg-placeholder>\n            <clr-dg-row *ngFor=\"let l of recentLogs\">\n                <clr-dg-cell>{{l.username}}</clr-dg-cell>\n                <clr-dg-cell>{{l.repo_name}}</clr-dg-cell>\n                <clr-dg-cell>{{l.repo_tag}}</clr-dg-cell>\n                <clr-dg-cell>{{l.operation}}</clr-dg-cell>\n                <clr-dg-cell>{{l.op_time | date: 'short'}}</clr-dg-cell>\n            </clr-dg-row>\n            <clr-dg-footer>\n                {{pagination.firstItem + 1}} - {{pagination.lastItem + 1}} {{'AUDIT_LOG.OF' | translate}} {{pagination.totalItems}} {{'AUDIT_LOG.ITEMS'\n                | translate}}\n                <clr-dg-pagination #pagination [(clrDgPage)]=\"currentPage\" [clrDgPageSize]=\"pageSize\" [clrDgTotalItems]=\"totalCount\"></clr-dg-pagination>\n            </clr-dg-footer>\n        </clr-datagrid>\n    </div>\n</div>","styles":[".h2-log-override{margin-top:0!important}.action-head-pos{padding-right:18px;height:24px}.refresh-btn{cursor:pointer}.refresh-btn:hover{color:#007cbb}.custom-lines-button{padding:0!important;min-width:25px!important}.lines-button-toggole{font-size:16px;text-decoration:underline}.log-select{width:130px;display:inline-block;top:1px}.item-divider{height:24px;display:inline-block;width:1px;background-color:#ccc;opacity:.55;margin-left:12px;top:8px;position:relative}.rightPos{position:absolute;z-index:100;right:35px;margin-top:4px}.filterTag{float:left;margin-top:8px}"]}]}],"members":{"withTitle":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":87,"character":5}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"AccessLogService"},{"__symbolic":"reference","name":"ErrorHandler"}]}],"ngOnInit":[{"__symbolic":"method"}],"doFilter":[{"__symbolic":"method"}],"refresh":[{"__symbolic":"method"}],"openFilter":[{"__symbolic":"method"}],"selectFilterKey":[{"__symbolic":"method"}],"load":[{"__symbolic":"method"}],"isMatched":[{"__symbolic":"method"}]}},"FILTER_DIRECTIVES":[{"__symbolic":"reference","name":"FilterComponent"}],"FilterComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":19,"character":1},"arguments":[{"selector":"hbr-filter","template":"<span>\n    <clr-icon shape=\"search\" size=\"20\" class=\"search-btn\" [class.filter-icon]=\"isShowSearchBox\" (click)=\"onClick()\"></clr-icon>\n    <input [hidden]=\"!isShowSearchBox\" type=\"text\" style=\"padding-left: 15px;\" (keyup)=\"valueChange()\" (focus)=\"inputFocus()\"\n        placeholder=\"{{placeHolder}}\" [(ngModel)]=\"currentValue\" />\n    <span class=\"filter-divider\" *ngIf=\"withDivider\"></span>\n</span>","styles":[".filter-icon{position:relative;right:-12px}.filter-divider{display:inline-block;height:16px;width:2px;background-color:#ccc;padding-top:12px;padding-bottom:12px;position:relative;top:9px;margin-right:6px;margin-left:6px}.search-btn{cursor:pointer}.search-btn:hover{color:#007cbb}"]}]}],"members":{"filterEvt":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":34,"character":3}}]}],"openFlag":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":35,"character":3}}]}],"currentValue":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":37,"character":3}}]}],"flPlaceholder":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":38,"character":3},"arguments":["filterPlaceholder"]}]}],"expandMode":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":42,"character":3}}]}],"withDivider":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":43,"character":3}}]}],"ngOnInit":[{"__symbolic":"method"}],"valueChange":[{"__symbolic":"method"}],"inputFocus":[{"__symbolic":"method"}],"onClick":[{"__symbolic":"method"}]}},"ENDPOINT_DIRECTIVES":[{"__symbolic":"reference","name":"ɵh"}],"REPOSITORY_DIRECTIVES":[{"__symbolic":"reference","name":"RepositoryComponent"}],"RepositoryComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":30,"character":1},"arguments":[{"selector":"hbr-repository","template":"<section class=\"overview-section\">\n  <div class=\"title-wrapper\">\n    <div class=\"title-block arrow-block\" *ngIf=\"withAdmiral\">\t\n       <clr-icon class=\"rotate-90 arrow-back\" shape=\"arrow\" size=\"36\" (click)=\"goBack()\"></clr-icon>\n    </div>\n    <div class=\"title-block\">\n      <h2 sub-header-title class=\"custom-h2\">{{repoName}}</h2>\n    </div>\n  </div>\n</section>\n\n<section class=\"detail-section\">\n  <div class=\"col-lg-12 col-md-12 col-sm-12 col-xs-12\">\n    <span class=\"spinner spinner-inline\" [hidden]=\"inProgress === false\"></span>\n    <ul id=\"configTabs\" class=\"nav\" role=\"tablist\">\n      <li role=\"presentation\" class=\"nav-item\">\n          <button id=\"repo-info\" class=\"btn btn-link nav-link\" aria-controls=\"info\" [class.active]='isCurrentTabLink(\"repo-info\")' type=\"button\" (click)='tabLinkClick(\"repo-info\")'>{{'REPOSITORY.INFO' | translate}}</button>\n      </li>\n      <li role=\"presentation\" class=\"nav-item\">\n          <button id=\"repo-image\" class=\"btn btn-link nav-link active\" aria-controls=\"image\" [class.active]='isCurrentTabLink(\"repo-image\")' type=\"button\" (click)='tabLinkClick(\"repo-image\")'>{{'REPOSITORY.IMAGE' | translate}}</button>\n      </li>\n    </ul>\n    <section id=\"info\" role=\"tabpanel\" aria-labelledby=\"repo-info\" [hidden]='!isCurrentTabContent(\"info\")'>\n      <form #repoInfoForm=\"ngForm\">\n        <div id=\"info-edit-button\">\n          <button class=\"btn btn-sm\" [disabled]=\"editing || !hasProjectAdminRole \" (click)=\"editInfo()\" ><clr-icon shape=\"pencil\" size=\"16\"></clr-icon>&nbsp;{{'BUTTON.EDIT' | translate}}</button>\n        </div>\n        <div *ngIf=\"!editing\">\n          <div *ngIf=\"!hasInfo()\" class=\"no-info-div\">\n            <p>{{'REPOSITORY.NO_INFO' | translate }}<p>\n          </div>\n          <div *ngIf=\"hasInfo()\" class=\"info-div\">\n            <pre class=\"info-pre\">{{ imageInfo }}</pre>\n          </div>\n        </div>\n        <div *ngIf=\"editing\">\n            <textarea rows=\"5\"  name=\"info-edit-textarea\" [(ngModel)]=\"imageInfo\"></textarea>\n        </div>\n        <div class=\"btn-sm\" *ngIf=\"editing\">\n          <button class=\"btn btn-primary\" [disabled]=\"!hasChanges()\" (click)=\"saveInfo()\" >{{'BUTTON.SAVE' | translate}}</button>\n          <button class=\"btn\" (click)=\"cancelInfo()\" >{{'BUTTON.CANCEL' | translate}}</button>\n        </div>\n        <confirmation-dialog #confirmationDialog (confirmAction)=\"confirmCancel($event)\"></confirmation-dialog>\n      </form>\n    </section>\n    <section id=\"image\" role=\"tabpanel\" aria-labelledby=\"repo-image\" [hidden]='!isCurrentTabContent(\"image\")'>\n      <div id=images-container>\n        <hbr-tag ngProjectAs=\"clr-dg-row-detail\" (tagClickEvent)=\"watchTagClickEvt($event)\" (signatureOutput)=\"saveSignatures($event)\" class=\"sub-grid-custom\" [repoName]=\"repoName\" [registryUrl]=\"registryUrl\" [withNotary]=\"withNotary\" [withClair]=\"withClair\" [withAdmiral]=\"withAdmiral\" [hasSignedIn]=\"hasSignedIn\" [hasProjectAdminRole]=\"hasProjectAdminRole\" [isGuest]=\"isGuest\" [projectId]=\"projectId\"></hbr-tag>\n      </div>\n    </section>\n  </div>\n</section>","styles":[".option-right{padding-right:16px;margin-bottom:12px}.arrow-back{cursor:pointer}.arrow-block{border-right:2px solid #ccc;margin-right:6px;display:inline-flex;padding:6px 6px 6px 12px}.title-block{display:inline-block}.tag-name{font-weight:300;font-size:32px}.no-info-div{background:#fff;border:1px solid #ccc;padding:12px}.info-div{background:#fff;border:1px solid #ccc;padding:0 12px 24px}.info-pre{border:0;max-height:-webkit-fit-content;max-height:-moz-fit-content;max-height:fit-content}#info-edit-button{margin-top:0;margin-bottom:12px}#images-container{margin-top:12px}harbor-tag{position:relative;top:24px}"]}]}],"members":{"projectId":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":88,"character":3}}]}],"repoName":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":89,"character":3}}]}],"hasSignedIn":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":90,"character":3}}]}],"hasProjectAdminRole":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":91,"character":3}}]}],"isGuest":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":92,"character":3}}]}],"tagClickEvent":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":93,"character":3}}]}],"backEvt":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":94,"character":3}}]}],"confirmationDlg":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":108,"character":3},"arguments":["confirmationDialog"]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ErrorHandler"},{"__symbolic":"reference","name":"RepositoryService"},{"__symbolic":"reference","name":"SystemInfoService"},{"__symbolic":"reference","name":"TagService"},{"__symbolic":"reference","module":"@ngx-translate/core","name":"TranslateService","line":116,"character":23}]}],"ngOnInit":[{"__symbolic":"method"}],"retrieve":[{"__symbolic":"method"}],"saveSignatures":[{"__symbolic":"method"}],"refresh":[{"__symbolic":"method"}],"watchTagClickEvt":[{"__symbolic":"method"}],"isCurrentTabLink":[{"__symbolic":"method"}],"isCurrentTabContent":[{"__symbolic":"method"}],"tabLinkClick":[{"__symbolic":"method"}],"getTagInfo":[{"__symbolic":"method"}],"goBack":[{"__symbolic":"method"}],"hasChanges":[{"__symbolic":"method"}],"reset":[{"__symbolic":"method"}],"hasInfo":[{"__symbolic":"method"}],"editInfo":[{"__symbolic":"method"}],"saveInfo":[{"__symbolic":"method"}],"cancelInfo":[{"__symbolic":"method"}],"confirmCancel":[{"__symbolic":"method"}]}},"CREATE_EDIT_ENDPOINT_DIRECTIVES":[{"__symbolic":"reference","name":"ɵi"}],"CREATE_EDIT_RULE_DIRECTIVES":[{"__symbolic":"reference","name":"ɵn"},{"__symbolic":"reference","name":"ɵo"}],"TAG_DIRECTIVES":[{"__symbolic":"reference","name":"TagComponent"},{"__symbolic":"reference","name":"TagDetailComponent"}],"LabelState":{"__symbolic":"interface"},"TagComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":66,"character":1},"arguments":[{"selector":"hbr-tag","template":"<confirmation-dialog class=\"hidden-tag\" #confirmationDialog  (confirmAction)=\"confirmDeletion($event)\"></confirmation-dialog>\n<clr-modal class=\"hidden-tag\" [(clrModalOpen)]=\"showTagManifestOpened\" [clrModalStaticBackdrop]=\"staticBackdrop\" [clrModalClosable]=\"closable\">\n  <h3 class=\"modal-title\">{{ manifestInfoTitle | translate }}</h3>\n  <div class=\"modal-body\">\n    <div class=\"row col-md-12\">\n        <textarea rows=\"2\" #digestTarget>{{digestId}}</textarea>\n    </div>\n  </div>\n  <div class=\"modal-footer\">\n    <span class=\"copy-failed\" [hidden]=\"!copyFailed\">{{'TAG.COPY_ERROR' | translate}}</span>\n    <button type=\"button\" class=\"btn btn-primary\" [ngxClipboard]=\"digestTarget\" (cbOnSuccess)=\"onSuccess($event)\" (cbOnError)=\"onError($event)\">{{'BUTTON.COPY' | translate}}</button>\n  </div>\n</clr-modal>\n<div class=\"row\" style=\"position:relative;\">\n  <div>\n    <div class=\"row flex-items-xs-right rightPos\">\n    <div id=\"filterArea\">\n      <div class='filterLabelPiece' *ngIf=\"!withAdmiral\" [hidden]=\"!openLabelFilterPiece\"  [style.left.px]='filterLabelPieceWidth' ><hbr-label-piece [hidden]='!filterOneLabel' [label]=\"filterOneLabel\"  [labelWidth]=\"130\"></hbr-label-piece></div>\n      <div class=\"flex-xs-middle\">\n      <hbr-filter [withDivider]=\"true\" filterPlaceholder=\"{{'TAG.FILTER_FOR_TAGS' | translate}}\" (filterEvt)=\"doSearchTagNames($event)\" (openFlag)=\"openFlagEvent($event)\" [currentValue]=\"lastFilteredTagName\"></hbr-filter>\n      <div class=\"labelFilterPanel\" *ngIf=\"!withAdmiral\" [hidden]=\"!openLabelFilterPanel\">\n        <a class=\"filterClose\" (click)=\"closeFilter()\">&times;</a>\n        <label class=\"filterLabelHeader\">{{'REPOSITORY.FILTER_BY_LABEL' | translate}}</label>\n        <div class=\"form-group\"><input type=\"text\" placeholder=\"Filter labels\" [(ngModel)]= \"filterName\" (keyup)=\"handleInputFilter()\"></div>\n        <div [hidden]='imageFilterLabels.length' style=\"padding-left:10px;\">{{'LABEL.NO_LABELS' | translate }}</div>\n        <div [hidden]='!imageFilterLabels.length' style='max-height:300px;overflow-y: auto;'>\n            <button type=\"button\" class=\"labelBtn\" *ngFor='let label of imageFilterLabels' [hidden]=\"!label.show\" (click)=\"rightFilterLabel(label)\">\n                <clr-icon shape=\"check\" class='pull-left' [hidden]='!label.iconsShow'></clr-icon>\n                <div class='labelDiv'><hbr-label-piece [label]=\"label.label\"  [labelWidth]=\"160\"></hbr-label-piece></div>\n            </button>\n        </div>\n      </div>\n    </div>\n    </div>\n  \n  <span class=\"refresh-btn\" (click)=\"refresh()\"><clr-icon shape=\"refresh\"></clr-icon></span> \n  \n  </div>\n  </div>\n  <div class=\"col-lg-12 col-md-12 col-sm-12 col-xs-12\">\n    <clr-datagrid [clrDgLoading]=\"loading\" [class.embeded-datagrid]=\"isEmbedded\"  [(clrDgSelected)]=\"selectedRow\">\n        <clr-dg-action-bar>\n          <button type=\"button\" class=\"btn btn-sm btn-secondary\" [disabled]=\"!(canScanNow(selectedRow) && selectedRow.length==1)\" (click)=\"scanNow(selectedRow)\"><clr-icon shape=\"shield-check\" size=\"16\"></clr-icon>&nbsp;{{'VULNERABILITY.SCAN_NOW' | translate}}</button>\n          <button type=\"button\" class=\"btn btn-sm btn-secondary\" [disabled]=\"!(selectedRow.length==1)\" (click)=\"showDigestId(selectedRow)\" ><clr-icon shape=\"copy\" size=\"16\"></clr-icon>&nbsp;{{'REPOSITORY.COPY_DIGEST_ID' | translate}}</button>\n                <clr-dropdown *ngIf=\"!withAdmiral\">\n                    <button type=\"button\" class=\"btn btn-sm btn-secondary\" clrDropdownTrigger [disabled]=\"!(selectedRow.length==1) || isGuest\" (click)=\"addLabels(selectedRow)\" ><clr-icon shape=\"plus\" size=\"16\"></clr-icon>{{'REPOSITORY.ADD_LABELS' | translate}}</button>\n                    <clr-dropdown-menu clrPosition=\"bottom-left\" *clrIfOpen>\n                    <div style='display:grid'>\n                        <label class=\"dropdown-header\">{{'REPOSITORY.ADD_TO_IMAGE' | translate}}</label>\n                        <div class=\"form-group\"><input type=\"text\" placeholder=\"Filter labels\" [(ngModel)]=\"stickName\" (keyup)=\"handleStickInputFilter()\"></div>\n                        <div [hidden]='imageStickLabels.length' style=\"padding-left:10px;\">{{'LABEL.NO_LABELS' | translate }}</div>\n                        <div [hidden]='!imageStickLabels.length' style='max-height:300px;overflow-y: auto;'>\n                            <button type=\"button\" class=\"dropdown-item\" *ngFor='let label of imageStickLabels' [hidden]='!label.show' (click)=\"stickLabel(label)\">\n                                <clr-icon shape=\"check\" class='pull-left' [hidden]='!label.iconsShow'></clr-icon>\n                                <div class='labelDiv'><hbr-label-piece [label]=\"label.label\"  [labelWidth]=\"130\"></hbr-label-piece></div>\n                            </button>\n                        </div>\n                      </div>\n                    </clr-dropdown-menu>\n                </clr-dropdown>\n          <button type=\"button\" class=\"btn btn-sm btn-secondary\" *ngIf=\"hasProjectAdminRole\" (click)=\"deleteTags(selectedRow)\" [disabled]=\"!selectedRow.length\"><clr-icon shape=\"times\" size=\"16\"></clr-icon>&nbsp;{{'REPOSITORY.DELETE' | translate}}</button>\n        </clr-dg-action-bar>\n        <clr-dg-column style=\"width: 120px;\" [clrDgField]=\"'name'\">{{'REPOSITORY.TAG' | translate}}</clr-dg-column>\n        <clr-dg-column style=\"width: 90px;\" [clrDgField]=\"'size'\">{{'REPOSITORY.SIZE' | translate}}</clr-dg-column>\n        <clr-dg-column style=\"min-width: 100px; max-width:220px;\">{{'REPOSITORY.PULL_COMMAND' | translate}}</clr-dg-column>\n        <clr-dg-column style=\"width: 140px;\" *ngIf=\"withClair\">{{'REPOSITORY.VULNERABILITY' | translate}}</clr-dg-column>\n        <clr-dg-column style=\"width: 80px;\" *ngIf=\"withNotary\">{{'REPOSITORY.SIGNED' | translate}}</clr-dg-column>\n        <clr-dg-column style=\"min-width: 130px;\">{{'REPOSITORY.AUTHOR' | translate}}</clr-dg-column>\n        <clr-dg-column style=\"width: 160px;\"[clrDgSortBy]=\"createdComparator\">{{'REPOSITORY.CREATED' | translate}}</clr-dg-column>\n        <clr-dg-column style=\"width: 80px;\" [clrDgField]=\"'docker_version'\" *ngIf=\"!withClair\">{{'REPOSITORY.DOCKER_VERSION' | translate}}</clr-dg-column>\n        <clr-dg-column *ngIf=\"!withAdmiral\" style=\"width: 140px;\">{{'REPOSITORY.LABELS' | translate}}</clr-dg-column>\n        <clr-dg-placeholder>{{'TAG.PLACEHOLDER' | translate }}</clr-dg-placeholder>\n        <clr-dg-row *clrDgItems=\"let t of tags\" [clrDgItem]='t'>\n          <clr-dg-cell  class=\"truncated\"  style=\"width: 120px;\">\n            <a *ngIf=\"withClair\" href=\"javascript:void(0)\" (click)=\"onTagClick(t)\" title=\"{{t.name}}\">{{t.name}}</a>\n            <span *ngIf=\"!withClair\">{{t.name}}</span>\n          </clr-dg-cell>\n          <clr-dg-cell style=\"width: 90px;\">{{sizeTransform(t.size)}}</clr-dg-cell>\n          <clr-dg-cell style=\"min-width: 100px; max-width:220px;\" class=\"truncated\" title=\"docker pull {{registryUrl}}/{{repoName}}:{{t.name}}\">\n              <hbr-copy-input #copyInput  (onCopyError)=\"onCpError($event)\"  iconMode=\"true\" defaultValue=\"docker pull {{registryUrl}}/{{repoName}}:{{t.name}}\"></hbr-copy-input>\n          </clr-dg-cell>\n          <clr-dg-cell style=\"width: 140px;\" *ngIf=\"withClair\">\n            <hbr-vulnerability-bar [repoName]=\"repoName\" [tagId]=\"t.name\" [summary]=\"t.scan_overview\"></hbr-vulnerability-bar>\n          </clr-dg-cell>\n          <clr-dg-cell style=\"width: 80px;\" *ngIf=\"withNotary\"  [ngSwitch]=\"t.signature !== null\">\n            <clr-icon shape=\"check-circle\" *ngSwitchCase=\"true\"  size=\"20\" style=\"color: #1D5100;\"></clr-icon>\n            <clr-icon shape=\"times-circle\" *ngSwitchCase=\"false\"  size=\"16\" style=\"color: #C92100;\"></clr-icon>\n            <a href=\"javascript:void(0)\" *ngSwitchDefault role=\"tooltip\" aria-haspopup=\"true\" class=\"tooltip tooltip-top-right\">\n              <clr-icon shape=\"help\" style=\"color: #565656;\" size=\"16\"></clr-icon>\n              <span class=\"tooltip-content\">{{'REPOSITORY.NOTARY_IS_UNDETERMINED' | translate}}</span>\n            </a>\n          </clr-dg-cell>\n          <clr-dg-cell  class=\"truncated\"  style=\"min-width: 130px;\" title=\"{{t.author}}\">{{t.author}}</clr-dg-cell>\n          <clr-dg-cell style=\"width: 160px;\">{{t.created | date: 'short'}}</clr-dg-cell>\n          <clr-dg-cell style=\"width: 80px;\" *ngIf=\"!withClair\">{{t.docker_version}}</clr-dg-cell>\n          <clr-dg-cell *ngIf=\"!withAdmiral\" style=\"width: 140px;\">\n            <hbr-label-piece *ngIf=\"t.labels?.length\" [label]=\"t.labels[0]\" [labelWidth]=\"90\"> </hbr-label-piece>\n            <div class=\"signpost-item\" [hidden]=\"t.labels?.length<=1\">\n                <div class=\"trigger-item\">\n                    <clr-signpost>\n                     <button class=\"btn btn-link\" clrSignpostTrigger>...</button>\n                        <clr-signpost-content [clrPosition]=\"'left-top'\" *clrIfOpen>\n                            <div>\n                               <hbr-label-piece *ngFor=\"let label of t.labels\" [label]=\"label\"></hbr-label-piece>\n                            </div>\n                        </clr-signpost-content>\n                    </clr-signpost>\n                </div>\n            </div>\n          </clr-dg-cell>\n        </clr-dg-row>\n        <clr-dg-footer>\n          <span *ngIf=\"pagination.totalItems\">{{pagination.firstItem + 1}} - {{pagination.lastItem + 1}} {{'REPOSITORY.OF' | translate}}</span>\n          {{pagination.totalItems}} {{'REPOSITORY.ITEMS' | translate}}&nbsp;&nbsp;&nbsp;&nbsp;\n          <clr-dg-pagination #pagination [clrDgPageSize]=\"10\"></clr-dg-pagination>\n        </clr-dg-footer>\n    </clr-datagrid>\n  </div>\n</div>\n","styles":[".option-right{padding-right:18px;padding-bottom:6px}.refresh-btn{margin-top:8px;cursor:pointer}.refresh-btn:hover{color:#007cbb}.sub-header-title{margin:12px 0}.embeded-datagrid{width:98%;float:right}.hidden-tag{display:block;height:0}:host>>>.datagrid-placeholder{display:none}.truncated{display:inline-block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.copy-failed{color:red;margin-right:6px}:host>>>.datagrid clr-dg-column{min-width:80px}.rightPos{position:absolute;z-index:100;right:35px;margin-top:4px}.btn-group .dropdown-menu clr-icon{display:block}.dropdown-menu .dropdown-item{position:relative;padding-left:.5rem;padding-right:.5rem;line-height:1}.dropdown-menu input{position:relative;margin-left:.5rem;margin-right:.5rem}.pull-left{display:inline-block;float:left}.pull-right{display:inline-block;float:right}.btn-link{display:inline-flex;width:15px;min-width:15px;color:#000;vertical-align:super}.signpost-item,.trigger-item{display:inline}.signpost-content-body .label{margin:.3rem}.labelDiv{position:absolute;left:34px;top:5px}.datagrid-action-bar{z-index:10}.trigger-item hbr-label-piece{display:flex!important;margin:6px 0}:host>>>.signpost-content{min-width:4rem}:host>>>.signpost-content-body{padding:0 .4rem}:host>>>.signpost-content-header{display:none}.filterLabelPiece{position:absolute;top:4px;z-index:1}.dropdown .dropdown-toggle.btn{margin:.25rem .5rem .25rem 0}.labelFilterPanel{display:flex;position:relative;flex-direction:column;background:#fff;padding:.5rem 0;border:1px solid #ccc;box-shadow:0 1px .125rem rgba(115,115,115,.25);min-width:5rem;max-width:15rem;border-radius:.125rem}.labelBtn{position:relative;overflow:hidden;font-size:.58333rem;letter-spacing:normal;font-weight:400;background:0 0;border:0;color:#565656;cursor:pointer;display:block;margin:0;width:100%;height:30px;text-transform:none}.labelBtn:hover{background-color:#eee}.labelBtn:focus{outline:0}.filterLabelHeader{font-size:.5rem;font-weight:600;letter-spacing:normal;padding:0 .5rem;line-height:.75rem;margin:0;color:#313131}.labelFilterPanel .form-group input{position:relative;margin-left:.5rem;margin-right:.5rem}.filterClose{position:absolute;right:8px;top:5px;cursor:pointer;font-size:20px}"]}]}],"members":{"projectId":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":193,"character":3}}]}],"repoName":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":194,"character":3}}]}],"isEmbedded":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":195,"character":3}}]}],"hasSignedIn":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":197,"character":3}}]}],"hasProjectAdminRole":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":198,"character":3}}]}],"isGuest":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":199,"character":3}}]}],"registryUrl":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":200,"character":3}}]}],"withNotary":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":201,"character":3}}]}],"withClair":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":202,"character":3}}]}],"withAdmiral":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":203,"character":3}}]}],"refreshRepo":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":204,"character":3}}]}],"tagClickEvent":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":205,"character":3}}]}],"signatureOutput":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":206,"character":3}}]}],"confirmationDialog":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":248,"character":3},"arguments":["confirmationDialog"]}]}],"textInput":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":251,"character":3},"arguments":["digestTarget"]}]}],"copyInput":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":252,"character":3},"arguments":["copyInput"]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ErrorHandler"},{"__symbolic":"reference","name":"TagService"},{"__symbolic":"reference","name":"LabelService"},{"__symbolic":"reference","module":"@ngx-translate/core","name":"TranslateService","line":263,"character":30},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":264,"character":17},{"__symbolic":"reference","name":"OperationService"},{"__symbolic":"reference","name":"ChannelService"}]}],"ngOnInit":[{"__symbolic":"method"}],"ngAfterViewInit":[{"__symbolic":"method"}],"doSearchTagNames":[{"__symbolic":"method"}],"clrLoad":[{"__symbolic":"method"}],"refresh":[{"__symbolic":"method"}],"getAllLabels":[{"__symbolic":"method"}],"labelSelectedChange":[{"__symbolic":"method"}],"addLabels":[{"__symbolic":"method"}],"stickLabel":[{"__symbolic":"method"}],"selectLabel":[{"__symbolic":"method"}],"unSelectLabel":[{"__symbolic":"method"}],"rightFilterLabel":[{"__symbolic":"method"}],"filterLabel":[{"__symbolic":"method"}],"unFilterLabel":[{"__symbolic":"method"}],"closeFilter":[{"__symbolic":"method"}],"openFlagEvent":[{"__symbolic":"method"}],"handleInputFilter":[{"__symbolic":"method"}],"handleStickInputFilter":[{"__symbolic":"method"}],"sortOperation":[{"__symbolic":"method"}],"retrieve":[{"__symbolic":"method"}],"sizeTransform":[{"__symbolic":"method"}],"deleteTags":[{"__symbolic":"method"}],"confirmDeletion":[{"__symbolic":"method"}],"delOperate":[{"__symbolic":"method"}],"showDigestId":[{"__symbolic":"method"}],"onTagClick":[{"__symbolic":"method"}],"onSuccess":[{"__symbolic":"method"}],"onError":[{"__symbolic":"method"}],"scanStatus":[{"__symbolic":"method"}],"existObservablePackage":[{"__symbolic":"method"}],"canScanNow":[{"__symbolic":"method"}],"scanNow":[{"__symbolic":"method"}],"onCpError":[{"__symbolic":"method"}]}},"TagDetailComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":7,"character":1},"arguments":[{"selector":"hbr-tag-detail","template":"<div>\n    <section class=\"overview-section\">\n        <div class=\"title-wrapper\">\n            <div class=\"title-block arrow-block\" *ngIf=\"withAdmiral\">\n                <clr-icon class=\"rotate-90 arrow-back\" shape=\"arrow\" size=\"36\" (click)=\"onBack()\"></clr-icon>\n            </div>\n            <div class=\"title-block\">\n                <h2 class=\"custom-h2\">{{repositoryId}}:{{tagDetails.name}}</h2>\n            </div>\n        </div>\n        <div class=\"summary-block row\">\n            <div class=\"image-summary col-md-4 col-sm-6\">\n                <div class=\"flex-block\">\n                    <section class=\"image-detail-label\">\n                        <section class=\"detail-row\">\n                            <label class=\"detail-label\">{{'TAG.AUTHOR' | translate }}</label>\n                            <div class=\"image-details\" [title]=\"author | translate\">{{author | translate}}</div>\n                        </section>\n                        <section class=\"detail-row\">\n                            <label class=\"detail-label\">{{'TAG.ARCHITECTURE' | translate }}</label>\n                            <div class=\"image-details\" [title]=\"tagDetails.architecture\">{{tagDetails.architecture}}</div>\n                        </section>\n                        <section class=\"detail-row\"> \n                            <label class=\"detail-label\">{{'TAG.OS' | translate }}</label>\n                            <div class=\"image-details\" [title]=\"tagDetails.os\">{{tagDetails.os}}</div>\n                        </section>\n                        <section class=\"detail-row\">\n                            <label class=\"detail-label\">{{'TAG.DOCKER_VERSION' | translate }}</label>\n                            <div class=\"image-details\" [title]=\"tagDetails.docker_version\">{{tagDetails.docker_version}}</div>\n                        </section>\n                        <section class=\"detail-row\">\n                            <label class=\"detail-label\">{{'TAG.SCAN_COMPLETION_TIME' | translate }}</label>\n                            <div class=\"image-details\" [title]=\"scanCompletedDatetime | date\">{{scanCompletedDatetime | date}}</div>\n                        </section>\n                    </section>\n                </div>\n            </div>\n            <div *ngIf=\"withClair\" class=\"col-md-4 col-sm-6\">\n                <div class=\"vulnerability\">\n                    <hbr-vulnerability-bar [repoName]=\"repositoryId\" [tagId]=\"tagDetails.name\" [summary]=\"tagDetails.scan_overview\"></hbr-vulnerability-bar>\n                </div>\n                <div class=\"flex-block vulnerabilities-info\">\n                    <div class=\"second-column\">\n                        <div>\n                            <clr-icon shape=\"error\" size=\"24\" class=\"is-error\"></clr-icon> {{highCount}} {{'VULNERABILITY.SEVERITY.HIGH' | translate }}&nbsp;{{'TAG.LEVEL_VULNERABILITIES'\n                            | translate }}</div>\n                        <div class=\"second-row\">\n                            <clr-icon shape=\"exclamation-triangle\" size=\"24\" class=\"tip-icon-medium\"></clr-icon>{{mediumCount}} {{'VULNERABILITY.SEVERITY.MEDIUM' | translate }}&nbsp;{{'TAG.LEVEL_VULNERABILITIES'\n                            | translate }}</div>\n                        <div>\n                            <clr-icon shape=\"play\" size=\"20\" class=\"tip-icon-low rotate-90\"></clr-icon>{{lowCount}} {{'VULNERABILITY.SEVERITY.LOW' | translate }}&nbsp;{{'TAG.LEVEL_VULNERABILITIES'\n                            | translate }}</div>\n                        <div class=\"second-row\">\n                            <clr-icon shape=\"help\" size=\"18\"></clr-icon>{{unknownCount}} {{'VULNERABILITY.SEVERITY.UNKNOWN' | translate }}&nbsp;{{'TAG.LEVEL_VULNERABILITIES'\n                            | translate }}</div>\n                    </div>\n                </div>\n\n            </div>\n            <div *ngIf=\"!withAdmiral && tagDetails?.labels?.length\">\n                <div class=\"third-column detail-title\">{{'TAG.LABELS' | translate }}</div>\n                <div class=\"fourth-column\">\n                    <div *ngFor=\"let label of tagDetails.labels\" style=\"margin-bottom: 2px;\">\n                        <hbr-label-piece [label]=\"label\"></hbr-label-piece>\n                    </div>\n                </div>\n            </div>\n        </div>\n    </section>\n    <section class=\"detail-section\">\n        <div class=\"vulnerability-block\">\n            <hbr-vulnerabilities-grid [repositoryId]=\"repositoryId\" [tagId]=\"tagId\"></hbr-vulnerabilities-grid>\n        </div>\n        <div>\n            <ng-content></ng-content>\n        </div>\n    </section>\n</div>","styles":["@charset \"UTF-8\";.overview-section{padding-bottom:36px}.detail-section{background-color:#fafafa;padding-left:12px;padding-right:24px}.tag-name{font-weight:300;font-size:32px}.tag-name h2{margin-top:0}.tag-timestamp{font-weight:400;font-size:12px;margin-top:6px}.rotate-90{-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}.arrow-back{cursor:pointer}.arrow-block{border-right:2px solid #ccc;margin-right:6px;display:inline-flex;padding:6px 6px 6px 12px}.title-block{display:inline-block}.vulnerability-block{margin-bottom:12px}.summary-block{margin-top:24px;display:flex;flex-wrap:row wrap}.flex-block{display:inline-flex;flex-wrap:row wrap;justify-content:space-around}.vulnerabilities-info{padding-left:24px}.third-column{margin-left:36px}.vulnerability{margin-left:50px;margin-top:-12px;margin-bottom:20px}.vulnerabilities-info .second-column{text-align:left;margin-left:6px}.fourth-column{float:left;margin-left:20px}.vulnerabilities-info .second-row{margin-top:6px}.detail-title{float:left;font-weight:600;font-size:14px}.image-detail-label{margin-right:10px;text-align:left;font-weight:600}.image-detail-label .detail-row{display:flex}.image-detail-label .detail-row .detail-label{flex:0 0 150px}.image-detail-label .detail-row .image-details{width:200px;overflow:hidden;text-overflow:ellipsis;word-wrap:break-word;white-space:nowrap}.image-detail-value{text-align:left;margin-left:6px;font-weight:500}.tip-icon-medium{color:orange}.tip-icon-low{color:#ff0}.fourth-column div,.image-detail-value div{height:24px}.second-column div{padding-left:30px}.second-column div clr-icon{margin-right:10px;margin-left:-35px}"],"providers":[]}]}],"members":{"tagId":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":98,"character":5}}]}],"repositoryId":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":99,"character":5}}]}],"withAdmiral":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":100,"character":5}}]}],"withClair":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":101,"character":5}}]}],"backEvt":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":114,"character":5}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"TagService"},{"__symbolic":"reference","name":"ErrorHandler"}]}],"ngOnInit":[{"__symbolic":"method"}],"onBack":[{"__symbolic":"method"}],"getPackageText":[{"__symbolic":"method"}]}},"LIST_REPLICATION_RULE_DIRECTIVES":[{"__symbolic":"reference","name":"ListReplicationRuleComponent"}],"ListReplicationRuleComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":51,"character":1},"arguments":[{"selector":"hbr-list-replication-rule","template":"<div style=\"padding-bottom: 15px;\">\n<clr-datagrid [clrDgLoading]=\"loading\"  [(clrDgSingleSelected)]=\"selectedRow\" [clDgRowSelection]=\"true\">\n    <clr-dg-action-bar>\n        <button type=\"button\" class=\"btn btn-sm btn-secondary\" *ngIf=\"isSystemAdmin\" (click)=\"openModal()\"><clr-icon shape=\"plus\" size=\"16\"></clr-icon>&nbsp;{{'REPLICATION.NEW_REPLICATION_RULE' | translate}}</button>\n        <button type=\"button\" class=\"btn btn-sm btn-secondary\" *ngIf=\"isSystemAdmin\" [disabled]=\"!selectedRow\" (click)=\"editRule(selectedRow)\"><clr-icon shape=\"pencil\" size=\"16\"></clr-icon>&nbsp;{{'REPLICATION.EDIT_POLICY' | translate}}</button>\n        <button type=\"button\" class=\"btn btn-sm btn-secondary\" *ngIf=\"isSystemAdmin\" [disabled]=\"!selectedRow\" (click)=\"deleteRule(selectedRow)\"><clr-icon shape=\"times\" size=\"16\"></clr-icon>&nbsp;{{'REPLICATION.DELETE_POLICY' | translate}}</button>\n        <button type=\"button\" class=\"btn btn-sm btn-secondary\" *ngIf=\"isSystemAdmin\" [disabled]=\"!selectedRow\" (click)=\"replicateRule(selectedRow)\"><clr-icon shape=\"export\" size=\"16\"></clr-icon>&nbsp;{{'REPLICATION.REPLICATE' | translate}}</button>\n    </clr-dg-action-bar>\n    <clr-dg-column [clrDgField]=\"'name'\">{{'REPLICATION.NAME' | translate}}</clr-dg-column>\n    <clr-dg-column [clrDgField]=\"'status'\">{{'REPLICATION.STATUS' | translate}}</clr-dg-column>\n    <clr-dg-column [clrDgField]=\"'projects'\" *ngIf=\"!projectScope\">{{'REPLICATION.PROJECT' | translate}}</clr-dg-column>\n    <clr-dg-column [clrDgField]=\"'description'\">{{'REPLICATION.DESCRIPTION' | translate}}</clr-dg-column>\n    <clr-dg-column [clrDgField]=\"'targets'\">{{'REPLICATION.DESTINATION_NAME' | translate}}</clr-dg-column>\n    <clr-dg-column [clrDgField]=\"'trigger'\">{{'REPLICATION.TRIGGER_MODE' | translate}}</clr-dg-column>\n    <clr-dg-placeholder>{{'REPLICATION.PLACEHOLDER' | translate }}</clr-dg-placeholder>\n    <clr-dg-row *clrDgItems=\"let p of changedRules\" [clrDgItem]=\"p\"  (click)=\"selectRule(p)\" [style.backgroundColor]=\"(projectScope && withReplicationJob && selectedId === p.id) ? '#eee' : ''\">\n        <clr-dg-cell>{{p.name}}</clr-dg-cell>\n        <clr-dg-cell>\n            <div [ngSwitch]=\"hasDeletedLabel(p)\">\n                <clr-tooltip *ngSwitchCase=\"'disabled'\" class=\"tooltip-lg\">\n                    <clr-icon clrTooltipTrigger shape=\"exclamation-triangle\" style=\"vertical-align: text-bottom;\" class=\"is-warning\" size=\"22\"></clr-icon>Disabled\n                    <clr-tooltip-content clrPosition=\"top-right\" clrSize=\"xs\" *clrIfOpen>\n                        <span>{{'REPLICATION.RULE_DISABLED' | translate}}</span>\n                    </clr-tooltip-content>\n                </clr-tooltip>\n                <div *ngSwitchCase=\"'enabled'\" ><clr-icon shape=\"success-standard\" style=\"vertical-align: text-bottom;\" class=\"is-success\" size=\"18\"></clr-icon> Enabled</div>\n            </div>\n        </clr-dg-cell>\n        <clr-dg-cell *ngIf=\"!projectScope\">\n            <a href=\"javascript:void(0)\" (click)=\"$event.stopPropagation(); redirectTo(p)\">{{p.projects?.length>0  ? p.projects[0].name : ''}}</a>\n        </clr-dg-cell>\n        <clr-dg-cell>\n            {{p.description ? trancatedDescription(p.description) : '-'}}\n            <clr-tooltip>\n                <clr-icon *ngIf=\"p.description && p.description.length > 35\" clrTooltipTrigger shape=\"ellipsis-horizontal\" size=\"18\"></clr-icon>\n                <clr-tooltip-content clrPosition=\"bottom-right\" clrSize=\"md\" *clrIfOpen>\n                    <span>{{p.description}}</span>\n                </clr-tooltip-content>\n            </clr-tooltip>\n        </clr-dg-cell>\n        <clr-dg-cell>{{p.targets?.length>0 ? p.targets[0].name : ''}}</clr-dg-cell>\n        <clr-dg-cell>{{p.trigger ? p.trigger.kind : ''}}</clr-dg-cell>\n    </clr-dg-row>\n    <clr-dg-footer>\n      <span *ngIf=\"pagination.totalItems\">{{pagination.firstItem + 1}} - {{pagination.lastItem +1 }} {{'REPLICATION.OF' | translate}} </span>{{pagination.totalItems }} {{'REPLICATION.ITEMS' | translate}}\n      <clr-dg-pagination #pagination [clrDgPageSize]=\"5\"></clr-dg-pagination>\n    </clr-dg-footer>\n</clr-datagrid>\n<confirmation-dialog #deletionConfirmDialog (confirmAction)=\"deletionConfirm($event)\"></confirmation-dialog>\n</div>\n","styles":[""],"changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":105,"character":21},"member":"OnPush"}}]}],"members":{"projectId":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":110,"character":5}}]}],"isSystemAdmin":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":111,"character":5}}]}],"selectedId":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":112,"character":5}}]}],"withReplicationJob":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":113,"character":5}}]}],"loading":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":115,"character":5}}]}],"reload":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":117,"character":5}}]}],"selectOne":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":118,"character":5}}]}],"editOne":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":119,"character":5}}]}],"toggleOne":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":120,"character":5}}]}],"hideJobs":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":121,"character":5}}]}],"redirect":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":122,"character":5}}]}],"openNewRule":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":123,"character":5}}]}],"replicateManual":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":124,"character":5}}]}],"toggleConfirmDialog":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":135,"character":5},"arguments":["toggleConfirmDialog"]}]}],"deletionConfirmDialog":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":138,"character":5},"arguments":["deletionConfirmDialog"]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ReplicationService"},{"__symbolic":"reference","module":"@ngx-translate/core","name":"TranslateService","line":145,"character":42},{"__symbolic":"reference","name":"ErrorHandler"},{"__symbolic":"reference","name":"OperationService"},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":148,"character":29}]}],"trancatedDescription":[{"__symbolic":"method"}],"ngOnInit":[{"__symbolic":"method"}],"ngOnChanges":[{"__symbolic":"method"}],"retrieveRules":[{"__symbolic":"method"}],"replicateRule":[{"__symbolic":"method"}],"hasDeletedLabel":[{"__symbolic":"method"}],"deletionConfirm":[{"__symbolic":"method"}],"selectRule":[{"__symbolic":"method"}],"redirectTo":[{"__symbolic":"method"}],"openModal":[{"__symbolic":"method"}],"editRule":[{"__symbolic":"method"}],"jobList":[{"__symbolic":"method"}],"deleteRule":[{"__symbolic":"method"}],"deleteOpe":[{"__symbolic":"method"}],"delOperate":[{"__symbolic":"method"}]}},"REPLICATION_DIRECTIVES":[{"__symbolic":"reference","name":"ReplicationComponent"}],"SearchOption":{"__symbolic":"class","members":{}},"ReplicationComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":98,"character":1},"arguments":[{"selector":"hbr-replication","template":"<div class=\"row\" style=\"position:relative;\">\n  <div>\n    <div class=\"row flex-items-xs-between rightPos\">\n      <div class=\"flex-xs-middle option-right\">\n        <hbr-filter [withDivider]=\"true\" filterPlaceholder='{{\"REPLICATION.FILTER_POLICIES_PLACEHOLDER\" | translate}}' (filterEvt)=\"doSearchRules($event)\" [currentValue]=\"search.ruleName\"></hbr-filter>\n        <span class=\"refresh-btn\" (click)=\"refreshRules()\">\n          <clr-icon shape=\"refresh\"></clr-icon>\n        </span>\n      </div>\n    </div>\n    </div>\n    <div class=\"col-lg-12 col-md-12 col-sm-12 col-xs-12\">\n      <hbr-list-replication-rule #listReplicationRule [projectId]=\"projectId\" [isSystemAdmin]=\"isSystemAdmin\"  (replicateManual)=replicateManualRule($event) (selectOne)=\"selectOneRule($event)\" (hideJobs)=\"hideJobs()\"  (openNewRule)=\"openModal()\" (editOne)=\"openEditRule($event)\" (reload)=\"reloadRules($event)\" [loading]=\"loading\" [withReplicationJob]=\"withReplicationJob\" (redirect)=\"customRedirect($event)\"></hbr-list-replication-rule>\n    </div>\n    <div class=\"col-lg-12 col-md-12 col-sm-12 col-xs-12\" style=\"padding-left:0px;\" [hidden]='hiddenJobList'>\n    <div *ngIf=\"withReplicationJob\" class=\"col-lg-12 col-md-12 col-sm-12 col-xs-12\">\n      <div class=\"row flex-items-xs-between\" style=\"height:60px;\">\n        <h5 class=\"flex-items-xs-bottom option-left-down\" style=\"margin-left: 14px;\">{{'REPLICATION.REPLICATION_JOBS' | translate}}</h5>\n        <div class=\"flex-items-xs-bottom option-right-down\">\n          <button class=\"btn btn-link\" (click)=\"toggleSearchJobOptionalName(currentJobSearchOption)\">{{toggleJobSearchOption[currentJobSearchOption] | translate}}</button>\n          <hbr-filter [withDivider]=\"true\" filterPlaceholder='{{\"REPLICATION.FILTER_JOBS_PLACEHOLDER\" | translate}}' (filterEvt)=\"doSearchJobs($event)\" [currentValue]=\"search.repoName\" ></hbr-filter>\n          <span class=\"refresh-btn\" (click)=\"refreshJobs()\">\n            <clr-icon shape=\"refresh\"></clr-icon>\n          </span>\n        </div>\n      </div>\n      <div class=\"row flex-items-xs-right option-right\" [hidden]=\"currentJobSearchOption === 0\">\n        <div class=\"select\" style=\"float: left;\">\n          <select (change)=\"doFilterJobStatus($event)\">\n          <option *ngFor=\"let j of jobStatus\" value=\"{{j.key}}\" [selected]=\"currentJobStatus.key === j.key\">{{j.description | translate}}</option>\n          </select>\n        </div>\n        <div class=\"flex-items-xs-middle\">    \n          <hbr-datetime [dateInput]=\"search.startTime\" (search)=\"doJobSearchByStartTime($event)\"></hbr-datetime>\n          <hbr-datetime [dateInput]=\"search.endTime\" [oneDayOffset]=\"true\" (search)=\"doJobSearchByEndTime($event)\"></hbr-datetime>\n        </div>\n      </div>\n    </div>\n    <div *ngIf=\"withReplicationJob\" class=\"col-lg-12 col-md-12 col-sm-12 col-xs-12\">\n      <clr-datagrid [clrDgLoading]=\"jobsLoading\" (clrDgRefresh)=\"clrLoadJobs($event)\"><clr-dg-action-bar>\n            <div class=\"btn-group\">\n                <button type=\"button\" class=\"btn btn-sm btn-secondary\" *ngIf=\"isSystemAdmin\" [disabled]=\"!(jobs && jobs.length>0) || isStopOnGoing\" (click)=\"stopJobs()\">{{'REPLICATION.STOPJOB' | translate}}</button>\n            </div>\n        </clr-dg-action-bar>\n        <clr-dg-column [clrDgField]=\"'repository'\">{{'REPLICATION.NAME' | translate}}</clr-dg-column>\n        <clr-dg-column [clrDgField]=\"'status'\">{{'REPLICATION.STATUS' | translate}}</clr-dg-column>\n        <clr-dg-column [clrDgField]=\"'operation'\">{{'REPLICATION.OPERATION' | translate}}</clr-dg-column>\n        <clr-dg-column [clrDgSortBy]=\"creationTimeComparator\">{{'REPLICATION.CREATION_TIME' | translate}}</clr-dg-column>\n        <clr-dg-column [clrDgSortBy]=\"updateTimeComparator\">{{'REPLICATION.UPDATE_TIME' | translate}}</clr-dg-column>\n        <clr-dg-column>{{'REPLICATION.LOGS' | translate}}</clr-dg-column>\n        <clr-dg-placeholder>{{'REPLICATION.JOB_PLACEHOLDER' | translate }}</clr-dg-placeholder>\n        <clr-dg-row *ngFor=\"let j of jobs\">\n            <clr-dg-cell>{{j.repository}}</clr-dg-cell>\n            <clr-dg-cell>{{j.status}}</clr-dg-cell>\n            <clr-dg-cell>{{j.operation}}</clr-dg-cell>\n            <clr-dg-cell>{{j.creation_time | date: 'short'}}</clr-dg-cell>\n            <clr-dg-cell>{{j.update_time | date: 'short'}}</clr-dg-cell>\n            <clr-dg-cell>\n             <span *ngIf=\"j.status=='pending'; else elseBlock\" class=\"label\">{{'REPLICATION.NO_LOGS' | translate}}</span>\n                <ng-template #elseBlock>\n                    <a href=\"javascript:void(0);\" (click)=\"viewLog(j.id)\">\n                <clr-icon shape=\"clipboard\"></clr-icon>\n              </a></ng-template>\n            </clr-dg-cell>\n        </clr-dg-row>\n        <clr-dg-footer>\n            <span *ngIf=\"showPaginationIndex\">{{pagination.firstItem + 1}} - {{pagination.lastItem + 1}} {{'REPLICATION.OF' | translate}}</span>\n            {{pagination.totalItems}} {{'REPLICATION.ITEMS' | translate}}\n            <clr-dg-pagination #pagination [(clrDgPage)]=\"currentPage\" [clrDgPageSize]=\"pageSize\" [clrDgTotalItems]=\"totalCount\"></clr-dg-pagination>\n        </clr-dg-footer>\n      </clr-datagrid>\n    </div>\n    </div>\n    <job-log-viewer #replicationLogViewer></job-log-viewer>\n    <hbr-create-edit-rule  *ngIf=\"isSystemAdmin\" [withAdmiral]=\"withAdmiral\" [projectId]=\"projectId\" [projectName]=\"projectName\" (goToRegistry)=\"goRegistry()\" (reload)=\"reloadRules($event)\"></hbr-create-edit-rule>\n    <confirmation-dialog #replicationConfirmDialog (confirmAction)=\"confirmReplication($event)\"></confirmation-dialog>\n</div>\n\n","styles":[".refresh-btn{cursor:pointer}.refresh-btn:hover{color:#007cbb}.option-left{padding-left:16px}.option-right{padding-right:16px}.option-left-down{margin-top:36px}.option-right-down{padding-right:16px;margin-top:24px}.rightPos{position:absolute;right:35px;margin-top:5px;z-index:100;height:32px}"]}]}],"members":{"projectId":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":182,"character":3}}]}],"projectName":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":183,"character":3}}]}],"isSystemAdmin":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":184,"character":3}}]}],"withAdmiral":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":185,"character":3}}]}],"withReplicationJob":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":186,"character":3}}]}],"redirect":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":188,"character":3}}]}],"openCreateRule":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":189,"character":3}}]}],"openEdit":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":190,"character":3}}]}],"goToRegistry":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":191,"character":3}}]}],"listReplicationRule":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":213,"character":3},"arguments":[{"__symbolic":"reference","name":"ListReplicationRuleComponent"}]}]}],"createEditPolicyComponent":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":216,"character":3},"arguments":[{"__symbolic":"reference","name":"ɵn"}]}]}],"replicationLogViewer":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":219,"character":3},"arguments":["replicationLogViewer"]}]}],"replicationConfirmDialog":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":222,"character":3},"arguments":["replicationConfirmDialog"]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ErrorHandler"},{"__symbolic":"reference","name":"ReplicationService"},{"__symbolic":"reference","name":"OperationService"},{"__symbolic":"reference","module":"@ngx-translate/core","name":"TranslateService","line":244,"character":30}]}],"ngOnInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"openModal":[{"__symbolic":"method"}],"openEditRule":[{"__symbolic":"method"}],"goRegistry":[{"__symbolic":"method"}],"clrLoadJobs":[{"__symbolic":"method"}],"loadFirstPage":[{"__symbolic":"method"}],"selectOneRule":[{"__symbolic":"method"}],"replicateManualRule":[{"__symbolic":"method"}],"confirmReplication":[{"__symbolic":"method"}],"replicationOperate":[{"__symbolic":"method"}],"customRedirect":[{"__symbolic":"method"}],"doSearchRules":[{"__symbolic":"method"}],"doFilterJobStatus":[{"__symbolic":"method"}],"doSearchJobs":[{"__symbolic":"method"}],"hideJobs":[{"__symbolic":"method"}],"stopJobs":[{"__symbolic":"method"}],"reloadRules":[{"__symbolic":"method"}],"refreshRules":[{"__symbolic":"method"}],"refreshJobs":[{"__symbolic":"method"}],"toggleSearchJobOptionalName":[{"__symbolic":"method"}],"doJobSearchByStartTime":[{"__symbolic":"method"}],"doJobSearchByEndTime":[{"__symbolic":"method"}],"viewLog":[{"__symbolic":"method"}]}},"VULNERABILITY_DIRECTIVES":[{"__symbolic":"reference","name":"ResultGridComponent"},{"__symbolic":"reference","name":"ResultTipComponent"},{"__symbolic":"reference","name":"ResultBarChartComponent"}],"MIN_TIP_WIDTH":5,"MAX_TIP_WIDTH":100,"ResultTipComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":9,"character":1},"arguments":[{"selector":"hbr-vulnerability-summary-chart","template":"<div class=\"tip-wrapper tip-position\" [style.width]='maxWidth'>\n    <clr-tooltip>\n        <div clrTooltipTrigger>\n        <div class=\"tip-wrapper tip-block bar-block-high\" [style.width]='tipWidth(5)'></div>\n        <div class=\"tip-wrapper tip-block bar-block-medium\" [style.width]='tipWidth(4)'></div>\n        <div class=\"tip-wrapper tip-block bar-block-low\" [style.width]='tipWidth(3)'></div>\n        <div class=\"tip-wrapper tip-block bar-block-unknown\" [style.width]='tipWidth(2)'></div>\n        <div class=\"tip-wrapper tip-block bar-block-none\" [style.width]='tipWidth(1)'></div>\n        </div>\n        <clr-tooltip-content [clrPosition]=\"'top-right'\" [clrSize]=\"'lg'\" *clrIfOpen>\n            <div [ngSwitch]=\"scanLevel\" class=\"bar-tooltip-font-larger\">\n                <ng-template [ngSwitchCase]=\"5\">\n                    <clr-icon shape=\"exclamation-circle\" class=\"is-error\" size=\"32\"></clr-icon>\n                    <span>{{'VULNERABILITY.OVERALL_SEVERITY' | translate }} <span class=\"font-weight-600\">{{'VULNERABILITY.SEVERITY.HIGH' | translate | titlecase }}</span></span>\n                </ng-template>\n                <ng-template [ngSwitchCase]=\"4\">\n                    <clr-icon *ngIf=\"hasMedium\" shape=\"exclamation-triangle\" class=\"tip-icon-medium\" size=\"30\"></clr-icon>\n                    <span>{{'VULNERABILITY.OVERALL_SEVERITY' | translate }} <span class=\"font-weight-600\">{{'VULNERABILITY.SEVERITY.MEDIUM' | translate | titlecase}}</span></span>\n                </ng-template>\n                <ng-template [ngSwitchCase]=\"3\">\n                    <clr-icon shape=\"play\" class=\"tip-icon-low rotate-90\" size=\"28\"></clr-icon>\n                    <span>{{'VULNERABILITY.OVERALL_SEVERITY' | translate }} <span class=\"font-weight-600\">{{'VULNERABILITY.SEVERITY.LOW' | translate | titlecase }}</span></span>\n                </ng-template>\n                <ng-template [ngSwitchCase]=\"2\">\n                    <clr-icon shape=\"help\" size=\"24\" style=\"margin-left: 3px;\"></clr-icon>\n                    <span>{{'VULNERABILITY.OVERALL_SEVERITY' | translate }} <span class=\"font-weight-600\">{{'VULNERABILITY.SEVERITY.UNKNOWN' | translate | titlecase }}</span></span>\n                </ng-template>\n                <ng-template [ngSwitchCase]=\"1\">\n                    <clr-icon shape=\"check-circle\"  class=\"is-success\" size=\"32\"></clr-icon>\n                    <span>{{'VULNERABILITY.NO_VULNERABILITY' | translate }}</span>\n                </ng-template>\n            </div>\n            <hr>\n            <div>\n                <span class=\"bar-tooltip-font bar-tooltip-font-title\">{{tipTitle}}</span>\n            </div>\n            <div class=\"bar-summary bar-tooltip-fon\">\n                <div *ngIf=\"hasHigh\" class=\"bar-summary-item\">\n                    <span><clr-icon shape=\"exclamation-circle\" class=\"is-error\" size=\"24\"></clr-icon></span>\n                    <span>{{highCount}}</span><span>{{'VULNERABILITY.SEVERITY.HIGH' | translate }}</span>\n                </div>\n                <div *ngIf=\"hasMedium\" class=\"bar-summary-item\">\n                    <span><clr-icon *ngIf=\"hasMedium\" shape=\"exclamation-triangle\" class=\"tip-icon-medium\" size=\"22\"></clr-icon></span>\n                    <span>{{mediumCount}}</span><span>{{'VULNERABILITY.SEVERITY.MEDIUM' | translate }}</span>\n                </div>\n                <div *ngIf=\"hasLow\" class=\"bar-summary-item\">\n                    <span><clr-icon shape=\"play\" class=\"tip-icon-low rotate-90\" size=\"20\"></clr-icon></span>\n                    <span>{{lowCount}}</span><span>{{'VULNERABILITY.SEVERITY.LOW' | translate }}</span>\n                </div>\n                <div *ngIf=\"hasUnknown\" class=\"bar-summary-item\">\n                    <span><clr-icon shape=\"help\" size=\"18\"></clr-icon></span>\n                    <span>{{unknownCount}}</span><span>{{'VULNERABILITY.SEVERITY.UNKNOWN' | translate }}</span>\n                </div>\n                <div *ngIf=\"hasNone\" class=\"bar-summary-item\">\n                    <span><clr-icon shape=\"check-circle\" class=\"is-success\" size=\"24\"></clr-icon></span>\n                    <span>{{noneCount}}</span><span>{{'VULNERABILITY.SEVERITY.NONE' | translate }}</span>\n                </div>\n            </div>\n            <div>\n                <span class=\"bar-scanning-time\">{{'VULNERABILITY.CHART.SCANNING_TIME' | translate}} </span>\n                <span>{{completeTimestamp | date:'MM/dd/y HH:mm:ss'}}</span>\n            </div>\n        </clr-tooltip-content>\n    </clr-tooltip>\n</div>","styles":[".bar-wrapper{width:120px;height:12px}.bar-state{text-align:center!important}.bar-state-chart{margin-top:2px}.bar-state-error{position:relative;top:-4px}.error-text{position:relative;top:1px;margin-left:-5px;cursor:pointer}.scanning-button{height:24px;margin-top:0;margin-bottom:0;vertical-align:middle;top:-12px;position:relative}.tip-wrapper{display:inline-block;height:10px;max-width:120px}.tip-position{margin-left:-4px}.tip-block{margin-left:-3px}.bar-block-high{background-color:#e62700}.bar-block-medium{background-color:orange}.bar-block-low{background-color:#ff0}.bar-block-none{background-color:green}.bar-block-unknown{background-color:grey}.bar-tooltip-font{font-size:13px;color:#fff}.bar-tooltip-font-title{font-weight:600}.bar-summary{margin-top:12px;text-align:left}.bar-scanning-time{margin-top:12px}.bar-summary-item{margin-top:3px;margin-bottom:3px}.bar-summary-item span:nth-child(1){width:30px;text-align:center;display:inline-block}.bar-summary-item span:nth-child(2){width:28px;display:inline-block}.option-right{padding-right:16px}.refresh-btn{cursor:pointer}.refresh-btn:hover{color:#007cbb}.label.label-medium{background-color:#ffe4a9;border:1px solid orange;color:orange}.tip-icon-medium{color:orange}.label.label-low{background:rgba(251,255,0,.38);color:#c5c50b;border:1px solid #e6e63f}.tip-icon-low{color:#ff0}.font-color-green{color:green}.bar-tooltip-font-larger span{font-size:16px;vertical-align:middle}hr{border-bottom:0;border-color:#aaa;margin:6px -10px}.font-weight-600{font-weight:600}.rightPos{position:absolute;z-index:100;right:35px;margin-top:4px}"]}]}],"members":{"summary":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":89,"character":5}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@ngx-translate/core","name":"TranslateService","line":117,"character":35}]}],"ngOnInit":[{"__symbolic":"method"}],"tipWidth":[{"__symbolic":"method"}],"unitText":[{"__symbolic":"method"}],"packageText":[{"__symbolic":"method"}]}},"ResultGridComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":11,"character":1},"arguments":[{"selector":"hbr-vulnerabilities-grid","template":"<div class=\"row\"  style=\"position:relative;\">\n        <div>  \n          <div class=\"row flex-items-xs-right rightPos\">\n            <div class=\"flex-xs-middle option-right\">\n              <hbr-filter [withDivider]=\"true\" filterPlaceholder=\"{{'VULNERABILITY.PLACEHOLDER' | translate}}\" (filterEvt)=\"filterVulnerabilities($event)\"></hbr-filter>  \n              <span class=\"refresh-btn\" (click)=\"refresh()\"><clr-icon shape=\"refresh\"></clr-icon></span>\n            </div>\n          </div>\n        </div>\n        <div class=\"col-lg-12 col-md-12 col-sm-12 col-xs-12\">\n          <clr-datagrid>\n              <clr-dg-action-bar>\n                <button type=\"button\" class=\"btn btn-sm btn-secondary\" (click)=\"scanNow()\"><clr-icon shape=\"shield-check\" size=\"16\"></clr-icon>&nbsp;{{'VULNERABILITY.SCAN_NOW' | translate}}</button>\n              </clr-dg-action-bar>\n              <clr-dg-column [clrDgField]=\"'id'\">{{'VULNERABILITY.GRID.COLUMN_ID' | translate}}</clr-dg-column>\n              <clr-dg-column [clrDgField]=\"'severity'\">{{'VULNERABILITY.GRID.COLUMN_SEVERITY' | translate}}</clr-dg-column>\n              <clr-dg-column [clrDgField]=\"'package'\">{{'VULNERABILITY.GRID.COLUMN_PACKAGE' | translate}}</clr-dg-column>\n              <clr-dg-column [clrDgField]=\"'version'\">{{'VULNERABILITY.GRID.COLUMN_VERSION' | translate}}</clr-dg-column>\n              <clr-dg-column [clrDgField]=\"'fixedVersion'\">{{'VULNERABILITY.GRID.COLUMN_FIXED' | translate}}</clr-dg-column>\n      \n              <clr-dg-placeholder>{{'VULNERABILITY.GRID.PLACEHOLDER' | translate}}</clr-dg-placeholder>\n              <clr-dg-row *clrDgItems=\"let res of scanningResults\">\n                  <clr-dg-cell><a href=\"{{res.link}}\" target=\"_blank\">{{res.id}}</a></clr-dg-cell>\n                  <clr-dg-cell [ngSwitch]=\"res.severity\">\n                    <span *ngSwitchCase=\"5\" class=\"label label-danger\">{{severityText(res.severity) | translate}}</span>\n                    <span *ngSwitchCase=\"4\" class=\"label label-medium\">{{severityText(res.severity) | translate}}</span>\n                    <span *ngSwitchCase=\"3\" class=\"label label-low\">{{severityText(res.severity) | translate}}</span>\n                    <span *ngSwitchCase=\"1\" class=\"label\">{{severityText(res.severity) | translate}}</span>\n                    <span *ngSwitchDefault>{{severityText(res.severity) | translate}}</span>\n                  </clr-dg-cell>\n                  <clr-dg-cell>{{res.package}}</clr-dg-cell>\n                  <clr-dg-cell>{{res.version}}</clr-dg-cell>\n                  <clr-dg-cell>\n                       <div *ngIf=\"res.fixedVersion; else elseBlock\">\n                          <clr-icon shape=\"wrench\" class=\"is-success\" size=\"20\"></clr-icon>&nbsp;<span class=\"font-color-green\">{{res.fixedVersion}}</span>\n                       </div>\n                      <ng-template #elseBlock>{{res.fixedVersion}}</ng-template>\n                  </clr-dg-cell>\n                  <clr-dg-row-detail *clrIfExpanded>\n                  {{'VULNERABILITY.GRID.COLUMN_DESCRIPTION' | translate}}: {{res.description}}\n                  </clr-dg-row-detail>\n              </clr-dg-row>\n      \n              <clr-dg-footer>\n                  <span *ngIf=\"pagination.totalItems\">{{pagination.firstItem + 1}} - {{pagination.lastItem + 1}} {{'VULNERABILITY.GRID.FOOT_OF' | translate}}</span>\n                   {{pagination.totalItems}} {{'VULNERABILITY.GRID.FOOT_ITEMS' | translate}}\n                  <clr-dg-pagination #pagination [clrDgPageSize]=\"25\" [clrDgTotalItems]=\"scanningResults.length\"></clr-dg-pagination>\n              </clr-dg-footer>\n          </clr-datagrid>\n        </div>\n      </div>","styles":[".bar-wrapper{width:120px;height:12px}.bar-state{text-align:center!important}.bar-state-chart{margin-top:2px}.bar-state-error{position:relative;top:-4px}.error-text{position:relative;top:1px;margin-left:-5px;cursor:pointer}.scanning-button{height:24px;margin-top:0;margin-bottom:0;vertical-align:middle;top:-12px;position:relative}.tip-wrapper{display:inline-block;height:10px;max-width:120px}.tip-position{margin-left:-4px}.tip-block{margin-left:-3px}.bar-block-high{background-color:#e62700}.bar-block-medium{background-color:orange}.bar-block-low{background-color:#ff0}.bar-block-none{background-color:green}.bar-block-unknown{background-color:grey}.bar-tooltip-font{font-size:13px;color:#fff}.bar-tooltip-font-title{font-weight:600}.bar-summary{margin-top:12px;text-align:left}.bar-scanning-time{margin-top:12px}.bar-summary-item{margin-top:3px;margin-bottom:3px}.bar-summary-item span:nth-child(1){width:30px;text-align:center;display:inline-block}.bar-summary-item span:nth-child(2){width:28px;display:inline-block}.option-right{padding-right:16px}.refresh-btn{cursor:pointer}.refresh-btn:hover{color:#007cbb}.label.label-medium{background-color:#ffe4a9;border:1px solid orange;color:orange}.tip-icon-medium{color:orange}.label.label-low{background:rgba(251,255,0,.38);color:#c5c50b;border:1px solid #e6e63f}.tip-icon-low{color:#ff0}.font-color-green{color:green}.bar-tooltip-font-larger span{font-size:16px;vertical-align:middle}hr{border-bottom:0;border-color:#aaa;margin:6px -10px}.font-weight-600{font-weight:600}.rightPos{position:absolute;z-index:100;right:35px;margin-top:4px}"]}]}],"members":{"tagId":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":70,"character":5}}]}],"repositoryId":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":71,"character":5}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ScanningResultService"},{"__symbolic":"reference","name":"ChannelService"},{"__symbolic":"reference","name":"ErrorHandler"}]}],"ngOnInit":[{"__symbolic":"method"}],"loadResults":[{"__symbolic":"method"}],"filterVulnerabilities":[{"__symbolic":"method"}],"refresh":[{"__symbolic":"method"}],"severityText":[{"__symbolic":"method"}],"_regexpFilter":[{"__symbolic":"method"}],"scanNow":[{"__symbolic":"method"}]}},"ResultBarChartComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":26,"character":1},"arguments":[{"selector":"hbr-vulnerability-bar","template":"<div class=\"bar-wrapper\">\n    <div *ngIf=\"stopped\" class=\"bar-state\">\n       <span class=\"label\">{{'VULNERABILITY.STATE.STOPPED' | translate}}</span>\n    </div>\n    <div *ngIf=\"queued\" class=\"bar-state\">\n        <span class=\"label label-orange\">{{'VULNERABILITY.STATE.QUEUED' | translate}}</span>\n    </div>\n    <div *ngIf=\"error\" class=\"bar-state bar-state-error\">\n        <a href=\"javascript:void(0);\" class=\"error-text\" (click)=\"viewLog()\">\n            <clr-icon shape=\"error\" class=\"is-error\" size=\"24\"></clr-icon>\n            {{'VULNERABILITY.STATE.ERROR' | translate}}\n        </a>\n    </div>\n    <div *ngIf=\"scanning\" class=\"bar-state bar-state-chart\">\n        <div>{{'VULNERABILITY.STATE.SCANNING' | translate}}</div>\n        <div class=\"progress loop\" style=\"height:2px;\"><progress></progress></div>\n    </div>\n    <div *ngIf=\"completed\" class=\"bar-state bar-state-chart\">\n        <hbr-vulnerability-summary-chart [summary]=\"summary\"></hbr-vulnerability-summary-chart>\n    </div>\n    <div *ngIf=\"unknown\" class=\"bar-state\">\n        <clr-icon shape=\"warning\" class=\"is-warning\" size=\"24\"></clr-icon>\n        <span style=\"margin-left:-5px;\">{{'VULNERABILITY.STATE.UNKNOWN' | translate}}</span>\n    </div>\n    <job-log-viewer #scanningLogViewer [jobType]=\"'scan'\"></job-log-viewer>\n</div>","styles":[".bar-wrapper{width:120px;height:12px}.bar-state{text-align:center!important}.bar-state-chart{margin-top:2px}.bar-state-error{position:relative;top:-4px}.error-text{position:relative;top:1px;margin-left:-5px;cursor:pointer}.scanning-button{height:24px;margin-top:0;margin-bottom:0;vertical-align:middle;top:-12px;position:relative}.tip-wrapper{display:inline-block;height:10px;max-width:120px}.tip-position{margin-left:-4px}.tip-block{margin-left:-3px}.bar-block-high{background-color:#e62700}.bar-block-medium{background-color:orange}.bar-block-low{background-color:#ff0}.bar-block-none{background-color:green}.bar-block-unknown{background-color:grey}.bar-tooltip-font{font-size:13px;color:#fff}.bar-tooltip-font-title{font-weight:600}.bar-summary{margin-top:12px;text-align:left}.bar-scanning-time{margin-top:12px}.bar-summary-item{margin-top:3px;margin-bottom:3px}.bar-summary-item span:nth-child(1){width:30px;text-align:center;display:inline-block}.bar-summary-item span:nth-child(2){width:28px;display:inline-block}.option-right{padding-right:16px}.refresh-btn{cursor:pointer}.refresh-btn:hover{color:#007cbb}.label.label-medium{background-color:#ffe4a9;border:1px solid orange;color:orange}.tip-icon-medium{color:orange}.label.label-low{background:rgba(251,255,0,.38);color:#c5c50b;border:1px solid #e6e63f}.tip-icon-low{color:#ff0}.font-color-green{color:green}.bar-tooltip-font-larger span{font-size:16px;vertical-align:middle}hr{border-bottom:0;border-color:#aaa;margin:6px -10px}.font-weight-600{font-weight:600}.rightPos{position:absolute;z-index:100;right:35px;margin-top:4px}"]}]}],"members":{"repoName":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":57,"character":5}}]}],"tagId":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":58,"character":5}}]}],"summary":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":59,"character":5}}]}],"scanningJobLogViewer":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":66,"character":5},"arguments":["scanningLogViewer"]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"TagService"},{"__symbolic":"reference","name":"ScanningResultService"},{"__symbolic":"reference","name":"ErrorHandler"},{"__symbolic":"reference","name":"ChannelService"},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":74,"character":21}]}],"ngOnInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"scanNow":[{"__symbolic":"method"}],"getSummary":[{"__symbolic":"method"}],"copyValue":[{"__symbolic":"method"}],"forceRefreshView":[{"__symbolic":"method"}],"viewLog":[{"__symbolic":"method"}]}},"TranslateServiceInitializer":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":10,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@ngx-translate/core","name":"TranslateService","line":13,"character":30},{"__symbolic":"reference","module":"ngx-cookie","name":"CookieService","line":14,"character":20}]}],"init":[{"__symbolic":"method"}]}},"I18nConfig":{"__symbolic":"interface"},"PUSH_IMAGE_BUTTON_DIRECTIVES":[{"__symbolic":"reference","name":"CopyInputComponent"},{"__symbolic":"reference","name":"PushImageButtonComponent"}],"PushImageButtonComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":4,"character":1},"arguments":[{"selector":"hbr-push-image-button","template":"<div>\n    <clr-dropdown>\n        <button class=\"btn btn-link btn-font\" clrDropdownToggle (click)=\"onclick()\">\n            {{ 'PUSH_IMAGE.TITLE' | translate | uppercase}}\n            <clr-icon shape=\"caret down\"></clr-icon>\n        </button>\n        <clr-dropdown-menu *clrIfOpen [clrPosition]=\"'bottom-right'\" style=\"min-width:500px;\">\n            <div class=\"commands-container\">\n                <section>\n                    <span><h5 class=\"h5-override\">{{ 'PUSH_IMAGE.TITLE' | translate }}</h5></span>\n                    <span>\n                      <clr-tooltip>\n                        <clr-icon  clrTooltipTrigger shape=\"info-circle\" class=\"info-tips-icon\" size=\"24\"></clr-icon>\n                        <clr-tooltip-content [clrPosition]=\"'top-right'\" [clrSize]=\"'md'\" *clrIfOpen>\n                            {{ 'PUSH_IMAGE.TOOLTIP' | translate }}\n                        </clr-tooltip-content>\n                      </clr-tooltip>\n                    </span>\n                </section>\n                <section>\n                  <hbr-inline-alert #copyAlert></hbr-inline-alert>\n                </section>\n                <section>\n                    <article class=\"commands-section\">\n                        <hbr-copy-input #tagCopy (onCopyError)=\"onCpError($event)\" inputSize=\"50\" headerTitle=\"{{ 'PUSH_IMAGE.TAG_COMMAND' | translate }}\" defaultValue=\"{{tagCommand}}\"></hbr-copy-input>\n                    </article>\n                    <article class=\"commands-section\">\n                        <hbr-copy-input #pushCopy (onCopyError)=\"onCpError($event)\" inputSize=\"50\" headerTitle=\"{{ 'PUSH_IMAGE.PUSH_COMMAND' | translate }}\" defaultValue=\"{{pushCommand}}\"></hbr-copy-input>\n                    </article>\n                </section>\n            </div>\n        </clr-dropdown-menu>\n    </clr-dropdown>\n</div>","styles":[".commands-container{min-width:360px;max-width:720px;padding-left:24px}.h5-override{display:inline-block!important;margin-top:0!important;margin-bottom:12px}.commands-section{margin-top:12px;margin-bottom:24px}.info-tips-icon{color:grey}.info-tips-icon:hover{color:#007cbb;cursor:pointer}.command-title{font-size:14px;padding-left:6px}.command-input{font-size:14px;font-weight:500}:host>>>.dropdown-menu{min-width:360px;max-width:720px}.btn-font{font-size:14px!important}.hide{display:none}"],"providers":[]}]}],"members":{"registryUrl":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":45,"character":3}}]}],"projectName":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":46,"character":3}}]}],"tagCopyInput":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":48,"character":3},"arguments":["tagCopy"]}]}],"pushCopyInput":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":49,"character":3},"arguments":["pushCopy"]}]}],"copyAlert":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":50,"character":3},"arguments":["copyAlert"]}]}],"onclick":[{"__symbolic":"method"}],"onCpError":[{"__symbolic":"method"}]}},"CopyStatus":{"NORMAL":0,"SUCCESS":1,"ERROR":2},"CopyInputComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":7,"character":1},"arguments":[{"selector":"hbr-copy-input","template":"<div>\n    <div class=\"command-title\" *ngIf=\"!iconMode\">\n        {{headerTitle}}\n    </div>\n    <div>\n        <span  [class.hide]=\"iconMode\">\n            <input type=\"text\" class=\"command-input\" size=\"{{inputSize}}\" [(ngModel)]=\"defaultValue\" #inputTarget readonly/>\n        </span>\n        <span>\n            <input type=\"text\" size=\"{{inputSize}}\" [(ngModel)]=\"defaultValue\" #inputTarget1 style=\"width: 1px; min-width: 0px; padding: 0; opacity: .1;\">\n        </span>\n        <span>\n            <clr-icon shape=\"copy\" [class.is-success]=\"isCopied\" [class.is-error]=\"hasCopyError\" class=\"info-tips-icon\" size=\"24\" [ngxClipboard]=\"inputTarget1\" (cbOnSuccess)=\"onSuccess($event)\" (cbOnError)=\"onError($event)\"></clr-icon>\n        </span>\n    </div>\n</div>","styles":[".commands-container{min-width:360px;max-width:720px;padding-left:24px}.h5-override{display:inline-block!important;margin-top:0!important;margin-bottom:12px}.commands-section{margin-top:12px;margin-bottom:24px}.info-tips-icon{color:grey}.info-tips-icon:hover{color:#007cbb;cursor:pointer}.command-title{font-size:14px;padding-left:6px}.command-input{font-size:14px;font-weight:500}:host>>>.dropdown-menu{min-width:360px;max-width:720px}.btn-font{font-size:14px!important}.hide{display:none}"],"providers":[]}]}],"members":{"inputSize":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":31,"character":5}}]}],"headerTitle":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":32,"character":5}}]}],"defaultValue":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":33,"character":5}}]}],"iconMode":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":34,"character":5}}]}],"onCopySuccess":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":38,"character":5}}]}],"onCopyError":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":39,"character":5}}]}],"ngOnInit":[{"__symbolic":"method"}],"onSuccess":[{"__symbolic":"method"}],"onError":[{"__symbolic":"method"}],"reset":[{"__symbolic":"method"}],"setPullCommendShow":[{"__symbolic":"method"}]}},"WindowTokenModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":9,"character":1},"arguments":[{"providers":[{"provide":{"__symbolic":"reference","name":"WINDOW"},"useFactory":{"__symbolic":"reference","name":"ɵa"}}]}]}],"members":{}},"WINDOW":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":3,"character":26},"arguments":["WindowToken"]},"ClipboardModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":8,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":9,"character":14},{"__symbolic":"reference","name":"WindowTokenModule"}],"declarations":[{"__symbolic":"reference","name":"ClipboardDirective"}],"exports":[{"__symbolic":"reference","name":"ClipboardDirective"}],"providers":[{"__symbolic":"reference","name":"CLIPBOARD_SERVICE_PROVIDER"}]}]}],"members":{}},"ClipboardDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":3,"character":1},"arguments":[{"selector":"[ngxClipboard]"}]}],"members":{"targetElm":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":8,"character":5},"arguments":["ngxClipboard"]}]}],"cbContent":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":10,"character":5}}]}],"cbOnSuccess":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":12,"character":5}}]}],"cbOnError":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":14,"character":5}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ClipboardService"},{"__symbolic":"reference","module":"@angular/core","name":"Renderer","line":17,"character":26}]}],"ngOnInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"onClick":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":27,"character":5},"arguments":["click",["$event.target"]]}]}],"handleResult":[{"__symbolic":"method"}]}},"ClipboardService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":12,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":16,"character":5},"arguments":[{"__symbolic":"reference","module":"@angular/platform-browser","name":"DOCUMENT","line":16,"character":12}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":17,"character":5},"arguments":[{"__symbolic":"reference","name":"WINDOW"}]}]],"parameters":[{"__symbolic":"reference","name":"any"},{"__symbolic":"reference","name":"any"}]}],"isTargetValid":[{"__symbolic":"method"}],"copyFromInputElement":[{"__symbolic":"method"}],"copyFromContent":[{"__symbolic":"method"}],"destroy":[{"__symbolic":"method"}],"selectTarget":[{"__symbolic":"method"}],"copyText":[{"__symbolic":"method"}],"clearSelection":[{"__symbolic":"method"}],"createTempTextArea":[{"__symbolic":"method"}]}},"CLIPBOARD_SERVICE_PROVIDER_FACTORY":{"__symbolic":"function","parameters":["doc","win","parentDispatcher"],"value":{"__symbolic":"binop","operator":"||","left":{"__symbolic":"reference","name":"parentDispatcher"},"right":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"ClipboardService"},"arguments":[{"__symbolic":"reference","name":"doc"},{"__symbolic":"reference","name":"win"}]}}},"CLIPBOARD_SERVICE_PROVIDER":{"provide":{"__symbolic":"reference","name":"ClipboardService"},"deps":[{"__symbolic":"reference","module":"@angular/platform-browser","name":"DOCUMENT","line":141,"character":9},{"__symbolic":"reference","name":"WINDOW"},[{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":141,"character":32}},{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"SkipSelf","line":141,"character":48}},{"__symbolic":"reference","name":"ClipboardService"}]],"useFactory":{"__symbolic":"reference","name":"CLIPBOARD_SERVICE_PROVIDER_FACTORY"}},"CONFIGURATION_DIRECTIVES":[{"__symbolic":"reference","name":"ReplicationConfigComponent"},{"__symbolic":"reference","name":"SystemSettingsComponent"},{"__symbolic":"reference","name":"VulnerabilityConfigComponent"},{"__symbolic":"reference","name":"RegistryConfigComponent"}],"StringValueItem":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"boolean"}]}]}},"NumberValueItem":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"number"},{"__symbolic":"reference","name":"boolean"}]}]}},"BoolValueItem":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"boolean"},{"__symbolic":"reference","name":"boolean"}]}]}},"ComplexValueItem":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"error","message":"Expression form not supported","line":47,"character":32,"module":"./src/config/config"},{"__symbolic":"reference","name":"boolean"}]}]}},"Configuration":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor"}]}},"ReplicationConfigComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":5,"character":1},"arguments":[{"selector":"replication-config","template":"<form #replicationConfigFrom=\"ngForm\" class=\"compact\">\n<section class=\"form-block\" style=\"margin-top:0px;margin-bottom:0px;\">\n<label style=\"font-size:14px;font-weight:600;\" *ngIf=\"showSubTitle\">{{'CONFIG.REPLICATION' | translate}}</label>\n<div class=\"form-group\">\n  <label for=\"verifyRemoteCert\">{{'CONFIG.VERIFY_REMOTE_CERT' | translate }}</label>\n    <clr-checkbox name=\"verifyRemoteCert\" id=\"verifyRemoteCert\" [(ngModel)]=\"replicationConfig.verify_remote_cert.value\" [disabled]=\"!editable\">\n      <a href=\"javascript:void(0)\" role=\"tooltip\" aria-haspopup=\"true\" class=\"tooltip tooltip-lg tooltip-top-right\" style=\"top:-8px;\">\n        <clr-icon shape=\"info-circle\" class=\"info-tips-icon\" size=\"24\"></clr-icon>\n        <span class=\"tooltip-content\">{{'CONFIG.TOOLTIP.VERIFY_REMOTE_CERT' | translate }}</span>\n      </a>\n     </clr-checkbox>\n</div>\n</section>\n</form>\n","styles":["./replication-config.component.scss","../registry-config.component.scss"]}]}],"members":{"configChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":26,"character":5}}]}],"replicationConfig":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":28,"character":5}}]}],"showSubTitle":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":37,"character":5}}]}],"replicationConfigForm":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":39,"character":5},"arguments":["replicationConfigFrom"]}]}]}},"SystemSettingsComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":6,"character":1},"arguments":[{"selector":"system-settings","template":"<form #systemConfigFrom=\"ngForm\" class=\"compact\">\n<section class=\"form-block\" style=\"margin-top:0px;margin-bottom:0px;\">\n  <label style=\"font-size:14px;font-weight:600;\" *ngIf=\"showSubTitle\">{{'CONFIG.SYSTEM' | translate}}</label>\n  <div class=\"form-group\">\n    <label for=\"proCreation\">{{'CONFIG.PRO_CREATION_RESTRICTION' | translate}}</label>\n    <div class=\"select\">\n        <select id=\"proCreation\" name=\"proCreation\" [(ngModel)]=\"systemSettings.project_creation_restriction.value\" [disabled]=\"disabled(systemSettings.project_creation_restriction)\">\n            <option value=\"everyone\">{{'CONFIG.PRO_CREATION_EVERYONE' | translate }}</option>\n            <option value=\"adminonly\">{{'CONFIG.PRO_CREATION_ADMIN' | translate }}</option>\n        </select> \n    </div>\n    <a href=\"javascript:void(0)\" role=\"tooltip\" aria-haspopup=\"true\" class=\"tooltip tooltip-lg tooltip-top-right\" style=\"top: -1px;\">\n        <clr-icon shape=\"info-circle\" class=\"info-tips-icon\" size=\"24\"></clr-icon>\n        <span class=\"tooltip-content\">{{'CONFIG.TOOLTIP.PRO_CREATION_RESTRICTION' | translate}}</span>\n    </a>\n  </div>\n  <div class=\"form-group\">\n      <label for=\"tokenExpiration\" class=\"required\">{{'CONFIG.TOKEN_EXPIRATION' | translate}}</label>\n      <label for=\"tokenExpiration\" aria-haspopup=\"true\" role=\"tooltip\" class=\"tooltip tooltip-validation tooltip-md tooltip-top-right\" [class.invalid]=\"tokenExpirationInput.invalid && (tokenExpirationInput.dirty || tokenExpirationInput.touched)\">\n        <input name=\"tokenExpiration\" type=\"text\" #tokenExpirationInput=\"ngModel\" [(ngModel)]=\"systemSettings.token_expiration.value\" \n         required \n         pattern=\"^[1-9]{1}[0-9]*$\"\n         id=\"tokenExpiration\" \n         size=\"20\" [disabled]=\"!editable\">\n         <span class=\"tooltip-content\">\n               {{'TOOLTIP.NUMBER_REQUIRED' | translate}}\n          </span>\n       </label>\n       <a href=\"javascript:void(0)\" role=\"tooltip\" aria-haspopup=\"true\" class=\"tooltip tooltip-top-right\">\n         <clr-icon shape=\"info-circle\" class=\"info-tips-icon\" size=\"24\"></clr-icon>\n         <span class=\"tooltip-content\">{{'CONFIG.TOOLTIP.TOKEN_EXPIRATION' | translate}}</span>\n       </a>\n   </div>\n   <div class=\"form-group\" *ngIf=\"canDownloadCert\">\n      <label for=\"certDownloadLink\" class=\"required\">{{'CONFIG.ROOT_CERT' | translate}}</label>\n      <a #certDownloadLink [href]=\"downloadLink\" target=\"_blank\">{{'CONFIG.ROOT_CERT_LINK' | translate}}</a>\n       <a href=\"javascript:void(0)\" role=\"tooltip\" aria-haspopup=\"true\" class=\"tooltip tooltip-top-right\">\n         <clr-icon shape=\"info-circle\" class=\"info-tips-icon\" size=\"24\"></clr-icon>\n         <span class=\"tooltip-content\">{{'CONFIG.TOOLTIP.ROOT_CERT_DOWNLOAD' | translate}}</span>\n       </a>\n   </div>\n   <div *ngIf=\"!withAdmiral\" class=\"form-group\">\n            <label for=\"repoReadOnly\">{{'CONFIG.REPO_READ_ONLY' | translate}}</label>\n            <clr-checkbox name=\"repoReadOnly\" id=\"repoReadOnly\" [clrChecked]=\"systemSettings.read_only.value\"  (clrCheckedChange)=\"setRepoReadOnlyValue($event)\">\n                <a href=\"javascript:void(0)\" role=\"tooltip\" aria-haspopup=\"true\" class=\"tooltip tooltip-top-right\" style=\"top:-7px;\">\n                    <clr-icon shape=\"info-circle\" class=\"info-tips-icon\" size=\"24\"></clr-icon>\n                    <span class=\"tooltip-content\">{{'CONFIG.TOOLTIP.REPO_TOOLTIP' | translate}}</span>\n                </a>\n            </clr-checkbox>\n        </div>\n</section>\n</form>","styles":["",".info-tips-icon{color:grey}.info-tips-icon:hover{color:#007cbb}"]}]}],"members":{"configChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":65,"character":5}}]}],"systemSettings":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":67,"character":5}}]}],"showSubTitle":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":76,"character":5}}]}],"hasAdminRole":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":77,"character":5}}]}],"hasCAFile":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":78,"character":5}}]}],"withAdmiral":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":79,"character":5}}]}],"systemSettingsForm":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":81,"character":5},"arguments":["systemConfigFrom"]}]}],"setRepoReadOnlyValue":[{"__symbolic":"method"}],"disabled":[{"__symbolic":"method"}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":105,"character":18},"arguments":[{"__symbolic":"reference","name":"SERVICE_CONFIG"}]}]],"parameters":[{"__symbolic":"reference","name":"IServiceConfig"}]}]}},"VulnerabilityConfigComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":17,"character":1},"arguments":[{"selector":"vulnerability-config","template":"<form #systemConfigFrom=\"ngForm\" class=\"compact\">\n    <section class=\"form-block\" style=\"margin-top:0px;margin-bottom:0px;\">\n        <label class=\"section-title\" *ngIf=\"showSubTitle\">{{ 'CONFIG.SCANNING.TITLE' | translate }}</label>\n        <div class=\"form-group\">\n            <label>{{ 'CONFIG.SCANNING.DB_REFRESH_TIME' | translate }}</label>\n            <clr-tooltip *ngIf=\"!isClairDBFullyReady\">\n              <clr-icon shape=\"warning\" class=\"is-warning\" size=\"22\"></clr-icon>\n              <clr-tooltip-content [clrPosition]=\"'top-right'\" [clrSize]=\"'md'\" *clrIfOpen>\n                <span>{{'CONFIG.SCANNING.DB_NOT_READY' | translate }}</span>\n              </clr-tooltip-content>\n            </clr-tooltip>\n            <clr-dropdown *ngIf=\"isClairDBFullyReady && showScanningNamespaces\" style=\"margin-top:-8px;\" class=\"clr-dropdown-override\">\n                <button class=\"btn btn-link btn-font\" clrDropdownToggle>\n                  {{ updatedTimestamp | date:'MM/dd/y HH:mm:ss' }}\n                  <clr-icon shape=\"caret down\"></clr-icon>\n                </button>\n                <clr-dropdown-menu [clrPosition]=\"'bottom-right'\" style=\"min-width:300px;\">\n                    <div *ngFor=\"let nt of namespaceTimestamps\" class=\"namespace\">\n                      <span class=\"label label-info\">{{nt.namespace}}</span>\n                      <span>{{ convertToLocalTime(nt.last_update) | date:'MM/dd/y HH:mm:ss'}}</span>\n                    </div>\n                </clr-dropdown-menu>\n            </clr-dropdown>\n            <span class=\"label label-blue\" *ngIf=\"isClairDBFullyReady && !showScanningNamespaces\">{{ updatedTimestamp | date:'MM/dd/y HH:mm:ss' }}</span>\n        </div>\n        <div class=\"form-group\">\n            <label for=\"scanAllPolicy\">{{ 'CONFIG.SCANNING.SCAN_ALL' | translate }}</label>\n            <div class=\"select\">\n                <select id=\"scanAllPolicy\" name=\"scanAllPolicy\" [disabled]=\"!editable\" [(ngModel)]=\"scanningType\">\n                    <option value=\"none\">{{ 'CONFIG.SCANNING.NONE_POLICY' | translate }}</option>\n                    <option value=\"daily\">{{ 'CONFIG.SCANNING.DAILY_POLICY' | translate }}</option>\n                </select>\n            </div>\n            <input type=\"time\" name=\"dailyTimePicker\" required [disabled]=\"!editable\" [hidden]=\"!showTimePicker\" [(ngModel)]=\"dailyTime\" />\n            <a href=\"javascript:void(0)\" role=\"tooltip\" aria-haspopup=\"true\" class=\"tooltip tooltip-top-right\">\n                <clr-icon shape=\"info-circle\" class=\"info-tips-icon\" size=\"24\"></clr-icon>\n                <span class=\"tooltip-content\">{{'CONFIG.TOOLTIP.SCANNING_POLICY' | translate}}</span>\n            </a>\n            <div class=\"btn-scan-right\">\n                 <button class=\"btn btn-primary btn-sm\" (click)=\"scanNow()\" [disabled]=\"!scanAvailable\">{{ 'CONFIG.SCANNING.SCAN_NOW' | translate }}</button><br>\n                 <span *ngIf=\"!scanAvailable\">{{ 'CONFIG.SCANNING.NEXT_SCAN' | translate }} {{ nextScanTimestamp | date:'y/MM/dd HH:mm' }}</span>\n            </div>\n        </div>\n    </section>\n</form>","styles":["./vulnerability-config.component.scss","../registry-config.component.scss"]}]}],"members":{"configChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":72,"character":5}}]}],"vulnerabilityConfig":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":74,"character":5}}]}],"showSubTitle":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":93,"character":5}}]}],"showScanningNamespaces":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":94,"character":5}}]}],"systemSettingsForm":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":252,"character":5},"arguments":["systemConfigFrom"]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ScanningResultService"},{"__symbolic":"reference","name":"ErrorHandler"},{"__symbolic":"reference","module":"@ngx-translate/core","name":"TranslateService","line":280,"character":27},{"__symbolic":"reference","name":"SystemInfoService"}]}],"ngOnInit":[{"__symbolic":"method"}],"convertToLocalTime":[{"__symbolic":"method"}],"scanNow":[{"__symbolic":"method"}],"getSystemInfo":[{"__symbolic":"method"}]}},"RegistryConfigComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":18,"character":1},"arguments":[{"selector":"hbr-registry-config","template":"<div>\n    <system-settings #systemSettings [(systemSettings)]=\"config\" [showSubTitle]=\"true\" [hasAdminRole]=\"hasAdminRole\" [hasCAFile]=\"hasCAFile\" [withAdmiral]=\"withAdmiral\"></system-settings>\n    <vulnerability-config *ngIf=\"withClair\" #vulnerabilityConfig [(vulnerabilityConfig)]=\"config\" [showSubTitle]=\"true\"></vulnerability-config>\n    <div>\n        <button type=\"button\" class=\"btn btn-primary\" (click)=\"save()\" [disabled]=\"shouldDisable\">{{'BUTTON.SAVE' | translate}}</button>\n        <button type=\"button\" class=\"btn btn-outline\" (click)=\"cancel()\" [disabled]=\"shouldDisable\">{{'BUTTON.CANCEL' | translate}}</button>\n    </div>\n    <confirmation-dialog #cfgConfirmationDialog (confirmAction)=\"confirmCancel($event)\"></confirmation-dialog>\n</div>"}]}],"members":{"hasAdminRole":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":36,"character":5}}]}],"systemSettings":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":38,"character":5},"arguments":["systemSettings"]}]}],"vulnerabilityCfg":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":39,"character":5},"arguments":["vulnerabilityConfig"]}]}],"confirmationDlg":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":40,"character":5},"arguments":["cfgConfirmationDialog"]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ConfigurationService"},{"__symbolic":"reference","name":"ErrorHandler"},{"__symbolic":"reference","module":"@ngx-translate/core","name":"TranslateService","line":45,"character":27},{"__symbolic":"reference","name":"SystemInfoService"}]}],"ngOnInit":[{"__symbolic":"method"}],"isValid":[{"__symbolic":"method"}],"hasChanges":[{"__symbolic":"method"}],"loadSystemInfo":[{"__symbolic":"method"}],"load":[{"__symbolic":"method"}],"save":[{"__symbolic":"method"}],"cancel":[{"__symbolic":"method"}],"confirmCancel":[{"__symbolic":"method"}],"reset":[{"__symbolic":"method"}],"getChanges":[{"__symbolic":"method"}]}},"JOB_LOG_VIEWER_DIRECTIVES":[{"__symbolic":"reference","name":"JobLogViewerComponent"}],"JobLogViewerComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":26,"character":1},"arguments":[{"selector":"job-log-viewer","template":"<clr-modal [(clrModalOpen)]=\"opened\" [clrModalStaticBackdrop]=\"true\" [clrModalSize]=\"'xl'\">\n    <h3 class=\"modal-title\" class=\"log-viewer-title\" style=\"margin-top: 0px;\">{{title | translate }}</h3>\n    <div class=\"modal-body\">\n      <div class=\"loading-back\" [hidden]=\"!onGoing\">\n        <span class=\"spinner spinner-md\"></span>\n      </div>\n      <pre [hidden]=\"onGoing\">\n<code>{{log}}</code>\n      </pre>\n    </div>\n    <div class=\"modal-footer\">\n      <button type=\"button\" class=\"btn btn-primary\" (click)=\"close()\">{{ 'BUTTON.CLOSE' | translate}}</button>\n    </div>\n</clr-modal>","styles":[".log-viewer-title{line-height:24px;color:#000;font-size:22px}.loading-back{height:358px;display:flex;align-items:center;justify-content:center}"],"changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":43,"character":19},"member":"OnPush"}}]}],"members":{"jobType":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":52,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"JobLogService"},{"__symbolic":"reference","name":"ErrorHandler"},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":73,"character":17}]}],"open":[{"__symbolic":"method"}],"close":[{"__symbolic":"method"}],"load":[{"__symbolic":"method"}]}},"ChannelService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":18,"character":1}}],"members":{"publishScanEvent":[{"__symbolic":"method"}]}},"PROJECT_POLICY_CONFIG_DIRECTIVES":[{"__symbolic":"reference","name":"ProjectPolicyConfigComponent"}],"ProjectPolicy":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor"}],"initByProject":[{"__symbolic":"method"}]}},"ProjectPolicyConfigComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":40,"character":1},"arguments":[{"selector":"hbr-project-policy-config","template":"<form #projectPolicyForm=\"ngForm\">\n    <section class=\"form-block\">\n        <div class=\"form-group\">\n          <label for=\"projectPolicyForm\">{{ 'PROJECT_CONFIG.REGISTRY' | translate }}</label>\n          <div class=\"form-content\">\n            <clr-checkbox [(ngModel)]=\"projectPolicy.Public\" name=\"public\"\n              [clrDisabled]=\"!hasProjectAdminRole\">{{ 'PROJECT_CONFIG.PUBLIC_TOGGLE' | translate }}</clr-checkbox>\n            <div>\n              <label> {{ 'PROJECT_CONFIG.PUBLIC_POLICY' | translate }} </label>\n            </div>\n          </div>\n        </div>\n        <div class=\"form-group\" *ngIf=\"withNotary || withClair\">\n          <label for=\"projectPolicyForm\">{{ 'PROJECT_CONFIG.SECURITY' | translate }}</label>\n          <div class=\"form-content\">\n            <div *ngIf=\"withNotary\">\n              <clr-checkbox [(ngModel)]=\"projectPolicy.ContentTrust\" name=\"content-trust\" \n                [clrDisabled]=\"!hasProjectAdminRole\">{{ 'PROJECT_CONFIG.CONTENT_TRUST_TOGGLE' | translate }}</clr-checkbox>\n              <div class=\"chk-explain\"><label> {{ 'PROJECT_CONFIG.CONTENT_TRUST_POLCIY' | translate }} </label></div>\n            </div>\n            <div *ngIf=\"withClair\">\n              <clr-checkbox [(ngModel)]=\"projectPolicy.PreventVulImg\" name=\"prevent-vulenrability-image\" [clrDisabled]=\"!hasProjectAdminRole\">{{ 'PROJECT_CONFIG.PREVENT_VULNERABLE_TOGGLE' | translate }}</clr-checkbox>\n              <div class=\"chk-explain\">\n                <label>\n                  <div id=\"severity-blk\">\n                    <div>{{ 'PROJECT_CONFIG.PREVENT_VULNERABLE_1' | translate }}</div>\n                    <div class=\"select\">\n                      <select id=\"severity\" name=\"severity\" [(ngModel)]=\"projectPolicy.PreventVulImgSeverity\" [disabled]=\"!projectPolicy.PreventVulImg\">\n                        <option *ngFor='let s of severityOptions' [ngValue]=\"s.severity\">{{ s.severityLevel | translate }}</option>                      \n                      </select>\n                    </div> \n                    <div> {{ 'PROJECT_CONFIG.PREVENT_VULNERABLE_2' | translate }} </div>\n                  </div>\n                </label>\n              </div>\n            </div>\n          </div>\n        </div>\n        <div class=\"form-group\" *ngIf=\"withClair\">\n          <label for=\"projectPolicyForm\">{{ 'PROJECT_CONFIG.SCAN' | translate }}</label>\n          <div class=\"form-content\">\n            <clr-checkbox [(ngModel)]=\"projectPolicy.ScanImgOnPush\" name=\"scan-image-on-push\" [clrDisabled]=\"!hasProjectAdminRole\">{{ 'PROJECT_CONFIG.AUTOSCAN_TOGGLE' | translate }}</clr-checkbox>\n            <div class=\"chk-explain\"><label> {{ 'PROJECT_CONFIG.AUTOSCAN_POLICY' | translate }}</label></div>\n          </div>\n        </div>\n       <button type=\"button\" class=\"btn btn-primary\" (click)=\"save()\" [disabled]=\"!isValid() || !hasChanges() || !hasProjectAdminRole\">{{'BUTTON.SAVE' | translate}}</button>\n       <button type=\"button\" class=\"btn btn-outline\" (click)=\"cancel()\" [disabled]=\"!isValid() || !hasChanges() || !hasProjectAdminRole\">{{'BUTTON.CANCEL' | translate}}</button>\n       <confirmation-dialog #cfgConfirmationDialog (confirmAction)=\"confirmCancel($event)\"></confirmation-dialog>       \n    </section>\n</form>","styles":["#severity-blk div{display:inline-block}.select{width:120px}"]}]}],"members":{"projectId":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":96,"character":3}}]}],"projectName":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":97,"character":3}}]}],"hasSignedIn":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":99,"character":3}}]}],"hasProjectAdminRole":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":100,"character":3}}]}],"confirmationDlg":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":102,"character":3},"arguments":["cfgConfirmationDialog"]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ErrorHandler"},{"__symbolic":"reference","module":"@ngx-translate/core","name":"TranslateService","line":117,"character":23},{"__symbolic":"reference","name":"ProjectService"},{"__symbolic":"reference","name":"SystemInfoService"}]}],"ngOnInit":[{"__symbolic":"method"}],"retrieve":[{"__symbolic":"method"}],"updateProjectPolicy":[{"__symbolic":"method"}],"refresh":[{"__symbolic":"method"}],"isValid":[{"__symbolic":"method"}],"hasChanges":[{"__symbolic":"method"}],"save":[{"__symbolic":"method"}],"cancel":[{"__symbolic":"method"}],"reset":[{"__symbolic":"method"}],"confirmCancel":[{"__symbolic":"method"}]}},"LABEL_DIRECTIVES":[{"__symbolic":"reference","name":"ɵs"}],"CREATE_EDIT_LABEL_DIRECTIVES":[{"__symbolic":"reference","name":"ɵt"}],"HBR_GRIDVIEW_DIRECTIVES":[{"__symbolic":"reference","name":"GridViewComponent"}],"GridViewComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":29,"character":1},"arguments":[{"selector":"hbr-gridview","template":"<div class=\"grid-content\" (scroll)=\"onScroll($event)\">\n  <div class=\"items\" [ngStyle]=\"itemsHolderStyle\" #itemsHolder >\n    <span *ngFor=\"let item of items;let i = index; trackBy:trackByFn\" class='card-item' [ngStyle]=\"cardStyles[i]\" #cardItem\n          (mouseenter)='onCardEnter(i)' (mouseleave)='onCardLeave(i)'>\n      <ng-template [ngTemplateOutlet]=\"gridItemTmpl\" [ngTemplateOutletContext]=\"{item: item}\">\n      </ng-template>\n    </span>\n    <span *ngIf=\"items.length === 0 && !loading\" class=\"content-empty\">\n        {{'REPOSITORY.NO_ITEMS' | translate}}\n    </span>\n  </div>\n  <div *ngIf=\"loading\" [ngClass]=\"{'central-block-loading': isFirstPage, 'central-block-loading-more': !isFirstPage}\">\n    <span class=\"vertical-helper\"></span>\n    <div class=\"spinner\"></div>\n  </div>\n</div>","styles":[".grid-content{position:relative;top:36px;left:0;right:0;bottom:0;overflow:auto;max-height:65vh}.card-item{display:block;max-width:400px;min-width:300px;position:absolute;margin-right:40px;transition:width .4s,transform .4s,-webkit-transform .4s}.content-empty{text-align:center;display:block;margin-top:100px}.central-block-loading{position:absolute;z-index:10;top:0;left:0;right:0;bottom:0;text-align:center;background-color:rgba(255,255,255,.5)}.central-block-loading-more{position:relative;z-index:10;top:0;left:0;right:0;bottom:0;text-align:center;background-color:rgba(255,255,255,.5)}.vertical-helper{display:inline-block;height:100%;vertical-align:middle}.spinner{width:100px;height:100px;vertical-align:middle}"],"encapsulation":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewEncapsulation","line":48,"character":17},"member":"None"}}]}],"members":{"loading":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":54,"character":3}}]}],"totalCount":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":55,"character":3}}]}],"currentPage":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":56,"character":3}}]}],"pageSize":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":57,"character":3}}]}],"expectScrollPercent":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":58,"character":3}}]}],"withAdmiral":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":59,"character":3}}]}],"items":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":60,"character":3}}]}],"loadNextPageEvent":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":75,"character":3}}]}],"cards":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChildren","line":77,"character":3},"arguments":["cardItem"]}]}],"itemsHolder":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":78,"character":3},"arguments":["itemsHolder"]}]}],"gridItemTmpl":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChild","line":79,"character":3},"arguments":[{"__symbolic":"reference","module":"@angular/core","name":"TemplateRef","line":79,"character":16}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@ngx-translate/core","name":"TranslateService","line":104,"character":33}]}],"ngAfterViewInit":[{"__symbolic":"method"}],"onScroll":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":117,"character":3},"arguments":["scroll",["$event"]]}]}],"isScrollDown":[{"__symbolic":"method"}],"isScrollExpectPercent":[{"__symbolic":"method"}],"onResize":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":147,"character":3},"arguments":["window:resize",["$event"]]}]}],"throttleLayout":[{"__symbolic":"method"}],"layout":[{"__symbolic":"method"}],"onCardEnter":[{"__symbolic":"method"}],"onCardLeave":[{"__symbolic":"method"}],"trackByFn":[{"__symbolic":"method"}]}},"REPOSITORY_GRIDVIEW_DIRECTIVES":[{"__symbolic":"reference","name":"RepositoryGridviewComponent"}],"RepositoryGridviewComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":38,"character":1},"arguments":[{"selector":"hbr-repository-gridview","template":"<div>\n    <div class=\"row\" style=\"position:relative;\">\n        <div class=\"toolbar\">\n            <div class=\"row flex-items-xs-right option-right rightPos\">\n                <div class=\"flex-xs-middle\">\n                    <hbr-push-image-button style=\"display: inline-block;\" [registryUrl]=\"registryUrl\" [projectName]=\"projectName\"></hbr-push-image-button>\n                    <hbr-filter [withDivider]=\"true\" filterPlaceholder=\"{{'REPOSITORY.FILTER_FOR_REPOSITORIES' | translate}}\" (filterEvt)=\"doSearchRepoNames($event)\" [currentValue]=\"lastFilteredRepoName\"></hbr-filter>\n                    <span class=\"card-btn\" (click)=\"showCard(true)\" (mouseenter) =\"mouseEnter('card') \"  (mouseleave) =\"mouseLeave('card')\">\n                        <clr-icon [ngClass]=\"{'is-highlight': isCardView || isHovering('card') }\" shape=\"view-cards\"></clr-icon>\n                    </span>\n                    <span class=\"list-btn\" (click)=\"showCard(false)\" (mouseenter) =\"mouseEnter('list') \"  (mouseleave) =\"mouseLeave('list')\">\n                        <clr-icon [ngClass]=\"{'is-highlight': !isCardView || isHovering('list') }\" shape=\"view-list\"></clr-icon>\n                    </span>\n                    <span class=\"filter-divider\"></span>\n                    <span class=\"refresh-btn\" (click)=\"refresh()\"><clr-icon shape=\"refresh\"></clr-icon></span>\n                </div>\n            </div>\n        </div>\n    </div>\n    <div class=\"row\">\n        <div *ngIf=\"!isCardView\" class=\"col-lg-12 col-md-12 col-sm-12 col-xs-12\">\n            <clr-datagrid (clrDgRefresh)=\"clrLoad($event)\" [clrDgLoading]=\"loading\"  [(clrDgSelected)]=\"selectedRow\" (clrDgSelectedChange)=\"selectedChange()\">\n                <clr-dg-action-bar>\n                    <button *ngIf=\"withAdmiral\" type=\"button\" class=\"btn btn-sm btn-secondary\" (click)=\"provisionItemEvent($event, selectedRow[0])\" [disabled]=\"!(selectedRow.length===1 && hasProjectAdminRole)\"><clr-icon shape=\"times\" size=\"16\"></clr-icon>&nbsp;{{'REPOSITORY.DEPLOY' | translate}}</button>\n                    <button *ngIf=\"withAdmiral\" type=\"button\" class=\"btn btn-sm btn-secondary\" (click)=\"itemAddInfoEvent($event, selectedRow[0])\" [disabled]=\"!(selectedRow.length===1 && hasProjectAdminRole)\"><clr-icon shape=\"times\" size=\"16\"></clr-icon>&nbsp;{{'REPOSITORY.ADDITIONAL_INFO' | translate}}</button>\n                    <button type=\"button\" class=\"btn btn-sm btn-secondary\" (click)=\"deleteRepos(selectedRow)\" [disabled]=\"!(selectedRow.length && hasProjectAdminRole)\"><clr-icon shape=\"times\" size=\"16\"></clr-icon>&nbsp;{{'REPOSITORY.DELETE' | translate}}</button>\n                </clr-dg-action-bar>\n                <clr-dg-column [clrDgField]=\"'name'\">{{'REPOSITORY.NAME' | translate}}</clr-dg-column>\n                <clr-dg-column [clrDgSortBy]=\"tagsCountComparator\">{{'REPOSITORY.TAGS_COUNT' | translate}}</clr-dg-column>\n                <clr-dg-column [clrDgSortBy]=\"pullCountComparator\">{{'REPOSITORY.PULL_COUNT' | translate}}</clr-dg-column>\n                <clr-dg-placeholder>{{'REPOSITORY.PLACEHOLDER' | translate }}</clr-dg-placeholder>\n                <clr-dg-row *ngFor=\"let r of repositories\"  [clrDgItem]=\"r\">\n                    <clr-dg-cell><a href=\"javascript:void(0)\" (click)=\"watchRepoClickEvt(r)\"><span *ngIf=\"withAdmiral\" class=\"list-img\"><img [src]=\"getImgLink(r)\"/></span>{{r.name}}</a></clr-dg-cell>\n                    <clr-dg-cell>{{r.tags_count}}</clr-dg-cell>\n                    <clr-dg-cell>{{r.pull_count}}</clr-dg-cell>\n                </clr-dg-row>\n                <clr-dg-footer>\n          <span *ngIf=\"showDBStatusWarning\" class=\"db-status-warning\">\n            <clr-icon shape=\"warning\" class=\"is-warning\" size=\"24\"></clr-icon>\n            {{'CONFIG.SCANNING.DB_NOT_READY' | translate }}\n          </span>\n                    <span *ngIf=\"pagination.totalItems\">{{pagination.firstItem + 1}} - {{pagination.lastItem + 1}} {{'REPOSITORY.OF' | translate}}</span>\n                    {{pagination.totalItems}} {{'REPOSITORY.ITEMS' | translate}}\n                    <clr-dg-pagination #pagination [(clrDgPage)]=\"currentPage\" [clrDgPageSize]=\"pageSize\" [clrDgTotalItems]=\"totalCount\"></clr-dg-pagination>\n                </clr-dg-footer>\n            </clr-datagrid>\n        </div>\n    </div>\n\n    <hbr-gridview *ngIf=\"isCardView\" #gridView style=\"position:relative;\" \n    [items]=\"repositories\" \n    [loading]=\"loading\"\n    [pageSize]=\"pageSize\"\n    [currentPage]=\"currentPage\"\n    [totalCount]=\"totalCount\"\n    [expectScrollPercent]=\"90\"\n    [withAdmiral]=\"withAdmiral\"\n    (loadNextPageEvent)=\"loadNextPage()\">\n        <ng-template let-item=\"item\">\n            <a class=\"card clickable\" (click)=\"watchRepoClickEvt(item)\">\n                <div class=\"card-header\">\n                    <div [ngClass]=\"{'card-media-block': true, 'wrap': !withAdmiral }\">\n                        <img *ngIf=\"withAdmiral\" [src]=\"getImgLink(item)\"/>\n                        <div class=\"card-media-description\">\n                            <span class=\"card-media-title\" [title]=\"item.name\">{{item.name}}</span>\n                            <p class=\"card-media-text\">{{registryUrl}}</p>\n                        </div>\n                    </div>\n                </div>\n                <div class=\"card-block\">\n                    <div class=\"card-text\">\n                        {{getRepoDescrition(item)}}\n                    </div>\n                    <div class=\"form-group\">\n                        <label>{{'REPOSITORY.TAGS_COUNT' | translate}}</label>\n                        <div>{{item.tags_count}}</div>\n                    </div>\n                    <div class=\"form-group\">\n                        <label>{{'REPOSITORY.PULL_COUNT' | translate}}</label>\n                        <div>{{item.pull_count}}</div>\n                    </div>\n                </div>\n                <div class=\"card-footer\">\n                    <clr-dropdown [clrCloseMenuOnItemClick]=\"false\">\n                        <button *ngIf=\"withAdmiral\" type=\"button\" class=\"btn btn-link\" (click)=\"provisionItemEvent($event, item)\" [disabled]=\"!hasProjectAdminRole\">{{'REPOSITORY.DEPLOY' | translate}}</button>\n                        <button type=\"button\" class=\"btn btn-link\" (click)=\"$event.stopPropagation()\" [disabled]=\"!hasProjectAdminRole\" clrDropdownTrigger>\n                            {{'REPOSITORY.ACTION' | translate}}\n                            <clr-icon shape=\"caret down\"></clr-icon>\n                        </button>\n                        <clr-dropdown-menu clrPosition=\"top-left\" *clrIfOpen>\n                            <button *ngIf=\"withAdmiral\" type=\"button\" class=\"btn btn-link\" clrDropdownItem (click)=\"itemAddInfoEvent($event, item)\" [disabled]=\"!hasProjectAdminRole\">\n                                {{'REPOSITORY.ADDITIONAL_INFO' | translate}}\n                            </button>\n                            <button type=\"button\" class=\"btn btn-link\" clrDropdownItem (click)=\"deleteItemEvent($event, item)\" [disabled]=\"!hasProjectAdminRole\">\n                                {{'REPOSITORY.DELETE' | translate}}\n                            </button>\n                        </clr-dropdown-menu>\n                    </clr-dropdown>\n                </div>\n            </a>\n        </ng-template>\n    </hbr-gridview>\n  <confirmation-dialog #confirmationDialog (confirmAction)=\"confirmDeletion($event)\"></confirmation-dialog>\n</div>","styles":[".rightPos{position:absolute;z-index:100;right:35px;margin-top:4px}.toolbar{overflow:hidden}.filter-divider{display:inline-block;height:16px;width:2px;background-color:#ccc;padding-top:12px;padding-bottom:12px;position:relative;top:9px;margin-right:6px;margin-left:6px}.card-block{min-height:100px;margin-top:0}.form-group{display:flex}.form-group>label{width:100px}.card-media-block>img{height:45px;width:45px}.card-media-title{height:24px;overflow:hidden;text-overflow:ellipsis;word-wrap:break-word;white-space:nowrap}.card-media-text{overflow:hidden;height:21px}.card-media-description{height:45px}.card-media-description>p{margin-top:0}.card-text{height:45px;overflow:hidden;margin-bottom:18px}.card-footer{padding-top:6px;padding-bottom:6px}.list-img>img{height:24px;width:24px;margin-right:12px}"],"changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":145,"character":21},"member":"OnPush"}}]}],"members":{"projectId":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":149,"character":5}}]}],"projectName":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":150,"character":5}}]}],"urlPrefix":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":151,"character":5}}]}],"hasSignedIn":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":152,"character":5}}]}],"hasProjectAdminRole":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":153,"character":5}}]}],"mode":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":154,"character":5}}]}],"repoClickEvent":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":155,"character":5}}]}],"repoProvisionEvent":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":156,"character":5}}]}],"addInfoEvent":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":157,"character":5}}]}],"confirmationDialog":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":178,"character":5},"arguments":["confirmationDialog"]}]}],"gridView":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":181,"character":5},"arguments":["gridView"]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ErrorHandler"},{"__symbolic":"reference","module":"@ngx-translate/core","name":"TranslateService","line":184,"character":42},{"__symbolic":"reference","name":"RepositoryService"},{"__symbolic":"reference","name":"SystemInfoService"},{"__symbolic":"reference","name":"TagService"},{"__symbolic":"reference","name":"OperationService"},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":189,"character":29},{"__symbolic":"reference","module":"@angular/router","name":"Router","line":190,"character":32}]}],"ngOnChanges":[{"__symbolic":"method"}],"ngOnInit":[{"__symbolic":"method"}],"confirmDeletion":[{"__symbolic":"method"}],"delOperate":[{"__symbolic":"method"}],"doSearchRepoNames":[{"__symbolic":"method"}],"saveSignatures":[{"__symbolic":"method"}],"deleteRepos":[{"__symbolic":"method"}],"getTagInfo":[{"__symbolic":"method"}],"confirmationDialogSet":[{"__symbolic":"method"}],"containsLatestTag":[{"__symbolic":"method"}],"provisionItemEvent":[{"__symbolic":"method"}],"itemAddInfoEvent":[{"__symbolic":"method"}],"deleteItemEvent":[{"__symbolic":"method"}],"selectedChange":[{"__symbolic":"method"}],"refresh":[{"__symbolic":"method"}],"loadNextPage":[{"__symbolic":"method"}],"clrLoad":[{"__symbolic":"method"}],"getStateAfterDeletion":[{"__symbolic":"method"}],"watchRepoClickEvt":[{"__symbolic":"method"}],"getImgLink":[{"__symbolic":"method"}],"getRepoDescrition":[{"__symbolic":"method"}],"showCard":[{"__symbolic":"method"}],"mouseEnter":[{"__symbolic":"method"}],"mouseLeave":[{"__symbolic":"method"}],"isHovering":[{"__symbolic":"method"}]}},"OPERATION_DIRECTIVES":[{"__symbolic":"reference","name":"OperationComponent"}],"OperationComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":8,"character":1},"arguments":[{"selector":"hbr-operation-model","template":"<div class=\"operDiv\" [@SlideInOutAnimation]=\"animationState\">\n    <a class=\"toolBar\" (click)=\"slideOut()\">{{'OPERATION.EVENT_LOG' | translate}}<!--<clr-icon shape=\"angle-double\" style=\"transform: rotate(90deg)\"></clr-icon>--></a>\n    <div class=\"side-form\">\n        <clr-icon shape=\"refresh\" class=\"freshIcon\" (click)=\"TabEvent()\"></clr-icon>\n        <h3 class=\"custom-h2\" style=\"margin-left: 34px;\">{{'OPERATION.LOCAL_EVENT' | translate}}</h3>\n        <div style=\"margin-top: 10px;\">\n            <clr-tabs>\n                <clr-tab>\n                    <button clrTabLink id=\"link1\" (click)=\"TabEvent()\">{{'OPERATION.ALL' | translate}}</button>\n                    <clr-tab-content id=\"contentAll\" *clrIfActive=\"true\">\n                        <div class=\"eventInfo\" *ngFor=\"let list of resultLists\">\n                            <div class=\"iconsArea\">\n                                <i class=\"spinner spinner-inline spinner-pos\" [hidden]=\"list.state != 'progressing'\"></i>\n                                <clr-icon [hidden]=\"list.state != 'success'\" size=\"18\" shape=\"success-standard\" style=\"color: green\"></clr-icon>\n                                <clr-icon [hidden]=\"list.state != 'failure'\" size=\"18\"  shape=\"error-standard\" style=\"color: red\"></clr-icon>\n                                <clr-icon [hidden]=\"list.state != 'interrupt'\" size=\"18\"  shape=\"unlink\" style=\"color: orange\"></clr-icon>\n                            </div>\n                            <div class=\"infoArea\">\n                                <label class=\"eventName\" (click)=\"toggleTitle(spanErrorInfo)\">{{list.name | translate}}</label>\n                                <span class=\"eventTarget\">{{list.data.name}}</span><span class=\"eventTime\">{{list.timeDiff | translate}}</span>\n                                <span #spanErrorInfo class=\"eventErrorInf\" style=\"display: none;\">{{list.data.errorInf}}</span>\n                            </div>\n                        </div>\n                    </clr-tab-content>\n                </clr-tab>\n                <clr-tab>\n                    <button clrTabLink (click)=\"TabEvent()\">{{'OPERATION.RUNNING' | translate}}</button>\n                    <clr-tab-content id=\"contentRun\" *clrIfActive>\n                        <div class=\"eventInfo\" *ngFor=\"let list of runningLists\">\n                            <div class=\"iconsArea\">\n                                <i class=\"spinner spinner-inline spinner-pos\" [hidden]=\"list.state != 'progressing'\"></i>\n                                <clr-icon [hidden]=\"list.state != 'success'\" size=\"18\" shape=\"success-standard\" style=\"color: green\"></clr-icon>\n                                <clr-icon [hidden]=\"list.state != 'failure'\" size=\"18\"  shape=\"error-standard\" style=\"color: red\"></clr-icon>\n                            </div>\n                            <div class=\"infoArea\">\n                                <label class=\"eventName\" (click)=\"toggleTitle(spanErrorInfo)\">{{list.name | translate}}</label>\n                                <span class=\"eventTarget\">{{list.data.name}}</span><span class=\"eventTime\">{{list.timeDiff | translate}}</span>\n                                <span #spanErrorInfo class=\"eventErrorInf\" style=\"display: none;\">{{list.data.errorInf}}</span>\n                            </div>\n                        </div>\n                    </clr-tab-content>\n                </clr-tab>\n                <clr-tab>\n                    <button clrTabLink (click)=\"TabEvent()\">{{'OPERATION.FAILED' | translate}}</button>\n                    <clr-tab-content id=\"contentFailed\" *clrIfActive>\n                        <div class=\"eventInfo\" *ngFor=\"let list of failLists\">\n                            <div class=\"iconsArea\">\n                                <i class=\"spinner spinner-inline spinner-pos\" [hidden]=\"list.state != 'progressing'\"></i>\n                                <clr-icon [hidden]=\"list.state != 'success'\" size=\"18\" shape=\"success-standard\" style=\"color: green\"></clr-icon>\n                                <clr-icon [hidden]=\"list.state != 'failure'\" size=\"18\"  shape=\"error-standard\" style=\"color: red\"></clr-icon>\n                            </div>\n                            <div class=\"infoArea\">\n                                <label class=\"eventName\" (click)=\"toggleTitle(spanErrorInfo)\">{{list.name | translate}}</label>\n                                <span class=\"eventTarget\">{{list.data.name}}</span><span class=\"eventTime\">{{list.timeDiff | translate}}</span>\n                                <span #spanErrorInfo class=\"eventErrorInf\" style=\"display: none;\">{{list.data.errorInf}}</span>\n                            </div>\n                        </div>\n                    </clr-tab-content>\n                </clr-tab>\n            </clr-tabs>\n        </div>\n    </div>\n</div>\n\n","styles":[".side-form{position:absolute;width:325px;height:100%;left:28px;padding-top:20px;background:#fff;border-left:1px solid #e0e0e0}.eventInfo{display:flex;justify-content:flex-start;align-content:flex-start;padding:8px 5px 8px 10px;border-bottom:1px solid #ccc}.iconsArea{flex-shrink:1}.infoArea{margin-left:10px;width:270px}.eventName{display:block;margin-bottom:-5px;font-size:16px;color:#0b7fbd}.eventErrorInf{display:block;font-size:12px;color:red;line-height:.6rem}.eventTarget{display:inline-flex;width:172px;font-size:12px;flex-shrink:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.eventTime{float:right;font-size:12px}:host>>>.nav{padding-left:38px}.operDiv{position:fixed;top:60px;right:0;z-index:100}.toolBar{float:left;border-top:1px solid #ccc;-webkit-transform:rotate(-90deg);transform:rotate(-90deg);margin-top:10px;padding:2px 4px;width:86px;height:84px;background-color:#fff;letter-spacing:1.2px;font-weight:500;box-shadow:-2px -1px 3px #bebbbb;cursor:pointer;text-align:center;text-decoration:none}.freshIcon{float:right;margin-right:20px;margin-top:-10px;cursor:pointer}#contentAll,#contentFailed,#contentRun{position:absolute;top:95px;bottom:0;width:100%;overflow-y:auto}"],"animations":[{"__symbolic":"reference","name":"SlideInOutAnimation"}]}]}],"members":{"beforeUnloadHander":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":83,"character":3},"arguments":["window:beforeunload",["$event"]]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"OperationService"},{"__symbolic":"reference","module":"@ngx-translate/core","name":"TranslateService","line":92,"character":23}]}],"ngOnInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"toggleTitle":[{"__symbolic":"method"}],"slideOut":[{"__symbolic":"method"}],"openSlide":[{"__symbolic":"method"}],"TabEvent":[{"__symbolic":"method"}],"calculateTime":[{"__symbolic":"method"}],"translateTime":[{"__symbolic":"method"}]}},"OperateInfo":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor"}]}},"operateChanges":{"__symbolic":"function"},"OperationState":{"progressing":"progressing","success":"success","failure":"failure","interrupt":"interrupt"},"OperationService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":6,"character":1}}],"members":{"publishInfo":[{"__symbolic":"method"}]}},"FadeInAnimation":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"trigger","line":5,"character":4},"arguments":["FadeInAnimation",[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"transition","line":8,"character":8},"arguments":[":enter",[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"style","line":11,"character":12},"arguments":[{"opacity":0}]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"animate","line":14,"character":12},"arguments":[".3s",{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"style","line":14,"character":27},"arguments":[{"opacity":1}]}]}]]}]]},"SlideInOutAnimation":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"trigger","line":5,"character":4},"arguments":["SlideInOutAnimation",[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"state","line":8,"character":8},"arguments":["in",{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"style","line":8,"character":20},"arguments":[{"position":"fix","right":0,"width":"350px","bottom":0}]}]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"state","line":16,"character":8},"arguments":["out",{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"style","line":16,"character":21},"arguments":[{"position":"fix","width":"30px","bottom":0}]}]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"transition","line":24,"character":8},"arguments":["out => in",[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"animate","line":26,"character":12},"arguments":[".5s ease-in-out",{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"style","line":26,"character":39},"arguments":[{"width":"350px"}]}]}]]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"transition","line":36,"character":8},"arguments":["in => out",[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"animate","line":38,"character":12},"arguments":[".5s ease-in-out",{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"style","line":38,"character":39},"arguments":[{"width":"30px"}]}]}]]}]]},"HELMCHART_DIRECTIVE":[{"__symbolic":"reference","name":"HelmChartComponent"},{"__symbolic":"reference","name":"ChartVersionComponent"},{"__symbolic":"reference","name":"ChartDetailComponent"},{"__symbolic":"reference","name":"ChartDetailSummaryComponent"},{"__symbolic":"reference","name":"ChartDetailDependencyComponent"},{"__symbolic":"reference","name":"ChartDetailValueComponent"}],"HelmChartComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":21,"character":1},"arguments":[{"selector":"hbr-helm-chart","template":"<div>\n    <div class=\"row chart-tool\">\n        <div class=\"toolbar\">\n            <div class=\"row flex-items-xs-right option-right rightPos\">\n                <div class=\"flex-xs-middle\">\n                    <hbr-filter [withDivider]=\"true\" filterPlaceholder=\"{{'HELM_CHART.FILTER_FOR_CHARTS' | translate}}\"\n                    [currentValue]=\"lastFilteredChartName\"\n                    (filterEvt)=\"updateFilterValue($event)\"></hbr-filter>\n                    <span class=\"card-btn\" (click)=\"showCard(true)\" (mouseenter)=\"mouseEnter('card') \" (mouseleave)=\"mouseLeave('card')\">\n                        <clr-icon [ngClass]=\"{'is-highlight': isCardView || isHovering('card') }\" shape=\"view-cards\"></clr-icon>\n                    </span>\n                    <span class=\"list-btn\" (click)=\"showCard(false)\" (mouseenter)=\"mouseEnter('list') \" (mouseleave)=\"mouseLeave('list')\">\n                        <clr-icon [ngClass]=\"{'is-highlight': !isCardView || isHovering('list') }\" shape=\"view-list\"></clr-icon>\n                    </span>\n                    <span class=\"filter-divider\"></span>\n                    <span class=\"refresh-btn\" (click)=\"refresh()\">\n                        <clr-icon shape=\"refresh\"></clr-icon>\n                    </span>\n                </div>\n            </div>\n        </div>\n    </div>\n    <div class=\"row\">\n        <div *ngIf=\"!isCardView\" class=\"col-lg-12 col-md-12 col-sm-12 col-xs-12\">\n            <clr-datagrid (clrDgRefresh)=\"refresh()\" [clrDgLoading]=\"loading\" [(clrDgSelected)]=\"selectedRows\">\n                <clr-dg-action-bar>\n                    <button type=\"button\" class=\"btn btn-sm btn-secondary\" [disabled]=\"!developerRoleOrAbove\" (click)=\"onChartUpload()\">\n                            <clr-icon shape=\"upload\" size=\"16\"></clr-icon>&nbsp;{{'HELM_CHART.UPLOAD' | translate}}\n                    </button>\n                </clr-dg-action-bar>\n                <clr-dg-column >{{'HELM_CHART.NAME' | translate}}</clr-dg-column>\n                <clr-dg-column >{{'HELM_CHART.STATUS' | translate}}</clr-dg-column>\n                <clr-dg-column>{{'HELM_CHART.CHARTVERSIONS' | translate}}</clr-dg-column>\n                <clr-dg-column>{{'HELM_CHART.CREATED' | translate}}</clr-dg-column>\n                <clr-dg-placeholder>{{'HELM_CHART.PLACEHOLDER' | translate }}</clr-dg-placeholder>\n                <clr-dg-row *ngFor=\"let chart of charts\" [clrDgItem]=\"chart\">\n                    <clr-dg-cell>\n                        <span class=\"list-img\">\n                           <img  class=\"size-24 margin-right-12\" [src]=\"chart.icon ?chart.icon:chartDefaultIcon\"  (error)=\"getDefaultIcon(chart);\" />\n                        </span>\n                        <a href=\"javascript:void(0)\" (click)=\"onChartClick(chart)\">{{ chart.name }}</a>\n                    </clr-dg-cell>\n                    <clr-dg-cell>{{ getStatusString(chart) | translate }}</clr-dg-cell>\n                    <clr-dg-cell>{{ chart.total_versions }}</clr-dg-cell>\n                    <clr-dg-cell>{{ chart.created | date }}</clr-dg-cell>\n                </clr-dg-row>\n                <clr-dg-footer>\n                    <clr-dg-pagination #pagination [clrDgPageSize]=\"pageSize\" [clrDgTotalItems]=\"totalCount\">\n                        <span *ngIf=\"pagination.totalItems\">\n                            {{pagination.firstItem + 1}} - {{pagination.lastItem + 1}} {{'HELM_CHART.OF' | translate}}\n                        </span>\n                        {{pagination.totalItems}} {{'HELM_CHART.ITEMS'| translate}}\n                    </clr-dg-pagination>\n                </clr-dg-footer>\n            </clr-datagrid>\n        </div>\n    </div>\n    <div *ngIf=\"isCardView\" class=\"row card-container\">\n        <div *ngFor=\"let item of charts;\" class=\"chart-card\">\n            <a let i=index; class=\"card clickable\" (click)=\"onChartClick(item)\">\n                <div class=\"card-header\">\n                    <div class=\"card-icon\">\n                        <img  class=\"size-60\" [src]=\"item.icon ?item.icon:chartDefaultIcon\"  (error)=\"getDefaultIcon(item);\" />\n                    </div>\n                    <div class=\"card-title\">{{item.name}}</div>\n                </div>\n                <div class=\"card-footer\">\n                    <div class=\"row flex-items-xs-between\">\n                        <div>\n                            <span class=\"version-text\">{{item.total_versions}}</span>\n                            <label class=\"card-label\" *ngIf=\"item.total_versions !== 1\">{{'HELM_CHART.CHARTVERSIONS' | translate}}</label>\n                            <label class=\"card-label\" *ngIf=\"item.total_versions === 1\">{{'HELM_CHART.VERSION' | translate}}</label>\n                        </div>\n                        <div>\n                            <span class=\"label\"\n                            [class.label-danger]=\"item.deprecated\"\n                            [class.label-success]=\"!item.deprecated\"\n                            >{{getStatusString(item) | translate}}</span>\n                        </div>\n                    </div>\n                </div>\n            </a>\n        </div>\n        <div *ngIf=\"loading\">\n            <span class=\"vertical-helper\"></span>\n            <span class=\"spinner\"></span>\n        </div>\n    </div>\n    <clr-modal [(clrModalOpen)]=\"isUploadModalOpen\" [clrModalStaticBackdrop]=\"true\" [clrModalClosable]=\"false\">\n        <h3 class=\"modal-title\">{{'HELM_CHART.UPLOAD_TITLE' | translate | titlecase}}</h3>\n        <div class=\"modal-body\">\n            <form #chartUploadForm=\"ngForm\" enctype=\"multipart/form-data\" (ngSubmit)=\"upload()\">\n                <section class=\"form-block\">\n                    <div class=\"form-group\">\n                        <label class=\"filename-label\"> {{'HELM_CHART.CHART_FILE' | translate}} </label>\n                        <input class=\"filename-input\" type=\"text\" placeholder=\"{{this.chartFile?.name || 'BUTTON.NO_FILE' | translate}}\" disabled>\n                        <label for=\"chart\" class=\"btn btn-secondary btn-sm file-browser-btn\">{{'BUTTON.BROWSE' | translate}}</label>\n                        <input class=\"file-input\" type=\"file\" id=\"chart\" name=\"chart\" ngModel (change)=\"onChartFileChangeEvent($event)\">\n                    </div>\n                    <div class=\"form-group\">\n                        <label class=\"filename-label\"> {{'HELM_CHART.CHART_PROV' | translate}} </label>\n                        <input class=\"filename-input\" type=\"text\" placeholder=\"{{this.provFile?.name || 'BUTTON.NO_FILE' | translate}}\" disabled>\n                        <label for=\"prov\" class=\"btn btn-secondary btn-sm file-browser-btn\">{{'BUTTON.BROWSE' | translate}}</label>\n                        <input class=\"file-input\" type=\"file\" id=\"prov\" name=\"prov\" ngModel (change)=\"onProvFileChangeEvent($event)\">\n                    </div>\n                </section>\n                <div class=\"row flex-items-xs-right\">\n                    <button class=\"btn btn-secondary\" [disabled]=\"isUploading\" (click)=\"cancelUpload()\">\n                        <span>{{'BUTTON.CANCEL' | translate}}</span>\n                    </button>\n                    <button type=\"submit\" class=\"btn btn-primary\" [disabled]=\"isUploading\">\n                        <span>{{'HELM_CHART.UPLOAD' | translate}}</span>\n                        <span *ngIf=\"isUploading\" class=\"spinner spinner-inline\">\n                            Loading...\n                        </span>\n                    </button>\n                </div>\n            </form>\n        </div>\n    </clr-modal>\n</div>","styles":[".chart-tool{position:relative}.chart-tool .toolbar{overflow:hidden}.chart-tool .toolbar .rightPos{position:absolute;z-index:100;right:35px;margin-top:4px}.chart-tool .toolbar .rightPos .filter-divider{display:inline-block;height:16px;width:2px;background-color:#ccc;padding-top:12px;padding-bottom:12px;position:relative;top:9px;margin-right:6px;margin-left:6px}.card-container{margin-top:21px}.card-container .chart-card{width:200px;margin:10px}.card-container .card-header .card-icon{display:flex;justify-content:center;align-items:center}.card-container .card-header .card-title{overflow:hidden;text-overflow:ellipsis;word-wrap:break-word;white-space:nowrap;text-align:center;margin:15px}.card-container .card-footer{background-color:#d7d7d7}.card-container .card-footer .version-text{font-size:1.1rem}.card-container .card-footer .card-label{width:60px;display:inline-block}.vertical-helper{display:inline-block;height:100%;vertical-align:middle}.size-24{width:24px;height:24px}.size-60{height:60px;max-width:100%}.margin-right-12{margin-right:12px}.file-input{display:none}.filename-span{overflow:hidden;text-overflow:ellipsis;word-wrap:break-word;white-space:nowrap;display:inline-block;width:50%;vertical-align:top}clr-modal .form-group{padding-left:6rem}clr-modal .form-group .filename-label{padding-top:9px}clr-modal .form-group .filename-input{margin-top:12px;width:68%}clr-modal .form-group .file-browser-btn{margin-left:15px;max-width:25%}"],"changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":145,"character":19},"member":"OnPush"}}]}],"members":{"projectId":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":149,"character":3}}]}],"projectName":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":150,"character":3}}]}],"urlPrefix":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":151,"character":3}}]}],"hasSignedIn":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":152,"character":3}}]}],"projectRoleID":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":153,"character":3}}]}],"hasProjectAdminRole":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":154,"character":3}}]}],"chartClickEvt":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":155,"character":3}}]}],"chartDownloadEve":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":156,"character":3}}]}],"chartDefaultIcon":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":157,"character":3}}]}],"uploadForm":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":182,"character":3},"arguments":["chartUploadForm"]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ErrorHandler"},{"__symbolic":"reference","module":"@ngx-translate/core","name":"TranslateService","line":186,"character":30},{"__symbolic":"reference","name":"SystemInfoService"},{"__symbolic":"reference","name":"HelmChartService"},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":189,"character":17}]}],"ngOnInit":[{"__symbolic":"method"}],"updateFilterValue":[{"__symbolic":"method"}],"refresh":[{"__symbolic":"method"}],"onChartClick":[{"__symbolic":"method"}],"resetUploadForm":[{"__symbolic":"method"}],"onChartUpload":[{"__symbolic":"method"}],"cancelUpload":[{"__symbolic":"method"}],"upload":[{"__symbolic":"method"}],"onChartFileChangeEvent":[{"__symbolic":"method"}],"onProvFileChangeEvent":[{"__symbolic":"method"}],"showCard":[{"__symbolic":"method"}],"mouseEnter":[{"__symbolic":"method"}],"mouseLeave":[{"__symbolic":"method"}],"isHovering":[{"__symbolic":"method"}],"getDefaultIcon":[{"__symbolic":"method"}],"getStatusString":[{"__symbolic":"method"}]}},"ChartVersionComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":39,"character":1},"arguments":[{"selector":"hbr-helm-chart-version","template":"<div>\n    <div class=\"row flex-items-xs-between\">\n        <div class=\"col-xs-4\">\n            <div class=\"title-container\">\n                <div class=\"chart-name-span\">\n                    {{chartName | translate}}\n                </div>\n                <div>\n                    {{roleName | translate}}\n                </div>\n            </div>\n        </div>\n    </div>\n\n    <div class=\"row version-tool\">\n        <div class=\"toolbar\">\n            <div class=\"row flex-items-xs-right option-right rightPos\">\n                <div class=\"flex-xs-middle\">\n                    <hbr-filter [withDivider]=\"true\" filterPlaceholder=\"{{'HELM_CHART.FILTER_FOR_CHARTS' | translate}}\"\n                    [currentValue]=\"lastFilteredVersionName\"\n                    (filterEvt)=\"updateFilterValue($event)\"></hbr-filter>\n                    <span class=\"card-btn\" (click)=\"showCard(true)\" (mouseenter)=\"mouseEnter('card') \" (mouseleave)=\"mouseLeave('card')\">\n                        <clr-icon [ngClass]=\"{'is-highlight': isCardView || isHovering('card') }\" shape=\"view-cards\"></clr-icon>\n                    </span>\n                    <span class=\"list-btn\" (click)=\"showCard(false)\" (mouseenter)=\"mouseEnter('list') \" (mouseleave)=\"mouseLeave('list')\">\n                        <clr-icon [ngClass]=\"{'is-highlight': !isCardView || isHovering('list') }\" shape=\"view-list\"></clr-icon>\n                    </span>\n                    <span class=\"filter-divider\"></span>\n                    <span class=\"refresh-btn\" (click)=\"refresh()\">\n                        <clr-icon shape=\"refresh\"></clr-icon>\n                    </span>\n                </div>\n            </div>\n        </div>\n    </div>\n    <div class=\"row\">\n        <div *ngIf=\"!isCardView\" class=\"col-lg-12 col-md-12 col-sm-12 col-xs-12\">\n            <clr-datagrid (clrDgRefresh)=\"refresh()\" [clrDgLoading]=\"loading\" [(clrDgSelected)]=\"selectedRows\">\n                <clr-dg-action-bar>\n                    <button type=\"button\" class=\"btn btn-sm btn-secondary\"\n                    [disabled]=\"!(selectedRows.length===1)\"\n                    (click)=\"versionDownload()\">\n                        <clr-icon shape=\"download\" size=\"16\"></clr-icon>&nbsp;{{'HELM_CHART.DOWNLOAD' | translate}}</button>\n                    <button type=\"button\" class=\"btn btn-sm btn-secondary\"\n                    [disabled]=\"selectedRows.length<=0 || !hasProjectAdminRole\"\n                    (click)=\"openVersionDeleteModal(selectedRows)\">\n                        <clr-icon shape=\"times\" size=\"16\"></clr-icon>&nbsp;{{'BUTTON.DELETE' | translate}}</button>\n                </clr-dg-action-bar>\n                <clr-dg-column>{{'HELM_CHART.VERSION' | translate}}</clr-dg-column>\n                <clr-dg-column>{{'HELM_CHART.STATUS' | translate }}</clr-dg-column>\n                <clr-dg-column>{{'HELM_CHART.ENGINE' | translate }}</clr-dg-column>\n\n                <clr-dg-column>{{'HELM_CHART.MAINTAINERS' | translate }}</clr-dg-column>\n                <clr-dg-column>{{'HELM_CHART.CREATED' | translate }}</clr-dg-column>\n                <clr-dg-placeholder>{{'HELM_CHART.NO_VERSION_PLACEHOLDER' | translate }}</clr-dg-placeholder>\n                <clr-dg-row *ngFor=\"let v of chartVersions\" [clrDgItem]=\"v\">\n                    <clr-dg-cell>\n                        <span class=\"list-img\">\n                            <img  [src]=\"v.icon ?v.icon:chartDefaultIcon\"  (error)=\"getDefaultIcon(v);\" />\n                        </span>\n                        <a href=\"javascript:void(0)\" (click)=\"onVersionClick(v)\">{{ v.version }}</a>\n                    </clr-dg-cell>\n                    <clr-dg-cell>{{ getStatusString(v) | translate }}</clr-dg-cell>\n                    <clr-dg-cell>{{ v.engine }}</clr-dg-cell>\n                    <clr-dg-cell>{{ getMaintainerString(v.maintainers) }}</clr-dg-cell>\n                    <clr-dg-cell>{{ v.created | date}}</clr-dg-cell>\n                </clr-dg-row>\n                <clr-dg-footer>\n                    <clr-dg-pagination #pagination [clrDgPageSize]=\"pageSize\" [clrDgTotalItems]=\"totalCount\">\n                        <span *ngIf=\"pagination.totalItems\">\n                            {{pagination.firstItem + 1}} - {{pagination.lastItem + 1}} {{'HELM_CHART.OF' | translate}}\n                        </span>\n                        {{pagination.totalItems}} {{'HELM_CHART.ITEMS'| translate}}\n                    </clr-dg-pagination>\n                </clr-dg-footer>\n            </clr-datagrid>\n        </div>\n    </div>\n    <div *ngIf=\"isCardView\" class=\"row card-container\">\n        <div *ngFor=\"let item of chartVersions;\" class=\"col-lg-3 col-md-4 col-sm-6\">\n            <a let i=index; class=\"card clickable\" (click)=\"onVersionClick(item)\">\n                <div class=\"card-header\">\n                    <div class=\"card-media-block\">\n                        <img  [src]=\"item.icon ?item.icon:chartDefaultIcon\"  (error)=\"getDefaultIcon(item);\" />\n                        <div class=\"card-media-description\">\n                            <span class=\"card-media-title\">{{item.name}}</span>\n                            <a class=\"card-media-text\">{{item.home}}</a>\n                        </div>\n                    </div>\n                </div>\n                <div class=\"card-block\">\n                    <div class=\"form-group\">\n                        <label class=\"card-label\">{{'HELM_CHART.STATUS' | translate}}</label>\n                        <div>{{getStatusString(item) | translate}}</div>\n                    </div>\n                    <div class=\"form-group\">\n                        <label class=\"card-label\">{{'HELM_CHART.ENGINE' | translate}}</label>\n                        <div>{{item.engine}}</div>\n                    </div>\n                    <div class=\"form-group\">\n                        <label class=\"card-label\">{{'HELM_CHART.MAINTAINERS' | translate}}</label>\n                        <div>{{getMaintainerString(item.maintainers)}}</div>\n                    </div>\n                    <div class=\"form-group\">\n                        <label class=\"card-label\">{{'HELM_CHART.VERSION' | translate}}</label>\n                        <div>{{item.version}}</div>\n                    </div>\n                </div>\n                <div class=\"card-footer\">\n                    <clr-dropdown [clrCloseMenuOnItemClick]=\"false\">\n                        <button type=\"button\" class=\"btn btn-link\"\n                        (click)=\"versionDownload($event, item)\">{{'HELM_CHART.DOWNLOAD' | translate}}</button>\n                        <button type=\"button\" class=\"btn btn-link\"\n                        [disabled]=\"selectedRows.length<=0 || !hasProjectAdminRole\"\n                        (click)=\"deleteVersionCard($event, item)\">{{'BUTTON.DELETE' | translate}}</button>\n                    </clr-dropdown>\n                </div>\n            </a>\n        </div>\n        <div *ngIf=\"loading\">\n            <span class=\"vertical-helper\"></span>\n            <span class=\"spinner\"></span>\n        </div>\n    </div>\n    <confirmation-dialog #confirmationDialog (confirmAction)=\"confirmDeletion($event)\"></confirmation-dialog>\n</div>","styles":[".title-container{display:flex}.title-container .chart-name-span{border-right:1px solid gray;font-size:27px;font-weight:400;padding-right:9px;margin-right:9px}.version-tool{position:relative}.version-tool .toolbar{overflow:hidden}.version-tool .toolbar .rightPos{position:absolute;z-index:100;right:35px;margin-top:4px}.version-tool .toolbar .rightPos .filter-divider{display:inline-block;height:16px;width:2px;background-color:#ccc;padding-top:12px;padding-bottom:12px;position:relative;top:9px;margin-right:6px;margin-left:6px}.card-container{margin-top:21px}.card-container .card-header .card-media-block img{height:45px;width:45px}.card-container .card-header .card-media-block .card-media-description{width:80%;height:45px}.card-container .card-header .card-media-block .card-media-description .card-media-title{overflow:hidden;height:24px}.card-container .card-header .card-media-block .card-media-description .card-media-text{font-size:.8em;color:#007cbb;overflow:hidden;text-overflow:ellipsis;word-wrap:break-word;white-space:nowrap;height:20px}.card-container .card-block{font-size:.9em;min-height:100px;margin-top:0}.card-container .card-block .form-group{display:flex}.card-container .card-block .form-group label{width:100px;color:#aaa}.card-container .card-footer{padding-top:6px;padding-bottom:6px}.list-img img{height:24px;width:24px;margin-right:12px}.vertical-helper{display:inline-block;height:100%;vertical-align:middle}"],"changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":168,"character":19},"member":"OnPush"}}]}],"members":{"projectName":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":172,"character":3}}]}],"chartName":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":173,"character":3}}]}],"roleName":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":174,"character":3}}]}],"hasSignedIn":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":175,"character":3}}]}],"hasProjectAdminRole":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":176,"character":3}}]}],"chartDefaultIcon":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":177,"character":3}}]}],"versionClickEvt":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":178,"character":3}}]}],"backEvt":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":179,"character":3}}]}],"confirmationDialog":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":201,"character":3},"arguments":["confirmationDialog"]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ErrorHandler"},{"__symbolic":"reference","module":"@ngx-translate/core","name":"TranslateService","line":206,"character":30},{"__symbolic":"reference","name":"SystemInfoService"},{"__symbolic":"reference","name":"HelmChartService"},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":209,"character":17},{"__symbolic":"reference","name":"OperationService"}]}],"ngOnInit":[{"__symbolic":"method"}],"updateFilterValue":[{"__symbolic":"method"}],"refresh":[{"__symbolic":"method"}],"getMaintainerString":[{"__symbolic":"method"}],"onVersionClick":[{"__symbolic":"method"}],"deleteVersion":[{"__symbolic":"method"}],"deleteVersions":[{"__symbolic":"method"}],"versionDownload":[{"__symbolic":"method"}],"showCard":[{"__symbolic":"method"}],"mouseEnter":[{"__symbolic":"method"}],"mouseLeave":[{"__symbolic":"method"}],"isHovering":[{"__symbolic":"method"}],"onChartFileChangeEvent":[{"__symbolic":"method"}],"onProvFileChangeEvent":[{"__symbolic":"method"}],"deleteVersionCard":[{"__symbolic":"method"}],"openVersionDeleteModal":[{"__symbolic":"method"}],"confirmDeletion":[{"__symbolic":"method"}],"getImgLink":[{"__symbolic":"method"}],"getDefaultIcon":[{"__symbolic":"method"}],"getStatusString":[{"__symbolic":"method"}]}},"ChartDetailComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":14,"character":1},"arguments":[{"selector":"hbr-chart-detail","template":"<div>\n    <div class=\"flex-container\">\n        <div class=\"title-container\">\n            <div class=\"chart-name\">\n                {{chartNameWithVersion | translate}}\n            </div>\n            <div>\n                {{roleName | translate}}\n            </div>\n        </div>\n        <div>\n            <button class=\"btn btn-sm btn-secondary\"\n            (click)=\"downloadChart()\">{{'HELM_CHART.DOWNLOAD' | translate}}</button>\n        </div>\n    </div>\n    <span *ngIf=\"loading\" class=\"spinner spinner-lg detail-loading\">\n        Loading...\n    </span>\n    <div *ngIf=\"!loading && isChartExist\">\n        <clr-tabs>\n            <clr-tab>\n                <button clrTabLink id=\"summary-link\">{{'HELM_CHART.SUMMARY' | translate}}</button>\n                <clr-tab-content id=\"summary-content\" *clrIfActive>\n                    <hbr-chart-detail-summary\n                    [summary]=\"chartDetail.metadata\"\n                    [chartName]=\"chartName\"\n                    [repoURL]=\"repoURL\"\n                    [projectName]=\"project.name\"\n                    [chartVersion]=\"chartVersion\"\n                    [security]=\"chartDetail.security\"\n                    [readme]=\"chartDetail.files['README.md']\"></hbr-chart-detail-summary>\n                </clr-tab-content>\n            </clr-tab>\n            <clr-tab>\n                <button clrTabLink id=\"depend-link\">{{'HELM_CHART.DEPENDENCIES' | translate}}</button>\n                <clr-tab-content id=\"depend-content\">\n                    <hbr-chart-detail-dependency [dependencies]='chartDetail.dependencies'></hbr-chart-detail-dependency>\n                </clr-tab-content>\n            </clr-tab>\n            <clr-tab>\n                <button clrTabLink id=\"value-link\">{{'HELM_CHART.VALUES' | translate}}</button>\n                <clr-tab-content id=\"value-content\">\n                    <hbr-chart-detail-value\n                    [values]=\"chartDetail.values\"\n                    [yaml]=\"chartDetail.files['values.yaml']\"></hbr-chart-detail-value>\n                </clr-tab-content>\n            </clr-tab>\n        </clr-tabs>\n    </div>\n    <div *ngIf=\"!loading && !isChartExist\">\n        <h6>{{'HELM_CHART.NO_DETAIL' | translate }}</h6>\n    </div>\n\n</div>","styles":[".title-container{display:flex}.title-container .chart-name{border-right:1px solid gray;font-size:27px;font-weight:400;padding-right:9px;margin-right:9px}.detail-loading{position:absolute;top:0;left:0;right:0;bottom:0;margin:auto;width:108px!important;height:108px!important}.flex-container{display:flex;-webkit-display:flex;justify-content:space-between}.flex-container .title-container{display:flex;align-items:center}"],"changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":71,"character":19},"member":"OnPush"}}]}],"members":{"projectId":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":74,"character":3}}]}],"project":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":75,"character":3}}]}],"chartName":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":76,"character":3}}]}],"chartVersion":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":77,"character":3}}]}],"roleName":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":78,"character":3}}]}],"hasSignedIn":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":79,"character":3}}]}],"hasProjectAdminRole":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":80,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ErrorHandler"},{"__symbolic":"reference","name":"SystemInfoService"},{"__symbolic":"reference","name":"HelmChartService"},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":93,"character":17}]}],"ngOnInit":[{"__symbolic":"method"}],"refresh":[{"__symbolic":"method"}],"downloadChart":[{"__symbolic":"method"}]}},"ChartDetailSummaryComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":12,"character":1},"arguments":[{"selector":"hbr-chart-detail-summary","template":"<div class=\"row\">\n    <div class=\"col-md-12\">\n        <p>{{summary.description}}</p>\n    </div>\n</div>\n<div class=\"row content-wrapper\">\n    <div class=\"col-md-8 md-container\">\n        <div *ngIf=\"readme\" class=\"md-div\" [innerHTML]=\"readme | markdown\"></div>\n        <div *ngIf=\"!readme\">{{'HELM_CHART.NO_README' | translate}}</div>\n    </div>\n    <div class=\"col-md-4 summary-container\">\n        <div class=\"col-md-12 content-group\">\n            <div>\n                <label>{{'HELM_CHART.OVERVIEW' | translate }}</label>\n            </div>\n            <table class=\"table\">\n                <tbody>\n                    <tr>\n                        <td class=\"left\">{{'HELM_CHART.HOME' | translate }}</td>\n                        <td class=\"left text-wrapper\">\n                            <a href=\"{{summary.home}}\">{{summary.home}}</a>\n                        </td>\n                    </tr>\n                    <tr *ngFor=\"let src of summary.sources; let i = index\">\n                        <td class=\"left\" *ngIf=\"i === 0\">{{'HELM_CHART.SRC_REPO' | translate }}</td>\n                        <td class=\"left\" *ngIf=\"i !== 0\"></td>\n                        <td class=\"left text-wrapper\">\n                            <a href=\"{{src}}\">{{src}}</a>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td class=\"left\">{{'HELM_CHART.CREATED' | translate }}</td>\n                        <td class=\"left\">{{summary.created | date}}</td>\n                    </tr>\n                    <tr *ngFor=\"let maintainer of summary.maintainers; let i = index\">\n                        <td class=\"left\" *ngIf=\"i === 0\">{{'HELM_CHART.MAINTAINERS' | translate }}</td>\n                        <td class=\"left\" *ngIf=\"i !== 0\"></td>\n                        <td class=\"left\">\n                            <a href=\"mailto:{{maintainer.email}}\">{{maintainer.name}}</a>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td class=\"left\">{{'HELM_CHART.APP_VERSION' | translate }}</td>\n                        <td class=\"left\">{{ summary.appVersion }}</td>\n                    </tr>\n                </tbody>\n            </table>\n        </div>\n        <div class=\"col-md-12 content-group\">\n            <div>\n                <label>{{'HELM_CHART.COMMAND' | translate }}</label>\n            </div>\n            <table class=\"table\">\n                <tbody>\n                    <tr>\n                        <td class=\"left cmd-title\">{{'HELM_CHART.ADD_REPO' | translate }}</td>\n                        <td class=\"left cmd-content\">\n                            <input class=\"cmd-content\" type=\"text\"\n                            [(ngModel)]=\"addCMD\" #addCMDInput readonly/>\n                        </td>\n                        <td class=\"left\">\n                            <span>\n                                <clr-icon shape=\"copy\" size=\"24\"\n                                [class.is-success]=\"isCopied('add')\"\n                                [ngxClipboard]=\"addCMDInput\"\n                                (cbOnSuccess)=\"onCopySuccess($event, 'add')\"\n                                ></clr-icon>\n                            </span>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td class=\"left cmd-title\">{{'HELM_CHART.INSTALL_CHART' | translate }}</td>\n                        <td class=\"left\">\n                            <input class=\"cmd-content\" type=\"text\"\n                            [(ngModel)]=\"installCMD\" #installCMDInput readonly/>\n                        </td>\n                        <td class=\"left\">\n                            <span>\n                                <clr-icon shape=\"copy\" size=\"24\"\n                                [class.is-success]=\"isCopied('install')\"\n                                [ngxClipboard]=\"installCMDInput\"\n                                (cbOnSuccess)=\"onCopySuccess($event, 'install')\"\n                                ></clr-icon>\n                            </span>\n                        </td>\n                    </tr>\n                    <tr *ngIf=\"prov_ready\">\n                        <td class=\"left cmd-title\">{{'HELM_CHART.VERIFY_CHART' | translate }}</td>\n                        <td class=\"left\">\n                            <input class=\"cmd-content\" type=\"text\"\n                            [(ngModel)]=\"verifyCMD\" #verifyCMDInput readonly/>\n                        </td>\n                        <td class=\"left\">\n                            <span>\n                                <clr-icon shape=\"copy\" size=\"24\"\n                                [class.is-success]=\"isCopied('verify')\"\n                                [ngxClipboard]=\"verifyCMDInput\"\n                                (cbOnSuccess)=\"onCopySuccess($event, 'verify')\"\n                                ></clr-icon>\n                            </span>\n                        </td>\n                    </tr>\n                </tbody>\n            </table>\n        </div>\n\n        <div class=\"col-md-12 content-group\">\n            <div>\n                <label>{{'HELM_CHART.SECURITY' | translate }}</label>\n            </div>\n            <table class=\"table\">\n                <tbody>\n                    <tr>\n                        <td class=\"left\">{{'HELM_CHART.PROV_FILE' | translate }}</td>\n                        <div *ngIf=\"prov_ready;then signedContent else unsignedContent\"></div>\n                        <ng-template #signedContent>\n                            <td class=\"left\">\n                                <span class=\"content-icon\">\n                                    <clr-icon shape=\"shield-check\" class=\"is-success\"></clr-icon>\n                                </span>&nbsp;<a href=\"javascript:void(0)\" (click)=\"downloadChart()\">{{'HELM_CHART.READY' | translate }}</a>\n                            </td>\n                        </ng-template>\n                        <ng-template #unsignedContent>\n                            <td class=\"left\">\n                                <span class=\"content-icon\">\n                                    <clr-icon shape=\"shield-x\" class=\"is-error\"></clr-icon>\n                                </span>&nbsp;{{'HELM_CHART.NOT_READY' | translate }}</td>\n                        </ng-template>\n                    </tr>\n                </tbody>\n            </table>\n        </div>\n    </div>\n\n</div>","styles":[".content-wrapper{margin-top:20px;padding:0 0 0 15px}.content-wrapper .md-container{border:1px solid #ddd}.content-wrapper .summary-container{padding:0}.content-wrapper .summary-container table{background-color:#f2f2f2;margin-top:.5rem}.content-wrapper .summary-container .content-group{margin-bottom:30px}.content-wrapper .summary-container .content-icon{margin-right:6px}.content-wrapper .summary-container .text-wrapper{word-break:break-all}.content-wrapper .cmd-title{white-space:nowrap;vertical-align:middle}.content-wrapper .cmd-content{width:100%}"],"changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":150,"character":19},"member":"OnPush"}}]}],"members":{"summary":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":153,"character":3}}]}],"security":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":154,"character":3}}]}],"repoURL":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":155,"character":3}}]}],"projectName":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":156,"character":3}}]}],"chartName":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":157,"character":3}}]}],"chartVersion":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":158,"character":3}}]}],"readme":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":159,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ErrorHandler"},{"__symbolic":"reference","name":"HelmChartService"}]}],"ngOnInit":[{"__symbolic":"method"}],"isCopied":[{"__symbolic":"method"}],"onCopySuccess":[{"__symbolic":"method"}],"downloadChart":[{"__symbolic":"method"}]}},"ChartDetailDependencyComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":9,"character":1},"arguments":[{"selector":"hbr-chart-detail-dependency","template":"<div class=\"row flex-items-xs-center dep-container\">\n    <div class=\"col-md-12\">\n        <table class=\"table\">\n            <thead>\n                <tr>\n                    <th class=\"left\">{{'HELM_CHART.NAME' | translate}}</th>\n                    <th class=\"left\">{{'HELM_CHART.VERSION' | translate}}</th>\n                    <th class=\"left\">{{'HELM_CHART.REPO' | translate}}</th>\n                </tr>\n            </thead>\n            <tbody>\n                <tr *ngFor=\"let dep of dependencies\">\n                    <td class=\"left\">{{dep.name}}</td>\n                    <td class=\"left\">{{dep.version}}</td>\n                    <td class=\"left\"><a href=\"{{dep.repository}}\">{{dep.repository}}</a></td>\n                </tr>\n            </tbody>\n        </table>\n    </div>\n</div>","styles":[".dep-container{margin-top:30px}"],"changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":32,"character":19},"member":"OnPush"}}]}],"members":{"dependencies":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":35,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor"}],"ngOnInit":[{"__symbolic":"method"}]}},"ChartDetailValueComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":7,"character":1},"arguments":[{"selector":"hbr-chart-detail-value","template":"<div class=\"row flex-items-xs-between values-header\">\n    <div *ngIf=\"valueMode\" class=\"title-container\">\n        <label>{{'HELM_CHART.SHOW_KV' | translate }}</label>\n    </div>\n    <div *ngIf=\"!valueMode\" class=\"title-container\">\n        <label>{{'HELM_CHART.SHOW_YAML' | translate }}</label>\n    </div>\n    <div class=\"switch-container\">\n        <span class=\"card-btn\" (click)=\"showYamlFile(false)\" (mouseenter)=\"mouseEnter('value') \" (mouseleave)=\"mouseLeave('value')\">\n            <clr-icon size=\"24\" shape=\"view-list\" title='list values' [ngClass]=\"{'is-highlight': isValueMode || isHovering('value') }\"></clr-icon>\n        </span>\n        <span class=\"list-btn\" (click)=\"showYamlFile(true)\" (mouseenter)=\"mouseEnter('yaml') \" (mouseleave)=\"mouseLeave('yaml')\">\n            <clr-icon size=\"24\" shape=\"file\" title=\"yaml file\" [ngClass]=\"{'is-highlight': !isValueMode || isHovering('yaml') }\"></clr-icon>\n        </span>\n    </div>\n</div>\n\n<div class=\"row value-container\">\n    <div class=\"col-xs-8\" *ngIf=\"valueMode\">\n        <table class=\"table\">\n            <tbody>\n                <tr *ngFor=\"let key of objKeys(values)\">\n                    <td class=\"left\">{{key}}</td>\n                    <td class=\"left\">{{values[key]}}</td>\n                </tr>\n            </tbody>\n        </table>\n    </div>\n    <div class=\"col-xs-8\" *ngIf=\"!valueMode\">\n        <div class=\"yaml-container\" [innerHTML]=\"yaml | language : 'yaml' | markdown\"></div>\n    </div>\n</div>","styles":[".value-container ::ng-deep pre{min-height:-webkit-fit-content;min-height:-moz-fit-content;min-height:fit-content}.values-header{margin-top:12px}.values-header .title-container{margin-left:15px}.values-header .switch-container{margin-right:15px}pre{max-height:-webkit-max-content;max-height:-moz-max-content;max-height:max-content;padding-left:21px}"],"changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":42,"character":19},"member":"OnPush"}}]}],"members":{"values":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":45,"character":3}}]}],"yaml":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":46,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor"}],"ngOnInit":[{"__symbolic":"method"}],"isHovering":[{"__symbolic":"method"}],"showYamlFile":[{"__symbolic":"method"}],"mouseEnter":[{"__symbolic":"method"}],"mouseLeave":[{"__symbolic":"method"}]}},"ɵb":"harbor-lang","ɵc":["en-us","zh-cn","es-es","fr-fr"],"ɵd":"en-us","ɵe":{"__symbolic":"function"},"ɵf":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":40,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":42,"character":8},{"__symbolic":"reference","module":"@angular/http","name":"HttpModule","line":43,"character":8},{"__symbolic":"reference","module":"@angular/forms","name":"FormsModule","line":44,"character":8},{"__symbolic":"reference","module":"@angular/forms","name":"ReactiveFormsModule","line":45,"character":8},{"__symbolic":"reference","name":"ClipboardModule"},{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"ngx-cookie","name":"CookieModule","line":47,"character":8},"member":"forRoot"}},{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@clr/angular","name":"ClarityModule","line":48,"character":8},"member":"forRoot"}},{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"ngx-markdown","name":"MarkdownModule","line":49,"character":8},"member":"forRoot"}},{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@ngx-translate/core","name":"TranslateModule","line":50,"character":8},"member":"forRoot"},"arguments":[{"loader":{"provide":{"__symbolic":"reference","module":"@ngx-translate/core","name":"TranslateLoader","line":52,"character":25},"useFactory":{"__symbolic":"reference","name":"ɵe"},"deps":[{"__symbolic":"reference","module":"@angular/http","name":"Http","line":54,"character":23},{"__symbolic":"reference","name":"SERVICE_CONFIG"}]},"missingTranslationHandler":{"provide":{"__symbolic":"reference","module":"@ngx-translate/core","name":"MissingTranslationHandler","line":57,"character":25},"useClass":{"__symbolic":"reference","name":"ɵg"}}}]}],"exports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":63,"character":8},{"__symbolic":"reference","module":"@angular/http","name":"HttpModule","line":64,"character":8},{"__symbolic":"reference","module":"@angular/forms","name":"FormsModule","line":65,"character":8},{"__symbolic":"reference","module":"@angular/forms","name":"ReactiveFormsModule","line":66,"character":8},{"__symbolic":"reference","name":"ClipboardModule"},{"__symbolic":"reference","module":"@clr/angular","name":"ClarityModule","line":68,"character":8},{"__symbolic":"reference","module":"ngx-cookie","name":"CookieModule","line":69,"character":8},{"__symbolic":"reference","module":"ngx-markdown","name":"MarkdownModule","line":70,"character":8},{"__symbolic":"reference","module":"@ngx-translate/core","name":"TranslateModule","line":71,"character":8}],"providers":[{"__symbolic":"reference","module":"ngx-cookie","name":"CookieService","line":73,"character":16}]}]}],"members":{}},"ɵg":{"__symbolic":"class","members":{"handle":[{"__symbolic":"method"}]}},"ɵh":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":48,"character":1},"arguments":[{"selector":"hbr-endpoint","template":"<div>\n    <div class=\"row\"  style=\"position:relative;\">\n        <div>\n            <div class=\"row flex-items-xs-between rightPos\">\n                <div class=\"flex-items-xs-middle option-right\">\n                    <hbr-filter [withDivider]=\"true\" filterPlaceholder='{{\"REPLICATION.FILTER_TARGETS_PLACEHOLDER\" | translate}}' (filterEvt)=\"doSearchTargets($event)\" [currentValue]=\"targetName\"></hbr-filter>\n                    <span class=\"refresh-btn\" (click)=\"refreshTargets()\">\n                        <clr-icon shape=\"refresh\"></clr-icon>\n                    </span>\n                </div>\n            </div>\n        </div>\n        <div class=\"col-lg-12 col-md-12 col-sm-12 col-xs-12\">\n            <clr-datagrid [clrDgLoading]=\"loading\"  [(clrDgSelected)]=\"selectedRow\" (clrDgSelectedChange)=\"selectedChange()\">\n                <clr-dg-action-bar>\n                    <button type=\"button\" class=\"btn btn-sm btn-secondary\" (click)=\"openModal()\"><clr-icon shape=\"plus\" size=\"16\"></clr-icon>&nbsp;{{'DESTINATION.NEW_ENDPOINT' | translate}}</button>\n                    <button type=\"button\" class=\"btn btn-sm btn-secondary\" [disabled]=\"!(selectedRow.length ===1)\"  (click)=\"editTargets(selectedRow)\" ><clr-icon shape=\"pencil\" size=\"16\"></clr-icon>&nbsp;{{'DESTINATION.EDIT' | translate}}</button>\n                    <button type=\"button\" class=\"btn btn-sm btn-secondary\" [disabled]=\"!selectedRow.length\" (click)=\"deleteTargets(selectedRow)\"><clr-icon shape=\"times\" size=\"16\"></clr-icon>&nbsp;{{'DESTINATION.DELETE' | translate}}</button>\n                </clr-dg-action-bar>\n                <clr-dg-column [clrDgField]=\"'name'\">{{'DESTINATION.NAME' | translate}}</clr-dg-column>\n                <clr-dg-column [clrDgField]=\"'endpoint'\">{{'DESTINATION.URL' | translate}}</clr-dg-column>\n                <clr-dg-column [clrDgField]=\"'insecure'\">{{'CONFIG.VERIFY_REMOTE_CERT' | translate }}</clr-dg-column>\n                <clr-dg-column [clrDgSortBy]=\"creationTimeComparator\">{{'DESTINATION.CREATION_TIME' | translate}}</clr-dg-column>\n                <clr-dg-placeholder>{{'DESTINATION.PLACEHOLDER' | translate }}</clr-dg-placeholder>\n                <clr-dg-row *clrDgItems=\"let t of targets\" [clrDgItem]='t'>\n                    <clr-dg-cell>{{t.name}}</clr-dg-cell>\n                    <clr-dg-cell>{{t.endpoint}}</clr-dg-cell>\n                    <clr-dg-cell>\n                        {{!t.insecure}}\n                    </clr-dg-cell>\n                    <clr-dg-cell>{{t.creation_time | date: 'short'}}</clr-dg-cell>\n                </clr-dg-row>\n                <clr-dg-footer>\n                    <span *ngIf=\"pagination.totalItems\">{{pagination.firstItem + 1}} - {{pagination.lastItem + 1}} {{'DESTINATION.OF' | translate}}</span>\n                    {{pagination.totalItems}} {{'DESTINATION.ITEMS' | translate}}\n                    <clr-dg-pagination #pagination [clrDgPageSize]=\"15\"></clr-dg-pagination>\n                </clr-dg-footer>\n            </clr-datagrid>\n        </div>\n    </div>\n    <confirmation-dialog #confirmationDialog (confirmAction)=\"confirmDeletion($event)\"></confirmation-dialog>\n    <hbr-create-edit-endpoint (reload)=\"reload($event)\"></hbr-create-edit-endpoint>\n</div>","styles":[".option-left{padding-left:16px;margin-top:-6px}.option-right{padding-right:16px}.refresh-btn{cursor:pointer}.refresh-btn:hover{color:#007cbb}.rightPos{position:absolute;z-index:100;right:35px;margin-top:4px;height:24px}"],"changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":94,"character":21},"member":"OnPush"}}]}],"members":{"createEditEndpointComponent":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":97,"character":5},"arguments":[{"__symbolic":"reference","name":"ɵi"}]}]}],"confirmationDialogComponent":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":100,"character":5},"arguments":["confirmationDialog"]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"EndpointService"},{"__symbolic":"reference","name":"ErrorHandler"},{"__symbolic":"reference","module":"@ngx-translate/core","name":"TranslateService","line":132,"character":42},{"__symbolic":"reference","name":"OperationService"},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":134,"character":29}]}],"ngOnInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"selectedChange":[{"__symbolic":"method"}],"retrieve":[{"__symbolic":"method"}],"doSearchTargets":[{"__symbolic":"method"}],"refreshTargets":[{"__symbolic":"method"}],"reload":[{"__symbolic":"method"}],"openModal":[{"__symbolic":"method"}],"editTargets":[{"__symbolic":"method"}],"deleteTargets":[{"__symbolic":"method"}],"confirmDeletion":[{"__symbolic":"method"}],"delOperate":[{"__symbolic":"method"}],"forceRefreshView":[{"__symbolic":"method"}]}},"ɵi":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":35,"character":1},"arguments":[{"selector":"hbr-create-edit-endpoint","template":"<clr-modal [(clrModalOpen)]=\"createEditDestinationOpened\" [clrModalStaticBackdrop]=\"staticBackdrop\" [clrModalClosable]=\"closable\">\n  <h3 class=\"modal-title\">{{modalTitle}}</h3>\n  <hbr-inline-alert class=\"modal-title\" (confirmEvt)=\"confirmCancel($event)\"></hbr-inline-alert>\n  <div class=\"modal-body\">\n    <div class=\"alert alert-warning\" *ngIf=\"!editable\">\n      <div class=\"alert-item static\">\n        <span class=\"alert-text\">\n          {{'DESTINATION.CANNOT_EDIT' | translate}}\n        </span>\n      </div>\n    </div>\n    <form #targetForm=\"ngForm\">\n      <section class=\"form-block\">\n        <div class=\"form-group\">\n          <label for=\"destination_name\" class=\"col-md-4 form-group-label-override required\">{{ 'DESTINATION.NAME' | translate }}</label>\n          <label class=\"col-md-8\" for=\"destination_name\" aria-haspopup=\"true\" role=\"tooltip\" [class.invalid]=\"targetName.errors && (targetName.dirty || targetName.touched)\" [class.valid]=\"targetName.valid\" class=\"tooltip tooltip-validation tooltip-sm tooltip-bottom-left\">\n            <input type=\"text\" id=\"destination_name\" [disabled]=\"testOngoing\" [readonly]=\"!editable\" [(ngModel)]=\"target.name\" name=\"targetName\" size=\"20\" #targetName=\"ngModel\" required> \n            <span class=\"tooltip-content\" *ngIf=\"targetName.errors && targetName.errors.required && (targetName.dirty || targetName.touched)\">\n              {{ 'DESTINATION.NAME_IS_REQUIRED' | translate }}\n            </span>\n          </label>\n        </div>\n        <div class=\"form-group\">\n          <label for=\"destination_url\" class=\"col-md-4 form-group-label-override required\">{{ 'DESTINATION.URL' | translate }}</label>\n          <label class=\"col-md-8\" for=\"destination_url\" aria-haspopup=\"true\" role=\"tooltip\" [class.invalid]=\"targetEndpoint.errors && (targetEndpoint.dirty || targetEndpoint.touched)\" [class.valid]=\"targetEndpoint.valid\" class=\"tooltip tooltip-validation tooltip-sm tooltip-bottom-left\">\n            <input type=\"text\" id=\"destination_url\" [disabled]=\"testOngoing\" [readonly]=\"!editable\" [(ngModel)]=\"target.endpoint\" size=\"20\" name=\"endpointUrl\" #targetEndpoint=\"ngModel\" required placeholder=\"http(s)://192.168.1.1\">\n            <span class=\"tooltip-content\" *ngIf=\"targetEndpoint.errors && targetEndpoint.errors.required && (targetEndpoint.dirty || targetEndpoint.touched)\">\n              {{ 'DESTINATION.URL_IS_REQUIRED' | translate }}\n            </span>\n          </label>\n        </div>\n        <div class=\"form-group\">\n          <label for=\"destination_username\" class=\"col-md-4 form-group-label-override\">{{ 'DESTINATION.USERNAME' | translate }}</label>\n          <input type=\"text\" class=\"col-md-8\" id=\"destination_username\" [disabled]=\"testOngoing\" [readonly]=\"!editable\" [(ngModel)]=\"target.username\" size=\"20\" name=\"username\" #username=\"ngModel\">\n        </div>\n        <div class=\"form-group\">\n          <label for=\"destination_password\" class=\"col-md-4 form-group-label-override\">{{ 'DESTINATION.PASSWORD' | translate }}</label>\n          <input type=\"password\" class=\"col-md-8\" id=\"destination_password\" [disabled]=\"testOngoing\" [readonly]=\"!editable\" [(ngModel)]=\"target.password\" size=\"20\" name=\"password\" #password=\"ngModel\">\n        </div>\n        <div class=\"form-group\">\n          <label for=\"destination_insecure\" class=\"col-md-4 form-group-label-override\">{{'CONFIG.VERIFY_REMOTE_CERT' | translate }}</label>\n          <clr-checkbox #insecure name=\"insecure\" id=\"destination_insecure\" [clrDisabled]=\"testOngoing || !editable\" [clrChecked]=\"!target.insecure\" [clrInline]=\"true\" (clrCheckedChange)=\"setInsecureValue($event)\">\n          </clr-checkbox>\n          <clr-tooltip>\n            <clr-icon clrTooltipTrigger shape=\"info-circle\" size=\"24\"></clr-icon>\n            <clr-tooltip-content clrPosition=\"top-right\" clrSize=\"md\" *clrIfOpen>\n              {{'CONFIG.TOOLTIP.VERIFY_REMOTE_CERT' | translate}}\n            </clr-tooltip-content>\n          </clr-tooltip>\n        </div>\n        <div class=\"form-group\" style=\"height:30px;\">\n          <label for=\"spin\" class=\"col-md-4\"></label>\n          <span class=\"col-md-8 spinner spinner-inline\" [hidden]=\"!inProgress\"></span>\n        </div>\n      </section>\n    </form>\n  </div>\n  <div class=\"modal-footer\">\n      <button type=\"button\" class=\"btn btn-outline\" (click)=\"testConnection()\" [disabled]=\"inProgress || targetEndpoint.errors\">{{ 'DESTINATION.TEST_CONNECTION' | translate }}</button>\n      <button type=\"button\" class=\"btn btn-outline\" (click)=\"onCancel()\"  [disabled]=\"inProgress\">{{ 'BUTTON.CANCEL' | translate }}</button>\n      <button type=\"submit\" class=\"btn btn-primary\" (click)=\"onSubmit()\"  [disabled]=\"!isValid\">{{ 'BUTTON.OK' | translate }}</button>\n  </div>\n</clr-modal>","styles":[".form-group-label-override{font-size:14px;font-weight:400}clr-tooltip{top:3px;position:relative}"]}]}],"members":{"currentForm":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":114,"character":3},"arguments":["targetForm"]}]}],"inlineAlert":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":120,"character":3},"arguments":[{"__symbolic":"reference","name":"ɵj"}]}]}],"reload":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":122,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"EndpointService"},{"__symbolic":"reference","name":"ErrorHandler"},{"__symbolic":"reference","module":"@ngx-translate/core","name":"TranslateService","line":131,"character":30},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":132,"character":17}]}],"setInsecureValue":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"initEndpoint":[{"__symbolic":"method"}],"open":[{"__symbolic":"method"}],"close":[{"__symbolic":"method"}],"reset":[{"__symbolic":"method"}],"forceRefreshView":[{"__symbolic":"method"}],"openCreateEditTarget":[{"__symbolic":"method"}],"testConnection":[{"__symbolic":"method"}],"onSubmit":[{"__symbolic":"method"}],"addEndpoint":[{"__symbolic":"method"}],"updateEndpoint":[{"__symbolic":"method"}],"handleErrorMessageKey":[{"__symbolic":"method"}],"onCancel":[{"__symbolic":"method"}],"confirmCancel":[{"__symbolic":"method"}],"ngAfterViewChecked":[{"__symbolic":"method"}],"getChanges":[{"__symbolic":"method"}]}},"ɵj":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":21,"character":1},"arguments":[{"selector":"hbr-inline-alert","template":"<clr-alert [clrAlertType]=\"inlineAlertType\" [clrAlertClosable]=\"inlineAlertClosable\" [(clrAlertClosed)]=\"alertClose\" [clrAlertAppLevel]=\"useAppLevelStyle\">\n    <div class=\"alert-item\">\n        <span class=\"alert-text\" [class.alert-text-blink]=\"blinking\">\n            {{errorMessage}}\n        </span>\n        <div class=\"alert-actions\" *ngIf=\"showCancelAction\">\n            <button class=\"btn btn-sm btn-link alert-btn-link\" (click)=\"close()\">{{'BUTTON.NO' | translate}}</button>\n            <button class=\"btn btn-sm btn-link alert-btn-link\" (click)=\"confirmCancel()\">{{'BUTTON.YES' | translate}}</button>\n        </div>\n    </div>\n</clr-alert>","styles":[".alert-text-blink{color:red;font-weight:bolder}.alert-btn-link{padding:0!important;min-width:30px!important}.alert-item{text-align:center}:host>>>.alert-icon-wrapper{display:inline}"]}]}],"members":{"confirmEvt":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":47,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@ngx-translate/core","name":"TranslateService","line":49,"character":33}]}],"showInlineError":[{"__symbolic":"method"}],"showInlineConfirmation":[{"__symbolic":"method"}],"showInlineSuccess":[{"__symbolic":"method"}],"close":[{"__symbolic":"method"}],"blink":[{"__symbolic":"method"}],"confirmCancel":[{"__symbolic":"method"}]}},"ɵk":[{"__symbolic":"reference","name":"ɵl"}],"ɵl":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":22,"character":1},"arguments":[{"selector":"confirmation-dialog","template":"<clr-modal [(clrModalOpen)]=\"opened\" [clrModalClosable]=\"false\" [clrModalStaticBackdrop]=\"true\">\n    <h3 class=\"modal-title\" class=\"confirmation-title\" style=\"margin-top: 0px;\">{{dialogTitle}}</h3>\n    <div class=\"modal-body\">\n        <div class=\"confirmation-icon-inline\">\n            <clr-icon shape=\"warning\" class=\"is-warning\" size=\"64\"></clr-icon>\n        </div>\n        <div class=\"confirmation-content\">{{dialogContent}}</div>\n    </div>\n    <div class=\"modal-footer\" [ngSwitch]=\"buttons\">\n        <ng-template [ngSwitchCase]=\"0\">\n            <button type=\"button\" class=\"btn btn-outline\" (click)=\"cancel()\">{{'BUTTON.CANCEL' | translate}}</button>\n            <button type=\"button\" class=\"btn btn-primary\" (click)=\"confirm()\">{{'BUTTON.CONFIRM' | translate}}</button>\n        </ng-template>\n        <ng-template [ngSwitchCase]=\"1\">\n            <button type=\"button\" class=\"btn btn-outline\" (click)=\"cancel()\">{{'BUTTON.NO' | translate}}</button>\n            <button type=\"button\" class=\"btn btn-primary\" (click)=\"confirm()\">{{ 'BUTTON.YES' | translate}}</button>\n        </ng-template>\n        <ng-template [ngSwitchCase]=\"2\">\n            <button type=\"button\" class=\"btn btn-outline\" (click)=\"cancel()\" [hidden]=\"isDelete\">{{'BUTTON.CANCEL' | translate}}</button>\n            <button type=\"button\" class=\"btn btn-danger\" (click)=\"confirm()\" [hidden]=\"isDelete\">{{'BUTTON.DELETE' | translate}}</button>\n        </ng-template>\n        <ng-template [ngSwitchCase]=\"3\">\n            <button type=\"button\" class=\"btn btn-primary\" (click)=\"cancel()\">{{'BUTTON.CLOSE' | translate}}</button>\n        </ng-template>\n        <ng-template [ngSwitchCase]=\"4\">\n            <button type=\"button\" class=\"btn btn-outline\" (click)=\"cancel()\" [hidden]=\"isDelete\">{{'BUTTON.CANCEL' | translate}}</button>\n            <button type=\"button\" class=\"btn btn-primary\" (click)=\"confirm()\" [hidden]=\"isDelete\">{{'BUTTON.REPLICATE' | translate}}</button>\n        </ng-template>\n    </div>\n</clr-modal>","styles":[".confirmation-icon-inline{display:inline-block}.confirmation-title{line-height:24px;color:#000;font-size:22px}.confirmation-content{font-size:14px;color:#565656;line-height:24px;display:inline-block;vertical-align:middle;width:80%;white-space:pre-wrap}.batchInfoUl{padding:20px;list-style-type:none}.batchInfoUl li{line-height:24px;border-bottom:1px solid #e8e8e8}.batchInfoUl li span:first-child{padding-right:20px;width:240px;display:inline-block;color:#666;text-overflow:ellipsis;overflow:hidden;vertical-align:middle}.batchInfoUl li span:last-child{width:220px;display:inline-block;color:#666}.batchInfoUl li span i{display:inline-block;line-height:1.2em;font-size:.8em;color:#999}.batchInfoUl li span a{cursor:pointer;text-decoration:underline}"]}]}],"members":{"confirmAction":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":64,"character":5}}]}],"cancelAction":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":65,"character":5}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@ngx-translate/core","name":"TranslateService","line":69,"character":27}]}],"open":[{"__symbolic":"method"}],"colorChange":[{"__symbolic":"method"}],"toggleErrorTitle":[{"__symbolic":"method"}],"close":[{"__symbolic":"method"}],"cancel":[{"__symbolic":"method"}],"confirm":[{"__symbolic":"method"}]}},"ɵm":[{"__symbolic":"reference","name":"ɵj"}],"ɵn":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":40,"character":1},"arguments":[{"selector":"hbr-create-edit-rule","template":"<clr-modal [(clrModalOpen)]=\"createEditRuleOpened\" [clrModalStaticBackdrop]=\"true\" [clrModalClosable]=\"false\">\n  <h3 class=\"modal-title\">{{headerTitle | translate}}</h3>\n  <hbr-inline-alert class=\"modal-title\" (confirmEvt)=\"confirmCancel($event)\"></hbr-inline-alert>\n  <div class=\"modal-body\" style=\"max-height: 85vh;\">\n    <clr-alert [hidden]='!deletedLabelCount' [clrAlertType]=\"'alert-warning'\" [clrAlertSizeSmall]=\"true\" [clrAlertClosable]=\"false\"\n      [(clrAlertClosed)]=\"alertClosed\">\n      <div class=\"alert-item\">\n        <span class=\"alert-text\">{{deletedLabelInfo}}</span>\n        <div class=\"alert-actions\">\n          <a class=\"alert-action\" (click)=\" alertClosed = true\">{{'REPLICATION.ACKNOWLEDGE' | translate}}</a>\n        </div>\n      </div>\n    </clr-alert>\n    <form [formGroup]=\"ruleForm\" novalidate>\n      <section class=\"form-block\">\n        <div class=\"form-group form-group-override\">\n          <label class=\"form-group-label-override required\">{{'REPLICATION.NAME' | translate}}</label>\n          <label aria-haspopup=\"true\" role=\"tooltip\" class=\"tooltip tooltip-validation tooltip-md tooltip-bottom-left\" [class.invalid]='(ruleForm.controls.name.touched && ruleForm.controls.name.invalid) || !isRuleNameValid'>\n            <input type=\"text\" id=\"ruleName\" pattern=\"^[a-z0-9]+(?:[._-][a-z0-9]+)*$\" class=\"inputWidth\" required maxlength=\"255\" formControlName=\"name\"\n              #ruleName (keyup)='checkRuleName()' autocomplete=\"off\">\n            <span class=\"tooltip-content\">{{ruleNameTooltip | translate}}</span>\n          </label>\n          <span class=\"spinner spinner-inline spinner-pos\" [hidden]=\"!inNameChecking\"></span>\n        </div>\n        <!--Description-->\n        <div class=\"form-group form-group-override\">\n          <label class=\"form-group-label-override\">{{'REPLICATION.DESCRIPTION' | translate}}</label>\n          <textarea type=\"text\" id=\"ruleDescription\" class=\"inputWidth\" row=3 formControlName=\"description\"></textarea>\n        </div>\n        <!--Projects-->\n        <div class=\"form-group form-group-override\">\n          <label class=\"form-group-label-override required\">{{'REPLICATION.SOURCE_PROJECT' | translate}}</label>\n          <div formArrayName=\"projects\">\n            <div class=\"projectInput inputWidth\" *ngFor=\"let project of projects.controls; let i= index\" [formGroupName]=\"i\" (mouseleave)=\"leaveInput()\">\n              <label aria-haspopup=\"true\" role=\"tooltip\" class=\"tooltip tooltip-validation tooltip-md tooltip-bottom-left\" [class.invalid]='noProjectInfo'>\n                <input *ngIf=\"!projectId\" formControlName=\"name\" type=\"text\" class=\"inputWidth\" value=\"name\" required pattern=\"^[a-z0-9]+(?:[._-][a-z0-9]+)*$\"\n                  (keyup)='handleValidation()' (focus)=\"focusClear($event)\" autocomplete=\"off\">\n                <input *ngIf=\"projectId\" formControlName=\"name\" type=\"text\" class=\"inputWidth\" value=\"name\" readonly>\n                <span class=\"tooltip-content\">{{noProjectInfo | translate}}</span>\n              </label>\n              <div class=\"selectBox inputWidth\" [style.display]=\"selectedProjectList.length ? 'block' : 'none'\">\n                <ul>\n                  <li *ngFor=\"let project of selectedProjectList\" (click)=\"selectedProjectName(project?.name)\">{{project?.name}}</li>\n                </ul>\n              </div>\n            </div>\n          </div>\n        </div>\n\n        <!--images/Filter-->\n        <div class=\"form-group form-group-override\">\n          <label class=\"form-group-label-override\">{{'REPLICATION.SOURCE_IMAGES_FILTER' | translate}}</label>\n          <div formArrayName=\"filters\">\n            <div class=\"filterSelect\" *ngFor=\"let filter of filters.controls; let i=index\">\n              <div [formGroupName]=\"i\">\n                <div class=\"select floatSetPar\">\n                  <select formControlName=\"kind\" #selectedValue (change)=\"filterChange($event, selectedValue.value)\" id=\"{{i}}\" name=\"{{filterListData[i]?.name}}\">\n                    <option *ngFor=\"let opt of filterListData[i]?.options;\" value=\"{{opt}}\">{{opt}}</option>\n                  </select>\n                </div>\n                <label aria-haspopup=\"true\" role=\"tooltip\" class=\"tooltip tooltip-validation tooltip-md tooltip-bottom-left\"  [class.invalid]='(filter.value.dirty || filter.value.touched) && filter.value.invalid'>\n                  <input type=\"text\" #filterValue required size=\"14\" formControlName=\"value\" [attr.disabled]=\"(filterListData[i]?.name=='label') ?'' : null\">\n                  <span class=\"tooltip-content\">{{'TOOLTIP.EMPTY' | translate}}</span>\n                </label>\n                <div class=\"arrowSet\" [hidden]=\"!(filterListData[i]?.name=='label')\" (click)=\"openLabelList(selectedValue.value, i, $event)\">\n                  <clr-icon shape=\"angle\"></clr-icon>\n                </div>\n                <clr-icon shape=\"warning-standard\" class=\"is-solid is-warning\" size=\"14\" style=\"margin-left: -15px;\" [hidden]=\"!deletedLabelCount || !(filterListData[i]?.name=='label')\"></clr-icon>\n                <clr-icon shape=\"times-circle\" class=\"is-solid\" (click)=\"deleteFilter(i)\"></clr-icon>\n                <div *ngIf=\"!withAdmiral\">\n                  <hbr-filter-label [projectId]=\"projectId\" [selectedLabelInfo]=\"filterLabelInfo\"\n                    [isOpen]=\"filterListData[i].isOpen\" (selectedLabels)=\"selectedLabelList($event, i)\" (closePanelEvent)=\"filterListData[i].isOpen = false\"></hbr-filter-label>\n                </div>\n              </div>\n            </div>\n\n          </div>\n          <clr-icon shape=\"plus-circle\" class=\"is-solid\" [hidden]=\"isFilterHide\" (click)=\"addNewFilter()\" style=\"margin-top: 11px;\"></clr-icon>\n\n        </div>\n        <!--Targets-->\n        <div class=\"form-group form-group-override\">\n          <label class=\"form-group-label-override  required\">{{'DESTINATION.ENDPOINT' | translate}}</label>\n          <div formArrayName=\"targets\">\n            <div class=\"select endpointSelect pull-left\" *ngFor=\"let target of targets.controls; let i= index\" [formGroupName]=\"i\">\n              <select id=\"ruleTarget\" (change)=\"targetChange($event)\" formControlName=\"id\">\n                <option *ngFor=\"let target of targetList\" value=\"{{target.id}}\">{{target.name}}-{{target.endpoint}}</option>\n              </select>\n            </div>\n          </div>\n          <label *ngIf=\"noEndpointInfo.length != 0\" class=\"colorRed alertLabel\">{{noEndpointInfo | translate}}</label>\n          <span class=\"alertLabel goLink\" *ngIf=\"noEndpointInfo.length != 0\" (click)=\"goRegistry()\">{{'REPLICATION.ENDPOINTS' | translate}}</span>\n        </div>\n\n        <!--Trigger-->\n        <div class=\"form-group form-group-override\">\n          <label class=\"form-group-label-override\">{{'REPLICATION.TRIGGER_MODE' | translate}}</label>\n          <div formGroupName=\"trigger\">\n            <!--on trigger-->\n            <div class=\"select floatSetPar\">\n              <select id=\"ruleTrigger\" formControlName=\"kind\" (change)=\"selectTrigger($event)\">\n                <option value=\"Manual\">{{'REPLICATION.MANUAL' | translate}}</option>\n                <option value=\"Immediate\">{{'REPLICATION.IMMEDIATE' | translate}}</option>\n                <option value=\"Scheduled\">{{'REPLICATION.SCHEDULE' | translate}}</option>\n              </select>\n            </div>\n            <!--on push-->\n            <div formGroupName=\"schedule_param\">\n              <div class=\"select floatSet\" [hidden]=\"!isScheduleOpt\">\n                <select name=\"scheduleType\" formControlName=\"type\" (change)=\"selectSchedule($event)\">\n                  <option value=\"Daily\">{{'REPLICATION.DAILY' | translate}}</option>\n                  <option value=\"Weekly\">{{'REPLICATION.WEEKLY' | translate}}</option>\n                </select>\n              </div>\n              <!--weekly-->\n              <span [hidden]=\"!weeklySchedule || !isScheduleOpt\">on &nbsp;</span>\n              <div [hidden]=\"!weeklySchedule || !isScheduleOpt\" class=\"select floatSet\" style=\"width:104px\">\n                <select name=\"scheduleDay\" formControlName=\"weekday\">\n                  <option value=\"1\">{{'WEEKLY.MONDAY' | translate}}</option>\n                  <option value=\"2\">{{'WEEKLY.TUESDAY' | translate}}</option>\n                  <option value=\"3\">{{'WEEKLY.WEDNESDAY' | translate}}</option>\n                  <option value=\"4\">{{'WEEKLY.THURSDAY' | translate}}</option>\n                  <option value=\"5\">{{'WEEKLY.FRIDAY' | translate}}</option>\n                  <option value=\"6\">{{'WEEKLY.SATURDAY' | translate}}</option>\n                  <option value=\"7\">{{'WEEKLY.SUNDAY' | translate}}</option>\n                </select>\n              </div>\n              <!--daily/time-->\n              <span [hidden]=\"!isScheduleOpt\">at &nbsp;</span>\n              <input [hidden]=\"!isScheduleOpt\" type=\"time\" formControlName=\"offtime\" required value=\"08:00\" />\n            </div>\n          </div>\n          <div style=\"width: 100%;\" [hidden]=\"!isImmediate\">\n            <clr-checkbox [clrChecked]=\"false\" id=\"ruleDeletion\" formControlName=\"replicate_deletion\">\n              {{'REPLICATION.DELETE_REMOTE_IMAGES' | translate}}\n            </clr-checkbox>\n          </div>\n          <div style=\"width: 100%;\">\n            <clr-checkbox [clrChecked]=\"true\" id=\"ruleExit\" formControlName=\"replicate_existing_image_now\">\n              {{'REPLICATION.REPLICATE_IMMEDIATE' | translate}}\n            </clr-checkbox>\n          </div>\n        </div>\n        <div style=\"display:block;text-align:center\">\n          <span class=\"spinner spinner-inline\" [hidden]=\"inProgress === false\"></span>\n        </div>\n      </section>\n    </form>\n  </div>\n  <div class=\"modal-footer\">\n    <button type=\"button\" id=\"ruleBtnCancel\" class=\"btn btn-outline\" [disabled]=\"this.inProgress\" (click)=\"onCancel()\">{{ 'BUTTON.CANCEL' | translate }}</button>\n    <button type=\"submit\" id=\"ruleBtnOk\" class=\"btn btn-primary\" (click)=\"onSubmit()\" [disabled]=\"!ruleForm.valid || !isValid || !hasFormChange()\">{{ 'BUTTON.SAVE' | translate }}</button>\n  </div>\n</clr-modal>","styles":[".select{width:186px}.select .optionMore{background-color:#bfbaba;height:1.6em;font-size:1.2em;cursor:pointer;text-align:center}.hideFilter{display:none}h4{color:#666}.colorRed{color:red}.colorRed a{text-decoration:underline;color:#007cbb}.alertLabel{display:block;margin-top:2px;line-height:1em;font-size:12px}.inputWidth{width:270px}.endpointSelect{width:270px;margin-right:20px}.filterSelect{position:relative;width:315px}.filterSelect clr-icon{margin-left:15px}.filterSelect label{width:136px}.filterSelect label input{width:100%}.pull-left{float:left}.padLeft0{padding-left:0}.floatSetPar{display:inline-block;width:120px;margin-right:10px}.floatSet{display:inline-block;width:82px;margin-right:4px}.form-group{min-height:36px}.projectInput{float:left;position:relative}.switchIcon{width:20px;height:20px;margin-top:10px;margin-left:10px;cursor:pointer}.addEndpoint{margin-top:.25em!important;padding-left:2px;padding-right:2px;min-width:58px;margin-right:0}.shadow{position:absolute;top:8px}.is-solid{cursor:pointer}.selectBox{position:absolute;width:100%;height:auto;margin-top:-.25rem;border:1px solid rgba(0,0,0,.15);background-color:#fff;border-right-width:2px;border-bottom-width:2px;border-radius:6px;box-shadow:0 5px 10px rgba(0,0,0,.2);z-index:100}.selectBox ul li{list-style:none;padding:3px 20px;cursor:pointer}.selectBox ul li:hover{color:#262626;background-image:linear-gradient(180deg,#f5f5f5 0,#e8e8e8);background-repeat:repeat-x}.form-group-override{padding-left:170px!important}.form-group>label:first-child{font-size:14px;width:6.5rem}.goLink{color:#00f;border-bottom:1px solid #00f;line-height:14px;cursor:pointer}.arrowSet{display:inline-block;position:absolute;right:50px;top:8px;-webkit-transform:rotate(180deg);transform:rotate(180deg)}clr-modal ::ng-deep div.modal-dialog{width:25rem}.deletedDiv{text-align:left;line-height:14px;color:red}.deletedDiv a{margin-left:10px;text-decoration:underline;cursor:pointer;color:#00f}"]}]}],"members":{"projectId":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":247,"character":3}}]}],"projectName":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":248,"character":3}}]}],"withAdmiral":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":249,"character":3}}]}],"goToRegistry":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":251,"character":3}}]}],"reload":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":252,"character":3}}]}],"inlineAlert":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":254,"character":3},"arguments":[{"__symbolic":"reference","name":"ɵj"}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/forms","name":"FormBuilder","line":270,"character":16},{"__symbolic":"reference","name":"ReplicationService"},{"__symbolic":"reference","name":"EndpointService"},{"__symbolic":"reference","name":"ErrorHandler"},{"__symbolic":"reference","name":"ProjectService"},{"__symbolic":"reference","module":"@ngx-translate/core","name":"TranslateService","line":275,"character":30},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":276,"character":17}]}],"baseFilterData":[{"__symbolic":"method"}],"ngOnInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"createForm":[{"__symbolic":"method"}],"initForm":[{"__symbolic":"method"}],"updateForm":[{"__symbolic":"method"}],"reOrganizeLabel":[{"__symbolic":"method"}],"setProject":[{"__symbolic":"method"}],"setFilter":[{"__symbolic":"method"}],"setTarget":[{"__symbolic":"method"}],"initFilter":[{"__symbolic":"method"}],"filterChange":[{"__symbolic":"method"}],"openLabelList":[{"__symbolic":"method"}],"targetChange":[{"__symbolic":"method"}],"handleValidation":[{"__symbolic":"method"}],"focusClear":[{"__symbolic":"method"}],"leaveInput":[{"__symbolic":"method"}],"selectedProjectName":[{"__symbolic":"method"}],"selectedProject":[{"__symbolic":"method"}],"addNewFilter":[{"__symbolic":"method"}],"deleteFilter":[{"__symbolic":"method"}],"selectTrigger":[{"__symbolic":"method"}],"selectSchedule":[{"__symbolic":"method"}],"checkRuleName":[{"__symbolic":"method"}],"updateFilter":[{"__symbolic":"method"}],"selectedLabelList":[{"__symbolic":"method"}],"updateTrigger":[{"__symbolic":"method"}],"setTriggerVaule":[{"__symbolic":"method"}],"setFilterLabelVal":[{"__symbolic":"method"}],"hasFormChange":[{"__symbolic":"method"}],"onSubmit":[{"__symbolic":"method"}],"openCreateEditRule":[{"__symbolic":"method"}],"close":[{"__symbolic":"method"}],"confirmCancel":[{"__symbolic":"method"}],"onCancel":[{"__symbolic":"method"}],"goRegistry":[{"__symbolic":"method"}],"getOfftime":[{"__symbolic":"method"}],"setOfftime":[{"__symbolic":"method"}],"hasChanges":[{"__symbolic":"method"}]}},"ɵo":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":13,"character":1},"arguments":[{"selector":"hbr-filter-label","template":"<div class=\"filterLabelPanel\" [hidden]=\"!openFilterLabelPanel\">\n    <a class=\"filterClose\" (click)=\"closeFilter()\">&times;</a>\n    <label class=\"filterLabelHeader\">{{'REPOSITORY.FILTER_BY_LABEL' | translate}}</label>\n    <div><input class=\"filterInput\" type=\"text\" placeholder=\"Filter labels\" [(ngModel)]= \"filterLabelName\" (keyup)=\"handleInputFilter()\"></div>\n    <div [hidden]='labelLists.length' style=\"padding-left:10px;\">{{'LABEL.NO_LABELS' | translate }}</div>\n\n    <div [hidden]='!labelLists.length' style='max-height:300px;overflow-y: auto;'>\n        <button type=\"button\" class=\"labelBtn\" *ngFor='let label of labelLists' [hidden]='!label.show' (click)=\"selectLabel(label)\">\n            <clr-icon shape=\"check\" class='pull-left' [hidden]='!label.iconsShow'></clr-icon>\n            <div class='labelDiv'><hbr-label-piece [label]=\"label.label\"  [labelWidth]=\"118\"></hbr-label-piece></div>\n        </button>\n    </div>\n</div>","styles":[".filterLabelPanel{display:flex;position:absolute;left:135px;flex-direction:column;background:#fff;padding:.5rem 0;border:1px solid #ccc;box-shadow:0 1px .125rem rgba(115,115,115,.25);min-width:5rem;max-width:15rem;border-radius:.125rem;z-index:100}.filterLabelPanel .filterInput{margin-left:.5rem;margin-right:.5rem}.filterLabelHeader{font-size:.5rem;font-weight:600;letter-spacing:normal;padding:0 .5rem;line-height:.75rem;margin:0;color:#313131}.filterLabelPanel .form-group input{position:relative;margin-left:.5rem;margin-right:.5rem}.filterClose{position:absolute;right:8px;top:5px;cursor:pointer;font-size:20px}.pull-left{display:inline-block;float:left}.pull-right{display:inline-block;float:right}.btn-link{display:inline-flex;width:15px;min-width:15px;color:#000;vertical-align:super}.signpost-item,.trigger-item{display:inline}.signpost-content-body .label{margin:.3rem}.labelDiv{position:absolute;left:28px;top:5px}.datagrid-action-bar{z-index:10}.trigger-item hbr-label-piece{display:flex!important;margin:6px 0}:host>>>.signpost-content{min-width:4rem}:host>>>.signpost-content-body{padding:0 .4rem}:host>>>.signpost-content-header{display:none}.filterLabelPiece{position:absolute;top:4px;z-index:1}.dropdown .dropdown-toggle.btn{margin:.25rem .5rem .25rem 0}.labelBtn{position:relative;overflow:hidden;font-size:.58333rem;letter-spacing:normal;font-weight:400;background:0 0;border:0;color:#565656;cursor:pointer;display:block;margin:0;width:100%;height:30px;text-transform:none}.labelBtn:hover{background-color:#eee}.labelBtn:focus{outline:0}.labelDiv label{margin:0}"]}]}],"members":{"isOpen":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":36,"character":5}}]}],"projectId":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":37,"character":5}}]}],"selectedLabelInfo":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":38,"character":5}}]}],"selectedLabels":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":39,"character":5}}]}],"closePanelEvent":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":40,"character":5}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"LabelService"},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":43,"character":29},{"__symbolic":"reference","name":"ErrorHandler"}]}],"ngOnInit":[{"__symbolic":"method"}],"ngOnChanges":[{"__symbolic":"method"}],"getGLabels":[{"__symbolic":"method"}],"getPLabels":[{"__symbolic":"method"}],"handleInputFilter":[{"__symbolic":"method"}],"selectLabel":[{"__symbolic":"method"}],"selectOper":[{"__symbolic":"method"}],"unSelectOper":[{"__symbolic":"method"}],"sortOperation":[{"__symbolic":"method"}],"closeFilter":[{"__symbolic":"method"}]}},"ɵp":[{"__symbolic":"reference","name":"ɵq"},{"__symbolic":"reference","name":"ɵr"}],"ɵq":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":10,"character":1},"arguments":[{"selector":"hbr-datetime","template":"<clr-icon shape=\"date\"></clr-icon>\n<label aria-haspopup=\"true\" role=\"tooltip\" [class.invalid]=\"dateInvalid\" class=\"tooltip tooltip-validation tooltip-sm\">\n  <input type=\"date\" #searchTime=\"ngModel\" [(ngModel)]=\"dateInput\" name=\"searchTime\" placeholder=\"dd/mm/yyyy\" dateValidator (change)=\"doSearch()\">\n  <span *ngIf=\"dateInvalid\" class=\"tooltip-content\">\n    {{'AUDIT_LOG.INVALID_DATE' | translate }}\n  </span>\n</label>"}]}],"members":{"dateInput":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":21,"character":3}}]}],"oneDayOffset":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":22,"character":3}}]}],"searchTime":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":24,"character":3},"arguments":["searchTime"]}]}],"search":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":26,"character":3}}]}],"ngOnChanges":[{"__symbolic":"method"}],"convertDate":[{"__symbolic":"method"}],"doSearch":[{"__symbolic":"method"}]}},"ɵr":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":22,"character":1},"arguments":[{"selector":"[dateValidator]","providers":[{"provide":{"__symbolic":"reference","module":"@angular/forms","name":"NG_VALIDATORS","line":25,"character":15},"useExisting":{"__symbolic":"reference","name":"ɵr"},"multi":true}]}]}],"members":{"dateValidator":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":29,"character":3}}]}],"ngOnChanges":[{"__symbolic":"method"}],"validate":[{"__symbolic":"method"}]}},"ɵs":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":38,"character":1},"arguments":[{"selector":"hbr-label","template":"<div>\n    <div class=\"row\"  style=\"position:relative;\">\n        <div>\n            <div class=\"row flex-items-xs-between rightPos\">\n                <div class=\"flex-items-xs-middle option-right\">\n                    <hbr-filter [withDivider]=\"true\" filterPlaceholder='{{\"LABEL.FILTER_LABEL_PLACEHOLDER\" | translate}}' (filterEvt)=\"doSearchTargets($event)\" [currentValue]=\"targetName\"></hbr-filter>\n                    <span class=\"refresh-btn\" (click)=\"refreshTargets()\">\n                        <clr-icon shape=\"refresh\"></clr-icon>\n                    </span>\n                </div>\n            </div>\n        </div>\n        <div class=\"col-lg-12 col-md-12 col-sm-12 col-xs-12 btnGroup\">\n            <button type=\"button\" class=\"btn btn-sm btn-secondary\" (click)=\"openModal()\"><clr-icon shape=\"plus\" size=\"16\"></clr-icon>&nbsp;{{'LABEL.NEW_LABEL' | translate}}</button>\n            <button type=\"button\" class=\"btn btn-sm btn-secondary\" [disabled]=\"!(selectedRow.length == 1)\" (click)=\"editLabel(selectedRow)\"><clr-icon shape=\"pencil\" size=\"16\"></clr-icon>&nbsp;{{'LABEL.EDIT' | translate}}</button>\n            <button type=\"button\" class=\"btn btn-sm btn-secondary\" [disabled]=\"!selectedRow.length\" (click)=\"deleteLabels(selectedRow)\"><clr-icon shape=\"times\" size=\"16\"></clr-icon>&nbsp;{{'LABEL.DELETE' | translate}}</button>     \n            <hbr-create-edit-label [scope]=\"scope\"  [projectId]=\"projectId\" (reload)=\"reload()\"></hbr-create-edit-label>\n        </div>\n        <div class=\"col-lg-12 col-md-12 col-sm-12 col-xs-12\">\n            <clr-datagrid [clrDgLoading]=\"loading\"  [(clrDgSelected)]=\"selectedRow\" (clrDgSelectedChange)=\"selectedChange()\">\n                <clr-dg-column [clrDgField]=\"'name'\">{{'LABEL.LABEL' | translate}}</clr-dg-column>\n                <clr-dg-column [clrDgField]=\"'endpoint'\">{{'LABEL.DESCRIPTION' | translate}}</clr-dg-column>\n                <clr-dg-column [clrDgField]=\"'insecure'\">{{'LABEL.CREATION_TIME' | translate }}</clr-dg-column>\n                 <clr-dg-placeholder>{{'LABEL.PLACEHOLDER' | translate }}</clr-dg-placeholder>\n                <clr-dg-row *clrDgItems=\"let label of targets\" [clrDgItem]='label'>\n                    <clr-dg-cell>\n                        <hbr-label-piece [label]=\"label\"></hbr-label-piece>\n                    </clr-dg-cell>\n                    <clr-dg-cell>{{label.description}}</clr-dg-cell>\n                    <clr-dg-cell>{{label.creation_time | date: 'short'}}</clr-dg-cell>\n                </clr-dg-row>\n                <clr-dg-footer>\n                    <span *ngIf=\"pagination.totalItems\">{{pagination.firstItem + 1}} - {{pagination.lastItem + 1}} {{'DESTINATION.OF' | translate}}</span>\n                    {{pagination.totalItems}} {{'DESTINATION.ITEMS' | translate}}\n                    <clr-dg-pagination #pagination [clrDgPageSize]=\"15\"></clr-dg-pagination>\n                </clr-dg-footer>\n            </clr-datagrid>\n        </div>\n    </div>\n    <confirmation-dialog #confirmationDialog (confirmAction)=\"confirmDeletion($event)\"></confirmation-dialog>\n</div>\n\n","styles":[".option-left{padding-left:16px;margin-top:-6px}.option-right{padding-right:16px}.refresh-btn{cursor:pointer}.refresh-btn:hover{color:#007cbb}.rightPos{position:absolute;z-index:100;right:35px;margin-top:4px;height:24px}"],"changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":84,"character":21},"member":"OnPush"}}]}],"members":{"scope":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":93,"character":5}}]}],"projectId":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":94,"character":5}}]}],"hasProjectAdminRole":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":95,"character":5}}]}],"createEditLabel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":97,"character":5},"arguments":[{"__symbolic":"reference","name":"ɵt"}]}]}],"confirmationDialogComponent":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":99,"character":5},"arguments":["confirmationDialog"]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"LabelService"},{"__symbolic":"reference","name":"ErrorHandler"},{"__symbolic":"reference","module":"@ngx-translate/core","name":"TranslateService","line":104,"character":42},{"__symbolic":"reference","name":"OperationService"},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":106,"character":29}]}],"ngOnInit":[{"__symbolic":"method"}],"retrieve":[{"__symbolic":"method"}],"openModal":[{"__symbolic":"method"}],"reload":[{"__symbolic":"method"}],"doSearchTargets":[{"__symbolic":"method"}],"refreshTargets":[{"__symbolic":"method"}],"selectedChange":[{"__symbolic":"method"}],"editLabel":[{"__symbolic":"method"}],"deleteLabels":[{"__symbolic":"method"}],"confirmDeletion":[{"__symbolic":"method"}],"delOperate":[{"__symbolic":"method"}],"forceRefreshView":[{"__symbolic":"method"}]}},"ɵt":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":35,"character":1},"arguments":[{"selector":"hbr-create-edit-label","template":"<div>\n    <form #labelForm=\"ngForm\" [hidden]=\"!formShow\">\n        <section>\n            <label>\n                <label for=\"name\">{{'LABEL.LABEL_NAME' | translate}}</label>\n                <label aria-haspopup=\"true\" role=\"tooltip\" [class.invalid]=\"isLabelNameExist\"\n                       class=\"tooltip tooltip-validation tooltip-md tooltip-bottom-left\">\n                    <input type=\"text\" id=\"name\" name=\"name\" required size=\"20\" autocomplete=\"off\"\n                           [(ngModel)]=\"labelModel.name\" #name=\"ngModel\" (keyup)=\"existValid(labelModel.name)\">\n                    <span class=\"tooltip-content\">\n                      {{'LABEL.NAME_ALREADY_EXISTS' | translate }}\n                    </span>\n                </label>\n            </label>\n            <label>\n                <label for=\"color\">{{'LABEL.COLOR' | translate}}</label>\n                <clr-dropdown [clrCloseMenuOnItemClick]=\"false\">\n                    <button type=\"button\" class=\"btn btn-outline btnColor btn-sm\" clrDropdownTrigger>\n                        <clr-icon shape=\"angle down\"></clr-icon>\n                    </button>\n                    <clr-dropdown-menu *clrIfOpen>\n                        <label class=\"dropdown-item\" (click)=\"labelModel.color=i.color\" *ngFor=\"let i of labelColor\"\n                            [class.borderSty]=\"i.color == '#FFFFFF'\"   [ngStyle]=\"{'background-color': i.color, 'color': i.textColor }\">Aa</label>\n                    </clr-dropdown-menu>\n                </clr-dropdown>\n                <input type=\"text\" id=\"color\" size=\"8\" name=\"color\" disabled [(ngModel)]=\"labelModel.color\" #color=\"ngModel\">\n            </label>\n            <label>\n                <label for=\"description\">{{'LABEL.DESCRIPTION' | translate}}</label>\n                <input type=\"text\" id=\"description\" name=\"description\" size=\"30\" [(ngModel)]=\"labelModel.description\"\n                       #description=\"ngModel\">\n            </label>\n            <label>\n                <button type=\"button\" class=\"btn btn-sm btn-outline\" (click)=\"onCancel()\" [disabled]=\"inProgress\">{{\n                    'BUTTON.CANCEL' | translate }}\n                </button>\n                <button type=\"submit\" class=\"btn btn-sm btn-primary\" (click)=\"onSubmit()\" [disabled]=\"!isValid\">{{\n                    'BUTTON.OK' | translate }}\n                </button>\n            </label>\n        </section>\n    </form>\n</div>","styles":["form{margin-bottom:-10px;padding-top:0;margin-top:20px;width:100%;background-color:#eee;border:1px solid #ccc}form section{padding:.5rem 0}form section>label{margin-left:20px}form .btnColor{margin:0!important;padding:0!important;width:26px;height:22px;min-width:26px}form .colorPanel span{margin:5px 4px;width:30px;height:24px;text-align:center;line-height:24px;font-size:12px;border:1px solid #a1a1a1}form .dropdown-menu{display:inline-block;width:166px;padding:6px}form .dropdown-menu .dropdown-item{display:inline-block;margin:2px 4px;padding:0;width:30px;height:24px;text-align:center;line-height:24px;border:0;color:#fff;font-size:12px}form .dropdown .dropdown-toggle.btn{padding:0!important}form .borderSty{border:1px solid #a1a1a1!important;line-height:22px}"],"changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":81,"character":19},"member":"Default"}}]}],"members":{"currentForm":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":95,"character":3},"arguments":["labelForm"]}]}],"projectId":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":97,"character":3}}]}],"scope":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":98,"character":3}}]}],"reload":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":99,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"LabelService"},{"__symbolic":"reference","name":"ErrorHandler"},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":104,"character":17}]}],"ngOnInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"initLabel":[{"__symbolic":"method"}],"openModal":[{"__symbolic":"method"}],"editModel":[{"__symbolic":"method"}],"existValid":[{"__symbolic":"method"}],"onSubmit":[{"__symbolic":"method"}],"onCancel":[{"__symbolic":"method"}]}},"ɵu":[{"__symbolic":"reference","name":"ɵv"}],"ɵv":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":22,"character":1},"arguments":[{"selector":"hbr-label-piece","template":"<label class=\"label\" [ngStyle]=\"{'background-color': labelColor?.color, 'color': labelColor?.textColor, 'border': labelColor?.color == '#FFFFFF'? '1px solid #A1A1A1': 'none'}\" [style.max-width.px]=\"labelWidth\">\n    <clr-icon *ngIf=\"label.scope=='p'\" shape=\"organization\"></clr-icon>\n    <clr-icon *ngIf=\"label.scope=='g'\" shape=\"administrator\"></clr-icon>\n     {{label.name}}\n</label>\n","styles":[".label{border:none;color:#222;display:inline-block;justify-content:flex-start;margin:0;overflow:hidden;text-overflow:ellipsis;line-height:.875rem}.label clr-icon{margin-right:3px}.btn-group .dropdown-menu clr-icon{display:block}"]}]}],"members":{"label":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":34,"character":5}}]}],"labelWidth":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":35,"character":5}}]}],"ngOnChanges":[{"__symbolic":"method"}],"ngOnInit":[{"__symbolic":"method"}]}}},"origins":{"ɵa":"./src/third-party/ngx-window-token/window-token","DefaultServiceConfig":"./src/harbor-library.module","HarborModuleConfig":"./src/harbor-library.module","initConfig":"./src/harbor-library.module","HarborLibraryModule":"./src/harbor-library.module","SERVICE_CONFIG":"./src/service.config","IServiceConfig":"./src/service.config","Base":"./src/service/interface","RepositoryItem":"./src/service/interface","Repository":"./src/service/interface","Tag":"./src/service/interface","Endpoint":"./src/service/interface","ReplicationRule":"./src/service/interface","Filter":"./src/service/interface","Trigger":"./src/service/interface","ReplicationJob":"./src/service/interface","ReplicationJobItem":"./src/service/interface","Metadata":"./src/service/interface","AccessLog":"./src/service/interface","AccessLogItem":"./src/service/interface","SystemInfo":"./src/service/interface","ClairDetail":"./src/service/interface","ClairDBStatus":"./src/service/interface","VulnerabilitySeverity":"./src/service/interface","VulnerabilityBase":"./src/service/interface","VulnerabilityItem":"./src/service/interface","VulnerabilitySummary":"./src/service/interface","VulnerabilityComponents":"./src/service/interface","VulnerabilitySeverityMetrics":"./src/service/interface","TagClickEvent":"./src/service/interface","Label":"./src/service/interface","CardItemEvent":"./src/service/interface","ScrollPosition":"./src/service/interface","HelmChartItem":"./src/service/interface","HelmChartVersion":"./src/service/interface","HelmChartDetail":"./src/service/interface","HelmChartMetaData":"./src/service/interface","HelmChartMaintainer":"./src/service/interface","HelmChartDependency":"./src/service/interface","HelmchartFile":"./src/service/interface","HelmChartSecurity":"./src/service/interface","HelmChartSignature":"./src/service/interface","SystemInfoService":"./src/service/system-info.service","SystemInfoDefaultService":"./src/service/system-info.service","AccessLogService":"./src/service/access-log.service","AccessLogDefaultService":"./src/service/access-log.service","EndpointService":"./src/service/endpoint.service","EndpointDefaultService":"./src/service/endpoint.service","ReplicationService":"./src/service/replication.service","ReplicationDefaultService":"./src/service/replication.service","RepositoryService":"./src/service/repository.service","RepositoryDefaultService":"./src/service/repository.service","VerifiedSignature":"./src/service/tag.service","TagService":"./src/service/tag.service","TagDefaultService":"./src/service/tag.service","RequestQueryParams":"./src/service/RequestQueryParams","ScanningResultService":"./src/service/scanning.service","ScanningResultDefaultService":"./src/service/scanning.service","ConfigurationService":"./src/service/configuration.service","ConfigurationDefaultService":"./src/service/configuration.service","JobLogService":"./src/service/job-log.service","JobLogDefaultService":"./src/service/job-log.service","ProjectService":"./src/service/project.service","ProjectDefaultService":"./src/service/project.service","LabelService":"./src/service/label.service","LabelDefaultService":"./src/service/label.service","HelmChartService":"./src/service/helm-chart.service","HelmChartDefaultService":"./src/service/helm-chart.service","ErrorHandler":"./src/error-handler/error-handler","DefaultErrorHandler":"./src/error-handler/error-handler","LOG_DIRECTIVES":"./src/log/index","RecentLogComponent":"./src/log/recent-log.component","FILTER_DIRECTIVES":"./src/filter/index","FilterComponent":"./src/filter/filter.component","ENDPOINT_DIRECTIVES":"./src/endpoint/index","REPOSITORY_DIRECTIVES":"./src/repository/index","RepositoryComponent":"./src/repository/repository.component","CREATE_EDIT_ENDPOINT_DIRECTIVES":"./src/create-edit-endpoint/index","CREATE_EDIT_RULE_DIRECTIVES":"./src/create-edit-rule/index","TAG_DIRECTIVES":"./src/tag/index","LabelState":"./src/tag/tag.component","TagComponent":"./src/tag/tag.component","TagDetailComponent":"./src/tag/tag-detail.component","LIST_REPLICATION_RULE_DIRECTIVES":"./src/list-replication-rule/index","ListReplicationRuleComponent":"./src/list-replication-rule/list-replication-rule.component","REPLICATION_DIRECTIVES":"./src/replication/index","SearchOption":"./src/replication/replication.component","ReplicationComponent":"./src/replication/replication.component","VULNERABILITY_DIRECTIVES":"./src/vulnerability-scanning/index","MIN_TIP_WIDTH":"./src/vulnerability-scanning/result-tip.component","MAX_TIP_WIDTH":"./src/vulnerability-scanning/result-tip.component","ResultTipComponent":"./src/vulnerability-scanning/result-tip.component","ResultGridComponent":"./src/vulnerability-scanning/result-grid.component","ResultBarChartComponent":"./src/vulnerability-scanning/result-bar-chart.component","TranslateServiceInitializer":"./src/i18n/translate-init.service","I18nConfig":"./src/i18n/i18n-config","PUSH_IMAGE_BUTTON_DIRECTIVES":"./src/push-image/index","PushImageButtonComponent":"./src/push-image/push-image.component","CopyStatus":"./src/push-image/copy-input.component","CopyInputComponent":"./src/push-image/copy-input.component","WindowTokenModule":"./src/third-party/ngx-window-token/window-token","WINDOW":"./src/third-party/ngx-window-token/window-token","ClipboardModule":"./src/third-party/ngx-clipboard/index","ClipboardDirective":"./src/third-party/ngx-clipboard/clipboard.directive","ClipboardService":"./src/third-party/ngx-clipboard/clipboard.service","CLIPBOARD_SERVICE_PROVIDER_FACTORY":"./src/third-party/ngx-clipboard/clipboard.service","CLIPBOARD_SERVICE_PROVIDER":"./src/third-party/ngx-clipboard/clipboard.service","CONFIGURATION_DIRECTIVES":"./src/config/index","StringValueItem":"./src/config/config","NumberValueItem":"./src/config/config","BoolValueItem":"./src/config/config","ComplexValueItem":"./src/config/config","Configuration":"./src/config/config","ReplicationConfigComponent":"./src/config/replication/replication-config.component","SystemSettingsComponent":"./src/config/system/system-settings.component","VulnerabilityConfigComponent":"./src/config/vulnerability/vulnerability-config.component","RegistryConfigComponent":"./src/config/registry-config.component","JOB_LOG_VIEWER_DIRECTIVES":"./src/job-log-viewer/index","JobLogViewerComponent":"./src/job-log-viewer/job-log-viewer.component","ChannelService":"./src/channel/channel.service","PROJECT_POLICY_CONFIG_DIRECTIVES":"./src/project-policy-config/index","ProjectPolicy":"./src/project-policy-config/project-policy-config.component","ProjectPolicyConfigComponent":"./src/project-policy-config/project-policy-config.component","LABEL_DIRECTIVES":"./src/label/index","CREATE_EDIT_LABEL_DIRECTIVES":"./src/create-edit-label/index","HBR_GRIDVIEW_DIRECTIVES":"./src/gridview/index","GridViewComponent":"./src/gridview/grid-view.component","REPOSITORY_GRIDVIEW_DIRECTIVES":"./src/repository-gridview/index","RepositoryGridviewComponent":"./src/repository-gridview/repository-gridview.component","OPERATION_DIRECTIVES":"./src/operation/index","OperationComponent":"./src/operation/operation.component","OperateInfo":"./src/operation/operate","operateChanges":"./src/operation/operate","OperationState":"./src/operation/operate","OperationService":"./src/operation/operation.service","FadeInAnimation":"./src/_animations/fade-in.animation","SlideInOutAnimation":"./src/_animations/slide-in-out.animation","HELMCHART_DIRECTIVE":"./src/helm-chart/index","HelmChartComponent":"./src/helm-chart/helm-chart.component","ChartVersionComponent":"./src/helm-chart/versions/helm-chart-version.component","ChartDetailComponent":"./src/helm-chart/chart-detail/chart-detail.component","ChartDetailSummaryComponent":"./src/helm-chart/chart-detail/chart-detail-summary.component","ChartDetailDependencyComponent":"./src/helm-chart/chart-detail/chart-detail-dependency.component","ChartDetailValueComponent":"./src/helm-chart/chart-detail/chart-detail-value.component","ɵb":"./src/utils","ɵc":"./src/utils","ɵd":"./src/utils","ɵe":"./src/shared/shared.module","ɵf":"./src/shared/shared.module","ɵg":"./src/i18n/missing-trans.handler","ɵh":"./src/endpoint/endpoint.component","ɵi":"./src/create-edit-endpoint/create-edit-endpoint.component","ɵj":"./src/inline-alert/inline-alert.component","ɵk":"./src/confirmation-dialog/index","ɵl":"./src/confirmation-dialog/confirmation-dialog.component","ɵm":"./src/inline-alert/index","ɵn":"./src/create-edit-rule/create-edit-rule.component","ɵo":"./src/create-edit-rule/filter-label.component","ɵp":"./src/datetime-picker/index","ɵq":"./src/datetime-picker/datetime-picker.component","ɵr":"./src/datetime-picker/date-validator.directive","ɵs":"./src/label/label.component","ɵt":"./src/create-edit-label/create-edit-label.component","ɵu":"./src/label-piece/index","ɵv":"./src/label-piece/label-piece.component"},"importAs":"harbor-ui"}