nuxeo-development-framework 3.0.0 → 3.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/nuxeo-development-framework.umd.js +430 -75
- package/bundles/nuxeo-development-framework.umd.js.map +1 -1
- package/esm2015/lib/components/display-suitable-icon/display-suitable-icon/icon.service.js +3 -3
- package/esm2015/lib/components/file-manger/components/clipboard/clipboard.component.js +264 -0
- package/esm2015/lib/components/file-manger/components/scan-modal/scan-modal.component.js +9 -8
- package/esm2015/lib/components/file-manger/components/sidepanel/sidepanel.component.js +18 -17
- package/esm2015/lib/components/file-manger/file-manager.abstract.js +30 -3
- package/esm2015/lib/components/file-manger/file-manger.module.js +28 -8
- package/esm2015/lib/shared-services/file-manager.service.js +62 -10
- package/esm2015/lib/shared-services/mainfolder.service.js +17 -14
- package/esm2015/public-api.js +2 -1
- package/fesm2015/nuxeo-development-framework.js +422 -75
- package/fesm2015/nuxeo-development-framework.js.map +1 -1
- package/lib/components/file-manger/components/clipboard/clipboard.component.d.ts +41 -0
- package/lib/components/file-manger/file-manager.abstract.d.ts +4 -0
- package/lib/components/file-manger/file-manger.module.d.ts +37 -33
- package/lib/shared-services/file-manager.service.d.ts +6 -1
- package/lib/shared-services/mainfolder.service.d.ts +7 -4
- package/package.json +1 -1
- package/public-api.d.ts +1 -0
|
@@ -63,7 +63,7 @@ import * as i2$3 from '@angular/material/list';
|
|
|
63
63
|
import { MatListModule } from '@angular/material/list';
|
|
64
64
|
import { Utils } from 'formiojs';
|
|
65
65
|
import * as _ from 'lodash';
|
|
66
|
-
import { filter, sortBy, each, unionWith, isEqual, cloneDeep, isNil } from 'lodash';
|
|
66
|
+
import { filter, sortBy, each, unionWith, isEqual, cloneDeep, isNil, union } from 'lodash';
|
|
67
67
|
import * as i3$3 from '@angular/cdk/bidi';
|
|
68
68
|
import * as i6$2 from '@angular/material/form-field';
|
|
69
69
|
import { Cacheable, LocalStorageStrategy, CacheBuster } from 'ts-cacheable';
|
|
@@ -19327,7 +19327,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImpor
|
|
|
19327
19327
|
class IconService {
|
|
19328
19328
|
constructor() { }
|
|
19329
19329
|
getFileIcon(document, dataType) {
|
|
19330
|
-
var _a;
|
|
19330
|
+
var _a, _b, _c, _d;
|
|
19331
19331
|
let thumb = 'assets/drive-icons/genericfile.png';
|
|
19332
19332
|
if (dataType === 'document') {
|
|
19333
19333
|
try {
|
|
@@ -19359,7 +19359,7 @@ class IconService {
|
|
|
19359
19359
|
//(document.contextParameters.thumbnail.url) ? document.contextParameters.thumbnail.url : 'assets/drive-icons/video.png';
|
|
19360
19360
|
}
|
|
19361
19361
|
else if ((document.properties.file || document.properties['file:content'])['mime-type'].includes('image')) {
|
|
19362
|
-
thumb = (document.contextParameters.thumbnail) ? document.contextParameters.thumbnail.url : 'assets/drive-icons/photo.png';
|
|
19362
|
+
thumb = ((_b = document === null || document === void 0 ? void 0 : document.contextParameters) === null || _b === void 0 ? void 0 : _b.thumbnail) ? (_d = (_c = document === null || document === void 0 ? void 0 : document.contextParameters) === null || _c === void 0 ? void 0 : _c.thumbnail) === null || _d === void 0 ? void 0 : _d.url : 'assets/drive-icons/photo.png';
|
|
19363
19363
|
}
|
|
19364
19364
|
else if ((document.properties.file || document.properties['file:content'])['mime-type'].includes('zip')) {
|
|
19365
19365
|
thumb = 'assets/drive-icons/zip.png';
|
|
@@ -19533,13 +19533,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImpor
|
|
|
19533
19533
|
}], ctorParameters: function () { return [{ type: i3.DatePipe }, { type: IconService }]; } });
|
|
19534
19534
|
|
|
19535
19535
|
class MainfolderService {
|
|
19536
|
-
constructor(nuxeoService, userPreference) {
|
|
19536
|
+
constructor(nuxeoService, appConfigService, userPreference) {
|
|
19537
19537
|
this.nuxeoService = nuxeoService;
|
|
19538
|
+
this.appConfigService = appConfigService;
|
|
19538
19539
|
this.userPreference = userPreference;
|
|
19540
|
+
this.localStoragKeys = this.appConfigService.myConfiguration.localStorageKey;
|
|
19539
19541
|
}
|
|
19540
|
-
fetchfileManager_mainFolderId() {
|
|
19542
|
+
fetchfileManager_mainFolderId(apiName) {
|
|
19541
19543
|
return from(this.nuxeoService.nuxeoClient
|
|
19542
|
-
.operation('AC_UA_GetFileManagerID')
|
|
19544
|
+
.operation(apiName ? apiName : 'AC_UA_GetFileManagerID')
|
|
19543
19545
|
.execute({
|
|
19544
19546
|
headers: {
|
|
19545
19547
|
properties: 'file, dublincore, creator, driveroot, departmentspace',
|
|
@@ -19589,10 +19591,10 @@ class MainfolderService {
|
|
|
19589
19591
|
return of(false);
|
|
19590
19592
|
}));
|
|
19591
19593
|
}
|
|
19592
|
-
save_fileManagerObj_ToLocalStorage(
|
|
19594
|
+
save_fileManagerObj_ToLocalStorage(apiName = 'AC_UA_GetFileManagerID') {
|
|
19593
19595
|
/*return this.userPreference.hasItem('fileManagerObj') && !reset
|
|
19594
19596
|
? of(true):*/
|
|
19595
|
-
return this.fetchfileManager_mainFolderId().pipe(tap((res) => {
|
|
19597
|
+
return this.fetchfileManager_mainFolderId(apiName).pipe(tap((res) => {
|
|
19596
19598
|
console.log('res: ', res);
|
|
19597
19599
|
if (res) {
|
|
19598
19600
|
this.fileManagerObj = {
|
|
@@ -19604,9 +19606,9 @@ class MainfolderService {
|
|
|
19604
19606
|
return item;
|
|
19605
19607
|
}),
|
|
19606
19608
|
};
|
|
19607
|
-
this.userPreference.set('fileManagerObj', JSON.stringify(this.fileManagerObj));
|
|
19609
|
+
this.userPreference.set(apiName ? this.localStoragKeys[apiName] : 'fileManagerObj', JSON.stringify(this.fileManagerObj));
|
|
19608
19610
|
}
|
|
19609
|
-
}), switchMap(value => of(this.get_fileManagerObj_FromLocalStorage())));
|
|
19611
|
+
}), switchMap(value => of(this.get_fileManagerObj_FromLocalStorage(apiName ? this.localStoragKeys[apiName] : 'fileManagerObj'))));
|
|
19610
19612
|
}
|
|
19611
19613
|
save_myfilesManagerObj_ToLocalStorage() {
|
|
19612
19614
|
return this.userPreference.hasItem('myFilesManagerObj')
|
|
@@ -19649,9 +19651,9 @@ class MainfolderService {
|
|
|
19649
19651
|
}
|
|
19650
19652
|
}));
|
|
19651
19653
|
}
|
|
19652
|
-
get_fileManagerObj_FromLocalStorage() {
|
|
19653
|
-
if (this.userPreference.hasItem('fileManagerObj')) {
|
|
19654
|
-
return JSON.parse(this.userPreference.get('fileManagerObj'));
|
|
19654
|
+
get_fileManagerObj_FromLocalStorage(key) {
|
|
19655
|
+
if (this.userPreference.hasItem(key ? key : 'fileManagerObj')) {
|
|
19656
|
+
return JSON.parse(this.userPreference.get(key ? key : 'fileManagerObj'));
|
|
19655
19657
|
}
|
|
19656
19658
|
return null;
|
|
19657
19659
|
}
|
|
@@ -19674,14 +19676,14 @@ class MainfolderService {
|
|
|
19674
19676
|
return null;
|
|
19675
19677
|
}
|
|
19676
19678
|
}
|
|
19677
|
-
MainfolderService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: MainfolderService, deps: [{ token: NuxeoService$1 }, { token: UserPreferencesService$1 }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
19679
|
+
MainfolderService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: MainfolderService, deps: [{ token: NuxeoService$1 }, { token: AppConfigService }, { token: UserPreferencesService$1 }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
19678
19680
|
MainfolderService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: MainfolderService, providedIn: 'root' });
|
|
19679
19681
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: MainfolderService, decorators: [{
|
|
19680
19682
|
type: Injectable,
|
|
19681
19683
|
args: [{
|
|
19682
19684
|
providedIn: 'root',
|
|
19683
19685
|
}]
|
|
19684
|
-
}], ctorParameters: function () { return [{ type: NuxeoService$1 }, { type: UserPreferencesService$1 }]; } });
|
|
19686
|
+
}], ctorParameters: function () { return [{ type: NuxeoService$1 }, { type: AppConfigService }, { type: UserPreferencesService$1 }]; } });
|
|
19685
19687
|
|
|
19686
19688
|
class RecentlyViewedService {
|
|
19687
19689
|
constructor(userPreference, callApiService) {
|
|
@@ -19753,12 +19755,14 @@ class FileManagerService {
|
|
|
19753
19755
|
this.router = router;
|
|
19754
19756
|
this.recentlyViewedService = recentlyViewedService;
|
|
19755
19757
|
this.onRefreshingFileManger = new Subject();
|
|
19758
|
+
this.onRefreshClipboard = new EventEmitter();
|
|
19756
19759
|
this.permissionsList = ['canDelete', 'canCreate', 'canDownload', 'canUpdate', 'canPublish', 'canPublishFolders', 'canGet', 'canCopy', 'canCopyFile', 'canDeleteFromSourceParent',
|
|
19757
19760
|
'canRenameToSourceParent', 'setSynchronize', 'setUnSynchronize', 'canAddToQuickAccess', 'canShare', 'canRename', 'canMove', 'canMoveFile', 'lockOwnerIfLocked', 'notSecretFile', 'isUserSubscriberToFile', 'canSubscribe'];
|
|
19758
19761
|
this.userPermittedTypes = [];
|
|
19759
19762
|
this.userPermittedTypesTotalSize = -1;
|
|
19760
19763
|
this.userPermittedFilesOnly = [];
|
|
19761
19764
|
this.isArabic = false;
|
|
19765
|
+
this.clipboardPermissionList = ['canCopy', 'canMove'];
|
|
19762
19766
|
// getTreeNodeChildren = (parent) => {
|
|
19763
19767
|
// let params = {
|
|
19764
19768
|
// queryParams: parent ? parent : '',
|
|
@@ -19795,6 +19799,7 @@ class FileManagerService {
|
|
|
19795
19799
|
.toPromise();
|
|
19796
19800
|
};
|
|
19797
19801
|
this.setMyTableConfiguration();
|
|
19802
|
+
this.myPagesRootNames = this.appConfService.myConfiguration.myPagesRootsNames;
|
|
19798
19803
|
this.langSubscription = this.translationService.isArabic$.subscribe(res => {
|
|
19799
19804
|
this.isArabic = res;
|
|
19800
19805
|
this.userPermittedTypes = this.sortingTypes(this.userPermittedTypes);
|
|
@@ -19810,6 +19815,53 @@ class FileManagerService {
|
|
|
19810
19815
|
this.fields = this.allFilesConfig.fields;
|
|
19811
19816
|
this.pageProvider = this.allFilesConfig.pageProvider;
|
|
19812
19817
|
}
|
|
19818
|
+
// return accepted types for certain id
|
|
19819
|
+
getClipboardAcceptedTypes(id) {
|
|
19820
|
+
return from(this.nuxeoService.nuxeoClient
|
|
19821
|
+
.repository()
|
|
19822
|
+
.headers({
|
|
19823
|
+
"properties": "*",
|
|
19824
|
+
'X-NXenrichers-document': 'accepted_children',
|
|
19825
|
+
})
|
|
19826
|
+
.fetch(id)).pipe(map((data) => {
|
|
19827
|
+
delete data._nuxeo;
|
|
19828
|
+
delete data._repository;
|
|
19829
|
+
return data;
|
|
19830
|
+
}), catchError((err) => {
|
|
19831
|
+
throw err;
|
|
19832
|
+
}));
|
|
19833
|
+
}
|
|
19834
|
+
getClipboardDocuments(docIds, sortObj) {
|
|
19835
|
+
return this.callApi.query({
|
|
19836
|
+
pageProvider: 'Documents_InList_PP',
|
|
19837
|
+
currentPageIndex: 0,
|
|
19838
|
+
offset: 0,
|
|
19839
|
+
pageSize: 15,
|
|
19840
|
+
system_uuid: JSON.stringify(docIds),
|
|
19841
|
+
sortBy: (sortObj) ? sortObj.sortBy : '',
|
|
19842
|
+
sortOrder: (sortObj) ? sortObj.sortOrder : ''
|
|
19843
|
+
}, {
|
|
19844
|
+
headers: {
|
|
19845
|
+
"X-NXproperties": "dublincore,file,dmsfolder,generaldocument",
|
|
19846
|
+
"enrichers-document": "thumbnail,permissions"
|
|
19847
|
+
}
|
|
19848
|
+
}).pipe(mergeMap((data) => from(data.entries).pipe(mergeMap(
|
|
19849
|
+
// this updates related to clipboard feature
|
|
19850
|
+
(item) => {
|
|
19851
|
+
item['isFile'] = this.checkIfDocumentIsFile(item);
|
|
19852
|
+
item['isSelected'] = false;
|
|
19853
|
+
const permissionsCalls = this.clipboardPermissionList.map(permission => {
|
|
19854
|
+
return this.permissionEvaluatorService.evaluateRule(permission, { entity: item });
|
|
19855
|
+
});
|
|
19856
|
+
return combineLatest(permissionsCalls);
|
|
19857
|
+
}, (original, detail) => {
|
|
19858
|
+
this.clipboardPermissionList.forEach((value, index) => {
|
|
19859
|
+
original[value] = detail[index];
|
|
19860
|
+
});
|
|
19861
|
+
}), toArray(), map(entry => ([...data.entries])))), catchError((err) => {
|
|
19862
|
+
throw err;
|
|
19863
|
+
}));
|
|
19864
|
+
}
|
|
19813
19865
|
sortingTypes(types) {
|
|
19814
19866
|
if (this.isArabic) {
|
|
19815
19867
|
types = types.sort((item1, item2) => {
|
|
@@ -20024,10 +20076,11 @@ class FileManagerService {
|
|
|
20024
20076
|
system_isTrashed: false,
|
|
20025
20077
|
pageSize: 500
|
|
20026
20078
|
};
|
|
20027
|
-
return (id == 'root' ? of(this.mainFolderService.get_fileManagerObj_FromLocalStorage()) :
|
|
20028
|
-
|
|
20029
|
-
|
|
20030
|
-
|
|
20079
|
+
return (id == 'root' ? of(this.mainFolderService.get_fileManagerObj_FromLocalStorage('fileManagerObj')) :
|
|
20080
|
+
id === 'workSpaceRoot' ? of(this.mainFolderService.get_fileManagerObj_FromLocalStorage('workSpaceFileMangerObj')) : this.callApi
|
|
20081
|
+
.query(Object.assign({ pageProvider: this.pageProvider }, params), {
|
|
20082
|
+
headers: this.headers,
|
|
20083
|
+
}))
|
|
20031
20084
|
.pipe(map((data) => data.entries.map((item) => this.adapter.adaptIn(item, this.fields))), map((entries) => entries.map((item) => this.fileManagerAdapter.adapt(item))), mergeMap((entries) => from(entries).pipe(mergeMap((item) => {
|
|
20032
20085
|
const permissionsCalls = this.permissionsList.map(permission => {
|
|
20033
20086
|
return this.permissionEvaluatorService.evaluateRule(permission, { entity: item.entity });
|
|
@@ -20087,10 +20140,11 @@ class FileManagerService {
|
|
|
20087
20140
|
currentPageIndex: 0,
|
|
20088
20141
|
pageSize: 500,
|
|
20089
20142
|
};
|
|
20090
|
-
return (id == 'root' ? this.mainFolderService.save_fileManagerObj_ToLocalStorage(
|
|
20091
|
-
|
|
20092
|
-
|
|
20093
|
-
|
|
20143
|
+
return (id == 'root' ? this.mainFolderService.save_fileManagerObj_ToLocalStorage('AC_UA_GetFileManagerID') :
|
|
20144
|
+
id == 'workSpaceRoot' ? this.mainFolderService.save_fileManagerObj_ToLocalStorage('AC_UA_GetSpaceID') : this.callApi
|
|
20145
|
+
.query(Object.assign({ pageProvider: 'PP_Document_Content_DB' }, params), {
|
|
20146
|
+
headers: this.headers,
|
|
20147
|
+
}))
|
|
20094
20148
|
.pipe(map((data) => data.entries.map((item) => this.adapter.adaptIn(item, this.fields))), map((entries) => entries.map((item) => this.fileManagerAdapter.adapt(item))), mergeMap((entries) => from(entries).pipe(mergeMap((item) => {
|
|
20095
20149
|
const permissionsCalls = this.permissionsList.map(permission => {
|
|
20096
20150
|
return this.permissionEvaluatorService.evaluateRule(permission, { entity: item.entity });
|
|
@@ -21780,6 +21834,47 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImpor
|
|
|
21780
21834
|
}]
|
|
21781
21835
|
}], ctorParameters: function () { return [{ type: NuxeoService$1 }, { type: i1$6.MatDialog }, { type: AdapterService }]; } });
|
|
21782
21836
|
|
|
21837
|
+
class DisplaySuitableIconComponent {
|
|
21838
|
+
constructor(iconService) {
|
|
21839
|
+
this.iconService = iconService;
|
|
21840
|
+
this.dataType = 'document';
|
|
21841
|
+
this.archive = false;
|
|
21842
|
+
}
|
|
21843
|
+
ngOnInit() {
|
|
21844
|
+
this.image = this.getFileIcon(this.data);
|
|
21845
|
+
}
|
|
21846
|
+
getFileIcon(document) {
|
|
21847
|
+
if (!this.archive)
|
|
21848
|
+
return this.iconService.getFileIcon(document, this.dataType);
|
|
21849
|
+
else
|
|
21850
|
+
return this.iconService.getArchivedDocumentIcon(document, this.dataType);
|
|
21851
|
+
}
|
|
21852
|
+
// used to recalculate icon when sorting in table ( when sorting component not rendered again so onint won't excuted )
|
|
21853
|
+
ngOnChanges() {
|
|
21854
|
+
this.image = this.getFileIcon(this.data);
|
|
21855
|
+
}
|
|
21856
|
+
}
|
|
21857
|
+
DisplaySuitableIconComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: DisplaySuitableIconComponent, deps: [{ token: IconService }], target: i0.ɵɵFactoryTarget.Component });
|
|
21858
|
+
DisplaySuitableIconComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.4", type: DisplaySuitableIconComponent, selector: "app-display-suitable-icon", inputs: { data: "data", size: "size", dataType: "dataType", archive: "archive" }, usesOnChanges: true, ngImport: i0, template: "<!-- <div *ngIf=\" data.type == 'Folder';else notFolder\">\r\n <div [style.width]=\"size\">\r\n <img class=\"w-full\" [src]=\"'assets/drive-icons/folder.png'\" />\r\n </div>\r\n</div>\r\n<ng-template #notFolder>\r\n <div *ngIf=\"!data.properties.file; else file\">\r\n <img class=\"w-full\" [src]=\"'assets/drive-icons/generic.png'\" />\r\n </div>\r\n <ng-template #file>\r\n <div *ngIf=\"data.properties.file['mime-type'].includes('image');else noImage\" [style.width]=\"size\">\r\n <img class=\"w-full\" [src]=\"data.contextParameters.thumbnail.url | secure | async\" />\r\n <ng-template #noImage>\r\n <mat-icon svgIcon=\"iconsmind:photo\" class=\"icon-size-6\"></mat-icon>\r\n </ng-template> \r\n </div>\r\n <div *ngIf=\" data.properties.file['mime-type'].includes('video');else noVideo\" [style.width]=\"size\">\r\n <figure class=\"hover-video w-full\">\r\n <img class=\"w-full\" [src]=\"data.contextParameters.thumbnail.url | secure | async\" />\r\n <figcaption>\r\n <mat-icon svgIcon=\"iconsmind:play_music\" class=\"icon-size-4\"></mat-icon>\r\n </figcaption>\r\n </figure>\r\n <ng-template #noVideo>\r\n <mat-icon svgIcon=\"iconsmind:video_2\" class=\"icon-size-6\"></mat-icon>\r\n </ng-template> \r\n </div>\r\n <div *ngIf=\" data.properties.file['mime-type'].includes('application')\">\r\n <mat-icon svgIcon=\"iconsmind:file\" class=\"icon-size-6\"></mat-icon>\r\n </div>\r\n </ng-template>\r\n</ng-template> -->\r\n\r\n\r\n<div [style.width]=\"size\">\r\n <img class=\"w-full\" [src]=\"image\" />\r\n</div>", styles: [".hover-video{display:inline-block;margin:8px;max-width:100%;min-width:100%;overflow:hidden;position:relative;text-align:center}.hover-video *{box-sizing:border-box;transition:all .45s ease}.hover-video:before,.hover-video:after{position:absolute;top:0;bottom:0;left:0;right:0;content:\"\";transition:all .3s ease;z-index:1;opacity:0;transform:scaleY(2)}.hover-video video{vertical-align:top;max-width:100%;-webkit-backface-visibility:hidden;backface-visibility:hidden}.hover-video figcaption{position:absolute;top:0;bottom:0;left:0;right:0;align-items:center;z-index:1;display:flex;flex-direction:column;justify-content:center;line-height:1.1em;opacity:0;z-index:2;transition-delay:.1s;font-size:24px;font-family:sans-serif;font-weight:400;letter-spacing:1px;text-transform:uppercase}.hover-video{transform:scale(1);opacity:1}.hover-video>video{opacity:.7}.hover-video figcaption{opacity:1}.hover-video:hover figcaption:hover{opacity:.5;background-color:#eaecee}\n"] });
|
|
21859
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: DisplaySuitableIconComponent, decorators: [{
|
|
21860
|
+
type: Component,
|
|
21861
|
+
args: [{
|
|
21862
|
+
selector: 'app-display-suitable-icon',
|
|
21863
|
+
templateUrl: './display-suitable-icon.component.html',
|
|
21864
|
+
styleUrls: ['./display-suitable-icon.component.scss']
|
|
21865
|
+
}]
|
|
21866
|
+
}], ctorParameters: function () { return [{ type: IconService }]; }, propDecorators: { data: [{
|
|
21867
|
+
type: Input,
|
|
21868
|
+
args: ['data']
|
|
21869
|
+
}], size: [{
|
|
21870
|
+
type: Input,
|
|
21871
|
+
args: ['size']
|
|
21872
|
+
}], dataType: [{
|
|
21873
|
+
type: Input
|
|
21874
|
+
}], archive: [{
|
|
21875
|
+
type: Input
|
|
21876
|
+
}] } });
|
|
21877
|
+
|
|
21783
21878
|
class DynamicTabsComponent {
|
|
21784
21879
|
constructor() {
|
|
21785
21880
|
this.tabs = [];
|
|
@@ -22822,7 +22917,7 @@ class SidepanelComponent {
|
|
|
22822
22917
|
}
|
|
22823
22918
|
}
|
|
22824
22919
|
SidepanelComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: SidepanelComponent, deps: [{ token: i3.DatePipe }, { token: UserPreferencesService$1 }, { token: DialogMangmentService }, { token: DynamicFormService }, { token: DocumentsService }, { token: TagsApiService }, { token: TranslationService$1 }, { token: i1$6.MatDialog }, { token: SharedDocsService }], target: i0.ɵɵFactoryTarget.Component });
|
|
22825
|
-
SidepanelComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.4", type: SidepanelComponent, selector: "app-sidepanel", inputs: { selectedItem: "selectedItem", menuOpen: "menuOpen", sourcePage: "sourcePage", allowAddAndBlock: "allowAddAndBlock" }, outputs: { onCloseSideMenu: "onCloseSideMenu" }, viewQueries: [{ propertyName: "detailsTemplate", first: true, predicate: ["detailsTemplate"], descendants: true, static: true }, { propertyName: "commentsTemplate", first: true, predicate: ["commentsTemplate"], descendants: true, static: true }, { propertyName: "activityTemplate", first: true, predicate: ["activityTemplate"], descendants: true, static: true }, { propertyName: "permissionsTemplate", first: true, predicate: ["permissionsTemplate"], descendants: true, static: true }, { propertyName: "filesTemplate", first: true, predicate: ["filesTemplate"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"side-menu-details\" SetRtl>\r\n <div class=\"h-full\" *ngIf=\"selectedItem && showDetails && !sideMenuLoading\">\r\n <div class=\"\">\r\n <div class=\"mb-3 px-5 py-1 w-100 flex border-b-2 items-center\">\r\n <title-with-icon class=\"-my-1.5\" [context]=\"selectedItem.entity\" [showTitle]=\"false\"></title-with-icon>\r\n\r\n <div class=\"justify-center flex flex-col flex-1 flex-grow-0 w-7/12\" *ngIf=\"!selectedItem.isDirectory\">\r\n <div class=\"text-base text-gray-500 font-bold truncate\"\r\n [title]=\"selectedItem.entity?.properties?.['file:content']?.['name']\"\r\n [alt]=\"selectedItem.entity?.properties?.['file:content']?.['name']\">\r\n {{selectedItem.entity?.properties?.['file:content']?.['name']}}\r\n </div>\r\n <div class=\"text-gray-500 text-sm\">\r\n {{((selectedItem.entity?.properties?.['file:content']?.['length']) / (1024 *\r\n 1024)).toFixed(2) }}\r\n MB\r\n </div>\r\n </div>\r\n <div class=\"\r\n d-flex\r\n items-center\r\n text-base text-gray-500\r\n font-bold\r\n \" *ngIf=\"selectedItem.isDirectory\">\r\n {{ selectedItem?.name }}\r\n </div>\r\n <ng-container *permission=\"{name: 'lockOwnerIfLocked', entity: selectedItem.entity}\">\r\n <mat-icon class=\"text-gray-500 cursor-pointer mx-3\"\r\n *permission=\"{name: 'canUpdate', entity: selectedItem.entity}\"\r\n matTooltip=\"{{ 'FOLDERS.UPDATE_DETAILS' | translate }}\"\r\n (click)=\"openUpdateFromSideMenu()\">edit</mat-icon>\r\n </ng-container>\r\n </div>\r\n <mat-icon class=\"close-icon text-gray-500\" (click)=\"closeDetailsMenu()\"\r\n [matTooltip]=\"'BUTTONS.CLOSE' | translate\">close</mat-icon>\r\n </div>\r\n <div class=\"dynamic-section\">\r\n <div class=\"mx-2 h-full\">\r\n <app-dynamic-tabs [tabs]=\"myTabs\"></app-dynamic-tabs>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"h-full font-bold d-flex justify-center items-center\" *ngIf=\"sideMenuLoading\">\r\n {{ \"loading\" | translate }}\r\n </div>\r\n</div>\r\n\r\n<!-- Comments -->\r\n<ng-template #commentsTemplate>\r\n <div class=\"overflow-auto h-full\">\r\n <app-comments-dashlet [correspondence]=\"sideMenuFileDetails\" [entityId]=\"selectedItem.entity.uid\"\r\n [showaddcomment]=\"true\" [row]=\"false\">\r\n </app-comments-dashlet>\r\n </div>\r\n</ng-template>\r\n\r\n<!-- myLogFile -->\r\n<ng-template #activityTemplate>\r\n <!-- <cts-viewer-log [correspondence]=\"selectedItem.entity\"></cts-viewer-log> -->\r\n <div class=\"h-full mt-3\">\r\n <app-activities-log [documentId]=\"selectedItem.entity.uid\" [documentTitle]=\"selectedItem.entity.title\"\r\n [file]=\"sideMenuFileDetails\"></app-activities-log>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #permissionsTemplate>\r\n <div class=\"h-full overflow-auto px-2 mt-3\">\r\n <app-permissions [sourcePage]=\"sourcePage\"\r\n [allowAddAndBlock]=\"allowAddAndBlock\" [document]=\"sideMenuFileDetails\"\r\n [documentId]=\"selectedItem.entity.uid\"></app-permissions>\r\n </div>\r\n</ng-template>\r\n\r\n<!-- Files Tab -->\r\n<ng-template #filesTemplate>\r\n <div class=\"h-full overflow-auto px-2 mt-3\">\r\n <cts-versions [file]=\"selectedItem.entity\"></cts-versions>\r\n </div>\r\n</ng-template>\r\n\r\n<!-- Details -->\r\n<ng-template #detailsTemplate>\r\n <div class=\"pb-2 mt-3 h-full px-2 overflow-auto\">\r\n <div class=\"static-data\">\r\n <div class=\"mt-5\">\r\n <div class=\"text-gray-500 font-bold text-base\">\r\n {{ \"FOLDERS.TITLE_ONLY\" | translate }}\r\n </div>\r\n <div class=\"text-gray-900 text-sm\">\r\n {{ dynamicFormData[\"dc:title\"] }}\r\n </div>\r\n </div>\r\n <div class=\"mt-3\">\r\n <div class=\"text-gray-500 font-bold text-base\">\r\n {{ \"FOLDERS.DESCRIPTION_ONLY\" | translate }}\r\n </div>\r\n <div class=\"text-gray-900 text-sm\">\r\n {{ dynamicFormData[\"dc:description\"] }}\r\n </div>\r\n </div>\r\n <div class=\"mt-3\">\r\n <div class=\"text-gray-500 font-bold text-base\">\r\n {{ \"FOLDERS.CREATED_AT\" | translate }}\r\n </div>\r\n <div class=\"text-gray-900 text-sm\">\r\n {{\r\n dynamicFormData[\"dc:created\"]\r\n | localizedDate: \"dd MMMM yyyy\":(isArabic? 'ar-AR' : 'en-US')\r\n }}\r\n </div>\r\n </div>\r\n <div class=\"mt-3\">\r\n <div class=\"text-gray-500 font-bold text-base\">\r\n {{ \"FOLDERS.LAST_MODIFIED\" | translate }}\r\n </div>\r\n <div class=\"text-gray-900 text-sm\">\r\n {{\r\n dynamicFormData[\"dc:modified\"]\r\n | localizedDate: \"dd MMMM yyyy\":(isArabic? 'ar-AR' : 'en-US')\r\n }}\r\n </div>\r\n </div>\r\n\r\n <div class=\"super-document-fields\">\r\n <div class=\"mt-3\" *ngIf='dynamicFormData[\"gdoc:documentSubject\"]'>\r\n <div class=\"text-gray-500 font-bold text-base\">\r\n {{ \"CREATE.DOCUMENT_SUBJECT\" | translate }}\r\n </div>\r\n <div class=\"text-gray-900 text-sm\">\r\n {{ dynamicFormData[\"gdoc:documentSubject\"] ? dynamicFormData[\"gdoc:documentSubject\"] : '--'}}\r\n </div>\r\n </div>\r\n\r\n <div class=\"mt-3\" *ngIf='dynamicFormData[\"gdoc:documentNumber\"]'>\r\n <div class=\"text-gray-500 font-bold text-base\">\r\n {{ \"CREATE.DOCUMENT_NUMBER\" | translate }}\r\n </div>\r\n <div class=\"text-gray-900 text-sm\">\r\n {{ dynamicFormData[\"gdoc:documentNumber\"] ? dynamicFormData[\"gdoc:documentNumber\"] : '--'}}\r\n </div>\r\n </div>\r\n\r\n <div class=\"mt-3\" *ngIf='dynamicFormData[\"gdoc:documentReferenceNumber\"]'>\r\n <div class=\"text-gray-500 font-bold text-base\">\r\n {{ \"CREATE.DOCUMENT_REF_NUMBER\" | translate }}\r\n </div>\r\n <div class=\"text-gray-900 text-sm\" dir=\"ltr\">\r\n {{ dynamicFormData[\"gdoc:documentReferenceNumber\"] ?\r\n dynamicFormData[\"gdoc:documentReferenceNumber\"] : '--'}}\r\n </div>\r\n </div>\r\n\r\n <div class=\"mt-3\" *ngIf='dynamicFormData[\"gdoc:gDocumentDate\"]'>\r\n <div class=\"text-gray-500 font-bold text-base\">\r\n {{ \"CREATE.DOCUMENT_DATE\" | translate }}\r\n </div>\r\n <div class=\"text-gray-900 text-sm\">\r\n {{ dynamicFormData[\"gdoc:gDocumentDate\"] ? (dynamicFormData[\"gdoc:gDocumentDate\"] |\r\n localizedDate: \"dd MMMM yyyy\":(isArabic? 'ar-AR' : 'en-US')) : '--'}}\r\n </div>\r\n </div>\r\n\r\n <div class=\"mt-3\" *ngIf='(selectedItem.entity.category && selectedItem.entity.category !== {})'>\r\n <div class=\"text-gray-500 font-bold text-base\">\r\n {{ \"CREATE.CATEGORY\" | translate }}\r\n </div>\r\n <div class=\"text-gray-900 text-sm\">\r\n {{ (selectedItem.entity.category && selectedItem.entity.category !== {}) ?\r\n (isArabic ? selectedItem.entity.category.arabicName : selectedItem.entity.category.englishName)\r\n : '--'}}\r\n </div>\r\n </div>\r\n <div class=\"mt-3\"\r\n *ngIf='(selectedItem.entity.categoryType && selectedItem.entity.categoryType.arabicName)'>\r\n <div class=\"text-gray-500 font-bold text-base\">\r\n {{ \"CREATE.CATEGORY_TYPE\" | translate }}\r\n </div>\r\n <div class=\"text-gray-900 text-sm\">\r\n {{ (selectedItem.entity.categoryType && selectedItem.entity.categoryType.arabicName) ?\r\n (isArabic ? selectedItem.entity.categoryType.arabicName :\r\n selectedItem.entity.categoryType.englishName)\r\n : '--'}}\r\n </div>\r\n </div>\r\n <div class=\"mt-3\" *ngIf='(selectedItem.entity.mainTopic && selectedItem.entity.mainTopic.arabicName)'>\r\n <div class=\"text-gray-500 font-bold text-base\">\r\n {{ \"CREATE.MAIN_TOPIC\" | translate }}\r\n </div>\r\n <div class=\"text-gray-900 text-sm\">\r\n {{ (selectedItem.entity.mainTopic && selectedItem.entity.mainTopic.arabicName) ?\r\n (isArabic ? selectedItem.entity.mainTopic.arabicName :\r\n selectedItem.entity.mainTopic.englishName)\r\n : '--'}}\r\n </div>\r\n </div>\r\n <div class=\"mt-3\"\r\n *ngIf='(selectedItem.entity.documentType && selectedItem.entity.documentType.arabicName)'>\r\n <div class=\"text-gray-500 font-bold text-base\">\r\n {{ \"CREATE.DOCUMENT_TYPE\" | translate }}\r\n </div>\r\n <div class=\"text-gray-900 text-sm\">\r\n {{ (selectedItem.entity.documentType && selectedItem.entity.documentType.arabicName) ?\r\n (isArabic ? selectedItem.entity.documentType.arabicName :\r\n selectedItem.entity.documentType.englishTitle)\r\n : '--'}}\r\n </div>\r\n </div>\r\n\r\n <div class=\"mt-3\" *ngIf='dynamicFormData[\"gdoc:secrecyLevel\"]'>\r\n <div class=\"text-gray-500 font-bold text-base\">\r\n {{ \"CREATE.SCRECY_LEVEL\" | translate }}\r\n </div>\r\n <div class=\"text-gray-900 text-sm\">\r\n {{ 'vocabulary.VOC_SecrecyLevel.' + dynamicFormData[\"gdoc:secrecyLevel\"] | translate}}\r\n </div>\r\n </div>\r\n\r\n <div class=\"mt-3\" *ngIf='dynamicFormData[\"gdoc:importance\"]'>\r\n <div class=\"text-gray-500 font-bold text-base\">\r\n {{ \"CREATE.IMPORTANCE_LEVEL\" | translate }}\r\n </div>\r\n <div class=\"text-gray-900 text-sm\">\r\n {{ 'vocabulary.VOC_Importance.' + dynamicFormData[\"gdoc:importance\"] | translate}}\r\n </div>\r\n </div>\r\n\r\n <div class=\"mt-3\" *ngIf='selectedItem.entity.department'>\r\n <div class=\"text-gray-500 font-bold text-base\">\r\n {{ \"CREATE.DEPARTMENT_NAME\" | translate }}\r\n </div>\r\n <div class=\"text-gray-900 text-sm\">\r\n {{ selectedItem.entity.department ?\r\n (isArabic ? selectedItem.entity.department.arabicName :\r\n selectedItem.entity.department.englishName)\r\n : '--'}}\r\n </div>\r\n </div>\r\n\r\n <!-- <div class=\"mt-3\" *ngIf='dynamicFormData[\"gdoc:departmentCode\"]'>\r\n <div class=\"text-gray-500 font-bold text-base\">\r\n {{ \"CREATE.DEPARTMENT_CODE\" | translate }}\r\n </div>\r\n <div class=\"text-gray-900 text-sm\">\r\n {{ dynamicFormData[\"gdoc:departmentCode\"] ? dynamicFormData[\"gdoc:departmentCode\"] : '--'}}\r\n </div>\r\n </div> -->\r\n\r\n <div class=\"mt-3\" *ngIf='dynamicFormData[\"gdoc:agencyCategoryCode\"]'>\r\n <div class=\"text-gray-500 font-bold text-base\">\r\n {{ \"CREATE.AGENCY_CATEGORY_CODE\" | translate }}\r\n </div>\r\n <div class=\"text-gray-900 text-sm\">\r\n {{ dynamicFormData[\"gdoc:agencyCategoryCode\"] ?\r\n (isArabic ? dynamicFormData[\"gdoc:agencyCategoryCode\"]['properties']['label_ar']\r\n : dynamicFormData[\"gdoc:agencyCategoryCode\"]['properties']['label_en'])\r\n : '--'}}\r\n </div>\r\n </div>\r\n\r\n <div class=\"mt-3\" *ngIf='dynamicFormData[\"gdoc:agencyNameCode\"]'>\r\n <div class=\"text-gray-500 font-bold text-base\">\r\n {{ \"CREATE.AGENCY_NAME\" | translate }}\r\n </div>\r\n <div class=\"text-gray-900 text-sm\">\r\n {{ dynamicFormData[\"gdoc:agencyNameCode\"] ?\r\n (isArabic ? dynamicFormData[\"gdoc:agencyNameCode\"]['properties']['label_ar']\r\n : dynamicFormData[\"gdoc:agencyNameCode\"]['properties']['label_en'])\r\n : '--'}}\r\n </div>\r\n </div>\r\n\r\n <div class=\"mt-3\" *ngIf='dynamicFormData[\"gdoc:countryCategoryCode\"]'>\r\n <div class=\"text-gray-500 font-bold text-base\">\r\n {{ \"CREATE.COUNTRY_CATEGORY_CODE\" | translate }}\r\n </div>\r\n <div class=\"text-gray-900 text-sm\">\r\n {{ dynamicFormData[\"gdoc:countryCategoryCode\"] ?\r\n (isArabic ? dynamicFormData[\"gdoc:countryCategoryCode\"]['properties']['label_ar']\r\n : dynamicFormData[\"gdoc:countryCategoryCode\"]['properties']['label_en'])\r\n : '--'}}\r\n\r\n </div>\r\n </div>\r\n\r\n <div class=\"mt-3\" *ngIf='dynamicFormData[\"gdoc:countryCode\"]'>\r\n <div class=\"text-gray-500 font-bold text-base\">\r\n {{ \"CREATE.COUNTRY_NAME\" | translate }}\r\n </div>\r\n <div class=\"text-gray-900 text-sm\">\r\n {{ dynamicFormData[\"gdoc:countryCode\"] ?\r\n (isArabic ? dynamicFormData[\"gdoc:countryCode\"]['properties']['label_ar']\r\n : dynamicFormData[\"gdoc:countryCode\"]['properties']['label_en'])\r\n : '--'}}\r\n </div>\r\n </div>\r\n <div class=\"mt-3\" *ngIf='dynamicFormData[\"gdoc:remarks\"]'>\r\n <div class=\"text-gray-500 font-bold text-base\">\r\n {{ \"CREATE.REMARKS\" | translate }}\r\n </div>\r\n <div class=\"text-gray-900 text-sm\">\r\n {{ dynamicFormData[\"gdoc:remarks\"] ? dynamicFormData[\"gdoc:remarks\"] : '--'}}\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"mt-3\">\r\n <div class=\"text-gray-500 font-bold text-base\">\r\n {{ \"FOLDERS.BY\" | translate }}\r\n </div>\r\n <div class=\"text-gray-900 text-sm d-flex\">\r\n <div class=\"d-flex items-center bg-gray-100 rounded-xl\">\r\n <app-user [user]=\"dynamicFormData['dc:creator']\"></app-user>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"mt-3\" *ngIf=\"dynamicFormData['dc:contributors'].length > 0\">\r\n <div class=\"text-gray-500 font-bold text-base\">\r\n {{ \"FOLDERS.CONTRUBITORS\" | translate }}\r\n </div>\r\n <div class=\"d-flex flex-wrap\">\r\n <div class=\"d-flex items-center bg-gray-100 rounded-xl mb-2\"\r\n *ngFor=\"let user of dynamicFormData['dc:contributors']\">\r\n <app-user [user]=\"user\"></app-user>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"mt-3\" *ngIf=\"sharedListUser.length > 0\">\r\n <div class=\"text-gray-500 font-bold text-base\">\r\n {{\"share.shareWith\" | translate}}\r\n </div>\r\n <div class=\"d-flex flex-wrap\">\r\n <div class=\"d-flex items-center bg-gray-100 rounded-xl mb-2\" *ngFor=\"let user of sharedListUser\">\r\n <app-user [user]=\"user\"></app-user>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"mt-5\" *ngIf=\"dynamicForm && dynamicFormData\">\r\n <app-multiple-dynamic-form-viewer [form]=\"dynamicForm\"\r\n [data]=\"dynamicFormData\"></app-multiple-dynamic-form-viewer>\r\n </div>\r\n <div class=\"tags-wrappers relative px-0 py-3\">\r\n <cts-correspondence-tags [correspondence]=\"sideMenuFileDetails\" [customClass]=\"'tags-dms-wrapper'\"\r\n [useParams]=\"true\" [addCustomApiName]=\"'Services.TagDocument'\"\r\n [deleteCustomApiName]=\"'Services.UntagDocument'\">\r\n </cts-correspondence-tags>\r\n </div>\r\n </div>\r\n</ng-template>", styles: [""], components: [{ type: i2$4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: DynamicTabsComponent, selector: "app-dynamic-tabs", inputs: ["tabs", "selectedIndex"] }, { type: CommentsDashletComponent, selector: "app-comments-dashlet", inputs: ["entityId", "correspondence", "row", "showaddcomment", "showCommentActions"] }, { type: ActivitiesLogComponent, selector: "app-activities-log", inputs: ["documentId", "file", "documentTitle"], outputs: ["success"] }, { type: PermissionsComponent, selector: "app-permissions", inputs: ["documentId", "document", "allowAddAndBlock", "sourcePage"] }, { type: VersionsComponent, selector: "cts-versions", inputs: ["selectedVersion", "file", "actions"], outputs: ["handleActions"] }, { type: UserComponent, selector: "app-user", inputs: ["user", "type"] }, { type: MultipleDynamicFormViewerComponent, selector: "app-multiple-dynamic-form-viewer", inputs: ["form", "data"] }, { type: CorrespondenceTagsComponent, selector: "cts-correspondence-tags", inputs: ["correspondence", "customClass", "addCustomApiName", "deleteCustomApiName", "useParams", "accordionMode", "systemTags", "accordionOpen", "title"] }], directives: [{ type: SetRtlDirective, selector: "[SetRtl]" }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: PermissionsDirective, selector: "[permission]", inputs: ["permission"] }, { type: i8.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltipPosition", "matTooltipDisabled", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { type: i3$3.Dir, selector: "[dir]", inputs: ["dir"], outputs: ["dirChange"], exportAs: ["dir"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "translate": i1$1.TranslatePipe, "localizedDate": LocalizedDatePipe }, encapsulation: i0.ViewEncapsulation.None });
|
|
22920
|
+
SidepanelComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.4", type: SidepanelComponent, selector: "app-sidepanel", inputs: { selectedItem: "selectedItem", menuOpen: "menuOpen", sourcePage: "sourcePage", allowAddAndBlock: "allowAddAndBlock" }, outputs: { onCloseSideMenu: "onCloseSideMenu" }, viewQueries: [{ propertyName: "detailsTemplate", first: true, predicate: ["detailsTemplate"], descendants: true, static: true }, { propertyName: "commentsTemplate", first: true, predicate: ["commentsTemplate"], descendants: true, static: true }, { propertyName: "activityTemplate", first: true, predicate: ["activityTemplate"], descendants: true, static: true }, { propertyName: "permissionsTemplate", first: true, predicate: ["permissionsTemplate"], descendants: true, static: true }, { propertyName: "filesTemplate", first: true, predicate: ["filesTemplate"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"side-menu-details\" SetRtl>\r\n <div class=\"h-full\" *ngIf=\"selectedItem && showDetails && !sideMenuLoading\">\r\n <div class=\"\">\r\n <div class=\"mb-3 px-5 py-1 w-100 flex border-b-2 items-center\">\r\n <!-- <title-with-icon class=\"-my-1.5\" [context]=\"selectedItem.entity\" [showTitle]=\"false\"></title-with-icon> -->\r\n <app-display-suitable-icon [data]=\"selectedItem\" [size]=\"'40px'\"></app-display-suitable-icon>\r\n\r\n <div class=\"justify-center flex flex-col flex-1 flex-grow-0 w-7/12\" *ngIf=\"!selectedItem.isDirectory\">\r\n <div class=\"text-base text-gray-500 font-bold truncate\"\r\n [title]=\"selectedItem.entity?.properties?.['file:content']?.['name']\"\r\n [alt]=\"selectedItem.entity?.properties?.['file:content']?.['name']\">\r\n {{selectedItem.entity?.properties?.['file:content']?.['name']}}\r\n </div>\r\n <div class=\"text-gray-500 text-sm\">\r\n {{((selectedItem.entity?.properties?.['file:content']?.['length']) / (1024 *\r\n 1024)).toFixed(2) }}\r\n MB\r\n </div>\r\n </div>\r\n <div class=\"\r\n d-flex\r\n items-center\r\n text-base text-gray-500\r\n font-bold\r\n \" *ngIf=\"selectedItem.isDirectory\">\r\n {{ selectedItem?.name }}\r\n </div>\r\n <ng-container *permission=\"{name: 'lockOwnerIfLocked', entity: selectedItem.entity}\">\r\n <mat-icon class=\"text-gray-500 cursor-pointer mx-3\"\r\n *permission=\"{name: 'canUpdate', entity: selectedItem.entity}\"\r\n matTooltip=\"{{ 'FOLDERS.UPDATE_DETAILS' | translate }}\"\r\n (click)=\"openUpdateFromSideMenu()\">edit</mat-icon>\r\n </ng-container>\r\n </div>\r\n <mat-icon class=\"close-icon text-gray-500\" (click)=\"closeDetailsMenu()\"\r\n [matTooltip]=\"'BUTTONS.CLOSE' | translate\">close</mat-icon>\r\n </div>\r\n <div class=\"dynamic-section\">\r\n <div class=\"mx-2 h-full\">\r\n <app-dynamic-tabs [tabs]=\"myTabs\"></app-dynamic-tabs>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"h-full font-bold d-flex justify-center items-center\" *ngIf=\"sideMenuLoading\">\r\n {{ \"loading\" | translate }}\r\n </div>\r\n</div>\r\n\r\n<!-- Comments -->\r\n<ng-template #commentsTemplate>\r\n <div class=\"overflow-auto h-full\">\r\n <app-comments-dashlet [correspondence]=\"sideMenuFileDetails\" [entityId]=\"selectedItem.entity.uid\"\r\n [showaddcomment]=\"true\" [row]=\"false\">\r\n </app-comments-dashlet>\r\n </div>\r\n</ng-template>\r\n\r\n<!-- myLogFile -->\r\n<ng-template #activityTemplate>\r\n <!-- <cts-viewer-log [correspondence]=\"selectedItem.entity\"></cts-viewer-log> -->\r\n <div class=\"h-full mt-3\">\r\n <app-activities-log [documentId]=\"selectedItem.entity.uid\" [documentTitle]=\"selectedItem.entity.title\"\r\n [file]=\"sideMenuFileDetails\"></app-activities-log>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #permissionsTemplate>\r\n <div class=\"h-full overflow-auto px-2 mt-3\">\r\n <app-permissions [sourcePage]=\"sourcePage\"\r\n [allowAddAndBlock]=\"allowAddAndBlock\" [document]=\"sideMenuFileDetails\"\r\n [documentId]=\"selectedItem.entity.uid\"></app-permissions>\r\n </div>\r\n</ng-template>\r\n\r\n<!-- Files Tab -->\r\n<ng-template #filesTemplate>\r\n <div class=\"h-full overflow-auto px-2 mt-3\">\r\n <cts-versions [file]=\"selectedItem.entity\"></cts-versions>\r\n </div>\r\n</ng-template>\r\n\r\n<!-- Details -->\r\n<ng-template #detailsTemplate>\r\n <div class=\"pb-2 mt-3 h-full px-2 overflow-auto\">\r\n <div class=\"static-data\">\r\n <div class=\"mt-5\">\r\n <div class=\"text-gray-500 font-bold text-base\">\r\n {{ \"FOLDERS.TITLE_ONLY\" | translate }}\r\n </div>\r\n <div class=\"text-gray-900 text-sm\">\r\n {{ dynamicFormData[\"dc:title\"] }}\r\n </div>\r\n </div>\r\n <div class=\"mt-3\">\r\n <div class=\"text-gray-500 font-bold text-base\">\r\n {{ \"FOLDERS.DESCRIPTION_ONLY\" | translate }}\r\n </div>\r\n <div class=\"text-gray-900 text-sm\">\r\n {{ dynamicFormData[\"dc:description\"] }}\r\n </div>\r\n </div>\r\n <div class=\"mt-3\">\r\n <div class=\"text-gray-500 font-bold text-base\">\r\n {{ \"FOLDERS.CREATED_AT\" | translate }}\r\n </div>\r\n <div class=\"text-gray-900 text-sm\">\r\n {{\r\n dynamicFormData[\"dc:created\"]\r\n | localizedDate: \"dd MMMM yyyy\":(isArabic? 'ar-AR' : 'en-US')\r\n }}\r\n </div>\r\n </div>\r\n <div class=\"mt-3\">\r\n <div class=\"text-gray-500 font-bold text-base\">\r\n {{ \"FOLDERS.LAST_MODIFIED\" | translate }}\r\n </div>\r\n <div class=\"text-gray-900 text-sm\">\r\n {{\r\n dynamicFormData[\"dc:modified\"]\r\n | localizedDate: \"dd MMMM yyyy\":(isArabic? 'ar-AR' : 'en-US')\r\n }}\r\n </div>\r\n </div>\r\n\r\n <div class=\"super-document-fields\">\r\n <div class=\"mt-3\" *ngIf='dynamicFormData[\"gdoc:documentSubject\"]'>\r\n <div class=\"text-gray-500 font-bold text-base\">\r\n {{ \"CREATE.DOCUMENT_SUBJECT\" | translate }}\r\n </div>\r\n <div class=\"text-gray-900 text-sm\">\r\n {{ dynamicFormData[\"gdoc:documentSubject\"] ? dynamicFormData[\"gdoc:documentSubject\"] : '--'}}\r\n </div>\r\n </div>\r\n\r\n <div class=\"mt-3\" *ngIf='dynamicFormData[\"gdoc:documentNumber\"]'>\r\n <div class=\"text-gray-500 font-bold text-base\">\r\n {{ \"CREATE.DOCUMENT_NUMBER\" | translate }}\r\n </div>\r\n <div class=\"text-gray-900 text-sm\">\r\n {{ dynamicFormData[\"gdoc:documentNumber\"] ? dynamicFormData[\"gdoc:documentNumber\"] : '--'}}\r\n </div>\r\n </div>\r\n\r\n <div class=\"mt-3\" *ngIf='dynamicFormData[\"gdoc:documentReferenceNumber\"]'>\r\n <div class=\"text-gray-500 font-bold text-base\">\r\n {{ \"CREATE.DOCUMENT_REF_NUMBER\" | translate }}\r\n </div>\r\n <div class=\"text-gray-900 text-sm\" dir=\"ltr\">\r\n {{ dynamicFormData[\"gdoc:documentReferenceNumber\"] ?\r\n dynamicFormData[\"gdoc:documentReferenceNumber\"] : '--'}}\r\n </div>\r\n </div>\r\n\r\n <div class=\"mt-3\" *ngIf='dynamicFormData[\"gdoc:gDocumentDate\"]'>\r\n <div class=\"text-gray-500 font-bold text-base\">\r\n {{ \"CREATE.DOCUMENT_DATE\" | translate }}\r\n </div>\r\n <div class=\"text-gray-900 text-sm\">\r\n {{ dynamicFormData[\"gdoc:gDocumentDate\"] ? (dynamicFormData[\"gdoc:gDocumentDate\"] |\r\n localizedDate: \"dd MMMM yyyy\":(isArabic? 'ar-AR' : 'en-US')) : '--'}}\r\n </div>\r\n </div>\r\n\r\n <div class=\"mt-3\" *ngIf='(selectedItem.entity.category && selectedItem.entity.category !== {})'>\r\n <div class=\"text-gray-500 font-bold text-base\">\r\n {{ \"CREATE.CATEGORY\" | translate }}\r\n </div>\r\n <div class=\"text-gray-900 text-sm\">\r\n {{ (selectedItem.entity.category && selectedItem.entity.category !== {}) ?\r\n (isArabic ? selectedItem.entity.category.arabicName : selectedItem.entity.category.englishName)\r\n : '--'}}\r\n </div>\r\n </div>\r\n <div class=\"mt-3\"\r\n *ngIf='(selectedItem.entity.categoryType && selectedItem.entity.categoryType.arabicName)'>\r\n <div class=\"text-gray-500 font-bold text-base\">\r\n {{ \"CREATE.CATEGORY_TYPE\" | translate }}\r\n </div>\r\n <div class=\"text-gray-900 text-sm\">\r\n {{ (selectedItem.entity.categoryType && selectedItem.entity.categoryType.arabicName) ?\r\n (isArabic ? selectedItem.entity.categoryType.arabicName :\r\n selectedItem.entity.categoryType.englishName)\r\n : '--'}}\r\n </div>\r\n </div>\r\n <div class=\"mt-3\" *ngIf='(selectedItem.entity.mainTopic && selectedItem.entity.mainTopic.arabicName)'>\r\n <div class=\"text-gray-500 font-bold text-base\">\r\n {{ \"CREATE.MAIN_TOPIC\" | translate }}\r\n </div>\r\n <div class=\"text-gray-900 text-sm\">\r\n {{ (selectedItem.entity.mainTopic && selectedItem.entity.mainTopic.arabicName) ?\r\n (isArabic ? selectedItem.entity.mainTopic.arabicName :\r\n selectedItem.entity.mainTopic.englishName)\r\n : '--'}}\r\n </div>\r\n </div>\r\n <div class=\"mt-3\"\r\n *ngIf='(selectedItem.entity.documentType && selectedItem.entity.documentType.arabicName)'>\r\n <div class=\"text-gray-500 font-bold text-base\">\r\n {{ \"CREATE.DOCUMENT_TYPE\" | translate }}\r\n </div>\r\n <div class=\"text-gray-900 text-sm\">\r\n {{ (selectedItem.entity.documentType && selectedItem.entity.documentType.arabicName) ?\r\n (isArabic ? selectedItem.entity.documentType.arabicName :\r\n selectedItem.entity.documentType.englishTitle)\r\n : '--'}}\r\n </div>\r\n </div>\r\n\r\n <div class=\"mt-3\" *ngIf='dynamicFormData[\"gdoc:secrecyLevel\"]'>\r\n <div class=\"text-gray-500 font-bold text-base\">\r\n {{ \"CREATE.SCRECY_LEVEL\" | translate }}\r\n </div>\r\n <div class=\"text-gray-900 text-sm\">\r\n {{ 'vocabulary.VOC_SecrecyLevel.' + dynamicFormData[\"gdoc:secrecyLevel\"] | translate}}\r\n </div>\r\n </div>\r\n\r\n <div class=\"mt-3\" *ngIf='dynamicFormData[\"gdoc:importance\"]'>\r\n <div class=\"text-gray-500 font-bold text-base\">\r\n {{ \"CREATE.IMPORTANCE_LEVEL\" | translate }}\r\n </div>\r\n <div class=\"text-gray-900 text-sm\">\r\n {{ 'vocabulary.VOC_Importance.' + dynamicFormData[\"gdoc:importance\"] | translate}}\r\n </div>\r\n </div>\r\n\r\n <div class=\"mt-3\" *ngIf='selectedItem.entity.department'>\r\n <div class=\"text-gray-500 font-bold text-base\">\r\n {{ \"CREATE.DEPARTMENT_NAME\" | translate }}\r\n </div>\r\n <div class=\"text-gray-900 text-sm\">\r\n {{ selectedItem.entity.department ?\r\n (isArabic ? selectedItem.entity.department.arabicName :\r\n selectedItem.entity.department.englishName)\r\n : '--'}}\r\n </div>\r\n </div>\r\n\r\n <!-- <div class=\"mt-3\" *ngIf='dynamicFormData[\"gdoc:departmentCode\"]'>\r\n <div class=\"text-gray-500 font-bold text-base\">\r\n {{ \"CREATE.DEPARTMENT_CODE\" | translate }}\r\n </div>\r\n <div class=\"text-gray-900 text-sm\">\r\n {{ dynamicFormData[\"gdoc:departmentCode\"] ? dynamicFormData[\"gdoc:departmentCode\"] : '--'}}\r\n </div>\r\n </div> -->\r\n\r\n <div class=\"mt-3\" *ngIf='dynamicFormData[\"gdoc:agencyCategoryCode\"]'>\r\n <div class=\"text-gray-500 font-bold text-base\">\r\n {{ \"CREATE.AGENCY_CATEGORY_CODE\" | translate }}\r\n </div>\r\n <div class=\"text-gray-900 text-sm\">\r\n {{ dynamicFormData[\"gdoc:agencyCategoryCode\"] ?\r\n (isArabic ? dynamicFormData[\"gdoc:agencyCategoryCode\"]['properties']['label_ar']\r\n : dynamicFormData[\"gdoc:agencyCategoryCode\"]['properties']['label_en'])\r\n : '--'}}\r\n </div>\r\n </div>\r\n\r\n <div class=\"mt-3\" *ngIf='dynamicFormData[\"gdoc:agencyNameCode\"]'>\r\n <div class=\"text-gray-500 font-bold text-base\">\r\n {{ \"CREATE.AGENCY_NAME\" | translate }}\r\n </div>\r\n <div class=\"text-gray-900 text-sm\">\r\n {{ dynamicFormData[\"gdoc:agencyNameCode\"] ?\r\n (isArabic ? dynamicFormData[\"gdoc:agencyNameCode\"]['properties']['label_ar']\r\n : dynamicFormData[\"gdoc:agencyNameCode\"]['properties']['label_en'])\r\n : '--'}}\r\n </div>\r\n </div>\r\n\r\n <div class=\"mt-3\" *ngIf='dynamicFormData[\"gdoc:countryCategoryCode\"]'>\r\n <div class=\"text-gray-500 font-bold text-base\">\r\n {{ \"CREATE.COUNTRY_CATEGORY_CODE\" | translate }}\r\n </div>\r\n <div class=\"text-gray-900 text-sm\">\r\n {{ dynamicFormData[\"gdoc:countryCategoryCode\"] ?\r\n (isArabic ? dynamicFormData[\"gdoc:countryCategoryCode\"]['properties']['label_ar']\r\n : dynamicFormData[\"gdoc:countryCategoryCode\"]['properties']['label_en'])\r\n : '--'}}\r\n\r\n </div>\r\n </div>\r\n\r\n <div class=\"mt-3\" *ngIf='dynamicFormData[\"gdoc:countryCode\"]'>\r\n <div class=\"text-gray-500 font-bold text-base\">\r\n {{ \"CREATE.COUNTRY_NAME\" | translate }}\r\n </div>\r\n <div class=\"text-gray-900 text-sm\">\r\n {{ dynamicFormData[\"gdoc:countryCode\"] ?\r\n (isArabic ? dynamicFormData[\"gdoc:countryCode\"]['properties']['label_ar']\r\n : dynamicFormData[\"gdoc:countryCode\"]['properties']['label_en'])\r\n : '--'}}\r\n </div>\r\n </div>\r\n <div class=\"mt-3\" *ngIf='dynamicFormData[\"gdoc:remarks\"]'>\r\n <div class=\"text-gray-500 font-bold text-base\">\r\n {{ \"CREATE.REMARKS\" | translate }}\r\n </div>\r\n <div class=\"text-gray-900 text-sm\">\r\n {{ dynamicFormData[\"gdoc:remarks\"] ? dynamicFormData[\"gdoc:remarks\"] : '--'}}\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"mt-3\">\r\n <div class=\"text-gray-500 font-bold text-base\">\r\n {{ \"FOLDERS.BY\" | translate }}\r\n </div>\r\n <div class=\"text-gray-900 text-sm d-flex\">\r\n <div class=\"d-flex items-center bg-gray-100 rounded-xl\">\r\n <app-user [user]=\"dynamicFormData['dc:creator']\"></app-user>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"mt-3\" *ngIf=\"dynamicFormData['dc:contributors'].length > 0\">\r\n <div class=\"text-gray-500 font-bold text-base\">\r\n {{ \"FOLDERS.CONTRUBITORS\" | translate }}\r\n </div>\r\n <div class=\"d-flex flex-wrap\">\r\n <div class=\"d-flex items-center bg-gray-100 rounded-xl mb-2\"\r\n *ngFor=\"let user of dynamicFormData['dc:contributors']\">\r\n <app-user [user]=\"user\"></app-user>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"mt-3\" *ngIf=\"sharedListUser.length > 0\">\r\n <div class=\"text-gray-500 font-bold text-base\">\r\n {{\"share.shareWith\" | translate}}\r\n </div>\r\n <div class=\"d-flex flex-wrap\">\r\n <div class=\"d-flex items-center bg-gray-100 rounded-xl mb-2\" *ngFor=\"let user of sharedListUser\">\r\n <app-user [user]=\"user\"></app-user>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"mt-5\" *ngIf=\"dynamicForm && dynamicFormData\">\r\n <app-multiple-dynamic-form-viewer [form]=\"dynamicForm\"\r\n [data]=\"dynamicFormData\"></app-multiple-dynamic-form-viewer>\r\n </div>\r\n <div class=\"tags-wrappers relative px-0 py-3\">\r\n <cts-correspondence-tags [correspondence]=\"sideMenuFileDetails\" [customClass]=\"'tags-dms-wrapper'\"\r\n [useParams]=\"true\" [addCustomApiName]=\"'Services.TagDocument'\"\r\n [deleteCustomApiName]=\"'Services.UntagDocument'\">\r\n </cts-correspondence-tags>\r\n </div>\r\n </div>\r\n</ng-template>", styles: [""], components: [{ type: DisplaySuitableIconComponent, selector: "app-display-suitable-icon", inputs: ["data", "size", "dataType", "archive"] }, { type: i2$4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: DynamicTabsComponent, selector: "app-dynamic-tabs", inputs: ["tabs", "selectedIndex"] }, { type: CommentsDashletComponent, selector: "app-comments-dashlet", inputs: ["entityId", "correspondence", "row", "showaddcomment", "showCommentActions"] }, { type: ActivitiesLogComponent, selector: "app-activities-log", inputs: ["documentId", "file", "documentTitle"], outputs: ["success"] }, { type: PermissionsComponent, selector: "app-permissions", inputs: ["documentId", "document", "allowAddAndBlock", "sourcePage"] }, { type: VersionsComponent, selector: "cts-versions", inputs: ["selectedVersion", "file", "actions"], outputs: ["handleActions"] }, { type: UserComponent, selector: "app-user", inputs: ["user", "type"] }, { type: MultipleDynamicFormViewerComponent, selector: "app-multiple-dynamic-form-viewer", inputs: ["form", "data"] }, { type: CorrespondenceTagsComponent, selector: "cts-correspondence-tags", inputs: ["correspondence", "customClass", "addCustomApiName", "deleteCustomApiName", "useParams", "accordionMode", "systemTags", "accordionOpen", "title"] }], directives: [{ type: SetRtlDirective, selector: "[SetRtl]" }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: PermissionsDirective, selector: "[permission]", inputs: ["permission"] }, { type: i8.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltipPosition", "matTooltipDisabled", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { type: i3$3.Dir, selector: "[dir]", inputs: ["dir"], outputs: ["dirChange"], exportAs: ["dir"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "translate": i1$1.TranslatePipe, "localizedDate": LocalizedDatePipe }, encapsulation: i0.ViewEncapsulation.None });
|
|
22826
22921
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: SidepanelComponent, decorators: [{
|
|
22827
22922
|
type: Component,
|
|
22828
22923
|
args: [{
|
|
@@ -23745,47 +23840,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImpor
|
|
|
23745
23840
|
args: ['environment']
|
|
23746
23841
|
}] }, { type: NuxeoService$1 }, { type: DialogMangmentService }, { type: GlobalPdfTron }]; } });
|
|
23747
23842
|
|
|
23748
|
-
class DisplaySuitableIconComponent {
|
|
23749
|
-
constructor(iconService) {
|
|
23750
|
-
this.iconService = iconService;
|
|
23751
|
-
this.dataType = 'document';
|
|
23752
|
-
this.archive = false;
|
|
23753
|
-
}
|
|
23754
|
-
ngOnInit() {
|
|
23755
|
-
this.image = this.getFileIcon(this.data);
|
|
23756
|
-
}
|
|
23757
|
-
getFileIcon(document) {
|
|
23758
|
-
if (!this.archive)
|
|
23759
|
-
return this.iconService.getFileIcon(document, this.dataType);
|
|
23760
|
-
else
|
|
23761
|
-
return this.iconService.getArchivedDocumentIcon(document, this.dataType);
|
|
23762
|
-
}
|
|
23763
|
-
// used to recalculate icon when sorting in table ( when sorting component not rendered again so onint won't excuted )
|
|
23764
|
-
ngOnChanges() {
|
|
23765
|
-
this.image = this.getFileIcon(this.data);
|
|
23766
|
-
}
|
|
23767
|
-
}
|
|
23768
|
-
DisplaySuitableIconComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: DisplaySuitableIconComponent, deps: [{ token: IconService }], target: i0.ɵɵFactoryTarget.Component });
|
|
23769
|
-
DisplaySuitableIconComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.4", type: DisplaySuitableIconComponent, selector: "app-display-suitable-icon", inputs: { data: "data", size: "size", dataType: "dataType", archive: "archive" }, usesOnChanges: true, ngImport: i0, template: "<!-- <div *ngIf=\" data.type == 'Folder';else notFolder\">\r\n <div [style.width]=\"size\">\r\n <img class=\"w-full\" [src]=\"'assets/drive-icons/folder.png'\" />\r\n </div>\r\n</div>\r\n<ng-template #notFolder>\r\n <div *ngIf=\"!data.properties.file; else file\">\r\n <img class=\"w-full\" [src]=\"'assets/drive-icons/generic.png'\" />\r\n </div>\r\n <ng-template #file>\r\n <div *ngIf=\"data.properties.file['mime-type'].includes('image');else noImage\" [style.width]=\"size\">\r\n <img class=\"w-full\" [src]=\"data.contextParameters.thumbnail.url | secure | async\" />\r\n <ng-template #noImage>\r\n <mat-icon svgIcon=\"iconsmind:photo\" class=\"icon-size-6\"></mat-icon>\r\n </ng-template> \r\n </div>\r\n <div *ngIf=\" data.properties.file['mime-type'].includes('video');else noVideo\" [style.width]=\"size\">\r\n <figure class=\"hover-video w-full\">\r\n <img class=\"w-full\" [src]=\"data.contextParameters.thumbnail.url | secure | async\" />\r\n <figcaption>\r\n <mat-icon svgIcon=\"iconsmind:play_music\" class=\"icon-size-4\"></mat-icon>\r\n </figcaption>\r\n </figure>\r\n <ng-template #noVideo>\r\n <mat-icon svgIcon=\"iconsmind:video_2\" class=\"icon-size-6\"></mat-icon>\r\n </ng-template> \r\n </div>\r\n <div *ngIf=\" data.properties.file['mime-type'].includes('application')\">\r\n <mat-icon svgIcon=\"iconsmind:file\" class=\"icon-size-6\"></mat-icon>\r\n </div>\r\n </ng-template>\r\n</ng-template> -->\r\n\r\n\r\n<div [style.width]=\"size\">\r\n <img class=\"w-full\" [src]=\"image\" />\r\n</div>", styles: [".hover-video{display:inline-block;margin:8px;max-width:100%;min-width:100%;overflow:hidden;position:relative;text-align:center}.hover-video *{box-sizing:border-box;transition:all .45s ease}.hover-video:before,.hover-video:after{position:absolute;top:0;bottom:0;left:0;right:0;content:\"\";transition:all .3s ease;z-index:1;opacity:0;transform:scaleY(2)}.hover-video video{vertical-align:top;max-width:100%;-webkit-backface-visibility:hidden;backface-visibility:hidden}.hover-video figcaption{position:absolute;top:0;bottom:0;left:0;right:0;align-items:center;z-index:1;display:flex;flex-direction:column;justify-content:center;line-height:1.1em;opacity:0;z-index:2;transition-delay:.1s;font-size:24px;font-family:sans-serif;font-weight:400;letter-spacing:1px;text-transform:uppercase}.hover-video{transform:scale(1);opacity:1}.hover-video>video{opacity:.7}.hover-video figcaption{opacity:1}.hover-video:hover figcaption:hover{opacity:.5;background-color:#eaecee}\n"] });
|
|
23770
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: DisplaySuitableIconComponent, decorators: [{
|
|
23771
|
-
type: Component,
|
|
23772
|
-
args: [{
|
|
23773
|
-
selector: 'app-display-suitable-icon',
|
|
23774
|
-
templateUrl: './display-suitable-icon.component.html',
|
|
23775
|
-
styleUrls: ['./display-suitable-icon.component.scss']
|
|
23776
|
-
}]
|
|
23777
|
-
}], ctorParameters: function () { return [{ type: IconService }]; }, propDecorators: { data: [{
|
|
23778
|
-
type: Input,
|
|
23779
|
-
args: ['data']
|
|
23780
|
-
}], size: [{
|
|
23781
|
-
type: Input,
|
|
23782
|
-
args: ['size']
|
|
23783
|
-
}], dataType: [{
|
|
23784
|
-
type: Input
|
|
23785
|
-
}], archive: [{
|
|
23786
|
-
type: Input
|
|
23787
|
-
}] } });
|
|
23788
|
-
|
|
23789
23843
|
class AttachmentItemComponent {
|
|
23790
23844
|
constructor(translationService) {
|
|
23791
23845
|
this.translationService = translationService;
|
|
@@ -25094,7 +25148,7 @@ class ScanModalComponent {
|
|
|
25094
25148
|
}
|
|
25095
25149
|
}
|
|
25096
25150
|
ScanModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: ScanModalComponent, deps: [{ token: MAT_DIALOG_DATA }, { token: i1$6.MatDialogRef }, { token: UploadManagmentService }, { token: DialogMangmentService }, { token: FileManagerService }, { token: CustomToastrService }, { token: i6.FormBuilder }, { token: DynamicFormService }, { token: DateHelperService }, { token: AdapterService }, { token: TranslationService$1 }, { token: NuxeoService$1 }, { token: UserService }, { token: AppConfigService }, { token: 'environment' }, { token: DocumentScanService }], target: i0.ɵɵFactoryTarget.Component });
|
|
25097
|
-
ScanModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.4", type: ScanModalComponent, selector: "app-scan-modal", ngImport: i0, template: "<div class=\"scanner-modal-body relative h-full\">\r\n <!-- -->\r\n <!-- tabs -->\r\n <div\r\n class=\"scanner-tabs d-flex justify-around items-center border-b-2 border-gray-200 mb-5 text-gray-900 text-lg\"\r\n >\r\n <div\r\n class=\"scanner-single-tab cursor-pointer w-1/2 text-center py-2 border-gray-900 hover:bg-gray-100\"\r\n (click)=\"changTabTo('scan')\"\r\n [ngClass]=\"{ 'font-bold border-b-4': activeTab === 'scan' }\"\r\n >\r\n {{\"CREATE.SCAN\" | translate}}\r\n </div>\r\n <div\r\n class=\"scanner-single-tab cursor-pointer w-1/2 text-center py-2 border-gray-900 hover:bg-gray-100\"\r\n (click)=\"changTabTo('form')\"\r\n [ngClass]=\"{ 'font-bold border-b-4': activeTab === 'form' }\"\r\n >\r\n {{\"CREATE.DETAILS\" | translate}}\r\n </div>\r\n </div>\r\n <div class=\"tabs-body-wrapper\">\r\n <!-- uploader indicator loading -->\r\n <div\r\n class=\"upload-loader mx-2\"\r\n *ngIf=\"uploadMangmentService.uploadedFilesStatus.uploadInProgress\"\r\n >\r\n <mat-progress-bar mode=\"indeterminate\"></mat-progress-bar>\r\n </div>\r\n\r\n <!-- scanner -->\r\n <div class=\"\" [ngClass]=\"{ 'd-none': activeTab === 'form' }\">\r\n <app-document-scan\r\n [hideUploadButton]=\"true\"\r\n [useStoredFile]=\"true\"\r\n ></app-document-scan>\r\n </div>\r\n\r\n <!-- forms and properties -->\r\n <div\r\n class=\"forms-section\"\r\n [ngClass]=\"{ 'd-none': activeTab === 'scan' }\"\r\n >\r\n <div class=\"w-2/3\">\r\n <div class=\"mb-5\">\r\n <div class=\"label-style\">\r\n {{ \"CREATE.FILE_TYPE\" | translate }}\r\n </div>\r\n <div class=\"text-base text-gray-900\">\r\n {{ isArabic ? fileType.arabicText : fileType.englishText }}\r\n </div>\r\n </div>\r\n <div class=\"file-fields mt-3\" SetRtl>\r\n <form [formGroup]=\"fileForm\" *ngIf=\"fileForm\">\r\n <div class=\"single-field mb-3\">\r\n <div class=\"label-style\">\r\n {{ \"CREATE.TITLE\" | translate\r\n }}<span class=\"text-red-500\">*</span>\r\n </div>\r\n <input\r\n class=\"field-style\"\r\n formControlName=\"title\"\r\n placeholder=\" {{ 'CREATE.TITLE' | translate }}\"\r\n />\r\n </div>\r\n <div class=\"single-field mb-3\">\r\n <div class=\"label-style\">\r\n {{ \"CREATE.DESCRIPTION\" | translate }}\r\n </div>\r\n <input\r\n class=\"field-style\"\r\n formControlName=\"description\"\r\n placeholder=\" {{\r\n 'CREATE.DESCRIPTION' | translate\r\n }}\"\r\n />\r\n </div>\r\n\r\n <!------------------ new statis form ---------------------------->\r\n <div *ngIf=\"usingExtraFields\">\r\n \r\n <app-dynamic-fields-renderer [form]=\"fileForm\" [agencyNameFilter]=\"agencyNameFilter\" [countryNameFilter]=\"countryNameFilter\"></app-dynamic-fields-renderer>\r\n\r\n <!-- <div class=\"single-field mb-3\">\r\n <div class=\"label-style\">\r\n {{ \"CREATE.DOCUMENT_SUBJECT\" | translate\r\n }}<span class=\"text-red-500\">*</span>\r\n </div>\r\n <input\r\n class=\"field-style\"\r\n formControlName=\"subject\"\r\n placeholder=\" {{\r\n 'CREATE.DOCUMENT_SUBJECT' | translate\r\n }}\"\r\n />\r\n </div>\r\n <div class=\"single-field mb-3\">\r\n <div class=\"label-style\">\r\n {{ \"CREATE.DOCUMENT_NUMBER\" | translate }}\r\n </div>\r\n <input\r\n class=\"field-style\"\r\n formControlName=\"documentNumber\"\r\n placeholder=\" {{\r\n 'CREATE.DOCUMENT_NUMBER' | translate\r\n }}\"\r\n />\r\n </div>\r\n <div class=\"single-field mb-3\">\r\n <cts-dynamic-form-hijri-dateitem\r\n formControlName=\"gdocumentDate\"\r\n label=\"CREATE.DOCUMENT_DATE\"\r\n >\r\n </cts-dynamic-form-hijri-dateitem>\r\n </div>\r\n <div class=\"single-field mb-3\">\r\n <app-dynamic-form-vocabulary-item\r\n [label]=\"'CREATE.SCRECY_LEVEL'\"\r\n [bindLabel]=\"'label'\"\r\n [bindValue]=\"'id'\"\r\n placeholder=\"{{\r\n 'VOCABULARY.SELECT_ITEM' | translate\r\n }}\"\r\n [multiple]=\"false\"\r\n [searchable]=\"false\"\r\n [closeOnSelect]=\"true\"\r\n [hideSelectedItems]=\"false\"\r\n [vocabularyType]=\"'VOC_SecrecyLevel'\"\r\n formControlName=\"secrecyLevel\"\r\n >\r\n </app-dynamic-form-vocabulary-item>\r\n </div>\r\n <div class=\"single-field mb-3\">\r\n <app-dynamic-form-vocabulary-item\r\n [label]=\"'CREATE.IMPORTANCE_LEVEL'\"\r\n [bindLabel]=\"'label'\"\r\n [bindValue]=\"'id'\"\r\n placeholder=\"{{\r\n 'VOCABULARY.SELECT_ITEM' | translate\r\n }}\"\r\n [multiple]=\"false\"\r\n [searchable]=\"false\"\r\n [closeOnSelect]=\"true\"\r\n [hideSelectedItems]=\"false\"\r\n [vocabularyType]=\"'VOC_Importance'\"\r\n formControlName=\"importanceLevel\"\r\n >\r\n </app-dynamic-form-vocabulary-item>\r\n </div>\r\n\r\n <div class=\"single-field mb-3\">\r\n <div class=\"label-style\">\r\n {{ \"CREATE.DEPARTMENT_CODE\" | translate }}\r\n </div>\r\n <app-dynamic-form-department\r\n formControlName=\"departmentCode\"\r\n [placeholder]=\"'please select department'\"\r\n [pp_departmentNestedTree]=\"\r\n 'PP_OS_Departments'\r\n \"\r\n [pp_departmentTree]=\"'PP_OS_Departments'\"\r\n [customPrefix]=\"'osdept'\"\r\n [customParentProperty]=\"\r\n 'osdepartment_parentDepartmentCode'\r\n \"\r\n [useCustomAddEditAction]=\"true\"\r\n >\r\n </app-dynamic-form-department>\r\n </div>\r\n\r\n <div class=\"single-field mb-3\">\r\n <app-translated-vocabulary-select\r\n [label]=\"'CREATE.AGENCY_CATEGORY_CODE'\"\r\n [arbBindLabel]=\"'label_ar'\"\r\n [engBindLabel]=\"'label_en'\"\r\n [bindValue]=\"'id'\"\r\n placeholder=\"{{\r\n 'VOCABULARY.SELECT_ITEM' | translate\r\n }}\"\r\n [multiple]=\"false\"\r\n [searchable]=\"true\"\r\n [closeOnSelect]=\"true\"\r\n [hideSelectedItems]=\"false\"\r\n formControlName=\"agencyCategoryCode\"\r\n [vocbularyId]=\"'VOC_AgencyCategory'\"\r\n [useFilter]=\"false\"\r\n >\r\n </app-translated-vocabulary-select>\r\n </div>\r\n\r\n <div class=\"single-field mb-3\">\r\n <app-translated-vocabulary-select\r\n [label]=\"'CREATE.AGENCY_NAME'\"\r\n [arbBindLabel]=\"'label_ar'\"\r\n [engBindLabel]=\"'label_en'\"\r\n [bindValue]=\"'id'\"\r\n placeholder=\"{{\r\n 'VOCABULARY.SELECT_ITEM' | translate\r\n }}\"\r\n [multiple]=\"false\"\r\n [searchable]=\"true\"\r\n [closeOnSelect]=\"true\"\r\n [hideSelectedItems]=\"false\"\r\n formControlName=\"agencyName\"\r\n [vocbularyId]=\"'VOC_Agency'\"\r\n [filter]=\"agencyNameFilter\"\r\n [useFilter]=\"true\"\r\n >\r\n </app-translated-vocabulary-select>\r\n </div>\r\n\r\n <div class=\"single-field mb-3\">\r\n <app-translated-vocabulary-select\r\n [label]=\"'CREATE.COUNTRY_CATEGORY_CODE'\"\r\n [arbBindLabel]=\"'label_ar'\"\r\n [engBindLabel]=\"'label_en'\"\r\n [bindValue]=\"'id'\"\r\n placeholder=\"{{\r\n 'VOCABULARY.SELECT_ITEM' | translate\r\n }}\"\r\n [multiple]=\"false\"\r\n [searchable]=\"true\"\r\n [closeOnSelect]=\"true\"\r\n [hideSelectedItems]=\"false\"\r\n formControlName=\"countryCategoryCode\"\r\n [vocbularyId]=\"'VOC_CountryCategory'\"\r\n [useFilter]=\"false\"\r\n >\r\n </app-translated-vocabulary-select>\r\n </div>\r\n\r\n <div class=\"single-field mb-3\">\r\n <app-translated-vocabulary-select\r\n [label]=\"'CREATE.COUNTRY_NAME'\"\r\n [arbBindLabel]=\"'label_ar'\"\r\n [engBindLabel]=\"'label_en'\"\r\n [bindValue]=\"'id'\"\r\n placeholder=\"{{\r\n 'VOCABULARY.SELECT_ITEM' | translate\r\n }}\"\r\n [multiple]=\"false\"\r\n [searchable]=\"true\"\r\n [closeOnSelect]=\"true\"\r\n [hideSelectedItems]=\"false\"\r\n formControlName=\"countryName\"\r\n [vocbularyId]=\"'VOC_Country'\"\r\n [filter]=\"countryNameFilter\"\r\n [useFilter]=\"true\"\r\n >\r\n </app-translated-vocabulary-select>\r\n </div>\r\n\r\n <div class=\"single-field mb-3\">\r\n <div class=\"label-style\">\r\n {{ \"CREATE.REMARKS\" | translate }}\r\n </div>\r\n <input\r\n class=\"field-style\"\r\n formControlName=\"remarks\"\r\n placeholder=\" {{\r\n 'CREATE.REMARKS' | translate\r\n }}\"\r\n />\r\n </div> -->\r\n </div>\r\n\r\n <!-- ----------------------------------------------------------- -->\r\n </form>\r\n <!-- *ngIf=\"\" -->\r\n <div\r\n class=\"dynamic-part -mx-4\"\r\n *ngIf=\"selectedFile.dynamicForm && showRenderer\"\r\n >\r\n <app-dynamic-form\r\n [form]=\"selectedFile.dynamicForm\"\r\n [data]=\"temporaryDyanmicData\"\r\n (change)=\"ondynamicFormChange($event)\"\r\n ></app-dynamic-form>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <!-- actions and buttons -->\r\n <div\r\n class=\"w-full d-flex justify-between scanner-actions-wrapper absolute bottom-0\"\r\n >\r\n <div class=\"flex\">\r\n <button class=\"cancelation-button\" (click)=\"closeDialog()\">\r\n {{ \"BUTTONS.CANCEL\" | translate }}\r\n </button>\r\n <button class=\"cancelation-button mx-2\" (click)=\"minimizDialog()\">\r\n {{ \"BUTTONS.MINIMIZED\" | translate }}\r\n </button>\r\n </div>\r\n\r\n <!-- -->\r\n <div class=\"d-flex\">\r\n <!-- <button\r\n *ngIf=\"creationFailed\"\r\n [disabled]=\"\r\n scannerUploadButton.disabled ||\r\n !selectedFile.dynamicData.valid ||\r\n fileForm.invalid\r\n \"\r\n [ngClass]=\"{\r\n 'opacity-30 cursor-not-allowed':\r\n scannerUploadButton.disabled ||\r\n !selectedFile.dynamicData.valid ||\r\n fileForm.invalid\r\n }\"\r\n (click)=\"createDocument()\"\r\n class=\"submission-button\"\r\n >\r\n {{ \"BUTTONS.TRY_AGAIN\" | translate }}\r\n </button> -->\r\n <button\r\n (click)=\"createDocument()\"\r\n [disabled]=\"\r\n scannerUploadButton.disabled ||\r\n !selectedFile.dynamicData.valid ||\r\n fileForm.invalid\r\n \"\r\n [ngClass]=\"{\r\n 'opacity-30 cursor-not-allowed':\r\n scannerUploadButton.disabled ||\r\n !selectedFile.dynamicData.valid ||\r\n fileForm.invalid\r\n }\"\r\n class=\"submission-button\"\r\n >\r\n {{ uploadMangmentService.scanCreationFailed ? (\"BUTTONS.TRY_AGAIN\" | translate) : (\"BUTTONS.CREATE\" | translate) }}\r\n </button>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".forms-section{display:flex;justify-content:center}.tabs-body-wrapper{height:calc(100% - 125px);overflow-y:auto;overflow-x:hidden}\n"], components: [{ type: ScanComponent, selector: "app-document-scan", inputs: ["useStoredFile", "hideUploadButton"], outputs: ["file"] }, { type: DynamicFieldsRendererComponent, selector: "app-dynamic-fields-renderer", inputs: ["form", "agencyNameFilter", "countryNameFilter", "fields"] }, { type: DynamicFormComponent, selector: "app-dynamic-form", inputs: ["form", "data", "readOnly"], outputs: ["change"] }], directives: [{ type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: SetRtlDirective, selector: "[SetRtl]" }, { type: i6.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i6.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i6.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i6.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i6.FormControlName, selector: "[formControlName]", inputs: ["disabled", "formControlName", "ngModel"], outputs: ["ngModelChange"] }], pipes: { "translate": i1$1.TranslatePipe } });
|
|
25151
|
+
ScanModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.4", type: ScanModalComponent, selector: "app-scan-modal", ngImport: i0, template: "<div class=\"scanner-modal-body relative h-full\">\r\n <!-- -->\r\n <!-- tabs -->\r\n <div\r\n class=\"scanner-tabs d-flex justify-around items-center border-b-2 border-gray-200 mb-5 text-gray-900 text-lg\"\r\n >\r\n <div\r\n class=\"scanner-single-tab cursor-pointer w-1/2 text-center py-2 border-gray-900 hover:bg-gray-100\"\r\n (click)=\"changTabTo('scan')\"\r\n [ngClass]=\"{ 'font-bold border-b-4': activeTab === 'scan' }\"\r\n >\r\n {{\"CREATE.SCAN\" | translate}}\r\n </div>\r\n <div\r\n class=\"scanner-single-tab cursor-pointer w-1/2 text-center py-2 border-gray-900 hover:bg-gray-100\"\r\n (click)=\"changTabTo('form')\"\r\n [ngClass]=\"{ 'font-bold border-b-4': activeTab === 'form' }\"\r\n >\r\n {{\"CREATE.DETAILS\" | translate}}\r\n </div>\r\n </div>\r\n <div class=\"tabs-body-wrapper\">\r\n <!-- uploader indicator loading -->\r\n <div\r\n class=\"upload-loader mx-2\"\r\n *ngIf=\"uploadMangmentService.uploadedFilesStatus.uploadInProgress\"\r\n >\r\n <mat-progress-bar mode=\"indeterminate\"></mat-progress-bar>\r\n </div>\r\n\r\n <!-- scanner -->\r\n <div class=\"\" [ngClass]=\"{ 'd-none': activeTab === 'form' }\">\r\n <app-document-scan\r\n [hideUploadButton]=\"true\"\r\n [useStoredFile]=\"true\"\r\n ></app-document-scan>\r\n </div>\r\n\r\n <!-- forms and properties -->\r\n <div\r\n class=\"forms-section\"\r\n [ngClass]=\"{ 'd-none': activeTab === 'scan' }\"\r\n >\r\n <div class=\"w-2/3\">\r\n <div class=\"mb-5\">\r\n <div class=\"label-style\">\r\n {{ \"CREATE.FILE_TYPE\" | translate }}\r\n </div>\r\n <div class=\"text-base text-gray-900\">\r\n {{ isArabic ? fileType.arabicText : fileType.englishText }}\r\n </div>\r\n </div>\r\n <div class=\"file-fields mt-3\" SetRtl>\r\n <form [formGroup]=\"fileForm\" *ngIf=\"fileForm\">\r\n <div class=\"single-field mb-3\">\r\n <div class=\"label-style\">\r\n {{ \"CREATE.TITLE\" | translate\r\n }}<span class=\"text-red-500\">*</span>\r\n </div>\r\n <input\r\n class=\"field-style\"\r\n formControlName=\"title\"\r\n placeholder=\" {{ 'CREATE.TITLE' | translate }}\"\r\n />\r\n </div>\r\n <div class=\"single-field mb-3\">\r\n <div class=\"label-style\">\r\n {{ \"CREATE.DESCRIPTION\" | translate }}\r\n </div>\r\n <input\r\n class=\"field-style\"\r\n formControlName=\"description\"\r\n placeholder=\" {{\r\n 'CREATE.DESCRIPTION' | translate\r\n }}\"\r\n />\r\n </div>\r\n\r\n <!------------------ new statis form ---------------------------->\r\n <div *ngIf=\"usingExtraFields\">\r\n \r\n <app-dynamic-fields-renderer [form]=\"fileForm\" [agencyNameFilter]=\"agencyNameFilter\" [countryNameFilter]=\"countryNameFilter\"></app-dynamic-fields-renderer>\r\n\r\n <!-- <div class=\"single-field mb-3\">\r\n <div class=\"label-style\">\r\n {{ \"CREATE.DOCUMENT_SUBJECT\" | translate\r\n }}<span class=\"text-red-500\">*</span>\r\n </div>\r\n <input\r\n class=\"field-style\"\r\n formControlName=\"subject\"\r\n placeholder=\" {{\r\n 'CREATE.DOCUMENT_SUBJECT' | translate\r\n }}\"\r\n />\r\n </div>\r\n <div class=\"single-field mb-3\">\r\n <div class=\"label-style\">\r\n {{ \"CREATE.DOCUMENT_NUMBER\" | translate }}\r\n </div>\r\n <input\r\n class=\"field-style\"\r\n formControlName=\"documentNumber\"\r\n placeholder=\" {{\r\n 'CREATE.DOCUMENT_NUMBER' | translate\r\n }}\"\r\n />\r\n </div>\r\n <div class=\"single-field mb-3\">\r\n <cts-dynamic-form-hijri-dateitem\r\n formControlName=\"gdocumentDate\"\r\n label=\"CREATE.DOCUMENT_DATE\"\r\n >\r\n </cts-dynamic-form-hijri-dateitem>\r\n </div>\r\n <div class=\"single-field mb-3\">\r\n <app-dynamic-form-vocabulary-item\r\n [label]=\"'CREATE.SCRECY_LEVEL'\"\r\n [bindLabel]=\"'label'\"\r\n [bindValue]=\"'id'\"\r\n placeholder=\"{{\r\n 'VOCABULARY.SELECT_ITEM' | translate\r\n }}\"\r\n [multiple]=\"false\"\r\n [searchable]=\"false\"\r\n [closeOnSelect]=\"true\"\r\n [hideSelectedItems]=\"false\"\r\n [vocabularyType]=\"'VOC_SecrecyLevel'\"\r\n formControlName=\"secrecyLevel\"\r\n >\r\n </app-dynamic-form-vocabulary-item>\r\n </div>\r\n <div class=\"single-field mb-3\">\r\n <app-dynamic-form-vocabulary-item\r\n [label]=\"'CREATE.IMPORTANCE_LEVEL'\"\r\n [bindLabel]=\"'label'\"\r\n [bindValue]=\"'id'\"\r\n placeholder=\"{{\r\n 'VOCABULARY.SELECT_ITEM' | translate\r\n }}\"\r\n [multiple]=\"false\"\r\n [searchable]=\"false\"\r\n [closeOnSelect]=\"true\"\r\n [hideSelectedItems]=\"false\"\r\n [vocabularyType]=\"'VOC_Importance'\"\r\n formControlName=\"importanceLevel\"\r\n >\r\n </app-dynamic-form-vocabulary-item>\r\n </div>\r\n\r\n <div class=\"single-field mb-3\">\r\n <div class=\"label-style\">\r\n {{ \"CREATE.DEPARTMENT_CODE\" | translate }}\r\n </div>\r\n <app-dynamic-form-department\r\n formControlName=\"departmentCode\"\r\n [placeholder]=\"'please select department'\"\r\n [pp_departmentNestedTree]=\"\r\n 'PP_OS_Departments'\r\n \"\r\n [pp_departmentTree]=\"'PP_OS_Departments'\"\r\n [customPrefix]=\"'osdept'\"\r\n [customParentProperty]=\"\r\n 'osdepartment_parentDepartmentCode'\r\n \"\r\n [useCustomAddEditAction]=\"true\"\r\n >\r\n </app-dynamic-form-department>\r\n </div>\r\n\r\n <div class=\"single-field mb-3\">\r\n <app-translated-vocabulary-select\r\n [label]=\"'CREATE.AGENCY_CATEGORY_CODE'\"\r\n [arbBindLabel]=\"'label_ar'\"\r\n [engBindLabel]=\"'label_en'\"\r\n [bindValue]=\"'id'\"\r\n placeholder=\"{{\r\n 'VOCABULARY.SELECT_ITEM' | translate\r\n }}\"\r\n [multiple]=\"false\"\r\n [searchable]=\"true\"\r\n [closeOnSelect]=\"true\"\r\n [hideSelectedItems]=\"false\"\r\n formControlName=\"agencyCategoryCode\"\r\n [vocbularyId]=\"'VOC_AgencyCategory'\"\r\n [useFilter]=\"false\"\r\n >\r\n </app-translated-vocabulary-select>\r\n </div>\r\n\r\n <div class=\"single-field mb-3\">\r\n <app-translated-vocabulary-select\r\n [label]=\"'CREATE.AGENCY_NAME'\"\r\n [arbBindLabel]=\"'label_ar'\"\r\n [engBindLabel]=\"'label_en'\"\r\n [bindValue]=\"'id'\"\r\n placeholder=\"{{\r\n 'VOCABULARY.SELECT_ITEM' | translate\r\n }}\"\r\n [multiple]=\"false\"\r\n [searchable]=\"true\"\r\n [closeOnSelect]=\"true\"\r\n [hideSelectedItems]=\"false\"\r\n formControlName=\"agencyName\"\r\n [vocbularyId]=\"'VOC_Agency'\"\r\n [filter]=\"agencyNameFilter\"\r\n [useFilter]=\"true\"\r\n >\r\n </app-translated-vocabulary-select>\r\n </div>\r\n\r\n <div class=\"single-field mb-3\">\r\n <app-translated-vocabulary-select\r\n [label]=\"'CREATE.COUNTRY_CATEGORY_CODE'\"\r\n [arbBindLabel]=\"'label_ar'\"\r\n [engBindLabel]=\"'label_en'\"\r\n [bindValue]=\"'id'\"\r\n placeholder=\"{{\r\n 'VOCABULARY.SELECT_ITEM' | translate\r\n }}\"\r\n [multiple]=\"false\"\r\n [searchable]=\"true\"\r\n [closeOnSelect]=\"true\"\r\n [hideSelectedItems]=\"false\"\r\n formControlName=\"countryCategoryCode\"\r\n [vocbularyId]=\"'VOC_CountryCategory'\"\r\n [useFilter]=\"false\"\r\n >\r\n </app-translated-vocabulary-select>\r\n </div>\r\n\r\n <div class=\"single-field mb-3\">\r\n <app-translated-vocabulary-select\r\n [label]=\"'CREATE.COUNTRY_NAME'\"\r\n [arbBindLabel]=\"'label_ar'\"\r\n [engBindLabel]=\"'label_en'\"\r\n [bindValue]=\"'id'\"\r\n placeholder=\"{{\r\n 'VOCABULARY.SELECT_ITEM' | translate\r\n }}\"\r\n [multiple]=\"false\"\r\n [searchable]=\"true\"\r\n [closeOnSelect]=\"true\"\r\n [hideSelectedItems]=\"false\"\r\n formControlName=\"countryName\"\r\n [vocbularyId]=\"'VOC_Country'\"\r\n [filter]=\"countryNameFilter\"\r\n [useFilter]=\"true\"\r\n >\r\n </app-translated-vocabulary-select>\r\n </div>\r\n\r\n <div class=\"single-field mb-3\">\r\n <div class=\"label-style\">\r\n {{ \"CREATE.REMARKS\" | translate }}\r\n </div>\r\n <input\r\n class=\"field-style\"\r\n formControlName=\"remarks\"\r\n placeholder=\" {{\r\n 'CREATE.REMARKS' | translate\r\n }}\"\r\n />\r\n </div> -->\r\n </div>\r\n\r\n <!-- ----------------------------------------------------------- -->\r\n </form>\r\n <!-- *ngIf=\"\" -->\r\n <div\r\n class=\"dynamic-part -mx-4\"\r\n *ngIf=\"selectedFile.dynamicForm && showRenderer\"\r\n >\r\n <app-dynamic-form\r\n [form]=\"selectedFile.dynamicForm\"\r\n [data]=\"temporaryDyanmicData\"\r\n (change)=\"ondynamicFormChange($event)\"\r\n ></app-dynamic-form>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <!-- actions and buttons -->\r\n <div\r\n class=\"w-full d-flex justify-between scanner-actions-wrapper absolute bottom-0\"\r\n >\r\n <div class=\"flex\">\r\n <button class=\"cancelation-button\" (click)=\"closeDialog()\">\r\n {{ \"BUTTONS.CANCEL\" | translate }}\r\n </button>\r\n <button class=\"cancelation-button mx-2\" (click)=\"minimizDialog()\">\r\n {{ \"BUTTONS.MINIMIZED\" | translate }}\r\n </button>\r\n </div>\r\n\r\n <!-- -->\r\n <div class=\"d-flex\">\r\n <!-- <button\r\n *ngIf=\"creationFailed\"\r\n [disabled]=\"\r\n scannerUploadButton.disabled ||\r\n !selectedFile.dynamicData.valid ||\r\n fileForm.invalid\r\n \"\r\n [ngClass]=\"{\r\n 'opacity-30 cursor-not-allowed':\r\n scannerUploadButton.disabled ||\r\n !selectedFile.dynamicData.valid ||\r\n fileForm.invalid\r\n }\"\r\n (click)=\"createDocument()\"\r\n class=\"submission-button\"\r\n >\r\n {{ \"BUTTONS.TRY_AGAIN\" | translate }}\r\n </button> -->\r\n <button\r\n (click)=\"createDocument()\"\r\n [disabled]=\"\r\n scannerUploadButton.disabled ||\r\n !selectedFile.dynamicData.valid ||\r\n fileForm.invalid\r\n \"\r\n [ngClass]=\"{\r\n 'opacity-30 cursor-not-allowed':\r\n scannerUploadButton.disabled ||\r\n !selectedFile.dynamicData.valid ||\r\n fileForm.invalid\r\n }\"\r\n class=\"submission-button\"\r\n >\r\n {{ uploadMangmentService.scanCreationFailed ? (\"BUTTONS.TRY_AGAIN\" | translate) : (\"BUTTONS.CREATE\" | translate) }}\r\n </button>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".forms-section{display:flex;justify-content:center}.tabs-body-wrapper{height:calc(100% - 125px);overflow-y:auto;overflow-x:hidden}\n"], components: [{ type: i4$2.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "mode", "value", "bufferValue"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { type: ScanComponent, selector: "app-document-scan", inputs: ["useStoredFile", "hideUploadButton"], outputs: ["file"] }, { type: DynamicFieldsRendererComponent, selector: "app-dynamic-fields-renderer", inputs: ["form", "agencyNameFilter", "countryNameFilter", "fields"] }, { type: DynamicFormComponent, selector: "app-dynamic-form", inputs: ["form", "data", "readOnly"], outputs: ["change"] }], directives: [{ type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: SetRtlDirective, selector: "[SetRtl]" }, { type: i6.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i6.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i6.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i6.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i6.FormControlName, selector: "[formControlName]", inputs: ["disabled", "formControlName", "ngModel"], outputs: ["ngModelChange"] }], pipes: { "translate": i1$1.TranslatePipe } });
|
|
25098
25152
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: ScanModalComponent, decorators: [{
|
|
25099
25153
|
type: Component,
|
|
25100
25154
|
args: [{
|
|
@@ -25517,6 +25571,256 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImpor
|
|
|
25517
25571
|
}]
|
|
25518
25572
|
}] });
|
|
25519
25573
|
|
|
25574
|
+
class ClipboardComponent {
|
|
25575
|
+
constructor(fileManagerService, userService, customToastrService, userPreferenceService) {
|
|
25576
|
+
this.fileManagerService = fileManagerService;
|
|
25577
|
+
this.userService = userService;
|
|
25578
|
+
this.customToastrService = customToastrService;
|
|
25579
|
+
this.userPreferenceService = userPreferenceService;
|
|
25580
|
+
this.onClipboardClose = new EventEmitter();
|
|
25581
|
+
this.onRefreshFolderTree = new EventEmitter();
|
|
25582
|
+
this.clipboardItems = []; // array of id to items in clipboard
|
|
25583
|
+
this.preventedGroups = [];
|
|
25584
|
+
this.clipboardDocments = []; // array of documents with full details of items in clipboard
|
|
25585
|
+
this.enableCopy = false;
|
|
25586
|
+
this.enableMove = false;
|
|
25587
|
+
this.clipboardLoading = false;
|
|
25588
|
+
this.documentSelectedInClipboard = [];
|
|
25589
|
+
}
|
|
25590
|
+
ngOnInit() {
|
|
25591
|
+
this.refreshClipSubscription = this.fileManagerService.onRefreshClipboard.subscribe(res => {
|
|
25592
|
+
this.openClipboard();
|
|
25593
|
+
});
|
|
25594
|
+
this.openClipboard();
|
|
25595
|
+
}
|
|
25596
|
+
ngOnDestroy() {
|
|
25597
|
+
this.refreshClipSubscription ? this.refreshClipSubscription.unsubscribe() : null;
|
|
25598
|
+
}
|
|
25599
|
+
closeClipboard() {
|
|
25600
|
+
this.onClipboardClose.emit();
|
|
25601
|
+
this.clipboardDocments = [];
|
|
25602
|
+
}
|
|
25603
|
+
openClipboard() {
|
|
25604
|
+
this.enableCopy = false;
|
|
25605
|
+
this.enableMove = false;
|
|
25606
|
+
this.clipboardLoading = true;
|
|
25607
|
+
if (this.myCurrecntFolderData.entity.properties['dmsfolder:documentTypeCode'] && this.myCurrecntFolderData.entity.properties['dmsfolder:documentTypeCode'] !== '08112021') {
|
|
25608
|
+
// get accepted childerns for my current folder
|
|
25609
|
+
// if (this.subtypesService.storedSubtypes[this.myCurrecntFolderData.entity.uid]) {
|
|
25610
|
+
// this.myTargetFolderAcceptedChildrens = this.subtypesService.storedSubtypes[this.myCurrecntFolderData.entity.uid];
|
|
25611
|
+
// } else {
|
|
25612
|
+
this.fileManagerService.getClipboardAcceptedTypes(this.myCurrecntFolderData.entity.uid).subscribe(res => {
|
|
25613
|
+
this.myTargetFolderAcceptedChildrens = res;
|
|
25614
|
+
}, error => {
|
|
25615
|
+
this.clipboardLoading = false;
|
|
25616
|
+
this.clipboardDocments = [];
|
|
25617
|
+
});
|
|
25618
|
+
// }
|
|
25619
|
+
}
|
|
25620
|
+
if (this.clipboardItems.length > 0) {
|
|
25621
|
+
this.fileManagerService.getClipboardDocuments(this.clipboardItems).subscribe(res => {
|
|
25622
|
+
res.map(document => {
|
|
25623
|
+
document['canCopyToTarget'] = (this.canPerformActionInsideTarget(document) && this.checkIfNotTheSameParent(document) && document.canCopy);
|
|
25624
|
+
document['canMoveToTarget'] = (this.canPerformActionInsideTarget(document) && this.checkIfNotTheSameParent(document) && document.canMove);
|
|
25625
|
+
});
|
|
25626
|
+
this.clipboardDocments = res;
|
|
25627
|
+
console.log(this.clipboardDocments);
|
|
25628
|
+
this.clipboardLoading = false;
|
|
25629
|
+
});
|
|
25630
|
+
}
|
|
25631
|
+
else {
|
|
25632
|
+
this.clipboardDocments = [];
|
|
25633
|
+
this.clipboardLoading = false;
|
|
25634
|
+
}
|
|
25635
|
+
}
|
|
25636
|
+
// prevent copying or moving the file to its same place since it is prevented
|
|
25637
|
+
// prevent copying or moving the folder inside it self
|
|
25638
|
+
checkIfNotTheSameParent(document) {
|
|
25639
|
+
// let directory = this.getCurrentDirectory();
|
|
25640
|
+
if (document.parentRef !== this.directory.dataItem.id && document.uid !== this.directory.dataItem.id) {
|
|
25641
|
+
return true;
|
|
25642
|
+
}
|
|
25643
|
+
else {
|
|
25644
|
+
return false;
|
|
25645
|
+
}
|
|
25646
|
+
}
|
|
25647
|
+
deletefromClipboard(document) {
|
|
25648
|
+
let myindex = -1;
|
|
25649
|
+
this.clipboardItems.map((id, index) => {
|
|
25650
|
+
if (document.uid === id) {
|
|
25651
|
+
myindex = index;
|
|
25652
|
+
}
|
|
25653
|
+
});
|
|
25654
|
+
this.clipboardItems.splice(myindex, 1);
|
|
25655
|
+
this.customToastrService.show('success', 'TOASTER.SUCCESS', "TOASTER.removed_from_clipboard");
|
|
25656
|
+
// let directory = this.getCurrentDirectory();
|
|
25657
|
+
// let id =
|
|
25658
|
+
// directory.dataItem === undefined
|
|
25659
|
+
// ? this.mainFolder
|
|
25660
|
+
// : this.getCurrentFolderId(directory);
|
|
25661
|
+
// this.reinitializeFolderTree(id, directory);
|
|
25662
|
+
this.onRefreshFolderTree.emit();
|
|
25663
|
+
this.openClipboard();
|
|
25664
|
+
this.userPreferenceService.set('clipboardItems', JSON.stringify(this.clipboardItems));
|
|
25665
|
+
}
|
|
25666
|
+
// function to check if i can perform action on that target folder or not
|
|
25667
|
+
canPerformActionInsideTarget(document) {
|
|
25668
|
+
var _a;
|
|
25669
|
+
//check if target is 'other' type folder or dms folder
|
|
25670
|
+
if (this.myCurrecntFolderData.entity.properties['dmsfolder:documentTypeCode'] === '08112021' && !this.checkIfInPreventedGroups(this.myCurrecntFolderData.entity.path)) {
|
|
25671
|
+
// if my folder is from type others and not in prevented groups
|
|
25672
|
+
return true;
|
|
25673
|
+
}
|
|
25674
|
+
else if (this.myCurrecntFolderData.entity.properties['dmsfolder:documentTypeCode'] && this.myCurrecntFolderData.entity.properties['dmsfolder:documentTypeCode'] !== '08112021') {
|
|
25675
|
+
//if my folder has code and was not other type folder then check for accepted chilrdrn for that folder to contain this file type
|
|
25676
|
+
if (document.isFile === 'File') {
|
|
25677
|
+
if (this.myTargetFolderAcceptedChildrens.contextParameters &&
|
|
25678
|
+
this.myTargetFolderAcceptedChildrens.contextParameters.accepted_children && Array.isArray(this.myTargetFolderAcceptedChildrens.contextParameters.accepted_children) &&
|
|
25679
|
+
this.myTargetFolderAcceptedChildrens.contextParameters.accepted_children.indexOf(document.properties['gdoc:documentTypeCode']) > -1) {
|
|
25680
|
+
return true;
|
|
25681
|
+
}
|
|
25682
|
+
else {
|
|
25683
|
+
return false;
|
|
25684
|
+
}
|
|
25685
|
+
}
|
|
25686
|
+
else {
|
|
25687
|
+
if (this.myTargetFolderAcceptedChildrens.contextParameters &&
|
|
25688
|
+
this.myTargetFolderAcceptedChildrens.contextParameters.accepted_children && Array.isArray(this.myTargetFolderAcceptedChildrens.contextParameters.accepted_children) &&
|
|
25689
|
+
((_a = this.myTargetFolderAcceptedChildrens.contextParameters) === null || _a === void 0 ? void 0 : _a.accepted_children.indexOf(document.properties['dmsfolder:documentTypeCode'])) > -1) {
|
|
25690
|
+
return true;
|
|
25691
|
+
}
|
|
25692
|
+
else {
|
|
25693
|
+
return false;
|
|
25694
|
+
}
|
|
25695
|
+
}
|
|
25696
|
+
}
|
|
25697
|
+
else {
|
|
25698
|
+
// prevent action to this target
|
|
25699
|
+
return false;
|
|
25700
|
+
}
|
|
25701
|
+
}
|
|
25702
|
+
// function to check if this path not belong to group that is prevented from creating folder of type others
|
|
25703
|
+
checkIfInPreventedGroups(path) {
|
|
25704
|
+
// if in prevented froup rturn true else return false
|
|
25705
|
+
console.log(path);
|
|
25706
|
+
let myDepartment = this.userService.getUserDepartmentFromPath(path);
|
|
25707
|
+
let exist = this.preventedGroups.indexOf(myDepartment) > -1 ? true : false;
|
|
25708
|
+
return exist;
|
|
25709
|
+
}
|
|
25710
|
+
copyFromInsideClipboard() {
|
|
25711
|
+
let clipboardSelectedItems = [];
|
|
25712
|
+
let clipboardSelectedItemsLength = 0;
|
|
25713
|
+
// seperate selected items in seperate array
|
|
25714
|
+
this.clipboardDocments.map((doc, index) => {
|
|
25715
|
+
// can't copy file in the same place it exist and can't copy folder inside it self
|
|
25716
|
+
if (doc.isSelected && doc.parentRef !== this.directory.dataItem.id && doc.uid !== this.directory.dataItem.id) {
|
|
25717
|
+
clipboardSelectedItems.push(doc.uid);
|
|
25718
|
+
}
|
|
25719
|
+
});
|
|
25720
|
+
if (clipboardSelectedItems.length > 0) {
|
|
25721
|
+
this.clipboardLoading = true;
|
|
25722
|
+
// this.currentPath = '';
|
|
25723
|
+
this.fileManagerService
|
|
25724
|
+
.copyTo({ id: this.directory.dataItem.id, name: this.directory.dataItem.name }, clipboardSelectedItems.toString())
|
|
25725
|
+
.subscribe((res) => {
|
|
25726
|
+
// remove selected items from clipboard after action is done
|
|
25727
|
+
this.removeItemsAfterActionDone(clipboardSelectedItems);
|
|
25728
|
+
this.clipboardLoading = false;
|
|
25729
|
+
this.onClipboardClose.emit();
|
|
25730
|
+
this.onRefreshFolderTree.emit();
|
|
25731
|
+
this.customToastrService.show('success', 'TOASTER.SUCCESS', 'TOASTER.DOCUMENT_COPIED');
|
|
25732
|
+
}, (err) => {
|
|
25733
|
+
this.clipboardLoading = false;
|
|
25734
|
+
this.customToastrService.show('error', 'TOASTER.ERROR', 'TOASTER.DOCUMENT_COPIED_ERROR');
|
|
25735
|
+
});
|
|
25736
|
+
}
|
|
25737
|
+
else {
|
|
25738
|
+
this.customToastrService.show('error', 'TOASTER.ERROR', 'TOASTER.DOCUMENT_COPIED_DESTINATION_ERROR');
|
|
25739
|
+
}
|
|
25740
|
+
}
|
|
25741
|
+
moveFromInsideClipboard() {
|
|
25742
|
+
let clipboardSelectedItems = [];
|
|
25743
|
+
let clipboardSelectedItemsLength = 0;
|
|
25744
|
+
// seperate selected items in seperate array
|
|
25745
|
+
this.clipboardDocments.map((doc, index) => {
|
|
25746
|
+
// can't move file in the same place it exist and can't move folder inside it self
|
|
25747
|
+
if (doc.isSelected && doc.parentRef !== this.directory.dataItem.id && doc.uid !== this.directory.dataItem.id) {
|
|
25748
|
+
clipboardSelectedItems.push(doc.uid);
|
|
25749
|
+
}
|
|
25750
|
+
});
|
|
25751
|
+
if (clipboardSelectedItems.length > 0) {
|
|
25752
|
+
this.clipboardLoading = true;
|
|
25753
|
+
this.fileManagerService
|
|
25754
|
+
.moveTo({ id: this.directory.dataItem.id, name: this.directory.dataItem.name }, clipboardSelectedItems.toString())
|
|
25755
|
+
.subscribe((res) => {
|
|
25756
|
+
// remove selected items from clipboard after action is done
|
|
25757
|
+
this.removeItemsAfterActionDone(clipboardSelectedItems);
|
|
25758
|
+
this.clipboardLoading = false;
|
|
25759
|
+
this.onClipboardClose.emit();
|
|
25760
|
+
this.onRefreshFolderTree.emit();
|
|
25761
|
+
this.customToastrService.show('success', 'TOASTER.SUCCESS', 'TOASTER.DOCUMENT_MOVED');
|
|
25762
|
+
}, (err) => {
|
|
25763
|
+
this.clipboardLoading = false;
|
|
25764
|
+
this.customToastrService.show('error', 'TOASTER.ERROR', 'TOASTER.DOCUMENT_MOVED_ERROR');
|
|
25765
|
+
});
|
|
25766
|
+
}
|
|
25767
|
+
else
|
|
25768
|
+
this.customToastrService.show('error', 'TOASTER.ERROR', 'TOASTER.DOCUMENT_MOVED_DESTINATION_ERROR');
|
|
25769
|
+
}
|
|
25770
|
+
removeItemsAfterActionDone(selectedItems) {
|
|
25771
|
+
this.clipboardItems = this.clipboardItems.filter(function (el) {
|
|
25772
|
+
return !selectedItems.includes(el);
|
|
25773
|
+
});
|
|
25774
|
+
this.userPreferenceService.set('clipboardItems', JSON.stringify(this.clipboardItems));
|
|
25775
|
+
}
|
|
25776
|
+
checking() {
|
|
25777
|
+
this.enableCopy = false;
|
|
25778
|
+
this.enableMove = false;
|
|
25779
|
+
this.documentSelectedInClipboard = [];
|
|
25780
|
+
// console.log(this.clipboardDocments);
|
|
25781
|
+
this.clipboardDocments.map(document => {
|
|
25782
|
+
// wokring with only selected documents
|
|
25783
|
+
if (document.isSelected === true) {
|
|
25784
|
+
// document['canCopyToTarget'] = (this.canPerformActionInsideTarget(document) && document.canCopy);
|
|
25785
|
+
// document['canMoveToTarget'] = (this.canPerformActionInsideTarget(document) && document.canMove)
|
|
25786
|
+
this.documentSelectedInClipboard.push(document);
|
|
25787
|
+
}
|
|
25788
|
+
});
|
|
25789
|
+
if (this.documentSelectedInClipboard.length > 0) {
|
|
25790
|
+
this.enableCopy = this.documentSelectedInClipboard.every(item => {
|
|
25791
|
+
return item.canCopyToTarget === true;
|
|
25792
|
+
});
|
|
25793
|
+
this.enableMove = this.documentSelectedInClipboard.every(item => {
|
|
25794
|
+
return item.canMoveToTarget === true;
|
|
25795
|
+
});
|
|
25796
|
+
}
|
|
25797
|
+
console.log(this.documentSelectedInClipboard);
|
|
25798
|
+
}
|
|
25799
|
+
}
|
|
25800
|
+
ClipboardComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: ClipboardComponent, deps: [{ token: FileManagerService }, { token: UserService }, { token: CustomToastrService }, { token: UserPreferencesService$1 }], target: i0.ɵɵFactoryTarget.Component });
|
|
25801
|
+
ClipboardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.4", type: ClipboardComponent, selector: "lib-clipboard", inputs: { clipboardItems: "clipboardItems", myCurrecntFolderData: "myCurrecntFolderData", preventedGroups: "preventedGroups", directory: "directory" }, outputs: { onClipboardClose: "onClipboardClose", onRefreshFolderTree: "onRefreshFolderTree" }, ngImport: i0, template: "<div class=\"clipboard-side-section relative\">\n\n <div class=\"p-3 h-full\">\n <div class=\"clipboard-header flex justify-between items-center border-b-2\">\n <span class=\"flex text-gray-500 font-bold items-center\">\n <span class=\"text-4xl bi bi-clipboard\"></span>\n <span class=\"mx-2 text-xl\">{{'clipboard' | translate}}</span>\n </span>\n <mat-icon class=\"close-icon text-gray-500 cursor-pointer\" (click)=\"closeClipboard()\"\n [matTooltip]=\"'BUTTONS.CLOSE' | translate\">close</mat-icon>\n </div>\n <!-- <div class=\"h-full font-bold d-flex justify-center items-center\" *ngIf=\"clipboardLoading\">\n {{ \"loading\" | translate }}\n </div> -->\n <div class=\"w-full h-px bg-gray-200 mb-3\" *ngIf=\"clipboardLoading\">\n <mat-progress-bar mode=\"indeterminate\"></mat-progress-bar>\n </div>\n <div class=\"clipboard-content flex flex-col justify-between items-between\">\n <div class=\"h-full flex justify-center items-center text-gray-500\"\n *ngIf=\"clipboardDocments.length === 0\">{{'no_clipboard_items' | translate}}</div>\n\n <div class=\"px-2 h-5/6 overflow-y-auto\" *ngIf=\"clipboardDocments.length > 0\">\n <div class=\"border-b-2\" *ngFor=\"let document of clipboardDocments\">\n <div class=\"py-1 w-82 flex items-center justify-between\">\n <div class=\"flex items-center w-5/6\">\n <mat-checkbox [(ngModel)]=\"document.isSelected\" (change)=\"checking()\"> </mat-checkbox>\n <div class=\"flex w-full\">\n <!-- <title-with-icon class=\"w-1/6 -my-1.5\" [context]=\"document\"\n [showTitle]=\"false\"></title-with-icon> -->\n <app-display-suitable-icon class=\"mx-1\" [data]=\"document\" [size]=\"'40px'\"></app-display-suitable-icon>\n\n <!-- -->\n <div *ngIf=\"document.isFile === 'File'\"\n class=\"justify-center flex flex-col flex-1 flex-grow-0 w-5/6\">\n <div class=\"text-base text-gray-500 font-bold truncate\"\n [title]=\"document.properties?.['file:content']?.['name']\"\n [alt]=\"document.properties?.['file:content']?.['name']\">\n {{document['title']}}\n </div>\n <div class=\"text-gray-500 text-sm text-nowrap\">\n {{((document.properties?.['file:content']?.['length']) / (1024 *\n 1024)).toFixed(2) }}\n MB\n </div>\n </div>\n <div class=\"\n d-flex\n items-center\n text-base text-gray-500\n font-bold\n \" *ngIf=\"document.isFile === 'Folder'\">\n {{ document?.title }}\n </div>\n </div>\n </div>\n <span [matTooltip]=\"'BUTTONS.REMOVE_CLIPBOARD' | translate\"\n class=\"cursor-pointer w-5 h-5 rounded-full border-2 flex justify-center items-center border-gray-500 \"\n (click)=\"deletefromClipboard(document)\">\n <span class=\"text-gray-500 bi bi-x text-lg flex items-center\"></span>\n </span>\n </div>\n <div class=\"text-md text-gray-500 text-center my-2\">\n <span *ngIf=\"document.canCopyToTarget && !document.canMoveToTarget\">{{'can_copy_only' |\n translate}}</span>\n <span *ngIf=\"!document.canCopyToTarget && document.canMoveToTarget\">{{'can_move_only' |\n translate}}</span>\n <span *ngIf=\"document.canCopyToTarget && document.canMoveToTarget\">{{'can_copy_and_move' |\n translate}}</span>\n <span\n *ngIf=\"!document.canCopyToTarget && !document.canMoveToTarget\">{{'can_not_copy_and_move'\n | translate}}</span>\n </div>\n </div>\n\n </div>\n <div class=\"h-1/6 flex w-full justify-center items-center\">\n <button class=\"submission-button mx-2\" [disabled]=\"!enableCopy\"\n (click)=\"copyFromInsideClipboard()\">{{'BUTTONS.COPY' | translate}}</button>\n <button class=\"submission-button mx-2\" [disabled]=\"!enableMove\"\n (click)=\"moveFromInsideClipboard()\">{{'BUTTONS.MOVE' | translate}}</button>\n </div>\n </div>\n </div>\n\n <div class=\"bg-transparent absolute top-0 bottom-0 left-0 right-0 \" *ngIf=\"clipboardLoading\">\n\n </div>\n</div>", styles: [".clipboard-side-section{width:0px;overflow-x:hidden;height:91vh;background-color:#fff;overflow:hidden;border:1px solid lightgray;z-index:999;transition:.1s ease-in-out;border-bottom:none}.clipboard-side-section .clipboard-header{height:60px}.clipboard-side-section .clipboard-content{height:calc(100% - 60px)}\n"], components: [{ type: i2$4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i4$2.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "mode", "value", "bufferValue"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { type: i7.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex", "aria-label", "aria-labelledby", "id", "labelPosition", "name", "required", "checked", "disabled", "indeterminate", "aria-describedby", "value"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { type: DisplaySuitableIconComponent, selector: "app-display-suitable-icon", inputs: ["data", "size", "dataType", "archive"] }], directives: [{ type: i8.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltipPosition", "matTooltipDisabled", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], pipes: { "translate": i1$1.TranslatePipe }, encapsulation: i0.ViewEncapsulation.None });
|
|
25802
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: ClipboardComponent, decorators: [{
|
|
25803
|
+
type: Component,
|
|
25804
|
+
args: [{
|
|
25805
|
+
selector: 'lib-clipboard',
|
|
25806
|
+
templateUrl: './clipboard.component.html',
|
|
25807
|
+
styleUrls: ['./clipboard.component.scss'],
|
|
25808
|
+
encapsulation: ViewEncapsulation.None
|
|
25809
|
+
}]
|
|
25810
|
+
}], ctorParameters: function () { return [{ type: FileManagerService }, { type: UserService }, { type: CustomToastrService }, { type: UserPreferencesService$1 }]; }, propDecorators: { onClipboardClose: [{
|
|
25811
|
+
type: Output
|
|
25812
|
+
}], onRefreshFolderTree: [{
|
|
25813
|
+
type: Output
|
|
25814
|
+
}], clipboardItems: [{
|
|
25815
|
+
type: Input
|
|
25816
|
+
}], myCurrecntFolderData: [{
|
|
25817
|
+
type: Input
|
|
25818
|
+
}], preventedGroups: [{
|
|
25819
|
+
type: Input
|
|
25820
|
+
}], directory: [{
|
|
25821
|
+
type: Input
|
|
25822
|
+
}] } });
|
|
25823
|
+
|
|
25520
25824
|
class FileMangerModule {
|
|
25521
25825
|
}
|
|
25522
25826
|
FileMangerModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: FileMangerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
@@ -25536,7 +25840,8 @@ FileMangerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", versio
|
|
|
25536
25840
|
ScanModalComponent,
|
|
25537
25841
|
ShareDialogComponent,
|
|
25538
25842
|
TemplateModalComponent,
|
|
25539
|
-
UpdateModalComponent
|
|
25843
|
+
UpdateModalComponent,
|
|
25844
|
+
ClipboardComponent], imports: [CommonModule,
|
|
25540
25845
|
MatIconModule,
|
|
25541
25846
|
DynamicFormModule,
|
|
25542
25847
|
FormsModule,
|
|
@@ -25574,7 +25879,11 @@ FileMangerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", versio
|
|
|
25574
25879
|
UserModule,
|
|
25575
25880
|
MutipleDynamicFormViewerModule,
|
|
25576
25881
|
BrowserTransferStateModule,
|
|
25577
|
-
AttachmentModalModule
|
|
25882
|
+
AttachmentModalModule,
|
|
25883
|
+
FormsModule,
|
|
25884
|
+
DisplaySuitableIconModule,
|
|
25885
|
+
MatProgressBarModule,
|
|
25886
|
+
MatCheckboxModule], exports: [SidepanelComponent,
|
|
25578
25887
|
CopyComponent,
|
|
25579
25888
|
DeleteComponent,
|
|
25580
25889
|
MoveComponent,
|
|
@@ -25598,7 +25907,8 @@ FileMangerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", versio
|
|
|
25598
25907
|
DxTemplateModule,
|
|
25599
25908
|
DxTextBoxModule,
|
|
25600
25909
|
DxFormModule,
|
|
25601
|
-
DxTreeViewModule
|
|
25910
|
+
DxTreeViewModule,
|
|
25911
|
+
ClipboardComponent] });
|
|
25602
25912
|
FileMangerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: FileMangerModule, imports: [[
|
|
25603
25913
|
CommonModule,
|
|
25604
25914
|
MatIconModule,
|
|
@@ -25638,7 +25948,11 @@ FileMangerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", versio
|
|
|
25638
25948
|
UserModule,
|
|
25639
25949
|
MutipleDynamicFormViewerModule,
|
|
25640
25950
|
BrowserTransferStateModule,
|
|
25641
|
-
AttachmentModalModule
|
|
25951
|
+
AttachmentModalModule,
|
|
25952
|
+
FormsModule,
|
|
25953
|
+
DisplaySuitableIconModule,
|
|
25954
|
+
MatProgressBarModule,
|
|
25955
|
+
MatCheckboxModule
|
|
25642
25956
|
], DxPopupModule,
|
|
25643
25957
|
DxScrollViewModule,
|
|
25644
25958
|
DxiToolbarItemModule,
|
|
@@ -25667,7 +25981,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImpor
|
|
|
25667
25981
|
ScanModalComponent,
|
|
25668
25982
|
ShareDialogComponent,
|
|
25669
25983
|
TemplateModalComponent,
|
|
25670
|
-
UpdateModalComponent
|
|
25984
|
+
UpdateModalComponent,
|
|
25985
|
+
ClipboardComponent
|
|
25671
25986
|
],
|
|
25672
25987
|
imports: [
|
|
25673
25988
|
CommonModule,
|
|
@@ -25708,7 +26023,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImpor
|
|
|
25708
26023
|
UserModule,
|
|
25709
26024
|
MutipleDynamicFormViewerModule,
|
|
25710
26025
|
BrowserTransferStateModule,
|
|
25711
|
-
AttachmentModalModule
|
|
26026
|
+
AttachmentModalModule,
|
|
26027
|
+
FormsModule,
|
|
26028
|
+
DisplaySuitableIconModule,
|
|
26029
|
+
MatProgressBarModule,
|
|
26030
|
+
MatCheckboxModule
|
|
25712
26031
|
],
|
|
25713
26032
|
exports: [
|
|
25714
26033
|
SidepanelComponent,
|
|
@@ -25735,7 +26054,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImpor
|
|
|
25735
26054
|
DxTemplateModule,
|
|
25736
26055
|
DxTextBoxModule,
|
|
25737
26056
|
DxFormModule,
|
|
25738
|
-
DxTreeViewModule
|
|
26057
|
+
DxTreeViewModule,
|
|
26058
|
+
ClipboardComponent
|
|
25739
26059
|
]
|
|
25740
26060
|
}]
|
|
25741
26061
|
}] });
|
|
@@ -25776,6 +26096,9 @@ class FileManagerAbstract {
|
|
|
25776
26096
|
this.lastFolderTrackId = null;
|
|
25777
26097
|
this.itemToDisplay = {};
|
|
25778
26098
|
this.tempSave = null;
|
|
26099
|
+
this.clipboardItems = []; // array of id to items in clipboard
|
|
26100
|
+
this.showClipboard = false;
|
|
26101
|
+
this.showDgdaClipboard = false; // flage related to dgda clipboard
|
|
25779
26102
|
this.cancelButton = {
|
|
25780
26103
|
text: this.isArabic ? 'إلغاء' : 'Cancel',
|
|
25781
26104
|
onClick: () => {
|
|
@@ -25950,6 +26273,25 @@ class FileManagerAbstract {
|
|
|
25950
26273
|
disableClose: true,
|
|
25951
26274
|
});
|
|
25952
26275
|
};
|
|
26276
|
+
this.addToClipboard = () => {
|
|
26277
|
+
let selectedItemsIds = this.selectedItems.split(',');
|
|
26278
|
+
let directory = this.getCurrentDirectory();
|
|
26279
|
+
let id = directory.dataItem === undefined
|
|
26280
|
+
? this.mainFolder
|
|
26281
|
+
: this.getCurrentFolderId(directory);
|
|
26282
|
+
if (selectedItemsIds.length === 1 && this.clipboardItems.length > 0 && this.clipboardItems.indexOf(selectedItemsIds[0]) > -1) {
|
|
26283
|
+
this.customToastrService.show('error', 'TOASTER.ERROR', "TOASTER.item_already_added");
|
|
26284
|
+
}
|
|
26285
|
+
else {
|
|
26286
|
+
this.clipboardItems = union(this.clipboardItems, selectedItemsIds);
|
|
26287
|
+
this.userPreferenceService.set('clipboardItems', JSON.stringify(this.clipboardItems));
|
|
26288
|
+
this.customToastrService.show('success', 'TOASTER.SUCCESS', "TOASTER.added_to_clipboard");
|
|
26289
|
+
this.reinitializeFolderTree(id, directory);
|
|
26290
|
+
this.fileManagerService.onRefreshClipboard.emit();
|
|
26291
|
+
this.showClipboard = true;
|
|
26292
|
+
console.log(this.clipboardItems);
|
|
26293
|
+
}
|
|
26294
|
+
};
|
|
25953
26295
|
// -------------------------------------------------------------------------------------------------------------------------------------
|
|
25954
26296
|
this.customizeIcon = (fileSystemItem) => {
|
|
25955
26297
|
var _a, _b, _c;
|
|
@@ -26322,6 +26664,8 @@ class FileManagerAbstract {
|
|
|
26322
26664
|
// if (this.showDetails) {
|
|
26323
26665
|
// this.sideMenuLoading = true;
|
|
26324
26666
|
// }
|
|
26667
|
+
this.showClipboard = false;
|
|
26668
|
+
this.showDgdaClipboard = false;
|
|
26325
26669
|
this.myFileMangerInstance = e.component;
|
|
26326
26670
|
this.currentDirectory = this.getCurrentDirectory();
|
|
26327
26671
|
let selectedItem = this.fileManager.instance.getSelectedItems();
|
|
@@ -26414,6 +26758,8 @@ class FileManagerAbstract {
|
|
|
26414
26758
|
onItemClicked(e) {
|
|
26415
26759
|
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
|
|
26416
26760
|
return __awaiter(this, void 0, void 0, function* () {
|
|
26761
|
+
this.showClipboard = false; // close clipboard if navigated to any place
|
|
26762
|
+
this.showDgdaClipboard = false;
|
|
26417
26763
|
this.selectedFolderPath = (_a = e.directory.dataItem) === null || _a === void 0 ? void 0 : _a.entity.path;
|
|
26418
26764
|
if (e.directory.dataItem === undefined) {
|
|
26419
26765
|
if (this.mainFolder === 'sharedDocumentsRoot') {
|
|
@@ -26676,7 +27022,8 @@ class FileManagerAbstract {
|
|
|
26676
27022
|
}
|
|
26677
27023
|
openSideMenuDetails() {
|
|
26678
27024
|
this.showDetails = true;
|
|
26679
|
-
|
|
27025
|
+
this.showClipboard = false;
|
|
27026
|
+
this.showDgdaClipboard = false;
|
|
26680
27027
|
}
|
|
26681
27028
|
closeSideMenu() {
|
|
26682
27029
|
this.showDetails = false;
|
|
@@ -26942,5 +27289,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImpor
|
|
|
26942
27289
|
* Generated bundle index. Do not edit.
|
|
26943
27290
|
*/
|
|
26944
27291
|
|
|
26945
|
-
export { ActivitiesLogComponent, ActivitiesLogModule, ActivityLineComponent, AdapterService, AddPermissionsDialogComponent, AddToCollectionComponent, AppConfigService, AppHasRoleDirective, AttachmentItemComponent, AttachmentItemModule, AttachmentModalModule, AttachmentsComponent, AttachmentsListComponent, AttachmentsPageProviderComponent, AvatarComponent, AvatarModule, BooleanViewerComponent, ButtonComponent, CallApiService, CardComponent, CardModule, ChartDataService, ClickOutsideDirective, CommentsDashletComponent, CommentsModule, ComponentRegisterService, ComponentTranslationModel, ConfirmCallerDialogComponent, ConfirmCallerModule, ConfirmDialogComponent, ConfirmationDialogComponent, ConfirmationDialogModule, ContentActionType, CopyComponent, CoreModule, CorrespondenceRelationComponent, CorrespondenceRelationModule, CorrespondenceRelationService, CorrespondenceTagsComponent, CreateDirectoryComponent, CreateEntityComponent, CreateEntityModule, CreateModalComponent, CreationTypeComponent, CtsTagsModule, CustomDocumentViewerComponent, CustomPpViewerComponent, CustomToastrModule, CustomToastrService, CutomeVocViewerComponent, DataViewerComponent, DateFormatterService, DateHelperService, DateViewerComponent, DeleteComponent, DepartmentApiService, DepartmentFormComponent, DepartmentManagementService, DepartmentViewerComponent, DialogMangmentService, DirectiveModule, DisplaySuitableIconComponent, DisplaySuitableIconModule, DocumentScanService, DocumentTemplatesConstants, DocumentTemplatesService, DocumentUploadComponent, DocumentsComponent, DocumentsConstants, DocumentsListComponent, DocumentsModule, DocumentsService, DragAndDropDirective, DropdownViewerComponent, DynamicChartComponent, DynamicChartModule, DynamicColumnComponent, DynamicFieldsRendererComponent, DynamicFieldsRendererModule, DynamicFilterComponent, DynamicFilterModule, DynamicFormBoolItemComponent, DynamicFormBuilderComponent, DynamicFormCheckboxItemComponent, DynamicFormComponent, DynamicFormDateItemComponent, DynamicFormDepartmentComponent, DynamicFormFieldComponent, DynamicFormHijriDateitemComponent, DynamicFormMapItemComponent, DynamicFormModule, DynamicFormOptionsComponent, DynamicFormSelectItemComponent, DynamicFormSelectTagComponent, DynamicFormSelectUserFilterComponent, DynamicFormSelectUsersComponent, DynamicFormService, DynamicFormSlideToggleitemComponent, DynamicFormTextItemComponent, DynamicFormTextareaComponent, DynamicFormViewerComponent, DynamicFormVocabularyItemComponent, DynamicSearchComponent, DynamicSearchModule, DynamicSingleChartComponent, DynamicTableComponent, DynamicTableModule, DynamicTableService, DynamicTabsComponent, DynamicTabsModule, DynamicViewModule, EXTENSION_JSONS, EvaluatorsService, ExtensionLoaderService, ExtensionService, FileManagerAbstract, FileManagerAdapter, FileManagerService, FileMangerModule, FileSizePipe, FilterComponent, FilterModule, FolderModalComponent, FormBuilderService, GlobalPdfTron, GregorianDatepickerComponent, HijriDatePipe, HijriDatepickerComponent, HijriGregorianDatepickerComponent, IconService, InitializationService, ItemListComponent, Lang$1 as Lang, LatestActivityComponent, LatestActivityModule, LibrarySharedModule, ListViewerComponent, LoanRequestComponent, LocalStoragService$1 as LocalStoragService, LocalizedDatePipe, MY_MOMENT_FORMATS, MainfolderService, MomentDateAdapter, MoveComponent, MultiValuePipe, MultipleDynamicFormViewerComponent, MutipleDynamicFormViewerModule, NgxHijriGregorianDatepickerModule, NoDataComponent, NotificationItemComponent, NotificationOptionsComponent, NotificationsButtonComponent, NotificationsListComponent, NotificationsModule, NotificationsService, NuxeoDevelopmentFrameworkComponent, NuxeoDevelopmentFrameworkModule, NuxeoDevelopmentFrameworkService, NuxeoService$1 as NuxeoService, PaginationComponent, PaginationModule, PdfTronModule, PdftronComponent, PdftronService, PermissionService, PermissionsComponent, PermissionsDirective, PermissionsModule, PermissionsTemplateComponent, PipesModule, PublishDialogComponent, PublishingDocumentService, ReadMoreComponent, RecentlyViewedService, RenameComponent, RolesService$1 as RolesService, SafeHtmlPipe, ScanComponent, ScanModalComponent, SearchAutocompleteComponent, SecurePipe, SelectComponent, SelectModule, SelectUsersByDepartmentModule, SelectUsersByDepartmentsComponent, SetDirRtlDirective, SetRtlDirective, ShareDialogComponent, SharedDocsService, SharedServicesModule, SidepanelComponent, SingleActivityComponent, SpinnerComponent, TRANSLATION_PROVIDER$1 as TRANSLATION_PROVIDER, TableComponent, TableModule, TagsApiService, TemplateModalComponent, TimeAgoPipe, TransferDocComponent, TranslateLoaderService, TranslationService$1 as TranslationService, TreeviewSelectComponent, UpdateModalComponent, UploadFileService, UploadManagmentService, UserCardComponent, UserComponent, UserModule, UserPreferenceValues$1 as UserPreferenceValues, UserPreferencesService$1 as UserPreferencesService, UserService, UsersCardComponent, UsersCardModule, VersionsComponent, ViewerFilesService, ViewerLogComponent, ViewerLogModule, VocabularyApiService, VocabularyComponent, VocabularyModule, appInitializer, departmentCacheBuster$, extensionJsonsFactory, filterEnabled, getValue, mergeArrays, mergeObjects, minute$1 as minute, provideExtensionConfig, reduceEmptyMenus, reduceSeparators, sortByOrder };
|
|
27292
|
+
export { ActivitiesLogComponent, ActivitiesLogModule, ActivityLineComponent, AdapterService, AddPermissionsDialogComponent, AddToCollectionComponent, AppConfigService, AppHasRoleDirective, AttachmentItemComponent, AttachmentItemModule, AttachmentModalModule, AttachmentsComponent, AttachmentsListComponent, AttachmentsPageProviderComponent, AvatarComponent, AvatarModule, BooleanViewerComponent, ButtonComponent, CallApiService, CardComponent, CardModule, ChartDataService, ClickOutsideDirective, ClipboardComponent, CommentsDashletComponent, CommentsModule, ComponentRegisterService, ComponentTranslationModel, ConfirmCallerDialogComponent, ConfirmCallerModule, ConfirmDialogComponent, ConfirmationDialogComponent, ConfirmationDialogModule, ContentActionType, CopyComponent, CoreModule, CorrespondenceRelationComponent, CorrespondenceRelationModule, CorrespondenceRelationService, CorrespondenceTagsComponent, CreateDirectoryComponent, CreateEntityComponent, CreateEntityModule, CreateModalComponent, CreationTypeComponent, CtsTagsModule, CustomDocumentViewerComponent, CustomPpViewerComponent, CustomToastrModule, CustomToastrService, CutomeVocViewerComponent, DataViewerComponent, DateFormatterService, DateHelperService, DateViewerComponent, DeleteComponent, DepartmentApiService, DepartmentFormComponent, DepartmentManagementService, DepartmentViewerComponent, DialogMangmentService, DirectiveModule, DisplaySuitableIconComponent, DisplaySuitableIconModule, DocumentScanService, DocumentTemplatesConstants, DocumentTemplatesService, DocumentUploadComponent, DocumentsComponent, DocumentsConstants, DocumentsListComponent, DocumentsModule, DocumentsService, DragAndDropDirective, DropdownViewerComponent, DynamicChartComponent, DynamicChartModule, DynamicColumnComponent, DynamicFieldsRendererComponent, DynamicFieldsRendererModule, DynamicFilterComponent, DynamicFilterModule, DynamicFormBoolItemComponent, DynamicFormBuilderComponent, DynamicFormCheckboxItemComponent, DynamicFormComponent, DynamicFormDateItemComponent, DynamicFormDepartmentComponent, DynamicFormFieldComponent, DynamicFormHijriDateitemComponent, DynamicFormMapItemComponent, DynamicFormModule, DynamicFormOptionsComponent, DynamicFormSelectItemComponent, DynamicFormSelectTagComponent, DynamicFormSelectUserFilterComponent, DynamicFormSelectUsersComponent, DynamicFormService, DynamicFormSlideToggleitemComponent, DynamicFormTextItemComponent, DynamicFormTextareaComponent, DynamicFormViewerComponent, DynamicFormVocabularyItemComponent, DynamicSearchComponent, DynamicSearchModule, DynamicSingleChartComponent, DynamicTableComponent, DynamicTableModule, DynamicTableService, DynamicTabsComponent, DynamicTabsModule, DynamicViewModule, EXTENSION_JSONS, EvaluatorsService, ExtensionLoaderService, ExtensionService, FileManagerAbstract, FileManagerAdapter, FileManagerService, FileMangerModule, FileSizePipe, FilterComponent, FilterModule, FolderModalComponent, FormBuilderService, GlobalPdfTron, GregorianDatepickerComponent, HijriDatePipe, HijriDatepickerComponent, HijriGregorianDatepickerComponent, IconService, InitializationService, ItemListComponent, Lang$1 as Lang, LatestActivityComponent, LatestActivityModule, LibrarySharedModule, ListViewerComponent, LoanRequestComponent, LocalStoragService$1 as LocalStoragService, LocalizedDatePipe, MY_MOMENT_FORMATS, MainfolderService, MomentDateAdapter, MoveComponent, MultiValuePipe, MultipleDynamicFormViewerComponent, MutipleDynamicFormViewerModule, NgxHijriGregorianDatepickerModule, NoDataComponent, NotificationItemComponent, NotificationOptionsComponent, NotificationsButtonComponent, NotificationsListComponent, NotificationsModule, NotificationsService, NuxeoDevelopmentFrameworkComponent, NuxeoDevelopmentFrameworkModule, NuxeoDevelopmentFrameworkService, NuxeoService$1 as NuxeoService, PaginationComponent, PaginationModule, PdfTronModule, PdftronComponent, PdftronService, PermissionService, PermissionsComponent, PermissionsDirective, PermissionsModule, PermissionsTemplateComponent, PipesModule, PublishDialogComponent, PublishingDocumentService, ReadMoreComponent, RecentlyViewedService, RenameComponent, RolesService$1 as RolesService, SafeHtmlPipe, ScanComponent, ScanModalComponent, SearchAutocompleteComponent, SecurePipe, SelectComponent, SelectModule, SelectUsersByDepartmentModule, SelectUsersByDepartmentsComponent, SetDirRtlDirective, SetRtlDirective, ShareDialogComponent, SharedDocsService, SharedServicesModule, SidepanelComponent, SingleActivityComponent, SpinnerComponent, TRANSLATION_PROVIDER$1 as TRANSLATION_PROVIDER, TableComponent, TableModule, TagsApiService, TemplateModalComponent, TimeAgoPipe, TransferDocComponent, TranslateLoaderService, TranslationService$1 as TranslationService, TreeviewSelectComponent, UpdateModalComponent, UploadFileService, UploadManagmentService, UserCardComponent, UserComponent, UserModule, UserPreferenceValues$1 as UserPreferenceValues, UserPreferencesService$1 as UserPreferencesService, UserService, UsersCardComponent, UsersCardModule, VersionsComponent, ViewerFilesService, ViewerLogComponent, ViewerLogModule, VocabularyApiService, VocabularyComponent, VocabularyModule, appInitializer, departmentCacheBuster$, extensionJsonsFactory, filterEnabled, getValue, mergeArrays, mergeObjects, minute$1 as minute, provideExtensionConfig, reduceEmptyMenus, reduceSeparators, sortByOrder };
|
|
26946
27293
|
//# sourceMappingURL=nuxeo-development-framework.js.map
|