All files / select si-select-option-template.directive.ts

66.66% Statements 2/3
100% Branches 0/0
0% Functions 0/1
50% Lines 1/2

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32                                            1x                  
/**
 * Copyright (c) Siemens 2016 - 2025
 * SPDX-License-Identifier: MIT
 */
import { Directive } from '@angular/core';
 
import { SelectOption } from './si-select.types';
 
/**
 * The directive allows to template/customize the value option rendering.
 * This requires using the {@link SiSelectComplexOptionsDirective} to specify complex options as input.
 *
 * @example
 * ```html
 * <si-select [options]="[{ id: 'good', title: 'Good' }, { id: 'fair', title: 'Fair' }, { id: 'bad', title: 'Bad' }]" >
 *   <ng-template siSelectOptionTemplate let-option>{{ option.value | uppercase }}</ng-template>
 * </si-select>
 * ```
 */
@Directive({
  selector: '[siSelectOptionTemplate]'
})
export class SiSelectOptionTemplateDirective {
  /** @internal */
  static ngTemplateContextGuard<T = any>(
    directive: SiSelectOptionTemplateDirective,
    context: unknown
  ): context is { $implicit: SelectOption<T> } {
    return true;
  }
}