@yuuvis/app-drive 0.7.3
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/README.md +47 -0
- package/esm2022/extensions/index.mjs +2 -0
- package/esm2022/extensions/lib/extensions.module.mjs +35 -0
- package/esm2022/extensions/lib/extensions.service.mjs +44 -0
- package/esm2022/extensions/lib/object-config.defaults.mjs +19 -0
- package/esm2022/extensions/yuuvis-app-drive-extensions.mjs +5 -0
- package/esm2022/index.mjs +5 -0
- package/esm2022/lib/actions/copy-link/copy-link.action.mjs +40 -0
- package/esm2022/lib/actions/index.mjs +7 -0
- package/esm2022/lib/actions/manage-versions/manage-versions.action.mjs +33 -0
- package/esm2022/lib/actions/manage-versions/manage-versions.component.mjs +105 -0
- package/esm2022/lib/actions/paste/paste.action.mjs +41 -0
- package/esm2022/lib/actions/rename/rename.action.mjs +31 -0
- package/esm2022/lib/actions/rename/rename.component.mjs +42 -0
- package/esm2022/lib/actions/rename/rename.validator.mjs +23 -0
- package/esm2022/lib/actions/updateContent/update.content.action.mjs +52 -0
- package/esm2022/lib/components/add-button/add-button-overlay/add-button-overlay.component.mjs +109 -0
- package/esm2022/lib/components/add-button/add-button.component.mjs +39 -0
- package/esm2022/lib/components/breadcrumb/breadcrumb.component.mjs +74 -0
- package/esm2022/lib/components/folder-tree/folder-tree.component.mjs +89 -0
- package/esm2022/lib/components/index.mjs +10 -0
- package/esm2022/lib/components/object-name/object-name.component.mjs +60 -0
- package/esm2022/lib/components/overlay/create-folder/create-folder.component.mjs +48 -0
- package/esm2022/lib/components/paste-from-clipboard/paste-from-clipboard.component.mjs +28 -0
- package/esm2022/lib/components/ribbon/ribbon.component.mjs +102 -0
- package/esm2022/lib/components/search-filter/date-range-picker/date-range-picker.component.mjs +38 -0
- package/esm2022/lib/components/search-filter/search-filter.component.mjs +429 -0
- package/esm2022/lib/components/sort/sort.component.mjs +156 -0
- package/esm2022/lib/components/versions-list/tile/tile.component.mjs +60 -0
- package/esm2022/lib/components/versions-list/versions-list.component.mjs +94 -0
- package/esm2022/lib/container/drive/drive.component.mjs +116 -0
- package/esm2022/lib/drive.icons.mjs +16 -0
- package/esm2022/lib/drive.schema.mjs +49 -0
- package/esm2022/lib/lib.routes.mjs +17 -0
- package/esm2022/lib/pages/files/files.component.mjs +377 -0
- package/esm2022/lib/pages/object/object.component.mjs +200 -0
- package/esm2022/lib/services/drive/drive.interface.mjs +14 -0
- package/esm2022/lib/services/drive/drive.service.mjs +437 -0
- package/esm2022/lib/services/drive/resolve-name-conflicts/resolve-name-conflicts.component.mjs +158 -0
- package/esm2022/lib/services/drive/resolve-name-conflicts/resolve-name-conflicts.interface.mjs +2 -0
- package/esm2022/lib/services/drive/versions/versions.mapping.mjs +42 -0
- package/esm2022/lib/services/index.mjs +5 -0
- package/esm2022/lib/services/providers/drive.providers.mjs +10 -0
- package/esm2022/lib/services/resolver/files.resolver.mjs +12 -0
- package/esm2022/lib/services/resolver/index.mjs +3 -0
- package/esm2022/lib/services/resolver/versions.route.resolver.mjs +10 -0
- package/esm2022/lib/services/stored-query/stored-query.data.mjs +25 -0
- package/esm2022/lib/services/stored-query/stored-query.interface.mjs +2 -0
- package/esm2022/lib/services/stored-query/stored-query.service.mjs +41 -0
- package/esm2022/lib/services/tokens/breadcrumb-max-depth.token.mjs +3 -0
- package/esm2022/lib/services/tokens/index.mjs +2 -0
- package/esm2022/yuuvis-app-drive.mjs +5 -0
- package/extensions/README.md +3 -0
- package/extensions/index.d.ts +1 -0
- package/extensions/lib/extensions.module.d.ts +6 -0
- package/extensions/lib/extensions.service.d.ts +7 -0
- package/extensions/lib/object-config.defaults.d.ts +2 -0
- package/fesm2022/yuuvis-app-drive-extensions.mjs +99 -0
- package/fesm2022/yuuvis-app-drive-extensions.mjs.map +1 -0
- package/fesm2022/yuuvis-app-drive.mjs +2945 -0
- package/fesm2022/yuuvis-app-drive.mjs.map +1 -0
- package/index.d.ts +4 -0
- package/lib/actions/copy-link/copy-link.action.d.ts +18 -0
- package/lib/actions/index.d.ts +6 -0
- package/lib/actions/manage-versions/manage-versions.action.d.ts +17 -0
- package/lib/actions/manage-versions/manage-versions.component.d.ts +32 -0
- package/lib/actions/paste/paste.action.d.ts +17 -0
- package/lib/actions/rename/rename.action.d.ts +17 -0
- package/lib/actions/rename/rename.component.d.ts +12 -0
- package/lib/actions/rename/rename.validator.d.ts +5 -0
- package/lib/actions/updateContent/update.content.action.d.ts +18 -0
- package/lib/components/add-button/add-button-overlay/add-button-overlay.component.d.ts +26 -0
- package/lib/components/add-button/add-button.component.d.ts +12 -0
- package/lib/components/breadcrumb/breadcrumb.component.d.ts +25 -0
- package/lib/components/folder-tree/folder-tree.component.d.ts +13 -0
- package/lib/components/index.d.ts +8 -0
- package/lib/components/object-name/object-name.component.d.ts +21 -0
- package/lib/components/overlay/create-folder/create-folder.component.d.ts +12 -0
- package/lib/components/paste-from-clipboard/paste-from-clipboard.component.d.ts +13 -0
- package/lib/components/ribbon/ribbon.component.d.ts +24 -0
- package/lib/components/search-filter/date-range-picker/date-range-picker.component.d.ts +13 -0
- package/lib/components/search-filter/search-filter.component.d.ts +23 -0
- package/lib/components/sort/sort.component.d.ts +31 -0
- package/lib/components/versions-list/tile/tile.component.d.ts +14 -0
- package/lib/components/versions-list/versions-list.component.d.ts +17 -0
- package/lib/container/drive/drive.component.d.ts +36 -0
- package/lib/drive.icons.d.ts +15 -0
- package/lib/drive.schema.d.ts +23 -0
- package/lib/lib.routes.d.ts +2 -0
- package/lib/pages/files/files.component.d.ts +101 -0
- package/lib/pages/object/object.component.d.ts +35 -0
- package/lib/services/drive/drive.interface.d.ts +62 -0
- package/lib/services/drive/drive.service.d.ts +64 -0
- package/lib/services/drive/resolve-name-conflicts/resolve-name-conflicts.component.d.ts +31 -0
- package/lib/services/drive/resolve-name-conflicts/resolve-name-conflicts.interface.d.ts +8 -0
- package/lib/services/drive/versions/versions.mapping.d.ts +2 -0
- package/lib/services/index.d.ts +4 -0
- package/lib/services/providers/drive.providers.d.ts +7 -0
- package/lib/services/resolver/files.resolver.d.ts +2 -0
- package/lib/services/resolver/index.d.ts +2 -0
- package/lib/services/resolver/versions.route.resolver.d.ts +2 -0
- package/lib/services/stored-query/stored-query.data.d.ts +5 -0
- package/lib/services/stored-query/stored-query.interface.d.ts +5 -0
- package/lib/services/stored-query/stored-query.service.d.ts +10 -0
- package/lib/services/tokens/breadcrumb-max-depth.token.d.ts +2 -0
- package/lib/services/tokens/index.d.ts +1 -0
- package/package.json +41 -0
package/esm2022/lib/services/drive/resolve-name-conflicts/resolve-name-conflicts.component.mjs
ADDED
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
import { CommonModule } from '@angular/common';
|
|
2
|
+
import { Component, inject } from '@angular/core';
|
|
3
|
+
import { YvcOverlayRef } from '@yuuvis/components/overlay';
|
|
4
|
+
import { DriveService } from '../drive.service';
|
|
5
|
+
import { ClipboardService, TranslateModule, TranslateService } from '@yuuvis/client-core';
|
|
6
|
+
import { FS_PROPERTIES } from '../../../drive.schema';
|
|
7
|
+
import { tap } from 'rxjs';
|
|
8
|
+
import { DRIVE_EVENT } from '../drive.interface';
|
|
9
|
+
import * as i0 from "@angular/core";
|
|
10
|
+
import * as i1 from "@yuuvis/client-core";
|
|
11
|
+
/**
|
|
12
|
+
* Component to resolve name conflicts. Based on its mode, it
|
|
13
|
+
* will handle files or objects that are about to be uploaded,
|
|
14
|
+
* copied or moved.
|
|
15
|
+
*/
|
|
16
|
+
export class ResolveNameConflictsComponent {
|
|
17
|
+
constructor() {
|
|
18
|
+
this.#oRef = inject(YvcOverlayRef);
|
|
19
|
+
this.#drive = inject(DriveService);
|
|
20
|
+
this.#clipboard = inject(ClipboardService);
|
|
21
|
+
this.translate = inject(TranslateService);
|
|
22
|
+
this.validItems = [];
|
|
23
|
+
this.existingFileNames = [];
|
|
24
|
+
this.invalidFileNames = [];
|
|
25
|
+
this.content = {
|
|
26
|
+
headline: '',
|
|
27
|
+
message: '',
|
|
28
|
+
messageValid: '',
|
|
29
|
+
proceed: ''
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
#oRef;
|
|
33
|
+
#drive;
|
|
34
|
+
#clipboard;
|
|
35
|
+
proceed() {
|
|
36
|
+
if (!this.payload)
|
|
37
|
+
return;
|
|
38
|
+
switch (this.payload.mode) {
|
|
39
|
+
case 'upload': {
|
|
40
|
+
this.#upload(this.validItems.map((i) => i.item));
|
|
41
|
+
break;
|
|
42
|
+
}
|
|
43
|
+
case 'copy': {
|
|
44
|
+
this.#copy(this.validItems.map((i) => i.item));
|
|
45
|
+
break;
|
|
46
|
+
}
|
|
47
|
+
case 'move': {
|
|
48
|
+
this.#move(this.validItems.map((i) => i.item));
|
|
49
|
+
break;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
#upload(files) {
|
|
54
|
+
this.#drive.upload(files, this.payload?.data).subscribe();
|
|
55
|
+
// upload errors and progress are handled by the upload progress component
|
|
56
|
+
this.#oRef.close();
|
|
57
|
+
}
|
|
58
|
+
#copy(objects) {
|
|
59
|
+
this.#drive.setBusy(true);
|
|
60
|
+
this.#oRef.close();
|
|
61
|
+
this.#drive
|
|
62
|
+
.copyToCurrentFolder(objects, false)
|
|
63
|
+
.pipe(tap((res) => {
|
|
64
|
+
res && this.#drive.emitEvent(DRIVE_EVENT.refresh);
|
|
65
|
+
this.#clipboard.clear();
|
|
66
|
+
}))
|
|
67
|
+
.subscribe({
|
|
68
|
+
complete: () => {
|
|
69
|
+
this.#drive.setBusy(false);
|
|
70
|
+
}
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
#move(objects) {
|
|
74
|
+
this.#drive.setBusy(true);
|
|
75
|
+
this.#oRef.close();
|
|
76
|
+
this.#drive
|
|
77
|
+
.moveToCurrentFolder(objects)
|
|
78
|
+
.pipe(tap((res) => {
|
|
79
|
+
res && this.#drive.emitEvent(DRIVE_EVENT.refresh);
|
|
80
|
+
this.#clipboard.clear();
|
|
81
|
+
}))
|
|
82
|
+
.subscribe({
|
|
83
|
+
complete: () => {
|
|
84
|
+
this.#drive.setBusy(false);
|
|
85
|
+
}
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
cancel() {
|
|
89
|
+
this.#oRef.close();
|
|
90
|
+
}
|
|
91
|
+
#setupValidItems() {
|
|
92
|
+
if (!this.payload)
|
|
93
|
+
return;
|
|
94
|
+
if (this.payload?.mode === 'upload') {
|
|
95
|
+
this.validItems = this.payload.items
|
|
96
|
+
.filter((f) => !this.existingFileNames.includes(f.name))
|
|
97
|
+
.map((item) => ({
|
|
98
|
+
name: item.name,
|
|
99
|
+
item
|
|
100
|
+
}));
|
|
101
|
+
}
|
|
102
|
+
else {
|
|
103
|
+
this.validItems = this.payload.items
|
|
104
|
+
.filter((o) => !this.existingFileNames.includes(o.data[FS_PROPERTIES.name]))
|
|
105
|
+
.map((item) => ({
|
|
106
|
+
name: item.data[FS_PROPERTIES.name],
|
|
107
|
+
item
|
|
108
|
+
}));
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
#setupContent() {
|
|
112
|
+
if (!this.payload)
|
|
113
|
+
return;
|
|
114
|
+
switch (this.payload.mode) {
|
|
115
|
+
case 'upload': {
|
|
116
|
+
this.content = {
|
|
117
|
+
headline: this.translate.instant('yuv.app.drive.name.conflict.upload.headline'),
|
|
118
|
+
message: this.translate.instant('yuv.app.drive.name.conflict.upload.message'),
|
|
119
|
+
messageValid: this.translate.instant('yuv.app.drive.name.conflict.upload.messageValid'),
|
|
120
|
+
proceed: this.translate.instant('yuv.app.drive.name.conflict.upload.proceed')
|
|
121
|
+
};
|
|
122
|
+
break;
|
|
123
|
+
}
|
|
124
|
+
case 'copy': {
|
|
125
|
+
this.content = {
|
|
126
|
+
headline: this.translate.instant('yuv.app.drive.name.conflict.copy.headline'),
|
|
127
|
+
message: this.translate.instant('yuv.app.drive.name.conflict.copy.message'),
|
|
128
|
+
messageValid: this.translate.instant('yuv.app.drive.name.conflict.copy.messageValid'),
|
|
129
|
+
proceed: this.translate.instant('yuv.app.drive.name.conflict.copy.proceed')
|
|
130
|
+
};
|
|
131
|
+
break;
|
|
132
|
+
}
|
|
133
|
+
case 'move': {
|
|
134
|
+
this.content = {
|
|
135
|
+
headline: this.translate.instant('yuv.app.drive.name.conflict.move.headline'),
|
|
136
|
+
message: this.translate.instant('yuv.app.drive.name.conflict.move.message'),
|
|
137
|
+
messageValid: this.translate.instant('yuv.app.drive.name.conflict.move.messageValid'),
|
|
138
|
+
proceed: this.translate.instant('yuv.app.drive.name.conflict.move.proceed')
|
|
139
|
+
};
|
|
140
|
+
break;
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
ngOnInit() {
|
|
145
|
+
this.payload = this.#oRef.data;
|
|
146
|
+
this.existingFileNames = this.payload.existingFileNames;
|
|
147
|
+
this.invalidFileNames = this.payload.invalidFileNames;
|
|
148
|
+
this.#setupValidItems();
|
|
149
|
+
this.#setupContent();
|
|
150
|
+
}
|
|
151
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ResolveNameConflictsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
152
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: ResolveNameConflictsComponent, isStandalone: true, selector: "ymd-resolve-name-conflicts", ngImport: i0, template: "<h2>{{ content.headline }}</h2>\n<p>{{ content.message }}</p>\n\n<ul>\n @for (ef of existingFileNames; track $index) {\n <li>{{ ef }}</li>\n }\n</ul>\n\n@if (validItems.length) {\n <p>{{ content.messageValid }}</p>\n <ul>\n @for (f of validItems; track $index) {\n <li>{{ f.name }}</li>\n }\n </ul>\n}\n\n<footer>\n @if (validItems.length) {\n <button class=\"primary\" (click)=\"proceed()\">{{ content.proceed }}</button>\n }\n <button class=\"secondary\" (click)=\"cancel()\">{{ 'yuv.app.drive.name.conflict.cancel' | translate }}</button>\n</footer>\n", styles: ["@charset \"UTF-8\";:host{display:block;padding:var(--app-pane-padding);position:relative}:host .yuv-loader-linear{position:absolute;inset:0}:host h2{margin:0 0 2em;font-size:var(--font-title);font-weight:400}:host ul{font-weight:700;list-style:none;padding:0 1em}:host ul li{padding:.25rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}:host ul li:before{content:\"\\2022\";margin-inline-end:.5rem}:host footer{margin-block-start:calc(var(--app-pane-padding) * 2);display:flex;flex-flow:row-reverse;gap:calc(var(--app-pane-padding) / 4)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }] }); }
|
|
153
|
+
}
|
|
154
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ResolveNameConflictsComponent, decorators: [{
|
|
155
|
+
type: Component,
|
|
156
|
+
args: [{ selector: 'ymd-resolve-name-conflicts', standalone: true, imports: [CommonModule, TranslateModule], template: "<h2>{{ content.headline }}</h2>\n<p>{{ content.message }}</p>\n\n<ul>\n @for (ef of existingFileNames; track $index) {\n <li>{{ ef }}</li>\n }\n</ul>\n\n@if (validItems.length) {\n <p>{{ content.messageValid }}</p>\n <ul>\n @for (f of validItems; track $index) {\n <li>{{ f.name }}</li>\n }\n </ul>\n}\n\n<footer>\n @if (validItems.length) {\n <button class=\"primary\" (click)=\"proceed()\">{{ content.proceed }}</button>\n }\n <button class=\"secondary\" (click)=\"cancel()\">{{ 'yuv.app.drive.name.conflict.cancel' | translate }}</button>\n</footer>\n", styles: ["@charset \"UTF-8\";:host{display:block;padding:var(--app-pane-padding);position:relative}:host .yuv-loader-linear{position:absolute;inset:0}:host h2{margin:0 0 2em;font-size:var(--font-title);font-weight:400}:host ul{font-weight:700;list-style:none;padding:0 1em}:host ul li{padding:.25rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}:host ul li:before{content:\"\\2022\";margin-inline-end:.5rem}:host footer{margin-block-start:calc(var(--app-pane-padding) * 2);display:flex;flex-flow:row-reverse;gap:calc(var(--app-pane-padding) / 4)}\n"] }]
|
|
157
|
+
}] });
|
|
158
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb2x2ZS1uYW1lLWNvbmZsaWN0cy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FwcHMvZHJpdmUvc3JjL2xpYi9zZXJ2aWNlcy9kcml2ZS9yZXNvbHZlLW5hbWUtY29uZmxpY3RzL3Jlc29sdmUtbmFtZS1jb25mbGljdHMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hcHBzL2RyaXZlL3NyYy9saWIvc2VydmljZXMvZHJpdmUvcmVzb2x2ZS1uYW1lLWNvbmZsaWN0cy9yZXNvbHZlLW5hbWUtY29uZmxpY3RzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUMxRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRWhELE9BQU8sRUFBRSxnQkFBZ0IsRUFBYSxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDdEQsT0FBTyxFQUFRLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNqQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7OztBQUVqRDs7OztHQUlHO0FBUUgsTUFBTSxPQUFPLDZCQUE2QjtJQVAxQztRQVFFLFVBQUssR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDOUIsV0FBTSxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUM5QixlQUFVLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFD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QUksQ0FBQyxPQUFPLEdBQUc7b0JBQ2IsUUFBUSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLDJDQUEyQyxDQUFDO29CQUM3RSxPQUFPLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsMENBQTBDLENBQUM7b0JBQzNFLFlBQVksRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQywrQ0FBK0MsQ0FBQztvQkFDckYsT0FBTyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLDBDQUEwQyxDQUFDO2lCQUM1RSxDQUFDO2dCQUNGLE1BQU07WUFDUixDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQW1DLENBQUM7UUFDOUQsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUM7UUFDeEQsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUM7UUFDdEQsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7K0dBOUlVLDZCQUE2QjttR0FBN0IsNkJBQTZCLHNGQ3RCMUMscWtCQXdCQSxnbUJETlksWUFBWSw4QkFBRSxlQUFlOzs0RkFJNUIsNkJBQTZCO2tCQVB6QyxTQUFTOytCQUNFLDRCQUE0QixjQUMxQixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsZUFBZSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgaW5qZWN0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFl2Y092ZXJsYXlSZWYgfSBmcm9tICdAeXV1dmlzL2NvbXBvbmVudHMvb3ZlcmxheSc7XG5pbXBvcnQgeyBEcml2ZVNlcnZpY2UgfSBmcm9tICcuLi9kcml2ZS5zZXJ2aWNlJztcbmltcG9ydCB7IFJlc29sdmVOYW1lQ29uZmxpY3RzUGF5bG9hZCB9IGZyb20gJy4vcmVzb2x2ZS1uYW1lLWNvbmZsaWN0cy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQ2xpcGJvYXJkU2VydmljZSwgRG1zT2JqZWN0LCBUcmFuc2xhdGVNb2R1bGUsIFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAeXV1dmlzL2NsaWVudC1jb3JlJztcbmltcG9ydCB7IEZTX1BST1BFUlRJRVMgfSBmcm9tICcuLi8uLi8uLi9kcml2ZS5zY2hlbWEnO1xuaW1wb3J0IHsgcGlwZSwgdGFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBEUklWRV9FVkVOVCB9IGZyb20gJy4uL2RyaXZlLmludGVyZmFjZSc7XG5cbi8qKlxuICogQ29tcG9uZW50IHRvIHJlc29sdmUgbmFtZSBjb25mbGljdHMuIEJhc2VkIG9uIGl0cyBtb2RlLCBpdFxuICogd2lsbCBoYW5kbGUgZmlsZXMgb3Igb2JqZWN0cyB0aGF0IGFyZSBhYm91dCB0byBiZSB1cGxvYWRlZCxcbiAqIGNvcGllZCBvciBtb3ZlZC5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAneW1kLXJlc29sdmUtbmFtZS1jb25mbGljdHMnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBUcmFuc2xhdGVNb2R1bGVdLFxuICB0ZW1wbGF0ZVVybDogJy4vcmVzb2x2ZS1uYW1lLWNvbmZsaWN0cy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9yZXNvbHZlLW5hbWUtY29uZmxpY3RzLmNvbXBvbmVudC5zY3NzJ1xufSlcbmV4cG9ydCBjbGFzcyBSZXNvbHZlTmFtZUNvbmZsaWN0c0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICNvUmVmID0gaW5qZWN0KFl2Y092ZXJsYXlSZWYpO1xuICAjZHJpdmUgPSBpbmplY3QoRHJpdmVTZXJ2aWNlKTtcbiAgI2NsaXBib2FyZCA9IGluamVjdChDbGlwYm9hcmRTZXJ2aWNlKTtcbiAgdHJhbnNsYXRlID0gaW5qZWN0KFRyYW5zbGF0ZVNlcnZpY2UpO1xuXG4gIHBheWxvYWQ/OiBSZXNvbHZlTmFtZUNvbmZsaWN0c1BheWxvYWQ7XG4gIHZhbGlkSXRlbXM6IHsgbmFtZTogc3RyaW5nOyBpdGVtOiBEbXNPYmplY3QgfCBGaWxlIH1bXSA9IFtdO1xuICBleGlzdGluZ0ZpbGVOYW1lczogc3RyaW5nW10gPSBbXTtcbiAgaW52YWxpZEZpbGVOYW1lczogc3RyaW5nW10gPSBbXTtcblxuICBjb250ZW50ID0ge1xuICAgIGhlYWRsaW5lOiAnJyxcbiAgICBtZXNzYWdlOiAnJyxcbiAgICBtZXNzYWdlVmFsaWQ6ICcnLFxuICAgIHByb2NlZWQ6ICcnXG4gIH07XG5cbiAgcHJvY2VlZCgpIHtcbiAgICBpZiAoIXRoaXMucGF5bG9hZCkgcmV0dXJuO1xuXG4gICAgc3dpdGNoICh0aGlzLnBheWxvYWQubW9kZSkge1xuICAgICAgY2FzZSAndXBsb2FkJzoge1xuICAgICAgICB0aGlzLiN1cGxvYWQodGhpcy52YWxpZEl0ZW1zLm1hcCgoaSkgPT4gaS5pdGVtKSBhcyBGaWxlW10pO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgJ2NvcHknOiB7XG4gICAgICAgIHRoaXMuI2NvcHkodGhpcy52YWxpZEl0ZW1zLm1hcCgoaSkgPT4gaS5pdGVtKSBhcyBEbXNPYmplY3RbXSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSAnbW92ZSc6IHtcbiAgICAgICAgdGhpcy4jbW92ZSh0aGlzLnZhbGlkSXRlbXMubWFwKChpKSA9PiBpLml0ZW0pIGFzIERtc09iamVjdFtdKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgI3VwbG9hZChmaWxlczogRmlsZVtdKSB7XG4gICAgdGhpcy4jZHJpdmUudXBsb2FkKGZpbGVzLCB0aGlzLnBheWxvYWQ/LmRhdGEpLnN1YnNjcmliZSgpO1xuICAgIC8vIHVwbG9hZCBlcnJvcnMgYW5kIHByb2dyZXNzIGFyZSBoYW5kbGVkIGJ5IHRoZSB1cGxvYWQgcHJvZ3Jlc3MgY29tcG9uZW50XG4gICAgdGhpcy4jb1JlZi5jbG9zZSgpO1xuICB9XG5cbiAgI2NvcHkob2JqZWN0czogRG1zT2JqZWN0W10pIHtcbiAgICB0aGlzLiNkcml2ZS5zZXRCdXN5KHRydWUpO1xuICAgIHRoaXMuI29SZWYuY2xvc2UoKTtcbiAgICB0aGlzLiNkcml2ZVxuICAgICAgLmNvcHlUb0N1cnJlbnRGb2xkZXIob2JqZWN0cywgZmFsc2UpXG4gICAgICAucGlwZShcbiAgICAgICAgdGFwKChyZXMpID0+IHtcbiAgICAgICAgICByZXMgJiYgdGhpcy4jZHJpdmUuZW1pdEV2ZW50KERSSVZFX0VWRU5ULnJlZnJlc2gpO1xuICAgICAgICAgIHRoaXMuI2NsaXBib2FyZC5jbGVhcigpO1xuICAgICAgICB9KVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSh7XG4gICAgICAgIGNvbXBsZXRlOiAoKSA9PiB7XG4gICAgICAgICAgdGhpcy4jZHJpdmUuc2V0QnVzeShmYWxzZSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgI21vdmUob2JqZWN0czogRG1zT2JqZWN0W10pIHtcbiAgICB0aGlzLiNkcml2ZS5zZXRCdXN5KHRydWUpO1xuICAgIHRoaXMuI29SZWYuY2xvc2UoKTtcbiAgICB0aGlzLiNkcml2ZVxuICAgICAgLm1vdmVUb0N1cnJlbnRGb2xkZXIob2JqZWN0cylcbiAgICAgIC5waXBlKFxuICAgICAgICB0YXAoKHJlcykgPT4ge1xuICAgICAgICAgIHJlcyAmJiB0aGlzLiNkcml2ZS5lbWl0RXZlbnQoRFJJVkVfRVZFTlQucmVmcmVzaCk7XG4gICAgICAgICAgdGhpcy4jY2xpcGJvYXJkLmNsZWFyKCk7XG4gICAgICAgIH0pXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKHtcbiAgICAgICAgY29tcGxldGU6ICgpID0+IHtcbiAgICAgICAgICB0aGlzLiNkcml2ZS5zZXRCdXN5KGZhbHNlKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICBjYW5jZWwoKSB7XG4gICAgdGhpcy4jb1JlZi5jbG9zZSgpO1xuICB9XG5cbiAgI3NldHVwVmFsaWRJdGVtcygpIHtcbiAgICBpZiAoIXRoaXMucGF5bG9hZCkgcmV0dXJuO1xuICAgIGlmICh0aGlzLnBheWxvYWQ/Lm1vZGUgPT09ICd1cGxvYWQnKSB7XG4gICAgICB0aGlzLnZhbGlkSXRlbXMgPSAodGhpcy5wYXlsb2FkLml0ZW1zIGFzIEZpbGVbXSlcbiAgICAgICAgLmZpbHRlcigoZikgPT4gIXRoaXMuZXhpc3RpbmdGaWxlTmFtZXMuaW5jbHVkZXMoZi5uYW1lKSlcbiAgICAgICAgLm1hcCgoaXRlbSkgPT4gKHtcbiAgICAgICAgICBuYW1lOiBpdGVtLm5hbWUsXG4gICAgICAgICAgaXRlbVxuICAgICAgICB9KSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudmFsaWRJdGVtcyA9ICh0aGlzLnBheWxvYWQuaXRlbXMgYXMgRG1zT2JqZWN0W10pXG4gICAgICAgIC5maWx0ZXIoKG8pID0+ICF0aGlzLmV4aXN0aW5nRmlsZU5hbWVzLmluY2x1ZGVzKG8uZGF0YVtGU19QUk9QRVJUSUVTLm5hbWVdIGFzIHN0cmluZykpXG4gICAgICAgIC5tYXAoKGl0ZW0pID0+ICh7XG4gICAgICAgICAgbmFtZTogaXRlbS5kYXRhW0ZTX1BST1BFUlRJRVMubmFtZV0gYXMgc3RyaW5nLFxuICAgICAgICAgIGl0ZW1cbiAgICAgICAgfSkpO1xuICAgIH1cbiAgfVxuXG4gICNzZXR1cENvbnRlbnQoKSB7XG4gICAgaWYgKCF0aGlzLnBheWxvYWQpIHJldHVybjtcblxuICAgIHN3aXRjaCAodGhpcy5wYXlsb2FkLm1vZGUpIHtcbiAgICAgIGNhc2UgJ3VwbG9hZCc6IHtcbiAgICAgICAgdGhpcy5jb250ZW50ID0ge1xuICAgICAgICAgIGhlYWRsaW5lOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCd5dXYuYXBwLmRyaXZlLm5hbWUuY29uZmxpY3QudXBsb2FkLmhlYWRsaW5lJyksXG4gICAgICAgICAgbWVzc2FnZTogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgneXV2LmFwcC5kcml2ZS5uYW1lLmNvbmZsaWN0LnVwbG9hZC5tZXNzYWdlJyksXG4gICAgICAgICAgbWVzc2FnZVZhbGlkOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCd5dXYuYXBwLmRyaXZlLm5hbWUuY29uZmxpY3QudXBsb2FkLm1lc3NhZ2VWYWxpZCcpLFxuICAgICAgICAgIHByb2NlZWQ6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ3l1di5hcHAuZHJpdmUubmFtZS5jb25mbGljdC51cGxvYWQucHJvY2VlZCcpXG4gICAgICAgIH07XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSAnY29weSc6IHtcbiAgICAgICAgdGhpcy5jb250ZW50ID0ge1xuICAgICAgICAgIGhlYWRsaW5lOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCd5dXYuYXBwLmRyaXZlLm5hbWUuY29uZmxpY3QuY29weS5oZWFkbGluZScpLFxuICAgICAgICAgIG1lc3NhZ2U6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ3l1di5hcHAuZHJpdmUubmFtZS5jb25mbGljdC5jb3B5Lm1lc3NhZ2UnKSxcbiAgICAgICAgICBtZXNzYWdlVmFsaWQ6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ3l1di5hcHAuZHJpdmUubmFtZS5jb25mbGljdC5jb3B5Lm1lc3NhZ2VWYWxpZCcpLFxuICAgICAgICAgIHByb2NlZWQ6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ3l1di5hcHAuZHJpdmUubmFtZS5jb25mbGljdC5jb3B5LnByb2NlZWQnKVxuICAgICAgICB9O1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgJ21vdmUnOiB7XG4gICAgICAgIHRoaXMuY29udGVudCA9IHtcbiAgICAgICAgICBoZWFkbGluZTogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgneXV2LmFwcC5kcml2ZS5uYW1lLmNvbmZsaWN0Lm1vdmUuaGVhZGxpbmUnKSxcbiAgICAgICAgICBtZXNzYWdlOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCd5dXYuYXBwLmRyaXZlLm5hbWUuY29uZmxpY3QubW92ZS5tZXNzYWdlJyksXG4gICAgICAgICAgbWVzc2FnZVZhbGlkOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCd5dXYuYXBwLmRyaXZlLm5hbWUuY29uZmxpY3QubW92ZS5tZXNzYWdlVmFsaWQnKSxcbiAgICAgICAgICBwcm9jZWVkOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCd5dXYuYXBwLmRyaXZlLm5hbWUuY29uZmxpY3QubW92ZS5wcm9jZWVkJylcbiAgICAgICAgfTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5wYXlsb2FkID0gdGhpcy4jb1JlZi5kYXRhIGFzIFJlc29sdmVOYW1lQ29uZmxpY3RzUGF5bG9hZDtcbiAgICB0aGlzLmV4aXN0aW5nRmlsZU5hbWVzID0gdGhpcy5wYXlsb2FkLmV4aXN0aW5nRmlsZU5hbWVzO1xuICAgIHRoaXMuaW52YWxpZEZpbGVOYW1lcyA9IHRoaXMucGF5bG9hZC5pbnZhbGlkRmlsZU5hbWVzO1xuICAgIHRoaXMuI3NldHVwVmFsaWRJdGVtcygpO1xuICAgIHRoaXMuI3NldHVwQ29udGVudCgpO1xuICB9XG59XG4iLCI8aDI+e3sgY29udGVudC5oZWFkbGluZSB9fTwvaDI+XG48cD57eyBjb250ZW50Lm1lc3NhZ2UgfX08L3A+XG5cbjx1bD5cbiAgQGZvciAoZWYgb2YgZXhpc3RpbmdGaWxlTmFtZXM7IHRyYWNrICRpbmRleCkge1xuICAgIDxsaT57eyBlZiB9fTwvbGk+XG4gIH1cbjwvdWw+XG5cbkBpZiAodmFsaWRJdGVtcy5sZW5ndGgpIHtcbiAgPHA+e3sgY29udGVudC5tZXNzYWdlVmFsaWQgfX08L3A+XG4gIDx1bD5cbiAgICBAZm9yIChmIG9mIHZhbGlkSXRlbXM7IHRyYWNrICRpbmRleCkge1xuICAgICAgPGxpPnt7IGYubmFtZSB9fTwvbGk+XG4gICAgfVxuICA8L3VsPlxufVxuXG48Zm9vdGVyPlxuICBAaWYgKHZhbGlkSXRlbXMubGVuZ3RoKSB7XG4gICAgPGJ1dHRvbiBjbGFzcz1cInByaW1hcnlcIiAoY2xpY2spPVwicHJvY2VlZCgpXCI+e3sgY29udGVudC5wcm9jZWVkIH19PC9idXR0b24+XG4gIH1cbiAgPGJ1dHRvbiBjbGFzcz1cInNlY29uZGFyeVwiIChjbGljayk9XCJjYW5jZWwoKVwiPnt7ICd5dXYuYXBwLmRyaXZlLm5hbWUuY29uZmxpY3QuY2FuY2VsJyB8IHRyYW5zbGF0ZSB9fTwvYnV0dG9uPlxuPC9mb290ZXI+XG4iXX0=
|
package/esm2022/lib/services/drive/resolve-name-conflicts/resolve-name-conflicts.interface.mjs
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb2x2ZS1uYW1lLWNvbmZsaWN0cy5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FwcHMvZHJpdmUvc3JjL2xpYi9zZXJ2aWNlcy9kcml2ZS9yZXNvbHZlLW5hbWUtY29uZmxpY3RzL3Jlc29sdmUtbmFtZS1jb25mbGljdHMuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEbXNPYmplY3QgfSBmcm9tIFwiQHl1dXZpcy9jbGllbnQtY29yZVwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIFJlc29sdmVOYW1lQ29uZmxpY3RzUGF5bG9hZCB7XG4gIGV4aXN0aW5nRmlsZU5hbWVzOiBzdHJpbmdbXTtcbiAgaW52YWxpZEZpbGVOYW1lczogc3RyaW5nW107XG4gIG1vZGU6ICd1cGxvYWQnIHwgJ2NvcHknIHwgJ21vdmUnO1xuICBpdGVtczogRmlsZVtdIHwgRG1zT2JqZWN0W107XG4gIGRhdGE/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { BaseObjectTypeField } from '@yuuvis/client-core';
|
|
2
|
+
import { FS_PROPERTIES } from '../../../drive.schema';
|
|
3
|
+
const getResolvedObjectConfigItem = (propertyName, instanceData) => {
|
|
4
|
+
const item = {
|
|
5
|
+
propertyName: propertyName,
|
|
6
|
+
value: instanceData[propertyName]
|
|
7
|
+
};
|
|
8
|
+
// Meta data are considered properties that start with the property name followed by an underscore.
|
|
9
|
+
// Organization fields for example have an additional property 'xyz_title' that contains the resolved
|
|
10
|
+
// name of a user while the value itself is the users ID.
|
|
11
|
+
const metaData = Object.keys(instanceData)
|
|
12
|
+
.filter((key) => key.startsWith(propertyName + '_'))
|
|
13
|
+
.map((key) => ({ [key.substring(key.indexOf('_') + 1)]: instanceData[key] }));
|
|
14
|
+
// If there are meta data properties, they'll be merged into a Record where the
|
|
15
|
+
// key is the property name without the underscore and the actual properties name.
|
|
16
|
+
// So { 'xyz_title': 'John Doe' } will be merged into { title: 'John Doe' }
|
|
17
|
+
if (metaData.length) {
|
|
18
|
+
const meta = metaData.reduce((acc, cur) => ({ ...acc, ...cur }), {});
|
|
19
|
+
item.meta = meta;
|
|
20
|
+
}
|
|
21
|
+
return item;
|
|
22
|
+
};
|
|
23
|
+
const mapToTileData = (objects) => {
|
|
24
|
+
return objects.map((dmsObject) => {
|
|
25
|
+
const sots = dmsObject.sots || [];
|
|
26
|
+
const tli = {
|
|
27
|
+
objectTypeId: dmsObject.objectTypeId,
|
|
28
|
+
id: dmsObject.id,
|
|
29
|
+
actions: undefined,
|
|
30
|
+
badges: undefined,
|
|
31
|
+
instanceData: dmsObject.data,
|
|
32
|
+
dmsObject,
|
|
33
|
+
title: { rendererType: 'text', propertyName: BaseObjectTypeField.PARENT_OBJECT_TYPE_ID, value: dmsObject.data[FS_PROPERTIES.name] }
|
|
34
|
+
};
|
|
35
|
+
tli.icon = { rendererType: 'icon', propertyName: BaseObjectTypeField.OBJECT_TYPE_ID, value: BaseObjectTypeField.OBJECT_TYPE_ID };
|
|
36
|
+
return tli;
|
|
37
|
+
});
|
|
38
|
+
};
|
|
39
|
+
export const mapSearchResult = (res) => {
|
|
40
|
+
return mapToTileData(res);
|
|
41
|
+
};
|
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbnMubWFwcGluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYXBwcy9kcml2ZS9zcmMvbGliL3NlcnZpY2VzL2RyaXZlL3ZlcnNpb25zL3ZlcnNpb25zLm1hcHBpbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLG1CQUFtQixFQUF1QyxNQUFNLHFCQUFxQixDQUFDO0FBRS9GLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUV0RCxNQUFNLDJCQUEyQixHQUFHLENBQUMsWUFBb0IsRUFBRSxZQUFxQyxFQUE0QixFQUFFO0lBQzVILE1BQU0sSUFBSSxHQUE2QjtRQUNyQyxZQUFZLEVBQUUsWUFBWTtRQUMxQixLQUFLLEVBQUUsWUFBWSxDQUFDLFlBQVksQ0FBQztLQUNsQyxDQUFDO0lBQ0YsbUdBQW1HO0lBQ25HLHFHQUFxRztJQUNyRyx5REFBeUQ7SUFDekQsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUM7U0FDdkMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLFlBQVksR0FBRyxHQUFHLENBQUMsQ0FBQztTQUNuRCxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLFlBQVksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUVoRiwrRUFBK0U7SUFDL0Usa0ZBQWtGO0lBQ2xGLDJFQUEyRTtJQUMzRSxJQUFJLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNwQixNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsR0FBRyxFQUFFLEdBQUcsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNyRSxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztJQUNuQixDQUFDO0lBRUQsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDLENBQUM7QUFFRixNQUFNLGFBQWEsR0FBRyxDQUFDLE9BQW9CLEVBQWMsRUFBRTtJQUN6RCxPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRTtRQUMvQixNQUFNLElBQUksR0FBRyxTQUFTLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUVsQyxNQUFNLEdBQUcsR0FBYTtZQUNwQixZQUFZLEVBQUUsU0FBUyxDQUFDLFlBQVk7WUFDcEMsRUFBRSxFQUFFLFNBQVMsQ0FBQyxFQUFFO1lBQ2hCLE9BQU8sRUFBRSxTQUFTO1lBQ2xCLE1BQU0sRUFBRSxTQUFTO1lBQ2pCLFlBQVksRUFBRSxTQUFTLENBQUMsSUFBSTtZQUM1QixTQUFTO1lBQ1QsS0FBSyxFQUFFLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsbUJBQW1CLENBQUMscUJBQXFCLEVBQUUsS0FBSyxFQUFFLFNBQVMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxFQUFFO1NBQ3BJLENBQUM7UUFFRixHQUFHLENBQUMsSUFBSSxHQUFHLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsbUJBQW1CLENBQUMsY0FBYyxFQUFFLEtBQUssRUFBRSxtQkFBbUIsQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUVqSSxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLENBQUMsR0FBUSxFQUFjLEVBQUU7SUFDdEQsT0FBTyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDNUIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmFzZU9iamVjdFR5cGVGaWVsZCwgRG1zT2JqZWN0LCBSZXNvbHZlZE9iamVjdENvbmZpZ0l0ZW0gfSBmcm9tICdAeXV1dmlzL2NsaWVudC1jb3JlJztcbmltcG9ydCB7IFRpbGVEYXRhIH0gZnJvbSAnQHl1dXZpcy9jbGllbnQtZnJhbWV3b3JrL3RpbGUtbGlzdCc7XG5pbXBvcnQgeyBGU19QUk9QRVJUSUVTIH0gZnJvbSAnLi4vLi4vLi4vZHJpdmUuc2NoZW1hJztcblxuY29uc3QgZ2V0UmVzb2x2ZWRPYmplY3RDb25maWdJdGVtID0gKHByb3BlcnR5TmFtZTogc3RyaW5nLCBpbnN0YW5jZURhdGE6IFJlY29yZDxzdHJpbmcsIHVua25vd24+KTogUmVzb2x2ZWRPYmplY3RDb25maWdJdGVtID0+IHtcbiAgY29uc3QgaXRlbTogUmVzb2x2ZWRPYmplY3RDb25maWdJdGVtID0ge1xuICAgIHByb3BlcnR5TmFtZTogcHJvcGVydHlOYW1lLFxuICAgIHZhbHVlOiBpbnN0YW5jZURhdGFbcHJvcGVydHlOYW1lXVxuICB9O1xuICAvLyBNZXRhIGRhdGEgYXJlIGNvbnNpZGVyZWQgcHJvcGVydGllcyB0aGF0IHN0YXJ0IHdpdGggdGhlIHByb3BlcnR5IG5hbWUgZm9sbG93ZWQgYnkgYW4gdW5kZXJzY29yZS5cbiAgLy8gT3JnYW5pemF0aW9uIGZpZWxkcyBmb3IgZXhhbXBsZSBoYXZlIGFuIGFkZGl0aW9uYWwgcHJvcGVydHkgJ3h5el90aXRsZScgdGhhdCBjb250YWlucyB0aGUgcmVzb2x2ZWRcbiAgLy8gbmFtZSBvZiBhIHVzZXIgd2hpbGUgdGhlIHZhbHVlIGl0c2VsZiBpcyB0aGUgdXNlcnMgSUQuXG4gIGNvbnN0IG1ldGFEYXRhID0gT2JqZWN0LmtleXMoaW5zdGFuY2VEYXRhKVxuICAgIC5maWx0ZXIoKGtleSkgPT4ga2V5LnN0YXJ0c1dpdGgocHJvcGVydHlOYW1lICsgJ18nKSlcbiAgICAubWFwKChrZXkpID0+ICh7IFtrZXkuc3Vic3RyaW5nKGtleS5pbmRleE9mKCdfJykgKyAxKV06IGluc3RhbmNlRGF0YVtrZXldIH0pKTtcblxuICAvLyBJZiB0aGVyZSBhcmUgbWV0YSBkYXRhIHByb3BlcnRpZXMsIHRoZXknbGwgYmUgbWVyZ2VkIGludG8gYSBSZWNvcmQgd2hlcmUgdGhlXG4gIC8vIGtleSBpcyB0aGUgcHJvcGVydHkgbmFtZSB3aXRob3V0IHRoZSB1bmRlcnNjb3JlIGFuZCB0aGUgYWN0dWFsIHByb3BlcnRpZXMgbmFtZS5cbiAgLy8gU28geyAneHl6X3RpdGxlJzogJ0pvaG4gRG9lJyB9IHdpbGwgYmUgbWVyZ2VkIGludG8geyB0aXRsZTogJ0pvaG4gRG9lJyB9XG4gIGlmIChtZXRhRGF0YS5sZW5ndGgpIHtcbiAgICBjb25zdCBtZXRhID0gbWV0YURhdGEucmVkdWNlKChhY2MsIGN1cikgPT4gKHsgLi4uYWNjLCAuLi5jdXIgfSksIHt9KTtcbiAgICBpdGVtLm1ldGEgPSBtZXRhO1xuICB9XG5cbiAgcmV0dXJuIGl0ZW07XG59O1xuXG5jb25zdCBtYXBUb1RpbGVEYXRhID0gKG9iamVjdHM6IERtc09iamVjdFtdKTogVGlsZURhdGFbXSA9PiB7XG4gIHJldHVybiBvYmplY3RzLm1hcCgoZG1zT2JqZWN0KSA9PiB7XG4gICAgY29uc3Qgc290cyA9IGRtc09iamVjdC5zb3RzIHx8IFtdO1xuXG4gICAgY29uc3QgdGxpOiBUaWxlRGF0YSA9IHtcbiAgICAgIG9iamVjdFR5cGVJZDogZG1zT2JqZWN0Lm9iamVjdFR5cGVJZCxcbiAgICAgIGlkOiBkbXNPYmplY3QuaWQsXG4gICAgICBhY3Rpb25zOiB1bmRlZmluZWQsXG4gICAgICBiYWRnZXM6IHVuZGVmaW5lZCxcbiAgICAgIGluc3RhbmNlRGF0YTogZG1zT2JqZWN0LmRhdGEsXG4gICAgICBkbXNPYmplY3QsXG4gICAgICB0aXRsZTogeyByZW5kZXJlclR5cGU6ICd0ZXh0JywgcHJvcGVydHlOYW1lOiBCYXNlT2JqZWN0VHlwZUZpZWxkLlBBUkVOVF9PQkpFQ1RfVFlQRV9JRCwgdmFsdWU6IGRtc09iamVjdC5kYXRhW0ZTX1BST1BFUlRJRVMubmFtZV0gfVxuICAgIH07XG5cbiAgICB0bGkuaWNvbiA9IHsgcmVuZGVyZXJUeXBlOiAnaWNvbicsIHByb3BlcnR5TmFtZTogQmFzZU9iamVjdFR5cGVGaWVsZC5PQkpFQ1RfVFlQRV9JRCwgdmFsdWU6IEJhc2VPYmplY3RUeXBlRmllbGQuT0JKRUNUX1RZUEVfSUQgfTtcblxuICAgIHJldHVybiB0bGk7XG4gIH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IG1hcFNlYXJjaFJlc3VsdCA9IChyZXM6IGFueSk6IFRpbGVEYXRhW10gPT4ge1xuICByZXR1cm4gbWFwVG9UaWxlRGF0YShyZXMpO1xufTtcbiJdfQ==
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export * from './drive/drive.service';
|
|
2
|
+
export * from './drive/drive.interface';
|
|
3
|
+
export * from './tokens';
|
|
4
|
+
export * from './providers/drive.providers';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FwcHMvZHJpdmUvc3JjL2xpYi9zZXJ2aWNlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyxVQUFVLENBQUM7QUFDekIsY0FBYyw2QkFBNkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZHJpdmUvZHJpdmUuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2RyaXZlL2RyaXZlLmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL3Rva2Vucyc7XG5leHBvcnQgKiBmcm9tICcuL3Byb3ZpZGVycy9kcml2ZS5wcm92aWRlcnMnO1xuIl19
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { DRIVE_APP_BREADCRUMB_MAX_DEPTH } from '../tokens';
|
|
2
|
+
/**
|
|
3
|
+
*
|
|
4
|
+
* @param breadkrumbMaxDepth default 3
|
|
5
|
+
* @returns
|
|
6
|
+
*/
|
|
7
|
+
export const provideDrive = (breadkrumbMaxDepth = 3) => {
|
|
8
|
+
return { provide: DRIVE_APP_BREADCRUMB_MAX_DEPTH, useValue: breadkrumbMaxDepth };
|
|
9
|
+
};
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJpdmUucHJvdmlkZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hcHBzL2RyaXZlL3NyYy9saWIvc2VydmljZXMvcHJvdmlkZXJzL2RyaXZlLnByb3ZpZGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFM0Q7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxDQUFDLGtCQUFrQixHQUFHLENBQUMsRUFBWSxFQUFFO0lBQy9ELE9BQU8sRUFBRSxPQUFPLEVBQUUsOEJBQThCLEVBQUUsUUFBUSxFQUFFLGtCQUFrQixFQUFFLENBQUM7QUFDbkYsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUHJvdmlkZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERSSVZFX0FQUF9CUkVBRENSVU1CX01BWF9ERVBUSCB9IGZyb20gJy4uL3Rva2Vucyc7XG5cbi8qKlxuICpcbiAqIEBwYXJhbSBicmVhZGtydW1iTWF4RGVwdGggZGVmYXVsdCAzXG4gKiBAcmV0dXJuc1xuICovXG5leHBvcnQgY29uc3QgcHJvdmlkZURyaXZlID0gKGJyZWFka3J1bWJNYXhEZXB0aCA9IDMpOiBQcm92aWRlciA9PiB7XG4gIHJldHVybiB7IHByb3ZpZGU6IERSSVZFX0FQUF9CUkVBRENSVU1CX01BWF9ERVBUSCwgdXNlVmFsdWU6IGJyZWFka3J1bWJNYXhEZXB0aCB9O1xufTtcbiJdfQ==
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { inject } from '@angular/core';
|
|
2
|
+
import { of } from 'rxjs';
|
|
3
|
+
import { DriveService } from '../drive/drive.service';
|
|
4
|
+
import { DRIVE_QUERY_FOLDER_ID } from '../drive/drive.interface';
|
|
5
|
+
export const filesResolver = (route) => {
|
|
6
|
+
const id = route.params['id'];
|
|
7
|
+
const driveStore = inject(DriveService);
|
|
8
|
+
if (id !== DRIVE_QUERY_FOLDER_ID)
|
|
9
|
+
driveStore.resolveFilesState(id).subscribe(console.log);
|
|
10
|
+
return of(true);
|
|
11
|
+
};
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZXMucmVzb2x2ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FwcHMvZHJpdmUvc3JjL2xpYi9zZXJ2aWNlcy9yZXNvbHZlci9maWxlcy5yZXNvbHZlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXZDLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRWpFLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBdUIsQ0FBQyxLQUE2QixFQUFFLEVBQUU7SUFDakYsTUFBTSxFQUFFLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM5QixNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDeEMsSUFBSSxFQUFFLEtBQUsscUJBQXFCO1FBQUUsVUFBVSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7SUFFMUYsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDbEIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBSZXNvbHZlRm4gfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IERyaXZlU2VydmljZSB9IGZyb20gJy4uL2RyaXZlL2RyaXZlLnNlcnZpY2UnO1xuaW1wb3J0IHsgRFJJVkVfUVVFUllfRk9MREVSX0lEIH0gZnJvbSAnLi4vZHJpdmUvZHJpdmUuaW50ZXJmYWNlJztcblxuZXhwb3J0IGNvbnN0IGZpbGVzUmVzb2x2ZXI6IFJlc29sdmVGbjxib29sZWFuPiA9IChyb3V0ZTogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCkgPT4ge1xuICBjb25zdCBpZCA9IHJvdXRlLnBhcmFtc1snaWQnXTtcbiAgY29uc3QgZHJpdmVTdG9yZSA9IGluamVjdChEcml2ZVNlcnZpY2UpO1xuICBpZiAoaWQgIT09IERSSVZFX1FVRVJZX0ZPTERFUl9JRCkgZHJpdmVTdG9yZS5yZXNvbHZlRmlsZXNTdGF0ZShpZCkuc3Vic2NyaWJlKGNvbnNvbGUubG9nKTtcblxuICByZXR1cm4gb2YodHJ1ZSk7XG59O1xuIl19
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export * from './files.resolver';
|
|
2
|
+
export * from './versions.route.resolver';
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FwcHMvZHJpdmUvc3JjL2xpYi9zZXJ2aWNlcy9yZXNvbHZlci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsMkJBQTJCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2ZpbGVzLnJlc29sdmVyJztcbmV4cG9ydCAqIGZyb20gJy4vdmVyc2lvbnMucm91dGUucmVzb2x2ZXInO1xuIl19
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { inject } from '@angular/core';
|
|
2
|
+
import { of, forkJoin } from 'rxjs';
|
|
3
|
+
import { DriveService } from '../drive/drive.service';
|
|
4
|
+
export const versionsResolver = (route) => {
|
|
5
|
+
const id = route.params['id'];
|
|
6
|
+
const driveStore = inject(DriveService);
|
|
7
|
+
forkJoin([driveStore.getVersions(id), driveStore.getSelectedDmsObject(id)]).subscribe();
|
|
8
|
+
return of(true);
|
|
9
|
+
};
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbnMucm91dGUucmVzb2x2ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FwcHMvZHJpdmUvc3JjL2xpYi9zZXJ2aWNlcy9yZXNvbHZlci92ZXJzaW9ucy5yb3V0ZS5yZXNvbHZlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXZDLE9BQU8sRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUV0RCxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBdUIsQ0FBQyxLQUE2QixFQUFFLEVBQUU7SUFDcEYsTUFBTSxFQUFFLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM5QixNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7SUFFeEMsUUFBUSxDQUFDLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsRUFBRSxVQUFVLENBQUMsb0JBQW9CLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBRXhGLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ2xCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgUmVzb2x2ZUZuIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IG9mLCBmb3JrSm9pbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRHJpdmVTZXJ2aWNlIH0gZnJvbSAnLi4vZHJpdmUvZHJpdmUuc2VydmljZSc7XG5cbmV4cG9ydCBjb25zdCB2ZXJzaW9uc1Jlc29sdmVyOiBSZXNvbHZlRm48Ym9vbGVhbj4gPSAocm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QpID0+IHtcbiAgY29uc3QgaWQgPSByb3V0ZS5wYXJhbXNbJ2lkJ107XG4gIGNvbnN0IGRyaXZlU3RvcmUgPSBpbmplY3QoRHJpdmVTZXJ2aWNlKTtcblxuICBmb3JrSm9pbihbZHJpdmVTdG9yZS5nZXRWZXJzaW9ucyhpZCksIGRyaXZlU3RvcmUuZ2V0U2VsZWN0ZWREbXNPYmplY3QoaWQpXSkuc3Vic2NyaWJlKCk7XG5cbiAgcmV0dXJuIG9mKHRydWUpO1xufTtcbiJdfQ==
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { marker } from '@colsen1991/ngx-translate-extract-marker';
|
|
2
|
+
// prefix for stored query ids (every stored query id should start with this prefix)
|
|
3
|
+
export const STORED_QUERY_ID_PREFIX = 'ymsq';
|
|
4
|
+
// add a tranlation marker for the key the stored query is stored under
|
|
5
|
+
// this is used to display the stored query title in the UI
|
|
6
|
+
marker('ymsq.ymd.recent.modified.by.me');
|
|
7
|
+
marker('ymsq.ymd.recent.added.by.me');
|
|
8
|
+
// marker('ymsq.ymd.recent.modified');
|
|
9
|
+
// marker('ymsq.ymd.recent.added');
|
|
10
|
+
// default stored queries
|
|
11
|
+
export const STORED_QUERIES = {
|
|
12
|
+
// 'ymsq.ymd.recent.modified': {
|
|
13
|
+
// query: '{"filters":[{"f":"system:lastModifiedBy","o":"eq","v1":"##me##"}],"sort":[{"field":"system:lastModificationDate","order":"desc"}]}'
|
|
14
|
+
// },
|
|
15
|
+
'ymsq.ymd.recent.modified.by.me': {
|
|
16
|
+
query: '{"filters":[{"f":"system:baseTypeId","o":"eq","v1":"system:document"}, { "f": "system:secondaryObjectTypeIds", "o": "in", "v1": ["appOsdrive:file"] }, {"f":"system:lastModifiedBy","o":"eq","v1":"##me##"}],"sort":[{"field":"system:lastModificationDate","order":"desc"}]}'
|
|
17
|
+
},
|
|
18
|
+
// 'ymsq.ymd.recent.added': {
|
|
19
|
+
// query: '{"sort":[{"field":"system:creationDate","order":"desc"}]}'
|
|
20
|
+
// },
|
|
21
|
+
'ymsq.ymd.recent.added.by.me': {
|
|
22
|
+
query: '{"filters":[{"f":"system:baseTypeId","o":"eq","v1":"system:document"}, { "f": "system:secondaryObjectTypeIds", "o": "in", "v1": ["appOsdrive:file"] }, {"f":"system:lastModifiedBy","o":"eq","v1":"##me##"}],"sort":[{"field":"system:creationDate","order":"desc"}]}'
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmVkLXF1ZXJ5LmRhdGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FwcHMvZHJpdmUvc3JjL2xpYi9zZXJ2aWNlcy9zdG9yZWQtcXVlcnkvc3RvcmVkLXF1ZXJ5LmRhdGEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBRWxFLG9GQUFvRjtBQUNwRixNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRyxNQUFNLENBQUM7QUFFN0MsdUVBQXVFO0FBQ3ZFLDJEQUEyRDtBQUMzRCxNQUFNLENBQUMsZ0NBQWdDLENBQUMsQ0FBQztBQUN6QyxNQUFNLENBQUMsNkJBQTZCLENBQUMsQ0FBQztBQUN0QyxzQ0FBc0M7QUFDdEMsbUNBQW1DO0FBRW5DLHlCQUF5QjtBQUN6QixNQUFNLENBQUMsTUFBTSxjQUFjLEdBTXZCO0lBQ0YsZ0NBQWdDO0lBQ2hDLGdKQUFnSjtJQUNoSixLQUFLO0lBQ0wsZ0NBQWdDLEVBQUU7UUFDaEMsS0FBSyxFQUFFLCtRQUErUTtLQUN2UjtJQUNELDZCQUE2QjtJQUM3Qix1RUFBdUU7SUFDdkUsS0FBSztJQUNMLDZCQUE2QixFQUFFO1FBQzdCLEtBQUssRUFBRSx1UUFBdVE7S0FDL1E7Q0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbWFya2VyIH0gZnJvbSAnQGNvbHNlbjE5OTEvbmd4LXRyYW5zbGF0ZS1leHRyYWN0LW1hcmtlcic7XG5cbi8vIHByZWZpeCBmb3Igc3RvcmVkIHF1ZXJ5IGlkcyAoZXZlcnkgc3RvcmVkIHF1ZXJ5IGlkIHNob3VsZCBzdGFydCB3aXRoIHRoaXMgcHJlZml4KVxuZXhwb3J0IGNvbnN0IFNUT1JFRF9RVUVSWV9JRF9QUkVGSVggPSAneW1zcSc7XG5cbi8vIGFkZCBhIHRyYW5sYXRpb24gbWFya2VyIGZvciB0aGUga2V5IHRoZSBzdG9yZWQgcXVlcnkgaXMgc3RvcmVkIHVuZGVyXG4vLyB0aGlzIGlzIHVzZWQgdG8gZGlzcGxheSB0aGUgc3RvcmVkIHF1ZXJ5IHRpdGxlIGluIHRoZSBVSVxubWFya2VyKCd5bXNxLnltZC5yZWNlbnQubW9kaWZpZWQuYnkubWUnKTtcbm1hcmtlcigneW1zcS55bWQucmVjZW50LmFkZGVkLmJ5Lm1lJyk7XG4vLyBtYXJrZXIoJ3ltc3EueW1kLnJlY2VudC5tb2RpZmllZCcpO1xuLy8gbWFya2VyKCd5bXNxLnltZC5yZWNlbnQuYWRkZWQnKTtcblxuLy8gZGVmYXVsdCBzdG9yZWQgcXVlcmllc1xuZXhwb3J0IGNvbnN0IFNUT1JFRF9RVUVSSUVTOiBSZWNvcmQ8XG4gIHN0cmluZyxcbiAge1xuICAgIGxhYmVsPzogc3RyaW5nO1xuICAgIHF1ZXJ5OiBzdHJpbmc7XG4gIH1cbj4gPSB7XG4gIC8vICd5bXNxLnltZC5yZWNlbnQubW9kaWZpZWQnOiB7XG4gIC8vICAgcXVlcnk6ICd7XCJmaWx0ZXJzXCI6W3tcImZcIjpcInN5c3RlbTpsYXN0TW9kaWZpZWRCeVwiLFwib1wiOlwiZXFcIixcInYxXCI6XCIjI21lIyNcIn1dLFwic29ydFwiOlt7XCJmaWVsZFwiOlwic3lzdGVtOmxhc3RNb2RpZmljYXRpb25EYXRlXCIsXCJvcmRlclwiOlwiZGVzY1wifV19J1xuICAvLyB9LFxuICAneW1zcS55bWQucmVjZW50Lm1vZGlmaWVkLmJ5Lm1lJzoge1xuICAgIHF1ZXJ5OiAne1wiZmlsdGVyc1wiOlt7XCJmXCI6XCJzeXN0ZW06YmFzZVR5cGVJZFwiLFwib1wiOlwiZXFcIixcInYxXCI6XCJzeXN0ZW06ZG9jdW1lbnRcIn0sIHsgXCJmXCI6IFwic3lzdGVtOnNlY29uZGFyeU9iamVjdFR5cGVJZHNcIiwgXCJvXCI6IFwiaW5cIiwgXCJ2MVwiOiBbXCJhcHBPc2RyaXZlOmZpbGVcIl0gfSwge1wiZlwiOlwic3lzdGVtOmxhc3RNb2RpZmllZEJ5XCIsXCJvXCI6XCJlcVwiLFwidjFcIjpcIiMjbWUjI1wifV0sXCJzb3J0XCI6W3tcImZpZWxkXCI6XCJzeXN0ZW06bGFzdE1vZGlmaWNhdGlvbkRhdGVcIixcIm9yZGVyXCI6XCJkZXNjXCJ9XX0nXG4gIH0sXG4gIC8vICd5bXNxLnltZC5yZWNlbnQuYWRkZWQnOiB7XG4gIC8vICAgcXVlcnk6ICd7XCJzb3J0XCI6W3tcImZpZWxkXCI6XCJzeXN0ZW06Y3JlYXRpb25EYXRlXCIsXCJvcmRlclwiOlwiZGVzY1wifV19J1xuICAvLyB9LFxuICAneW1zcS55bWQucmVjZW50LmFkZGVkLmJ5Lm1lJzoge1xuICAgIHF1ZXJ5OiAne1wiZmlsdGVyc1wiOlt7XCJmXCI6XCJzeXN0ZW06YmFzZVR5cGVJZFwiLFwib1wiOlwiZXFcIixcInYxXCI6XCJzeXN0ZW06ZG9jdW1lbnRcIn0sIHsgXCJmXCI6IFwic3lzdGVtOnNlY29uZGFyeU9iamVjdFR5cGVJZHNcIiwgXCJvXCI6IFwiaW5cIiwgXCJ2MVwiOiBbXCJhcHBPc2RyaXZlOmZpbGVcIl0gfSwge1wiZlwiOlwic3lzdGVtOmxhc3RNb2RpZmllZEJ5XCIsXCJvXCI6XCJlcVwiLFwidjFcIjpcIiMjbWUjI1wifV0sXCJzb3J0XCI6W3tcImZpZWxkXCI6XCJzeXN0ZW06Y3JlYXRpb25EYXRlXCIsXCJvcmRlclwiOlwiZGVzY1wifV19J1xuICB9XG59O1xuIl19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmVkLXF1ZXJ5LmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYXBwcy9kcml2ZS9zcmMvbGliL3NlcnZpY2VzL3N0b3JlZC1xdWVyeS9zdG9yZWQtcXVlcnkuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTZWFyY2hRdWVyeSB9IGZyb20gXCJAeXV1dmlzL2NsaWVudC1jb3JlXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3RvcmVkUXVlcnkge1xuICAgIGxhYmVsOiBzdHJpbmc7XG4gICAgcXVlcnk6IFNlYXJjaFF1ZXJ5O1xufSJdfQ==
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { Injectable, inject } from '@angular/core';
|
|
2
|
+
import { TranslateService, UserService } from '@yuuvis/client-core';
|
|
3
|
+
import { STORED_QUERIES } from './stored-query.data';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export class StoredQueryService {
|
|
6
|
+
constructor() {
|
|
7
|
+
this.userService = inject(UserService);
|
|
8
|
+
this.translate = inject(TranslateService);
|
|
9
|
+
}
|
|
10
|
+
getStoredQuery(id) {
|
|
11
|
+
const q = STORED_QUERIES[id];
|
|
12
|
+
if (!q)
|
|
13
|
+
return undefined;
|
|
14
|
+
try {
|
|
15
|
+
// if query has no label try to resolve from language resources
|
|
16
|
+
return {
|
|
17
|
+
label: q.label || this.translate.instant(id),
|
|
18
|
+
query: JSON.parse(this._replaceVars(q.query))
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
catch (e) {
|
|
22
|
+
return undefined;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
_replaceVars(str) {
|
|
26
|
+
const vars = [{ placeholder: '##me##', replace: this.userService.getCurrentUser().id }];
|
|
27
|
+
vars.forEach((v) => {
|
|
28
|
+
str = str.replaceAll(v.placeholder, v.replace);
|
|
29
|
+
});
|
|
30
|
+
return str;
|
|
31
|
+
}
|
|
32
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StoredQueryService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
33
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StoredQueryService, providedIn: 'root' }); }
|
|
34
|
+
}
|
|
35
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StoredQueryService, decorators: [{
|
|
36
|
+
type: Injectable,
|
|
37
|
+
args: [{
|
|
38
|
+
providedIn: 'root'
|
|
39
|
+
}]
|
|
40
|
+
}] });
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmVkLXF1ZXJ5LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FwcHMvZHJpdmUvc3JjL2xpYi9zZXJ2aWNlcy9zdG9yZWQtcXVlcnkvc3RvcmVkLXF1ZXJ5LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFdBQVcsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7QUFNckQsTUFBTSxPQUFPLGtCQUFrQjtJQUgvQjtRQUlVLGdCQUFXLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ2xDLGNBQVMsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztLQTJCOUM7SUF2QkMsY0FBYyxDQUFDLEVBQVU7UUFDdkIsTUFBTSxDQUFDLEdBQUcsY0FBYyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBRTdCLElBQUksQ0FBQyxDQUFDO1lBQUUsT0FBTyxTQUFTLENBQUM7UUFFekIsSUFBSSxDQUFDO1lBQ0gsK0RBQStEO1lBQy9ELE9BQU87Z0JBQ0wsS0FBSyxFQUFFLENBQUMsQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO2dCQUM1QyxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUM5QyxDQUFDO1FBQ0osQ0FBQztRQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDWCxPQUFPLFNBQVMsQ0FBQztRQUNuQixDQUFDO0lBQ0gsQ0FBQztJQUVPLFlBQVksQ0FBQyxHQUFXO1FBQzlCLE1BQU0sSUFBSSxHQUFHLENBQUMsRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLGNBQWMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDeEYsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ2pCLEdBQUcsR0FBRyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2pELENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDOytHQTVCVSxrQkFBa0I7bUhBQWxCLGtCQUFrQixjQUZqQixNQUFNOzs0RkFFUCxrQkFBa0I7a0JBSDlCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlLCBVc2VyU2VydmljZSB9IGZyb20gJ0B5dXV2aXMvY2xpZW50LWNvcmUnO1xuaW1wb3J0IHsgU1RPUkVEX1FVRVJJRVMgfSBmcm9tICcuL3N0b3JlZC1xdWVyeS5kYXRhJztcbmltcG9ydCB7IFN0b3JlZFF1ZXJ5IH0gZnJvbSAnLi9zdG9yZWQtcXVlcnkuaW50ZXJmYWNlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgU3RvcmVkUXVlcnlTZXJ2aWNlIHtcbiAgcHJpdmF0ZSB1c2VyU2VydmljZSA9IGluamVjdChVc2VyU2VydmljZSk7XG4gIHByaXZhdGUgdHJhbnNsYXRlID0gaW5qZWN0KFRyYW5zbGF0ZVNlcnZpY2UpO1xuXG4gIFxuXG4gIGdldFN0b3JlZFF1ZXJ5KGlkOiBzdHJpbmcpOiBTdG9yZWRRdWVyeSB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgcSA9IFNUT1JFRF9RVUVSSUVTW2lkXTtcblxuICAgIGlmICghcSkgcmV0dXJuIHVuZGVmaW5lZDtcblxuICAgIHRyeSB7XG4gICAgICAvLyBpZiBxdWVyeSBoYXMgbm8gbGFiZWwgdHJ5IHRvIHJlc29sdmUgZnJvbSBsYW5ndWFnZSByZXNvdXJjZXNcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGxhYmVsOiBxLmxhYmVsIHx8IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoaWQpLFxuICAgICAgICBxdWVyeTogSlNPTi5wYXJzZSh0aGlzLl9yZXBsYWNlVmFycyhxLnF1ZXJ5KSlcbiAgICAgIH07XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9yZXBsYWNlVmFycyhzdHI6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3QgdmFycyA9IFt7IHBsYWNlaG9sZGVyOiAnIyNtZSMjJywgcmVwbGFjZTogdGhpcy51c2VyU2VydmljZS5nZXRDdXJyZW50VXNlcigpLmlkIH1dO1xuICAgIHZhcnMuZm9yRWFjaCgodikgPT4ge1xuICAgICAgc3RyID0gc3RyLnJlcGxhY2VBbGwodi5wbGFjZWhvbGRlciwgdi5yZXBsYWNlKTtcbiAgICB9KTtcbiAgICByZXR1cm4gc3RyO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { InjectionToken } from '@angular/core';
|
|
2
|
+
export const DRIVE_APP_BREADCRUMB_MAX_DEPTH = new InjectionToken('Max depth of the folder strukture in the Breadcrumb', { factory: () => 3 });
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWRjcnVtYi1tYXgtZGVwdGgudG9rZW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FwcHMvZHJpdmUvc3JjL2xpYi9zZXJ2aWNlcy90b2tlbnMvYnJlYWRjcnVtYi1tYXgtZGVwdGgudG9rZW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUvQyxNQUFNLENBQUMsTUFBTSw4QkFBOEIsR0FBRyxJQUFJLGNBQWMsQ0FBUyxxREFBcUQsRUFBRSxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IGNvbnN0IERSSVZFX0FQUF9CUkVBRENSVU1CX01BWF9ERVBUSCA9IG5ldyBJbmplY3Rpb25Ub2tlbjxudW1iZXI+KCdNYXggZGVwdGggb2YgdGhlIGZvbGRlciBzdHJ1a3R1cmUgaW4gdGhlIEJyZWFkY3J1bWInLCB7IGZhY3Rvcnk6ICgpID0+IDMgfSk7XG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './breadcrumb-max-depth.token';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FwcHMvZHJpdmUvc3JjL2xpYi9zZXJ2aWNlcy90b2tlbnMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyw4QkFBOEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYnJlYWRjcnVtYi1tYXgtZGVwdGgudG9rZW4nO1xuIl19
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './index';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieXV1dmlzLWFwcC1kcml2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvYXBwcy9kcml2ZS9zcmMveXV1dmlzLWFwcC1kcml2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './lib/extensions.module';
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
export declare class AppDriveExtensionsModule {
|
|
3
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AppDriveExtensionsModule, never>;
|
|
4
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<AppDriveExtensionsModule, never, never, never>;
|
|
5
|
+
static ɵinj: i0.ɵɵInjectorDeclaration<AppDriveExtensionsModule>;
|
|
6
|
+
}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { inject, Injectable, APP_INITIALIZER, NgModule } from '@angular/core';
|
|
3
|
+
import { FS_PROPERTIES, APP_SCHEMA, APP_ID } from '@yuuvis/app-drive';
|
|
4
|
+
import { ContentStreamField, BaseObjectTypeField, ObjectConfigService } from '@yuuvis/client-core';
|
|
5
|
+
import { ActionsService } from '@yuuvis/client-framework/actions';
|
|
6
|
+
import { ShellService } from '@yuuvis/client-shell-core';
|
|
7
|
+
import { ManageFlavorsAction } from '@yuuvis/client-shell';
|
|
8
|
+
|
|
9
|
+
const OC_DEFAULTS = {
|
|
10
|
+
'io.yuuvis.app.drive.file': {
|
|
11
|
+
actions: [{ id: 'yuv.base.download' }, { id: 'yuv.base.delete' }],
|
|
12
|
+
title: { label: 'Filename', propertyName: FS_PROPERTIES.name },
|
|
13
|
+
description: { label: 'Size', propertyName: ContentStreamField.LENGTH },
|
|
14
|
+
aside: { label: 'Modified', propertyName: BaseObjectTypeField.MODIFICATION_DATE },
|
|
15
|
+
icon: { svg: APP_SCHEMA.types['file'].icon },
|
|
16
|
+
badges: [],
|
|
17
|
+
objectTypeId: `${APP_ID}.file`
|
|
18
|
+
},
|
|
19
|
+
'io.yuuvis.app.drive.folder': {
|
|
20
|
+
icon: { svg: APP_SCHEMA.types['folder'].icon },
|
|
21
|
+
objectTypeId: `${APP_ID}.folder`,
|
|
22
|
+
title: { label: 'Name', propertyName: FS_PROPERTIES.name }
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
class ExtensionsService {
|
|
27
|
+
#shell = inject(ShellService);
|
|
28
|
+
#actionsService = inject(ActionsService);
|
|
29
|
+
#objectConfig = inject(ObjectConfigService);
|
|
30
|
+
init() {
|
|
31
|
+
this.#shell.registerApp(APP_SCHEMA);
|
|
32
|
+
// TODO: Dummy setting for drive app to integrate into shell settings page
|
|
33
|
+
// this.#shell.registerAppSettings(APP_SCHEMA.id, {
|
|
34
|
+
// appID: APP_SCHEMA.id,
|
|
35
|
+
// label: APP_SCHEMA.name,
|
|
36
|
+
// properties: [
|
|
37
|
+
// {
|
|
38
|
+
// label: 'Max items',
|
|
39
|
+
// name: 'maxItems',
|
|
40
|
+
// type: 'number',
|
|
41
|
+
// value: 10
|
|
42
|
+
// }
|
|
43
|
+
// ]
|
|
44
|
+
// });
|
|
45
|
+
// register a default object config for the types handled by the drive app
|
|
46
|
+
this.#objectConfig.registerDefaults(OC_DEFAULTS, APP_SCHEMA.id);
|
|
47
|
+
this.#actionsService.registerActions([
|
|
48
|
+
{
|
|
49
|
+
id: 'yuv.base.manage-flavor',
|
|
50
|
+
action: ManageFlavorsAction
|
|
51
|
+
}
|
|
52
|
+
]);
|
|
53
|
+
return Promise.resolve();
|
|
54
|
+
}
|
|
55
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ExtensionsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
56
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ExtensionsService }); }
|
|
57
|
+
}
|
|
58
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ExtensionsService, decorators: [{
|
|
59
|
+
type: Injectable
|
|
60
|
+
}] });
|
|
61
|
+
|
|
62
|
+
class AppDriveExtensionsModule {
|
|
63
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AppDriveExtensionsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
64
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: AppDriveExtensionsModule }); }
|
|
65
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AppDriveExtensionsModule, providers: [
|
|
66
|
+
ExtensionsService,
|
|
67
|
+
{
|
|
68
|
+
provide: APP_INITIALIZER,
|
|
69
|
+
useFactory: (ext) => function () {
|
|
70
|
+
return ext.init();
|
|
71
|
+
},
|
|
72
|
+
deps: [ExtensionsService],
|
|
73
|
+
multi: true
|
|
74
|
+
}
|
|
75
|
+
] }); }
|
|
76
|
+
}
|
|
77
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AppDriveExtensionsModule, decorators: [{
|
|
78
|
+
type: NgModule,
|
|
79
|
+
args: [{
|
|
80
|
+
providers: [
|
|
81
|
+
ExtensionsService,
|
|
82
|
+
{
|
|
83
|
+
provide: APP_INITIALIZER,
|
|
84
|
+
useFactory: (ext) => function () {
|
|
85
|
+
return ext.init();
|
|
86
|
+
},
|
|
87
|
+
deps: [ExtensionsService],
|
|
88
|
+
multi: true
|
|
89
|
+
}
|
|
90
|
+
]
|
|
91
|
+
}]
|
|
92
|
+
}] });
|
|
93
|
+
|
|
94
|
+
/**
|
|
95
|
+
* Generated bundle index. Do not edit.
|
|
96
|
+
*/
|
|
97
|
+
|
|
98
|
+
export { AppDriveExtensionsModule };
|
|
99
|
+
//# sourceMappingURL=yuuvis-app-drive-extensions.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"yuuvis-app-drive-extensions.mjs","sources":["../../../../../libs/apps/drive/extensions/src/lib/object-config.defaults.ts","../../../../../libs/apps/drive/extensions/src/lib/extensions.service.ts","../../../../../libs/apps/drive/extensions/src/lib/extensions.module.ts","../../../../../libs/apps/drive/extensions/src/yuuvis-app-drive-extensions.ts"],"sourcesContent":["import { APP_ID, APP_SCHEMA, FS_PROPERTIES } from '@yuuvis/app-drive';\nimport { BaseObjectTypeField, ContentStreamField, ObjectConfigRecord } from '@yuuvis/client-core';\n\nexport const OC_DEFAULTS: ObjectConfigRecord = {\n 'io.yuuvis.app.drive.file': {\n actions: [{ id: 'yuv.base.download' }, { id: 'yuv.base.delete' }],\n title: { label: 'Filename', propertyName: FS_PROPERTIES.name },\n description: { label: 'Size', propertyName: ContentStreamField.LENGTH },\n aside: { label: 'Modified', propertyName: BaseObjectTypeField.MODIFICATION_DATE },\n icon: { svg: APP_SCHEMA.types['file'].icon! },\n badges: [],\n\n objectTypeId: `${APP_ID}.file`\n },\n 'io.yuuvis.app.drive.folder': {\n icon: { svg: APP_SCHEMA.types['folder'].icon! },\n objectTypeId: `${APP_ID}.folder`,\n title: { label: 'Name', propertyName: FS_PROPERTIES.name }\n } \n};\n","import { Injectable, inject } from '@angular/core';\nimport { APP_SCHEMA } from '@yuuvis/app-drive';\nimport { ObjectConfigService } from '@yuuvis/client-core';\nimport { ActionsService } from '@yuuvis/client-framework/actions';\nimport { ShellService } from '@yuuvis/client-shell-core';\nimport { OC_DEFAULTS } from './object-config.defaults';\nimport { ManageFlavorsAction } from '@yuuvis/client-shell';\n\n@Injectable()\nexport class ExtensionsService {\n #shell = inject(ShellService);\n #actionsService = inject(ActionsService);\n #objectConfig = inject(ObjectConfigService);\n\n init(): Promise<any> {\n this.#shell.registerApp(APP_SCHEMA);\n\n // TODO: Dummy setting for drive app to integrate into shell settings page\n // this.#shell.registerAppSettings(APP_SCHEMA.id, {\n // appID: APP_SCHEMA.id,\n // label: APP_SCHEMA.name,\n // properties: [\n // {\n // label: 'Max items',\n // name: 'maxItems',\n // type: 'number',\n // value: 10\n // }\n // ]\n // });\n\n // register a default object config for the types handled by the drive app\n this.#objectConfig.registerDefaults(OC_DEFAULTS, APP_SCHEMA.id);\n this.#actionsService.registerActions([\n {\n id: 'yuv.base.manage-flavor',\n action: ManageFlavorsAction\n }\n ]);\n return Promise.resolve();\n }\n}\n","import { APP_INITIALIZER, NgModule } from '@angular/core';\nimport { ExtensionsService } from './extensions.service';\n\n@NgModule({\n providers: [\n ExtensionsService,\n {\n provide: APP_INITIALIZER,\n useFactory: (ext: ExtensionsService) =>\n function () {\n return ext.init();\n },\n deps: [ExtensionsService],\n multi: true\n }\n ]\n})\nexport class AppDriveExtensionsModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|