nuxeo-development-framework 2.0.9 → 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 +8683 -454
- package/bundles/nuxeo-development-framework.umd.js.map +1 -1
- package/esm2015/lib/components/activities-log/activities-log/activities-log.component.js +84 -0
- package/esm2015/lib/components/activities-log/activities-log/activities-log.service.js +35 -0
- package/esm2015/lib/components/activities-log/activities-log.module.js +30 -0
- package/esm2015/lib/components/attachment-item/attachment-item/attachment-item.component.js +54 -0
- package/esm2015/lib/components/attachment-item/attachment-item.module.js +44 -0
- package/esm2015/lib/components/attachment-modal/attachment-modal.module.js +40 -0
- package/esm2015/lib/components/attachment-modal/attachments/attachments.component.js +157 -0
- package/esm2015/lib/components/confirmation-dialog/confirmation-dialog/confirmation-dialog.component.js +30 -0
- package/esm2015/lib/components/confirmation-dialog/confirmation-dialog.module.js +30 -0
- package/esm2015/lib/components/display-suitable-icon/display-suitable-icon/display-suitable-icon.component.js +44 -0
- package/esm2015/lib/components/display-suitable-icon/display-suitable-icon/icon.service.js +140 -0
- package/esm2015/lib/components/display-suitable-icon/display-suitable-icon.module.js +24 -0
- package/esm2015/lib/components/dynamic-fields-renderer/dynamic-fields-renderer/dynamic-fields-renderer.component.js +177 -0
- package/esm2015/lib/components/dynamic-fields-renderer/dynamic-fields-renderer.module.js +43 -0
- package/esm2015/lib/components/dynamic-tabs/dynamic-tabs/dynamic-tabs.component.js +39 -0
- package/esm2015/lib/components/dynamic-tabs/dynamic-tabs.module.js +34 -0
- package/esm2015/lib/components/file-manger/components/add-to-collection/add-to-collection.component.js +132 -0
- package/esm2015/lib/components/file-manger/components/clipboard/clipboard.component.js +264 -0
- package/esm2015/lib/components/file-manger/components/copy/copy.component.js +119 -0
- package/esm2015/lib/components/file-manger/components/create-directory/create-directory.component.js +91 -0
- package/esm2015/lib/components/file-manger/components/create-modal/create-modal.component.js +455 -0
- package/esm2015/lib/components/file-manger/components/creation-type/creation-type.component.js +26 -0
- package/esm2015/lib/components/file-manger/components/delete/delete.component.js +77 -0
- package/esm2015/lib/components/file-manger/components/folder-modal/folder-modal.component.js +114 -0
- package/esm2015/lib/components/file-manger/components/loan-request/loan-request.component.js +80 -0
- package/esm2015/lib/components/file-manger/components/move/move.component.js +108 -0
- package/esm2015/lib/components/file-manger/components/publish-dialog/publish-dialog.component.js +111 -0
- package/esm2015/lib/components/file-manger/components/rename/rename.component.js +86 -0
- package/esm2015/lib/components/file-manger/components/scan-modal/scan-modal.component.js +314 -0
- package/esm2015/lib/components/file-manger/components/share-dialog/share-dialog.component.js +294 -0
- package/esm2015/lib/components/file-manger/components/sidepanel/sidepanel.component.js +257 -0
- package/esm2015/lib/components/file-manger/components/template-modal/template-modal.component.js +64 -0
- package/esm2015/lib/components/file-manger/components/transfer-doc/transfer-doc.component.js +71 -0
- package/esm2015/lib/components/file-manger/components/update-modal/update-modal.component.js +358 -0
- package/esm2015/lib/components/file-manger/file-manager.abstract.js +1031 -0
- package/esm2015/lib/components/file-manger/file-manger.module.js +295 -0
- package/esm2015/lib/components/mutiple-dynamic-form-viewer/multiple-dynamic-form-viewer/multiple-dynamic-form-viewer.component.js +51 -0
- package/esm2015/lib/components/mutiple-dynamic-form-viewer/mutiple-dynamic-form-viewer.module.js +30 -0
- package/esm2015/lib/components/permissions/add-permissions-dialog/add-permissions-dialog.component.js +177 -0
- package/esm2015/lib/components/permissions/permission.service.js +118 -0
- package/esm2015/lib/components/permissions/permissions/permissions.component.js +232 -0
- package/esm2015/lib/components/permissions/permissions-template/permissions-template.component.js +117 -0
- package/esm2015/lib/components/permissions/permissions.module.js +71 -0
- package/esm2015/lib/components/select-users-by-department/select-users-by-department.module.js +47 -0
- package/esm2015/lib/components/select-users-by-department/select-users-by-departments/department-management.service.js +27 -0
- package/esm2015/lib/components/select-users-by-department/select-users-by-departments/select-users-by-departments.component.js +116 -0
- package/esm2015/lib/components/user/user/user.component.js +29 -0
- package/esm2015/lib/components/user/user.module.js +30 -0
- package/esm2015/lib/directive/directive.module.js +9 -4
- package/esm2015/lib/directive/drag-and-drop/drag-and-drop.directive.js +46 -0
- package/esm2015/lib/shared/libraryShared.module.js +1 -4
- package/esm2015/lib/shared-services/dialog-mangment.service.js +61 -0
- package/esm2015/lib/shared-services/dynamic-form.service.js +241 -0
- package/esm2015/lib/shared-services/file-manager.adapter.js +74 -0
- package/esm2015/lib/shared-services/file-manager.service.js +793 -0
- package/esm2015/lib/shared-services/global-pdftron.service.js +46 -0
- package/esm2015/lib/shared-services/mainfolder.service.js +160 -0
- package/esm2015/lib/shared-services/publishing-document.service.js +202 -0
- package/esm2015/lib/shared-services/recently-viewed.service.js +57 -0
- package/esm2015/lib/shared-services/shared-docs.service.js +135 -0
- package/esm2015/lib/shared-services/shared-services.module.js +20 -0
- package/esm2015/lib/shared-services/upload-file.service.js +29 -0
- package/esm2015/lib/shared-services/upload-managment.service.js +151 -0
- package/esm2015/lib/shared-services/user.service.js +54 -0
- package/esm2015/public-api.js +65 -1
- package/fesm2015/nuxeo-development-framework.js +7969 -154
- package/fesm2015/nuxeo-development-framework.js.map +1 -1
- package/lib/components/activities-log/activities-log/activities-log.component.d.ts +23 -0
- package/lib/components/activities-log/activities-log/activities-log.service.d.ts +9 -0
- package/lib/components/activities-log/activities-log.module.d.ts +10 -0
- package/lib/components/attachment-item/attachment-item/attachment-item.component.d.ts +21 -0
- package/lib/components/attachment-item/attachment-item.module.d.ts +13 -0
- package/lib/components/attachment-modal/attachment-modal.module.d.ts +12 -0
- package/lib/components/attachment-modal/attachments/attachments.component.d.ts +50 -0
- package/lib/components/confirmation-dialog/confirmation-dialog/confirmation-dialog.component.d.ts +12 -0
- package/lib/components/confirmation-dialog/confirmation-dialog.module.d.ts +10 -0
- package/lib/components/display-suitable-icon/display-suitable-icon/display-suitable-icon.component.d.ts +17 -0
- package/lib/components/display-suitable-icon/display-suitable-icon/icon.service.d.ts +8 -0
- package/lib/components/display-suitable-icon/display-suitable-icon.module.d.ts +8 -0
- package/lib/components/dynamic-fields-renderer/dynamic-fields-renderer/dynamic-fields-renderer.component.d.ts +137 -0
- package/lib/components/dynamic-fields-renderer/dynamic-fields-renderer.module.d.ts +12 -0
- package/lib/components/dynamic-tabs/dynamic-tabs/dynamic-tabs.component.d.ts +13 -0
- package/lib/components/dynamic-tabs/dynamic-tabs.module.d.ts +11 -0
- package/lib/components/file-manger/components/add-to-collection/add-to-collection.component.d.ts +31 -0
- package/lib/components/file-manger/components/clipboard/clipboard.component.d.ts +41 -0
- package/lib/components/file-manger/components/copy/copy.component.d.ts +32 -0
- package/lib/components/file-manger/components/create-directory/create-directory.component.d.ts +24 -0
- package/lib/components/file-manger/components/create-modal/create-modal.component.d.ts +108 -0
- package/lib/components/file-manger/components/creation-type/creation-type.component.d.ts +11 -0
- package/lib/components/file-manger/components/delete/delete.component.d.ts +30 -0
- package/lib/components/file-manger/components/folder-modal/folder-modal.component.d.ts +56 -0
- package/lib/components/file-manger/components/loan-request/loan-request.component.d.ts +23 -0
- package/lib/components/file-manger/components/move/move.component.d.ts +32 -0
- package/lib/components/file-manger/components/publish-dialog/publish-dialog.component.d.ts +32 -0
- package/lib/components/file-manger/components/rename/rename.component.d.ts +25 -0
- package/lib/components/file-manger/components/scan-modal/scan-modal.component.d.ts +95 -0
- package/lib/components/file-manger/components/share-dialog/share-dialog.component.d.ts +58 -0
- package/lib/components/file-manger/components/sidepanel/sidepanel.component.d.ts +62 -0
- package/lib/components/file-manger/components/template-modal/template-modal.component.d.ts +34 -0
- package/lib/components/file-manger/components/transfer-doc/transfer-doc.component.d.ts +24 -0
- package/lib/components/file-manger/components/update-modal/update-modal.component.d.ts +194 -0
- package/lib/components/file-manger/file-manager.abstract.d.ts +173 -0
- package/lib/components/file-manger/file-manger.module.d.ts +59 -0
- package/lib/components/mutiple-dynamic-form-viewer/multiple-dynamic-form-viewer/multiple-dynamic-form-viewer.component.d.ts +17 -0
- package/lib/components/mutiple-dynamic-form-viewer/mutiple-dynamic-form-viewer.module.d.ts +10 -0
- package/lib/components/permissions/add-permissions-dialog/add-permissions-dialog.component.d.ts +44 -0
- package/lib/components/permissions/permission.service.d.ts +21 -0
- package/lib/components/permissions/permissions/permissions.component.d.ts +48 -0
- package/lib/components/permissions/permissions-template/permissions-template.component.d.ts +22 -0
- package/lib/components/permissions/permissions.module.d.ts +21 -0
- package/lib/components/select-users-by-department/select-users-by-department.module.d.ts +13 -0
- package/lib/components/select-users-by-department/select-users-by-departments/department-management.service.d.ts +10 -0
- package/lib/components/select-users-by-department/select-users-by-departments/select-users-by-departments.component.d.ts +33 -0
- package/lib/components/user/user/user.component.d.ts +12 -0
- package/lib/components/user/user.module.d.ts +10 -0
- package/lib/directive/directive.module.d.ts +3 -2
- package/lib/directive/drag-and-drop/drag-and-drop.directive.d.ts +11 -0
- package/lib/shared/libraryShared.module.d.ts +1 -1
- package/lib/shared-services/dialog-mangment.service.d.ts +15 -0
- package/lib/shared-services/dynamic-form.service.d.ts +24 -0
- package/lib/shared-services/file-manager.adapter.d.ts +48 -0
- package/lib/shared-services/file-manager.service.d.ts +94 -0
- package/lib/shared-services/global-pdftron.service.d.ts +10 -0
- package/lib/shared-services/mainfolder.service.d.ts +32 -0
- package/lib/shared-services/publishing-document.service.d.ts +25 -0
- package/lib/shared-services/recently-viewed.service.d.ts +17 -0
- package/lib/shared-services/shared-docs.service.d.ts +21 -0
- package/lib/shared-services/shared-services.module.d.ts +7 -0
- package/lib/shared-services/upload-file.service.d.ts +10 -0
- package/lib/shared-services/upload-managment.service.d.ts +72 -0
- package/lib/shared-services/user.service.d.ts +12 -0
- package/package.json +7 -6
- package/public-api.d.ts +62 -0
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { __awaiter } from "tslib";
|
|
2
|
+
import { Injectable } from '@angular/core';
|
|
3
|
+
import WebViewer from '@pdftron/webviewer';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export class GlobalPdfTron {
|
|
6
|
+
constructor() {
|
|
7
|
+
this.init();
|
|
8
|
+
}
|
|
9
|
+
exportLinearizedPDF(file) {
|
|
10
|
+
return new Promise((resolve, reject) => {
|
|
11
|
+
this.instance.loadDocument(file);
|
|
12
|
+
this.instance.docViewer.on('documentLoaded', () => __awaiter(this, void 0, void 0, function* () {
|
|
13
|
+
const doc = this.instance.docViewer.getDocument();
|
|
14
|
+
const data = yield doc.getFileData({
|
|
15
|
+
flags: this.saveOptions.LINEARIZED,
|
|
16
|
+
downloadType: 'pdf'
|
|
17
|
+
});
|
|
18
|
+
const arr = new Uint8Array(data);
|
|
19
|
+
const blob = new Blob([arr], { type: 'application/pdf' });
|
|
20
|
+
const newFile = new File([blob], file.name, { type: 'application/pdf' });
|
|
21
|
+
resolve(newFile);
|
|
22
|
+
}));
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
init() {
|
|
26
|
+
if (!document.getElementById('global-pdftron')) {
|
|
27
|
+
const div = document.createElement('div');
|
|
28
|
+
div.style.display = 'none';
|
|
29
|
+
div.id = 'global-pdftron';
|
|
30
|
+
document.body.appendChild(div);
|
|
31
|
+
}
|
|
32
|
+
WebViewer({
|
|
33
|
+
path: '/dms/assets/pdftrons',
|
|
34
|
+
}, document.getElementById('global-pdftron')).then((instance) => {
|
|
35
|
+
this.saveOptions = instance.CoreControls.SaveOptions;
|
|
36
|
+
this.instance = instance;
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
GlobalPdfTron.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: GlobalPdfTron, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
41
|
+
GlobalPdfTron.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: GlobalPdfTron, providedIn: 'root' });
|
|
42
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: GlobalPdfTron, decorators: [{
|
|
43
|
+
type: Injectable,
|
|
44
|
+
args: [{ providedIn: 'root' }]
|
|
45
|
+
}], ctorParameters: function () { return []; } });
|
|
46
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2xvYmFsLXBkZnRyb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL251eGVvLWRldmVsb3BtZW50LWZyYW1ld29yay9zcmMvbGliL3NoYXJlZC1zZXJ2aWNlcy9nbG9iYWwtcGRmdHJvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sU0FBMkIsTUFBTSxvQkFBb0IsQ0FBQzs7QUFHN0QsTUFBTSxPQUFPLGFBQWE7SUFHdEI7UUFDSSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDaEIsQ0FBQztJQUdELG1CQUFtQixDQUFDLElBQUk7UUFDcEIsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtZQUNuQyxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FDdEIsSUFBSSxDQUNQLENBQUM7WUFDRixJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsZ0JBQWdCLEVBQUUsR0FBUyxFQUFFO2dCQUNwRCxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztnQkFDbEQsTUFBTSxJQUFJLEdBQUcsTUFBTSxHQUFHLENBQUMsV0FBVyxDQUFDO29CQUMvQixLQUFLLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVO29CQUNsQyxZQUFZLEVBQUUsS0FBSztpQkFDdEIsQ0FBQyxDQUFDO2dCQUNILE1BQU0sR0FBRyxHQUFHLElBQUksVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNqQyxNQUFNLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLGlCQUFpQixFQUFFLENBQUMsQ0FBQTtnQkFDekQsTUFBTSxPQUFPLEdBQUcsSUFBSSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLGlCQUFpQixFQUFFLENBQUMsQ0FBQTtnQkFDeEUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3JCLENBQUMsQ0FBQSxDQUFDLENBQUM7UUFDUCxDQUFDLENBQUMsQ0FBQztJQUdQLENBQUM7SUFDRCxJQUFJO1FBQ0EsSUFBSSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLENBQUMsRUFBRTtZQUM1QyxNQUFNLEdBQUcsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztZQUMzQixHQUFHLENBQUMsRUFBRSxHQUFHLGdCQUFnQixDQUFDO1lBQzFCLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQ2xDO1FBQ0QsU0FBUyxDQUNMO1lBQ0ksSUFBSSxFQUFFLHNCQUFzQjtTQUMvQixFQUNELFFBQVEsQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLENBQUMsQ0FDNUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRTtZQUNoQixJQUFJLENBQUMsV0FBVyxHQUFHLFFBQVEsQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDO1lBQ3JELElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQzdCLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs7MEdBNUNRLGFBQWE7OEdBQWIsYUFBYSxjQURBLE1BQU07MkZBQ25CLGFBQWE7a0JBRHpCLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgV2ViVmlld2VyLCB7IENvcmVDb250cm9scyB9IGZyb20gJ0BwZGZ0cm9uL3dlYnZpZXdlcic7XHJcblxyXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxyXG5leHBvcnQgY2xhc3MgR2xvYmFsUGRmVHJvbiB7XHJcbiAgICBpbnN0YW5jZTtcclxuICAgIHNhdmVPcHRpb25zO1xyXG4gICAgY29uc3RydWN0b3IoKSB7XHJcbiAgICAgICAgdGhpcy5pbml0KCk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIGV4cG9ydExpbmVhcml6ZWRQREYoZmlsZSkge1xyXG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuaW5zdGFuY2UubG9hZERvY3VtZW50KFxyXG4gICAgICAgICAgICAgICAgZmlsZVxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB0aGlzLmluc3RhbmNlLmRvY1ZpZXdlci5vbignZG9jdW1lbnRMb2FkZWQnLCBhc3luYyAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBkb2MgPSB0aGlzLmluc3RhbmNlLmRvY1ZpZXdlci5nZXREb2N1bWVudCgpO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IGRvYy5nZXRGaWxlRGF0YSh7XHJcbiAgICAgICAgICAgICAgICAgICAgZmxhZ3M6IHRoaXMuc2F2ZU9wdGlvbnMuTElORUFSSVpFRCxcclxuICAgICAgICAgICAgICAgICAgICBkb3dubG9hZFR5cGU6ICdwZGYnXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGFyciA9IG5ldyBVaW50OEFycmF5KGRhdGEpO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgYmxvYiA9IG5ldyBCbG9iKFthcnJdLCB7IHR5cGU6ICdhcHBsaWNhdGlvbi9wZGYnIH0pXHJcbiAgICAgICAgICAgICAgICBjb25zdCBuZXdGaWxlID0gbmV3IEZpbGUoW2Jsb2JdLCBmaWxlLm5hbWUsIHsgdHlwZTogJ2FwcGxpY2F0aW9uL3BkZicgfSlcclxuICAgICAgICAgICAgICAgIHJlc29sdmUobmV3RmlsZSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0pO1xyXG5cclxuXHJcbiAgICB9XHJcbiAgICBpbml0KCkge1xyXG4gICAgICAgIGlmICghZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2dsb2JhbC1wZGZ0cm9uJykpIHtcclxuICAgICAgICAgICAgY29uc3QgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XHJcbiAgICAgICAgICAgIGRpdi5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xyXG4gICAgICAgICAgICBkaXYuaWQgPSAnZ2xvYmFsLXBkZnRyb24nO1xyXG4gICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRpdik7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIFdlYlZpZXdlcihcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgcGF0aDogJy9kbXMvYXNzZXRzL3BkZnRyb25zJyxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2dsb2JhbC1wZGZ0cm9uJyksXHJcbiAgICAgICAgKS50aGVuKChpbnN0YW5jZSkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnNhdmVPcHRpb25zID0gaW5zdGFuY2UuQ29yZUNvbnRyb2xzLlNhdmVPcHRpb25zO1xyXG4gICAgICAgICAgICB0aGlzLmluc3RhbmNlID0gaW5zdGFuY2U7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbn0iXX0=
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { from, of } from 'rxjs';
|
|
3
|
+
import { catchError, switchMap, tap } from 'rxjs/operators';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "../Core/services/nuxeo/nuxeo.service";
|
|
6
|
+
import * as i2 from "../configuration/app-config.service";
|
|
7
|
+
import * as i3 from "../Core/services/user/user-preferences.service";
|
|
8
|
+
export class MainfolderService {
|
|
9
|
+
constructor(nuxeoService, appConfigService, userPreference) {
|
|
10
|
+
this.nuxeoService = nuxeoService;
|
|
11
|
+
this.appConfigService = appConfigService;
|
|
12
|
+
this.userPreference = userPreference;
|
|
13
|
+
this.localStoragKeys = this.appConfigService.myConfiguration.localStorageKey;
|
|
14
|
+
}
|
|
15
|
+
fetchfileManager_mainFolderId(apiName) {
|
|
16
|
+
return from(this.nuxeoService.nuxeoClient
|
|
17
|
+
.operation(apiName ? apiName : 'AC_UA_GetFileManagerID')
|
|
18
|
+
.execute({
|
|
19
|
+
headers: {
|
|
20
|
+
properties: 'file, dublincore, creator, driveroot, departmentspace',
|
|
21
|
+
'fetch-document': 'dc:creator, dc:lastContributor',
|
|
22
|
+
'enrichers-document': 'hasFolderishChild, favorites, thumbnail, quickAccess,breadcrumb',
|
|
23
|
+
'X-NXenrichers-document': 'tags,permissions',
|
|
24
|
+
},
|
|
25
|
+
})).pipe(tap((res) => {
|
|
26
|
+
var _a;
|
|
27
|
+
if (!((_a = res === null || res === void 0 ? void 0 : res.entries) === null || _a === void 0 ? void 0 : _a.length)) {
|
|
28
|
+
throw Error('Main Folder - empty response');
|
|
29
|
+
}
|
|
30
|
+
}), catchError((err) => {
|
|
31
|
+
console.error(err);
|
|
32
|
+
return of(false);
|
|
33
|
+
}));
|
|
34
|
+
}
|
|
35
|
+
fetchMyFilesManager_mainFolderId() {
|
|
36
|
+
return from(this.nuxeoService.nuxeoClient
|
|
37
|
+
.operation('AC_UA_PersonalSpace_GetOrCreate')
|
|
38
|
+
.execute()).pipe(tap((res) => {
|
|
39
|
+
console.log('res', res);
|
|
40
|
+
}), catchError((err) => {
|
|
41
|
+
console.error(err);
|
|
42
|
+
return of(false);
|
|
43
|
+
}));
|
|
44
|
+
}
|
|
45
|
+
fetchArchiveManager_mainFolderId() {
|
|
46
|
+
return from(this.nuxeoService.nuxeoClient
|
|
47
|
+
.operation('AC_UA_GetSpaceID')
|
|
48
|
+
.execute()).pipe(tap((res) => {
|
|
49
|
+
console.log('res', res);
|
|
50
|
+
}), catchError((err) => {
|
|
51
|
+
console.error(err);
|
|
52
|
+
return of(false);
|
|
53
|
+
}));
|
|
54
|
+
}
|
|
55
|
+
fetchcategory_mainFolderId() {
|
|
56
|
+
return from(this.nuxeoService.nuxeoClient
|
|
57
|
+
.operation('AC_UA_GetNCARCategoryID')
|
|
58
|
+
.execute()).pipe(tap((res) => {
|
|
59
|
+
// if (!res?.entries?.length) {
|
|
60
|
+
// throw Error('Category Folder - empty response');
|
|
61
|
+
// }
|
|
62
|
+
}), catchError((err) => {
|
|
63
|
+
console.error(err);
|
|
64
|
+
return of(false);
|
|
65
|
+
}));
|
|
66
|
+
}
|
|
67
|
+
save_fileManagerObj_ToLocalStorage(apiName = 'AC_UA_GetFileManagerID') {
|
|
68
|
+
/*return this.userPreference.hasItem('fileManagerObj') && !reset
|
|
69
|
+
? of(true):*/
|
|
70
|
+
return this.fetchfileManager_mainFolderId(apiName).pipe(tap((res) => {
|
|
71
|
+
console.log('res: ', res);
|
|
72
|
+
if (res) {
|
|
73
|
+
this.fileManagerObj = {
|
|
74
|
+
entries: res.entries.map((item) => {
|
|
75
|
+
delete item._baseOptions;
|
|
76
|
+
delete item._dirtyProperties;
|
|
77
|
+
delete item._nuxeo;
|
|
78
|
+
delete item._repository;
|
|
79
|
+
return item;
|
|
80
|
+
}),
|
|
81
|
+
};
|
|
82
|
+
this.userPreference.set(apiName ? this.localStoragKeys[apiName] : 'fileManagerObj', JSON.stringify(this.fileManagerObj));
|
|
83
|
+
}
|
|
84
|
+
}), switchMap(value => of(this.get_fileManagerObj_FromLocalStorage(apiName ? this.localStoragKeys[apiName] : 'fileManagerObj'))));
|
|
85
|
+
}
|
|
86
|
+
save_myfilesManagerObj_ToLocalStorage() {
|
|
87
|
+
return this.userPreference.hasItem('myFilesManagerObj')
|
|
88
|
+
? of(true)
|
|
89
|
+
: this.fetchMyFilesManager_mainFolderId().pipe(tap((res) => {
|
|
90
|
+
console.log('res: ' + res);
|
|
91
|
+
if (res) {
|
|
92
|
+
this.myFilesManagerObj = {
|
|
93
|
+
id: res.uid,
|
|
94
|
+
path: res.path,
|
|
95
|
+
};
|
|
96
|
+
this.userPreference.set('myFilesManagerObj', JSON.stringify(this.myFilesManagerObj));
|
|
97
|
+
}
|
|
98
|
+
}));
|
|
99
|
+
}
|
|
100
|
+
save_ArchiveManagerObject_ToLocalStorage() {
|
|
101
|
+
return this.userPreference.hasItem('ArchiveManagerObj')
|
|
102
|
+
? of(true)
|
|
103
|
+
: this.fetchArchiveManager_mainFolderId().pipe(tap((res) => {
|
|
104
|
+
console.log('res: ' + res);
|
|
105
|
+
if (res) {
|
|
106
|
+
this.ArchiveManagerObj = {
|
|
107
|
+
id: res.uid,
|
|
108
|
+
path: res.path,
|
|
109
|
+
};
|
|
110
|
+
this.userPreference.set('ArchiveManagerObj', JSON.stringify(this.ArchiveManagerObj));
|
|
111
|
+
}
|
|
112
|
+
}));
|
|
113
|
+
}
|
|
114
|
+
save_categoryObj_ToLocalStorage() {
|
|
115
|
+
return this.userPreference.hasItem('categoryObj')
|
|
116
|
+
? of(true)
|
|
117
|
+
: this.fetchcategory_mainFolderId().pipe(tap((res) => {
|
|
118
|
+
if (res) {
|
|
119
|
+
this.categoryObj = {
|
|
120
|
+
id: res.uid,
|
|
121
|
+
path: res.path,
|
|
122
|
+
};
|
|
123
|
+
this.userPreference.set('categoryObj', JSON.stringify(this.categoryObj));
|
|
124
|
+
}
|
|
125
|
+
}));
|
|
126
|
+
}
|
|
127
|
+
get_fileManagerObj_FromLocalStorage(key) {
|
|
128
|
+
if (this.userPreference.hasItem(key ? key : 'fileManagerObj')) {
|
|
129
|
+
return JSON.parse(this.userPreference.get(key ? key : 'fileManagerObj'));
|
|
130
|
+
}
|
|
131
|
+
return null;
|
|
132
|
+
}
|
|
133
|
+
get_myFilesManagerObj_FromLocalStorage() {
|
|
134
|
+
if (this.userPreference.hasItem('myFilesManagerObj')) {
|
|
135
|
+
return JSON.parse(this.userPreference.get('myFilesManagerObj'));
|
|
136
|
+
}
|
|
137
|
+
return null;
|
|
138
|
+
}
|
|
139
|
+
get_ArchiveManagerObj_FromLocalStorage() {
|
|
140
|
+
if (this.userPreference.hasItem('ArchiveManagerObj')) {
|
|
141
|
+
return JSON.parse(this.userPreference.get('ArchiveManagerObj'));
|
|
142
|
+
}
|
|
143
|
+
return null;
|
|
144
|
+
}
|
|
145
|
+
get_categoryObj_FromLocalStorage() {
|
|
146
|
+
if (this.userPreference.hasItem('categoryObj')) {
|
|
147
|
+
return JSON.parse(this.userPreference.get('categoryObj'));
|
|
148
|
+
}
|
|
149
|
+
return null;
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
MainfolderService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: MainfolderService, deps: [{ token: i1.NuxeoService }, { token: i2.AppConfigService }, { token: i3.UserPreferencesService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
153
|
+
MainfolderService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: MainfolderService, providedIn: 'root' });
|
|
154
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: MainfolderService, decorators: [{
|
|
155
|
+
type: Injectable,
|
|
156
|
+
args: [{
|
|
157
|
+
providedIn: 'root',
|
|
158
|
+
}]
|
|
159
|
+
}], ctorParameters: function () { return [{ type: i1.NuxeoService }, { type: i2.AppConfigService }, { type: i3.UserPreferencesService }]; } });
|
|
160
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbmZvbGRlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvc2hhcmVkLXNlcnZpY2VzL21haW5mb2xkZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxJQUFJLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7OztBQVM1RCxNQUFNLE9BQU8saUJBQWlCO0lBUTFCLFlBQ1ksWUFBMEIsRUFDMUIsZ0JBQW1DLEVBQ25DLGNBQXNDO1FBRnRDLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBbUI7UUFDbkMsbUJBQWMsR0FBZCxjQUFjLENBQXdCO1FBRTlDLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGVBQWUsQ0FBQyxlQUFlLENBQUM7SUFDakYsQ0FBQztJQUVELDZCQUE2QixDQUFDLE9BQVE7UUFDbEMsT0FBTyxJQUFJLENBQ1AsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXO2FBQ3hCLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsd0JBQXdCLENBQUM7YUFDdkQsT0FBTyxDQUFDO1lBQ0wsT0FBTyxFQUFFO2dCQUNMLFVBQVUsRUFBRSx1REFBdUQ7Z0JBQ25FLGdCQUFnQixFQUFFLGdDQUFnQztnQkFDbEQsb0JBQW9CLEVBQ2hCLGlFQUFpRTtnQkFDckUsd0JBQXdCLEVBQUUsa0JBQWtCO2FBQy9DO1NBQ0osQ0FBQyxDQUNULENBQUMsSUFBSSxDQUNGLEdBQUcsQ0FBQyxD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Q0QsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQzs7OEdBN01RLGlCQUFpQjtrSEFBakIsaUJBQWlCLGNBSGQsTUFBTTsyRkFHVCxpQkFBaUI7a0JBSjdCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBmcm9tLCBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBjYXRjaEVycm9yLCBzd2l0Y2hNYXAsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgTnV4ZW9TZXJ2aWNlIH0gZnJvbSAnLi4vQ29yZS9zZXJ2aWNlcy9udXhlby9udXhlby5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVXNlclByZWZlcmVuY2VzU2VydmljZSB9IGZyb20gJy4uL0NvcmUvc2VydmljZXMvdXNlci91c2VyLXByZWZlcmVuY2VzLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBcHBDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi4vY29uZmlndXJhdGlvbi9hcHAtY29uZmlnLnNlcnZpY2UnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5cclxuZXhwb3J0IGNsYXNzIE1haW5mb2xkZXJTZXJ2aWNlIHtcclxuICAgIGZpbGVNYW5hZ2VyX21haW5Gb2xkZXJJZDtcclxuICAgIGNhdGVnb3J5X21haW5Gb2xkZXJJZDtcclxuICAgIGZpbGVNYW5hZ2VyT2JqOiBhbnk7XHJcbiAgICBteUZpbGVzTWFuYWdlck9iajogYW55O1xyXG4gICAgQXJjaGl2ZU1hbmFnZXJPYmo6IGFueTtcclxuICAgIGNhdGVnb3J5T2JqOiBhbnk7XHJcbiAgICBsb2NhbFN0b3JhZ0tleXM7XHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcml2YXRlIG51eGVvU2VydmljZTogTnV4ZW9TZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgYXBwQ29uZmlnU2VydmljZSA6IEFwcENvbmZpZ1NlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSB1c2VyUHJlZmVyZW5jZTogVXNlclByZWZlcmVuY2VzU2VydmljZVxyXG4gICAgKSB7IFxyXG4gICAgICAgIHRoaXMubG9jYWxTdG9yYWdLZXlzID0gdGhpcy5hcHBDb25maWdTZXJ2aWNlLm15Q29uZmlndXJhdGlvbi5sb2NhbFN0b3JhZ2VLZXk7XHJcbiAgICB9XHJcblxyXG4gICAgZmV0Y2hmaWxlTWFuYWdlcl9tYWluRm9sZGVySWQoYXBpTmFtZT8pOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgICAgIHJldHVybiBmcm9tKFxyXG4gICAgICAgICAgICB0aGlzLm51eGVvU2VydmljZS5udXhlb0NsaWVudFxyXG4gICAgICAgICAgICAgICAgLm9wZXJhdGlvbihhcGlOYW1lID8gYXBpTmFtZSA6ICdBQ19VQV9HZXRGaWxlTWFuYWdlcklEJylcclxuICAgICAgICAgICAgICAgIC5leGVjdXRlKHtcclxuICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnRpZXM6ICdmaWxlLCBkdWJsaW5jb3JlLCBjcmVhdG9yLCBkcml2ZXJvb3QsIGRlcGFydG1lbnRzcGFjZScsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICdmZXRjaC1kb2N1bWVudCc6ICdkYzpjcmVhdG9yLCBkYzpsYXN0Q29udHJpYnV0b3InLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAnZW5yaWNoZXJzLWRvY3VtZW50JzpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICdoYXNGb2xkZXJpc2hDaGlsZCwgZmF2b3JpdGVzLCB0aHVtYm5haWwsIHF1aWNrQWNjZXNzLGJyZWFkY3J1bWInLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAnWC1OWGVucmljaGVycy1kb2N1bWVudCc6ICd0YWdzLHBlcm1pc3Npb25zJyxcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgfSlcclxuICAgICAgICApLnBpcGUoXHJcbiAgICAgICAgICAgIHRhcCgocmVzOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmICghcmVzPy5lbnRyaWVzPy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aHJvdyBFcnJvcignTWFpbiBGb2xkZXIgLSBlbXB0eSByZXNwb25zZScpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGVycik7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gb2YoZmFsc2UpO1xyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgZmV0Y2hNeUZpbGVzTWFuYWdlcl9tYWluRm9sZGVySWQoKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgICAgICByZXR1cm4gZnJvbShcclxuICAgICAgICAgICAgdGhpcy5udXhlb1NlcnZpY2UubnV4ZW9DbGllbnRcclxuICAgICAgICAgICAgICAgIC5vcGVyYXRpb24oJ0FDX1VBX1BlcnNvbmFsU3BhY2VfR2V0T3JDcmVhdGUnKVxyXG4gICAgICAgICAgICAgICAgLmV4ZWN1dGUoKVxyXG4gICAgICAgICkucGlwZShcclxuICAgICAgICAgICAgdGFwKChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ3JlcycsIHJlcyk7XHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICBjYXRjaEVycm9yKChlcnIpID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyKTtcclxuICAgICAgICAgICAgICAgIHJldHVybiBvZihmYWxzZSk7XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuICAgIGZldGNoQXJjaGl2ZU1hbmFnZXJfbWFpbkZvbGRlcklkKCk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICAgICAgcmV0dXJuIGZyb20oXHJcbiAgICAgICAgICAgIHRoaXMubnV4ZW9TZXJ2aWNlLm51eGVvQ2xpZW50XHJcbiAgICAgICAgICAgICAgICAub3BlcmF0aW9uKCdBQ19VQV9HZXRTcGFjZUlEJylcclxuICAgICAgICAgICAgICAgIC5leGVjdXRlKClcclxuICAgICAgICApLnBpcGUoXHJcbiAgICAgICAgICAgIHRhcCgocmVzOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdyZXMnLCByZXMpO1xyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGVycik7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gb2YoZmFsc2UpO1xyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgZmV0Y2hjYXRlZ29yeV9tYWluRm9sZGVySWQoKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgICAgICByZXR1cm4gZnJvbShcclxuICAgICAgICAgICAgdGhpcy5udXhlb1NlcnZpY2UubnV4ZW9DbGllbnRcclxuICAgICAgICAgICAgICAgIC5vcGVyYXRpb24oJ0FDX1VBX0dldE5DQVJDYXRlZ29yeUlEJylcclxuICAgICAgICAgICAgICAgIC5leGVjdXRlKClcclxuICAgICAgICApLnBpcGUoXHJcbiAgICAgICAgICAgIHRhcCgocmVzOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgIC8vIGlmICghcmVzPy5lbnRyaWVzPy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgIC8vICAgICB0aHJvdyBFcnJvcignQ2F0ZWdvcnkgRm9sZGVyIC0gZW1wdHkgcmVzcG9uc2UnKTtcclxuICAgICAgICAgICAgICAgIC8vIH1cclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycikgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihlcnIpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIG9mKGZhbHNlKTtcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHNhdmVfZmlsZU1hbmFnZXJPYmpfVG9Mb2NhbFN0b3JhZ2UoYXBpTmFtZSA9ICdBQ19VQV9HZXRGaWxlTWFuYWdlcklEJyk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICAgICAgLypyZXR1cm4gdGhpcy51c2VyUHJlZmVyZW5jZS5oYXNJdGVtKCdmaWxlTWFuYWdlck9iaicpICYmICFyZXNldFxyXG4gICAgICAgICAgICAgPyBvZih0cnVlKToqL1xyXG4gICAgICAgIHJldHVybiB0aGlzLmZldGNoZmlsZU1hbmFnZXJfbWFpbkZvbGRlcklkKGFwaU5hbWUpLnBpcGUoXHJcbiAgICAgICAgICAgIHRhcCgocmVzKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygncmVzOiAnLCByZXMpO1xyXG4gICAgICAgICAgICAgICAgaWYgKHJlcykge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZmlsZU1hbmFnZXJPYmogPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGVudHJpZXM6IHJlcy5lbnRyaWVzLm1hcCgoaXRlbSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVsZXRlIGl0ZW0uX2Jhc2VPcHRpb25zO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVsZXRlIGl0ZW0uX2RpcnR5UHJvcGVydGllcztcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlbGV0ZSBpdGVtLl9udXhlbztcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlbGV0ZSBpdGVtLl9yZXBvc2l0b3J5O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGl0ZW07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICAgICAgICAgIH07XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMudXNlclByZWZlcmVuY2Uuc2V0KFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBhcGlOYW1lID8gdGhpcy5sb2NhbFN0b3JhZ0tleXNbYXBpTmFtZV0gOiAnZmlsZU1hbmFnZXJPYmonLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBKU09OLnN0cmluZ2lmeSh0aGlzLmZpbGVNYW5hZ2VyT2JqKVxyXG4gICAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICBzd2l0Y2hNYXAodmFsdWUgPT4gb2YodGhpcy5nZXRfZmlsZU1hbmFnZXJPYmpfRnJvbUxvY2FsU3RvcmFnZShhcGlOYW1lID8gdGhpcy5sb2NhbFN0b3JhZ0tleXNbYXBpTmFtZV0gOiAnZmlsZU1hbmFnZXJPYmonKSkpXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBzYXZlX215ZmlsZXNNYW5hZ2VyT2JqX1RvTG9jYWxTdG9yYWdlKCk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMudXNlclByZWZlcmVuY2UuaGFzSXRlbSgnbXlGaWxlc01hbmFnZXJPYmonKVxyXG4gICAgICAgICAgICA/IG9mKHRydWUpXHJcbiAgICAgICAgICAgIDogdGhpcy5mZXRjaE15RmlsZXNNYW5hZ2VyX21haW5Gb2xkZXJJZCgpLnBpcGUoXHJcbiAgICAgICAgICAgICAgICB0YXAoKHJlcykgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdyZXM6ICcgKyByZXMpO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXMpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5teUZpbGVzTWFuYWdlck9iaiA9IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkOiByZXMudWlkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0aDogcmVzLnBhdGgsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH07XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnVzZXJQcmVmZXJlbmNlLnNldChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICdteUZpbGVzTWFuYWdlck9iaicsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBKU09OLnN0cmluZ2lmeSh0aGlzLm15RmlsZXNNYW5hZ2VyT2JqKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgc2F2ZV9BcmNoaXZlTWFuYWdlck9iamVjdF9Ub0xvY2FsU3RvcmFnZSgpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnVzZXJQcmVmZXJlbmNlLmhhc0l0ZW0oJ0FyY2hpdmVNYW5hZ2VyT2JqJylcclxuICAgICAgICAgICAgPyBvZih0cnVlKVxyXG4gICAgICAgICAgICA6IHRoaXMuZmV0Y2hBcmNoaXZlTWFuYWdlcl9tYWluRm9sZGVySWQoKS5waXBlKFxyXG4gICAgICAgICAgICAgICAgdGFwKChyZXMpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygncmVzOiAnICsgcmVzKTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAocmVzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuQXJjaGl2ZU1hbmFnZXJPYmogPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZDogcmVzLnVpZCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdGg6IHJlcy5wYXRoLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy51c2VyUHJlZmVyZW5jZS5zZXQoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnQXJjaGl2ZU1hbmFnZXJPYmonLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgSlNPTi5zdHJpbmdpZnkodGhpcy5BcmNoaXZlTWFuYWdlck9iailcclxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHNhdmVfY2F0ZWdvcnlPYmpfVG9Mb2NhbFN0b3JhZ2UoKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy51c2VyUHJlZmVyZW5jZS5oYXNJdGVtKCdjYXRlZ29yeU9iaicpXHJcbiAgICAgICAgICAgID8gb2YodHJ1ZSlcclxuICAgICAgICAgICAgOiB0aGlzLmZldGNoY2F0ZWdvcnlfbWFpbkZvbGRlcklkKCkucGlwZShcclxuICAgICAgICAgICAgICAgIHRhcCgocmVzKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlcykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNhdGVnb3J5T2JqID0ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IHJlcy51aWQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXRoOiByZXMucGF0aCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgfTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudXNlclByZWZlcmVuY2Uuc2V0KFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NhdGVnb3J5T2JqJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEpTT04uc3RyaW5naWZ5KHRoaXMuY2F0ZWdvcnlPYmopXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRfZmlsZU1hbmFnZXJPYmpfRnJvbUxvY2FsU3RvcmFnZShrZXk/KSB7XHJcbiAgICAgICAgaWYgKHRoaXMudXNlclByZWZlcmVuY2UuaGFzSXRlbSgga2V5ID8ga2V5IDogJ2ZpbGVNYW5hZ2VyT2JqJykpIHtcclxuICAgICAgICAgICAgcmV0dXJuIEpTT04ucGFyc2UodGhpcy51c2VyUHJlZmVyZW5jZS5nZXQoa2V5ID8ga2V5IDogJ2ZpbGVNYW5hZ2VyT2JqJykpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICBnZXRfbXlGaWxlc01hbmFnZXJPYmpfRnJvbUxvY2FsU3RvcmFnZSgpIHtcclxuICAgICAgICBpZiAodGhpcy51c2VyUHJlZmVyZW5jZS5oYXNJdGVtKCdteUZpbGVzTWFuYWdlck9iaicpKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBKU09OLnBhcnNlKHRoaXMudXNlclByZWZlcmVuY2UuZ2V0KCdteUZpbGVzTWFuYWdlck9iaicpKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgICBnZXRfQXJjaGl2ZU1hbmFnZXJPYmpfRnJvbUxvY2FsU3RvcmFnZSgpIHtcclxuICAgICAgICBpZiAodGhpcy51c2VyUHJlZmVyZW5jZS5oYXNJdGVtKCdBcmNoaXZlTWFuYWdlck9iaicpKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBKU09OLnBhcnNlKHRoaXMudXNlclByZWZlcmVuY2UuZ2V0KCdBcmNoaXZlTWFuYWdlck9iaicpKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0X2NhdGVnb3J5T2JqX0Zyb21Mb2NhbFN0b3JhZ2UoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMudXNlclByZWZlcmVuY2UuaGFzSXRlbSgnY2F0ZWdvcnlPYmonKSkge1xyXG4gICAgICAgICAgICByZXR1cm4gSlNPTi5wYXJzZSh0aGlzLnVzZXJQcmVmZXJlbmNlLmdldCgnY2F0ZWdvcnlPYmonKSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
import { Inject, Injectable } from '@angular/core';
|
|
2
|
+
import { BehaviorSubject, from } from 'rxjs';
|
|
3
|
+
import { catchError } from 'rxjs/operators';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "../Core/services/nuxeo/nuxeo.service";
|
|
6
|
+
import * as i2 from "../Core/services/callApi/call-api.service";
|
|
7
|
+
export class PublishingDocumentService {
|
|
8
|
+
constructor(nuxeoService, environment, callApiService) {
|
|
9
|
+
this.nuxeoService = nuxeoService;
|
|
10
|
+
this.environment = environment;
|
|
11
|
+
this.callApiService = callApiService;
|
|
12
|
+
this.newPublished = new BehaviorSubject(false);
|
|
13
|
+
}
|
|
14
|
+
getSectionById(docIds) {
|
|
15
|
+
return this.callApiService.query({
|
|
16
|
+
pageProvider: 'Documents_InList_PP',
|
|
17
|
+
pageSize: 1000,
|
|
18
|
+
system_uuid: JSON.stringify(docIds),
|
|
19
|
+
}, {
|
|
20
|
+
headers: {
|
|
21
|
+
"X-NXproperties": "*",
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
getSectionByTitle(titles) {
|
|
26
|
+
return this.callApiService.query({
|
|
27
|
+
pageProvider: 'Documents_InList_PP',
|
|
28
|
+
pageSize: 1000,
|
|
29
|
+
system_primaryType: "OSDepartment",
|
|
30
|
+
dublincore_title: JSON.stringify(titles),
|
|
31
|
+
}, {
|
|
32
|
+
headers: {
|
|
33
|
+
"X-NXproperties": "*",
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
getPublishingSections(pageNumber, pageSize, sortObj) {
|
|
38
|
+
return from(this.nuxeoService.nuxeoClient
|
|
39
|
+
.operation('Repository.PageProvider', {
|
|
40
|
+
url: `${this.environment.nuxeo}${this.environment.customAutomation}`,
|
|
41
|
+
})
|
|
42
|
+
.params({
|
|
43
|
+
"documentSchemas": ["*"],
|
|
44
|
+
page: pageNumber ? pageNumber : 0,
|
|
45
|
+
currentPageIndex: pageNumber ? pageNumber : 0,
|
|
46
|
+
offset: 0,
|
|
47
|
+
pageSize: pageSize ? pageSize : 0,
|
|
48
|
+
sortBy: sortObj === null || sortObj === void 0 ? void 0 : sortObj.sortBy,
|
|
49
|
+
sortOrder: sortObj === null || sortObj === void 0 ? void 0 : sortObj.sortOrder,
|
|
50
|
+
"pageProviderName": "publish_space_suggestion",
|
|
51
|
+
"providerName": "publish_space_suggestion",
|
|
52
|
+
"repository": "default",
|
|
53
|
+
"searchTerm": "",
|
|
54
|
+
})
|
|
55
|
+
.context()
|
|
56
|
+
.execute({
|
|
57
|
+
headers: {
|
|
58
|
+
'X-NXproperties': '*',
|
|
59
|
+
'enrichers-document': 'acls',
|
|
60
|
+
"fetch-document": "dc:creator"
|
|
61
|
+
},
|
|
62
|
+
})).pipe(catchError((err) => {
|
|
63
|
+
console.log(err);
|
|
64
|
+
throw err;
|
|
65
|
+
}));
|
|
66
|
+
}
|
|
67
|
+
unPublishDocument(docId) {
|
|
68
|
+
return from(this.nuxeoService.nuxeoClient
|
|
69
|
+
.operation('Document.Delete', {
|
|
70
|
+
url: `${this.environment.nuxeo}${this.environment.customAutomation}`,
|
|
71
|
+
})
|
|
72
|
+
.input(docId)
|
|
73
|
+
.execute()).pipe(catchError((err) => {
|
|
74
|
+
throw err;
|
|
75
|
+
}));
|
|
76
|
+
}
|
|
77
|
+
publishDocument(docId, params) {
|
|
78
|
+
return from(this.nuxeoService.nuxeoClient
|
|
79
|
+
.operation('AC_UA_Puplish_Documents', {
|
|
80
|
+
url: `${this.environment.nuxeo}/api/v1/custom-automation`,
|
|
81
|
+
})
|
|
82
|
+
.params()
|
|
83
|
+
.input(docId)
|
|
84
|
+
.context(Object.assign({}, params))
|
|
85
|
+
.execute()).pipe(catchError((err) => {
|
|
86
|
+
throw err;
|
|
87
|
+
}));
|
|
88
|
+
}
|
|
89
|
+
getPublishedPlaces(uid) {
|
|
90
|
+
return this.callApiService.query({
|
|
91
|
+
pageProvider: 'nxql_search',
|
|
92
|
+
currentPageIndex: 0,
|
|
93
|
+
pageSize: 40,
|
|
94
|
+
offset: 0,
|
|
95
|
+
queryParams: `SELECT * FROM Document WHERE ecm:isProxy = 1 AND ecm:isTrashed = 0 AND (rend:sourceVersionableId = "${uid}" OR ecm:proxyVersionableId = "${uid}")`,
|
|
96
|
+
sortBy: 'dc:modified,uid:major_version,uid:minor_version',
|
|
97
|
+
sortOrder: 'desc,desc,desc'
|
|
98
|
+
}, {
|
|
99
|
+
headers: {
|
|
100
|
+
'enrichers-document': 'breadcrumb',
|
|
101
|
+
properties: "dublincore,common,uid,rendition,file"
|
|
102
|
+
}
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
getVersionToPublishDialog(uid) {
|
|
106
|
+
return from(this.nuxeoService.nuxeoClient
|
|
107
|
+
.request(`search/execute`)
|
|
108
|
+
.queryParams({
|
|
109
|
+
currentPageIndex: 0,
|
|
110
|
+
pageSize: 100,
|
|
111
|
+
offset: 0,
|
|
112
|
+
query: `SELECT * FROM Document WHERE ecm:versionVersionableId = "${uid}" AND ecm:isVersion = 1`,
|
|
113
|
+
sortBy: 'uid:major_version,uid:minor_version',
|
|
114
|
+
sortOrder: 'desc,desc'
|
|
115
|
+
})
|
|
116
|
+
.get({
|
|
117
|
+
headers: {
|
|
118
|
+
properties: '*'
|
|
119
|
+
}
|
|
120
|
+
})).pipe(catchError((err) => {
|
|
121
|
+
throw err;
|
|
122
|
+
}));
|
|
123
|
+
}
|
|
124
|
+
/*getProxyDocument(docId) {
|
|
125
|
+
return from(
|
|
126
|
+
this.nuxeoService.nuxeoClient
|
|
127
|
+
.operation('Proxy.GetSourceDocument', {
|
|
128
|
+
url: `${this.environment.nuxeo}${this.environment.customAutomation}`,
|
|
129
|
+
})
|
|
130
|
+
.input(docId)
|
|
131
|
+
.execute({
|
|
132
|
+
headers: {
|
|
133
|
+
properties: '*'
|
|
134
|
+
}
|
|
135
|
+
})
|
|
136
|
+
).pipe(
|
|
137
|
+
catchError((err) => {
|
|
138
|
+
throw err;
|
|
139
|
+
})
|
|
140
|
+
);
|
|
141
|
+
}*/
|
|
142
|
+
buildVersionNum(element) {
|
|
143
|
+
return parseFloat(`${element.properties['uid:major_version']}.${element.properties['uid:minor_version']}`);
|
|
144
|
+
}
|
|
145
|
+
createPublishDepartmentSection(section) {
|
|
146
|
+
return from(this.nuxeoService.nuxeoClient
|
|
147
|
+
.operation('AC_UA_Section_Create', {
|
|
148
|
+
url: `${this.environment.nuxeo}${this.environment.customAutomation}`,
|
|
149
|
+
})
|
|
150
|
+
.context({ section })
|
|
151
|
+
.execute()).pipe(catchError((err) => {
|
|
152
|
+
//console.log(err);
|
|
153
|
+
throw err;
|
|
154
|
+
}));
|
|
155
|
+
}
|
|
156
|
+
Add_Permission_PublishDepartmentSection(sectionName, depList, uid) {
|
|
157
|
+
return from(this.nuxeoService.nuxeoClient
|
|
158
|
+
.operation('AC_UA_Section_Add_Permission', {
|
|
159
|
+
url: `${this.environment.nuxeo}${this.environment.customAutomation}`,
|
|
160
|
+
})
|
|
161
|
+
.context({
|
|
162
|
+
"permission": "Read",
|
|
163
|
+
"usersAndGroups": sectionName,
|
|
164
|
+
"departmentList": depList
|
|
165
|
+
})
|
|
166
|
+
.input(uid)
|
|
167
|
+
.execute()).pipe(catchError((err) => {
|
|
168
|
+
//console.log(err);
|
|
169
|
+
throw err;
|
|
170
|
+
}));
|
|
171
|
+
}
|
|
172
|
+
updatePublishDepartmentSection(section, uid) {
|
|
173
|
+
return from(this.nuxeoService.nuxeoClient
|
|
174
|
+
.operation('AC_UA_Section_Update', {
|
|
175
|
+
url: `${this.environment.nuxeo}${this.environment.customAutomation}`,
|
|
176
|
+
})
|
|
177
|
+
.context({ section })
|
|
178
|
+
.input(uid)
|
|
179
|
+
.execute()).pipe(catchError((err) => {
|
|
180
|
+
//console.log(err);
|
|
181
|
+
throw err;
|
|
182
|
+
}));
|
|
183
|
+
}
|
|
184
|
+
deleteSection(uid) {
|
|
185
|
+
return from(this.nuxeoService.nuxeoClient
|
|
186
|
+
.operation('AC_UA_Section_Delete')
|
|
187
|
+
.input(uid)
|
|
188
|
+
.execute());
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
PublishingDocumentService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: PublishingDocumentService, deps: [{ token: i1.NuxeoService }, { token: 'environment' }, { token: i2.CallApiService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
192
|
+
PublishingDocumentService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: PublishingDocumentService, providedIn: 'root' });
|
|
193
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: PublishingDocumentService, decorators: [{
|
|
194
|
+
type: Injectable,
|
|
195
|
+
args: [{
|
|
196
|
+
providedIn: 'root'
|
|
197
|
+
}]
|
|
198
|
+
}], ctorParameters: function () { return [{ type: i1.NuxeoService }, { type: undefined, decorators: [{
|
|
199
|
+
type: Inject,
|
|
200
|
+
args: ['environment']
|
|
201
|
+
}] }, { type: i2.CallApiService }]; } });
|
|
202
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGlzaGluZy1kb2N1bWVudC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvc2hhcmVkLXNlcnZpY2VzL3B1Ymxpc2hpbmctZG9jdW1lbnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsZUFBZSxFQUFFLElBQUksRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUN6RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7QUFPNUMsTUFBTSxPQUFPLHlCQUF5QjtJQUlwQyxZQUFvQixZQUEwQixFQUNiLFdBQVcsRUFDbEMsY0FBOEI7UUFGcEIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDYixnQkFBVyxHQUFYLFdBQVcsQ0FBQTtRQUNsQyxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFIeEMsaUJBQVksR0FBRyxJQUFJLGVBQWUsQ0FBVSxLQUFLLENBQUMsQ0FBQztJQUtuRCxDQUFDO0lBRUQsY0FBYyxDQUFDLE1BQU07UUFDbkIsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FDOUI7WUFDRSxZQUFZLEVBQUUscUJBQXFCO1lBQ25DLFFBQVEsRUFBRSxJQUFJO1lBQ2QsV0FBVyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDO1NBQ3BDLEVBQ0Q7WUFDRSxPQUFPLEVBQUU7Z0JBQ1AsZ0JBQWdCLEVBQUUsR0FBRzthQUN0QjtTQUNGLENBQ0YsQ0FBQztJQUNKLENBQUM7SUFDRCxpQkFBaUIsQ0FBQyxNQUFNO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQzlCO1lBQ0UsWUFBWSxFQUFFLHFCQUFxQjtZQUNuQyxRQUFRLEVBQUUsSUFBSTtZ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SSxDQUNULElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVzthQUMxQixTQUFTLENBQUMsc0JBQXNCLEVBQUU7WUFDakMsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxnQkFBZ0IsRUFBRTtTQUNyRSxDQUFDO2FBQ0QsT0FBTyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUM7YUFDcEIsS0FBSyxDQUFDLEdBQUcsQ0FBQzthQUNWLE9BQU8sRUFBRSxDQUNiLENBQUMsSUFBSSxDQUNKLFVBQVUsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQ2pCLG1CQUFtQjtZQUNuQixNQUFNLEdBQUcsQ0FBQztRQUNaLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBQ0QsYUFBYSxDQUFDLEdBQUc7UUFDZixPQUFPLElBQUksQ0FDVCxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVc7YUFDMUIsU0FBUyxDQUFDLHNCQUFzQixDQUFDO2FBQ2pDLEtBQUssQ0FBQyxHQUFHLENBQUM7YUFDVixPQUFPLEVBQUUsQ0FDYixDQUFDO0lBQ0osQ0FBQzs7c0hBdk9VLHlCQUF5Qiw4Q0FLMUIsYUFBYTswSEFMWix5QkFBeUIsY0FGeEIsTUFBTTsyRkFFUCx5QkFBeUI7a0JBSHJDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFNSSxNQUFNOzJCQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBmcm9tLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGNhdGNoRXJyb3IgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IE51eGVvU2VydmljZSB9IGZyb20gJy4uL0NvcmUvc2VydmljZXMvbnV4ZW8vbnV4ZW8uc2VydmljZSc7XHJcbmltcG9ydCB7IENhbGxBcGlTZXJ2aWNlIH0gZnJvbSAnLi4vQ29yZS9zZXJ2aWNlcy9jYWxsQXBpL2NhbGwtYXBpLnNlcnZpY2UnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgUHVibGlzaGluZ0RvY3VtZW50U2VydmljZSB7XHJcblxyXG5cclxuICBuZXdQdWJsaXNoZWQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIG51eGVvU2VydmljZTogTnV4ZW9TZXJ2aWNlLFxyXG4gICAgQEluamVjdCgnZW52aXJvbm1lbnQnKSBwcml2YXRlIGVudmlyb25tZW50LFxyXG4gICAgcHJpdmF0ZSBjYWxsQXBpU2VydmljZTogQ2FsbEFwaVNlcnZpY2UpIHtcclxuXHJcbiAgfVxyXG5cclxuICBnZXRTZWN0aW9uQnlJZChkb2NJZHMpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuY2FsbEFwaVNlcnZpY2UucXVlcnkoXHJcbiAgICAgIHtcclxuICAgICAgICBwYWdlUHJvdmlkZXI6ICdEb2N1bWVudHNfSW5MaXN0X1BQJyxcclxuICAgICAgICBwYWdlU2l6ZTogMTAwMCxcclxuICAgICAgICBzeXN0ZW1fdXVpZDogSlNPTi5zdHJpbmdpZnkoZG9jSWRzKSxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGhlYWRlcnM6IHtcclxuICAgICAgICAgIFwiWC1OWHByb3BlcnRpZXNcIjogXCIqXCIsXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICApO1xyXG4gIH1cclxuICBnZXRTZWN0aW9uQnlUaXRsZSh0aXRsZXMpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuY2FsbEFwaVNlcnZpY2UucXVlcnkoXHJcbiAgICAgIHtcclxuICAgICAgICBwYWdlUHJvdmlkZXI6ICdEb2N1bWVudHNfSW5MaXN0X1BQJyxcclxuICAgICAgICBwYWdlU2l6ZTogMTAwMCxcclxuICAgICAgICBzeXN0ZW1fcHJpbWFyeVR5cGU6IFwiT1NEZXBhcnRtZW50XCIsXHJcbiAgICAgICAgZHVibGluY29yZV90aXRsZTogSlNPTi5zdHJpbmdpZnkodGl0bGVzKSxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGhlYWRlcnM6IHtcclxuICAgICAgICAgIFwiWC1OWHByb3BlcnRpZXNcIjogXCIqXCIsXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0UHVibGlzaGluZ1NlY3Rpb25zKHBhZ2VOdW1iZXI/LCBwYWdlU2l6ZT8sIHNvcnRPYmo/KSB7XHJcbiAgICByZXR1cm4gZnJvbSh0aGlzLm51eGVvU2VydmljZS5udXhlb0NsaWVudFxyXG4gICAgICAub3BlcmF0aW9uKCdSZXBvc2l0b3J5LlBhZ2VQcm92aWRlcicsIHtcclxuICAgICAgICB1cmw6IGAke3RoaXMuZW52aXJvbm1lbnQubnV4ZW99JHt0aGlzLmVudmlyb25tZW50LmN1c3RvbUF1dG9tYXRpb259YCxcclxuICAgICAgfSlcclxuICAgICAgLnBhcmFtcyh7XHJcbiAgICAgICAgXCJkb2N1bWVudFNjaGVtYXNcIjogW1wiKlwiXSxcclxuICAgICAgICBwYWdlOiBwYWdlTnVtYmVyID8gcGFnZU51bWJlciA6IDAsXHJcbiAgICAgICAgY3VycmVudFBhZ2VJbmRleDogcGFnZU51bWJlciA/IHBhZ2VOdW1iZXIgOiAwLFxyXG4gICAgICAgIG9mZnNldDogMCxcclxuICAgICAgICBwYWdlU2l6ZTogcGFnZVNpemUgPyBwYWdlU2l6ZSA6IDAsXHJcbiAgICAgICAgc29ydEJ5OiBzb3J0T2JqPy5zb3J0QnksXHJcbiAgICAgICAgc29ydE9yZGVyOiBzb3J0T2JqPy5zb3J0T3JkZXIsXHJcbiAgICAgICAgXCJwYWdlUHJvdmlkZXJOYW1lXCI6IFwicHVibGlzaF9zcGFjZV9zdWdnZXN0aW9uXCIsXHJcbiAgICAgICAgXCJwcm92aWRlck5hbWVcIjogXCJwdWJsaXNoX3NwYWNlX3N1Z2dlc3Rpb25cIixcclxuICAgICAgICBcInJlcG9zaXRvcnlcIjogXCJkZWZhdWx0XCIsXHJcbiAgICAgICAgXCJzZWFyY2hUZXJtXCI6IFwiXCIsXHJcbiAgICAgIH0pXHJcbiAgICAgIC5jb250ZXh0KClcclxuICAgICAgLmV4ZWN1dGUoe1xyXG4gICAgICAgIGhlYWRlcnM6IHtcclxuICAgICAgICAgICdYLU5YcHJvcGVydGllcyc6ICcqJyxcclxuICAgICAgICAgICdlbnJpY2hlcnMtZG9jdW1lbnQnOiAnYWNscycsXHJcbiAgICAgICAgICBcImZldGNoLWRvY3VtZW50XCI6IFwiZGM6Y3JlYXRvclwiXHJcbiAgICAgICAgfSxcclxuICAgICAgfSlcclxuICAgICkucGlwZShcclxuICAgICAgY2F0Y2hFcnJvcigoZXJyKSA9PiB7XHJcbiAgICAgICAgY29uc29sZS5sb2coZXJyKTtcclxuICAgICAgICB0aHJvdyBlcnI7XHJcbiAgICAgIH0pKVxyXG4gIH1cclxuXHJcbiAgdW5QdWJsaXNoRG9jdW1lbnQoZG9jSWQpIHtcclxuICAgIHJldHVybiBmcm9tKFxyXG4gICAgICB0aGlzLm51eGVvU2VydmljZS5udXhlb0NsaWVudFxyXG4gICAgICAgIC5vcGVyYXRpb24oJ0RvY3VtZW50LkRlbGV0ZScsIHtcclxuICAgICAgICAgIHVybDogYCR7dGhpcy5lbnZpcm9ubWVudC5udXhlb30ke3RoaXMuZW52aXJvbm1lbnQuY3VzdG9tQXV0b21hdGlvbn1gLFxyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLmlucHV0KGRvY0lkKVxyXG4gICAgICAgIC5leGVjdXRlKClcclxuICAgICkucGlwZShcclxuICAgICAgY2F0Y2hFcnJvcigoZXJyKSA9PiB7XHJcbiAgICAgICAgdGhyb3cgZXJyO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHB1Ymxpc2hEb2N1bWVudChkb2NJZCwgcGFyYW1zKSB7XHJcbiAgICByZXR1cm4gZnJvbShcclxuICAgICAgdGhpcy5udXhlb1NlcnZpY2UubnV4ZW9DbGllbnRcclxuICAgICAgICAub3BlcmF0aW9uKCdBQ19VQV9QdXBsaXNoX0RvY3VtZW50cycsIHtcclxuICAgICAgICAgIHVybDogYCR7dGhpcy5lbnZpcm9ubWVudC5udXhlb30vYXBpL3YxL2N1c3RvbS1hdXRvbWF0aW9uYCxcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5wYXJhbXMoKVxyXG4gICAgICAgIC5pbnB1dChkb2NJZClcclxuICAgICAgICAuY29udGV4dCh7XHJcbiAgICAgICAgICAuLi5wYXJhbXNcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5leGVjdXRlKClcclxuICAgICkucGlwZShcclxuICAgICAgY2F0Y2hFcnJvcigoZXJyKSA9PiB7XHJcbiAgICAgICAgdGhyb3cgZXJyO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldFB1Ymxpc2hlZFBsYWNlcyh1aWQpIHtcclxuICAgIHJldHVybiB0aGlzLmNhbGxBcGlTZXJ2aWNlLnF1ZXJ5KFxyXG4gICAgICB7XHJcbiAgICAgICAgcGFnZVByb3ZpZGVyOiAnbnhxbF9zZWFyY2gnLFxyXG4gICAgICAgIGN1cnJlbnRQYWdlSW5kZXg6IDAsXHJcbiAgICAgICAgcGFnZVNpemU6IDQwLFxyXG4gICAgICAgIG9mZnNldDogMCxcclxuICAgICAgICBxdWVyeVBhcmFtczogYFNFTEVDVCAqIEZST00gRG9jdW1lbnQgV0hFUkUgZWNtOmlzUHJveHkgPSAxIEFORCBlY206aXNUcmFzaGVkID0gMCBBTkQgKHJlbmQ6c291cmNlVmVyc2lvbmFibGVJZCA9IFwiJHt1aWR9XCIgT1IgZWNtOnByb3h5VmVyc2lvbmFibGVJZCA9IFwiJHt1aWR9XCIpYCxcclxuICAgICAgICBzb3J0Qnk6ICdkYzptb2RpZmllZCx1aWQ6bWFqb3JfdmVyc2lvbix1aWQ6bWlub3JfdmVyc2lvbicsXHJcbiAgICAgICAgc29ydE9yZGVyOiAnZGVzYyxkZXNjLGRlc2MnXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBoZWFkZXJzOiB7XHJcbiAgICAgICAgICAnZW5yaWNoZXJzLWRvY3VtZW50JzogJ2JyZWFkY3J1bWInLFxyXG4gICAgICAgICAgcHJvcGVydGllczogXCJkdWJsaW5jb3JlLGNvbW1vbix1aWQscmVuZGl0aW9uLGZpbGVcIlxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldFZlcnNpb25Ub1B1Ymxpc2hEaWFsb2codWlkKSB7XHJcbiAgICByZXR1cm4gZnJvbShcclxuICAgICAgdGhpcy5udXhlb1NlcnZpY2UubnV4ZW9DbGllbnRcclxuICAgICAgICAucmVxdWVzdChgc2VhcmNoL2V4ZWN1dGVgKVxyXG4gICAgICAgIC5xdWVyeVBhcmFtcyh7XHJcbiAgICAgICAgICBjdXJyZW50UGFnZUluZGV4OiAwLFxyXG4gICAgICAgICAgcGFnZVNpemU6IDEwMCxcclxuICAgICAgICAgIG9mZnNldDogMCxcclxuICAgICAgICAgIHF1ZXJ5OiBgU0VMRUNUICogRlJPTSBEb2N1bWVudCBXSEVSRSBlY206dmVyc2lvblZlcnNpb25hYmxlSWQgPSBcIiR7dWlkfVwiIEFORCBlY206aXNWZXJzaW9uID0gMWAsXHJcbiAgICAgICAgICBzb3J0Qnk6ICd1aWQ6bWFqb3JfdmVyc2lvbix1aWQ6bWlub3JfdmVyc2lvbicsXHJcbiAgICAgICAgICBzb3J0T3JkZXI6ICdkZXNjLGRlc2MnXHJcbiAgICAgICAgfSlcclxuICAgICAgICAuZ2V0KHtcclxuICAgICAgICAgIGhlYWRlcnM6IHtcclxuICAgICAgICAgICAgcHJvcGVydGllczogJyonXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSlcclxuICAgICkucGlwZShcclxuICAgICAgY2F0Y2hFcnJvcigoZXJyKSA9PiB7XHJcbiAgICAgICAgdGhyb3cgZXJyO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8qZ2V0UHJveHlEb2N1bWVudChkb2NJZCkge1xyXG4gICAgcmV0dXJuIGZyb20oXHJcbiAgICAgIHRoaXMubnV4ZW9TZXJ2aWNlLm51eGVvQ2xpZW50XHJcbiAgICAgICAgLm9wZXJhdGlvbignUHJveHkuR2V0U291cmNlRG9jdW1lbnQnLCB7XHJcbiAgICAgICAgICB1cmw6IGAke3RoaXMuZW52aXJvbm1lbnQubnV4ZW99JHt0aGlzLmVudmlyb25tZW50LmN1c3RvbUF1dG9tYXRpb259YCxcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5pbnB1dChkb2NJZClcclxuICAgICAgICAuZXhlY3V0ZSh7XHJcbiAgICAgICAgICBoZWFkZXJzOiB7XHJcbiAgICAgICAgICAgIHByb3BlcnRpZXM6ICcqJ1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pXHJcbiAgICApLnBpcGUoXHJcbiAgICAgIGNhdGNoRXJyb3IoKGVycikgPT4ge1xyXG4gICAgICAgIHRocm93IGVycjtcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfSovXHJcbiAgYnVpbGRWZXJzaW9uTnVtKGVsZW1lbnQpIHtcclxuICAgIHJldHVybiBwYXJzZUZsb2F0KGAke2VsZW1lbnQucHJvcGVydGllc1sndWlkOm1ham9yX3ZlcnNpb24nXX0uJHtlbGVtZW50LnByb3BlcnRpZXNbJ3VpZDptaW5vcl92ZXJzaW9uJ119YClcclxuICB9XHJcbiAgY3JlYXRlUHVibGlzaERlcGFydG1lbnRTZWN0aW9uKHNlY3Rpb24pIHtcclxuICAgIHJldHVybiBmcm9tKFxyXG4gICAgICB0aGlzLm51eGVvU2VydmljZS5udXhlb0NsaWVudFxyXG4gICAgICAgIC5vcGVyYXRpb24oJ0FDX1VBX1NlY3Rpb25fQ3JlYXRlJywge1xyXG4gICAgICAgICAgdXJsOiBgJHt0aGlzLmVudmlyb25tZW50Lm51eGVvfSR7dGhpcy5lbnZpcm9ubWVudC5jdXN0b21BdXRvbWF0aW9ufWAsXHJcbiAgICAgICAgfSlcclxuICAgICAgICAuY29udGV4dCh7IHNlY3Rpb24gfSlcclxuICAgICAgICAuZXhlY3V0ZSgpXHJcbiAgICApLnBpcGUoXHJcbiAgICAgIGNhdGNoRXJyb3IoKGVycikgPT4ge1xyXG4gICAgICAgIC8vY29uc29sZS5sb2coZXJyKTtcclxuICAgICAgICB0aHJvdyBlcnI7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuICBBZGRfUGVybWlzc2lvbl9QdWJsaXNoRGVwYXJ0bWVudFNlY3Rpb24oc2VjdGlvbk5hbWUsIGRlcExpc3QsIHVpZCkge1xyXG4gICAgcmV0dXJuIGZyb20oXHJcbiAgICAgIHRoaXMubnV4ZW9TZXJ2aWNlLm51eGVvQ2xpZW50XHJcbiAgICAgICAgLm9wZXJhdGlvbignQUNfVUFfU2VjdGlvbl9BZGRfUGVybWlzc2lvbicsIHtcclxuICAgICAgICAgIHVybDogYCR7dGhpcy5lbnZpcm9ubWVudC5udXhlb30ke3RoaXMuZW52aXJvbm1lbnQuY3VzdG9tQXV0b21hdGlvbn1gLFxyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLmNvbnRleHQoe1xyXG4gICAgICAgICAgXCJwZXJtaXNzaW9uXCI6IFwiUmVhZFwiLFxyXG4gICAgICAgICAgXCJ1c2Vyc0FuZEdyb3Vwc1wiOiBzZWN0aW9uTmFtZSxcclxuICAgICAgICAgIFwiZGVwYXJ0bWVudExpc3RcIjogZGVwTGlzdFxyXG5cclxuICAgICAgICB9KVxyXG4gICAgICAgIC5pbnB1dCh1aWQpXHJcbiAgICAgICAgLmV4ZWN1dGUoKVxyXG4gICAgKS5waXBlKFxyXG4gICAgICBjYXRjaEVycm9yKChlcnIpID0+IHtcclxuICAgICAgICAvL2NvbnNvbGUubG9nKGVycik7XHJcbiAgICAgICAgdGhyb3cgZXJyO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcbiAgdXBkYXRlUHVibGlzaERlcGFydG1lbnRTZWN0aW9uKHNlY3Rpb24sIHVpZCkge1xyXG4gICAgcmV0dXJuIGZyb20oXHJcbiAgICAgIHRoaXMubnV4ZW9TZXJ2aWNlLm51eGVvQ2xpZW50XHJcbiAgICAgICAgLm9wZXJhdGlvbignQUNfVUFfU2VjdGlvbl9VcGRhdGUnLCB7XHJcbiAgICAgICAgICB1cmw6IGAke3RoaXMuZW52aXJvbm1lbnQubnV4ZW99JHt0aGlzLmVudmlyb25tZW50LmN1c3RvbUF1dG9tYXRpb259YCxcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5jb250ZXh0KHsgc2VjdGlvbiB9KVxyXG4gICAgICAgIC5pbnB1dCh1aWQpXHJcbiAgICAgICAgLmV4ZWN1dGUoKVxyXG4gICAgKS5waXBlKFxyXG4gICAgICBjYXRjaEVycm9yKChlcnIpID0+IHtcclxuICAgICAgICAvL2NvbnNvbGUubG9nKGVycik7XHJcbiAgICAgICAgdGhyb3cgZXJyO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcbiAgZGVsZXRlU2VjdGlvbih1aWQpIHtcclxuICAgIHJldHVybiBmcm9tKFxyXG4gICAgICB0aGlzLm51eGVvU2VydmljZS5udXhlb0NsaWVudFxyXG4gICAgICAgIC5vcGVyYXRpb24oJ0FDX1VBX1NlY3Rpb25fRGVsZXRlJylcclxuICAgICAgICAuaW5wdXQodWlkKVxyXG4gICAgICAgIC5leGVjdXRlKClcclxuICAgICk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { EventEmitter, Injectable } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "../Core/services/user/user-preferences.service";
|
|
4
|
+
import * as i2 from "../Core/services/callApi/call-api.service";
|
|
5
|
+
export class RecentlyViewedService {
|
|
6
|
+
constructor(userPreference, callApiService) {
|
|
7
|
+
this.userPreference = userPreference;
|
|
8
|
+
this.callApiService = callApiService;
|
|
9
|
+
this.itemAdded = new EventEmitter();
|
|
10
|
+
this.recentViewedDocsIds = [];
|
|
11
|
+
this.getIdsFromLocalStorage();
|
|
12
|
+
}
|
|
13
|
+
getIdsFromLocalStorage() {
|
|
14
|
+
this.recentViewedDocsIds = JSON.parse(this.userPreference.get('recentlyViewedDocsIds') || '[]');
|
|
15
|
+
return this.recentViewedDocsIds;
|
|
16
|
+
}
|
|
17
|
+
setIdsInLocalStorage(Id) {
|
|
18
|
+
if (this.recentViewedDocsIds.length > 14 && !this.recentViewedDocsIds.includes(Id)) {
|
|
19
|
+
this.recentViewedDocsIds.pop();
|
|
20
|
+
}
|
|
21
|
+
else if (this.recentViewedDocsIds.includes(Id)) {
|
|
22
|
+
this.recentViewedDocsIds.forEach((element, index) => {
|
|
23
|
+
if (element == Id)
|
|
24
|
+
this.recentViewedDocsIds.splice(index, 1);
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
this.recentViewedDocsIds.unshift(Id);
|
|
28
|
+
this.userPreference.set("recentlyViewedDocsIds", JSON.stringify(this.recentViewedDocsIds));
|
|
29
|
+
this.itemAdded.emit();
|
|
30
|
+
}
|
|
31
|
+
getRecentlyViewedDocs(docIds, sortObj) {
|
|
32
|
+
return this.callApiService.query({
|
|
33
|
+
pageProvider: 'Documents_InList_PP',
|
|
34
|
+
currentPageIndex: 0,
|
|
35
|
+
offset: 0,
|
|
36
|
+
pageSize: 15,
|
|
37
|
+
system_uuid: JSON.stringify(docIds),
|
|
38
|
+
sortBy: (sortObj) ? sortObj.sortBy : '',
|
|
39
|
+
sortOrder: (sortObj) ? sortObj.sortOrder : ''
|
|
40
|
+
}, {
|
|
41
|
+
headers: {
|
|
42
|
+
"X-NXproperties": "*",
|
|
43
|
+
"enrichers-document": "thumbnail",
|
|
44
|
+
"fetch-document": "dc:lastContributor"
|
|
45
|
+
}
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
RecentlyViewedService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: RecentlyViewedService, deps: [{ token: i1.UserPreferencesService }, { token: i2.CallApiService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
50
|
+
RecentlyViewedService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: RecentlyViewedService, providedIn: 'root' });
|
|
51
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: RecentlyViewedService, decorators: [{
|
|
52
|
+
type: Injectable,
|
|
53
|
+
args: [{
|
|
54
|
+
providedIn: 'root'
|
|
55
|
+
}]
|
|
56
|
+
}], ctorParameters: function () { return [{ type: i1.UserPreferencesService }, { type: i2.CallApiService }]; } });
|
|
57
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjZW50bHktdmlld2VkLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9zaGFyZWQtc2VydmljZXMvcmVjZW50bHktdmlld2VkLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7QUFRekQsTUFBTSxPQUFPLHFCQUFxQjtJQUdoQyxZQUFvQixjQUFzQyxFQUNoRCxjQUE4QjtRQURwQixtQkFBYyxHQUFkLGNBQWMsQ0FBd0I7UUFDaEQsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBSHhDLGNBQVMsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQy9CLHdCQUFtQixHQUFDLEVBQUUsQ0FBQztRQUdyQixJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztJQUMvQixDQUFDO0lBR0Ysc0JBQXNCO1FBQ3BCLElBQUksQ0FBQyxtQkFBbUIsR0FBRSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLHVCQUF1QixDQUFDLElBQUssSUFBSSxDQUFDLENBQUM7UUFDaEcsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUM7SUFDbEMsQ0FBQztJQUVELG9CQUFvQixDQUFDLEVBQVU7UUFDN0IsSUFBSSxJQUFJLENBQUMsbUJBQW1CLENBQUMsTUFBTSxHQUFHLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLEVBQUU7WUFDbEYsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsRUFBRSxDQUFDO1NBQ2hDO2FBQU0sSUFBSSxJQUFJLENBQUMsbUJBQW1CLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxFQUFFO1lBQ2hELElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLEVBQUU7Z0JBQ2xELElBQUksT0FBTyxJQUFJLEVBQUU7b0JBQUUsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDL0QsQ0FBQyxDQUFDLENBQUM7U0FDSjtRQUNELElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDckMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsdUJBQXVCLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDO1FBQzNGLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUNELHFCQUFxQixDQUFDLE1BQU0sRUFBQyxPQUFZO1FBQ3ZDLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQzlCO1lBQ0UsWUFBWSxFQUFFLHFCQUFxQjtZQUNuQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQ25CLE1BQU0sRUFBRSxDQUFDO1lBQ1QsUUFBUSxFQUFFLEVBQUU7WUFDWixXQUFXLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUM7WUFDbkMsTUFBTSxFQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDeEMsU0FBUyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUU7U0FDOUMsRUFDRDtZQUNFLE9BQU8sRUFBRTtnQkFDUCxnQkFBZ0IsRUFBRSxHQUFHO2dCQUNyQixvQkFBb0IsRUFBRSxXQUFXO2dCQUNqQyxnQkFBZ0IsRUFBRSxvQkFBb0I7YUFDdkM7U0FDRixDQUNGLENBQUM7SUFDSixDQUFDOztrSEE3Q1UscUJBQXFCO3NIQUFyQixxQkFBcUIsY0FGcEIsTUFBTTsyRkFFUCxxQkFBcUI7a0JBSGpDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXZlbnRFbWl0dGVyLCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgVXNlclByZWZlcmVuY2VzU2VydmljZSB9IGZyb20gJy4uL0NvcmUvc2VydmljZXMvdXNlci91c2VyLXByZWZlcmVuY2VzLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDYWxsQXBpU2VydmljZSB9IGZyb20gJy4uL0NvcmUvc2VydmljZXMvY2FsbEFwaS9jYWxsLWFwaS5zZXJ2aWNlJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIFJlY2VudGx5Vmlld2VkU2VydmljZSB7XHJcbiAgaXRlbUFkZGVkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIHJlY2VudFZpZXdlZERvY3NJZHM9W107XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSB1c2VyUHJlZmVyZW5jZTogVXNlclByZWZlcmVuY2VzU2VydmljZSxcclxuICAgIHByaXZhdGUgY2FsbEFwaVNlcnZpY2U6IENhbGxBcGlTZXJ2aWNlKSB7XHJcbiAgICB0aGlzLmdldElkc0Zyb21Mb2NhbFN0b3JhZ2UoKTtcclxuICAgfVxyXG4gIFxyXG5cclxuICBnZXRJZHNGcm9tTG9jYWxTdG9yYWdlKCkge1xyXG4gICAgdGhpcy5yZWNlbnRWaWV3ZWREb2NzSWRzID1KU09OLnBhcnNlKHRoaXMudXNlclByZWZlcmVuY2UuZ2V0KCdyZWNlbnRseVZpZXdlZERvY3NJZHMnKSAgfHwgJ1tdJyk7XHJcbiAgICByZXR1cm4gdGhpcy5yZWNlbnRWaWV3ZWREb2NzSWRzO1xyXG4gIH1cclxuXHJcbiAgc2V0SWRzSW5Mb2NhbFN0b3JhZ2UoSWQ6IHN0cmluZykge1xyXG4gICAgaWYgKHRoaXMucmVjZW50Vmlld2VkRG9jc0lkcy5sZW5ndGggPiAxNCAmJiAhdGhpcy5yZWNlbnRWaWV3ZWREb2NzSWRzLmluY2x1ZGVzKElkKSkge1xyXG4gICAgICB0aGlzLnJlY2VudFZpZXdlZERvY3NJZHMucG9wKCk7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMucmVjZW50Vmlld2VkRG9jc0lkcy5pbmNsdWRlcyhJZCkpIHtcclxuICAgICAgdGhpcy5yZWNlbnRWaWV3ZWREb2NzSWRzLmZvckVhY2goKGVsZW1lbnQsIGluZGV4KSA9PiB7XHJcbiAgICAgICAgaWYgKGVsZW1lbnQgPT0gSWQpIHRoaXMucmVjZW50Vmlld2VkRG9jc0lkcy5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIHRoaXMucmVjZW50Vmlld2VkRG9jc0lkcy51bnNoaWZ0KElkKTtcclxuICAgIHRoaXMudXNlclByZWZlcmVuY2Uuc2V0KFwicmVjZW50bHlWaWV3ZWREb2NzSWRzXCIsIEpTT04uc3RyaW5naWZ5KHRoaXMucmVjZW50Vmlld2VkRG9jc0lkcykpO1xyXG4gICAgdGhpcy5pdGVtQWRkZWQuZW1pdCgpO1xyXG4gIH1cclxuICBnZXRSZWNlbnRseVZpZXdlZERvY3MoZG9jSWRzLHNvcnRPYmo/OmFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5jYWxsQXBpU2VydmljZS5xdWVyeShcclxuICAgICAge1xyXG4gICAgICAgIHBhZ2VQcm92aWRlcjogJ0RvY3VtZW50c19Jbkxpc3RfUFAnLFxyXG4gICAgICAgIGN1cnJlbnRQYWdlSW5kZXg6IDAsXHJcbiAgICAgICAgb2Zmc2V0OiAwLFxyXG4gICAgICAgIHBhZ2VTaXplOiAxNSxcclxuICAgICAgICBzeXN0ZW1fdXVpZDogSlNPTi5zdHJpbmdpZnkoZG9jSWRzKSxcclxuICAgICAgICBzb3J0Qnk6ICAoc29ydE9iaikgPyBzb3J0T2JqLnNvcnRCeSA6ICcnLFxyXG4gICAgICAgIHNvcnRPcmRlcjogKHNvcnRPYmopID8gc29ydE9iai5zb3J0T3JkZXIgOiAnJ1xyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgaGVhZGVyczoge1xyXG4gICAgICAgICAgXCJYLU5YcHJvcGVydGllc1wiOiBcIipcIixcclxuICAgICAgICAgIFwiZW5yaWNoZXJzLWRvY3VtZW50XCI6IFwidGh1bWJuYWlsXCIsXHJcbiAgICAgICAgICBcImZldGNoLWRvY3VtZW50XCI6IFwiZGM6bGFzdENvbnRyaWJ1dG9yXCJcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|