refactored mydspace/listelements etc

This commit is contained in:
lotte
2019-10-08 15:51:31 +02:00
parent a1f144aa0b
commit 0fb12c4274
76 changed files with 505 additions and 655 deletions

View File

@@ -5,20 +5,20 @@ import { NoopAnimationsModule } from '@angular/platform-browser/animations';
import { of as observableOf } from 'rxjs';
import { Item } from '../../../../core/shared/item.model';
import { ClaimedMyDSpaceResultListElementComponent } from './claimed-my-dspace-result-list-element.component';
import { ClaimedTaskMyDSpaceResult } from '../../../object-collection/shared/claimed-task-my-dspace-result.model';
import { ClaimedSearchResultListElementComponent } from './claimed-search-result-list-element.component';
import { ClaimedTaskSearchResult } from '../../../object-collection/shared/claimed-task-my-dspace-result.model';
import { ClaimedTask } from '../../../../core/tasks/models/claimed-task-object.model';
import { RemoteData } from '../../../../core/data/remote-data';
import { MyDspaceItemStatusType } from '../../../object-collection/shared/mydspace-item-status/my-dspace-item-status-type';
import { WorkflowItem } from '../../../../core/submission/models/workflowitem.model';
import { createSuccessfulRemoteDataObject } from '../../../testing/utils';
let component: ClaimedMyDSpaceResultListElementComponent;
let fixture: ComponentFixture<ClaimedMyDSpaceResultListElementComponent>;
let component: ClaimedSearchResultListElementComponent;
let fixture: ComponentFixture<ClaimedSearchResultListElementComponent>;
const compIndex = 1;
const mockResultObject: ClaimedTaskMyDSpaceResult = new ClaimedTaskMyDSpaceResult();
const mockResultObject: ClaimedTaskSearchResult = new ClaimedTaskSearchResult();
mockResultObject.hitHighlights = {};
const item = Object.assign(new Item(), {
@@ -59,19 +59,19 @@ describe('ClaimedMyDSpaceResultListElementComponent', () => {
beforeEach(async(() => {
TestBed.configureTestingModule({
imports: [NoopAnimationsModule],
declarations: [ClaimedMyDSpaceResultListElementComponent],
declarations: [ClaimedSearchResultListElementComponent],
providers: [
{ provide: 'objectElementProvider', useValue: (mockResultObject) },
{ provide: 'indexElementProvider', useValue: (compIndex) }
],
schemas: [NO_ERRORS_SCHEMA]
}).overrideComponent(ClaimedMyDSpaceResultListElementComponent, {
}).overrideComponent(ClaimedSearchResultListElementComponent, {
set: { changeDetection: ChangeDetectionStrategy.Default }
}).compileComponents();
}));
beforeEach(async(() => {
fixture = TestBed.createComponent(ClaimedMyDSpaceResultListElementComponent);
fixture = TestBed.createComponent(ClaimedSearchResultListElementComponent);
component = fixture.componentInstance;
}));

View File

@@ -4,29 +4,28 @@ import { Location, LocationStrategy, PathLocationStrategy } from '@angular/commo
import { Observable } from 'rxjs';
import { find } from 'rxjs/operators';
import { MyDSpaceResultListElementComponent, } from '../my-dspace-result-list-element.component';
import { ViewMode } from '../../../../core/shared/view-mode.model';
import { RemoteData } from '../../../../core/data/remote-data';
import { isNotUndefined } from '../../../empty.util';
import { WorkflowItem } from '../../../../core/submission/models/workflowitem.model';
import { ClaimedTask } from '../../../../core/tasks/models/claimed-task-object.model';
import { ClaimedTaskMyDSpaceResult } from '../../../object-collection/shared/claimed-task-my-dspace-result.model';
import { MyDspaceItemStatusType } from '../../../object-collection/shared/mydspace-item-status/my-dspace-item-status-type';
import { listableObjectComponent } from '../../../object-collection/shared/listable-object/listable-object.decorator';
import { ClaimedTaskSearchResult } from '../../../object-collection/shared/claimed-task-search-result.model';
import { SearchResultListElementComponent } from '../../search-result-list-element/search-result-list-element.component';
/**
* This component renders claimed task object for the mydspace result in the list view.
*/
@Component({
selector: 'ds-claimed-my-dspace-result-list-element',
selector: 'ds-claimed-search-result-list-element',
styleUrls: ['../my-dspace-result-list-element.component.scss'],
templateUrl: './claimed-my-dspace-result-list-element.component.html',
templateUrl: './claimed-search-result-list-element.component.html',
providers: [Location, { provide: LocationStrategy, useClass: PathLocationStrategy }]
})
@listableObjectComponent(ClaimedTaskMyDSpaceResult.name, ViewMode.ListElement)
@listableObjectComponent(ClaimedTask.name, ViewMode.ListElement)
export class ClaimedMyDSpaceResultListElementComponent extends MyDSpaceResultListElementComponent<ClaimedTaskMyDSpaceResult, ClaimedTask> {
@listableObjectComponent(ClaimedTaskSearchResult.name, ViewMode.ListElement)
export class ClaimedSearchResultListElementComponent extends SearchResultListElementComponent<ClaimedTaskSearchResult, ClaimedTask> {
/**
* A boolean representing if to show submitter information

View File

@@ -3,7 +3,7 @@ import { Component, Input } from '@angular/core';
import { Item } from '../../../../core/shared/item.model';
import { fadeInOut } from '../../../animations/fade';
import { MyDspaceItemStatusType } from '../../../object-collection/shared/mydspace-item-status/my-dspace-item-status-type';
import { MyDSpaceResult } from '../../../../+my-dspace-page/my-dspace-result.model';
import { SearchResult } from '../../../../+search-page/search-result.model';
/**
* This component show metadata for the given item object in the list view.
@@ -24,7 +24,7 @@ export class ItemListPreviewComponent {
/**
* The mydspace result object
*/
@Input() object: MyDSpaceResult<any>;
@Input() object: SearchResult<any>;
/**
* Represent item's status

View File

@@ -5,16 +5,16 @@ import { NoopAnimationsModule } from '@angular/platform-browser/animations';
import { of as observableOf } from 'rxjs';
import { Item } from '../../../../core/shared/item.model';
import { ItemMyDSpaceResultListElementComponent } from './item-my-dspace-result-list-element.component';
import { MyDspaceItemStatusType } from '../../../object-collection/shared/mydspace-item-status/my-dspace-item-status-type';
import { ItemMyDSpaceResult } from '../../../object-collection/shared/item-my-dspace-result.model';
import { ItemSearchResult } from '../../../object-collection/shared/item-search-result.model';
import { ItemSearchResultListElementSubmissionComponent } from './item-search-result-list-element-submission.component';
let component: ItemMyDSpaceResultListElementComponent;
let fixture: ComponentFixture<ItemMyDSpaceResultListElementComponent>;
let component: ItemSearchResultListElementSubmissionComponent;
let fixture: ComponentFixture<ItemSearchResultListElementSubmissionComponent>;
const compIndex = 1;
const mockResultObject: ItemMyDSpaceResult = new ItemMyDSpaceResult();
const mockResultObject: ItemSearchResult = new ItemSearchResult();
mockResultObject.hitHighlights = {};
mockResultObject.indexableObject = Object.assign(new Item(), {
@@ -51,19 +51,19 @@ describe('ItemMyDSpaceResultListElementComponent', () => {
beforeEach(async(() => {
TestBed.configureTestingModule({
imports: [NoopAnimationsModule],
declarations: [ItemMyDSpaceResultListElementComponent],
declarations: [ItemSearchResultListElementSubmissionComponent],
providers: [
{ provide: 'objectElementProvider', useValue: (mockResultObject) },
{ provide: 'indexElementProvider', useValue: (compIndex) }
],
schemas: [NO_ERRORS_SCHEMA]
}).overrideComponent(ItemMyDSpaceResultListElementComponent, {
}).overrideComponent(ItemSearchResultListElementSubmissionComponent, {
set: { changeDetection: ChangeDetectionStrategy.Default }
}).compileComponents();
}));
beforeEach(async(() => {
fixture = TestBed.createComponent(ItemMyDSpaceResultListElementComponent);
fixture = TestBed.createComponent(ItemSearchResultListElementSubmissionComponent);
component = fixture.componentInstance;
}));

View File

@@ -1,24 +1,24 @@
import { Component } from '@angular/core';
import { MyDSpaceResultListElementComponent, } from '../my-dspace-result-list-element.component';
import { Item } from '../../../../core/shared/item.model';
import { ItemMyDSpaceResult } from '../../../object-collection/shared/item-my-dspace-result.model';
import { MyDspaceItemStatusType } from '../../../object-collection/shared/mydspace-item-status/my-dspace-item-status-type';
import { ViewMode } from '../../../../core/shared/view-mode.model';
import { listableObjectComponent } from '../../../object-collection/shared/listable-object/listable-object.decorator';
import { Context } from '../../../../core/shared/context.model';
import { ItemSearchResult } from '../../../object-collection/shared/item-search-result.model';
import { SearchResultListElementComponent } from '../../search-result-list-element/search-result-list-element.component';
/**
* This component renders item object for the mydspace result in the list view.
*/
@Component({
selector: 'ds-workspaceitem-my-dspace-result-list-element',
styleUrls: ['../my-dspace-result-list-element.component.scss', './item-my-dspace-result-list-element.component.scss'],
templateUrl: './item-my-dspace-result-list-element.component.html'
selector: 'ds-item-search-result-list-element-submission',
styleUrls: ['../my-dspace-result-list-element.component.scss', './item-search-result-list-element-submission.component.scss'],
templateUrl: './item-search-result-list-element-submission.component.html'
})
@listableObjectComponent('PublicationSearchResult', ViewMode.ListElement, Context.Submission)
export class ItemMyDSpaceResultListElementComponent extends MyDSpaceResultListElementComponent<ItemMyDSpaceResult, Item> {
export class ItemSearchResultListElementSubmissionComponent extends SearchResultListElementComponent<ItemSearchResult, Item> {
/**
* Represent item's status

View File

@@ -1,57 +0,0 @@
import { Component, Inject } from '@angular/core';
import { MyDSpaceResult } from '../../../+my-dspace-page/my-dspace-result.model';
import { AbstractListableElementComponent } from '../../object-collection/shared/object-collection-element/abstract-listable-element.component';
import { ListableObject } from '../../object-collection/shared/listable-object.model';
import { DSpaceObject } from '../../../core/shared/dspace-object.model';
import { Metadata } from '../../../core/shared/metadata.utils';
@Component({
selector: 'ds-my-dspace-result-list-element',
template: ``
})
export class MyDSpaceResultListElementComponent<T extends MyDSpaceResult<K>, K extends DSpaceObject> extends AbstractListableElementComponent<T> {
/**
* The result element object
*/
dso: K;
/**
* The array index of the result element
*/
dsoIndex: number;
/**
* Initialize instance variables
*
* @param {ListableObject} listable
* @param {number} index
*/
public constructor(@Inject('indexElementProvider') public index: number) {
super();
this.dso = this.object.indexableObject;
this.dsoIndex = this.index;
}
/**
* Gets all matching metadata string values from hitHighlights or dso metadata, preferring hitHighlights.
*
* @param {string|string[]} keyOrKeys The metadata key(s) in scope. Wildcards are supported; see [[Metadata]].
* @returns {string[]} the matching string values or an empty array.
*/
allMetadataValues(keyOrKeys: string | string[]): string[] {
return Metadata.allValues([this.object.hitHighlights, this.dso.metadata], keyOrKeys);
}
/**
* Gets the first matching metadata string value from hitHighlights or dso metadata, preferring hitHighlights.
*
* @param {string|string[]} keyOrKeys The metadata key(s) in scope. Wildcards are supported; see [[Metadata]].
* @returns {string} the first matching string value, or `undefined`.
*/
firstMetadataValue(keyOrKeys: string | string[]): string {
return Metadata.firstValue([this.object.hitHighlights, this.dso.metadata], keyOrKeys);
}
}

View File

@@ -5,20 +5,20 @@ import { NoopAnimationsModule } from '@angular/platform-browser/animations';
import { of as observableOf } from 'rxjs';
import { Item } from '../../../../core/shared/item.model';
import { PoolMyDSpaceResultListElementComponent } from './pool-my-dspace-result-list-element.component';
import { PoolTaskMyDSpaceResult } from '../../../object-collection/shared/pool-task-my-dspace-result.model';
import { PoolSearchResultListElementComponent } from './pool-search-result-list-element.component';
import { PoolTaskSearchResult } from '../../../object-collection/shared/pool-task-my-dspace-result.model';
import { PoolTask } from '../../../../core/tasks/models/pool-task-object.model';
import { RemoteData } from '../../../../core/data/remote-data';
import { MyDspaceItemStatusType } from '../../../object-collection/shared/mydspace-item-status/my-dspace-item-status-type';
import { WorkflowItem } from '../../../../core/submission/models/workflowitem.model';
import { createSuccessfulRemoteDataObject } from '../../../testing/utils';
let component: PoolMyDSpaceResultListElementComponent;
let fixture: ComponentFixture<PoolMyDSpaceResultListElementComponent>;
let component: PoolSearchResultListElementComponent;
let fixture: ComponentFixture<PoolSearchResultListElementComponent>;
const compIndex = 1;
const mockResultObject: PoolTaskMyDSpaceResult = new PoolTaskMyDSpaceResult();
const mockResultObject: PoolTaskSearchResult = new PoolTaskSearchResult();
mockResultObject.hitHighlights = {};
const item = Object.assign(new Item(), {
@@ -59,19 +59,19 @@ describe('PoolMyDSpaceResultListElementComponent', () => {
beforeEach(async(() => {
TestBed.configureTestingModule({
imports: [NoopAnimationsModule],
declarations: [PoolMyDSpaceResultListElementComponent],
declarations: [PoolSearchResultListElementComponent],
providers: [
{ provide: 'objectElementProvider', useValue: (mockResultObject) },
{ provide: 'indexElementProvider', useValue: (compIndex) }
],
schemas: [NO_ERRORS_SCHEMA]
}).overrideComponent(PoolMyDSpaceResultListElementComponent, {
}).overrideComponent(PoolSearchResultListElementComponent, {
set: { changeDetection: ChangeDetectionStrategy.Default }
}).compileComponents();
}));
beforeEach(async(() => {
fixture = TestBed.createComponent(PoolMyDSpaceResultListElementComponent);
fixture = TestBed.createComponent(PoolSearchResultListElementComponent);
component = fixture.componentInstance;
}));

View File

@@ -3,30 +3,28 @@ import { Component, Inject, OnInit } from '@angular/core';
import { Observable } from 'rxjs';
import { find } from 'rxjs/operators';
import { MyDSpaceResultListElementComponent, } from '../my-dspace-result-list-element.component';
import { ViewMode } from '../../../../core/shared/view-mode.model';
import { RemoteData } from '../../../../core/data/remote-data';
import { isNotUndefined } from '../../../empty.util';
import { ListableObject } from '../../../object-collection/shared/listable-object.model';
import { WorkflowItem } from '../../../../core/submission/models/workflowitem.model';
import { PoolTask } from '../../../../core/tasks/models/pool-task-object.model';
import { PoolTaskMyDSpaceResult } from '../../../object-collection/shared/pool-task-my-dspace-result.model';
import { MyDspaceItemStatusType } from '../../../object-collection/shared/mydspace-item-status/my-dspace-item-status-type';
import { listableObjectComponent } from '../../../object-collection/shared/listable-object/listable-object.decorator';
import { ClaimedTaskMyDSpaceResult } from '../../../object-collection/shared/claimed-task-my-dspace-result.model';
import { PoolTaskSearchResult } from '../../../object-collection/shared/pool-task-search-result.model';
import { SearchResultListElementComponent } from '../../search-result-list-element/search-result-list-element.component';
import { TruncatableService } from '../../../truncatable/truncatable.service';
/**
* This component renders pool task object for the mydspace result in the list view.
*/
@Component({
selector: 'ds-pool-my-dspace-result-list-element',
selector: 'ds-pool-search-result-list-element',
styleUrls: ['../my-dspace-result-list-element.component.scss'],
templateUrl: './pool-my-dspace-result-list-element.component.html',
templateUrl: './pool-search-result-list-element.component.html',
})
@listableObjectComponent(PoolTaskMyDSpaceResult.name, ViewMode.ListElement)
@listableObjectComponent(PoolTask.name, ViewMode.ListElement)
export class PoolMyDSpaceResultListElementComponent extends MyDSpaceResultListElementComponent<PoolTaskMyDSpaceResult, PoolTask> implements OnInit {
@listableObjectComponent(PoolTaskSearchResult.name, ViewMode.ListElement)
export class PoolSearchResultListElementComponent extends SearchResultListElementComponent<PoolTaskSearchResult, PoolTask> implements OnInit {
/**
* A boolean representing if to show submitter information
@@ -43,8 +41,10 @@ export class PoolMyDSpaceResultListElementComponent extends MyDSpaceResultListEl
*/
public workflowitem: WorkflowItem;
constructor(@Inject('indexElementProvider') public index: number) {
super(index);
public index: number;
constructor(protected truncatableService: TruncatableService) {
super(truncatableService);
}
/**

View File

@@ -5,19 +5,19 @@ import { NoopAnimationsModule } from '@angular/platform-browser/animations';
import { of as observableOf } from 'rxjs';
import { Item } from '../../../../core/shared/item.model';
import { WorkflowitemMyDSpaceResultListElementComponent } from './workflowitem-my-dspace-result-list-element.component';
import { WorkflowitemMyDSpaceResult } from '../../../object-collection/shared/workflowitem-my-dspace-result.model';
import { WorkflowItemSearchResultListElementComponent } from './workflow-item-my-search-result-list-element.component';
import { WorkflowItemSearchResult } from '../../../object-collection/shared/workflowitem-my-dspace-result.model';
import { WorkflowItem } from '../../../../core/submission/models/workflowitem.model';
import { RemoteData } from '../../../../core/data/remote-data';
import { MyDspaceItemStatusType } from '../../../object-collection/shared/mydspace-item-status/my-dspace-item-status-type';
import { createSuccessfulRemoteDataObject } from '../../../testing/utils';
let component: WorkflowitemMyDSpaceResultListElementComponent;
let fixture: ComponentFixture<WorkflowitemMyDSpaceResultListElementComponent>;
let component: WorkflowItemSearchResultListElementComponent;
let fixture: ComponentFixture<WorkflowItemSearchResultListElementComponent>;
const compIndex = 1;
const mockResultObject: WorkflowitemMyDSpaceResult = new WorkflowitemMyDSpaceResult();
const mockResultObject: WorkflowItemSearchResult = new WorkflowItemSearchResult();
mockResultObject.hitHighlights = {};
const item = Object.assign(new Item(), {
@@ -56,19 +56,19 @@ describe('WorkflowitemMyDSpaceResultListElementComponent', () => {
beforeEach(async(() => {
TestBed.configureTestingModule({
imports: [NoopAnimationsModule],
declarations: [WorkflowitemMyDSpaceResultListElementComponent],
declarations: [WorkflowItemSearchResultListElementComponent],
providers: [
{ provide: 'objectElementProvider', useValue: (mockResultObject) },
{ provide: 'indexElementProvider', useValue: (compIndex) }
],
schemas: [NO_ERRORS_SCHEMA]
}).overrideComponent(WorkflowitemMyDSpaceResultListElementComponent, {
}).overrideComponent(WorkflowItemSearchResultListElementComponent, {
set: { changeDetection: ChangeDetectionStrategy.Default }
}).compileComponents();
}));
beforeEach(async(() => {
fixture = TestBed.createComponent(WorkflowitemMyDSpaceResultListElementComponent);
fixture = TestBed.createComponent(WorkflowItemSearchResultListElementComponent);
component = fixture.componentInstance;
}));

View File

@@ -3,29 +3,28 @@ import { Component } from '@angular/core';
import { Observable } from 'rxjs';
import { find } from 'rxjs/operators';
import { MyDSpaceResultListElementComponent, } from '../my-dspace-result-list-element.component';
import { ViewMode } from '../../../../core/shared/view-mode.model';
import { RemoteData } from '../../../../core/data/remote-data';
import { isNotUndefined } from '../../../empty.util';
import { WorkflowitemMyDSpaceResult } from '../../../object-collection/shared/workflowitem-my-dspace-result.model';
import { WorkflowItem } from '../../../../core/submission/models/workflowitem.model';
import { Item } from '../../../../core/shared/item.model';
import { MyDspaceItemStatusType } from '../../../object-collection/shared/mydspace-item-status/my-dspace-item-status-type';
import { listableObjectComponent } from '../../../object-collection/shared/listable-object/listable-object.decorator';
import { WorkflowItemSearchResult } from '../../../object-collection/shared/workflowitem-search-result.model';
import { SearchResultListElementComponent } from '../../search-result-list-element/search-result-list-element.component';
/**
* This component renders workflowitem object for the mydspace result in the list view.
*/
@Component({
selector: 'ds-workflowitem-my-dspace-result-list-element',
selector: 'ds-workflow-item-my-dspace-result-list-element',
styleUrls: ['../my-dspace-result-list-element.component.scss'],
templateUrl: './workflowitem-my-dspace-result-list-element.component.html',
templateUrl: './workflow-item-search-result-list-element.component.html',
})
@listableObjectComponent(WorkflowitemMyDSpaceResult.name, ViewMode.ListElement)
@listableObjectComponent(WorkflowItem.name, ViewMode.ListElement)
export class WorkflowitemMyDSpaceResultListElementComponent extends MyDSpaceResultListElementComponent<WorkflowitemMyDSpaceResult, WorkflowItem> {
@listableObjectComponent(WorkflowItemSearchResult.name, ViewMode.ListElement)
export class WorkflowItemSearchResultListElementComponent extends SearchResultListElementComponent<WorkflowItemSearchResult, WorkflowItem> {
/**
* The item object that belonging to the result object
*/
@@ -40,7 +39,7 @@ export class WorkflowitemMyDSpaceResultListElementComponent extends MyDSpaceResu
* Initialize all instance variables
*/
ngOnInit() {
this.initItem(this.dso.item as Observable<RemoteData<Item>>);
this.initItem(this.dso.item as Observable<RemoteData<Item>> );
}
/**

View File

@@ -5,19 +5,19 @@ import { NoopAnimationsModule } from '@angular/platform-browser/animations';
import { of as observableOf } from 'rxjs';
import { Item } from '../../../../core/shared/item.model';
import { WorkspaceitemMyDSpaceResultListElementComponent } from './workspaceitem-my-dspace-result-list-element.component';
import { WorkspaceitemMyDSpaceResult } from '../../../object-collection/shared/workspaceitem-my-dspace-result.model';
import { WorkspaceItemSearchResultListElementComponent } from './workspace-item-search-result-list-element.component';
import { WorkflowItemSearchResult } from '../../../object-collection/shared/workspaceitem-my-dspace-result.model';
import { WorkspaceItem } from '../../../../core/submission/models/workspaceitem.model';
import { RemoteData } from '../../../../core/data/remote-data';
import { MyDspaceItemStatusType } from '../../../object-collection/shared/mydspace-item-status/my-dspace-item-status-type';
import { createSuccessfulRemoteDataObject } from '../../../testing/utils';
let component: WorkspaceitemMyDSpaceResultListElementComponent;
let fixture: ComponentFixture<WorkspaceitemMyDSpaceResultListElementComponent>;
let component: WorkspaceItemSearchResultListElementComponent;
let fixture: ComponentFixture<WorkspaceItemSearchResultListElementComponent>;
const compIndex = 1;
const mockResultObject: WorkspaceitemMyDSpaceResult = new WorkspaceitemMyDSpaceResult();
const mockResultObject: WorkflowItemSearchResult = new WorkflowItemSearchResult();
mockResultObject.hitHighlights = {};
const item = Object.assign(new Item(), {
@@ -56,19 +56,19 @@ describe('WorkspaceitemMyDSpaceResultListElementComponent', () => {
beforeEach(async(() => {
TestBed.configureTestingModule({
imports: [NoopAnimationsModule],
declarations: [WorkspaceitemMyDSpaceResultListElementComponent],
declarations: [WorkspaceItemSearchResultListElementComponent],
providers: [
{ provide: 'objectElementProvider', useValue: (mockResultObject) },
{ provide: 'indexElementProvider', useValue: (compIndex) }
],
schemas: [NO_ERRORS_SCHEMA]
}).overrideComponent(WorkspaceitemMyDSpaceResultListElementComponent, {
}).overrideComponent(WorkspaceItemSearchResultListElementComponent, {
set: { changeDetection: ChangeDetectionStrategy.Default }
}).compileComponents();
}));
beforeEach(async(() => {
fixture = TestBed.createComponent(WorkspaceitemMyDSpaceResultListElementComponent);
fixture = TestBed.createComponent(WorkspaceItemSearchResultListElementComponent);
component = fixture.componentInstance;
}));

View File

@@ -3,27 +3,27 @@ import { Component } from '@angular/core';
import { Observable } from 'rxjs';
import { find } from 'rxjs/operators';
import { MyDSpaceResultListElementComponent, } from '../my-dspace-result-list-element.component';
import { ViewMode } from '../../../../core/shared/view-mode.model';
import { WorkspaceItem } from '../../../../core/submission/models/workspaceitem.model';
import { WorkspaceitemMyDSpaceResult } from '../../../object-collection/shared/workspaceitem-my-dspace-result.model';
import { RemoteData } from '../../../../core/data/remote-data';
import { isNotUndefined } from '../../../empty.util';
import { Item } from '../../../../core/shared/item.model';
import { MyDspaceItemStatusType } from '../../../object-collection/shared/mydspace-item-status/my-dspace-item-status-type';
import { listableObjectComponent } from '../../../object-collection/shared/listable-object/listable-object.decorator';
import { WorkspaceItemSearchResult } from '../../../object-collection/shared/workspaceitem-search-result.model';
import { SearchResultListElementComponent } from '../../search-result-list-element/search-result-list-element.component';
/**
* This component renders workspaceitem object for the mydspace result in the list view.
*/
@Component({
selector: 'ds-workspaceitem-my-dspace-result-list-element',
styleUrls: ['../my-dspace-result-list-element.component.scss', './workspaceitem-my-dspace-result-list-element.component.scss'],
templateUrl: './workspaceitem-my-dspace-result-list-element.component.html',
selector: 'ds-workspace-item-search-result-list-element',
styleUrls: ['../my-dspace-result-list-element.component.scss', './workspace-item-search-result-list-element.component.scss'],
templateUrl: './workspace-item-search-result-list-element.component.html',
})
@listableObjectComponent(WorkspaceitemMyDSpaceResult.name, ViewMode.ListElement)
export class WorkspaceitemMyDSpaceResultListElementComponent extends MyDSpaceResultListElementComponent<WorkspaceitemMyDSpaceResult, WorkspaceItem> {
@listableObjectComponent(WorkspaceItemSearchResult.name, ViewMode.ListElement)
export class WorkspaceItemSearchResultListElementComponent extends SearchResultListElementComponent<WorkspaceItemSearchResult, WorkspaceItem> {
/**
* The item object that belonging to the result object