@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.
Files changed (107) hide show
  1. package/README.md +47 -0
  2. package/esm2022/extensions/index.mjs +2 -0
  3. package/esm2022/extensions/lib/extensions.module.mjs +35 -0
  4. package/esm2022/extensions/lib/extensions.service.mjs +44 -0
  5. package/esm2022/extensions/lib/object-config.defaults.mjs +19 -0
  6. package/esm2022/extensions/yuuvis-app-drive-extensions.mjs +5 -0
  7. package/esm2022/index.mjs +5 -0
  8. package/esm2022/lib/actions/copy-link/copy-link.action.mjs +40 -0
  9. package/esm2022/lib/actions/index.mjs +7 -0
  10. package/esm2022/lib/actions/manage-versions/manage-versions.action.mjs +33 -0
  11. package/esm2022/lib/actions/manage-versions/manage-versions.component.mjs +105 -0
  12. package/esm2022/lib/actions/paste/paste.action.mjs +41 -0
  13. package/esm2022/lib/actions/rename/rename.action.mjs +31 -0
  14. package/esm2022/lib/actions/rename/rename.component.mjs +42 -0
  15. package/esm2022/lib/actions/rename/rename.validator.mjs +23 -0
  16. package/esm2022/lib/actions/updateContent/update.content.action.mjs +52 -0
  17. package/esm2022/lib/components/add-button/add-button-overlay/add-button-overlay.component.mjs +109 -0
  18. package/esm2022/lib/components/add-button/add-button.component.mjs +39 -0
  19. package/esm2022/lib/components/breadcrumb/breadcrumb.component.mjs +74 -0
  20. package/esm2022/lib/components/folder-tree/folder-tree.component.mjs +89 -0
  21. package/esm2022/lib/components/index.mjs +10 -0
  22. package/esm2022/lib/components/object-name/object-name.component.mjs +60 -0
  23. package/esm2022/lib/components/overlay/create-folder/create-folder.component.mjs +48 -0
  24. package/esm2022/lib/components/paste-from-clipboard/paste-from-clipboard.component.mjs +28 -0
  25. package/esm2022/lib/components/ribbon/ribbon.component.mjs +102 -0
  26. package/esm2022/lib/components/search-filter/date-range-picker/date-range-picker.component.mjs +38 -0
  27. package/esm2022/lib/components/search-filter/search-filter.component.mjs +429 -0
  28. package/esm2022/lib/components/sort/sort.component.mjs +156 -0
  29. package/esm2022/lib/components/versions-list/tile/tile.component.mjs +60 -0
  30. package/esm2022/lib/components/versions-list/versions-list.component.mjs +94 -0
  31. package/esm2022/lib/container/drive/drive.component.mjs +116 -0
  32. package/esm2022/lib/drive.icons.mjs +16 -0
  33. package/esm2022/lib/drive.schema.mjs +49 -0
  34. package/esm2022/lib/lib.routes.mjs +17 -0
  35. package/esm2022/lib/pages/files/files.component.mjs +377 -0
  36. package/esm2022/lib/pages/object/object.component.mjs +200 -0
  37. package/esm2022/lib/services/drive/drive.interface.mjs +14 -0
  38. package/esm2022/lib/services/drive/drive.service.mjs +437 -0
  39. package/esm2022/lib/services/drive/resolve-name-conflicts/resolve-name-conflicts.component.mjs +158 -0
  40. package/esm2022/lib/services/drive/resolve-name-conflicts/resolve-name-conflicts.interface.mjs +2 -0
  41. package/esm2022/lib/services/drive/versions/versions.mapping.mjs +42 -0
  42. package/esm2022/lib/services/index.mjs +5 -0
  43. package/esm2022/lib/services/providers/drive.providers.mjs +10 -0
  44. package/esm2022/lib/services/resolver/files.resolver.mjs +12 -0
  45. package/esm2022/lib/services/resolver/index.mjs +3 -0
  46. package/esm2022/lib/services/resolver/versions.route.resolver.mjs +10 -0
  47. package/esm2022/lib/services/stored-query/stored-query.data.mjs +25 -0
  48. package/esm2022/lib/services/stored-query/stored-query.interface.mjs +2 -0
  49. package/esm2022/lib/services/stored-query/stored-query.service.mjs +41 -0
  50. package/esm2022/lib/services/tokens/breadcrumb-max-depth.token.mjs +3 -0
  51. package/esm2022/lib/services/tokens/index.mjs +2 -0
  52. package/esm2022/yuuvis-app-drive.mjs +5 -0
  53. package/extensions/README.md +3 -0
  54. package/extensions/index.d.ts +1 -0
  55. package/extensions/lib/extensions.module.d.ts +6 -0
  56. package/extensions/lib/extensions.service.d.ts +7 -0
  57. package/extensions/lib/object-config.defaults.d.ts +2 -0
  58. package/fesm2022/yuuvis-app-drive-extensions.mjs +99 -0
  59. package/fesm2022/yuuvis-app-drive-extensions.mjs.map +1 -0
  60. package/fesm2022/yuuvis-app-drive.mjs +2945 -0
  61. package/fesm2022/yuuvis-app-drive.mjs.map +1 -0
  62. package/index.d.ts +4 -0
  63. package/lib/actions/copy-link/copy-link.action.d.ts +18 -0
  64. package/lib/actions/index.d.ts +6 -0
  65. package/lib/actions/manage-versions/manage-versions.action.d.ts +17 -0
  66. package/lib/actions/manage-versions/manage-versions.component.d.ts +32 -0
  67. package/lib/actions/paste/paste.action.d.ts +17 -0
  68. package/lib/actions/rename/rename.action.d.ts +17 -0
  69. package/lib/actions/rename/rename.component.d.ts +12 -0
  70. package/lib/actions/rename/rename.validator.d.ts +5 -0
  71. package/lib/actions/updateContent/update.content.action.d.ts +18 -0
  72. package/lib/components/add-button/add-button-overlay/add-button-overlay.component.d.ts +26 -0
  73. package/lib/components/add-button/add-button.component.d.ts +12 -0
  74. package/lib/components/breadcrumb/breadcrumb.component.d.ts +25 -0
  75. package/lib/components/folder-tree/folder-tree.component.d.ts +13 -0
  76. package/lib/components/index.d.ts +8 -0
  77. package/lib/components/object-name/object-name.component.d.ts +21 -0
  78. package/lib/components/overlay/create-folder/create-folder.component.d.ts +12 -0
  79. package/lib/components/paste-from-clipboard/paste-from-clipboard.component.d.ts +13 -0
  80. package/lib/components/ribbon/ribbon.component.d.ts +24 -0
  81. package/lib/components/search-filter/date-range-picker/date-range-picker.component.d.ts +13 -0
  82. package/lib/components/search-filter/search-filter.component.d.ts +23 -0
  83. package/lib/components/sort/sort.component.d.ts +31 -0
  84. package/lib/components/versions-list/tile/tile.component.d.ts +14 -0
  85. package/lib/components/versions-list/versions-list.component.d.ts +17 -0
  86. package/lib/container/drive/drive.component.d.ts +36 -0
  87. package/lib/drive.icons.d.ts +15 -0
  88. package/lib/drive.schema.d.ts +23 -0
  89. package/lib/lib.routes.d.ts +2 -0
  90. package/lib/pages/files/files.component.d.ts +101 -0
  91. package/lib/pages/object/object.component.d.ts +35 -0
  92. package/lib/services/drive/drive.interface.d.ts +62 -0
  93. package/lib/services/drive/drive.service.d.ts +64 -0
  94. package/lib/services/drive/resolve-name-conflicts/resolve-name-conflicts.component.d.ts +31 -0
  95. package/lib/services/drive/resolve-name-conflicts/resolve-name-conflicts.interface.d.ts +8 -0
  96. package/lib/services/drive/versions/versions.mapping.d.ts +2 -0
  97. package/lib/services/index.d.ts +4 -0
  98. package/lib/services/providers/drive.providers.d.ts +7 -0
  99. package/lib/services/resolver/files.resolver.d.ts +2 -0
  100. package/lib/services/resolver/index.d.ts +2 -0
  101. package/lib/services/resolver/versions.route.resolver.d.ts +2 -0
  102. package/lib/services/stored-query/stored-query.data.d.ts +5 -0
  103. package/lib/services/stored-query/stored-query.interface.d.ts +5 -0
  104. package/lib/services/stored-query/stored-query.service.d.ts +10 -0
  105. package/lib/services/tokens/breadcrumb-max-depth.token.d.ts +2 -0
  106. package/lib/services/tokens/index.d.ts +1 -0
  107. package/package.json +41 -0
