All files / components/tek-iterable-carousel iterable-carousel.ts

28.57% Statements 2/7
0% Branches 0/13
0% Functions 0/3
28.57% Lines 2/7

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 311x               1x                                            
import { Carousel, IComponentRender, IterableComponentRender } from '@zeedhi/common';
import { IIterableCarousel } from './interfaces';
 
/**
 * Base class for IterableCarousel component.
 * This component uses every row returned by IterableComponentRender.datasource to render
 * slides defined by componentMetadata property, inside a carousel component.
 */
export class IterableCarousel extends Carousel implements IIterableCarousel {
  public iterable: IterableComponentRender;
 
  public constructor(props: IIterableCarousel) {
    super(props);
    this.iterable = new IterableComponentRender({
      ...props.iterable,
      name: `${props.name}_iterable`,
      component: 'TekIterableComponentRender',
    });
  }
 
  get children(): IComponentRender[] {
    return this.iterable?.datasource?.data.map(this.iterable.getComponentMetadata.bind(this.iterable)) || [];
  }
 
  set children(value: IComponentRender[]) {
    Iif (value && value.length) {
      throw new Error('You should not change children when using IterableCarousel');
    }
  }
}