import type { IComponentOptions, IController } from 'angular'; import { module } from 'angular'; import { ArtifactIconService } from './ArtifactIconService'; import type { IExpectedArtifact } from '../domain'; import './artifactSelector.less'; class ExpectedArtifactMultiSelectorCtrl implements IController { public command: any; public idsField: string; public label: string; public expectedArtifacts: IExpectedArtifact[]; public helpFieldKey: string; public showIcons: boolean; public iconPath(expected: IExpectedArtifact): string { const artifact = expected && (expected.matchArtifact || expected.defaultArtifact); if (artifact == null) { return ''; } return ArtifactIconService.getPath(artifact.type); } } const expectedArtifactMultiSelectorComponent: IComponentOptions = { bindings: { command: '=', expectedArtifacts: '<', artifactLabel: '@', idsField: '@', helpFieldKey: '@', showIcons: '<', }, controller: ExpectedArtifactMultiSelectorCtrl, controllerAs: 'ctrl', template: ` {{ $item.displayName }} {{ expected.displayName }} `, }; export const EXPECTED_ARTIFACT_MULTI_SELECTOR_COMPONENT = 'spinnaker.core.artifacts.expected.multiSelector'; module(EXPECTED_ARTIFACT_MULTI_SELECTOR_COMPONENT, []).component( 'expectedArtifactMultiSelector', expectedArtifactMultiSelectorComponent, );