/* * Squidex Headless CMS * * @license * Copyright (c) Squidex UG (haftungsbeschränkt). All rights reserved. */ import { ChangeDetectionStrategy, Component, EventEmitter, Input, OnChanges, Output, SimpleChanges } from '@angular/core'; import { ContentDto, getContentValue, LanguageDto, RootFieldDto } from '@app/shared'; /* tslint:disable:component-selector */ @Component({ selector: '[sqxContentSelectorItem]', template: ` {{content.lastModified | sqxFromNow}} `, changeDetection: ChangeDetectionStrategy.OnPush }) export class ContentSelectorItemComponent implements OnChanges { @Output() public selectedChange = new EventEmitter(); @Input() public selected = false; @Input() public selectable = true; @Input() public language: LanguageDto; @Input() public fields: ReadonlyArray; @Input('sqxContentSelectorItem') public content: ContentDto; public values: ReadonlyArray = []; public ngOnChanges(changes: SimpleChanges) { if (changes['content'] || changes['language']) { this.updateValues(); } } public toggle() { if (this.selectable) { this.emitSelectedChange(!this.selected); } } public emitSelectedChange(isSelected: boolean) { this.selectedChange.emit(isSelected); } private updateValues() { const values = []; for (const field of this.fields) { const { formatted } = getContentValue(this.content, this.language, field); values.push(formatted); } this.values = values; } }