@@ -0,0 +1,35 @@
1
+ import { DmsObject, FlavoredDmsObject, TranslateService } from '@yuuvis/client-core';
2
+ import { RendererDirectiveInput } from '@yuuvis/client-framework/renderer';
3
+ import * as i0 from "@angular/core";
4
+ export declare class ObjectPageComponent {
5
+ #private;
6
+ translate: TranslateService;
7
+ busy: import("@ngrx/signals/src/deep-signal").Signal<boolean>;
8
+ smallScreenLayout: import("@angular/core").WritableSignal<boolean>;
9
+ errorMessage?: string;
10
+ dmsObject: import("@angular/core").WritableSignal<DmsObject | undefined>;
11
+ fileDropReplaceDisabled: import("@angular/core").Signal<boolean>;
12
+ flavoredDmsObject: import("@angular/core").Signal<FlavoredDmsObject | undefined>;
13
+ versionsLink: import("@angular/core").Signal<string>;
14
+ icons: {
15
+ back: any;
16
+ error: any;
17
+ refresh: any;
18
+ };
19
+ layoutSettingIdBase: string;
20
+ headerData?: {
21
+ title: RendererDirectiveInput;
22
+ description?: RendererDirectiveInput;
23
+ icon: string;
24
+ };
25
+ excludeActions: string[];
26
+ constructor();
27
+ refresh(): void;
28
+ openParent(): void;
29
+ onIndexdataSaved(updatedObject: DmsObject): void;
30
+ onFileDrop(file: File[]): void;
31
+ versionSelected(version: number): void;
32
+ private _loadDetails;
33
+ static ɵfac: i0.ɵɵFactoryDeclaration<ObjectPageComponent, never>;
34
+ static ɵcmp: i0.ɵɵComponentDeclaration<ObjectPageComponent, "ymd-object", never, {}, {}, never, never, true, never>;
35
+ }
@@ -0,0 +1,62 @@
1
+ import { DmsObject, SearchQuery } from '@yuuvis/client-core';
2
+ import { Action } from '@yuuvis/client-framework/actions';
3
+ import { TileData } from '@yuuvis/client-framework/tile-list';
4
+ export interface BreadCrumb {
5
+ name: string;
6
+ id: string;
7
+ }
8
+ export interface DriveState {
9
+ currentFolder: string | null;
10
+ query: SearchQuery | null;
11
+ queryTitle: string | null;
12
+ selection: DmsObject[];
13
+ actions: Action[];
14
+ busy: boolean;
15
+ sort: {
16
+ property: string;
17
+ order: 'asc' | 'desc';
18
+ } | null;
19
+ breadcrumb: {
20
+ loading: boolean;
21
+ partial: boolean;
22
+ items: BreadCrumb[];
23
+ folder: {
24
+ folderId: string | null;
25
+ entry: BreadCrumb[];
26
+ loading: boolean;
27
+ } | null;
28
+ };
29
+ versions: {
30
+ versionsList: TileData[];
31
+ selectedVersion: DmsObject[] | null;
32
+ };
33
+ selectedDmsObject: DmsObject | null;
34
+ }
35
+ export interface DriveValidatePayload {
36
+ app: string;
37
+ fileNames: string[];
38
+ targetFolderId?: string;
39
+ }
40
+ export interface DriveValidateResponse {
41
+ errors: [{
42
+ message: string[];
43
+ }];
44
+ existingFileNames: string[];
45
+ invalidFileNames: string[];
46
+ valid: boolean;
47
+ }
48
+ export declare const DRIVE_ROOT_FOLDER_ID = "root";
49
+ export declare const DRIVE_QUERY_FOLDER_ID = "query";
50
+ export type DriveFolderId = typeof DRIVE_ROOT_FOLDER_ID | typeof DRIVE_QUERY_FOLDER_ID;
51
+ export declare enum DRIVE_EVENT {
52
+ refresh = "refresh"
53
+ }
54
+ export declare enum DRIVE_ACTION_MODE {
55
+ CUT = "cut",
56
+ COPY = "copy"
57
+ }
58
+ export interface CreateResult {
59
+ id?: string;
60
+ error?: CreateError;
61
+ }
62
+ export type CreateError = 'default' | 'nameExists';
@@ -0,0 +1,64 @@
1
+ import { DmsObject, SearchQuery } from '@yuuvis/client-core';
2
+ import { Action } from '@yuuvis/client-framework/actions';
3
+ import { Observable } from 'rxjs';
4
+ import { BreadCrumb, CreateResult, DriveState, DriveValidateResponse } from './drive.interface';
5
+ import * as i0 from "@angular/core";
6
+ export declare class DriveService {
7
+ #private;
8
+ private readonly MAX_DEPTH;
9
+ private breadcrumbCache;
10
+ readonly events$: Observable<string>;
11
+ readonly initialState: DriveState;
12
+ readonly state$: import("@ngrx/signals").SignalState<DriveState>;
13
+ readonly breadcrumbFolderPreview: import("@ngrx/signals/src/deep-signal").Signal<{
14
+ folderId: string | null;
15
+ entry: BreadCrumb[];
16
+ loading: boolean;
17
+ } | null>;
18
+ private _busyTaskCount;
19
+ private _defaultRibbonActions;
20
+ lastRouteURL?: string;
21
+ constructor();
22
+ emitEvent(evt: string): void;
23
+ setBusy(busy: boolean): void;
24
+ setSelection(o: DmsObject[]): void;
25
+ updateQuery(query: SearchQuery, queryTitle?: string | null): void;
26
+ setSort(property: string, order: 'asc' | 'desc'): void;
27
+ updateCurrentFolder(currentFolderID: string | null | undefined): void;
28
+ copyToCurrentFolder(objects: DmsObject[], validateNames?: boolean): Observable<any>;
29
+ moveToCurrentFolder(objects: DmsObject[], validateNames?: boolean): Observable<any>;
30
+ pasteFromClipboard(destinationObject?: DmsObject): Observable<any>;
31
+ checkNamesAndUpload(files: File[], data?: Record<string, unknown>): Observable<CreateResult[]>;
32
+ uploadContent(objectId: string, file: File): Observable<CreateResult[]>;
33
+ /**
34
+ * Uploads files to the current folder
35
+ * @param files files to be uploaded
36
+ * @param data additional data to be applied to the object
37
+ */
38
+ upload(files: File[], data?: Record<string, unknown>): Observable<CreateResult[]>;
39
+ createFolder(name: string): Observable<CreateResult>;
40
+ /**
41
+ * Checks for existing names and invalid characters
42
+ * @param name The name to be checked
43
+ * @param parentId The parent folder (will be 'root' if not provided)
44
+ * @returns already existing names
45
+ */
46
+ validateNames(names: string[], parentId?: string | null): Observable<DriveValidateResponse>;
47
+ getDefaultRibbonActions(): Action[];
48
+ private _getActions;
49
+ /**
50
+ * Apply search conditions regarding folder listings
51
+ * @param q
52
+ */
53
+ applyFolderListSearchConditions(q: SearchQuery, addBaseTypeId?: boolean): SearchQuery;
54
+ applyBasicSearchConditions(q: SearchQuery): SearchQuery;
55
+ resolveFilesState(id: string): Observable<BreadCrumb[]>;
56
+ getFolderHierarchy(folderId: string): Observable<BreadCrumb[]>;
57
+ getVersions(id: string): Observable<DmsObject[]>;
58
+ getSelectedDmsObject(id: string): Observable<DmsObject>;
59
+ setSelectedVersion(version: any): Observable<DmsObject>;
60
+ setNewVersion(version?: number): Observable<DmsObject[] | null>;
61
+ clearVersions(): void;
62
+ static ɵfac: i0.ɵɵFactoryDeclaration<DriveService, never>;
63
+ static ɵprov: i0.ɵɵInjectableDeclaration<DriveService>;
64
+ }
@@ -0,0 +1,31 @@
1
+ import { OnInit } from '@angular/core';
2
+ import { ResolveNameConflictsPayload } from './resolve-name-conflicts.interface';
3
+ import { DmsObject, TranslateService } from '@yuuvis/client-core';
4
+ import * as i0 from "@angular/core";
5
+ /**
6
+ * Component to resolve name conflicts. Based on its mode, it
7
+ * will handle files or objects that are about to be uploaded,
8
+ * copied or moved.
9
+ */
10
+ export declare class ResolveNameConflictsComponent implements OnInit {
11
+ #private;
12
+ translate: TranslateService;
13
+ payload?: ResolveNameConflictsPayload;
14
+ validItems: {
15
+ name: string;
16
+ item: DmsObject | File;
17
+ }[];
18
+ existingFileNames: string[];
19
+ invalidFileNames: string[];
20
+ content: {
21
+ headline: string;
22
+ message: string;
23
+ messageValid: string;
24
+ proceed: string;
25
+ };
26
+ proceed(): void;
27
+ cancel(): void;
28
+ ngOnInit(): void;
29
+ static ɵfac: i0.ɵɵFactoryDeclaration<ResolveNameConflictsComponent, never>;
30
+ static ɵcmp: i0.ɵɵComponentDeclaration<ResolveNameConflictsComponent, "ymd-resolve-name-conflicts", never, {}, {}, never, never, true, never>;
31
+ }
@@ -0,0 +1,8 @@
1
+ import { DmsObject } from "@yuuvis/client-core";
2
+ export interface ResolveNameConflictsPayload {
3
+ existingFileNames: string[];
4
+ invalidFileNames: string[];
5
+ mode: 'upload' | 'copy' | 'move';
6
+ items: File[] | DmsObject[];
7
+ data?: Record<string, unknown>;
8
+ }
@@ -0,0 +1,2 @@
1
+ import { TileData } from '@yuuvis/client-framework/tile-list';
2
+ export declare const mapSearchResult: (res: any) => TileData[];
@@ -0,0 +1,4 @@
1
+ export * from './drive/drive.service';
2
+ export * from './drive/drive.interface';
3
+ export * from './tokens';
4
+ export * from './providers/drive.providers';
@@ -0,0 +1,7 @@
1
+ import { Provider } from '@angular/core';
2
+ /**
3
+ *
4
+ * @param breadkrumbMaxDepth default 3
5
+ * @returns
6
+ */
7
+ export declare const provideDrive: (breadkrumbMaxDepth?: number) => Provider;
@@ -0,0 +1,2 @@
1
+ import { ResolveFn } from '@angular/router';
2
+ export declare const filesResolver: ResolveFn<boolean>;
@@ -0,0 +1,2 @@
1
+ export * from './files.resolver';
2
+ export * from './versions.route.resolver';
@@ -0,0 +1,2 @@
1
+ import { ResolveFn } from '@angular/router';
2
+ export declare const versionsResolver: ResolveFn<boolean>;
@@ -0,0 +1,5 @@
1
+ export declare const STORED_QUERY_ID_PREFIX = "ymsq";
2
+ export declare const STORED_QUERIES: Record<string, {
3
+ label?: string;
4
+ query: string;
5
+ }>;
@@ -0,0 +1,5 @@
1
+ import { SearchQuery } from "@yuuvis/client-core";
2
+ export interface StoredQuery {
3
+ label: string;
4
+ query: SearchQuery;
5
+ }
@@ -0,0 +1,10 @@
1
+ import { StoredQuery } from './stored-query.interface';
2
+ import * as i0 from "@angular/core";
3
+ export declare class StoredQueryService {
4
+ private userService;
5
+ private translate;
6
+ getStoredQuery(id: string): StoredQuery | undefined;
7
+ private _replaceVars;
8
+ static ɵfac: i0.ɵɵFactoryDeclaration<StoredQueryService, never>;
9
+ static ɵprov: i0.ɵɵInjectableDeclaration<StoredQueryService>;
10
+ }
@@ -0,0 +1,2 @@
1
+ import { InjectionToken } from '@angular/core';
2
+ export declare const DRIVE_APP_BREADCRUMB_MAX_DEPTH: InjectionToken<number>;
@@ -0,0 +1 @@
1
+ export * from './breadcrumb-max-depth.token';
package/package.json ADDED
@@ -0,0 +1,41 @@
1
+ {
2
+ "name": "@yuuvis/app-drive",
3
+ "version": "0.7.3",
4
+ "peerDependencies": {
5
+ "@angular/common": "^18.2.0",
6
+ "@angular/core": "^18.2.0",
7
+ "@colsen1991/ngx-translate-extract-marker": "^2.0.8",
8
+ "@yuuvis/media-viewer": "0.9.2"
9
+ },
10
+ "allowedNonPeerDependencies": {
11
+ "@yuuvis/client-framework": "latest",
12
+ "@yuuvis/client-core": "latest",
13
+ "@yuuvis/client-shell": "latest",
14
+ "@yuuvis/client-core-shell": "latest",
15
+ "@yuuvis/components": "18.1.12",
16
+ "tslib": "^2.6.2"
17
+ },
18
+ "sideEffects": false,
19
+ "module": "fesm2022/yuuvis-app-drive.mjs",
20
+ "typings": "index.d.ts",
21
+ "exports": {
22
+ "./package.json": {
23
+ "default": "./package.json"
24
+ },
25
+ ".": {
26
+ "types": "./index.d.ts",
27
+ "esm2022": "./esm2022/yuuvis-app-drive.mjs",
28
+ "esm": "./esm2022/yuuvis-app-drive.mjs",
29
+ "default": "./fesm2022/yuuvis-app-drive.mjs"
30
+ },
31
+ "./extensions": {
32
+ "types": "./extensions/index.d.ts",
33
+ "esm2022": "./esm2022/extensions/yuuvis-app-drive-extensions.mjs",
34
+ "esm": "./esm2022/extensions/yuuvis-app-drive-extensions.mjs",
35
+ "default": "./fesm2022/yuuvis-app-drive-extensions.mjs"
36
+ }
37
+ },
38
+ "dependencies": {
39
+ "tslib": "^2.3.0"
40
+ }
41
+ }