@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
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { CommonModule } from '@angular/common';
|
|
2
|
+
import { Component, inject, signal } from '@angular/core';
|
|
3
|
+
import { TranslateModule, TranslateService } from '@yuuvis/client-core';
|
|
4
|
+
import { YvcOverlayRef } from '@yuuvis/components/overlay';
|
|
5
|
+
import { DriveService } from '../../../services/drive/drive.service';
|
|
6
|
+
import { ObjectNameComponent } from '../../object-name/object-name.component';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
import * as i1 from "@yuuvis/client-core";
|
|
9
|
+
export class CreateFolderComponent {
|
|
10
|
+
constructor() {
|
|
11
|
+
this.drive = inject(DriveService);
|
|
12
|
+
this.translate = inject(TranslateService);
|
|
13
|
+
this.parentModalRef = inject(YvcOverlayRef);
|
|
14
|
+
this.busy = signal(false);
|
|
15
|
+
}
|
|
16
|
+
createFolder(name) {
|
|
17
|
+
this.message = undefined;
|
|
18
|
+
if (name) {
|
|
19
|
+
this.busy.set(true);
|
|
20
|
+
this.drive.createFolder(name).subscribe((res) => {
|
|
21
|
+
if (res.error) {
|
|
22
|
+
switch (res.error) {
|
|
23
|
+
case 'nameExists':
|
|
24
|
+
this.message = this.translate.instant('yuv.app.drive.create.error.name.exist');
|
|
25
|
+
break;
|
|
26
|
+
default:
|
|
27
|
+
this.message = this.translate.instant('yuv.app.drive.create.error');
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
this.close();
|
|
32
|
+
}
|
|
33
|
+
}).add(() => this.busy.set(false));
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
close() {
|
|
37
|
+
this.parentModalRef.close();
|
|
38
|
+
}
|
|
39
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CreateFolderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
40
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: CreateFolderComponent, isStandalone: true, selector: "ymd-create-folder", host: { properties: { "class.busy": "busy()" } }, ngImport: i0, template: "<div class=\"yuv-loader-linear\"></div>\n\n<ymd-object-name [disabled]=\"busy()\"\n [headline]=\"'yuv.app.drive.folder.create.headline' | translate\"\n [submitButton]=\"'yuv.app.drive.folder.create.submit' | translate\"\n [cancelButton]=\"'yuv.app.drive.action.rename.cancel' | translate\"\n (onClose)=\"close()\"\n (nameChange)=\"createFolder($event)\"\n></ymd-object-name>\n\n@if (message) {\n <div class=\"message\">{{message}}</div>\n}", styles: [":host{display:block;position:relative}:host .yuv-loader-linear{position:absolute;inset-inline-start:0;inset-inline-end:0;inset-block-start:0;opacity:0}:host ymd-object-name{display:block;padding:var(--app-pane-padding)}:host.busy .yuv-loader-linear{opacity:1}:host .message{padding:var(--app-pane-padding);background-color:var(--panel-background-lightgrey);border-block-start:1px solid var(--panel-divider-color)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: ObjectNameComponent, selector: "ymd-object-name", inputs: ["headline", "submitButton", "cancelButton", "isFile", "isRename", "item", "disabled"], outputs: ["nameChange", "onClose"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }] }); }
|
|
41
|
+
}
|
|
42
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CreateFolderComponent, decorators: [{
|
|
43
|
+
type: Component,
|
|
44
|
+
args: [{ selector: 'ymd-create-folder', standalone: true, imports: [CommonModule, ObjectNameComponent, TranslateModule], host: {
|
|
45
|
+
'[class.busy]': 'busy()'
|
|
46
|
+
}, template: "<div class=\"yuv-loader-linear\"></div>\n\n<ymd-object-name [disabled]=\"busy()\"\n [headline]=\"'yuv.app.drive.folder.create.headline' | translate\"\n [submitButton]=\"'yuv.app.drive.folder.create.submit' | translate\"\n [cancelButton]=\"'yuv.app.drive.action.rename.cancel' | translate\"\n (onClose)=\"close()\"\n (nameChange)=\"createFolder($event)\"\n></ymd-object-name>\n\n@if (message) {\n <div class=\"message\">{{message}}</div>\n}", styles: [":host{display:block;position:relative}:host .yuv-loader-linear{position:absolute;inset-inline-start:0;inset-inline-end:0;inset-block-start:0;opacity:0}:host ymd-object-name{display:block;padding:var(--app-pane-padding)}:host.busy .yuv-loader-linear{opacity:1}:host .message{padding:var(--app-pane-padding);background-color:var(--panel-background-lightgrey);border-block-start:1px solid var(--panel-divider-color)}\n"] }]
|
|
47
|
+
}] });
|
|
48
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWZvbGRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FwcHMvZHJpdmUvc3JjL2xpYi9jb21wb25lbnRzL292ZXJsYXkvY3JlYXRlLWZvbGRlci9jcmVhdGUtZm9sZGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYXBwcy9kcml2ZS9zcmMvbGliL2NvbXBvbmVudHMvb3ZlcmxheS9jcmVhdGUtZm9sZGVyL2NyZWF0ZS1mb2xkZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRCxPQUFPLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDeEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRTNELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUNyRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQzs7O0FBWTlFLE1BQU0sT0FBTyxxQkFBcUI7SUFWbEM7UUFXVSxVQUFLLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQzdCLGNBQVMsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUNyQyxtQkFBYyxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUUvQyxTQUFJLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0tBMkJ0QjtJQXZCQyxZQUFZLENBQUMsSUFBWTtRQUN2QixJQUFJLENBQUMsT0FBTyxHQUFHLFNBQVMsQ0FBQztRQUN6QixJQUFJLElBQUksRUFBRSxDQUFDO1lBQ1QsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDcEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBaUIsRUFBRSxFQUFFO2dCQUM1RCxJQUFJLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQztvQkFDZCxRQUFRLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQzt3QkFDbEIsS0FBSyxZQUFZOzRCQUNmLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsdUNBQXVDLENBQUMsQ0FBQzs0QkFDL0UsTUFBTTt3QkFDUjs0QkFDRSxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLDRCQUE0QixDQUFDLENBQUM7b0JBQ3hFLENBQUM7Z0JBQ0gsQ0FBQztxQkFBTSxDQUFDO29CQUNOLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDZixDQUFDO1lBQ0gsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDckMsQ0FBQztJQUNILENBQUM7SUFFRCxLQUFLO1FBQ0gsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUM5QixDQUFDOytHQS9CVSxxQkFBcUI7bUdBQXJCLHFCQUFxQiwrSENsQmxDLCtiQVlDLHdkRERXLFlBQVksK0JBQUUsbUJBQW1CLCtMQUFFLGVBQWU7OzRGQU9qRCxxQkFBcUI7a0JBVmpDLFNBQVM7K0JBQ0UsbUJBQW1CLGNBQ2pCLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxtQkFBbUIsRUFBRSxlQUFlLENBQUMsUUFHdkQ7d0JBQ0osY0FBYyxFQUFFLFFBQVE7cUJBQ3pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgaW5qZWN0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSwgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0B5dXV2aXMvY2xpZW50LWNvcmUnO1xuaW1wb3J0IHsgWXZjT3ZlcmxheVJlZiB9IGZyb20gJ0B5dXV2aXMvY29tcG9uZW50cy9vdmVybGF5JztcbmltcG9ydCB7IENyZWF0ZVJlc3VsdCB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2RyaXZlL2RyaXZlLmludGVyZmFjZSc7XG5pbXBvcnQgeyBEcml2ZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9kcml2ZS9kcml2ZS5zZXJ2aWNlJztcbmltcG9ydCB7IE9iamVjdE5hbWVDb21wb25lbnQgfSBmcm9tICcuLi8uLi9vYmplY3QtbmFtZS9vYmplY3QtbmFtZS5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd5bWQtY3JlYXRlLWZvbGRlcicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIE9iamVjdE5hbWVDb21wb25lbnQsIFRyYW5zbGF0ZU1vZHVsZV0sXG4gIHRlbXBsYXRlVXJsOiAnLi9jcmVhdGUtZm9sZGVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2NyZWF0ZS1mb2xkZXIuY29tcG9uZW50LnNjc3MnLFxuICBob3N0OiB7XG4gICAgJ1tjbGFzcy5idXN5XSc6ICdidXN5KCknXG4gIH1cbn0pXG5leHBvcnQgY2xhc3MgQ3JlYXRlRm9sZGVyQ29tcG9uZW50IHtcbiAgcHJpdmF0ZSBkcml2ZSA9IGluamVjdChEcml2ZVNlcnZpY2UpO1xuICBwcml2YXRlIHRyYW5zbGF0ZSA9IGluamVjdChUcmFuc2xhdGVTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBwYXJlbnRNb2RhbFJlZiA9IGluamVjdChZdmNPdmVybGF5UmVmKTtcblxuICBidXN5ID0gc2lnbmFsKGZhbHNlKTtcblxuICBtZXNzYWdlPzogc3RyaW5nO1xuXG4gIGNyZWF0ZUZvbGRlcihuYW1lOiBzdHJpbmcpIHtcbiAgICB0aGlzLm1lc3NhZ2UgPSB1bmRlZmluZWQ7XG4gICAgaWYgKG5hbWUpIHtcbiAgICAgIHRoaXMuYnVzeS5zZXQodHJ1ZSk7XG4gICAgICB0aGlzLmRyaXZlLmNyZWF0ZUZvbGRlcihuYW1lKS5zdWJzY3JpYmUoKHJlczogQ3JlYXRlUmVzdWx0KSA9PiB7XG4gICAgICAgIGlmIChyZXMuZXJyb3IpIHtcbiAgICAgICAgICBzd2l0Y2ggKHJlcy5lcnJvcikge1xuICAgICAgICAgICAgY2FzZSAnbmFtZUV4aXN0cyc6XG4gICAgICAgICAgICAgIHRoaXMubWVzc2FnZSA9IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ3l1di5hcHAuZHJpdmUuY3JlYXRlLmVycm9yLm5hbWUuZXhpc3QnKTtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICB0aGlzLm1lc3NhZ2UgPSB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCd5dXYuYXBwLmRyaXZlLmNyZWF0ZS5lcnJvcicpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICAgIH1cbiAgICAgIH0pLmFkZCgoKSA9PiB0aGlzLmJ1c3kuc2V0KGZhbHNlKSk7XG4gICAgfVxuICB9XG5cbiAgY2xvc2UoKSB7XG4gICAgdGhpcy5wYXJlbnRNb2RhbFJlZi5jbG9zZSgpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwieXV2LWxvYWRlci1saW5lYXJcIj48L2Rpdj5cblxuPHltZC1vYmplY3QtbmFtZSBbZGlzYWJsZWRdPVwiYnVzeSgpXCJcbiAgW2hlYWRsaW5lXT1cIid5dXYuYXBwLmRyaXZlLmZvbGRlci5jcmVhdGUuaGVhZGxpbmUnIHwgdHJhbnNsYXRlXCJcbiAgW3N1Ym1pdEJ1dHRvbl09XCIneXV2LmFwcC5kcml2ZS5mb2xkZXIuY3JlYXRlLnN1Ym1pdCcgfCB0cmFuc2xhdGVcIlxuICBbY2FuY2VsQnV0dG9uXT1cIid5dXYuYXBwLmRyaXZlLmFjdGlvbi5yZW5hbWUuY2FuY2VsJyB8IHRyYW5zbGF0ZVwiXG4gIChvbkNsb3NlKT1cImNsb3NlKClcIlxuICAobmFtZUNoYW5nZSk9XCJjcmVhdGVGb2xkZXIoJGV2ZW50KVwiXG4+PC95bWQtb2JqZWN0LW5hbWU+XG5cbkBpZiAobWVzc2FnZSkge1xuICA8ZGl2IGNsYXNzPVwibWVzc2FnZVwiPnt7bWVzc2FnZX19PC9kaXY+XG59Il19
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { CommonModule } from '@angular/common';
|
|
2
|
+
import { Component, inject } from '@angular/core';
|
|
3
|
+
import { TranslateModule } from '@yuuvis/client-core';
|
|
4
|
+
import { YvcOverlayRef } from '@yuuvis/components/overlay';
|
|
5
|
+
import { DriveService } from '../../services/drive/drive.service';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "@yuuvis/client-core";
|
|
8
|
+
export class PasteFromClipboardComponent {
|
|
9
|
+
constructor() {
|
|
10
|
+
this.overlayRef = inject(YvcOverlayRef);
|
|
11
|
+
this.drive = inject(DriveService);
|
|
12
|
+
this.data = this.overlayRef.data;
|
|
13
|
+
}
|
|
14
|
+
uploadFromClipboard() {
|
|
15
|
+
this.drive.checkNamesAndUpload(this.data.files).subscribe();
|
|
16
|
+
this.overlayRef.close();
|
|
17
|
+
}
|
|
18
|
+
cancel() {
|
|
19
|
+
this.overlayRef.close();
|
|
20
|
+
}
|
|
21
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PasteFromClipboardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
22
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: PasteFromClipboardComponent, isStandalone: true, selector: "ymd-paste-from-clipboard", ngImport: i0, template: "<main>\n <p>{{ 'yuv.app.drive.paste-from-clipboard.message' | translate }}</p>\n <ol>\n @for (f of data.files; track $index) {\n <li>{{ f.name }}</li>\n }\n </ol>\n</main>\n\n<footer>\n <button class=\"primary\" (click)=\"uploadFromClipboard()\">{{ 'yuv.app.drive.paste-from-clipboard.button.paste' | translate }}</button>\n <button class=\"secondary\" (click)=\"cancel()\">{{ 'yuv.app.drive.paste-from-clipboard.button.cancel' | translate }}</button>\n</footer>\n", styles: [":host{display:grid;grid-template-rows:1fr auto;grid-template-areas:\"main\" \"footer\";padding:var(--app-pane-padding)}:host main{grid-area:main;overflow-y:auto}:host footer{grid-area:footer;display:flex;flex-flow:row-reverse;justify-content:space-between;align-items:center}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }] }); }
|
|
23
|
+
}
|
|
24
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PasteFromClipboardComponent, decorators: [{
|
|
25
|
+
type: Component,
|
|
26
|
+
args: [{ selector: 'ymd-paste-from-clipboard', standalone: true, imports: [CommonModule, TranslateModule], template: "<main>\n <p>{{ 'yuv.app.drive.paste-from-clipboard.message' | translate }}</p>\n <ol>\n @for (f of data.files; track $index) {\n <li>{{ f.name }}</li>\n }\n </ol>\n</main>\n\n<footer>\n <button class=\"primary\" (click)=\"uploadFromClipboard()\">{{ 'yuv.app.drive.paste-from-clipboard.button.paste' | translate }}</button>\n <button class=\"secondary\" (click)=\"cancel()\">{{ 'yuv.app.drive.paste-from-clipboard.button.cancel' | translate }}</button>\n</footer>\n", styles: [":host{display:grid;grid-template-rows:1fr auto;grid-template-areas:\"main\" \"footer\";padding:var(--app-pane-padding)}:host main{grid-area:main;overflow-y:auto}:host footer{grid-area:footer;display:flex;flex-flow:row-reverse;justify-content:space-between;align-items:center}\n"] }]
|
|
27
|
+
}] });
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFzdGUtZnJvbS1jbGlwYm9hcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hcHBzL2RyaXZlL3NyYy9saWIvY29tcG9uZW50cy9wYXN0ZS1mcm9tLWNsaXBib2FyZC9wYXN0ZS1mcm9tLWNsaXBib2FyZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FwcHMvZHJpdmUvc3JjL2xpYi9jb21wb25lbnRzL3Bhc3RlLWZyb20tY2xpcGJvYXJkL3Bhc3RlLWZyb20tY2xpcGJvYXJkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRTNELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7O0FBU2xFLE1BQU0sT0FBTywyQkFBMkI7SUFQeEM7UUFRVSxlQUFVLEdBQUcsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ25DLFVBQUssR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7UUFFckMsU0FBSSxHQUdBLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDO0tBVTFCO0lBUkMsbUJBQW1CO1FBQ2pCLElBQUksQ0FBQyxLQUFLLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQTtRQUMzRCxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRCxNQUFNO1FBQ0osSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUMxQixDQUFDOytHQWhCVSwyQkFBMkI7bUdBQTNCLDJCQUEyQixvRkNkeEMsa2VBYUEsOFVESFksWUFBWSw4QkFBRSxlQUFlOzs0RkFJNUIsMkJBQTJCO2tCQVB2QyxTQUFTOytCQUNFLDBCQUEwQixjQUN4QixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsZUFBZSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAeXV1dmlzL2NsaWVudC1jb3JlJztcbmltcG9ydCB7IFl2Y092ZXJsYXlSZWYgfSBmcm9tICdAeXV1dmlzL2NvbXBvbmVudHMvb3ZlcmxheSc7XG5pbXBvcnQgeyBDcmVhdGVSZXN1bHQgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9kcml2ZS9kcml2ZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgRHJpdmVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZHJpdmUvZHJpdmUuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ltZC1wYXN0ZS1mcm9tLWNsaXBib2FyZCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFRyYW5zbGF0ZU1vZHVsZV0sXG4gIHRlbXBsYXRlVXJsOiAnLi9wYXN0ZS1mcm9tLWNsaXBib2FyZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9wYXN0ZS1mcm9tLWNsaXBib2FyZC5jb21wb25lbnQuc2Nzcydcbn0pXG5leHBvcnQgY2xhc3MgUGFzdGVGcm9tQ2xpcGJvYXJkQ29tcG9uZW50IHtcbiAgcHJpdmF0ZSBvdmVybGF5UmVmID0gaW5qZWN0KFl2Y092ZXJsYXlSZWYpO1xuICBwcml2YXRlIGRyaXZlID0gaW5qZWN0KERyaXZlU2VydmljZSk7XG5cbiAgZGF0YToge1xuICAgIHBhcmVudElkOiBzdHJpbmc7XG4gICAgZmlsZXM6IEZpbGVbXTtcbiAgfSA9IHRoaXMub3ZlcmxheVJlZi5kYXRhO1xuXG4gIHVwbG9hZEZyb21DbGlwYm9hcmQoKSB7XG4gICAgdGhpcy5kcml2ZS5jaGVja05hbWVzQW5kVXBsb2FkKHRoaXMuZGF0YS5maWxlcykuc3Vic2NyaWJlKClcbiAgICB0aGlzLm92ZXJsYXlSZWYuY2xvc2UoKTtcbiAgfVxuXG4gIGNhbmNlbCgpIHtcbiAgICB0aGlzLm92ZXJsYXlSZWYuY2xvc2UoKTtcbiAgfVxufVxuIiwiPG1haW4+XG4gIDxwPnt7ICd5dXYuYXBwLmRyaXZlLnBhc3RlLWZyb20tY2xpcGJvYXJkLm1lc3NhZ2UnIHwgdHJhbnNsYXRlIH19PC9wPlxuICA8b2w+XG4gICAgQGZvciAoZiBvZiBkYXRhLmZpbGVzOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgIDxsaT57eyBmLm5hbWUgfX08L2xpPlxuICAgIH1cbiAgPC9vbD5cbjwvbWFpbj5cblxuPGZvb3Rlcj5cbiAgPGJ1dHRvbiBjbGFzcz1cInByaW1hcnlcIiAoY2xpY2spPVwidXBsb2FkRnJvbUNsaXBib2FyZCgpXCI+e3sgJ3l1di5hcHAuZHJpdmUucGFzdGUtZnJvbS1jbGlwYm9hcmQuYnV0dG9uLnBhc3RlJyB8IHRyYW5zbGF0ZSB9fTwvYnV0dG9uPlxuICA8YnV0dG9uIGNsYXNzPVwic2Vjb25kYXJ5XCIgKGNsaWNrKT1cImNhbmNlbCgpXCI+e3sgJ3l1di5hcHAuZHJpdmUucGFzdGUtZnJvbS1jbGlwYm9hcmQuYnV0dG9uLmNhbmNlbCcgfCB0cmFuc2xhdGUgfX08L2J1dHRvbj5cbjwvZm9vdGVyPlxuIl19
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import { CommonModule } from '@angular/common';
|
|
2
|
+
import { Component, contentChild, effect, inject, input, ViewEncapsulation } from '@angular/core';
|
|
3
|
+
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
4
|
+
import { ClipboardService } from '@yuuvis/client-core';
|
|
5
|
+
import { ActionsService } from '@yuuvis/client-framework/actions';
|
|
6
|
+
import { ClipboardComponent } from '@yuuvis/client-framework/clipboard';
|
|
7
|
+
import { YvcOverflowMenuComponent } from '@yuuvis/components/overflow-menu';
|
|
8
|
+
import { ACTION_CONTEXT, APP_ID } from '../../drive.schema';
|
|
9
|
+
import { DriveService } from '../../services';
|
|
10
|
+
import { finalize } from 'rxjs';
|
|
11
|
+
import * as i0 from "@angular/core";
|
|
12
|
+
import * as i1 from "@angular/common";
|
|
13
|
+
export class RibbonComponent {
|
|
14
|
+
#drive;
|
|
15
|
+
#clipboard;
|
|
16
|
+
#actionsService;
|
|
17
|
+
#objectsEffect;
|
|
18
|
+
constructor() {
|
|
19
|
+
this.primarySlot = contentChild('primaryActions');
|
|
20
|
+
this.secondarySlot = contentChild('secondaryActions');
|
|
21
|
+
this.#drive = inject(DriveService);
|
|
22
|
+
this.#clipboard = inject(ClipboardService);
|
|
23
|
+
this.#actionsService = inject(ActionsService);
|
|
24
|
+
this._defaultMenuItems = this.#drive.getDefaultRibbonActions().map((a) => ({
|
|
25
|
+
id: a.id,
|
|
26
|
+
icon: a.icon,
|
|
27
|
+
label: a.label,
|
|
28
|
+
disabled: true,
|
|
29
|
+
group: 'default',
|
|
30
|
+
callback: () => this.executeAction(a)
|
|
31
|
+
}));
|
|
32
|
+
this.clipboardBucket = APP_ID;
|
|
33
|
+
this.busy = input(false);
|
|
34
|
+
this.enableClipboard = input(false);
|
|
35
|
+
this.menuItems = this._defaultMenuItems;
|
|
36
|
+
this.objects = input();
|
|
37
|
+
this.#objectsEffect = effect(() => {
|
|
38
|
+
this.menuItems = this._defaultMenuItems;
|
|
39
|
+
this.#getActionsAndSetupItems(this.objects() || []);
|
|
40
|
+
});
|
|
41
|
+
this.excludeActions = input();
|
|
42
|
+
this.#clipboard
|
|
43
|
+
.clipboard$(this.clipboardBucket)
|
|
44
|
+
.pipe(takeUntilDestroyed())
|
|
45
|
+
.subscribe({
|
|
46
|
+
next: () => this.#getActionsAndSetupItems(this.objects() || [])
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
#getActionsAndSetupItems(objects) {
|
|
50
|
+
this.#actionsService
|
|
51
|
+
.getActions(objects, {
|
|
52
|
+
context: ACTION_CONTEXT,
|
|
53
|
+
exclude: this.excludeActions()
|
|
54
|
+
})
|
|
55
|
+
.subscribe({ next: (res) => this._setupMenuItems(res) });
|
|
56
|
+
}
|
|
57
|
+
executeAction(a) {
|
|
58
|
+
const o = this.objects();
|
|
59
|
+
if (o && this._isAction(a))
|
|
60
|
+
a.run(o);
|
|
61
|
+
}
|
|
62
|
+
onClipboardPaste() {
|
|
63
|
+
this.#drive.setBusy(true);
|
|
64
|
+
this.#drive
|
|
65
|
+
.pasteFromClipboard()
|
|
66
|
+
.pipe(finalize(() => this.#drive.setBusy(false)))
|
|
67
|
+
.subscribe({
|
|
68
|
+
next: () => this.#clipboard.clear(this.clipboardBucket)
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
_isAction(a) {
|
|
72
|
+
return !!a['run'];
|
|
73
|
+
}
|
|
74
|
+
_setupMenuItems(actions) {
|
|
75
|
+
// en-/disable default actions
|
|
76
|
+
this._defaultMenuItems.forEach((mi) => {
|
|
77
|
+
mi.disabled = !actions.find((a) => a.id === mi.id);
|
|
78
|
+
});
|
|
79
|
+
const defaultActionIds = this._defaultMenuItems.map((mi) => mi.id);
|
|
80
|
+
this.menuItems = [
|
|
81
|
+
...this._defaultMenuItems,
|
|
82
|
+
...actions
|
|
83
|
+
.filter((a) => !defaultActionIds.includes(a.id))
|
|
84
|
+
.map((a) => ({
|
|
85
|
+
id: a.id,
|
|
86
|
+
icon: a.icon,
|
|
87
|
+
label: a.label,
|
|
88
|
+
group: 'aside',
|
|
89
|
+
callback: () => this.executeAction(a)
|
|
90
|
+
}))
|
|
91
|
+
];
|
|
92
|
+
}
|
|
93
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RibbonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
94
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: RibbonComponent, isStandalone: true, selector: "ymd-ribbon", inputs: { busy: { classPropertyName: "busy", publicName: "busy", isSignal: true, isRequired: false, transformFunction: null }, enableClipboard: { classPropertyName: "enableClipboard", publicName: "enableClipboard", isSignal: true, isRequired: false, transformFunction: null }, objects: { classPropertyName: "objects", publicName: "objects", isSignal: true, isRequired: false, transformFunction: null }, excludeActions: { classPropertyName: "excludeActions", publicName: "excludeActions", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: "ymd-ribbon" }, queries: [{ propertyName: "primarySlot", first: true, predicate: ["primaryActions"], descendants: true, isSignal: true }, { propertyName: "secondarySlot", first: true, predicate: ["secondaryActions"], descendants: true, isSignal: true }], ngImport: i0, template: "@let primary = primarySlot();\n@let secondary = secondarySlot();\n\n@if (primary) {\n <div class=\"primary-actions\">\n <ng-container [ngTemplateOutlet]=\"primary\"></ng-container>\n </div>\n}\n\n<div class=\"object-actions\">\n @if (enableClipboard()) {\n <yuv-clipboard class=\"dark\" [bucket]=\"clipboardBucket\" [enablePaste]=\"true\" (paste)=\"onClipboardPaste()\"></yuv-clipboard>\n }\n <yvc-overflow-menu [hideLabels]=\"true\" [menuItems]=\"menuItems\"></yvc-overflow-menu>\n</div>\n\n@if (secondary) {\n <div class=\"secondary-actions\">\n <ng-container [ngTemplateOutlet]=\"secondary\"></ng-container>\n </div>\n}\n\n@if (busy()) {\n <div class=\"yuv-loader-linear\"></div>\n}\n", styles: ["ymd-ribbon{--ribbon-button-padding: calc(var(--app-pane-padding) / 4);--ribbon-button-border-radius: 2px;--ribbon-button-gap: calc(var(--app-pane-padding) / 4);--ribbon-icon-size: 20px;flex:0 0 auto;display:grid;grid-template-columns:auto 1fr auto;grid-template-areas:\"primary actions sort secondary\";align-items:center;gap:calc(var(--app-pane-padding) / 2);border-block-end:1px solid var(--panel-divider-color);position:relative;padding:calc(var(--app-pane-padding) / 4) calc(var(--app-pane-padding) / 2)}ymd-ribbon .primary-actions{grid-area:primary;overflow-x:auto}ymd-ribbon .secondary-actions{grid-area:secondary;overflow-x:auto}ymd-ribbon .object-actions{grid-area:actions;align-self:stretch;overflow-x:auto;border-color:var(--panel-divider-color);border-width:0 1px 0 1px;border-style:solid;display:grid;grid-template-rows:1fr;grid-template-columns:1fr;align-items:center}ymd-ribbon .object-actions yvc-overflow-menu{--menu-item-padding: var(--ribbon-button-padding);--menu-item-icon-size: var(--ribbon-icon-size);--menu-item-gap: var(--ribbon-button-gap);--menu-item-max-label-width: 10ch;grid-row:1;grid-column:1}ymd-ribbon .object-actions yuv-clipboard{--clipboard-background-color: var(--panel-divider-color);margin-inline:calc(var(--app-pane-padding) / 2);height:100%;grid-row:1;grid-column:1;z-index:1}ymd-ribbon .object-actions ymd-sort{grid-row:1;grid-column:1}ymd-ribbon .sort-column{grid-area:sort;display:flex;align-items:center;gap:var(--ribbon-button-gap);padding:0 var(--ribbon-button-padding)}ymd-ribbon .yuv-loader-linear{position:absolute;bottom:-2px;left:0;right:0;width:auto;height:2px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ClipboardComponent, selector: "yuv-clipboard", inputs: ["enablePaste", "bucket"], outputs: ["paste"] }, { kind: "component", type: YvcOverflowMenuComponent, selector: "yvc-overflow-menu", inputs: ["overflowIcon", "groupLabels", "menuItems", "hideLabels"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
95
|
+
}
|
|
96
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RibbonComponent, decorators: [{
|
|
97
|
+
type: Component,
|
|
98
|
+
args: [{ selector: 'ymd-ribbon', standalone: true, imports: [CommonModule, ClipboardComponent, YvcOverflowMenuComponent], encapsulation: ViewEncapsulation.None, host: {
|
|
99
|
+
class: 'ymd-ribbon'
|
|
100
|
+
}, template: "@let primary = primarySlot();\n@let secondary = secondarySlot();\n\n@if (primary) {\n <div class=\"primary-actions\">\n <ng-container [ngTemplateOutlet]=\"primary\"></ng-container>\n </div>\n}\n\n<div class=\"object-actions\">\n @if (enableClipboard()) {\n <yuv-clipboard class=\"dark\" [bucket]=\"clipboardBucket\" [enablePaste]=\"true\" (paste)=\"onClipboardPaste()\"></yuv-clipboard>\n }\n <yvc-overflow-menu [hideLabels]=\"true\" [menuItems]=\"menuItems\"></yvc-overflow-menu>\n</div>\n\n@if (secondary) {\n <div class=\"secondary-actions\">\n <ng-container [ngTemplateOutlet]=\"secondary\"></ng-container>\n </div>\n}\n\n@if (busy()) {\n <div class=\"yuv-loader-linear\"></div>\n}\n", styles: ["ymd-ribbon{--ribbon-button-padding: calc(var(--app-pane-padding) / 4);--ribbon-button-border-radius: 2px;--ribbon-button-gap: calc(var(--app-pane-padding) / 4);--ribbon-icon-size: 20px;flex:0 0 auto;display:grid;grid-template-columns:auto 1fr auto;grid-template-areas:\"primary actions sort secondary\";align-items:center;gap:calc(var(--app-pane-padding) / 2);border-block-end:1px solid var(--panel-divider-color);position:relative;padding:calc(var(--app-pane-padding) / 4) calc(var(--app-pane-padding) / 2)}ymd-ribbon .primary-actions{grid-area:primary;overflow-x:auto}ymd-ribbon .secondary-actions{grid-area:secondary;overflow-x:auto}ymd-ribbon .object-actions{grid-area:actions;align-self:stretch;overflow-x:auto;border-color:var(--panel-divider-color);border-width:0 1px 0 1px;border-style:solid;display:grid;grid-template-rows:1fr;grid-template-columns:1fr;align-items:center}ymd-ribbon .object-actions yvc-overflow-menu{--menu-item-padding: var(--ribbon-button-padding);--menu-item-icon-size: var(--ribbon-icon-size);--menu-item-gap: var(--ribbon-button-gap);--menu-item-max-label-width: 10ch;grid-row:1;grid-column:1}ymd-ribbon .object-actions yuv-clipboard{--clipboard-background-color: var(--panel-divider-color);margin-inline:calc(var(--app-pane-padding) / 2);height:100%;grid-row:1;grid-column:1;z-index:1}ymd-ribbon .object-actions ymd-sort{grid-row:1;grid-column:1}ymd-ribbon .sort-column{grid-area:sort;display:flex;align-items:center;gap:var(--ribbon-button-gap);padding:0 var(--ribbon-button-padding)}ymd-ribbon .yuv-loader-linear{position:absolute;bottom:-2px;left:0;right:0;width:auto;height:2px}\n"] }]
|
|
101
|
+
}], ctorParameters: () => [] });
|
|
102
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmliYm9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYXBwcy9kcml2ZS9zcmMvbGliL2NvbXBvbmVudHMvcmliYm9uL3JpYmJvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FwcHMvZHJpdmUvc3JjL2xpYi9jb21wb25lbnRzL3JpYmJvbi9yaWJib24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFlLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9HLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBYSxNQUFNLHFCQUFxQixDQUFDO0FBQ2xFLE9BQU8sRUFBVSxjQUFjLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUMxRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN4RSxPQUFPLEVBQVksd0JBQXdCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUN0RixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzVELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7QUFhaEMsTUFBTSxPQUFPLGVBQWU7SUFJMUIsTUFBTSxDQUF3QjtJQUM5QixVQUFVLENBQTRCO0lBQ3RDLGVBQWUsQ0FBMEI7SUFnQnpDLGNBQWMsQ0FHWDtJQUlIO1FBNUJBLGdCQUFXLEdBQUcsWUFBWSxDQUFtQixnQkFBZ0IsQ0FBQyxDQUFDO1FBQy9ELGtCQUFhLEdBQUcsWUFBWSxDQUFtQixrQkFBa0IsQ0FBQyxDQUFDO1FBRW5FLFdBQU0sR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDOUIsZUFBVSxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ3RDLG9CQUFlLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBRWpDLHNCQUFpQixHQUFlLElBQUksQ0FBQyxNQUFNLENBQUMsdUJBQXVCLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDeEYsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFO1lBQ1IsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJO1lBQ1osS0FBSyxFQUFFLENBQUMsQ0FBQyxLQUFLO1lBQ2QsUUFBUSxFQUFFLElBQUk7WUFDZCxLQUFLLEVBQUUsU0FBUztZQUNoQixRQUFRLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7U0FDdEMsQ0FBQyxDQUFDLENBQUM7UUFDSixvQkFBZSxHQUFHLE1BQU0sQ0FBQztRQUN6QixTQUFJLEdBQUcsS0FBSyxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBQzdCLG9CQUFlLEdBQUcsS0FBSyxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBQ3hDLGNBQVMsR0FBZSxJQUFJLENBQUMsaUJBQWlCLENBQUM7UUFFL0MsWUFBTyxHQUFHLEtBQUssRUFBZSxDQUFDO1FBQy9CLG1CQUFjLEdBQUcsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUMzQixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztZQUN4QyxJQUFJLENBQUMsd0JBQXdCLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ3RELENBQUMsQ0FBQyxDQUFDO1FBRUgsbUJBQWMsR0FBRyxLQUFLLEVBQVksQ0FBQztRQUdqQyxJQUFJLENBQUMsVUFBVTthQUNaLFVBQVUsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDO2FBQ2hDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO2FBQzFCLFNBQVMsQ0FBQztZQUNULElBQUksRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsd0JBQXdCLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQztTQUNoRSxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsd0JBQXdCLENBQUMsT0FBb0I7UUFDM0MsSUFBSSxDQUFDLGVBQWU7YUFDakIsVUFBVSxDQUFDLE9BQU8sRUFBRTtZQUNuQixPQUFPLEVBQUUsY0FBYztZQUN2QixPQUFPLEVBQUUsSUFBSSxDQUFDLGNBQWMsRUFBRTtTQUMvQixDQUFDO2FBQ0QsU0FBUyxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRUQsYUFBYSxDQUFDLENBQVM7UUFDckIsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO1lBQUcsQ0FBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRUQsZ0JBQWdCO1FBQ2QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDMUIsSUFBSSxDQUFDLE1BQU07YUFDUixrQkFBa0IsRUFBRTthQUNwQixJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7YUFDaEQsU0FBUyxDQUFDO1lBQ1QsSUFBSSxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUM7U0FDeEQsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVPLFNBQVMsQ0FBQyxDQUFNO1FBQ3RCLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNwQixDQUFDO0lBRU8sZUFBZSxDQUFDLE9BQWlCO1FBQ3ZDLDhCQUE4QjtRQUM5QixJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUU7WUFDcEMsRUFBRSxDQUFDLFFBQVEsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3JELENBQUMsQ0FBQyxDQUFDO1FBRUgsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDbkUsSUFBSSxDQUFDLFNBQVMsR0FBRztZQUNmLEdBQUcsSUFBSSxDQUFDLGlCQUFpQjtZQUN6QixHQUFHLE9BQU87aUJBQ1AsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7aUJBQy9DLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztnQkFDWCxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUU7Z0JBQ1IsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJO2dCQUNaLEtBQUssRUFBRSxDQUFDLENBQUMsS0FBSztnQkFDZCxLQUFLLEVBQUUsT0FBTztnQkFDZCxRQUFRLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7YUFDdEMsQ0FBQyxDQUFDO1NBQ04sQ0FBQztJQUNKLENBQUM7K0dBckZVLGVBQWU7bUdBQWYsZUFBZSxxNEJDdEI1Qixrc0JBeUJBLHlvRERYWSxZQUFZLHNNQUFFLGtCQUFrQixpSEFBRSx3QkFBd0I7OzRGQVF6RCxlQUFlO2tCQVgzQixTQUFTOytCQUNFLFlBQVksY0FDVixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsa0JBQWtCLEVBQUUsd0JBQXdCLENBQUMsaUJBR3RELGlCQUFpQixDQUFDLElBQUksUUFDL0I7d0JBQ0osS0FBSyxFQUFFLFlBQVk7cUJBQ3BCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgY29udGVudENoaWxkLCBlZmZlY3QsIGluamVjdCwgaW5wdXQsIFRlbXBsYXRlUmVmLCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgQ2xpcGJvYXJkU2VydmljZSwgRG1zT2JqZWN0IH0gZnJvbSAnQHl1dXZpcy9jbGllbnQtY29yZSc7XG5pbXBvcnQgeyBBY3Rpb24sIEFjdGlvbnNTZXJ2aWNlIH0gZnJvbSAnQHl1dXZpcy9jbGllbnQtZnJhbWV3b3JrL2FjdGlvbnMnO1xuaW1wb3J0IHsgQ2xpcGJvYXJkQ29tcG9uZW50IH0gZnJvbSAnQHl1dXZpcy9jbGllbnQtZnJhbWV3b3JrL2NsaXBib2FyZCc7XG5pbXBvcnQgeyBNZW51SXRlbSwgWXZjT3ZlcmZsb3dNZW51Q29tcG9uZW50IH0gZnJvbSAnQHl1dXZpcy9jb21wb25lbnRzL292ZXJmbG93LW1lbnUnO1xuaW1wb3J0IHsgQUNUSU9OX0NPTlRFWFQsIEFQUF9JRCB9IGZyb20gJy4uLy4uL2RyaXZlLnNjaGVtYSc7XG5pbXBvcnQgeyBEcml2ZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcyc7XG5pbXBvcnQgeyBmaW5hbGl6ZSB9IGZyb20gJ3J4anMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd5bWQtcmliYm9uJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgQ2xpcGJvYXJkQ29tcG9uZW50LCBZdmNPdmVyZmxvd01lbnVDb21wb25lbnRdLFxuICB0ZW1wbGF0ZVVybDogJy4vcmliYm9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL3JpYmJvbi5jb21wb25lbnQuc2NzcycsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGhvc3Q6IHtcbiAgICBjbGFzczogJ3ltZC1yaWJib24nXG4gIH1cbn0pXG5leHBvcnQgY2xhc3MgUmliYm9uQ29tcG9uZW50IHtcbiAgcHJpbWFyeVNsb3QgPSBjb250ZW50Q2hpbGQ8VGVtcGxhdGVSZWY8YW55Pj4oJ3ByaW1hcnlBY3Rpb25zJyk7XG4gIHNlY29uZGFyeVNsb3QgPSBjb250ZW50Q2hpbGQ8VGVtcGxhdGVSZWY8YW55Pj4oJ3NlY29uZGFyeUFjdGlvbnMnKTtcblxuICAjZHJpdmUgPSBpbmplY3QoRHJpdmVTZXJ2aWNlKTtcbiAgI2NsaXBib2FyZCA9IGluamVjdChDbGlwYm9hcmRTZXJ2aWNlKTtcbiAgI2FjdGlvbnNTZXJ2aWNlID0gaW5qZWN0KEFjdGlvbnNTZXJ2aWNlKTtcblxuICBwcml2YXRlIF9kZWZhdWx0TWVudUl0ZW1zOiBNZW51SXRlbVtdID0gdGhpcy4jZHJpdmUuZ2V0RGVmYXVsdFJpYmJvbkFjdGlvbnMoKS5tYXAoKGEpID0+ICh7XG4gICAgaWQ6IGEuaWQsXG4gICAgaWNvbjogYS5pY29uLFxuICAgIGxhYmVsOiBhLmxhYmVsLFxuICAgIGRpc2FibGVkOiB0cnVlLFxuICAgIGdyb3VwOiAnZGVmYXVsdCcsXG4gICAgY2FsbGJhY2s6ICgpID0+IHRoaXMuZXhlY3V0ZUFjdGlvbihhKVxuICB9KSk7XG4gIGNsaXBib2FyZEJ1Y2tldCA9IEFQUF9JRDtcbiAgYnVzeSA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcbiAgZW5hYmxlQ2xpcGJvYXJkID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xuICBtZW51SXRlbXM6IE1lbnVJdGVtW10gPSB0aGlzLl9kZWZhdWx0TWVudUl0ZW1zO1xuXG4gIG9iamVjdHMgPSBpbnB1dDxEbXNPYmplY3RbXT4oKTtcbiAgI29iamVjdHNFZmZlY3QgPSBlZmZlY3QoKCkgPT4ge1xuICAgIHRoaXMubWVudUl0ZW1zID0gdGhpcy5fZGVmYXVsdE1lbnVJdGVtcztcbiAgICB0aGlzLiNnZXRBY3Rpb25zQW5kU2V0dXBJdGVtcyh0aGlzLm9iamVjdHMoKSB8fCBbXSk7XG4gIH0pO1xuXG4gIGV4Y2x1ZGVBY3Rpb25zID0gaW5wdXQ8c3RyaW5nW10+KCk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy4jY2xpcGJvYXJkXG4gICAgICAuY2xpcGJvYXJkJCh0aGlzLmNsaXBib2FyZEJ1Y2tldClcbiAgICAgIC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCgpKVxuICAgICAgLnN1YnNjcmliZSh7XG4gICAgICAgIG5leHQ6ICgpID0+IHRoaXMuI2dldEFjdGlvbnNBbmRTZXR1cEl0ZW1zKHRoaXMub2JqZWN0cygpIHx8IFtdKVxuICAgICAgfSk7XG4gIH1cblxuICAjZ2V0QWN0aW9uc0FuZFNldHVwSXRlbXMob2JqZWN0czogRG1zT2JqZWN0W10pIHtcbiAgICB0aGlzLiNhY3Rpb25zU2VydmljZVxuICAgICAgLmdldEFjdGlvbnMob2JqZWN0cywge1xuICAgICAgICBjb250ZXh0OiBBQ1RJT05fQ09OVEVYVCxcbiAgICAgICAgZXhjbHVkZTogdGhpcy5leGNsdWRlQWN0aW9ucygpXG4gICAgICB9KVxuICAgICAgLnN1YnNjcmliZSh7IG5leHQ6IChyZXMpID0+IHRoaXMuX3NldHVwTWVudUl0ZW1zKHJlcykgfSk7XG4gIH1cblxuICBleGVjdXRlQWN0aW9uKGE6IEFjdGlvbikge1xuICAgIGNvbnN0IG8gPSB0aGlzLm9iamVjdHMoKTtcbiAgICBpZiAobyAmJiB0aGlzLl9pc0FjdGlvbihhKSkgKGEgYXMgQWN0aW9uKS5ydW4obyk7XG4gIH1cblxuICBvbkNsaXBib2FyZFBhc3RlKCkge1xuICAgIHRoaXMuI2RyaXZlLnNldEJ1c3kodHJ1ZSk7XG4gICAgdGhpcy4jZHJpdmVcbiAgICAgIC5wYXN0ZUZyb21DbGlwYm9hcmQoKVxuICAgICAgLnBpcGUoZmluYWxpemUoKCkgPT4gdGhpcy4jZHJpdmUuc2V0QnVzeShmYWxzZSkpKVxuICAgICAgLnN1YnNjcmliZSh7XG4gICAgICAgIG5leHQ6ICgpID0+IHRoaXMuI2NsaXBib2FyZC5jbGVhcih0aGlzLmNsaXBib2FyZEJ1Y2tldClcbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfaXNBY3Rpb24oYTogYW55KSB7XG4gICAgcmV0dXJuICEhYVsncnVuJ107XG4gIH1cblxuICBwcml2YXRlIF9zZXR1cE1lbnVJdGVtcyhhY3Rpb25zOiBBY3Rpb25bXSkge1xuICAgIC8vIGVuLS9kaXNhYmxlIGRlZmF1bHQgYWN0aW9uc1xuICAgIHRoaXMuX2RlZmF1bHRNZW51SXRlbXMuZm9yRWFjaCgobWkpID0+IHtcbiAgICAgIG1pLmRpc2FibGVkID0gIWFjdGlvbnMuZmluZCgoYSkgPT4gYS5pZCA9PT0gbWkuaWQpO1xuICAgIH0pO1xuXG4gICAgY29uc3QgZGVmYXVsdEFjdGlvbklkcyA9IHRoaXMuX2RlZmF1bHRNZW51SXRlbXMubWFwKChtaSkgPT4gbWkuaWQpO1xuICAgIHRoaXMubWVudUl0ZW1zID0gW1xuICAgICAgLi4udGhpcy5fZGVmYXVsdE1lbnVJdGVtcyxcbiAgICAgIC4uLmFjdGlvbnNcbiAgICAgICAgLmZpbHRlcigoYSkgPT4gIWRlZmF1bHRBY3Rpb25JZHMuaW5jbHVkZXMoYS5pZCkpXG4gICAgICAgIC5tYXAoKGEpID0+ICh7XG4gICAgICAgICAgaWQ6IGEuaWQsXG4gICAgICAgICAgaWNvbjogYS5pY29uLFxuICAgICAgICAgIGxhYmVsOiBhLmxhYmVsLFxuICAgICAgICAgIGdyb3VwOiAnYXNpZGUnLFxuICAgICAgICAgIGNhbGxiYWNrOiAoKSA9PiB0aGlzLmV4ZWN1dGVBY3Rpb24oYSlcbiAgICAgICAgfSkpXG4gICAgXTtcbiAgfVxufVxuIiwiQGxldCBwcmltYXJ5ID0gcHJpbWFyeVNsb3QoKTtcbkBsZXQgc2Vjb25kYXJ5ID0gc2Vjb25kYXJ5U2xvdCgpO1xuXG5AaWYgKHByaW1hcnkpIHtcbiAgPGRpdiBjbGFzcz1cInByaW1hcnktYWN0aW9uc1wiPlxuICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwicHJpbWFyeVwiPjwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cbn1cblxuPGRpdiBjbGFzcz1cIm9iamVjdC1hY3Rpb25zXCI+XG4gIEBpZiAoZW5hYmxlQ2xpcGJvYXJkKCkpIHtcbiAgICA8eXV2LWNsaXBib2FyZCBjbGFzcz1cImRhcmtcIiBbYnVja2V0XT1cImNsaXBib2FyZEJ1Y2tldFwiIFtlbmFibGVQYXN0ZV09XCJ0cnVlXCIgKHBhc3RlKT1cIm9uQ2xpcGJvYXJkUGFzdGUoKVwiPjwveXV2LWNsaXBib2FyZD5cbiAgfVxuICA8eXZjLW92ZXJmbG93LW1lbnUgW2hpZGVMYWJlbHNdPVwidHJ1ZVwiIFttZW51SXRlbXNdPVwibWVudUl0ZW1zXCI+PC95dmMtb3ZlcmZsb3ctbWVudT5cbjwvZGl2PlxuXG5AaWYgKHNlY29uZGFyeSkge1xuICA8ZGl2IGNsYXNzPVwic2Vjb25kYXJ5LWFjdGlvbnNcIj5cbiAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInNlY29uZGFyeVwiPjwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cbn1cblxuQGlmIChidXN5KCkpIHtcbiAgPGRpdiBjbGFzcz1cInl1di1sb2FkZXItbGluZWFyXCI+PC9kaXY+XG59XG4iXX0=
|
package/esm2022/lib/components/search-filter/date-range-picker/date-range-picker.component.mjs
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { CommonModule } from '@angular/common';
|
|
2
|
+
import { Component, effect, inject, input, output } from '@angular/core';
|
|
3
|
+
import { FormBuilder, ReactiveFormsModule, Validators } from '@angular/forms';
|
|
4
|
+
import { TranslateModule } from '@yuuvis/client-core';
|
|
5
|
+
import { DatetimeRangeComponent } from '@yuuvis/client-framework/forms';
|
|
6
|
+
import { YvcOverlayRef } from '@yuuvis/components/overlay';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
import * as i1 from "@angular/forms";
|
|
9
|
+
import * as i2 from "@yuuvis/client-core";
|
|
10
|
+
export class DateRangePickerComponent {
|
|
11
|
+
constructor() {
|
|
12
|
+
this.#oRef = inject(YvcOverlayRef);
|
|
13
|
+
this.#fb = inject(FormBuilder);
|
|
14
|
+
this.form = this.#fb.group({
|
|
15
|
+
range: this.#fb.control(undefined, Validators.required)
|
|
16
|
+
});
|
|
17
|
+
this.range = input(this.#oRef.data.range);
|
|
18
|
+
this.rangeChange = output();
|
|
19
|
+
this.#rangeEffect = effect(() => {
|
|
20
|
+
const range = this.range();
|
|
21
|
+
this.form.patchValue({ range });
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
#oRef;
|
|
25
|
+
#fb;
|
|
26
|
+
#rangeEffect;
|
|
27
|
+
apply() {
|
|
28
|
+
this.rangeChange.emit(this.form.value.range || undefined);
|
|
29
|
+
this.#oRef?.close(this.form.value.range);
|
|
30
|
+
}
|
|
31
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DateRangePickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
32
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.13", type: DateRangePickerComponent, isStandalone: true, selector: "ymd-date-range-picker", inputs: { range: { classPropertyName: "range", publicName: "range", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { rangeChange: "rangeChange" }, ngImport: i0, template: "<form [formGroup]=\"form\" (ngSubmit)=\"apply()\">\n <h2>{{ 'yuv.app.drive.search.filter.option.date.custom.overlay.title' | translate }}</h2>\n <yuv-datetime-range [withTime]=\"false\" formControlName=\"range\"></yuv-datetime-range>\n <button class=\"primary\" [disabled]=\"form.invalid\">{{ 'yuv.app.drive.search.filter.option.date.custom.overlay.button.apply' | translate }}</button>\n</form>\n", styles: [":host{--form-element-border-color: transparent;--yvc-form-element-border-color: transparent}:host form{display:grid;grid-template-columns:1fr auto;grid-template-rows:repeat(3,auto);grid-template-areas:\"title title\" \"input input\" \". button\";gap:var(--app-pane-padding);padding:var(--app-pane-padding)}:host form h2{grid-area:title;margin:0}:host form yuv-datetime-range{grid-area:input;border:1px solid var(--text-color-hint);padding:1px 2px;border-radius:2px}:host form button{grid-area:button}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }, { kind: "component", type: DatetimeRangeComponent, selector: "yuv-datetime-range", inputs: ["withTime", "readonly", "operator"] }] }); }
|
|
33
|
+
}
|
|
34
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DateRangePickerComponent, decorators: [{
|
|
35
|
+
type: Component,
|
|
36
|
+
args: [{ selector: 'ymd-date-range-picker', standalone: true, imports: [CommonModule, ReactiveFormsModule, TranslateModule, DatetimeRangeComponent], template: "<form [formGroup]=\"form\" (ngSubmit)=\"apply()\">\n <h2>{{ 'yuv.app.drive.search.filter.option.date.custom.overlay.title' | translate }}</h2>\n <yuv-datetime-range [withTime]=\"false\" formControlName=\"range\"></yuv-datetime-range>\n <button class=\"primary\" [disabled]=\"form.invalid\">{{ 'yuv.app.drive.search.filter.option.date.custom.overlay.button.apply' | translate }}</button>\n</form>\n", styles: [":host{--form-element-border-color: transparent;--yvc-form-element-border-color: transparent}:host form{display:grid;grid-template-columns:1fr auto;grid-template-rows:repeat(3,auto);grid-template-areas:\"title title\" \"input input\" \". button\";gap:var(--app-pane-padding);padding:var(--app-pane-padding)}:host form h2{grid-area:title;margin:0}:host form yuv-datetime-range{grid-area:input;border:1px solid var(--text-color-hint);padding:1px 2px;border-radius:2px}:host form button{grid-area:button}\n"] }]
|
|
37
|
+
}] });
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1yYW5nZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hcHBzL2RyaXZlL3NyYy9saWIvY29tcG9uZW50cy9zZWFyY2gtZmlsdGVyL2RhdGUtcmFuZ2UtcGlja2VyL2RhdGUtcmFuZ2UtcGlja2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYXBwcy9kcml2ZS9zcmMvbGliL2NvbXBvbmVudHMvc2VhcmNoLWZpbHRlci9kYXRlLXJhbmdlLXBpY2tlci9kYXRlLXJhbmdlLXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekUsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5RSxPQUFPLEVBQWMsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDbEUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDeEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7O0FBUzNELE1BQU0sT0FBTyx3QkFBd0I7SUFQckM7UUFRRSxVQUFLLEdBQUcsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQzlCLFFBQUcsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFMUIsU0FBSSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDO1lBQ3BCLEtBQUssRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBeUIsU0FBUyxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUM7U0FDaEYsQ0FBQyxDQUFDO1FBRUgsVUFBSyxHQUFHLEtBQUssQ0FBeUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDN0QsZ0JBQVcsR0FBRyxNQUFNLEVBQTBCLENBQUM7UUFDL0MsaUJBQVksR0FBRyxNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ3pCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUMzQixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDbEMsQ0FBQyxDQUFDLENBQUM7S0FNSjtJQWxCQyxLQUFLLENBQXlCO0lBQzlCLEdBQUcsQ0FBdUI7SUFRMUIsWUFBWSxDQUdUO0lBRUgsS0FBSztRQUNILElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssSUFBSSxTQUFTLENBQUMsQ0FBQztRQUMxRCxJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzQyxDQUFDOytHQWxCVSx3QkFBd0I7bUdBQXhCLHdCQUF3Qiw4UENkckMsa1pBS0EsK2lCREtZLFlBQVksOEJBQUUsbUJBQW1CLDRyQkFBRSxlQUFlLDRGQUFFLHNCQUFzQjs7NEZBSXpFLHdCQUF3QjtrQkFQcEMsU0FBUzsrQkFDRSx1QkFBdUIsY0FDckIsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLG1CQUFtQixFQUFFLGVBQWUsRUFBRSxzQkFBc0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIGVmZmVjdCwgaW5qZWN0LCBpbnB1dCwgb3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFJhbmdlVmFsdWUsIFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0B5dXV2aXMvY2xpZW50LWNvcmUnO1xuaW1wb3J0IHsgRGF0ZXRpbWVSYW5nZUNvbXBvbmVudCB9IGZyb20gJ0B5dXV2aXMvY2xpZW50LWZyYW1ld29yay9mb3Jtcyc7XG5pbXBvcnQgeyBZdmNPdmVybGF5UmVmIH0gZnJvbSAnQHl1dXZpcy9jb21wb25lbnRzL292ZXJsYXknO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd5bWQtZGF0ZS1yYW5nZS1waWNrZXInLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBUcmFuc2xhdGVNb2R1bGUsIERhdGV0aW1lUmFuZ2VDb21wb25lbnRdLFxuICB0ZW1wbGF0ZVVybDogJy4vZGF0ZS1yYW5nZS1waWNrZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vZGF0ZS1yYW5nZS1waWNrZXIuY29tcG9uZW50LnNjc3MnXG59KVxuZXhwb3J0IGNsYXNzIERhdGVSYW5nZVBpY2tlckNvbXBvbmVudCB7XG4gICNvUmVmID0gaW5qZWN0KFl2Y092ZXJsYXlSZWYpO1xuICAjZmIgPSBpbmplY3QoRm9ybUJ1aWxkZXIpO1xuXG4gIGZvcm0gPSB0aGlzLiNmYi5ncm91cCh7XG4gICAgcmFuZ2U6IHRoaXMuI2ZiLmNvbnRyb2w8UmFuZ2VWYWx1ZSB8IHVuZGVmaW5lZD4odW5kZWZpbmVkLCBWYWxpZGF0b3JzLnJlcXVpcmVkKVxuICB9KTtcbiAgXG4gIHJhbmdlID0gaW5wdXQ8UmFuZ2VWYWx1ZSB8IHVuZGVmaW5lZD4odGhpcy4jb1JlZi5kYXRhLnJhbmdlKTtcbiAgcmFuZ2VDaGFuZ2UgPSBvdXRwdXQ8UmFuZ2VWYWx1ZSB8IHVuZGVmaW5lZD4oKTtcbiAgI3JhbmdlRWZmZWN0ID0gZWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCByYW5nZSA9IHRoaXMucmFuZ2UoKTtcbiAgICB0aGlzLmZvcm0ucGF0Y2hWYWx1ZSh7IHJhbmdlIH0pO1xuICB9KTtcblxuICBhcHBseSgpIHtcbiAgICB0aGlzLnJhbmdlQ2hhbmdlLmVtaXQodGhpcy5mb3JtLnZhbHVlLnJhbmdlIHx8IHVuZGVmaW5lZCk7XG4gICAgdGhpcy4jb1JlZj8uY2xvc2UodGhpcy5mb3JtLnZhbHVlLnJhbmdlKTtcbiAgfVxufVxuIiwiPGZvcm0gW2Zvcm1Hcm91cF09XCJmb3JtXCIgKG5nU3VibWl0KT1cImFwcGx5KClcIj5cbiAgPGgyPnt7ICd5dXYuYXBwLmRyaXZlLnNlYXJjaC5maWx0ZXIub3B0aW9uLmRhdGUuY3VzdG9tLm92ZXJsYXkudGl0bGUnIHwgdHJhbnNsYXRlIH19PC9oMj5cbiAgPHl1di1kYXRldGltZS1yYW5nZSBbd2l0aFRpbWVdPVwiZmFsc2VcIiBmb3JtQ29udHJvbE5hbWU9XCJyYW5nZVwiPjwveXV2LWRhdGV0aW1lLXJhbmdlPlxuICA8YnV0dG9uIGNsYXNzPVwicHJpbWFyeVwiIFtkaXNhYmxlZF09XCJmb3JtLmludmFsaWRcIj57eyAneXV2LmFwcC5kcml2ZS5zZWFyY2guZmlsdGVyLm9wdGlvbi5kYXRlLmN1c3RvbS5vdmVybGF5LmJ1dHRvbi5hcHBseScgfCB0cmFuc2xhdGUgfX08L2J1dHRvbj5cbjwvZm9ybT5cbiJdfQ==
|