Commit c91d1a09 authored by Florent POITTEVIN's avatar Florent POITTEVIN
Browse files

feat: 1551 open datafile and collection detail on new view and no more modal

parent 9119ebd2
......@@ -12926,16 +12926,6 @@
"integrity": "sha512-hjGrh+P926p4R4WbaB6OckyRtO0F0/lQBiT+0gnxjV+5kjPBrfVBFCsCLbMqVQeydvIoouYTCmmEURiH3R1Bdg==",
"dev": true
},
"primeicons": {
"version": "4.0.0",
"resolved": "https://nexus.unige.ch/repository/npm-all/primeicons/-/primeicons-4.0.0.tgz",
"integrity": "sha512-JQBIswGSItn8I0Pq21RchENpKJxSi1MjfBDfggMQpXtoKNKblJoHmol/7tCV3CAV2Dlb94ht8TD8qdIAW01pGg=="
},
"primeng": {
"version": "9.1.3",
"resolved": "https://nexus.unige.ch/repository/npm-all/primeng/-/primeng-9.1.3.tgz",
"integrity": "sha512-5+XGWrLNYToMIXR/r+sMcGAgz/rSYjo6Ms8rygV5uuLmHNB+mXpaRxMCajKSnmVFLZPeyATtVRm9RcA4Y/VizQ=="
},
"process": {
"version": "0.5.2",
"resolved": "https://nexus.unige.ch/repository/npm-all/process/-/process-0.5.2.tgz",
......@@ -14903,9 +14893,9 @@
}
},
"solidify-frontend": {
"version": "0.6.5",
"resolved": "https://nexus.unige.ch/repository/npm-all/solidify-frontend/-/solidify-frontend-0.6.5.tgz",
"integrity": "sha512-XWKGyOyXHEqxHHhWZPz+jMRrIqhhmPmZoYPEpqRp+ucYk7UFJfzUIEPGdEauL+teNOiaK5LlrYUrFmDoJrbdeg==",
"version": "0.6.7",
"resolved": "https://nexus.unige.ch/repository/npm-all/solidify-frontend/-/solidify-frontend-0.6.7.tgz",
"integrity": "sha512-vkH4UyG7zpa4rb6CCYufkt5/93cwOf791K1z5MSig63MiryLN41qc9hGHfl33i3md9ta1hUkpT3oqbtk0M6AmA==",
"requires": {
"tslib": "^2.0.0"
}
......
......@@ -61,15 +61,15 @@ export namespace AdminOrganizationalUnitAdditionalFieldsFormAction {
}
@TypeDefaultAction(state)
export class Delete extends CompositionAction.Delete<AdditionalFieldsForm> {
export class Delete extends CompositionAction.Delete {
}
@TypeDefaultAction(state)
export class DeleteSuccess extends CompositionAction.DeleteSuccess<AdditionalFieldsForm> {
export class DeleteSuccess extends CompositionAction.DeleteSuccess {
}
@TypeDefaultAction(state)
export class DeleteFail extends CompositionAction.DeleteFail<AdditionalFieldsForm> {
export class DeleteFail extends CompositionAction.DeleteFail {
}
@TypeDefaultAction(state)
......
......@@ -10,39 +10,36 @@ import {
import {ActivatedRoute} from "@angular/router";
import {DepositCollectionAction} from "@deposit/stores/collection/deposit-collection.action";
import {DepositCollectionState} from "@deposit/stores/collection/deposit-collection.state";
import {DepositCollectionStatusHistoryAction} from "@deposit/stores/collection/status-history/deposit-collection-status-history.action";
import {DepositCollectionStatusHistoryState} from "@deposit/stores/collection/status-history/deposit-collection-status-history.state";
import {depositActionNameSpace} from "@deposit/stores/deposit.action";
import {
DepositState,
DepositStateModel,
} from "@deposit/stores/deposit.state";
import {DepositOrganizationalUnitState} from "@deposit/stores/organizational-unit/deposit-organizational-unit.state";
import {Enums} from "@enums";
import {environment} from "@environments/environment";
import {
Aip,
Deposit,
} from "@models";
import {Navigate} from "@ngxs/router-plugin";
import {
Actions,
ofActionCompleted,
Store,
} from "@ngxs/store";
import {
SharedFileAndAipDetailDialogModeEnum,
SharedFileAndAipInformationDialog,
SharedFileAndAipInformationDialogData,
} from "@shared/components/dialogs/shared-file-and-aip-information/shared-file-and-aip-information.dialog";
import {SharedFileAndAipInformationContainer} from "@shared/components/containers/shared-file-and-aip-information/shared-file-and-aip-information.container";
import {SharedAbstractDetailEditRoutable} from "@shared/components/routables/shared-abstract-detail-edit/shared-abstract-detail-edit.routable";
import {DataTableComponentEnum} from "@shared/enums/data-table-component.enum";
import {FieldTypeEnum} from "@shared/enums/field-type.enum";
import {IconNameEnum} from "@shared/enums/icon-name.enum";
import {LabelTranslateEnum} from "@shared/enums/label-translate.enum";
import {LocalStateEnum} from "@shared/enums/local-state.enum";
import {AppRoutesEnum} from "@shared/enums/routes.enum";
import {
AppRoutesEnum,
DepositRoutesEnum,
} from "@shared/enums/routes.enum";
import {DataTableActions} from "@shared/models/data-table-actions.model";
import {DataTableColumns} from "@shared/models/data-table-columns.model";
import {StatusHistory} from "@shared/models/status-history.model";
import {SecurityService} from "@shared/services/security.service";
import {Observable} from "rxjs";
import {tap} from "rxjs/operators";
......@@ -69,11 +66,7 @@ export class DepositCollectionContainer extends SharedAbstractDetailEditRoutable
canEditObs: Observable<boolean> = MemoizedUtil.select(this._store, DepositState, state => state.canEdit);
dialogCollectionFileRef: MatDialogRef<SharedFileAndAipInformationDialog<Aip>>;
isLoadingHistoryObs: Observable<boolean> = MemoizedUtil.isLoading(this._store, DepositCollectionStatusHistoryState);
collectionHistoryObs: Observable<StatusHistory[]> = MemoizedUtil.select(this._store, DepositCollectionStatusHistoryState, state => state.history);
queryParametersHistoryObs: Observable<QueryParameters> = MemoizedUtil.select(this._store, DepositCollectionStatusHistoryState, state => state.queryParameters);
dialogCollectionFileRef: MatDialogRef<SharedFileAndAipInformationContainer<Aip>>;
columns: DataTableColumns<Aip>[];
actions: DataTableActions<Aip>[] = [
......@@ -164,39 +157,8 @@ export class DepositCollectionContainer extends SharedAbstractDetailEditRoutable
}
showDetail(aip: Aip): void {
this.dialogCollectionFileRef = this._dialog.open(SharedFileAndAipInformationDialog, {
data: {
mode: SharedFileAndAipDetailDialogModeEnum.aip,
aip: aip,
resId: aip.resId,
parentId: this._resId,
isReadonly: !this.isEdit,
isLoading: this.isLoadingHistoryObs,
statusHistory: this.collectionHistoryObs,
queryParametersObs: this.queryParametersHistoryObs,
state: DepositCollectionStatusHistoryAction,
name: aip.info.name,
buttons: [
{
labelToTranslate: (current) => LabelTranslateEnum.goToAip,
icon: IconNameEnum.internalLink,
color: "primary",
callback: current => this.goToAip(current),
displayCondition: current => this._securityService.isRootOrAdmin(),
order: 0,
},
{
labelToTranslate: (current) => LabelTranslateEnum.delete,
icon: IconNameEnum.delete,
color: "primary",
callback: current => this.deleteAip(this._resId, current),
displayCondition: current => this.canEditObs,
order: 1,
},
],
} as SharedFileAndAipInformationDialogData<Aip>,
width: environment.modalWidth,
});
const orgUnitId = MemoizedUtil.currentSnapshot(this._store, DepositOrganizationalUnitState)?.resId;
this._store.dispatch(new Navigate([AppRoutesEnum.deposit, orgUnitId, DepositRoutesEnum.detail, this._resId, DepositRoutesEnum.collections, aip.resId]));
}
private goToAip(aip: Aip): void {
......
......@@ -12,20 +12,10 @@ import {
} from "@angular/material/dialog";
import {ActivatedRoute} from "@angular/router";
import {AppState} from "@app/stores/app.state";
import {
DepositFileChangeDataCategoryDialog,
DepositFileChangeDataCategoryDialogData,
} from "@deposit/components/dialogs/deposit-file-change-data-category/deposit-file-change-data-category.dialog";
import {
DepositFileMoveDialog,
DepositFileMoveDialogData,
} from "@deposit/components/dialogs/deposit-file-move/deposit-file-move.dialog";
import {DepositDataFileHelper} from "@deposit/helpers/deposit-data-file.helper";
import {DepositDataFile} from "@deposit/models/deposit-data-file.model";
import {DepositDataFileAction} from "@deposit/stores/data-file/deposit-data-file.action";
import {DepositDataFileState} from "@deposit/stores/data-file/deposit-data-file.state";
import {DepositDataFileStatusHistoryAction} from "@deposit/stores/data-file/status-history/deposit-data-file-status-history.action";
import {DepositDataFileStatusHistoryState} from "@deposit/stores/data-file/status-history/deposit-data-file-status-history.state";
import {
DepositAction,
depositActionNameSpace,
......@@ -34,15 +24,16 @@ import {
DepositState,
DepositStateModel,
} from "@deposit/stores/deposit.state";
import {DepositOrganizationalUnitState} from "@deposit/stores/organizational-unit/deposit-organizational-unit.state";
import {Enums} from "@enums";
import {environment} from "@environments/environment";
import {Deposit} from "@models";
import {Navigate} from "@ngxs/router-plugin";
import {
Actions,
ofActionCompleted,
Select,
Store,
} from "@ngxs/store";
import {SharedFileAndAipInformationContainer} from "@shared/components/containers/shared-file-and-aip-information/shared-file-and-aip-information.container";
import {
SharedDeleteDialog,
SharedDeleteDialogData,
......@@ -51,12 +42,6 @@ import {
SharedConfirmDialog,
SharedConfirmDialogData,
} from "@shared/components/dialogs/shared-confirm/shared-confirm.dialog";
import {
SharedFileAndAipDetailDialogModeEnum,
SharedFileAndAipInformationDialog,
SharedFileAndAipInformationDialogData,
} from "@shared/components/dialogs/shared-file-and-aip-information/shared-file-and-aip-information.dialog";
import {SharedHistoryDialog} from "@shared/components/dialogs/shared-history/shared-history.dialog";
import {SharedPreviewDialogData} from "@shared/components/dialogs/shared-preview/shared-preview-dialog-data.model";
import {SharedPreviewDialog} from "@shared/components/dialogs/shared-preview/shared-preview.dialog";
import {SharedDataTablePresentational} from "@shared/components/presentationals/shared-data-table/shared-data-table.presentational";
......@@ -67,7 +52,10 @@ import {FileViewModeEnum} from "@shared/enums/file-view-mode.enum";
import {IconNameEnum} from "@shared/enums/icon-name.enum";
import {LabelTranslateEnum} from "@shared/enums/label-translate.enum";
import {LocalStateEnum} from "@shared/enums/local-state.enum";
import {AppRoutesEnum} from "@shared/enums/routes.enum";
import {
AppRoutesEnum,
DepositRoutesEnum,
} from "@shared/enums/routes.enum";
import {FileVisualizerHelper} from "@shared/filevisualizer/helpers/file-visualizer.helper";
import {
AbstractFileVisualizer,
......@@ -76,8 +64,6 @@ import {
import {DataTableActions} from "@shared/models/data-table-actions.model";
import {DataTableBulkActions} from "@shared/models/data-table-bulk-actions.model";
import {DataTableColumns} from "@shared/models/data-table-columns.model";
import {StatusHistoryDialog} from "@shared/models/status-history-dialog.model";
import {StatusHistory} from "@shared/models/status-history.model";
import {SecurityService} from "@shared/services/security.service";
import {Observable} from "rxjs";
import {
......@@ -114,10 +100,6 @@ export class DepositFileContainer extends SharedAbstractDetailEditRoutable<Depos
tap(canEdit => this.actions = [...this.actions]), // Force method computeContext on datatable
);
isLoadingHistoryObs: Observable<boolean> = MemoizedUtil.isLoading(this._store, DepositDataFileStatusHistoryState);
dataFileHistoryObs: Observable<StatusHistory[]> = MemoizedUtil.select(this._store, DepositDataFileStatusHistoryState, state => state.history);
queryParametersHistoryObs: Observable<QueryParameters> = MemoizedUtil.select(this._store, DepositDataFileStatusHistoryState, state => state.queryParameters);
@Select(AppState.currentOrgUnitPerson) currentPersonObs: Observable<PersonRole>;
@ViewChild("dataTablePresentational")
......@@ -128,12 +110,13 @@ export class DepositFileContainer extends SharedAbstractDetailEditRoutable<Depos
columns: DataTableColumns<DepositDataFile>[];
actions: DataTableActions<DepositDataFile>[] = [
{
logo: IconNameEnum.notIgnore,
callback: (depositDataFile: DepositDataFile) => this.validate(this._resId, depositDataFile),
placeholder: current => LabelTranslateEnum.doNotIgnore,
displayOnCondition: (depositDataFile: DepositDataFile) => depositDataFile.status === Enums.DataFile.StatusEnum.IGNORED_FILE,
},
// TODO ADD IN THREE DOT BUTTON
// {
// logo: IconNameEnum.notIgnore,
// callback: (depositDataFile: DepositDataFile) => this.validate(this._resId, depositDataFile),
// placeholder: current => LabelTranslateEnum.doNotIgnore,
// displayOnCondition: (depositDataFile: DepositDataFile) => depositDataFile.status === Enums.DataFile.StatusEnum.IGNORED_FILE,
// },
{
logo: IconNameEnum.download,
callback: (depositDataFile: DepositDataFile) => this.downloadDataFile(this._resId, depositDataFile),
......@@ -161,23 +144,6 @@ export class DepositFileContainer extends SharedAbstractDetailEditRoutable<Depos
fileExtension: FileVisualizerHelper.getFileExtension(depositDataFile.fileName),
}),
},
{
logo: IconNameEnum.move,
callback: (depositDataFile: DepositDataFile) => this.moveDataFileWithDialog(depositDataFile),
placeholder: current => LabelTranslateEnum.move,
displayOnCondition: (depositDataFile: DepositDataFile) => MemoizedUtil.selectSnapshot(this._store, DepositState, state => state.canEdit),
},
{
logo: IconNameEnum.change,
callback: (depositDataFile: DepositDataFile) => this.changeDataCategoryWithDialog(depositDataFile),
placeholder: current => LabelTranslateEnum.changeDataCategoryType,
displayOnCondition: (depositDataFile: DepositDataFile) => MemoizedUtil.selectSnapshot(this._store, DepositState, state => state.canEdit),
},
{
logo: IconNameEnum.history,
callback: (depositDataFile: DepositDataFile) => this.historyDataFile(this._resId, depositDataFile),
placeholder: current => LabelTranslateEnum.showHistoryStatus,
},
];
bulkActions: DataTableBulkActions[] = [
......@@ -194,7 +160,7 @@ export class DepositFileContainer extends SharedAbstractDetailEditRoutable<Depos
"status",
];
dialogDataFileRef: MatDialogRef<SharedFileAndAipInformationDialog<DepositDataFile>>;
dialogDataFileRef: MatDialogRef<SharedFileAndAipInformationContainer<DepositDataFile>>;
get fileViewModeEnum(): typeof FileViewModeEnum {
return FileViewModeEnum;
......@@ -360,71 +326,8 @@ export class DepositFileContainer extends SharedAbstractDetailEditRoutable<Depos
}
showDetail(depositDataFile: DepositDataFile): void {
this.dialogDataFileRef = this._dialog.open(SharedFileAndAipInformationDialog, {
data: {
mode: SharedFileAndAipDetailDialogModeEnum.file,
dataFile: depositDataFile,
resId: depositDataFile.resId,
parentId: this._resId,
isReadonly: !this.isEdit,
isLoading: this.isLoadingHistoryObs,
statusHistory: this.dataFileHistoryObs,
queryParametersObs: this.queryParametersHistoryObs,
state: DepositDataFileStatusHistoryAction,
name: depositDataFile.fileName,
buttons: [
{
labelToTranslate: (current) => LabelTranslateEnum.doNotIgnore,
color: "primary",
icon: IconNameEnum.notIgnore,
callback: current => this.validate(this._resId, current),
displayCondition: current => current.status === Enums.DataFile.StatusEnum.IGNORED_FILE,
order: 0,
},
{
labelToTranslate: (current) => LabelTranslateEnum.download,
color: "primary",
icon: IconNameEnum.download,
callback: current => this.downloadDataFile(this._resId, current),
displayCondition: current => current.status === Enums.DataFile.StatusEnum.PROCESSED || current.status === Enums.DataFile.StatusEnum.READY || current.status === Enums.DataFile.StatusEnum.VIRUS_CHECKED,
order: 1,
},
{
labelToTranslate: (current) => LabelTranslateEnum.delete,
color: "primary",
icon: IconNameEnum.delete,
callback: (current) => this.deleteDataFile(this._resId, current),
displayCondition: current => this.canEditObs,
order: 2,
},
{
labelToTranslate: (current) => LabelTranslateEnum.resume,
color: "primary",
icon: IconNameEnum.resume,
callback: current => this.resumeDataFile(this._resId, current),
displayCondition: current => current.status === Enums.DataFile.StatusEnum.IN_ERROR,
order: 3,
},
{
labelToTranslate: (current) => LabelTranslateEnum.move,
color: "primary",
icon: IconNameEnum.move,
callback: current => this.moveDataFileWithDialog(current),
displayCondition: current => this.canEditObs,
order: 4,
},
{
labelToTranslate: (current) => LabelTranslateEnum.changeDataCategoryType,
color: "primary",
icon: IconNameEnum.change,
callback: current => this.changeDataCategoryWithDialog(current),
displayCondition: current => this.canEditObs,
order: 5,
},
],
} as SharedFileAndAipInformationDialogData<DepositDataFile>,
width: environment.modalWidth,
});
const orgUnitId = MemoizedUtil.currentSnapshot(this._store, DepositOrganizationalUnitState)?.resId;
this._store.dispatch(new Navigate([AppRoutesEnum.deposit, orgUnitId, DepositRoutesEnum.detail, this._resId, DepositRoutesEnum.files, depositDataFile.resId]));
}
bulkDeleteDataFile(parentId: string, listId: string[]): void {
......@@ -432,59 +335,7 @@ export class DepositFileContainer extends SharedAbstractDetailEditRoutable<Depos
}
deleteDataFile(parentId: string, dataFile: DepositDataFile): void {
this._store.dispatch(new DepositDataFileAction.Delete(parentId, dataFile));
this.subscribe(this._actions$.pipe(
ofActionCompleted(DepositDataFileAction.DeleteSuccess),
tap(result => {
if (!result.result.successful) {
return;
}
if (this.dialogDataFileRef) {
this.dialogDataFileRef.close();
}
}),
));
}
moveDataFileWithDialog(dataFile: DepositDataFile): void {
this._dialog.open(DepositFileMoveDialog, {
data: {
parentResId: this._resId,
depositDataFile: dataFile,
} as DepositFileMoveDialogData,
});
if (!isNullOrUndefined(this.dialogDataFileRef)) {
this.subscribe(this._actions$.pipe(
ofActionCompleted(DepositDataFileAction.MoveSuccess),
take(1),
tap((result) => {
if (isTrue(result.result.successful)) {
this.dialogDataFileRef.close();
}
}),
));
}
}
changeDataCategoryWithDialog(dataFile: DepositDataFile): void {
this._dialog.open(DepositFileChangeDataCategoryDialog, {
data: {
parentResId: this._resId,
depositDataFile: dataFile,
} as DepositFileChangeDataCategoryDialogData,
});
if (!isNullOrUndefined(this.dialogDataFileRef)) {
this.subscribe(this._actions$.pipe(
ofActionCompleted(DepositDataFileAction.ChangeDataCategorySuccess),
take(1),
tap((result) => {
if (isTrue(result.result.successful)) {
this.dialogDataFileRef.close();
}
}),
));
}
this._store.dispatch(new DepositDataFileAction.Delete(parentId, dataFile.resId));
}
showPreview(dataFile: DepositDataFile): void {
......@@ -517,22 +368,7 @@ export class DepositFileContainer extends SharedAbstractDetailEditRoutable<Depos
}
resumeDataFile(parentId: string, dataFile: DepositDataFile): void {
this._store.dispatch(new DepositDataFileAction.ResumeDataFile(parentId, dataFile));
}
historyDataFile(parentId: string, dataFile: DepositDataFile): void {
const dialogRef = this._dialog.open(SharedHistoryDialog, {
width: environment.modalWidth,
data: {
parentId: parentId,
resourceResId: dataFile.resId,
name: LocalStateEnum.deposit_dataFile,
statusHistory: this.dataFileHistoryObs,
isLoading: this.isLoadingHistoryObs,
queryParametersObs: this.queryParametersHistoryObs,
state: DepositDataFileStatusHistoryAction,
} as StatusHistoryDialog,
});
this._store.dispatch(new DepositDataFileAction.Resume(parentId, dataFile));
}
selectAndDelete(): void {
......
<div class="upload-button-wrapper">
<ng-template [ngIf]="mode === modeDepositTabEnum.UNDEFINED || mode === modeDepositTabEnum.FILE">
<ng-template [ngIf]="mode === modeDepositTabEnum.FILE_OR_COLLECTION || mode === modeDepositTabEnum.FILE">
<button id="deposit-upload-primary-data"
dlcmAlternativeButton
solidifyShortCuts
......
......@@ -125,7 +125,7 @@ export class DepositUploadContainer extends SharedAbstractDetailEditRoutable<Dep
}
resume($event: DepositDataFile): void {
this._store.dispatch(new DepositDataFileAction.ResumeDataFile(this._resId, $event));
this._store.dispatch(new DepositDataFileAction.Resume(this._resId, $event));
}
refresh(): void {
......
......@@ -80,7 +80,7 @@ export class DepositFileMoveDialog extends SharedAbstractContainer implements On
take(1),
tap((result) => {
if (isTrue(result.result.successful)) {
this._dialogRef.close();
this._dialogRef.close(true);
}
}),
));
......
......@@ -9,12 +9,6 @@ import {FileUploadStatusEnum} from "@app/features/deposit/enums/file-upload-stat
import {DepositDataFile} from "@app/features/deposit/models/deposit-data-file.model";
import {UploadFileStatus} from "@app/features/deposit/models/upload-file-status.model";
import {SharedAbstractPresentational} from "@app/shared/components/presentationals/shared-abstract/shared-abstract.presentational";
import {environment} from "@environments/environment";
import {
SharedFileAndAipDetailDialogModeEnum,
SharedFileAndAipInformationDialog,
SharedFileAndAipInformationDialogData,
} from "@shared/components/dialogs/shared-file-and-aip-information/shared-file-and-aip-information.dialog";
import {
BehaviorSubject,
Observable,
......@@ -97,17 +91,6 @@ export class DepositFilePresentational extends SharedAbstractPresentational {
this._showHistoryBS.next(this.depositDataFile);
}
openDetailDialog(): void {
const dialogRef = this.dialog.open(SharedFileAndAipInformationDialog, {
data: {
mode: SharedFileAndAipDetailDialogModeEnum.file,
dataFile: this.depositDataFile,
} as SharedFileAndAipInformationDialogData<DepositDataFile>,
height: environment.modalHeight,
width: environment.modalWidth,
});
}
isUploaded(): boolean {
return !isNullOrUndefined(this.depositDataFile) && isNullOrUndefined(this.uploadStatus);
}
......
<dlcm-shared-file-and-aip-information-container *ngIf="data"
#sharedFileAndAipInformationContainer
[data]="data"
[canEdit]="canEditObs | async"
[dlcmSpinner]="data | isNullOrUndefined"
(deleteChange)="delete()"
></dlcm-shared-file-and-aip-information-container>
\ No newline at end of file
import {
ChangeDetectorRef,
Component,
OnInit,
} from "@angular/core";
import {MatDialog} from "@angular/material/dialog";
import {ActivatedRoute} from "@angular/router";
import {depositCollectionActionNameSpace} from "@deposit/stores/collection/deposit-collection.action";
import {DepositCollectionState} from "@deposit/stores/collection/deposit-collection.state";
import {depositCollectionStatusHistoryNamespace} from "@deposit/stores/collection/status-history/deposit-collection-status-history.action";
import {DepositCollectionStatusHistoryState} from "@deposit/stores/collection/status-history/deposit-collection-status-history.state";
import {DepositState} from "@deposit/stores/deposit.state";
import {Aip} from "@models";
import {
Actions,
Store,
} from "@ngxs/store";
import {SharedAbstractFileAipDetailRoutable} from "@shared/components/routables/shared-abstract-file-aip-detail/shared-abstract-file-aip-detail.routable";
import {ExtraButtonToolbar} from "@shared/models/extra-button-toolbar.model";
import {Observable} from "rxjs";
import {
MemoizedUtil,
OverrideProperty,
} from "solidify-frontend";
@Component({
selector: "dlcm-deposit-collection-detail-routable",
templateUrl: "./deposit-collection-detail.routable.html",
styleUrls: ["../../../../../shared/components/routables/shared-abstract-file-aip-detail/shared-abstract-file-aip-detail.routable.scss"],
})